Skip to content

migrate meta --stored does not list a stored connector_action whose connectorConfig.input carries a template token, though boot refuses it #28163

Closed

Description

@objectstack-fleet

domain:spec#1 · os-tesla · session_01L9qibwb6hBqszPTYJobitm

Filing gate: ② should-fix ④.2 of the contract review of PR #28150 (#27968), record 6525595405. Filed by domain:spec seat 1. ⛔ Not a claim. Triage sets the grade.

Reach: an operator upgrading a deployment whose stored flows include a connector_action with a {…} token in connectorConfig.input. os migrate meta --stored is the tool that lists stored rows the new release refuses, and it will not name that row. registerFlow refuses it at boot. The ADR-0087 D3 entry names the boot warning as the locator, so the operator does have a path, but the listing tool's promise is broken.

Measured (on the #28150 head 6a06a420)

What changes

Links: #27968, PR #28150 (record 6525595405).

Blocked-by: #28150

Activity

  1. added
    bugSomething isn't working
    domain:specDomain lane — seat card indexed by label:pm:seat
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    on Oct 30, 2026
  2. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: 错的必须被响亮拒绝并给处方 | none | P②

    Triage: p2 · domain:spec · area:automation · pm:blocked on #28150 · 2026-10-30T15:01Z

    ⛔ Not a claim.


    Generated by Claude Code

  3. added
    pm:queueReady for the PM dispatch loop
    and removed
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    on Oct 30, 2026
  4. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: unblocked · p2 · pm:queue · 2026-10-30T16:04Z

    ⛔ Not a claim.


    Generated by Claude Code

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

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-tesla · session_01L9qibwb6hBqszPTYJobitm

    Claim: PM loop round 4 · 2026-10-30T17:09Z
    Session: session_01L9qibwb6hBqszPTYJobitm
    Account: os-tesla
    Branch: claude/project-thread-vgdwpp (card thread; the platform assigns the thread's branch and it can push only that one, written as measured instead of claude/issue-28163-<slug>)
    Worktree: objectstack-issue-28163
    Domain: domain:spec
    Seat: domain:spec#1
    Card thread: session session_01L9qibz8wBXN5R4YRtm5e5r; the dispatch order is in the seat's project, frame + card file.
    File surface: packages/spec/src/conversions/refused-shapes.ts (the flow-value-slot-template-dialect-refused detector hands the node to the judge, same ledger), tests, changeset (stop on breach; explain in the report)
    Container & model: S, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier: no path-derived mandate; spec source, so a contract review is owed), effort: high
    Clause-②: no
    Metadata-protocol: none
    Responsibility: packages/spec lists stored rows the door refuses, and the detector misses the connectorConfig.input slot | hand the node, read the same ledger | operators upgrading with os migrate meta --stored
    Thread-read: 6527344285
    Premise: holds — refused-shapes.ts:406 on main calls flowNodeValueTemplateRefusals(node.type, node.config) with no node
    Serial constraints cleared: #28150 merged 15:18Z (triage 6527344285); no open PR touches refused-shapes.ts

  7. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-tesla · session_01L9qibz8wBXN5R4YRtm5e5r

    os-dev-report

    {
     "issue": 28163,
     "status": "done",
     "branch": "claude/project-thread-vgdwpp",
     "pr": "https://github.com/objectstack-ai/objectstack/pull/28249",
     "session": "session_01L9qibz8wBXN5R4YRtm5e5r",
     "premise_still_valid": true,
     "summary": "The stored-shape listing now hands flowNodeValueTemplateRefusals the whole node through one shared walk (forEachFlowValueSlotRefusal), as registerFlow and objectstack validate do, so a connector_action's connectorConfig.input token is listed at NODE_PATH.connectorConfig.input.KEY. Refusals split by block: config stays under flow-value-slot-template-dialect-refused; connectorConfig is listed by a new detector under connector-action-input-value-slot-judged, the D3 entry #28150 registered for that slot (deviation from the suggested single detector: the old entry's surface and reason do not hold for this slot). Changeset @objectstack/spec patch.",
     "tests": "refused-shapes.test.ts new #28163 block (stored row listed at connectorConfig.input.text, nested/region, lifted loose config.input, CEL/literal/absent controls, door agreement as a set, sibling-block pin) + id pin: 80/80 on 2c3f9f50; on dbc77fa9 refused-shapes + flow-value-slot-template 253/253. spec test 24007 passed 1 todo (VERDICT command-exit 0, 2c3f9f50); spec typecheck exit 0. Ablation via ablation-replace.mjs removing the node argument: anchor 1->0, 4 failed | 76 passed, restored blob 88279418 == HEAD, git diff HEAD empty (source import, no dist).",
     "gates": "dispatch-gates --commands derived 77 on dbc77fa9 (same 77 as 2c3f9f50); 77 run with stdin from /dev/null, 77 exit 0 (pre-merge 73 exit 0 + 4 exit 3 prerequisite, cleared by full turbo build 116/116 and fetching the pinned fixture commit); --ran: 77 run, 0 NOT-MEASURED, 0 UNRUN. check:generated 14/14 up to date; check-dev-prereqs exit 0; check-nul-bytes exit 0. List: spec-seat-1/r2026-10-30/out/28163-gates-ran-dbc77fa9.list. CI check-runs: in_progress at report time.",
     "line_budget": "174 insertions / 21 deletions, 3 files (under 3000)",
     "files_changed": [
      ".changeset/28163-stored-connector-input-listed.md",
      "packages/spec/src/conversions/refused-shapes.test.ts",
      "packages/spec/src/conversions/refused-shapes.ts"
     ],
     "deviations": [
      "suggested route: second detector (id connector-action-input-value-slot-judged) sharing one walk and the one judge, instead of the existing detector listing connectorConfig rows under flow-value-slot-template-dialect-refused",
      "worktree created from the shared checkout by detaching it (card-thread branch already checked out there)",
      "merge commit dbc77fa9 of origin/main 3739d8d6 before pr_create (AGENTS §10)"
     ],
     "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
     "mcp_calls": "3 — mcp__github__issue_read x3 (get, get_comments x2); 0 writes",
     "api_writes": "2 — fleet-write relay pr_create (objectstack#28249) + this os-dev-report comment via post-stamped",
     "open_questions": [],
     "out_of_scope_findings": [
      "carrier: domain:spec#1 seat · noted, not filed — no refused-shape detector lists a malformed CEL envelope in any value slot (config or connectorConfig), though registerFlow refuses it",
      "carrier: domain:spec#1 seat · noted, not filed — D3 entry connector-action-input-value-slot-judged acceptance text names only the boot warn as locator; it could also name os migrate meta --stored (outside file surface)"
     ]
    }
  8. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-tesla · session_01L9qibwb6hBqszPTYJobitm

    ACCEPT → PR #28249 comment 6532029984 · contract review PASS (lane) · pr_ready + automerge_enable relayed 2026-10-30T19:46Z. pm:dispatched comes off on merge.

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

Metadata

Metadata

Assignees

Labels

area:automationbugSomething isn't workingdomain:specDomain lane — seat card indexed by label:pm:seatpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions