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
spec/service-datasource: tidy the EngineDatasourceDef.driver contract after #27666 — member doc, listDatasourceDefs read-back, required reconnect previous, stale test and guide lines (epic #27261) #27727
epic:#27261#1 · marchtian · session_017ihL2c5z3q4h8inrn5kwqV
Filing gate: ① should-fix findings owed by landed work (#27666, PR #27715), from its contract review 6508089206 (④ should-fix 1–4 and the ③ prose note). No must-fix; none opens a path today.
Reader: the epic PM (#27261), by pull; the fix spans packages/spec/src/contracts/data-engine.ts, packages/objectql/src/engine.ts, packages/services/service-datasource/src/datasource-connection-service.ts, packages/objectql/src/external-driver-floor.test.ts, content/docs/data-modeling/virtual-objects.mdx.
Dedupe (open AND closed): follow-ups of #27666 filed by the epic PM → none.
reach: read on the reviewed head df7e3c66; see 6508089206 ④ for each file:line.
type: Bug
IDataEngine.registerDatasourceDef? member doc: "last write wins, except an absent driver keeps the id stored before it".
ObjectQL.listDatasourceDefs returns driver, or the key doc says the read-back omits it.
DatasourceConnectionService.reconnect: previous becomes required, or the restore refuses to register a def whose driver it cannot name (a host calling reconnect without previous would serve a kept plugin pool unfloored).
external-driver-floor.test.ts ~:468-469: the keep test names the caller class it models (write-gate facts only), not the connection service.
Clause-②: decided by the dev from the diff (making previous required narrows an exported method's accept set) · Metadata-protocol: none. Touches packages/spec/src/**: owes a full Fable review and a CONTRACT_REVIEW_TIER record before landing.
epic:#27261#1 · marchtian · session_017ihL2c5z3q4h8inrn5kwqV
Claim: PM loop round 7 2026-10-29T21:54Z
Session: session_017ihL2c5z3q4h8inrn5kwqV (epic PM); implementing card thread session_017ihL2fhwqSBmy1XBXfcoU1
Account: marchtian
Branch: claude/project-thread-eecjmj (the card thread's platform-assigned branch — measured platform exception to claude/issue-<n>-<slug>)
Worktree: objectstack-issue-27727
Domain: domain:server
Seat: epic:#27261#1 (epic PM; no domain:* seat). Maintainer order, 田騏 2026-10-29T21:50Z: 「给我解释后续还有哪些卡,以及为什么不派」 (epic subtree p3 cards are dispatched, not left by pull)
File surface: packages/spec/src/contracts/data-engine.ts (member and key docs), packages/objectql/src/engine.ts (listDatasourceDefs), packages/services/service-datasource/src/** (reconnect's previous, tests), packages/objectql/src/external-driver-floor.test.ts (the keep test's framing), content/docs/data-modeling/virtual-objects.mdx (the "ADR-0015 … Tier A" line), generated references the spec change re-records, .changeset/** (stop on breach; explain in the report)
Container & model: S, mode:thread, model: default tier (dispatch-gates --tier: no path-derived mandate), effort: high
Clause-②: no (narrowing)
Metadata-protocol: none
Responsibility: #27666 (PR #27715) added EngineDatasourceDef.driver; its contract review 6508089206 (④ should-fix 1–4, ③ prose note) found the rest
Thread-read: none
Premise: holds — on origin/main the registerDatasourceDef? member doc still says "last write wins", listDatasourceDefs returns no driver, and reconnect's previous is optional.
Serial constraints: none in flight on these files. Contract face (published spec contract): the PR body says "Fable review owed", and it does not land until a CONTRACT_REVIEW_TIER record PASS is on its head.
PR #27788 merged through the queue as 07585bf03a on 2026-10-30T00:50:30Z (head a5f0c8b5; contract review PASS 6511604842 at CONTRACT_REVIEW_TIER, which also served as the full review of the spec change; seat ACCEPT 6511630066). DatasourceConnectionService.reconnect now requires previous with its driver id and refuses before eviction without it, and ObjectQL.listDatasourceDefs answers the stored driver. The record's should-fix (the refusal message wording) is carried by #27746 (PR #27819). The member-doc nit is on #27803.
Activity
objectstack-fleet commentedon Oct 29, 2026
epic:#27261#1 · marchtian · session_017ihL2c5z3q4h8inrn5kwqV
Claim: PM loop round 7 2026-10-29T21:54Z
Session:
session_017ihL2c5z3q4h8inrn5kwqV(epic PM); implementing card threadsession_017ihL2fhwqSBmy1XBXfcoU1Account:
marchtianBranch:
claude/project-thread-eecjmj(the card thread's platform-assigned branch — measured platform exception toclaude/issue-<n>-<slug>)Worktree:
objectstack-issue-27727Domain:
domain:serverSeat:
epic:#27261#1(epic PM; nodomain:*seat). Maintainer order, 田騏 2026-10-29T21:50Z: 「给我解释后续还有哪些卡,以及为什么不派」 (epic subtree p3 cards are dispatched, not left by pull)File surface:
packages/spec/src/contracts/data-engine.ts(member and key docs),packages/objectql/src/engine.ts(listDatasourceDefs),packages/services/service-datasource/src/**(reconnect'sprevious, tests),packages/objectql/src/external-driver-floor.test.ts(the keep test's framing),content/docs/data-modeling/virtual-objects.mdx(the "ADR-0015 … Tier A" line), generated references the spec change re-records,.changeset/**(stop on breach; explain in the report)Container & model:
S,mode:thread,model: default tier (dispatch-gates --tier: no path-derived mandate),effort: highClause-②: no (narrowing)
Metadata-protocol: none
Responsibility: #27666 (PR #27715) added
EngineDatasourceDef.driver; its contract review 6508089206 (④ should-fix 1–4, ③ prose note) found the restThread-read: none
Premise: holds — on
origin/maintheregisterDatasourceDef?member doc still says "last write wins",listDatasourceDefsreturns nodriver, andreconnect'spreviousis optional.Serial constraints: none in flight on these files. Contract face (published spec contract): the PR body says "Fable review owed", and it does not land until a
CONTRACT_REVIEW_TIERrecord PASS is on its head.objectstack-fleet commentedon Oct 30, 2026
epic:#27261#1 · marchtian · session_017ihL2c5z3q4h8inrn5kwqV
Landed · 2026-10-30T01:25Z
PR #27788 merged through the queue as
07585bf03aon 2026-10-30T00:50:30Z (heada5f0c8b5; contract review PASS 6511604842 atCONTRACT_REVIEW_TIER, which also served as the full review of the spec change; seat ACCEPT 6511630066).DatasourceConnectionService.reconnectnow requirespreviouswith itsdriverid and refuses before eviction without it, andObjectQL.listDatasourceDefsanswers the storeddriver. The record's should-fix (the refusal message wording) is carried by #27746 (PR #27819). The member-doc nit is on #27803.