Skip to content

Extract control plane executor#7

Merged
wmadden merged 15 commits intoextend-coveragefrom
extract-control-plane-executor
Nov 14, 2025
Merged

Extract control plane executor#7
wmadden merged 15 commits intoextend-coveragefrom
extract-control-plane-executor

Conversation

@wmadden
Copy link
Copy Markdown
Contributor

@wmadden wmadden commented Nov 13, 2025

No description provided.

@wmadden wmadden force-pushed the extract-control-plane-executor branch from 0a7fd6a to 5d7015f Compare November 14, 2025 07:15
@wmadden wmadden changed the base branch from main to extend-coverage November 14, 2025 07:15
@wmadden wmadden force-pushed the extract-control-plane-executor branch from 5d7015f to 2fbcc7c Compare November 14, 2025 07:18
@wmadden wmadden force-pushed the extract-control-plane-executor branch from 2fbcc7c to 8e89324 Compare November 14, 2025 07:35
@wmadden wmadden merged commit a70b1c2 into extend-coverage Nov 14, 2025
3 checks passed
@aqrln aqrln deleted the extract-control-plane-executor branch December 15, 2025 13:54
wmadden added a commit that referenced this pull request Mar 30, 2026
Phase 3 (minimal Mongo ORM) proved the contract shape. Comparative
analysis with the SQL ORM revealed the Collection chaining API,
CollectionState, and row type inference are shared architectural
patterns. Record this finding:

- ADR 4: shared Collection interface with fluent chaining, family-
  specific compilation at terminal methods, spike-then-extract approach
- Cross-cutting learning #6: shared ORM surface enumeration
- Mongo Overview: Phase 3 complete, DQ #7 resolved, ADR 4 referenced
- PoC plan: Phase 3 moved to completed, Phase 4 rewritten for
  Collection interface direction
wmadden added a commit that referenced this pull request Mar 30, 2026
Phase 3 (minimal Mongo ORM) proved the contract shape. Comparative
analysis with the SQL ORM revealed the Collection chaining API,
CollectionState, and row type inference are shared architectural
patterns. Record this finding:

- ADR 4: shared Collection interface with fluent chaining, family-
  specific compilation at terminal methods, spike-then-extract approach
- Cross-cutting learning #6: shared ORM surface enumeration
- Mongo Overview: Phase 3 complete, DQ #7 resolved, ADR 4 referenced
- PoC plan: Phase 3 moved to completed, Phase 4 rewritten for
  Collection interface direction
wmadden added a commit that referenced this pull request Mar 31, 2026
Phase 3 (minimal Mongo ORM) proved the contract shape. Comparative
analysis with the SQL ORM revealed the Collection chaining API,
CollectionState, and row type inference are shared architectural
patterns. Record this finding:

- ADR 4: shared Collection interface with fluent chaining, family-
  specific compilation at terminal methods, spike-then-extract approach
- Cross-cutting learning #6: shared ORM surface enumeration
- Mongo Overview: Phase 3 complete, DQ #7 resolved, ADR 4 referenced
- PoC plan: Phase 3 moved to completed, Phase 4 rewritten for
  Collection interface direction
jkomyno pushed a commit that referenced this pull request Apr 1, 2026
Phase 3 (minimal Mongo ORM) proved the contract shape. Comparative
analysis with the SQL ORM revealed the Collection chaining API,
CollectionState, and row type inference are shared architectural
patterns. Record this finding:

- ADR 4: shared Collection interface with fluent chaining, family-
  specific compilation at terminal methods, spike-then-extract approach
- Cross-cutting learning #6: shared ORM surface enumeration
- Mongo Overview: Phase 3 complete, DQ #7 resolved, ADR 4 referenced
- PoC plan: Phase 3 moved to completed, Phase 4 rewritten for
  Collection interface direction
jkomyno added a commit that referenced this pull request May 8, 2026
* #7 — SQLite AFTER-trigger mitigation: decision recorded as defer.
  JSDoc on buildRowIdentityCriterion + Query Lanes.md paragraph remain
  the documented mitigation; no runtime guard added until the SQLite
  adapter actually exercises id-less + AFTER-trigger contracts.

* #8 — Asymmetric `returning` gate: comment at executeUpdateCount
  records the explicit design choice. Surface-level updateCount/
  deleteCount require the capability; FK-rewrite cleanup
  (disconnect/setNull) does not, since no row data is read.

* #9 — Trim WHAT-restating sentence from buildRowIdentityCriterion
  comment block. Remaining lines explain the genuinely non-obvious
  WHY: RETURNING-by-construction invariant + duplicate-tuple caveat
  + SQLite AFTER-trigger caveat.

* #10 — Add typed `withoutPrimaryKey<TTable>(contract, table)` helper
  to test/helpers.ts mirroring `withCapabilities`. Migrate four call
  sites (createIdlessTagsCollection, createIdlessUsersCollection, two
  unit tests in mutation-executor.test.ts) from inline
  `as unknown as TestContract` casts to the helper. Cast lives in one
  place now.

* #11 — Drop redundant `updateCount returns zero` integration test
  on id-less Tags. The zero-match path is already covered by unit
  tests on PK contracts and does not exercise id-less specifics.

* #12 — Extract `getPrimaryKeyColumns(contract, tableName): readonly
  string[]` helper in collection-contract.ts. Replaces three
  duplicated raw-storage accesses (resolvePrimaryKeyColumn,
  pickCountReturningColumn, buildRowIdentityCriterion, the new P1
  guard).

* #13 — Plan doc references the post-rename name throughout.

* #14 — Trim `resolvePrimaryKeyColumn` error to one sentence; the
  API guidance prose duplicated content already in Query Lanes.md.

All 8 P3 todos marked complete. pnpm test:packages 110/110 green;
pnpm lint:deps 0 violations. sql-orm-client suite is 501 (one fewer
than before due to dropped redundant test).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant