Skip to content

[finding] Seven more source comments name deleted in-repo app paths (apps/objectos, apps/cloud) as live — same class as #14634, outside its ruled scope #14806

Description

@os-trump

Found while implementing #14634 (dev seat, session session_016yfqQh2dBgPAymYd7xipza, branch claude/issue-14634-serve-host-config-example). Filed unassigned for triage. Deliberately NOT fixed by that card's PR — see "Why not swept there" below.

The class

A source comment that names a repository path is a checkable claim. #14634 is the instance where such a claim was false and cost real work: two independent readers took apps/objectos for a live in-repo case, and the dev seat sent to measure it had to discover the app was absent before it could start.

That card's triage ruled its scope to three sites in packages/cli/src/commands/serve.ts. The sweep done while implementing it found seven more sites of the same class, in two groups.

Evidence (re-checkable at origin/main)

git ls-tree origin/main -- apps/      # -> exactly one entry: apps/docs
git grep -n "apps/objectos\|apps/cloud" -- packages/

The positive control matters here because the claim is a negative: apps/ is not empty and the query is not broken — it returns apps/docs and nothing else.

Both apps are real, and both live elsewhere. CHANGELOG.md:

apps/cloud — deleted from this repo. The reference cloud host now lives in objectstack-ai/cloud/apps/cloud.
apps/objectos — deleted from this repo. The tenant runtime (serving *.objectos.app) now lives in objectstack-ai/cloud/apps/objectos.

ROADMAP.md line 41 says the same: "apps/cloud, apps/objectos, apps/studio, and service-tenant no longer exist in this repo."

Group A — apps/objectos outside the domain:cli lane (3 sites)

  • packages/adapters/hono/src/index.ts:164 — "preflight can still succeed via apps/objectos's short-circuit". Present tense, unmarked.
  • packages/plugins/plugin-hono-server/src/pattern-matcher.ts:15 — "the Vercel serverless entrypoint's preflight short-circuit in apps/objectos". Present tense, unmarked.
  • packages/cloud-connection/src/cloud-connection-plugin.ts:19 and :21 — "these routes started as app-level wiring in apps/objectos/cloud-runtime-plugins.ts" and "both deployment shapes — apps/objectos (multi-tenant) and apps/objectos-ee (single-environment)". The first is history and the second is present tense; neither says the apps are out of this repo.

Group B — apps/cloud, inside serve.ts itself (4 sites)

  • :133 — "Env knobs (also documented in apps/cloud/server/observability.ts — keep the two in sync if you tweak names)". This one is not merely stale prose: it is a live cross-repo sync obligation pointed at a file no one in this repo can open.
  • :4066 — "this is the control-plane host path (apps/cloud ships no Studio and MUST boot clean, cloud#107)"
  • :4400 — "lets a host (e.g. apps/cloud) opt out of the Console entirely"
  • :4549 — "the caller (e.g. apps/cloud/scripts/migrate.ts)"

The trap next to all of this

Do not sweep the token objectos, and do not sweep cloud. Almost every occurrence is correct and a blind find-and-replace breaks working code:

  • objectos.ai / cloud.objectos.ai — the real product domain, DEFAULT_CLOUD_URL, the root-domain guard, admin@objectos.ai as the dev seed address;
  • objectos-ee, objectos-runtime, objectos-environment, objectos-stack — real cloud-side package and plugin names, several matched as literal plugin ids in serve.ts.

Grep for the paths apps/objectos and apps/cloud, never for the tokens.

Sites that are already correct — leave them alone

These name the same paths and are not defects, which is why the fix cannot be mechanical:

  • packages/services/service-cluster/src/multi-node-gate-mount.ts:9 — says "(apps/objectos-ee/objectstack.config.ts, cloud repo)". This is the house style worth copying.
  • packages/cli/test/serve-organizations-host-resolution.e2e.test.ts:88 — "Measured on cloud's apps/objectos-ee".
  • content/docs/getting-started/examples.mdx:40 — "The framework repo no longer contains a separate apps/objectos production host."
  • ROADMAP.md:7, :41 — explicitly say these no longer exist here.
  • CHANGELOG.md, the per-package CHANGELOG.md files, docs/adr/0004-*, docs/adr/0006-* — historical records, accurate as of when they were written. ⛔ Never rewrite these.

Why not swept in #14634's PR

Three reasons, in order of weight:

  1. Group B :133 is a decision, not a rename. "Keep the two in sync" is an obligation with a counterparty in another repo. Whether that obligation still stands — and whether the observability env knobs are still mirrored in objectstack-ai/cloud at all — cannot be read from this repo. Renaming the path while leaving the instruction would preserve a sync duty nobody can discharge; deleting the instruction would silently drop one that may still be real. Someone has to look at the cloud repo.
  2. Group A is three other lanes. domain:cli does not own packages/adapters/hono, packages/plugins/plugin-hono-server or packages/cloud-connection, and editing them widens that card's verification face from one package to four.
  3. [finding] serve.ts names apps/objectos as the host-config example, but that app does not exist in this repo — two readers took it as a real in-repo case #14634's triage explicitly ruled its scope to the three serve.ts apps/objectos sites.

Suggested disposition

Per site, and per what is actually true of it — the same split #14634 used:

  • Where the referent is genuinely the out-of-repo app (all of Group A, and :4066 / :4400 / :4549), mark it out-of-repo in the multi-node-gate-mount.ts house style rather than renaming it. The reader who wants it can then find it.
  • Where the comment is a worked example of a branch that keys on a shape, state the shape and name no app.
  • :133 needs the cloud-repo question answered first; it may deserve its own card.

⛔ Do not add an apps/objectos or an apps/cloud to this repo to satisfy any comment.

Refs: #14634 (the card whose sweep surfaced this).

Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions