Repository navigation
Commit ce12ad2
feat(platform-objects): Setup drops its unfiltered Packages entry; the full list lives in Studio (#29547)
<!-- claude-projects-attribution: {"github_login":"os-warren"} -->
_Requested by **Warren** · [project
thread](https://claude.ai/code/project/chan_01U5RdnAAmkSQmZbqh6FtqZ8?thread=cmsg_01U5RdnAAmkSQmZbqh6FtqZ8MFX42FUfma4vepCroC88iy)_
Fixes #25098
Clause-②: no
Metadata-protocol: none
## 维护者速读
- 改了什么:系统设置(Setup)的「应用」组去掉未过滤的「软件包」入口;完整软件包列表只留在 Studio → 总览 → 软件包。
- 为什么改:维护者裁决「二、软件包列表挪到 Studio ;甲」:完整列表是开发面,Setup 只保留应用市场过滤后的「已安装应用」入口。
- 风险与回滚:只删一个导航项及其四语种标签;页面本身没动,书签照常可开。回滚即还原本 PR。
- 先看:`setup-nav.contributions.ts`(删掉的那一行)、新 pin
`setup-packages-door.test.ts`、changeset。
- 两分钟验证:`pnpm --filter @objectstack/platform-objects exec vitest run
src/apps/setup-packages-door.test.ts`,预期 3 个用例全绿。
- 需要你做的:无,席位落地。
## What changes
- `packages/platform-objects/src/apps/setup-nav.contributions.ts`:
Setup's `group_apps` contribution drops `nav_packages`
(`developer:packages`, unfiltered). The group comment now says where the
full list lives (Studio) and which Setup door remains:
`nav_marketplace_installed`, the marketplace-filtered "Installed Apps"
entry that `@objectstack/cloud-connection` contributes wherever the
marketplace capability is present. Studio's `nav_packages`
(`studio.app.ts`, Overview → Packages) is untouched.
- Translations: `apps.setup.navigation.nav_packages` is removed from
`en`, `zh-CN`, `ja-JP` and `es-ES`, and its recorded digest from the
three `*.source-hashes.ts` tables. `apps.studio.navigation.nav_packages`
stays in all four catalogs and all three hash tables.
- `setup-packaged-actions-nav.test.ts`: restated, not loosened. Its
retirement control used Setup's `nav_packages` as proof the walk reads
the real array; it now uses `nav_packaged_actions`, which the same file
already requires to exist. Its comment and one test title no longer say
"beside Packages".
- New pin `setup-packages-door.test.ts`: Setup's shell plus
`SETUP_NAV_CONTRIBUTIONS` carry no `developer:packages` entry without a
`source` filter (and no `nav_packages` id), and Studio's Overview still
carries exactly one unfiltered `developer:packages` entry. The predicate
has its own positive and negative controls.
- Changeset: `patch` for `@objectstack/platform-objects`.
## Why
Maintainer ruling 甲 on #25098 (amends #23892 ruling B, item 1): the full
package list is a development surface, so its unfiltered entry lives in
Studio only, and Setup keeps the marketplace-filtered Installed Apps
door. The blocker objectstack-ai/cloud#3138 is cleared: cloud PR #3488
registers that door in hosted tenant environments, so a hosted Setup
keeps a way to installed packages.
## Tests
- `pnpm --filter @objectstack/platform-objects test` (under the verify
lock, after building the dependency closure): Test Files 110 passed
(110), Tests 1510 passed (1510).
- `pnpm --filter @objectstack/platform-objects typecheck`: exit 0.
- Ablation, one leg plus restore, at commit `510f2898` via
`scripts/ablation-replace.mjs`: re-inserting Setup's `nav_packages` line
into `setup-nav.contributions.ts` turns `Setup ships no unfiltered
developer:packages entry` red (`expected [ { id: 'nav_packages', …(4) }
] to deeply equal []`; 1 failed, 2 passed). Restore blob equals the HEAD
blob (`e8992d3f9d5b`) and `git diff HEAD` is empty. The test imports the
source file directly, so no `dist/` rebuild sits in the path.
## Acceptance notes
- `packages/cli/scripts/check-app-nav-i18n.mjs` names `nav_packages`
only in two comments that record #5750's history (the id was
untranslated at the time; the Studio copy did not answer for Setup).
Both stay true as history, so they are unchanged. The gate judges the
merged Setup app, which no longer carries the id, so it has one id fewer
to check.
-
`packages/cloud-connection/src/marketplace-installed-ui-entry.pin.test.ts`
describes `developer:packages` as "the component Setup's own Packages
entry opens" in a doc comment. That clause is now stale; it is outside
this card's file surface and left for the seat.
- Setup's `group_apps` translations still list `nav_cloud_connection`;
its move to Integrations belongs to #25097, not this card.
## Verification
All readings at head `510f2898`.
<details><summary>Derived gates: 59 derived, 57 exit 0, 2 NOT MEASURED;
plus pnpm lint and check:app-nav-i18n</summary>
- `node scripts/pm/dispatch-gates.mjs --commands --repo
objectstack-ai/objectstack` derived 59 commands from the 11 changed
paths (merge base `399df5bb`).
- 57 exit 0. `pnpm check:i18n` and `pnpm check:lean-entry-closure` first
exited 3 (prerequisite not built); after `turbo run build` of the
closure the i18n gate names, plus `@objectstack/objectql`, both exit 0:
`check-i18n-bundles: OK (10 package(s) — all bundles in sync, no
undeclared authoring keys)`.
- NOT MEASURED, reason: prerequisite not met (exit 3). `pnpm
check:dual-build-cjs-loads` needs a full `pnpm build` of about 83
packages; CI's Build Core runs it. `node
scripts/check-plugin-teardown-shape.mjs --self-test` is checker-health
only and needs an unshallow clone.
- `pnpm check:app-nav-i18n` (outside the derivation, run because the
card names it): `OK (13 contributor(s), 4 locale(s), 2 app(s) — setup:
56 merged nav id(s), account: 12 merged nav id(s) — every id labelled in
every locale)`.
- `pnpm lint` under the verify lock: `VERDICT command-exit 0`.
- `dispatch-gates --ran`: `59 derived famil(ies) accounted for — 57 run,
2 NOT-MEASURED (2 DERIVED from a recorded exit 3)`.
- CI families (type-check lanes, Build Core, Test Core) are read from
this PR's check-runs, not re-run locally.
</details>
## Human Minimum
- [x] 1. Schemas start as Zod; `packages/spec` holds no runtime logic.
(not touched)
- [x] 2. Every name I added uses the casing for its kind.
- [x] 3. No formatter ran; `pnpm lint` passes.
- [x] 4. One issue, one branch off an up-to-date `main`, one pull
request.
- [x] 5. A change that publishes carries a changeset, and both
declaration lines are filled in here and in the changeset.
- [x] 6. `packages/spec` touched: its generated artifacts are
regenerated and committed. (not touched)
- [x] 7. No hand edits to `content/docs/references/`,
`packages/*/CHANGELOG.md` or `content/docs/releases/`.
- [x] 8. Title, body and comments are in English. (The maintainer
quick-read section is in Chinese by the os-dev order.)
---
_Generated by [Claude
Code](https://claude.ai/code/session_01JQwxbZp2WazS7kV2qRc7RV)_
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 66ba23e commit ce12ad2
12 files changed
Lines changed: 116 additions & 36 deletions
File tree
- .changeset
- packages
- cli/test
- platform-objects/src/apps
- translations
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
254 | 254 | | |
255 | 255 | | |
256 | 256 | | |
257 | | - | |
258 | | - | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
259 | 260 | | |
260 | 261 | | |
261 | 262 | | |
262 | 263 | | |
263 | 264 | | |
264 | | - | |
| 265 | + | |
265 | 266 | | |
266 | 267 | | |
267 | 268 | | |
| |||
284 | 285 | | |
285 | 286 | | |
286 | 287 | | |
287 | | - | |
288 | | - | |
| 288 | + | |
| 289 | + | |
289 | 290 | | |
290 | 291 | | |
291 | 292 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
47 | 51 | | |
48 | 52 | | |
49 | 53 | | |
50 | 54 | | |
51 | | - | |
52 | 55 | | |
53 | 56 | | |
54 | 57 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| |||
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
75 | | - | |
| 75 | + | |
76 | 76 | | |
77 | 77 | | |
78 | 78 | | |
| |||
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
96 | | - | |
97 | | - | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
98 | 100 | | |
99 | 101 | | |
100 | 102 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | 73 | | |
80 | 74 | | |
81 | 75 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
74 | | - | |
75 | 74 | | |
76 | 75 | | |
77 | 76 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | 39 | | |
43 | 40 | | |
44 | 41 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
74 | | - | |
75 | 74 | | |
76 | 75 | | |
77 | 76 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | 39 | | |
43 | 40 | | |
44 | 41 | | |
| |||
0 commit comments