Skip to content

Console and CLI polish from the real-user walkthrough #30126

Closed

Description

@objectstack-fleet

epic:#26676#1 · zhuangjianguo · session_cdb7a717def74e719988f089fbaa18ff

From a real-user walkthrough of the development flow, filed on the maintainer's word: 「第二组第三组也同意」 (2026-11-04). Measured on main 987ff33b88 unless a line says otherwise. Test project scaffolded with create-objectstack@18.3.0.

Each row works today but could be clearer. Rows marked 18.3.0 were seen on the published release and not re-run on main.

Console

# Observed Where Suggestion
1 Dialog title 新建Repair Ticket, with no space between Chinese and Latin main; ui/packages/i18n/src/locales/zh.ts:229 新建{{object}} Space when the object name starts with a Latin letter
2 The create dialog opened from a lookup has no title; it starts at the section name "Details" main, by DOM: no h2 Title it 新建 and the object label
3 An action with no successMessage toasts 「操作已成功完成」, which does not say what happened main code, ui/packages/core/src/actions/ActionRunner.ts:643; seen on 18.3.0 Name the action: "Resolve 已完成"
4 Every entry in an app's sidebar has the same icon; navigation does not take the object's icon main Inherit the object's icon when an entry names none
5 Setup's collapsed sidebar is 20+ icons with no text main Tooltips at least, or keep it expanded by default
6 Field labels on the record page differ in style: REPAIR COST beside 负责人 main One label style
7 Money differs by surface: record ¥1,280.50, dashboard ¥1,280.5 (18.3.0) and ¥1,293 for 1293.00 (main). #27520 row 16 asked for one format per column; this is the metric card Both Metric cards keep the currency's decimals, unless the author sets otherwise
8 Notification list shows the raw topic notify 18.3.0 Hide it or give it a label
9 A mention title reads 「李四 mentioned you」 in a Chinese console. The zh text exists (plugin-audit/src/translations/messages.ts:37); the title follows the recipient's sys_user.locale, then the deployment default, and a new user has no locale 18.3.0, code read on main Give new users a locale, or use the language they last used
10 The success toast covers the Assignee in the record header for a few seconds 18.3.0 Move it, or shorten it
11 A chart with one bar of value 1 has an axis to 4 and a bar filling the width 18.3.0 Axis fits the data
12 Opening the Setup app without access answers You do not have permission to open the 'com.objectstack.setup' app. in English, where other refusals are localized main; packages/rest/src/meta-item-read-gate.ts:797,1693 Localize

CLI and MCP

# Observed Where Suggestion
13 os package export takes -u and -t; os package install takes -r, --email and --password main, both --help One way to name the server and the credential
14 A page opened while os dev restarts stays on the splash with an empty root, and does not retry or say anything 18.3.0, console served by the server Retry, or show a message
15 An MCP argument error tells the reader the fix, then adds history for internal developers: "This argument used to be dropped silently…" main; packages/mcp/src/mcp-http-tools.ts:706 Drop the history sentence
16 list_actions gives a plain member all 36 actions, including ban_user and set_user_manager, and invite_user four times, on four objects. Not a hole: ban_user by that member is refused over REST and OAuth MCP (403 Admin role required) and over an API key, and the target stayed unbanned. An admin over OAuth MCP succeeds; an admin with an API key gets a clear refusal. #28943 fixed one case of this family main List only what this caller could run

Activity

  1. objectstack-fleet commented on Nov 4, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: first-touch audit · p3 · domain:ui · pm:queue · 2026-11-04T16:34Z

    ⛔ Not a claim.

    • Read fresh. Console and CLI polish rows from the walkthrough (spacing, dialog titles, generic toasts). Each works today. p3.

    Generated by Claude Code

  2. added
    domain:uiDomain lane — seat card indexed by label:pm:seat
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 4, 2026
  3. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#5 · os-sales · session_01L6bhgVwQZbHRRM9CaXeKif

    Claim: PM loop round 3
    Session: session_01L6bhgVwQZbHRRM9CaXeKif
    Account: os-sales
    Branch: claude/project-thread-poei5v (card thread of this project; a thread can push only its designated branch — measured platform exception to claude/issue-<n>-<slug>)
    Worktree: objectstack-issue-30126
    Domain: domain:ui
    Seat: domain:ui#5
    File surface: items 1, 2, 3 and 7 only — ui/packages/i18n/src/locales/*.ts (new keys / the zh createTitle spacing), ui/packages/fields/src/widgets/LookupField.tsx and ui/packages/app-shell/src/hooks/useActionModal.tsx (the lookup's create modal title), ui/packages/core/src/actions/ActionRunner.ts (the generic success sentence), ui/packages/plugin-dashboard/src/MetricWidget.tsx (currency decimals), their tests, one root .changeset/. ⛔ packages/**, ⛔ AppHeader.tsx, ⛔ RecordDetailView.
    Container & model: M, mode:thread, model: default — dispatch-gates --tier: no path-derived mandate, effort: high
    Clause-②: yes
    Metadata-protocol: none
    Responsibility: n/a — not a defect card
    Thread-read: 6636204050
    Premise: holds (items 1, 2, 3, 7 read on origin/main; the dev re-measures each before fixing)
    Serial constraints cleared: #30326 (this seat) and PR #30243 add other keys to the same locale files: the dev merges main before the final push. #30390 (domain:ui#3) names no file of this surface. Items 4–6 and 8–16 are out of this claim (server, CLI/MCP, re-measure on main, or held by #30344 / #30390) and stay on the card.

    Scope: Part of #30126. Clause-② yes (widening) if a new i18n key lands: the seat's TIER_DEFAULT review before the queue. Dispatch order lives in the card thread's opening message.

  4. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#5 · os-sales · session_01L6bhgVwQZbHRRM9CaXeKif

    Claim amendment (claim 6657997438), item 1 shape — seat ruling.

    • Neither a global zh post-processor nor a blanket 新建 {{object}}. A post-processor over every zh interpolation reaches far past this card (every count, id and name in the zh bundle); a blanket space breaks the pinned 新建联系人 style.
    • Ruled shape: an opt-in i18next formatter registered in ui/packages/i18n/src/i18n.ts that pads the interpolated value with one space on a side where it meets a CJK character with a Latin letter or digit, applied only where a zh value names an object in {{object}} and opts in (form.createTitle / editTitle / viewTitle and their :2177 twin). Every other key and every static string is untouched; 新建联系人 stays as pinned; the one pin that encodes the defect ('新建Contacts') moves.
    • File surface added: ui/packages/i18n/src/i18n.ts and its test.
  5. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#5 · os-sales · session_01L6bhgVwQZbHRRM9CaXeKif

    Claim amendment 2 (claim 6657997438; amends 6658078173), from the card thread's measured findings.

    • Item 1 mechanism. The formatter spelling {{object, fmt}} would break the ten-locale {{name}}-only rule pinned by ui/packages/i18n/src/__tests__/fallback-placeholder-spelling-3512.test.ts. So the ruled intent moves to an i18next postProcessor registered in ui/packages/i18n/src/i18n.ts. It is still opt-in: it acts only on a key-listed table (form.createTitle / editTitle / viewTitle, and the console.ai.recordWriteCreateTitle / UpdateTitle object value), only in zh, and only where an interpolated value whose edge is a Latin letter or digit meets a CJK character. Pack spellings, 新建联系人, and every other key and static string are unchanged. File surface unchanged from amendment 1.
    • Item 7 mechanism. The card's two readings (¥1,280.5 on 18.3.0, and 1293.00 shown as ¥1,293 on main) come from DatasetWidget → formatMeasure in ui/packages/core/src/utils/dataset-format.ts, not from MetricWidget. With no author format, currency now takes the currency's own minor digits (CNY 2, JPY 0), the same rule as the list cell's formatCurrency. MetricWidget's static card has the same defect class and is fixed by the same rule, inside the already-claimed MetricWidget.tsx.
    • File surface added: ui/packages/core/src/utils/dataset-format.ts and its test. At 2026-11-05T12:37Z no open PR touches it or ui/packages/i18n/src/i18n.ts.
  6. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#5 · os-sales · session_01L6bhgTuQiDduLj5Xcj3KMa
    os-dev-report

    {
      "issue": 30126,
      "status": "done",
      "branch": "claude/project-thread-poei5v",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/30495",
      "head": "70fc02c985ebabfdb6756df72640447207f9512e",
      "session": "session_01L6bhgTuQiDduLj5Xcj3KMa",
      "premise_still_valid": true,
      "items": {
        "1": "reproduced on main 989ae42d live (zh 新建Repair Ticket); fixed: key-listed zh i18next postProcessor in ui/packages/i18n/src/i18n.ts (form.createTitle/editTitle/viewTitle, console.ai.recordWriteCreateTitle/UpdateTitle); packs unchanged; 新建联系人 unchanged",
        "2": "reproduced (lookup inline create dialog had no heading); fixed in useActionModal objectName+create branch: form.createTitle with the object label; authored title wins; edit not titled",
        "3": "reproduced (操作已成功完成); fixed in ActionRunner composeSuccessMessage: labelled action -> new key actions.completedNamed (10 packs, zh “{{action}}”已完成); unlabelled keeps completedSuccessfully",
        "7": "reproduced on main (¥1,293 for 1293.00); fixed in core dataset-format.ts formatMeasure (currency with no format = currency minor digits) and MetricWidget static card (same rule)"
      },
      "summary": "Items 1, 2, 3 and 7 of #30126 implemented in one draft PR, each reproduced live on main first. Every item reproduced, none dropped. Two mechanism deviations from the dispatch, both agreed by the seat in claim amendment 2: item 1 is a key-listed postProcessor, not a pack formatter; item 7 root cause is core formatMeasure, not MetricWidget.metricPatternDecimals.",
      "deviations": [
        "item 1: dispatch/seat formatter spelling inside the pack value breaks fallback-placeholder-spelling-3512.test.ts (objectui#3512/#4135 ruling: packs use {{name}} only) -> key-listed zh postProcessor in i18n.ts; seat agreed (amendment 2, comment 6658174549)",
        "item 7: readings come from DatasetWidget -> core formatMeasure (min 0 / max 2), not MetricWidget.metricPatternDecimals; seat added ui/packages/core/src/utils/dataset-format.ts + test to the surface",
        "bounded in-place: form.editTitle, form.viewTitle, console.ai.recordWriteUpdateTitle share createTitle shape and are in the key list (same class, mechanical, same gate families, no other claim on i18n.ts)",
        "moved pins in 4 app-shell tests + MetricWidget.numberFormat (,930,000.00 / 1.930.000,00 €): each read the old generic toast or the old whole-unit width"
      ],
      "remeasure": "18.3.0 vs main: formatMeasure currency branch is byte-identical at the @object-ui/*@18.3.0 release commit 83d7e4ae and on main (minimumFractionDigits: decimals ?? 0, maximumFractionDigits: decimals ?? 2). Intl zh-CN CNY with that pair: 1280.5 -> ¥1,280.5 (the 18.3.0 report), 1293 -> ¥1,293 (the main report); with no fraction options: ¥1,280.50 / ¥1,293.00. Live on main 989ae42d (showcase stack, repair_metrics dataset sum 1280.5+12.5): before ¥1,293, after ¥1,293.00. Static MetricWidget on main with currency and no format: ¥1,281 (whole units), after ¥1,280.50.",
      "tests": "vitest touched packages after the main merge: Test Files 100/100, Tests 1508/1508 passed. pnpm --dir ui exec vitest run scripts/: 170 files passed (2 skipped), 4985 tests passed. Ablations, each reverted and git diff HEAD empty after: postProcess off -> 1 failed; modal title off -> 2 failed; named toast off -> 3 failed; formatMeasure width back -> 3 failed; MetricWidget width back -> 4 failed.",
      "gates": "local: node scripts/pm/dispatch-gates.mjs --commands -> 35 derived families, all run, all exit 0; --ran reconcile: 35 derived, 35 run, 0 NOT-MEASURED, 0 UNRUN. type-check exit 0: @object-ui/i18n, core, react, plugin-dashboard, app-shell (i18n + app-shell re-run after merge). pnpm --dir ui run check:spec-symbols exit 0. check:new-line-citations 0 new. eslint: 1 pre-existing error MetricWidget.tsx (react-hooks, on base at line 419), warnings only otherwise. CI: PR just opened, check-runs pending at report time; seat reads them at ACCEPT.",
      "line_budget": "25 files, +402 / -26 total; non-test non-changeset source +153 / -14",
      "files_changed": [
        ".changeset/30126-console-copy-titles-toast-money.md",
        "ui/packages/app-shell/src/hooks/__tests__/useActionModal.objectCreateTitle-30126.test.tsx",
        "ui/packages/app-shell/src/hooks/__tests__/useConsoleActionRuntime.flowDoneSuccessMessage-12274.test.tsx",
        "ui/packages/app-shell/src/hooks/useActionModal.tsx",
        "ui/packages/app-shell/src/views/ObjectView.toolbarScriptSelection-12331.test.tsx",
        "ui/packages/app-shell/src/views/RecordDetailView.flowDoneSuccessMessage-12274.test.tsx",
        "ui/packages/app-shell/src/views/RecordFormPage.i18n.test.tsx",
        "ui/packages/core/src/actions/ActionRunner.ts",
        "ui/packages/core/src/actions/__tests__/ActionRunner.defaultSuccessToast-10900.test.ts",
        "ui/packages/core/src/utils/__tests__/dataset-format.test.ts",
        "ui/packages/core/src/utils/dataset-format.ts",
        "ui/packages/i18n/src/__tests__/i18n.test.ts",
        "ui/packages/i18n/src/i18n.ts",
        "ui/packages/i18n/src/locales/ar.ts",
        "ui/packages/i18n/src/locales/de.ts",
        "ui/packages/i18n/src/locales/en.ts",
        "ui/packages/i18n/src/locales/es.ts",
        "ui/packages/i18n/src/locales/fr.ts",
        "ui/packages/i18n/src/locales/ja.ts",
        "ui/packages/i18n/src/locales/ko.ts",
        "ui/packages/i18n/src/locales/pt.ts",
        "ui/packages/i18n/src/locales/ru.ts",
        "ui/packages/i18n/src/locales/zh.ts",
        "ui/packages/plugin-dashboard/src/MetricWidget.tsx",
        "ui/packages/plugin-dashboard/src/__tests__/MetricWidget.numberFormat.test.tsx"
      ],
      "dogfood_battery": "n/a: no ! in the PR title and no (narrowing) arm",
      "evidence": "zh 1440 before/after shots: evidence commit a21e05e8838cb35609a47e759ef901af618b342a path evidence/30126/ (removed by c5c4f25f); links in the PR body",
      "mcp_calls": "2: mcp__github__issue_read x2 (reads only, no MCP write)",
      "api_writes": "3: git push (branch, harness route) · fleet-write relay pr_create -> #30495 (POST /repos/objectstack-ai/objectstack/dispatches, run 42036090883, read-back identical 9147 bytes) · this os-dev-report comment via post-stamped",
      "open_questions": [],
      "security_findings": "none",
      "out_of_scope_findings": [
        "carrier: #30126 items 4, 5, 6 and 8 to 16 · out of this dispatch (server/CLI/re-measure or held by other cards) · noted, not filed",
        "carrier: none · pre-existing eslint error in MetricWidget.tsx (react-hooks: Cannot create components during render) · polish, noted only"
      ]
    }
  7. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#5 · os-sales · session_01L6bhgVwQZbHRRM9CaXeKif

    Landed (items 1, 2, 3 and 7) at 2026-11-05T14:45Z: PR #30495 merged as ea5807e132 (seat ACCEPT 6659644638 on head 70fc02c9, TIER_DEFAULT contract review PASS 6659333290). The merge itself read 2026-11-05T14:44Z on the PR. The PR said Part of #30126, so the card stays open.

    probe reading
    git grep -n CJK_LATIN_SPACED_KEYS origin/main -- ui/packages/i18n/src/i18n.ts present (item 1: zh puts a space between 新建 and a Latin object name)
    git grep -c completedNamed origin/main -- ui/packages/i18n/src/locales/zh.ts ui/packages/core/src/actions/ActionRunner.ts 1 each (item 3: the default success toast names the action)
    • Item 2: useActionModal titles the create dialog opened from a lookup form.createTitle when the descriptor has no title.
    • Item 7: formatMeasure (ui/packages/core/src/utils/dataset-format.ts) and MetricWidget use the currency's own minor digits when the author wrote no format.

    Release: session session_01L6bhgVwQZbHRRM9CaXeKif · because items 1, 2, 3 and 7 have landed · back to pm:queue, assignee cleared.
    Remainder: items 4–6 and 8–16, as the claim (6657997438) left them: server, CLI and MCP rows (12, 13, 15, 16), rows to re-measure on main (8, 10, 11, 14), and the console rows 4, 5, 6 and 9. Each row is independent.

  8. added
    pm:queueReady for the PM dispatch loop
    and removed
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    on Nov 5, 2026
  9. 29 remaining items

  10. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    coordinator#1 · hotlong · session_6eb9ec2e0e3f410b91239dab7a337b9e

    Ruling: #30126 rows 9, 13, 16 · letter A for each · maintainer 「按推荐裁」 (2026-11-06, in the coordinator session) · 2026-11-06T01:36Z

    Answers domain:server#4's decision 6671252245.

    Row 12 needs no ruling: it is written after PR #30459 merges. needs-user-decision → pm:queue.

    🤖 Generated with Claude Code

  11. added
    pm:queueReady for the PM dispatch loop
    and removed
    needs-user-decisionBlocked on a maintainer decision — do not dispatch; decision cards only, never on a PR
    on Nov 6, 2026
  12. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#4 · os-elon-musk · session_016WV4czvZykUqhYxYXSSDt4

    Claim: PM loop round 2 (re-claim after Release 6672033338, on the maintainer's ruling) · 2026-11-06T01:51Z
    Session: session_016WV4czvZykUqhYxYXSSDt4
    Account: os-elon-musk (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/project-thread-nhel89, restarted from origin/main (PR #30688 from it merged), in the same card thread session_016WV4cxrNurGFU9PsE6NwNT
    Worktree: objectstack-issue-30126
    Domain: domain:server
    Seat: domain:server#4
    File surface: row 13 packages/cli/src/commands/package/install.ts (and export.ts only if the shared flag definition lives there), the CLI's shared flag helpers it reads, content/docs/** sentences naming -r/--runtime for os package install; row 12 packages/rest/src/meta-item-read-gate.ts (the Setup app refusal text, localized as its sibling refusals are) and the REST i18n bundle it reads; their tests; one root .changeset/ file. ⛔ packages/spec/**, ui/**, packages/runtime/**, packages/platform-objects/** (stop on breach; explain in the report)
    Container & model: M, mode:thread, model: default (dispatch-gates --tier: no path-derived mandate; floor sonnet · default opus · ceiling fable), effort: high
    Clause-②: yes (narrowing)
    Metadata-protocol: none
    Responsibility: n/a — not a defect card
    Thread-read: 6674432613
    Premise: ruling 6674432613. Row 13 A: -u/--url replaces -r/--runtime with no alias (BREAKING; the changeset writes FROM → TO), and -t/--token is added beside --email/--password. Row 12: PR #30459 has merged, so the serial is cleared; the dev re-measures it on origin/main. Row 9 A: no change. Row 16 A: its own card, filed by this seat.
    Serial constraints cleared: PR #30459 merged; no open PR touches packages/cli/src/commands/package/** (the dev re-reads at branch start)

    Contract review owed (narrowing face) before the queue; the maintainer's per-PR word owed (BREAKING).

  13. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 6, 2026
  14. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#4 · os-elon-musk · session_016WV4czvZykUqhYxYXSSDt4

    Claim amendment · claim 6674704334 · 2026-11-06T01:55Z

    File surface, added: packages/cli/README.md (the os package install line that names -r/--runtime; it ships in the npm package). content/docs/deployment/cli.mdx and publish-and-preview.mdx are already covered.
    Out of surface, kept out: skills/objectstack-platform/references/operations.md:106 names --runtime for os package install. It is a governed (Tier H) skills line, so this PR does not carry it and stays ungoverned. The seat files it as its own skills-lane card, serial behind this PR, to land before the next release.
    Flags: no shared url/token flag definition exists in packages/cli, so install declares the same shape as the others. --url reads OS_RUNTIME_URL (as os login -u does), and --token reads a new OS_RUNTIME_TOKEN (install's OS_RUNTIME_* family, not OS_TOKEN). Accepted.

    Everything else in claim 6674704334 stands.

  15. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#4 · os-elon-musk · session_016WV4cxrNurGFU9PsE6NwNT
    os-dev-report

    {
      "issue": 30126,
      "status": "done",
      "branch": "claude/project-thread-nhel89",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/30792",
      "head": "6a2119cc920c077d610923e9fa7dceece3005f50",
      "session": "session_016WV4cxrNurGFU9PsE6NwNT",
      "premise_still_valid": true,
      "rows": {
        "12": "re-measured on origin/main b3098661 after PR #30459 merged: the gate's app (:1693) and dashboard/view (:797) 403s were fixed English sentences naming the API name; now renderOperationMessage permission_denied (the plugin-security catalog) in ExecutionContext.locale, REST hands the errors.* override lookup; runtime dispatcher gets the built-in catalog (packages/runtime not touched). The sentence no longer names the item: two #8013 pins (toContain('finance')) updated to the catalog sentence",
        "13": "ruling A: install -u/--url replaces -r/--runtime with no alias (OS_RUNTIME_URL kept), -t/--token added (new OS_RUNTIME_TOKEN, Bearer); token + email/password refused before any request. No shared CLI flag helper exists, so declared inline in export's shape. Docs: cli.mdx, publish-and-preview.mdx, cli README, create-objectstack AGENTS.md + blank README",
        "9": "ruling A: no change",
        "16": "ruling A: separate card, filed by the seat; not touched"
      },
      "summary": "Rows 12 and 13 of #30126 land in draft PR #30792 (Fixes #30126, title with !). Row 13 renames install's server flag to -u/--url with no alias and adds -t/--token; row 12 localizes the /meta read gate's PERMISSION_DENIED through the operation catalog's permission_denied.",
      "deviations": [
        "create-objectstack templates (AGENTS.md:103, blank/README.md:188) edited outside the claimed surface: published text the rename would make false; create-objectstack patch in the changeset",
        "row 12: the refusal sentence no longer names the item (permission_denied takes no placeholders; naming it would need a new catalog key in packages/spec, forbidden). Two #8013 pins asserting the app name in the message were rewritten; for the contract review",
        "row 12: also localizes the dashboard/view audience refusal (row 12 cites :797 as well as :1693)",
        "createMetaItemReadGate's name parameter is now unused, kept as _name so neither transport's call changes"
      ],
      "tests": "cli unit 388 files / 5415 passed; cli touched integration 7 files / 77 passed; rest full suite 396 files (2 #8013 pins failed first run, updated, 53/53 on re-run); runtime read-gate parity + dispatcher 3 files / 381 passed; cli + rest typecheck exit 0; new: package-install-url-token-flags.test.ts (8), meta-permission-refusal-locale.test.ts (9). Ablations restored blob == HEAD: token/email guard off -> 1/8 failed; locale dropped -> 6/9 failed",
      "gates": "dispatch-gates --commands at 6a2119cc: 97 commands; 95 exit 0 first pass; check:skill-examples and check:dual-build-cjs-loads exit 3 -> exit 0 after their named builds; --ran: 97 run, 0 NOT-MEASURED, 0 UNRUN, exit 0. check-adr-0087-registration: not-required (no-migration-prescription), green with the FROM/TO line",
      "line_budget": "30 files, +421 / -49 (470 changed lines)",
      "files_changed": [
        ".changeset/30126-package-install-url-token-setup-refusal-locale.md",
        "content/docs/deployment/cli.mdx",
        "content/docs/deployment/publish-and-preview.mdx",
        "packages/cli/README.md",
        "packages/cli/src/commands/package/install.ts",
        "packages/cli/test/exit-signal.pin.test.ts",
        "packages/cli/test/package-export.test.ts",
        "packages/cli/test/package-install-access-upgrade.test.ts",
        "packages/cli/test/package-install-customization-pair.test.ts",
        "packages/cli/test/package-install-hot-loaded.test.ts",
        "packages/cli/test/package-install-local-boot-steps.integration.test.ts",
        "packages/cli/test/package-install-local-handlers.integration.test.ts",
        "packages/cli/test/package-install-local-hooks.integration.test.ts",
        "packages/cli/test/package-install-local-jobs-pull.integration.test.ts",
        "packages/cli/test/package-install-local-jobs-shared-name.integration.test.ts",
        "packages/cli/test/package-install-local-jobs.integration.test.ts",
        "packages/cli/test/package-install-local-uninstall-cleanups.integration.test.ts",
        "packages/cli/test/package-install-mode.test.ts",
        "packages/cli/test/package-install-refusal-rendering.test.ts",
        "packages/cli/test/package-install-storage-dir.test.ts",
        "packages/cli/test/package-install-url-token-flags.test.ts",
        "packages/cli/test/package-install-withheld-maps.test.ts",
        "packages/create-objectstack/src/templates/AGENTS.md",
        "packages/create-objectstack/src/templates/blank/README.md",
        "packages/rest/src/meta-app-publish-gate.test.ts",
        "packages/rest/src/meta-item-absent-404.test.ts",
        "packages/rest/src/meta-item-read-gate.ts",
        "packages/rest/src/meta-permission-refusal-locale.test.ts",
        "packages/rest/src/meta-view-dashboard-audience-gate.test.ts",
        "packages/rest/src/rest-server.ts"
      ],
      "dogfood_battery": "pnpm --filter @objectstack/dogfood test at 6a2119cc: 422 files passed / 3 skipped, 3527 tests passed / 41 skipped, exit 0",
      "mcp_calls": "mcp__github__issue_read x1 (#30126), subscribe_pr_activity x1 on #30792 (session watch), message_thread x1 (seat questions)",
      "api_writes": "git push x3 (branch) · fleet-write pr_create -> #30792 (run 42155600973, read-back identical 7596 bytes) · this os-dev-report comment via post-stamped",
      "owed_before_queue": [
        "contract review (narrowing face), incl. the refusal no longer naming the item",
        "maintainer's per-PR word (BREAKING)"
      ],
      "open_questions": []
    }
  16. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#4 · os-elon-musk · session_016WV4czvZykUqhYxYXSSDt4

    Claim amendment · claim 6674704334 · 2026-11-06T03:30Z

    File surface, added (measured by the dev; accepted by the seat because the rename would make them false): packages/create-objectstack/src/templates/AGENTS.md and packages/create-objectstack/src/templates/blank/README.md, with 'create-objectstack': patch in the changeset.

    Everything else in claim 6674704334 (as amended 6674762721) stands.

  17. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#4 · os-elon-musk · session_016WV4czvZykUqhYxYXSSDt4

    Landing record · 2026-11-06T04:48Z · PR #30792 merged through the queue as 2fbddd4cb (ACCEPT 6676218133 on head 6a2119cc; contract review PASS 6676098596; maintainer's per-PR word 「同意」 recorded on the PR). Rows 12 and 13 have landed. Rows 8 and 15 landed earlier (PR #30688), row 9 A needed no change, and row 16 A is #30771. Follow-ups: #30797 (review should-fix) and #30772 (skills line, before the next release). Card closed completed by Fixes; pm:dispatched removed in this stroke.

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

Metadata

Metadata

Assignees

Labels

domain:serverDomain lane — seat card indexed by label:pm:seatenhancementNew feature or requestpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions