-
Notifications
You must be signed in to change notification settings - Fork 6
feat(codec-registration-completion): unify codec registration (TML-2357) #417
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
wmadden
merged 156 commits into
main
from
tml-2357-codec-registration-model-complete-the-unified
May 9, 2026
Merged
Changes from all commits
Commits
Show all changes
156 commits
Select commit
Hold shift + click to select a range
d54d39e
project(codec-registration-completion): draft spec and plan for TML-2357
wmadden b644abd
wip(codec-registration-completion): M1 in-progress narrowing of runti…
cursoragent 8db27a9
(TML-2357) M1 R1: complete narrowed-Codec migration
wmadden aac9d87
project(codec-registration-completion): apply m1 R1 plan/spec amendme…
wmadden e28d7a9
(TML-2357) M1 R2: address reviewer F1 cast cleanup
wmadden 2f1f4b8
TML-2357 M2: introduce aliasDescriptor for descriptor-level aliasing
wmadden 378edd2
(TML-2357) M2 setup: add codecDescriptor() and defineCodecDescriptors…
wmadden 7e7d30b
(TML-2357) M2 T2.2: add native CodecDescriptor exports to sql-relatio…
wmadden 5855af1
(TML-2357) M2 T2.3: add native CodecDescriptor exports to postgres ta…
wmadden f457212
(TML-2357) M2 T2.4: add native CodecDescriptor exports to sqlite targ…
wmadden 2ecb714
(TML-2357) M2 T2.5: migrate pgvector to native CodecDescriptor
wmadden eca4267
(TML-2357) M2 T2.6: delete arktypeJsonEmitCodec emit-only shim
wmadden 824487f
M2 Phase A: unify SQL contributor codec slot, drop synthesis bridge
wmadden f9b5c98
M2 Phase B: retire CodecParamsDescriptor + aliasCodec + scrub stale s…
wmadden 332208e
extractCodecLookup reads codec metadata from descriptor list
wmadden 5e92b79
codecDescriptor() materializes a narrow codec instance
wmadden c0d12cf
M2 Phase B: narrow MongoCodec + scrub framework-components README
wmadden 56094c1
M2 Phase B: narrow SQL Codec to id+conversion + migrate test reads to…
wmadden 7ab483f
M2 Phase B: drop the four inlined as-unknown-as Codec casts at the po…
wmadden b331e13
M2 Phase B: add T2.10 no-synthesis-bridge constructive test
wmadden dac21cd
M2 R3: rename createCodecRegistry → newCodecRegistry; drop CodecRegis…
wmadden 072a178
M2 R3: rename legacy + parallel codec factories and builder property …
wmadden 1ba7535
M2 R3: retire F1 LegacyCodecInstanceMeta cast and codecInstances slot
wmadden df132bd
M2 R3: scrub legacy codec-API references from docs and retire no-synt…
wmadden bb5f299
M2 R4: add narrow buildCodec helper for runtime Codec materialization
wmadden 0d03b34
M2 R4: derive SQL base codec maps from descriptors; drop legacy facto…
wmadden e67ce12
M2 R4: derive postgres codec maps from descriptors; drop legacy facto…
wmadden e49333c
M2 R4: derive sqlite codec maps from descriptors; drop legacy factories
wmadden 8ad46cb
M2 R4: derive pgvector codec maps from descriptor; drop legacy factories
wmadden a97e421
M2 R4: migrate arktype-json closure to buildCodec helper
wmadden eb75c5c
M2 R4: delete legacy mkCodec test suites and stale comment refs
wmadden 080a017
M2 R4: migrate test fixtures from mkCodec to buildCodec
wmadden 79ce2ff
M2 R4: delete legacy mkCodec / defineCodecGroup / defineCodecBundle
wmadden dfc03f4
M2 R4: cleanup doc references and ADR 207 import drift (F4)
wmadden 4fb8391
M2 R4: thread typed Codec through descriptor byScalar slots
wmadden 0a156dc
M2 R4: type defineCodec factory return as Codec<Id, TTraits, TWire, T…
wmadden be10755
Revert "M2 R4: type defineCodec factory return as Codec<Id, TTraits, …
wmadden ea400f7
M2 R4: narrow descriptor-derived codec result type in sqlite test
wmadden beab69b
Reapply "M2 R4: type defineCodec factory return as Codec<Id, TTraits,…
wmadden 387be31
Revert "Reapply "M2 R4: type defineCodec factory return as Codec<Id, …
wmadden 7514d78
Revert "M2 R4: thread typed Codec through descriptor byScalar slots"
wmadden 3f0041e
M2 R4 rollback: revert chain to M2 R3 HEAD (a29e06245)
wmadden 2bcd26a
Add M0 typed-codec-flow precondition spec to TML-2357
wmadden a2cff7f
docs(codec-registration-completion): lock in Strength 3 forcing funct…
wmadden 64bb328
docs(codec-registration-completion): factory-defined codec types goal…
wmadden b640c3c
docs(codec-registration-completion): refine Mode C goal spec per disc…
wmadden 16725e6
docs(codec-registration-completion): add Data flow section to Mode C …
wmadden 6521fd9
docs(codec-registration-completion): class-based codec design spec (M…
wmadden 9db4009
docs(codec-registration-completion): rewrite class-based spec around …
wmadden fe81c65
docs(codec-registration-completion): fold spike findings into class-b…
wmadden 62812c1
docs(codec-registration-completion): rewrite M0 plan around Pattern E…
wmadden 09c5ab6
feat(framework-components)(TML-2357): M0 Phase A T0.A.1 — class-based…
wmadden f794126
test(framework-components)(TML-2357): M0 Phase A T0.A.3 — class-based…
wmadden 0d1a75f
refactor(framework-components): move ColumnTypeDescriptor from contra…
wmadden d703b39
refactor(framework-components): consolidate codec interfaces and Impl…
wmadden 891eed4
refactor(framework-components,postgres): delete aliasDescriptor; repl…
wmadden 3d3fb96
docs(codec-registration-completion): update plan after Phase A landin…
wmadden d80c198
feat(sql-relational-core)(TML-2357): M0 Phase B1 — class-based base c…
wmadden 58abe7a
refactor(postgres)(TML-2357): M0 Phase B1 — defensive rework of legac…
wmadden b3ef2c3
feat(contract)(TML-2357): arktypeParamsSchema helper for arktype → St…
wmadden db1d9d4
refactor(sql-relational-core)(TML-2357): use arktypeParamsSchema help…
wmadden 35849ad
feat(postgres)(TML-2357): M0 Phase B2 — class-based form for native P…
wmadden f8f216c
docs(codec-registration-completion)(TML-2357): align spec § Heterogen…
wmadden 4f4a6eb
fix(framework-components,sql-relational-core,postgres)(TML-2357): F5 …
wmadden 1486401
test(framework-components)(TML-2357): F6 — drop CodecDescriptor<unkno…
wmadden 5d0a351
test(framework-components)(TML-2357): F7 — runtime tests for CodecImp…
wmadden b057a84
feat(target-sqlite)(TML-2357): M0 Phase B3 — class-based form for nat…
wmadden bab0fe3
feat(extension-pgvector)(TML-2357): M0 Phase B4 — class-based form fo…
wmadden bce137d
feat(extension-arktype-json)(TML-2357): M0 Phase B4 — class-based for…
wmadden bb32ed3
codec(postgres): swap adapter consumption to class-form descriptors (…
wmadden 9908c7f
codec(sqlite): swap adapter consumption to class-form descriptors (T0…
wmadden 1b62cfb
codec(extensions): swap pgvector + arktype-json contributors to class…
wmadden f570a9d
test(arktype-json): update runtime descriptor test for B5 class-form …
wmadden 866db31
TML-2357 M0 R5: migrate sql-runtime tests off mkCodec to defineTestCo…
wmadden c5c35b0
TML-2357 M0 R5: migrate relational-core tests onto class-form descrip…
wmadden 789fc69
TML-2357 M0 R5: migrate postgres tests onto class-form descriptors
wmadden 462a00c
TML-2357 M0 R5: migrate sqlite adapter codecs test onto class-form de…
wmadden 9fe0c5f
TML-2357 M0 R5: migrate pgvector tests onto class-form descriptor
wmadden 11bb1d3
TML-2357 M0 R5: migrate sql-orm-client + cross-family tests off mkCodec
wmadden ee70237
TML-2357 M0 R5: delete legacy postgres codec carriers
wmadden b48a88b
TML-2357 M0 R5: delete legacy sqlite codec carriers
wmadden 9dd9fd3
TML-2357 M0 R5: delete legacy pgvector codec carriers
wmadden 1aa2def
TML-2357 M0 R5: delete legacy arktype-json codec carriers
wmadden e4cd5ad
TML-2357 M0 R5: delete legacy carrier types + rename ExtractDescripto…
wmadden 40d09d9
TML-2357 M0 R5: refresh stale legacy-carrier comments + docs after de…
wmadden 7b39af9
TML-2357 M0 R5: F4 — replace ADR 207 grounding example with class-for…
wmadden 3267c15
TML-2357 M0 R5: fix DescriptorCodecTraits to read traits off the desc…
wmadden 9226bcf
TML-2357 M0 R6: fix F8 — restore CodecTypes portability across consumers
wmadden ff4c67a
TML-2357 M0 R6: T0.D.1 typed-codec-flow type tests in relational-core
wmadden 0a73ac0
TML-2357 M0 R6: T0.D.2 per-target descriptor flow type tests
wmadden f1221bf
TML-2357 M0 R6: T0.D.3 no-emit authoring chain demo type test (AC-CB-6)
wmadden 80134ab
TML-2357 M3: T3.2 extend ParamRef + ProjectionItem AST with refs
wmadden 138f074
TML-2357 M3: T3.3 add validateParamRefRefs builder-pipeline pass
wmadden 6481ed2
TML-2357 M3: T3.4 populate refs at every column-bound ParamRef site
wmadden 73cfddb
TML-2357 M3: T3.5 encode-side dispatch via forColumn + run validator …
wmadden ea242ba
TML-2357 M4: delete JsonSchemaValidatorRegistry and retire `json-vali…
wmadden bb63791
TML-2357 close-out: align long-lived docs with post-migration state
wmadden 87628b0
TML-2357 close-out: strip project-internal phase markers from code co…
wmadden 162f1ae
TML-2357 close-out: delete projects/codec-registration-completion/
wmadden 0509138
Restore projects/codec-registration-completion/ tracked files
wmadden c0847b1
TML-2357 close-out: cross-reference TML-2402 / TML-2403 follow-ups
wmadden 220a6d3
F9 prep: export buildCodecDescriptorRegistry from relational-core
wmadden 643f51a
F10: drop Class suffix from descriptor instance names
wmadden 6f13bf1
F9+F10 (target-postgres): expose postgresCodecRegistry as the public …
wmadden a20b063
F9+F10 (target-sqlite): expose sqliteCodecRegistry as the public cons…
wmadden 5903a7b
F9+F10 (extension-pgvector): expose pgvectorCodecRegistry as the publ…
wmadden e29a0ac
F9+F10 (extension-arktype-json): expose arktypeJsonCodecRegistry as t…
wmadden 5afe73e
F10 (target-postgres): rename core/codecs-class.ts → core/codecs.ts a…
wmadden 6ae3eb7
F10 (target-sqlite): rename core/codecs-class.ts → core/codecs.ts and…
wmadden 9aab458
F10 (extension-pgvector): rename core/codecs-class.ts → core/codecs.t…
wmadden f3a6118
F10 (extension-arktype-json): align imports + test filenames after co…
wmadden 46b4b3c
F10: scrub class-form / class-based vocabulary in shared layers and docs
wmadden 92aa8c2
F10 (sql-orm-client tests): scrub residual class-form vocabulary in c…
wmadden 70585b9
F11: rename ast/sql-codecs-class.ts to ast/sql-codecs.ts (helper-modu…
wmadden d665afa
F13+F14+F20: tighten arktype params schemas, retire arktypeParamsSche…
wmadden 8a16cea
F12: move isParameterized to descriptor; retire IsParameterizedCodecI…
wmadden 410fc4d
F15: replace unique symbol phantom branding with string-key phantom
wmadden be9eeab
F16: rewrite codec-authoring-guide alias section to match real pattern
wmadden 6c2d4cc
F17: fix self-referential JSDoc helper-source reference
wmadden ce51930
F18: assert leaf scalar type in no-emit-typed-flow test
wmadden 9ffbb54
F19+F31+F32+F33: harden extractCodecLookup; lift inline imports
wmadden 88c6071
F21: stable codec registry in createStubAdapter
wmadden c8d26dd
F22+F26+F29: dispatch correctness for column-aware encode/decode
wmadden ad7a977
F23+F24+F25: tighten arktype-json schema rehydration + test hygiene
wmadden 2c1f7d0
F28: throw on duplicate codecId in buildCodecDescriptorRegistry
wmadden 08297bb
F30: move codecDescriptorMap into core; keep Resolve materialisation …
wmadden aef593e
F19 refinement: try empty params for parameterized representatives
wmadden 498f9b6
F34+F35+F36: tighten postgres codec-helper input validation
wmadden a975473
F37: reject Invalid Date in SqliteDatetimeCodec decode/decodeJson
wmadden 9f9d8e4
F39: tighten enumParamsSchema and EnumParams to string[]
wmadden ae581e5
F27 phase 1 — retire CodecRegistry.register() in favor of buildCodecR…
wmadden 956bd0b
F27 phase 2 — retire CodecRegistry interface; consolidate to CodecDes…
wmadden 31a21f8
chore: align main-introduced surfaces with codec consolidation after …
wmadden a96d9a4
F40: pass through runtime envelopes in decodeField
wmadden 6cde7ed
F40 follow-up: update inline-validation test to expect envelope passt…
wmadden 9535730
F41: partition descriptors by isParameterized, not paramsSchema identity
wmadden ad5ee28
F42: materialise per-column codec instances for forColumn dispatch
wmadden a35ff69
F43: reject non-positive vector lengths in mongo renderOutputType
wmadden e6a4c2f
F44+F45: doc fixes — ADR 208 future-work bullet vocabulary and framew…
wmadden 2d84863
fix(sql-runtime test): biome noConfusingVoidType — use undefined for …
wmadden 3d3f7da
docs(codec): remove orphaned JSDoc; reflow prose without ~80-col wraps
wmadden 9da620e
chore(agents): move jsdoc line-wrap rule from .cursor/rules to .agent…
wmadden 22f876f
docs: reflow JSDoc and wrapped line comments (TML-2357 branch)
wmadden 0c9caee
docs(adrs): reflow retrospective callouts; drop Pattern E and Linear …
wmadden 9ba07cd
docs: reflow markdown without artificial line wraps
wmadden 33d13e7
fix(postgres): satisfy noApproximativeNumericConstant in codec tests
wmadden 0708147
fix(pgvector): tolerate factory(undefined) for undimensioned vector c…
wmadden 4c4e65e
test(coverage): close per-file threshold gaps surfaced by CI
wmadden f304177
test(postgres-adapter): use coldTransformImport timeout for runtime d…
wmadden 3862677
fix(sql-runtime): resolve aliases and codec-id mismatch in encode/dec…
wmadden 60a7eb6
Add arktype to dictionary
wmadden 1a67979
fix(sql-runtime): type alias resolver against AnyFromSource
wmadden 52be0fa
test(sql-runtime): close per-file coverage gaps in budgets, lints, an…
wmadden 60d75b8
chore: drop transient project review IDs and decorative comment lines
wmadden 1c6f0bf
docs(rules): wrap JSDoc prose at the biome line width
wmadden d60ab77
docs: address review nits on jsdoc rule and ADR 208
wmadden File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| --- | ||
| description: Wrap JSDoc / block-comment prose at the same line width as the biome formatter (currently 100). Markdown is exempt — see the markdown-no-artificial-line-wraps skill. | ||
| alwaysApply: false | ||
| --- | ||
|
|
||
| # JSDoc / block-comment prose — wrap at the biome line width | ||
|
|
||
| When adding or editing **prose** in `/** ... */` or long `//` documentation: | ||
|
|
||
| 1. **Wrap at biome's `lineWidth`** — Wrap prose at the line width configured in `biome.jsonc` (`formatter.lineWidth`, currently **100**). Source of truth: read `biome.jsonc` rather than hard-coding the number; if it changes, this rule changes with it. | ||
|
|
||
| 2. **No fixed-column wraps below the biome width** — Do not break mid-sentence to stay under ~72 or ~80 characters. Editors soft-wrap; arbitrary narrow wraps make diffs noisy and conflict-prone. | ||
|
|
||
| 3. **Bullet lists and tagged blocks** | ||
| - **Bullets** (`*` / `-`): keep each bullet's prose on one line up to the biome width before wrapping; wrap continuation lines aligned with the bullet text. | ||
| - **Tagged blocks** (`@param`, `@returns`, `@example`): follow normal JSDoc conventions; the same line-width rule applies to the sentence text. | ||
|
|
||
| 4. **Orphaned blocks** — A doc comment must document the declaration that immediately follows it (after optional blank lines only before `import` / file headers). Do not leave a standalone `/** ... */` between imports and the next export with no attached symbol; merge into the relevant declaration's doc or delete redundancy. | ||
|
|
||
| 5. **Markdown is exempt** — Do not apply this rule to `.md` files (READMEs, ADRs, PR bodies, rulecards, and any other Markdown). Markdown prose stays on one continuous line per paragraph; see `.agents/skills/markdown-no-artificial-line-wraps/SKILL.md`. | ||
|
|
||
| 6. **Rationale** — Wrapping at the same width that the formatter uses keeps doc-comment prose visually consistent with surrounding code, avoids both "one giant line" and "narrow 1990s terminal" extremes, and produces stable diffs because the wrap width is anchored to the formatter rather than picked per-author. | ||
|
|
||
| Related: `.agents/skills/markdown-no-artificial-line-wraps/SKILL.md` (Markdown files). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
docs/architecture docs/adrs/ADR 180 - Dot-path field accessor.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.