@descryy/core 0.5.0 → 0.5.2

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.
Files changed (77) hide show
  1. package/dist/contracts/engine.d.ts.map +1 -1
  2. package/dist/contracts/engine.js +3 -1
  3. package/dist/contracts/engine.js.map +1 -1
  4. package/dist/contracts/index.d.ts +3 -1
  5. package/dist/contracts/index.d.ts.map +1 -1
  6. package/dist/contracts/index.js +2 -1
  7. package/dist/contracts/index.js.map +1 -1
  8. package/dist/contracts/observed-routes.d.ts +89 -0
  9. package/dist/contracts/observed-routes.d.ts.map +1 -0
  10. package/dist/contracts/observed-routes.js +114 -0
  11. package/dist/contracts/observed-routes.js.map +1 -0
  12. package/dist/contracts/orphans.d.ts +9 -2
  13. package/dist/contracts/orphans.d.ts.map +1 -1
  14. package/dist/contracts/orphans.js +9 -3
  15. package/dist/contracts/orphans.js.map +1 -1
  16. package/dist/contracts/paths.d.ts +14 -0
  17. package/dist/contracts/paths.d.ts.map +1 -1
  18. package/dist/contracts/paths.js +20 -0
  19. package/dist/contracts/paths.js.map +1 -1
  20. package/dist/multipr/mechanical.d.ts.map +1 -1
  21. package/dist/multipr/mechanical.js +1 -0
  22. package/dist/multipr/mechanical.js.map +1 -1
  23. package/dist/query/memory.d.ts.map +1 -1
  24. package/dist/query/memory.js +1 -0
  25. package/dist/query/memory.js.map +1 -1
  26. package/dist/query/provider.d.ts +11 -2
  27. package/dist/query/provider.d.ts.map +1 -1
  28. package/dist/query/provider.js.map +1 -1
  29. package/dist/query/sqlite.d.ts +4 -1
  30. package/dist/query/sqlite.d.ts.map +1 -1
  31. package/dist/query/sqlite.js +20 -5
  32. package/dist/query/sqlite.js.map +1 -1
  33. package/dist/query/traverse.d.ts +16 -0
  34. package/dist/query/traverse.d.ts.map +1 -1
  35. package/dist/query/traverse.js +46 -10
  36. package/dist/query/traverse.js.map +1 -1
  37. package/dist/sources/confirmed/incidents.d.ts +11 -3
  38. package/dist/sources/confirmed/incidents.d.ts.map +1 -1
  39. package/dist/sources/confirmed/incidents.js +15 -4
  40. package/dist/sources/confirmed/incidents.js.map +1 -1
  41. package/dist/sources/git/diff.d.ts +24 -0
  42. package/dist/sources/git/diff.d.ts.map +1 -1
  43. package/dist/sources/git/diff.js +66 -0
  44. package/dist/sources/git/diff.js.map +1 -1
  45. package/dist/sources/git/index.d.ts +2 -2
  46. package/dist/sources/git/index.d.ts.map +1 -1
  47. package/dist/sources/git/index.js +1 -1
  48. package/dist/sources/git/index.js.map +1 -1
  49. package/dist/store/reader.d.ts +1 -0
  50. package/dist/store/reader.d.ts.map +1 -1
  51. package/dist/store/reader.js +9 -0
  52. package/dist/store/reader.js.map +1 -1
  53. package/dist/validation/attributes.d.ts +5 -0
  54. package/dist/validation/attributes.d.ts.map +1 -1
  55. package/dist/validation/attributes.js +1 -0
  56. package/dist/validation/attributes.js.map +1 -1
  57. package/dist/validation/env.d.ts +40 -7
  58. package/dist/validation/env.d.ts.map +1 -1
  59. package/dist/validation/env.js +116 -30
  60. package/dist/validation/env.js.map +1 -1
  61. package/dist/validation/index.d.ts +2 -0
  62. package/dist/validation/index.d.ts.map +1 -1
  63. package/dist/validation/index.js +1 -0
  64. package/dist/validation/index.js.map +1 -1
  65. package/dist/validation/migration-integrity.d.ts +5 -0
  66. package/dist/validation/migration-integrity.d.ts.map +1 -1
  67. package/dist/validation/migration-integrity.js +2 -0
  68. package/dist/validation/migration-integrity.js.map +1 -1
  69. package/dist/validation/orm-registration.d.ts +106 -0
  70. package/dist/validation/orm-registration.d.ts.map +1 -0
  71. package/dist/validation/orm-registration.js +191 -0
  72. package/dist/validation/orm-registration.js.map +1 -0
  73. package/dist/validation/rollback.d.ts +6 -0
  74. package/dist/validation/rollback.d.ts.map +1 -1
  75. package/dist/validation/rollback.js +1 -0
  76. package/dist/validation/rollback.js.map +1 -1
  77. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"migration-integrity.js","sourceRoot":"","sources":["../../src/validation/migration-integrity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration-integrity.js","sourceRoot":"","sources":["../../src/validation/migration-integrity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ /** ORM model registration — the UAT phase-4 audit's "Bug B": a SQLAlchemy-style model
2
+ * class inherits the declarative base but is defined in a module no `__init__.py` in
3
+ * its own package imports. A package's `__init__.py` conventionally re-imports every
4
+ * model module specifically so `Base.metadata` — the registry `alembic
5
+ * --autogenerate` reads — actually includes them; miss the import and the model is
6
+ * invisible to that registry. Alembic then sees a table the database has but the
7
+ * declared models don't, and `--autogenerate` writes a migration that **drops** it.
8
+ *
9
+ * Both edges this reuses are already produced elsewhere in the pipeline, never
10
+ * reinvented here: `INHERITS` (a class descending from a base) and `IMPORTS`
11
+ * (whether a package's `__init__.py` reaches the defining module).
12
+ *
13
+ * ## Recognising "inherits the ORM declarative base" without naming a framework
14
+ *
15
+ * Core carries no notion of "SQLAlchemy" or "Django" above the IR boundary (rule 1),
16
+ * and a name check on the base class ("is it called `Base`?") is exactly the kind of
17
+ * heuristic rule 2 forbids. The one signal already on the graph that says "this
18
+ * class's inheritance chain reaches an ORM declarative base" is the extractor's own
19
+ * `MODEL` classification: per the golden corpus (`fixtures/golden/patterns.json`,
20
+ * patterns 06/07) and `capabilities.ts`'s `ORM_EXTRACTOR` doc comment, `MODEL` is
21
+ * minted *because* the extractor found "a persistence annotation, a declarative
22
+ * base, a table binding" — never a name match. So this check's recognition rule is:
23
+ * **a `MODEL` node with at least one outgoing `INHERITS` edge** is, by construction
24
+ * of the extractor that classified it, a class inheriting the ORM declarative base.
25
+ *
26
+ * An abstract intermediate class that maps no column of its own is not itself
27
+ * promoted to `MODEL` — see the `Base`/`Order` example in
28
+ * `fixtures/languages/python/src/models.py`, where the comment on `Base` reads
29
+ * "maps no column, so it is not itself a model." So an abstract base is never a seed
30
+ * here, which is exactly the "don't flag an abstract intermediate the same way as a
31
+ * concrete leaf model" distinction — it falls out of reusing the existing `MODEL`
32
+ * classification rather than needing separate chain-walking logic.
33
+ *
34
+ * ## Reachability: "own package's `__init__.py`, walking up, transitively"
35
+ *
36
+ * `IMPORTS` is file-level (vocabulary.ts), so both endpoints are `MODULE`/`FILE`
37
+ * nodes (`fileScopedNodes`). For a model defined in `a/b/model.py`, the candidate
38
+ * aggregators are `a/b/__init__.py`, `a/__init__.py`, `__init__.py` — every ancestor
39
+ * package's own `__init__.py`, not only the immediate one: a nested package can be
40
+ * reached solely through a parent's `__init__` re-export. Reachability is `bfs`
41
+ * (`../query/traverse.ts`, the same transitive-reachability primitive
42
+ * `impactOf`/`testsCovering` already use), seeded at whichever of those candidate
43
+ * paths actually have a MODULE/FILE node in this graph, walking `IMPORTS` outward
44
+ * with no depth cap (only the node budget). An `__init__.py` that imports a
45
+ * `models_registry.py` that in turn imports the model module is therefore reached —
46
+ * exactly the false-positive shape the design review called out: this traversal is
47
+ * not restricted to direct imports.
48
+ *
49
+ * ## Why this is a lead, never a defect
50
+ *
51
+ * `Base.metadata` can be populated by an explicit scan/glob instead of manual
52
+ * imports (this check cannot see that from the graph), a model can be an
53
+ * intentionally unmigrated abstract/mixin base, or deliberately excluded from
54
+ * migrations for now. Promoting straight to `defect` needs a measured precision
55
+ * this check has not been run against yet — the same discipline this codebase
56
+ * already holds itself to elsewhere (a heuristic measured at 25% precision against
57
+ * a 90% bar was not shipped as a defect). So every finding here carries
58
+ * `claim: "lead"` and says so in its own text, never promoted silently. */
59
+ import type { ResolutionLevel } from "@descryy/ir";
60
+ import type { ContractClaim } from "../contracts/orphans.ts";
61
+ import type { AdjacencyProvider, QueryResult } from "../query/provider.ts";
62
+ export type OrmRegistrationFindingKind = "MODEL_NOT_REACHED_BY_INIT";
63
+ export interface OrmRegistrationFinding {
64
+ readonly kind: OrmRegistrationFindingKind;
65
+ /** Always "lead" today — see the header's "Why this is a lead, never a defect". */
66
+ readonly claim: ContractClaim;
67
+ readonly model: string;
68
+ readonly modelId: string;
69
+ readonly file: string;
70
+ readonly line: number;
71
+ /** The sentence a developer reads, including the reasoning for `claim: "lead"`. */
72
+ readonly detail: string;
73
+ readonly resolution: ResolutionLevel;
74
+ }
75
+ export interface OrmRegistrationReport {
76
+ readonly findings: readonly OrmRegistrationFinding[];
77
+ /** The count before `maxFindings` capped it — P27's disclosed remainder: a structured field, not only a prose note. */
78
+ readonly findingsTotal: number;
79
+ readonly examined: {
80
+ /** MODEL nodes with at least one outgoing INHERITS edge — this check's population. */
81
+ readonly candidates: number;
82
+ };
83
+ /** True when at least one candidate was examined. */
84
+ readonly ran: boolean;
85
+ readonly withheld: {
86
+ /** A candidate whose package tree carries no `__init__.py` node anywhere in this
87
+ * graph — nothing to check reachability against, so refused rather than guessed. */
88
+ readonly noInitInPackage: number;
89
+ };
90
+ }
91
+ export interface OrmRegistrationOptions {
92
+ /** Restrict candidates to these repo-relative files. Reachability is still resolved
93
+ * against the whole graph — a reaching `__init__.py` commonly sits outside the diff. */
94
+ readonly files?: readonly string[];
95
+ readonly maxFindings?: number;
96
+ /** Cap on MODEL/file-scoped nodes enumerated. Truncation is reported. */
97
+ readonly limit?: number;
98
+ /** Node budget per candidate's reachability traversal. */
99
+ readonly budget?: number;
100
+ }
101
+ /** Every `__init__.py` path that could aggregate `file`'s module: its own package's,
102
+ * and every ancestor package's, own package first. Pure path arithmetic — whether any
103
+ * of these actually exist as a node in the graph is decided by the caller. */
104
+ export declare function ancestorInitPaths(file: string): readonly string[];
105
+ export declare function checkOrmModelRegistration(provider: AdjacencyProvider, options?: OrmRegistrationOptions): QueryResult<OrmRegistrationReport>;
106
+ //# sourceMappingURL=orm-registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orm-registration.d.ts","sourceRoot":"","sources":["../../src/validation/orm-registration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAyD4E;AAE5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAc,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIvF,MAAM,MAAM,0BAA0B,GAAG,2BAA2B,CAAC;AAErE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACrD,uHAAuH;IACvH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE;QACjB,sFAAsF;QACtF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,qDAAqD;IACrD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE;QACjB;6FACqF;QACrF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC;6FACyF;IACzF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD;;+EAE+E;AAC/E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CASjE;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,GAAE,sBAA2B,GACnC,WAAW,CAAC,qBAAqB,CAAC,CAuIpC"}
@@ -0,0 +1,191 @@
1
+ /** ORM model registration — the UAT phase-4 audit's "Bug B": a SQLAlchemy-style model
2
+ * class inherits the declarative base but is defined in a module no `__init__.py` in
3
+ * its own package imports. A package's `__init__.py` conventionally re-imports every
4
+ * model module specifically so `Base.metadata` — the registry `alembic
5
+ * --autogenerate` reads — actually includes them; miss the import and the model is
6
+ * invisible to that registry. Alembic then sees a table the database has but the
7
+ * declared models don't, and `--autogenerate` writes a migration that **drops** it.
8
+ *
9
+ * Both edges this reuses are already produced elsewhere in the pipeline, never
10
+ * reinvented here: `INHERITS` (a class descending from a base) and `IMPORTS`
11
+ * (whether a package's `__init__.py` reaches the defining module).
12
+ *
13
+ * ## Recognising "inherits the ORM declarative base" without naming a framework
14
+ *
15
+ * Core carries no notion of "SQLAlchemy" or "Django" above the IR boundary (rule 1),
16
+ * and a name check on the base class ("is it called `Base`?") is exactly the kind of
17
+ * heuristic rule 2 forbids. The one signal already on the graph that says "this
18
+ * class's inheritance chain reaches an ORM declarative base" is the extractor's own
19
+ * `MODEL` classification: per the golden corpus (`fixtures/golden/patterns.json`,
20
+ * patterns 06/07) and `capabilities.ts`'s `ORM_EXTRACTOR` doc comment, `MODEL` is
21
+ * minted *because* the extractor found "a persistence annotation, a declarative
22
+ * base, a table binding" — never a name match. So this check's recognition rule is:
23
+ * **a `MODEL` node with at least one outgoing `INHERITS` edge** is, by construction
24
+ * of the extractor that classified it, a class inheriting the ORM declarative base.
25
+ *
26
+ * An abstract intermediate class that maps no column of its own is not itself
27
+ * promoted to `MODEL` — see the `Base`/`Order` example in
28
+ * `fixtures/languages/python/src/models.py`, where the comment on `Base` reads
29
+ * "maps no column, so it is not itself a model." So an abstract base is never a seed
30
+ * here, which is exactly the "don't flag an abstract intermediate the same way as a
31
+ * concrete leaf model" distinction — it falls out of reusing the existing `MODEL`
32
+ * classification rather than needing separate chain-walking logic.
33
+ *
34
+ * ## Reachability: "own package's `__init__.py`, walking up, transitively"
35
+ *
36
+ * `IMPORTS` is file-level (vocabulary.ts), so both endpoints are `MODULE`/`FILE`
37
+ * nodes (`fileScopedNodes`). For a model defined in `a/b/model.py`, the candidate
38
+ * aggregators are `a/b/__init__.py`, `a/__init__.py`, `__init__.py` — every ancestor
39
+ * package's own `__init__.py`, not only the immediate one: a nested package can be
40
+ * reached solely through a parent's `__init__` re-export. Reachability is `bfs`
41
+ * (`../query/traverse.ts`, the same transitive-reachability primitive
42
+ * `impactOf`/`testsCovering` already use), seeded at whichever of those candidate
43
+ * paths actually have a MODULE/FILE node in this graph, walking `IMPORTS` outward
44
+ * with no depth cap (only the node budget). An `__init__.py` that imports a
45
+ * `models_registry.py` that in turn imports the model module is therefore reached —
46
+ * exactly the false-positive shape the design review called out: this traversal is
47
+ * not restricted to direct imports.
48
+ *
49
+ * ## Why this is a lead, never a defect
50
+ *
51
+ * `Base.metadata` can be populated by an explicit scan/glob instead of manual
52
+ * imports (this check cannot see that from the graph), a model can be an
53
+ * intentionally unmigrated abstract/mixin base, or deliberately excluded from
54
+ * migrations for now. Promoting straight to `defect` needs a measured precision
55
+ * this check has not been run against yet — the same discipline this codebase
56
+ * already holds itself to elsewhere (a heuristic measured at 25% precision against
57
+ * a 90% bar was not shipped as a defect). So every finding here carries
58
+ * `claim: "lead"` and says so in its own text, never promoted silently. */
59
+ import { bfs } from "../query/traverse.js";
60
+ import { fileScopedNodes } from "./nodes.js";
61
+ const DEFAULT_MAX_FINDINGS = 25;
62
+ const DEFAULT_TRAVERSAL_BUDGET = 500;
63
+ /** Every `__init__.py` path that could aggregate `file`'s module: its own package's,
64
+ * and every ancestor package's, own package first. Pure path arithmetic — whether any
65
+ * of these actually exist as a node in the graph is decided by the caller. */
66
+ export function ancestorInitPaths(file) {
67
+ const parts = file.split("/");
68
+ parts.pop(); // drop the file's own name
69
+ const paths = [];
70
+ for (let i = parts.length; i >= 0; i -= 1) {
71
+ const dir = parts.slice(0, i).join("/");
72
+ paths.push(dir === "" ? "__init__.py" : `${dir}/__init__.py`);
73
+ }
74
+ return paths;
75
+ }
76
+ export function checkOrmModelRegistration(provider, options = {}) {
77
+ const maxFindings = options.maxFindings ?? DEFAULT_MAX_FINDINGS;
78
+ const budget = options.budget ?? DEFAULT_TRAVERSAL_BUDGET;
79
+ const scoped = options.files === undefined ? null : new Set(options.files);
80
+ const notes = [];
81
+ const moduleFiles = fileScopedNodes(provider, options.limit);
82
+ const moduleIdByPath = new Map();
83
+ for (const node of moduleFiles.nodes) {
84
+ if (node.file !== null)
85
+ moduleIdByPath.set(node.file, node.id);
86
+ }
87
+ const modelSet = provider.nodesOfType("MODEL", options.limit);
88
+ const findings = [];
89
+ let candidates = 0;
90
+ let noInitInPackage = 0;
91
+ let anyTraversalTruncated = false;
92
+ for (const model of modelSet.nodes) {
93
+ if (model.file === null)
94
+ continue; // fileless — no package to reason about.
95
+ if (scoped !== null && !scoped.has(model.file))
96
+ continue;
97
+ // Recognition: a MODEL with no INHERITS edge was classified from a persistence
98
+ // annotation or table binding alone, not an inheritance chain — see the header.
99
+ const inherits = provider.outgoing(model.id, { types: ["INHERITS"] });
100
+ if (inherits.length === 0)
101
+ continue;
102
+ candidates += 1;
103
+ const ownModuleId = moduleIdByPath.get(model.file);
104
+ if (ownModuleId === undefined)
105
+ continue; // no MODULE/FILE node for its own file — IMPORTS is unreasoned-about here.
106
+ const initSeeds = ancestorInitPaths(model.file)
107
+ .map((path) => moduleIdByPath.get(path))
108
+ .filter((id) => id !== undefined);
109
+ if (initSeeds.length === 0) {
110
+ noInitInPackage += 1;
111
+ continue;
112
+ }
113
+ const outcome = bfs(provider, initSeeds, { types: ["IMPORTS"], direction: "out", budget });
114
+ if (outcome.truncated)
115
+ anyTraversalTruncated = true;
116
+ const reached = new Set(outcome.reached.map((r) => r.id));
117
+ if (reached.has(ownModuleId))
118
+ continue; // reached, directly or transitively — clean.
119
+ const base = provider.node(inherits[0].to);
120
+ const baseName = base?.name ?? "its declarative base";
121
+ const where = model.range === null ? model.file : `${model.file}:${model.range.startLine}`;
122
+ findings.push({
123
+ kind: "MODEL_NOT_REACHED_BY_INIT",
124
+ claim: "lead",
125
+ model: model.name,
126
+ modelId: model.id,
127
+ file: model.file,
128
+ line: model.range?.startLine ?? 0,
129
+ detail: `${model.name} (${where}) inherits ${baseName}, the ORM declarative base, but no ` +
130
+ "__init__.py in its own package — or an ancestor package's — imports the module that " +
131
+ "defines it, directly or transitively. If this model needs to be picked up by " +
132
+ "migrations, it may be silently invisible to them: the same shape as a model that never " +
133
+ "reaches Base.metadata and has its table dropped by the next autogenerate run. This is a " +
134
+ "lead, not a defect: a model registered through an explicit scan/glob rather than by " +
135
+ "import, or one deliberately excluded (an abstract/mixin base, or a model not yet wired " +
136
+ "into migrations), is expected to trigger this without being a bug.",
137
+ resolution: Math.min(model.resolution, inherits[0].resolution, outcome.resolutionFloor),
138
+ });
139
+ }
140
+ findings.sort((a, b) => a.file.localeCompare(b.file) || a.model.localeCompare(b.model));
141
+ const kept = findings.slice(0, maxFindings);
142
+ const ran = candidates > 0;
143
+ if (!ran) {
144
+ notes.push("No MODEL node in the graph carries an outgoing INHERITS edge, so nothing was checked for " +
145
+ "package-import reachability. This check treats a MODEL node with at least one INHERITS " +
146
+ "edge as a class inheriting an ORM declarative base; either no such class exists in this " +
147
+ "graph, or no adapter emitted both the MODEL classification and the INHERITS edge on this " +
148
+ "run. This is not a result of every model being correctly wired to its package's __init__.");
149
+ }
150
+ if (noInitInPackage > 0) {
151
+ notes.push(`${noInitInPackage} candidate(s) sit in a package with no __init__.py node anywhere in its ` +
152
+ "ancestor chain in this graph, so reachability from a package aggregator could not be " +
153
+ "evaluated at all and nothing was reported for them. Absence of a finding here is not " +
154
+ "evidence that they are wired in.");
155
+ }
156
+ if (scoped !== null) {
157
+ notes.push(`Candidates were restricted to ${scoped.size} scoped file(s), by the file the model class ` +
158
+ "is defined in. Reachability is still resolved against the whole graph, because the " +
159
+ "reaching __init__.py commonly sits outside the diff.");
160
+ }
161
+ if (kept.length < findings.length) {
162
+ notes.push(`${findings.length - kept.length} further finding(s) were withheld: a report is capped at ` +
163
+ `${maxFindings} so a short list stays worth reading. They were found, not missed.`);
164
+ }
165
+ if (anyTraversalTruncated) {
166
+ notes.push("At least one reachability traversal hit its node budget before finishing. A model reported " +
167
+ "here as unreached may in fact be reached by a path this run did not get to walk.");
168
+ }
169
+ if (modelSet.truncated || moduleFiles.truncated) {
170
+ notes.push("More MODEL or file-scoped nodes exist in the graph than were enumerated, so this check " +
171
+ "covers a prefix of the repository rather than all of it.");
172
+ }
173
+ let resolutionFloor = 4;
174
+ for (const finding of kept)
175
+ if (finding.resolution < resolutionFloor)
176
+ resolutionFloor = finding.resolution;
177
+ const stamp = { ...provider.baseStamp(), resolutionFloor };
178
+ return {
179
+ data: {
180
+ findings: kept,
181
+ findingsTotal: findings.length,
182
+ examined: { candidates },
183
+ ran,
184
+ withheld: { noInitInPackage },
185
+ },
186
+ stamp,
187
+ truncated: modelSet.truncated || moduleFiles.truncated || anyTraversalTruncated || kept.length < findings.length,
188
+ notes,
189
+ };
190
+ }
191
+ //# sourceMappingURL=orm-registration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orm-registration.js","sourceRoot":"","sources":["../../src/validation/orm-registration.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * `section` is load-bearing like `required` was for env: reverse-section drops are correct code
3
3
  * (near-100% of migrations, DEC-122), and `unknown` section is withheld, never assumed forward. */
4
4
  import type { ResolutionLevel } from "@descryy/ir";
5
+ import type { ContractClaim } from "../contracts/orphans.ts";
5
6
  import type { AdjacencyProvider, QueryResult } from "../query/provider.ts";
6
7
  import type { DestructiveKind, MigrationOp, MigrationScan } from "./migrations.ts";
7
8
  export interface RollbackFinding {
@@ -14,6 +15,11 @@ export interface RollbackFinding {
14
15
  * present, never that the migration is unsafe to roll back. */
15
16
  readonly detail: string;
16
17
  readonly resolution: ResolutionLevel;
18
+ /** Always `"lead"` — the §15.3 fence means this finding never claims the migration is
19
+ * unsafe, only that a destructive operation is present, so it is never promoted to
20
+ * `"defect"`. Stamped rather than left implicit so a composer merging this array with
21
+ * others (`pre_push`) reads one field instead of guessing a default. */
22
+ readonly claim: ContractClaim;
17
23
  }
18
24
  export interface RollbackReport {
19
25
  readonly findings: readonly RollbackFinding[];
@@ -1 +1 @@
1
- {"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../src/validation/rollback.ts"],"names":[],"mappings":"AAAA;;oGAEoG;AAEpG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,KAAK,EAAE,iBAAiB,EAAc,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGvF,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,aAAa,EAEd,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;oEACgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;CACtC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,uHAAuH;IACvH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE;QACjB,uDAAuD;QACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,6DAA6D;QAC7D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,uDAAuD;QACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF;mEAC+D;IAC/D,QAAQ,CAAC,QAAQ,EAAE;QACjB,0DAA0D;QAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,8DAA8D;QAC9D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,oEAAoE;QACpE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,oDAAoD;QACpD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,yDAAyD;IACzD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAgBD;;kFAEkF;AAClF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACvC;IAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,WAAW,EAAE,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAsCtE;AASD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,aAAa,EACnB,OAAO,GAAE,eAAoB,GAC5B,WAAW,CAAC,cAAc,CAAC,CA6M7B"}
1
+ {"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../src/validation/rollback.ts"],"names":[],"mappings":"AAAA;;oGAEoG;AAEpG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAc,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGvF,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,aAAa,EAEd,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;oEACgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC;;;6EAGyE;IACzE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,uHAAuH;IACvH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE;QACjB,uDAAuD;QACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,6DAA6D;QAC7D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,uDAAuD;QACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF;mEAC+D;IAC/D,QAAQ,CAAC,QAAQ,EAAE;QACjB,0DAA0D;QAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,8DAA8D;QAC9D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,oEAAoE;QACpE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,oDAAoD;QACpD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,yDAAyD;IACzD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAgBD;;kFAEkF;AAClF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACvC;IAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,WAAW,EAAE,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAsCtE;AASD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,aAAa,EACnB,OAAO,GAAE,eAAoB,GAC5B,WAAW,CAAC,cAAc,CAAC,CA8M7B"}
@@ -124,6 +124,7 @@ export function checkRollbackReadiness(provider, scan, options = {}) {
124
124
  line: op.line,
125
125
  detail: describe(op, candidate.file),
126
126
  resolution: candidate.resolution,
127
+ claim: "lead",
127
128
  });
128
129
  }
129
130
  // Better evidence first, then by file so two runs agree.
@@ -1 +1 @@
1
- {"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/validation/rollback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/validation/rollback.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@descryy/core",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "type": "module",
5
5
  "description": "Descry graph engine: storage, graph builder, query layer, traversal, diff scoping, git source, MCP server.",
6
6
  "license": "MIT",
@@ -33,6 +33,6 @@
33
33
  "build": "tsc -b"
34
34
  },
35
35
  "dependencies": {
36
- "@descryy/ir": "0.5.0"
36
+ "@descryy/ir": "0.5.2"
37
37
  }
38
38
  }