You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Setup → Packages moves to Studio: drop Setup's nav_packages; Studio keeps the full list, Setup keeps the marketplace "Installed Apps" door (ruling 甲, amends #23892 B) #25098
Filed by the triage seat (session_01AavokzJ5DndAwitDXvKy4U) on the maintainer's ruling in the triage chat, 2026-10-21: 「二、软件包列表挪到 Studio ;甲」. ⛔ Not a claim.
Blocked-by: objectstack-ai/cloud#3138
What
The maintainer's report: the package list is a development surface, and Setup → Apps reads as developer tooling.
Readings (objectstack origin/main1862d8d130):
packages/platform-objects/src/apps/setup-nav.contributions.ts:51: Setup's nav_packages (developer:packages), in group_apps.
packages/platform-objects/src/apps/studio.app.ts:127: Studio already carries the same component under Overview → Packages, beside App Builder.
packages/cloud-connection/src/marketplace-ui.ts:62–86: MARKETPLACE_INSTALLED_UI_BUNDLE is "Installed Apps", developer:packages with params: { source: 'marketplace' }, carrying the marketplace row actions.
The one list of what is installed is still developer:packages.
Its full, unfiltered entry now lives in Studio only.
Setup keeps the marketplace-filtered Installed Apps door wherever the marketplace capability is present.
Setup's Apps group becomes: Browse Marketplace, Installed Apps, Packaged Automation. Cloud Connection moves to Integrations under the pair ruling (objectstack#25097).
Dispatch shape (domain:engine, one PR)
Remove nav_packages from Setup's group_apps contribution. Leave Studio's entry as is.
Update the pins that name Setup's entry. Do not loosen them; restate them for the new home:
packages/cli/scripts/check-app-nav-i18n.mjs;
packages/platform-objects/src/apps/setup-packaged-automation-nav.test.ts, whose comment points at the entry;
the nav i18n catalogs.
Add a pin that Setup carries no unfiltered developer:packages entry and Studio still does.
Changeset: patch for @objectstack/platform-objects. No spec or protocol change.
Order: the Blocked-by: card gives tenant environments the Installed Apps door first. Without it, a hosted Setup would lose its only door to installed packages. If that card reports premise_still_valid: false, this card stays blocked until the maintainer rules on the gap.
Triage: routed to the cloud PM — domain:server → domain:cloud · status:parked · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-27T14:54Z
⛔ Not a claim. Maintainer, 2026-10-27: 「一个issue只要涉及 cloud ,就归 cloud pm 处理」 (rule card #26762).
Why this card involves cloud: it is Blocked-by: objectstack-ai/cloud#3138, which gives tenant environments the Installed Apps door first.
No objectstack lane claims it now. The cloud PM decides where each half lands; any objectstack half it hands back comes back here with a fresh card. The grade stands.
Blocked-by objectstack-ai/cloud#3138 is cleared. Its dispatch (c) landed as cloud PR #3488 (merged 2026-11-02 12:52Z).
Hosted tenant environments now register MARKETPLACE_INSTALLED_UI_BUNDLE (nav_marketplace_installed, developer:packages with source=marketplace) beside Browse Marketplace. It is read-only there, because features.installLocal is false.
A single install is now stated as a marketplace package too.
Once Setup → Packages moves to Studio, a tenant admin keeps the Installed Apps door.
Per cloud#3138 ruling 6377725815 item 4, this card was held only until (c) landed. The remaining work is objectstack's own (setup-nav.contributions.tsnav_packages). It goes back to objectstack triage: status:parked and domain:cloud are removed.
One caveat for the dev: environments that install HotCRM keep a withheld package list until objectstack-ai/hotcrm#2394 republishes HotCRM. For them, Installed Apps is empty in the meantime. This does not block this card.
{
"issue": 25098,
"status": "done",
"branch": "claude/project-thread-c92o2r",
"pr": "https://github.com/objectstack-ai/objectstack/pull/29547",
"session": "session_01JQwxbZp2WazS7kV2qRc7RV",
"premise_still_valid": true,
"summary": "Setup's group_apps contribution no longer carries nav_packages (developer:packages, unfiltered); Studio's Overview > Packages is untouched and Setup keeps the cloud-connection Installed Apps door (source=marketplace). The Setup copies of the label (en, zh-CN, ja-JP, es-ES) and their three recorded source hashes are removed; Studio's copies stay. setup-packaged-actions-nav.test.ts is restated (its retirement control now reads nav_packaged_actions), and a new pin setup-packages-door.test.ts holds both directions: no unfiltered developer:packages in Setup's shell or contributions, exactly one in Studio's Overview. Patch changeset for @objectstack/platform-objects. The card names setup-packaged-automation-nav.test.ts; the file on main is setup-packaged-actions-nav.test.ts. check-app-nav-i18n.mjs names nav_packages only in two history comments (#5750), left unchanged as still-true history.",
"tests": "pnpm --filter @objectstack/platform-objects test under the verify lock: Test Files 110 passed (110), Tests 1510 passed (1510), VERDICT command-exit 0. typecheck: exit 0 (check:test-typecheck OK). Ablation at 510f2898 via scripts/ablation-replace.mjs: re-inserting Setup's nav_packages turns 'Setup ships no unfiltered developer:packages entry' red (1 failed, 2 passed); restore blob e8992d3f9d5b equals HEAD, git diff HEAD empty. The test imports src directly, so no dist leg.",
"gates": "Head 510f2898. dispatch-gates --commands: 59 derived; 57 exit 0 (check:i18n and check:lean-entry-closure after building their closure); NOT MEASURED, exit 3 prerequisite: check:dual-build-cjs-loads (needs a full pnpm build; CI Build Core) and check-plugin-teardown-shape --self-test (checker-health, needs unshallow). Outside the derivation: pnpm lint exit 0 (lock VERDICT command-exit 0), pnpm check:app-nav-i18n exit 0 (setup: 56 merged nav ids, every id labelled in every locale). --ran: 59 accounted, 57 run, 2 NOT-MEASURED. CI check-runs: in_progress at report time.",
"dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
"mcp_calls": "0",
"api_writes": "2 — relay pr_create (POST /repos/objectstack-ai/objectstack/pulls, #29547, 6749 bytes sent and stored identical); this os-dev-report comment (POST /repos/objectstack-ai/objectstack/issues/25098/comments). git push is not counted.",
"open_questions": [],
"security_findings": "none",
"out_of_scope_findings": [
"carrier: seat domain:server#4 · noted, not filed · packages/cloud-connection/src/marketplace-installed-ui-entry.pin.test.ts doc comment calls developer:packages 'the component Setup's own Packages entry opens'; that clause is stale after this PR (comment only, outside the claimed file surface)"
]
}
Release: claim 6584121990 (session_01JQwxbacSXJQqAztgt4UMrS, card thread session_01JQwxbZp2WazS7kV2qRc7RV, branch claude/project-thread-c92o2r) · full landing
Produce: PR #29547 merged as ce12ad2a at 2026-11-02T20:02Z (ruling 甲: Setup drops its unfiltered Packages entry, the full list lives in Studio; ACCEPT 6586658098). Fixes #25098 closed this card as completed.
Activity
objectstack-fleet commentedon Oct 27, 2026
Triage: routed to the cloud PM —
domain:server→domain:cloud·status:parked· triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-27T14:54Z⛔ Not a claim. Maintainer, 2026-10-27: 「一个issue只要涉及 cloud ,就归 cloud pm 处理」 (rule card #26762).
Blocked-by:objectstack-ai/cloud#3138, which gives tenant environments the Installed Apps door first.Generated by Claude Code
objectstack-fleet commentedon Nov 2, 2026
Unblocked · cloud seat 2 (
repo:cloud#2, os-zhuang, session_0123kRqqdpAJWYMgsgdAJX4G) · 2026-11-02T13:38ZBlocked-by objectstack-ai/cloud#3138 is cleared. Its dispatch (c) landed as cloud PR #3488 (merged 2026-11-02 12:52Z).
MARKETPLACE_INSTALLED_UI_BUNDLE(nav_marketplace_installed,developer:packageswithsource=marketplace) beside Browse Marketplace. It is read-only there, becausefeatures.installLocalis false.Per cloud#3138 ruling 6377725815 item 4, this card was held only until (c) landed. The remaining work is objectstack's own (
setup-nav.contributions.tsnav_packages). It goes back to objectstack triage:status:parkedanddomain:cloudare removed.One caveat for the dev: environments that install HotCRM keep a withheld package list until objectstack-ai/hotcrm#2394 republishes HotCRM. For them, Installed Apps is empty in the meantime. This does not block this card.
objectstack-fleet commentedon Nov 2, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: p3 kept ·
domain:server·pm:queue· 2026-11-02T14:59Z⛔ Not a claim.
nav_packagesinpackages/platform-objects/src/apps/setup-nav.contributions.ts. p3 kept.Generated by Claude Code
objectstack-fleet commentedon Nov 2, 2026
domain:server#4 · os-warren · session_01JQwxbacSXJQqAztgt4UMrS
Claim: PM loop round 1
Session:
session_01JQwxbacSXJQqAztgt4UMrS(seat); dev = card threadsession_01JQwxbZp2WazS7kV2qRc7RVAccount:
os-warrenBranch:
claude/project-thread-c92o2r(a project card thread pushes only its assigned branch; measured platform exception toclaude/issue-<n>-<slug>)Worktree:
objectstack-issue-25098Domain:
domain:serverSeat:
domain:server#4File surface:
packages/platform-objects/src/apps/setup-nav.contributions.ts, the pins naming Setup'snav_packages(packages/platform-objects/src/apps/*nav*.test.ts,packages/cli/scripts/check-app-nav-i18n.mjs,packages/platform-objects/src/apps/translations/**), one.changeset/*.md(patch,@objectstack/platform-objects) (stop on breach; explain in the report)Container & model:
M,mode:thread,model: TIER_DEFAULT (dispatch-gates --tier at 399df5bba: no path-derived mandate),effort: project default (the maintainer sets effort)Clause-②: no
Metadata-protocol: none
Responsibility:
n/a — not a defect cardThread-read: 6580374093
Premise: holds (origin/main 399df5b:
nav_packagesstill atsetup-nav.contributions.ts:51; Studio's entry atstudio.app.ts:127; Blocked-by cloud#3138 cleared per 6578611089)Serial constraints cleared: none (no
pm:dispatchedclaim declarespackages/platform-objects/src/apps/**)objectstack-fleet commentedon Nov 2, 2026
domain:server#4 · os-warren · session_01JQwxbZp2WazS7kV2qRc7RV
os-dev-report
{ "issue": 25098, "status": "done", "branch": "claude/project-thread-c92o2r", "pr": "https://github.com/objectstack-ai/objectstack/pull/29547", "session": "session_01JQwxbZp2WazS7kV2qRc7RV", "premise_still_valid": true, "summary": "Setup's group_apps contribution no longer carries nav_packages (developer:packages, unfiltered); Studio's Overview > Packages is untouched and Setup keeps the cloud-connection Installed Apps door (source=marketplace). The Setup copies of the label (en, zh-CN, ja-JP, es-ES) and their three recorded source hashes are removed; Studio's copies stay. setup-packaged-actions-nav.test.ts is restated (its retirement control now reads nav_packaged_actions), and a new pin setup-packages-door.test.ts holds both directions: no unfiltered developer:packages in Setup's shell or contributions, exactly one in Studio's Overview. Patch changeset for @objectstack/platform-objects. The card names setup-packaged-automation-nav.test.ts; the file on main is setup-packaged-actions-nav.test.ts. check-app-nav-i18n.mjs names nav_packages only in two history comments (#5750), left unchanged as still-true history.", "tests": "pnpm --filter @objectstack/platform-objects test under the verify lock: Test Files 110 passed (110), Tests 1510 passed (1510), VERDICT command-exit 0. typecheck: exit 0 (check:test-typecheck OK). Ablation at 510f2898 via scripts/ablation-replace.mjs: re-inserting Setup's nav_packages turns 'Setup ships no unfiltered developer:packages entry' red (1 failed, 2 passed); restore blob e8992d3f9d5b equals HEAD, git diff HEAD empty. The test imports src directly, so no dist leg.", "gates": "Head 510f2898. dispatch-gates --commands: 59 derived; 57 exit 0 (check:i18n and check:lean-entry-closure after building their closure); NOT MEASURED, exit 3 prerequisite: check:dual-build-cjs-loads (needs a full pnpm build; CI Build Core) and check-plugin-teardown-shape --self-test (checker-health, needs unshallow). Outside the derivation: pnpm lint exit 0 (lock VERDICT command-exit 0), pnpm check:app-nav-i18n exit 0 (setup: 56 merged nav ids, every id labelled in every locale). --ran: 59 accounted, 57 run, 2 NOT-MEASURED. CI check-runs: in_progress at report time.", "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "0", "api_writes": "2 — relay pr_create (POST /repos/objectstack-ai/objectstack/pulls, #29547, 6749 bytes sent and stored identical); this os-dev-report comment (POST /repos/objectstack-ai/objectstack/issues/25098/comments). git push is not counted.", "open_questions": [], "security_findings": "none", "out_of_scope_findings": [ "carrier: seat domain:server#4 · noted, not filed · packages/cloud-connection/src/marketplace-installed-ui-entry.pin.test.ts doc comment calls developer:packages 'the component Setup's own Packages entry opens'; that clause is stale after this PR (comment only, outside the claimed file surface)" ] }Generated by Claude Code
objectstack-fleet commentedon Nov 2, 2026
domain:server#4 · os-warren · session_01JQwxbacSXJQqAztgt4UMrS
Landing record · #25098 · PR #29547 · 2026-11-02T20:04Z
git ls-remote origin 'refs/heads/gh-readonly-queue/main/pr-29547-*'git merge-base --is-ancestor ce12ad2a origin/maingit grep -n nav_packages origin/main -- packages/platform-objects/src/apps/setup-nav.contributions.tsgit grep -n "id: 'nav_packages'" origin/main -- packages/platform-objects/src/apps/studio.app.tsRelease: claim
6584121990(session_01JQwxbacSXJQqAztgt4UMrS, card threadsession_01JQwxbZp2WazS7kV2qRc7RV, branchclaude/project-thread-c92o2r) · full landingProduce: PR #29547 merged as
ce12ad2aat 2026-11-02T20:02Z (ruling 甲: Setup drops its unfiltered Packages entry, the full list lives in Studio; ACCEPT 6586658098).Fixes #25098closed this card as completed.packages/cloud-connection/src/marketplace-installed-ui-entry.pin.test.tswas dropped (test comment, not published text);nav_cloud_connection's move stays with cloud-connection: a runtime holding the env service key is platform-managed: register no Setup page, refuse unbind; move the entry to Integrations (ruling 甲) #25097.pm:dispatchedremoved; the card is closed.