Skip to content

refactor(project)!: rename app boundary - #594

Merged
Yevanchen merged 2 commits into
mainfrom
refactor/rename-app-to-project
Sep 2, 2026
Merged

refactor(project)!: rename app boundary#594
Yevanchen merged 2 commits into
mainfrom
refactor/rename-app-to-project

Conversation

@Yevanchen

@Yevanchen Yevanchen commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Rename the product/domain boundary from App to Project across UI copy and routes, GraphQL, contracts, application code, tests, and D1 schema identifiers.
  • Add append-only migration 0012_rename_app_to_project.sql using metadata renames for tables, columns, and indexes; preserve rows and keep retired physical storage represented for migration history.
  • Preserve compatibility where identifiers are persisted or externally consumed: legacy web routes and selected-App storage, queued appId / app_id payloads, 24-hour runtime grants, hibernating WebSocket/DO state, and the v1 MCP JWT act.app_id claim.
  • Keep framework/application terminology (App, Hono app, app-server, .app test DB helper) separate from the Mosoo Project domain, and remove stale Project Deployment onboarding copy after refactor(app)!: remove App Deployment #591.

Why

  • Implements Multica YEF-1142 so users and developers see one canonical Project concept instead of mixed App / Project vocabulary.
  • Based on origin/main at dd0bf6e0, retaining the upstream removal of App Deployment.

Verification

  • Passed: just tc; formatting/lint; commit policy; docs links; Public API artifact and backward-compatibility check; GraphQL codegen check.
  • Passed: API 964 tests, Web 227 tests, DB 4 tests, plus all selected shared-package and root tests. Review-specific rolling-compatibility tests pass.
  • Passed: applied migrations 0000 through 0012 to an isolated fresh Wrangler local D1 database; confirmed only project remains, PRAGMA legacy_alter_table=0, and PRAGMA quick_check=ok. The migration boundary test also verifies seeded rows survive.
  • Prior authenticated local UI smoke confirmed /projects, Project copy, and legacy /apps redirect without browser console warnings/errors.
  • Not run: production D1 migration, remote E2E, or live provider suites.
  • Full just check reaches the Driver suite but reports 11 macOS process-watchdog timing failures. The exact same 11 failures reproduce from clean origin/main at dd0bf6e0; this PR changes neither the Driver submodule nor bun.lock. All non-Driver repository tests pass.

Impact

  • User/API/contract changes: GraphQL App names and appId fields become Project / projectId; first-party web clients are regenerated in the same PR. Old GraphQL callers are not wire-compatible.
  • Generated files / GraphQL / DB / lockfile: regenerated GraphQL schema/client, OpenAPI artifact, and Drizzle snapshot/journal; added a metadata-only D1 rename migration; no lockfile change.
  • Analytics cutover: dashboards spanning this release must include both app_created / app_id and project_created / project_id; historical PostHog data is not rewritten.
  • Existing user-editable names, including rows still named Default App, are intentionally not rewritten because there is no reliable marker separating untouched defaults from user choices.
  • Env or config changes: none. This PR merge does not deploy production.
  • Risk and rollback: the physical DB rename makes old API code incompatible, so production rollout requires a coordinated maintenance release. Take a D1 Time Travel bookmark/backup immediately before migration. On failure, use a forward fix or restore D1 and roll all services back together; never edit the applied migration.

Review

  • Reviewed specifically for D1 constraints/order, GraphQL and Public API boundaries, Queue/R2 persisted identifiers, runtime grant/JWT claims, and WebSocket/DO rolling compatibility.
  • Frozen values such as app, app_draft, act.app_id, legacy URL/storage tokens, and retained constraint names remain intentional compatibility boundaries.

@Yevanchen
Yevanchen requested a review from samzong as a code owner September 2, 2026 06:43
@Yevanchen
Yevanchen merged commit 7082590 into main Sep 2, 2026
12 checks passed
@Yevanchen
Yevanchen deleted the refactor/rename-app-to-project branch September 2, 2026 08:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant