feat(spec)!: retire the connector triggers array — the ConnectorTrigger shape nothing registered, polled or received (#20287) - #20587
Conversation
…s, pins Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <noreply@anthropic.com>
…d surface baselines Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <noreply@anthropic.com>
… the triggers retirement Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <noreply@anthropic.com>
…nnector-triggers-retired
…ow rule that landed on main Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <noreply@anthropic.com>
…nnector-triggers-retired Resolves packages/spec/src/migrations/registry.ts: main's side (step 18's rationale as key-sorted fragments, conversionIds derived), with this branch's hand-written rationale carried over as fragment edits — the connector pair note in duration-keys-unit-in-key, the resilience fragment's tail, and a new connector-triggers-retired fragment (order 47). Generated regions are main's here and are regenerated in the next commit. Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <noreply@anthropic.com>
…ter merging main Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <noreply@anthropic.com>
… pending resilience note's 'rename is unaffected' sentence Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <noreply@anthropic.com>
📓 Docs Drift CheckThis PR changes 1 package(s): 3 hand-written doc(s) NAME something this change touched and may need an implementation-accuracy re-verification:
⛔ 3 release-owned page(s) also name something this change touched. These are read-only:
What this run could not see
Coarse fallback — 137 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): Which tree this was computed onThis run read A worktree cut from an older # while this PR is open — GitHub drops the merge commit once it closes
git fetch origin 649df038ed80ceb4ebdfbad74882d4372ba1bff1 && git checkout 649df038ed80ceb4ebdfbad74882d4372ba1bff1
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin 1322cc72c96f9e80240c1fe0a7d12708f3b269b9 4f8c62b3975236c86e079f64bff19dc1005b50f6 && git checkout -B drift-repro 1322cc72c96f9e80240c1fe0a7d12708f3b269b9 && git merge --no-ff 4f8c62b3975236c86e079f64bff19dc1005b50f6
node scripts/docs-audit/affected-docs.mjs --json 1322cc72c96f9e80240c1fe0a7d12708f3b269b9
|
Contract reviewServed-tier: Director seat (objectstack#12708, ① Derived judgments
② Semver level
③ Boundary flags
Implemented-by: VERDICT: PASS |
…nnector-triggers-retired Resolves packages/spec/liveness/README.md: main's realtime_subscription and analytics_cube rows, this branch's connector row (the only row either side changed in that hunk). step 18's rationale auto-merged beside main's cube-member-inner-name-retired fragment (order 47); this branch's connector-triggers-retired fragment moves to order 48, one past the highest now present. Generated regions are regenerated in a following commit. Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <noreply@anthropic.com>
…0 label, and name the released resilience note the changeset corrects main now carries the 17.5.0 label (the version-packages merge), and 17.5.0 still accepts `triggers`, so it is the last release the retirement follows. The 20273 note was consumed into the 17.5.0 changelog entry; the correction sentence names it by that release and its D2 id. Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <noreply@anthropic.com>
|
Director note · record superseded by the head move · 2026-09-29T07:54Z Director seat (objectstack#12708,
Before the landing: the fix pushed, CI green, and a delta record at that head (the delta from |
…e live registry, not a snapshot of its stamps Three pins hard-coded which retirements a floor opens — 'every retirement is stamped 17.4.0 or earlier' — and went red when connector-triggers-removed, landing after the 17.5.0 version pass, was stamped 17.5.0 as the census rule requires. The door behaves as its rule says; the pins now derive the opened set from ALL_CONVERSIONS, keep every refusal assertion, and keep the 'authored-current' verdict at full strength on a floor past every stamp. Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <noreply@anthropic.com>
Contract reviewServed-tier: Director seat (objectstack#12708, ① Derived judgments
② Semver levelUnchanged: ③ Boundary flags
Implemented-by: VERDICT: PASS |
Contract reviewServed-tier: Inputs read: card #20287 (body and all 11 comments, the ruling ① Derived judgmentsAccept-set and public-surface changes the diff implies
Text an author acts on — sentence by sentence
② Semver level
③ Boundary flagsDev flags (stage-2 report
Deviations this record names that the dev did not list as such:
Check-runs on Verdict reasoning: the tree, the accept-set, the stamp, the ledger and the pins are right; the two failing items are two sentences in the changeset — text that ships to consumers as Implemented-by: VERDICT: FAIL Adopted and posted by Generated by Claude Code |
…eleased 17.5.0 entry that is true of 17.5.0 Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <noreply@anthropic.com>
…op 'never released' Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <noreply@anthropic.com>
…me id retired, 17.4.0 and 17.5.0 Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <noreply@anthropic.com>
|
Director note · this seat's delta PASS Director seat (objectstack#12708, The rest of |
Contract reviewServed-tier: Inputs read: card #20287 (body and all 13 comments — the maintainer's ruling ① Derived judgmentsAccept-set and public-surface changes the diff implies
Text an author acts on — sentence by sentence
② Semver level
③ Boundary flagsDev flags (stage-2 report
Deviations this record names that the dev did not list as such:
Check-runs on Verdict reasoning: the accept-set change is the one the ruling ordered and is delivered on both carriers with the ADR-0087 kit complete; the stamp is right on both rules and confirmed against the published tarball; the ledger, the baselines and the pins are right; the two changeset sentences that failed the prior head are gone and every sentence an author acts on is now true and sourced; every dev flag is answered or carried by a ruling on the card; the head is green. Implemented-by: VERDICT: PASS Adopted and posted by Generated by Claude Code |
Part of #20287
Clause-②: no (narrowing). The tombstone refuses
triggers, which parses today.@objectstack/specminor, with the BREAKING banner and the ADR-0087 disposition the ruling sets.Retires
connector.triggers(theConnectorTriggerarray) under ADR-0049, per the director's ruling on the card (letter B; ADR-0041 unchanged, no new ADR).triggersis aretiredKey()tombstone onConnectorBaseSchema. Its prescription names what works today: anapiflow for an external event and ascheduleflow for a scheduled pull, each calling the connector's action in aconnector_actionnode.triggersis deleted: the tombstone refuses every value first, so that rule could no longer be reached.ConnectorTriggerleaves whole. The D2connector-triggers-removed(step 18) carriesretiredAfter17.5.0, the labelmaincarries after the 17.5.0 cut. The D3 isconnector-triggers-retired.triggers[].interval→intervalSecondsrename is absorbed (spec-property-retirement§0).triggersrows collapse into onedeadtombstone row. Generated files are regenerated.metadata-core's per-entry window pins now state the window rule over the live registry, not a snapshot of itsretiredAfterstamps. This first post-cut stamp broke the snapshot.#20287 stays open for its action half.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1