@metaobjectsdev/sdk 0.15.19-rc.1 → 0.15.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -65,6 +65,39 @@ code behind a grep hit; a "duplicate" validator's *divergence* is the finding.
65
65
  subverbs (`--codegen` / `--templates` / `--db`)? Committed-codegen freshness gate?
66
66
  Advisories heeded? Routine `--no-verify` bypass? Loader `ERR_*` / warnings addressed?
67
67
  Parse the stable `code` field, not message text (ADR-0009).
68
+ **Coverage completeness — "wired" is not "covers it all."** A gate can be present
69
+ yet blind to a whole artifact class. Confirm each subverb actually covers what the
70
+ project HAS: (a) **templates** — `verify --templates` on a CLI before the #193 fix
71
+ SKIPS `template.output @kind=email` and does not body-check a document
72
+ `template.output`'s mustache, so a `{{field}}` that drifted from the payload sails
73
+ through; a project with email/output templates that relies on `verify` alone (no
74
+ `meta gen` + `git diff --exit-code`, and no CLI past the fix) can ship broken —
75
+ **finding**; (b) **codegen** — committed generated code needs `--codegen` (or
76
+ gen+no-diff), else hand-edits/regeneration drift silently; (c) **schema** — `--db`
77
+ (Node `meta` only) for DB drift. Flag a gate that is WIRED BUT INCOMPLETE for the
78
+ artifacts present, and recommend the specific missing coverage.
79
+ - [ ] **F2. Over-generation — unnecessary generated files (codegen WASTE).**
80
+ Generated code is disposable, but that is NOT license to generate what nothing
81
+ consumes. Every generated file is a merge/review/maintenance surface and inflates
82
+ the leverage ratio falsely. Hunt OVER-generation (the inverse of A/B's
83
+ under-generation):
84
+ - **Dead generated files** — an `@generated` file that NOTHING imports or
85
+ references repo-wide (grep the emitted symbol / module path for importers):
86
+ delete it and stop generating it.
87
+ - **Artifacts an entity doesn't need** — REST routes / TanStack grids / forms /
88
+ hooks emitted for an entity that has no such surface. The per-entity opt-outs
89
+ exist for exactly this (`@emitRoutes: false`, `@emitTanstack: false`, a
90
+ `layout.dataGrid`-gated grid): flag the opt-out NOT used where the artifact is
91
+ unused.
92
+ - **Generators wired but unconsumed** — a generator in `metaobjects.config.ts`
93
+ `generators: [...]` (or the per-port equivalent) whose whole output class no
94
+ code imports: drop the generator rather than generate into the void.
95
+ - **Wrong target / duplicate output** — the same logical artifact emitted to two
96
+ places (a mis-set per-target `outDir`), one of which is orphaned.
97
+ Recommend generating ONLY what is consumed — narrow the generator set + use the
98
+ per-entity opt-outs. A smaller, fully-consumed generated surface beats a large one
99
+ with dead files (which also make the leverage ratio lie; discount them from the
100
+ census).
68
101
  - [ ] **G. Runtime-contract anti-patterns.** Module-global `db` vs context-as-parameter
69
102
  (ADR-0008); wire-canonicalization in the query path vs native in-process return types
70
103
  (ADR-0019); runtime reflection to resolve a type from FQN vs generated static imports /
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaobjectsdev/sdk",
3
- "version": "0.15.19-rc.1",
3
+ "version": "0.15.20",
4
4
  "description": "Workspace helpers and agent-docs utilities for MetaObjects projects.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -56,7 +56,7 @@
56
56
  "access": "public"
57
57
  },
58
58
  "dependencies": {
59
- "@metaobjectsdev/metadata": "0.15.19-rc.1",
59
+ "@metaobjectsdev/metadata": "0.15.20",
60
60
  "zod": "^3.23.0"
61
61
  },
62
62
  "devDependencies": {