@descryy/core 0.3.0 → 0.5.0
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.
- package/dist/budget/reply.d.ts +11 -46
- package/dist/budget/reply.d.ts.map +1 -1
- package/dist/budget/reply.js +10 -39
- package/dist/budget/reply.js.map +1 -1
- package/dist/budget/size.d.ts +2 -21
- package/dist/budget/size.d.ts.map +1 -1
- package/dist/budget/size.js +3 -24
- package/dist/budget/size.js.map +1 -1
- package/dist/capabilities/preconditions.d.ts +7 -68
- package/dist/capabilities/preconditions.d.ts.map +1 -1
- package/dist/capabilities/preconditions.js +6 -57
- package/dist/capabilities/preconditions.js.map +1 -1
- package/dist/contracts/engine.d.ts +26 -12
- package/dist/contracts/engine.d.ts.map +1 -1
- package/dist/contracts/engine.js +28 -11
- package/dist/contracts/engine.js.map +1 -1
- package/dist/contracts/index.d.ts +1 -1
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/orphans.d.ts +28 -77
- package/dist/contracts/orphans.d.ts.map +1 -1
- package/dist/contracts/orphans.js +124 -94
- package/dist/contracts/orphans.js.map +1 -1
- package/dist/contracts/paths.d.ts +4 -114
- package/dist/contracts/paths.d.ts.map +1 -1
- package/dist/contracts/paths.js +7 -140
- package/dist/contracts/paths.js.map +1 -1
- package/dist/contracts/shapes.d.ts +13 -66
- package/dist/contracts/shapes.d.ts.map +1 -1
- package/dist/contracts/shapes.js +20 -91
- package/dist/contracts/shapes.js.map +1 -1
- package/dist/governance/budget.d.ts +12 -48
- package/dist/governance/budget.d.ts.map +1 -1
- package/dist/governance/budget.js +12 -48
- package/dist/governance/budget.js.map +1 -1
- package/dist/governance/candidate-boundary.d.ts +4 -32
- package/dist/governance/candidate-boundary.d.ts.map +1 -1
- package/dist/governance/candidate-boundary.js +4 -32
- package/dist/governance/candidate-boundary.js.map +1 -1
- package/dist/governance/escalation.d.ts +7 -45
- package/dist/governance/escalation.d.ts.map +1 -1
- package/dist/governance/escalation.js +7 -45
- package/dist/governance/escalation.js.map +1 -1
- package/dist/governance/fact-boundary.d.ts +7 -49
- package/dist/governance/fact-boundary.d.ts.map +1 -1
- package/dist/governance/fact-boundary.js +5 -43
- package/dist/governance/fact-boundary.js.map +1 -1
- package/dist/governance/finding-funnel.d.ts +11 -72
- package/dist/governance/finding-funnel.d.ts.map +1 -1
- package/dist/governance/finding-funnel.js +9 -68
- package/dist/governance/finding-funnel.js.map +1 -1
- package/dist/graph/build.d.ts +13 -75
- package/dist/graph/build.d.ts.map +1 -1
- package/dist/graph/build.js +0 -0
- package/dist/graph/build.js.map +1 -1
- package/dist/graph/cross-language.d.ts +4 -43
- package/dist/graph/cross-language.d.ts.map +1 -1
- package/dist/graph/cross-language.js +9 -77
- package/dist/graph/cross-language.js.map +1 -1
- package/dist/graph/index.d.ts +1 -1
- package/dist/graph/index.d.ts.map +1 -1
- package/dist/graph/merge.d.ts +8 -76
- package/dist/graph/merge.d.ts.map +1 -1
- package/dist/graph/merge.js +27 -77
- package/dist/graph/merge.js.map +1 -1
- package/dist/graph/observed-tests.d.ts +7 -68
- package/dist/graph/observed-tests.d.ts.map +1 -1
- package/dist/graph/observed-tests.js +5 -60
- package/dist/graph/observed-tests.js.map +1 -1
- package/dist/graph/persist.d.ts +2 -25
- package/dist/graph/persist.d.ts.map +1 -1
- package/dist/graph/persist.js +2 -25
- package/dist/graph/persist.js.map +1 -1
- package/dist/graph/runtime-confirmation.d.ts +14 -91
- package/dist/graph/runtime-confirmation.d.ts.map +1 -1
- package/dist/graph/runtime-confirmation.js +19 -103
- package/dist/graph/runtime-confirmation.js.map +1 -1
- package/dist/ledger/mint.d.ts +9 -43
- package/dist/ledger/mint.d.ts.map +1 -1
- package/dist/ledger/mint.js +15 -65
- package/dist/ledger/mint.js.map +1 -1
- package/dist/ledger/resolve.d.ts +13 -81
- package/dist/ledger/resolve.d.ts.map +1 -1
- package/dist/ledger/resolve.js +13 -76
- package/dist/ledger/resolve.js.map +1 -1
- package/dist/multipr/fingerprint.d.ts +5 -46
- package/dist/multipr/fingerprint.d.ts.map +1 -1
- package/dist/multipr/fingerprint.js +22 -74
- package/dist/multipr/fingerprint.js.map +1 -1
- package/dist/multipr/hidden-dependency.d.ts +13 -73
- package/dist/multipr/hidden-dependency.d.ts.map +1 -1
- package/dist/multipr/hidden-dependency.js +12 -63
- package/dist/multipr/hidden-dependency.js.map +1 -1
- package/dist/multipr/mechanical.d.ts +25 -160
- package/dist/multipr/mechanical.d.ts.map +1 -1
- package/dist/multipr/mechanical.js +21 -137
- package/dist/multipr/mechanical.js.map +1 -1
- package/dist/multipr/migration-heads.d.ts +18 -105
- package/dist/multipr/migration-heads.d.ts.map +1 -1
- package/dist/multipr/migration-heads.js +15 -84
- package/dist/multipr/migration-heads.js.map +1 -1
- package/dist/multipr/overlap.d.ts +16 -94
- package/dist/multipr/overlap.d.ts.map +1 -1
- package/dist/multipr/overlap.js +25 -105
- package/dist/multipr/overlap.js.map +1 -1
- package/dist/multipr/scope-store.d.ts +15 -80
- package/dist/multipr/scope-store.d.ts.map +1 -1
- package/dist/multipr/scope-store.js +17 -87
- package/dist/multipr/scope-store.js.map +1 -1
- package/dist/multipr/superseded.d.ts +10 -95
- package/dist/multipr/superseded.d.ts.map +1 -1
- package/dist/multipr/superseded.js +7 -60
- package/dist/multipr/superseded.js.map +1 -1
- package/dist/query/confirmed-facts.d.ts +12 -58
- package/dist/query/confirmed-facts.d.ts.map +1 -1
- package/dist/query/confirmed-facts.js +8 -47
- package/dist/query/confirmed-facts.js.map +1 -1
- package/dist/query/declared-value-closure.d.ts +13 -104
- package/dist/query/declared-value-closure.d.ts.map +1 -1
- package/dist/query/declared-value-closure.js +15 -104
- package/dist/query/declared-value-closure.js.map +1 -1
- package/dist/query/memory.d.ts +5 -9
- package/dist/query/memory.d.ts.map +1 -1
- package/dist/query/memory.js +31 -15
- package/dist/query/memory.js.map +1 -1
- package/dist/query/prominence.d.ts +6 -55
- package/dist/query/prominence.d.ts.map +1 -1
- package/dist/query/prominence.js +6 -55
- package/dist/query/prominence.js.map +1 -1
- package/dist/query/provider.d.ts +28 -81
- package/dist/query/provider.d.ts.map +1 -1
- package/dist/query/provider.js +8 -29
- package/dist/query/provider.js.map +1 -1
- package/dist/query/queries.d.ts +15 -65
- package/dist/query/queries.d.ts.map +1 -1
- package/dist/query/queries.js +43 -100
- package/dist/query/queries.js.map +1 -1
- package/dist/query/refusal-fetch.d.ts +8 -85
- package/dist/query/refusal-fetch.d.ts.map +1 -1
- package/dist/query/refusal-fetch.js +11 -93
- package/dist/query/refusal-fetch.js.map +1 -1
- package/dist/query/refusal-questions.d.ts +17 -92
- package/dist/query/refusal-questions.d.ts.map +1 -1
- package/dist/query/refusal-questions.js +14 -78
- package/dist/query/refusal-questions.js.map +1 -1
- package/dist/query/resolution-floor.d.ts +3 -23
- package/dist/query/resolution-floor.d.ts.map +1 -1
- package/dist/query/resolution-floor.js +3 -23
- package/dist/query/resolution-floor.js.map +1 -1
- package/dist/query/root-cause-score.d.ts +11 -161
- package/dist/query/root-cause-score.d.ts.map +1 -1
- package/dist/query/root-cause-score.js +6 -137
- package/dist/query/root-cause-score.js.map +1 -1
- package/dist/query/row-closure-picture.d.ts +5 -67
- package/dist/query/row-closure-picture.d.ts.map +1 -1
- package/dist/query/row-closure-picture.js +6 -67
- package/dist/query/row-closure-picture.js.map +1 -1
- package/dist/query/similar-incidents.d.ts +6 -41
- package/dist/query/similar-incidents.d.ts.map +1 -1
- package/dist/query/similar-incidents.js +15 -69
- package/dist/query/similar-incidents.js.map +1 -1
- package/dist/query/sqlite.d.ts +3 -7
- package/dist/query/sqlite.d.ts.map +1 -1
- package/dist/query/sqlite.js +13 -16
- package/dist/query/sqlite.js.map +1 -1
- package/dist/query/test-coverage.d.ts +5 -45
- package/dist/query/test-coverage.d.ts.map +1 -1
- package/dist/query/test-coverage.js +10 -53
- package/dist/query/test-coverage.js.map +1 -1
- package/dist/query/traverse.d.ts +22 -126
- package/dist/query/traverse.d.ts.map +1 -1
- package/dist/query/traverse.js +0 -0
- package/dist/query/traverse.js.map +1 -1
- package/dist/query/unresolved.d.ts +19 -164
- package/dist/query/unresolved.d.ts.map +1 -1
- package/dist/query/unresolved.js +11 -138
- package/dist/query/unresolved.js.map +1 -1
- package/dist/query/verification-status.d.ts +12 -109
- package/dist/query/verification-status.d.ts.map +1 -1
- package/dist/query/verification-status.js +9 -99
- package/dist/query/verification-status.js.map +1 -1
- package/dist/recording/migrate.d.ts +4 -10
- package/dist/recording/migrate.d.ts.map +1 -1
- package/dist/recording/migrate.js +4 -10
- package/dist/recording/migrate.js.map +1 -1
- package/dist/recording/reader.d.ts +2 -7
- package/dist/recording/reader.d.ts.map +1 -1
- package/dist/recording/reader.js +2 -7
- package/dist/recording/reader.js.map +1 -1
- package/dist/recording/redact.d.ts +6 -57
- package/dist/recording/redact.d.ts.map +1 -1
- package/dist/recording/redact.js +8 -64
- package/dist/recording/redact.js.map +1 -1
- package/dist/recording/schema.d.ts +3 -38
- package/dist/recording/schema.d.ts.map +1 -1
- package/dist/recording/schema.js +3 -38
- package/dist/recording/schema.js.map +1 -1
- package/dist/recording/writer.d.ts +11 -74
- package/dist/recording/writer.d.ts.map +1 -1
- package/dist/recording/writer.js +3 -43
- package/dist/recording/writer.js.map +1 -1
- package/dist/scoping/fanout.d.ts +6 -68
- package/dist/scoping/fanout.d.ts.map +1 -1
- package/dist/scoping/fanout.js +6 -68
- package/dist/scoping/fanout.js.map +1 -1
- package/dist/scoping/score.d.ts +20 -70
- package/dist/scoping/score.d.ts.map +1 -1
- package/dist/scoping/score.js +20 -70
- package/dist/scoping/score.js.map +1 -1
- package/dist/scoping/tiers.d.ts +4 -16
- package/dist/scoping/tiers.d.ts.map +1 -1
- package/dist/scoping/tiers.js +4 -16
- package/dist/scoping/tiers.js.map +1 -1
- package/dist/scoping/traverse.d.ts +3 -25
- package/dist/scoping/traverse.d.ts.map +1 -1
- package/dist/scoping/traverse.js +14 -49
- package/dist/scoping/traverse.js.map +1 -1
- package/dist/scoping/weights.d.ts +10 -74
- package/dist/scoping/weights.d.ts.map +1 -1
- package/dist/scoping/weights.js +14 -86
- package/dist/scoping/weights.js.map +1 -1
- package/dist/sources/confirmed/incidents.d.ts +5 -35
- package/dist/sources/confirmed/incidents.d.ts.map +1 -1
- package/dist/sources/confirmed/incidents.js +14 -48
- package/dist/sources/confirmed/incidents.js.map +1 -1
- package/dist/sources/git/diff.d.ts +71 -65
- package/dist/sources/git/diff.d.ts.map +1 -1
- package/dist/sources/git/diff.js +136 -83
- package/dist/sources/git/diff.js.map +1 -1
- package/dist/sources/git/env.d.ts +7 -0
- package/dist/sources/git/env.d.ts.map +1 -1
- package/dist/sources/git/env.js +10 -11
- package/dist/sources/git/env.js.map +1 -1
- package/dist/sources/git/history.d.ts +64 -84
- package/dist/sources/git/history.d.ts.map +1 -1
- package/dist/sources/git/history.js +141 -112
- package/dist/sources/git/history.js.map +1 -1
- package/dist/sources/git/incidents.d.ts +13 -75
- package/dist/sources/git/incidents.d.ts.map +1 -1
- package/dist/sources/git/incidents.js +21 -91
- package/dist/sources/git/incidents.js.map +1 -1
- package/dist/sources/git/index.d.ts +5 -3
- package/dist/sources/git/index.d.ts.map +1 -1
- package/dist/sources/git/index.js +3 -2
- package/dist/sources/git/index.js.map +1 -1
- package/dist/sources/git/source.d.ts +9 -79
- package/dist/sources/git/source.d.ts.map +1 -1
- package/dist/sources/git/source.js +0 -0
- package/dist/sources/git/source.js.map +1 -1
- package/dist/sources/migrations/across-change.d.ts +94 -0
- package/dist/sources/migrations/across-change.d.ts.map +1 -0
- package/dist/sources/migrations/across-change.js +278 -0
- package/dist/sources/migrations/across-change.js.map +1 -0
- package/dist/sources/migrations/dialects.d.ts +20 -36
- package/dist/sources/migrations/dialects.d.ts.map +1 -1
- package/dist/sources/migrations/dialects.js +11 -36
- package/dist/sources/migrations/dialects.js.map +1 -1
- package/dist/sources/migrations/index.d.ts +3 -1
- package/dist/sources/migrations/index.d.ts.map +1 -1
- package/dist/sources/migrations/index.js +2 -1
- package/dist/sources/migrations/index.js.map +1 -1
- package/dist/sources/migrations/read.d.ts +14 -79
- package/dist/sources/migrations/read.d.ts.map +1 -1
- package/dist/sources/migrations/read.js +14 -89
- package/dist/sources/migrations/read.js.map +1 -1
- package/dist/sources/workspace/workspace.d.ts +6 -42
- package/dist/sources/workspace/workspace.d.ts.map +1 -1
- package/dist/sources/workspace/workspace.js +10 -53
- package/dist/sources/workspace/workspace.js.map +1 -1
- package/dist/store/driver/driver.d.ts +9 -38
- package/dist/store/driver/driver.d.ts.map +1 -1
- package/dist/store/driver/driver.js +4 -22
- package/dist/store/driver/driver.js.map +1 -1
- package/dist/store/driver/node-sqlite.d.ts +3 -12
- package/dist/store/driver/node-sqlite.d.ts.map +1 -1
- package/dist/store/driver/node-sqlite.js +4 -18
- package/dist/store/driver/node-sqlite.js.map +1 -1
- package/dist/store/index.d.ts +2 -7
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +4 -10
- package/dist/store/index.js.map +1 -1
- package/dist/store/migrate.d.ts +14 -50
- package/dist/store/migrate.d.ts.map +1 -1
- package/dist/store/migrate.js +15 -52
- package/dist/store/migrate.js.map +1 -1
- package/dist/store/reader.d.ts +19 -84
- package/dist/store/reader.d.ts.map +1 -1
- package/dist/store/reader.js +25 -92
- package/dist/store/reader.js.map +1 -1
- package/dist/store/schema.d.ts +14 -76
- package/dist/store/schema.d.ts.map +1 -1
- package/dist/store/schema.js +14 -76
- package/dist/store/schema.js.map +1 -1
- package/dist/store/writer.d.ts +14 -88
- package/dist/store/writer.d.ts.map +1 -1
- package/dist/store/writer.js +29 -123
- package/dist/store/writer.js.map +1 -1
- package/dist/tiers/certify.d.ts +46 -281
- package/dist/tiers/certify.d.ts.map +1 -1
- package/dist/tiers/certify.js +46 -226
- package/dist/tiers/certify.js.map +1 -1
- package/dist/tiers/ladder.d.ts +7 -51
- package/dist/tiers/ladder.d.ts.map +1 -1
- package/dist/tiers/ladder.js +13 -89
- package/dist/tiers/ladder.js.map +1 -1
- package/dist/validation/attributes.d.ts +47 -0
- package/dist/validation/attributes.d.ts.map +1 -0
- package/dist/validation/attributes.js +130 -0
- package/dist/validation/attributes.js.map +1 -0
- package/dist/validation/config-graph.d.ts +7 -56
- package/dist/validation/config-graph.d.ts.map +1 -1
- package/dist/validation/config-graph.js +15 -61
- package/dist/validation/config-graph.js.map +1 -1
- package/dist/validation/env.d.ts +53 -2
- package/dist/validation/env.d.ts.map +1 -1
- package/dist/validation/env.js +99 -4
- package/dist/validation/env.js.map +1 -1
- package/dist/validation/index.d.ts +5 -1
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +3 -1
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/join-substitution.d.ts +22 -120
- package/dist/validation/join-substitution.d.ts.map +1 -1
- package/dist/validation/join-substitution.js +13 -90
- package/dist/validation/join-substitution.js.map +1 -1
- package/dist/validation/migration-integrity.d.ts +72 -0
- package/dist/validation/migration-integrity.d.ts.map +1 -0
- package/dist/validation/migration-integrity.js +238 -0
- package/dist/validation/migration-integrity.js.map +1 -0
- package/dist/validation/migrations.d.ts +23 -88
- package/dist/validation/migrations.d.ts.map +1 -1
- package/dist/validation/migrations.js +20 -79
- package/dist/validation/migrations.js.map +1 -1
- package/dist/validation/nodes.d.ts +3 -1
- package/dist/validation/nodes.d.ts.map +1 -1
- package/dist/validation/nodes.js +3 -1
- package/dist/validation/nodes.js.map +1 -1
- package/dist/validation/rollback.d.ts +10 -73
- package/dist/validation/rollback.d.ts.map +1 -1
- package/dist/validation/rollback.js +23 -81
- package/dist/validation/rollback.js.map +1 -1
- package/dist/validation/route-drift.d.ts +9 -62
- package/dist/validation/route-drift.d.ts.map +1 -1
- package/dist/validation/route-drift.js +7 -52
- package/dist/validation/route-drift.js.map +1 -1
- package/dist/validation/sources.d.ts +16 -94
- package/dist/validation/sources.d.ts.map +1 -1
- package/dist/validation/sources.js +51 -147
- package/dist/validation/sources.js.map +1 -1
- package/dist/worker/pool.d.ts +6 -45
- package/dist/worker/pool.d.ts.map +1 -1
- package/dist/worker/pool.js +5 -42
- package/dist/worker/pool.js.map +1 -1
- package/dist/worker/protocol.d.ts +7 -20
- package/dist/worker/protocol.d.ts.map +1 -1
- package/dist/worker/protocol.js +3 -10
- package/dist/worker/protocol.js.map +1 -1
- package/dist/worker/traversal.worker.d.ts +2 -21
- package/dist/worker/traversal.worker.d.ts.map +1 -1
- package/dist/worker/traversal.worker.js +4 -23
- package/dist/worker/traversal.worker.js.map +1 -1
- package/package.json +11 -2
|
@@ -1,95 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Which commits
|
|
3
|
-
*
|
|
4
|
-
* Split out of `source.ts` when the answer stopped being one regex. The git
|
|
5
|
-
* source minted an `INCIDENT` for exactly one thing — a commit body carrying
|
|
6
|
-
* `This reverts commit <40 hex>` — and that produced **zero** incidents across
|
|
7
|
-
* three measured repositories (734/459/203 commits) and two in a real product
|
|
8
|
-
* repository. `similarIncidents` was therefore built, tested, correct and
|
|
9
|
-
* starved: its recall is not 0%, it is not computable, because it has never
|
|
10
|
-
* been given a real incident to find.
|
|
11
|
-
*
|
|
12
|
-
* ## The rule every mechanism here answers to
|
|
13
|
-
*
|
|
14
|
-
* `INCIDENT` is an EARNED node (DEC-017). It is never dropped, it survives
|
|
15
|
-
* every rebuild, and `INCIDENT_CORRELATED` biases diff-scoping traversal toward
|
|
16
|
-
* the files it names for as long as the store exists. A wrong incident is not a
|
|
17
|
-
* bad answer that a later run corrects — it is unrecoverable pollution in the
|
|
18
|
-
* one table that cannot be recomputed away. So:
|
|
19
|
-
*
|
|
20
|
-
* **Every mechanism rests on something a person declared. None rests on
|
|
21
|
-
* something Descry inferred.**
|
|
22
|
-
*
|
|
23
|
-
* A revert trailer is written by `git revert`. A `Revert "…"` subject is typed
|
|
24
|
-
* by a person or by GitHub's own button on their behalf. `Fixes #123` is a
|
|
25
|
-
* developer stating that something was broken and this commit fixed it. What is
|
|
26
|
-
* deliberately *not* here is any reading of "fix", "hotfix" or "bug" in prose —
|
|
27
|
-
* the original mechanism's own comment says why, and it applies unchanged to
|
|
28
|
-
* every mechanism added since: matching on the word "fix" would classify
|
|
29
|
-
* ordinary work as an incident.
|
|
30
|
-
*
|
|
31
|
-
* ## Refusals, not guesses
|
|
32
|
-
*
|
|
33
|
-
* A `Revert "X"` naming a subject this history does not contain, or containing
|
|
34
|
-
* twice, produces a `DetectedRefusal` rather than a ranked guess. Two candidates
|
|
35
|
-
* is a genuine ambiguity and picking the nearer one would be recency standing in
|
|
36
|
-
* for evidence — the same discipline every resolver in this project follows.
|
|
37
|
-
*
|
|
38
|
-
* See `DEC-NEXT-incident-minting-beyond-explicit-reverts`.
|
|
2
|
+
* Which commits describe a failure. `INCIDENT` is EARNED (DEC-017, never dropped, biases traversal permanently), so every mechanism rests on something a person declared — never Descry inferring "fix"/"bug" from prose.
|
|
3
|
+
* An ambiguous Revert is a DetectedRefusal, not a ranked guess. See DEC-NEXT-incident-minting-beyond-explicit-reverts.
|
|
39
4
|
*/
|
|
40
5
|
/** `git revert` writes this. Machine-generated, and the strongest signal available. */
|
|
41
6
|
const REVERT_TRAILER = /This reverts commit ([0-9a-f]{40})/;
|
|
42
|
-
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* Anchored at the start and requiring the quotes: `Revert the auth change` is
|
|
47
|
-
* prose about what the commit does, not a reference to a specific commit, and
|
|
48
|
-
* reading it as one would be exactly the inference this module refuses to make.
|
|
49
|
-
*/
|
|
7
|
+
/** `Revert "the original subject"` form, written by a person or GitHub's
|
|
8
|
+
* button. Anchored + requires quotes: unquoted `Revert the auth change` is
|
|
9
|
+
* prose, not a commit reference, and reading it as one is the inference refused here. */
|
|
50
10
|
const REVERT_SUBJECT = /^Revert\s+"(.+)"\s*$/;
|
|
51
|
-
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
* `Fixes #123` is a developer stating that something was broken. `See #123` and
|
|
55
|
-
* `Part of #124` are not — they relate a commit to an issue and say nothing
|
|
56
|
-
* about a defect. The verb is what carries the claim, so the verb is what is
|
|
57
|
-
* matched; a bare `#123` mints nothing.
|
|
58
|
-
*
|
|
59
|
-
* `GH-123` is GitHub's own cross-reference form and means the same thing.
|
|
60
|
-
*/
|
|
11
|
+
/** Closed list of fix-shaped verbs, immediately before the reference. `Fixes
|
|
12
|
+
* #123` claims a defect; `See #123` doesn't — a bare `#123` mints nothing.
|
|
13
|
+
* `GH-123` is GitHub's equivalent cross-reference form. */
|
|
61
14
|
const ISSUE_VERBS = "fix|fixes|fixed|close|closes|closed|resolve|resolves|resolved";
|
|
62
15
|
/** In the subject, anywhere: a subject is a claim about the commit itself. */
|
|
63
16
|
const SUBJECT_ISSUE = new RegExp(`\\b(?:${ISSUE_VERBS})\\s+(?:#|GH-)(\\d+)\\b`, "gi");
|
|
64
|
-
/**
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
* Measured, not supposed. Run over this repository's own history, the
|
|
69
|
-
* anywhere-in-the-body form matched three commits, and all three were prose
|
|
70
|
-
* *about* the convention rather than uses of it: a sentence quoting
|
|
71
|
-
* `"Fixes #123"` as an example, and a bullet reading
|
|
72
|
-
* `- issue-reference: \`Fixes #123\` and its closed list…`. A commit message
|
|
73
|
-
* discussing the convention is not a commit message using it, and an EARNED
|
|
74
|
-
* node minted from one is permanent.
|
|
75
|
-
*
|
|
76
|
-
* The trailer position is where the convention actually lives — it is what
|
|
77
|
-
* GitHub's own tooling emits and what a template puts there — so this costs
|
|
78
|
-
* almost no real recall and removes a whole class of false positive. Rule 2:
|
|
79
|
-
* when in doubt, omit.
|
|
17
|
+
/** In the body, only in trailer position (line start). Measured: the
|
|
18
|
+
* anywhere-in-body form matched 3 commits here, all prose *about* the
|
|
19
|
+
* convention, not uses of it — and an EARNED node minted from one is permanent. Trailer position is where the convention actually lives. Rule 2.
|
|
80
20
|
*/
|
|
81
21
|
const BODY_ISSUE = new RegExp(`^[ \\t]*(?:${ISSUE_VERBS})\\s+(?:#|GH-)(\\d+)\\b`, "gim");
|
|
82
22
|
function pathsOf(commit) {
|
|
83
23
|
return [...new Set(commit.changes.map((c) => c.path))].sort();
|
|
84
24
|
}
|
|
85
|
-
/**
|
|
86
|
-
*
|
|
87
|
-
* not contain.
|
|
88
|
-
*
|
|
89
|
-
* `commits` is the history as `readHistory` returns it — newest first. Order is
|
|
90
|
-
* not relied on for correctness: a revert's target is found by timestamp, so
|
|
91
|
-
* the result is identical for any permutation of the same commits.
|
|
92
|
-
*/
|
|
25
|
+
/** Every incident this history declares, plus every revert whose target it
|
|
26
|
+
* lacks. Order-independent: a revert's target is found by timestamp. */
|
|
93
27
|
export function detectIncidents(commits) {
|
|
94
28
|
const incidents = [];
|
|
95
29
|
const refusals = [];
|
|
@@ -104,9 +38,8 @@ export function detectIncidents(commits) {
|
|
|
104
38
|
existing.push(commit);
|
|
105
39
|
}
|
|
106
40
|
for (const commit of commits) {
|
|
107
|
-
//
|
|
108
|
-
//
|
|
109
|
-
// mechanism would mint one incident twice under two different names.
|
|
41
|
+
// Trailer first, exclusively: git revert writes both trailer and subject,
|
|
42
|
+
// so reading the subject too would mint one incident under two names.
|
|
110
43
|
const revertedSha = REVERT_TRAILER.exec(commit.body)?.[1];
|
|
111
44
|
if (revertedSha !== undefined) {
|
|
112
45
|
const target = bySha.get(revertedSha);
|
|
@@ -125,9 +58,8 @@ export function detectIncidents(commits) {
|
|
|
125
58
|
}
|
|
126
59
|
const quoted = REVERT_SUBJECT.exec(commit.subject)?.[1];
|
|
127
60
|
if (quoted !== undefined) {
|
|
128
|
-
// Backwards only
|
|
129
|
-
//
|
|
130
|
-
// different commit that happens to share a name.
|
|
61
|
+
// Backwards only: a commit can't revert something written after it, and
|
|
62
|
+
// a same-subject commit landing later just happens to share a name.
|
|
131
63
|
const candidates = (bySubject.get(quoted) ?? []).filter((c) => c.timestamp < commit.timestamp);
|
|
132
64
|
if (candidates.length === 1) {
|
|
133
65
|
const target = candidates[0];
|
|
@@ -157,10 +89,8 @@ export function detectIncidents(commits) {
|
|
|
157
89
|
}
|
|
158
90
|
continue;
|
|
159
91
|
}
|
|
160
|
-
// An issue reference
|
|
161
|
-
//
|
|
162
|
-
// trailer position — see `BODY_ISSUE` for the three false positives that
|
|
163
|
-
// distinction was measured against.
|
|
92
|
+
// An issue reference claims a defect. Read from the subject anywhere,
|
|
93
|
+
// from the body only in trailer position — see BODY_ISSUE's measurement.
|
|
164
94
|
const refs = new Set();
|
|
165
95
|
for (const match of commit.subject.matchAll(SUBJECT_ISSUE))
|
|
166
96
|
refs.add(`#${match[1]}`);
|
|
@@ -176,8 +106,8 @@ export function detectIncidents(commits) {
|
|
|
176
106
|
});
|
|
177
107
|
}
|
|
178
108
|
}
|
|
179
|
-
// Deterministic: two runs
|
|
180
|
-
//
|
|
109
|
+
// Deterministic: two runs must produce a byte-identical batch, or the
|
|
110
|
+
// store's content hash moves for no reason.
|
|
181
111
|
incidents.sort((a, b) => a.fix.sha.localeCompare(b.fix.sha) || (a.issueRef ?? "").localeCompare(b.issueRef ?? ""));
|
|
182
112
|
refusals.sort((a, b) => a.fixSha.localeCompare(b.fixSha) || a.rawTarget.localeCompare(b.rawTarget));
|
|
183
113
|
unresolvedTrailers.sort((a, b) => a.fix.sha.localeCompare(b.fix.sha));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incidents.js","sourceRoot":"","sources":["../../../src/sources/git/incidents.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"incidents.js","sourceRoot":"","sources":["../../../src/sources/git/incidents.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4CH,uFAAuF;AACvF,MAAM,cAAc,GAAG,oCAAoC,CAAC;AAE5D;;0FAE0F;AAC1F,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAE9C;;4DAE4D;AAC5D,MAAM,WAAW,GAAG,+DAA+D,CAAC;AAEpF,8EAA8E;AAC9E,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,SAAS,WAAW,yBAAyB,EAAE,IAAI,CAAC,CAAC;AAEtF;;;GAGG;AACH,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,cAAc,WAAW,yBAAyB,EAAE,KAAK,CAAC,CAAC;AAEzF,SAAS,OAAO,CAAC,MAAc;IAC7B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAChE,CAAC;AAED;yEACyE;AACzE,MAAM,UAAU,eAAe,CAAC,OAA0B;IACxD,MAAM,SAAS,GAAuB,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,MAAM,kBAAkB,GAAwB,EAAE,CAAC;IAEnD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,SAAS;YAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;;YAC/D,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,0EAA0E;QAC1E,sEAAsE;QACtE,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACtC,IAAI,MAAM,KAAK,SAAS;gBAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;iBAC3E,CAAC;gBACJ,SAAS,CAAC,IAAI,CAAC;oBACb,SAAS,EAAE,iBAAiB;oBAC5B,GAAG,EAAE,MAAM;oBACX,cAAc,EAAE,MAAM;oBACtB,QAAQ,EAAE,IAAI;oBACd,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC;iBACjC,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,wEAAwE;YACxE,oEAAoE;YACpE,MAAM,UAAU,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/F,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;gBAC9B,SAAS,CAAC,IAAI,CAAC;oBACb,SAAS,EAAE,eAAe;oBAC1B,GAAG,EAAE,MAAM;oBACX,cAAc,EAAE,MAAM;oBACtB,QAAQ,EAAE,IAAI;oBACd,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC;iBACjC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,QAAQ,CAAC,IAAI,CAAC;oBACZ,MAAM,EAAE,MAAM,CAAC,GAAG;oBAClB,SAAS,EAAE,MAAM;oBACjB,MAAM,EACJ,qFAAqF;wBACrF,yFAAyF;iBAC5F,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC;oBACZ,MAAM,EAAE,MAAM,CAAC,GAAG;oBAClB,SAAS,EAAE,MAAM;oBACjB,MAAM,EACJ,GAAG,UAAU,CAAC,MAAM,oEAAoE;wBACxF,gEAAgE;iBACnE,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QAED,sEAAsE;QACtE,yEAAyE;QACzE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;QACtF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;QAChF,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACxC,SAAS,CAAC,IAAI,CAAC;gBACb,SAAS,EAAE,iBAAiB;gBAC5B,GAAG,EAAE,MAAM;gBACX,cAAc,EAAE,IAAI;gBACpB,QAAQ;gBACR,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC;aACjC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,4CAA4C;IAC5C,SAAS,CAAC,IAAI,CACZ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAC3F,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACpG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAEtE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;AACrD,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export { createGitSource, revertedShaOf, GIT_SOURCE_ID, GIT_SOURCE_VERSION, UNDIRECTED_EDGE_TYPES, } from "./source.ts";
|
|
2
2
|
export type { GitSourceOptions } from "./source.ts";
|
|
3
|
-
export { readHistory, gitHead, isGitRepository, filesInCommit, changedFiles, resolveCommitBySha, logForPath, } from "./history.ts";
|
|
3
|
+
export { readHistory, gitHead, isGitRepository, GitUnavailableError, isPathTrackedByGit, filesInCommit, changedFiles, resolveCommitBySha, logForPath, } from "./history.ts";
|
|
4
4
|
export type { Commit, CommitChange, HistoryOptions, PathLogCommit, PathLogOptions, PathLogResult, } from "./history.ts";
|
|
5
|
-
export { gitDiff, gitWorkingTreeDiff, TOTAL_PATCH_BUDGET_REASON_PREFIX } from "./diff.ts";
|
|
6
|
-
export
|
|
5
|
+
export { gitDiff, gitWorkingTreeChange, gitWorkingTreeDiff, TOTAL_PATCH_BUDGET_REASON_PREFIX } from "./diff.ts";
|
|
6
|
+
export { uncommittedAmong, workingTreeChangedFiles } from "./history.ts";
|
|
7
|
+
export type { WorkingTreeFilesOptions } from "./history.ts";
|
|
8
|
+
export type { GitDiffFile, GitDiffOptions, GitWorkingTreeChange, GitWorkingTreeChangeOptions, GitWorkingTreeDiffOptions, } from "./diff.ts";
|
|
7
9
|
export { detectIncidents } from "./incidents.ts";
|
|
8
10
|
export type { DetectedIncident, DetectedRefusal, IncidentDetection, IncidentMechanism, UnresolvedTrailer, } from "./incidents.ts";
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sources/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,MAAM,EACN,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sources/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,MAAM,EACN,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,MAAM,WAAW,CAAC;AAChH,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACzE,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,YAAY,EACV,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { createGitSource, revertedShaOf, GIT_SOURCE_ID, GIT_SOURCE_VERSION, UNDIRECTED_EDGE_TYPES, } from "./source.js";
|
|
2
|
-
export { readHistory, gitHead, isGitRepository, filesInCommit, changedFiles, resolveCommitBySha, logForPath, } from "./history.js";
|
|
3
|
-
export { gitDiff, gitWorkingTreeDiff, TOTAL_PATCH_BUDGET_REASON_PREFIX } from "./diff.js";
|
|
2
|
+
export { readHistory, gitHead, isGitRepository, GitUnavailableError, isPathTrackedByGit, filesInCommit, changedFiles, resolveCommitBySha, logForPath, } from "./history.js";
|
|
3
|
+
export { gitDiff, gitWorkingTreeChange, gitWorkingTreeDiff, TOTAL_PATCH_BUDGET_REASON_PREFIX } from "./diff.js";
|
|
4
|
+
export { uncommittedAmong, workingTreeChangedFiles } from "./history.js";
|
|
4
5
|
export { detectIncidents } from "./incidents.js";
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sources/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,UAAU,GACX,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sources/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,UAAU,GACX,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,MAAM,WAAW,CAAC;AAChH,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAUzE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,93 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* that split exists: history is a producer of IR with no parser, no language and
|
|
6
|
-
* no resolution beyond R0, and without the narrower interface it would need a
|
|
7
|
-
* second write path — and a second write path is how un-provenanced rows reach
|
|
8
|
-
* storage.
|
|
9
|
-
*
|
|
10
|
-
* ## Everything here is R0, and that is not a formality
|
|
11
|
-
*
|
|
12
|
-
* Co-change is not code analysis. It observes that two files were edited in the
|
|
13
|
-
* same commit, which is evidence about *people*, not about program structure.
|
|
14
|
-
* R0's confidence ceiling (DEC-019) therefore caps every edge this source emits
|
|
15
|
-
* at 0.5, and §11A.5's reliability cap makes any finding resting on one Class C
|
|
16
|
-
* — a behavioural prediction that must be live-confirmed or dropped. That is the
|
|
17
|
-
* correct treatment: "these two files usually change together" is a hint for a
|
|
18
|
-
* human, never a claim about what breaks.
|
|
19
|
-
*
|
|
20
|
-
* ## Precision over recall, applied three times
|
|
21
|
-
*
|
|
22
|
-
* 1. **Merge commits are excluded from co-change.** A merge's file list is the
|
|
23
|
-
* union of both branches, so counting it would report every file in a large
|
|
24
|
-
* merge as coupled to every other. This exclusion is scoped to co-change —
|
|
25
|
-
* it does **not** apply to resolving what a revert names (see below): a
|
|
26
|
-
* revert of "Merge pull request #N" is a real incident whose target
|
|
27
|
-
* happens to be a merge commit, and excluding it from co-change is not a
|
|
28
|
-
* reason to also make it unresolvable as an incident.
|
|
29
|
-
* 2. **Large commits are excluded.** A commit touching hundreds of files is a
|
|
30
|
-
* reformat or a dependency bump; including it adds O(n²) edges that mean
|
|
31
|
-
* nothing.
|
|
32
|
-
* 3. **Only explicit reverts become incidents.** A commit whose message merely
|
|
33
|
-
* contains "fix" is not evidence of an incident. `git revert` writes a
|
|
34
|
-
* machine-generated `This reverts commit <sha>.` line, and that is the only
|
|
35
|
-
* signal used.
|
|
36
|
-
*
|
|
37
|
-
* ## Resolving what a revert names
|
|
38
|
-
*
|
|
39
|
-
* `readHistory` indexes commits reachable from `HEAD`, minus merges. A revert
|
|
40
|
-
* commit's target sha can miss that index for two reasons that have nothing to
|
|
41
|
-
* do with whether the incident is real: the target is a merge commit (excluded
|
|
42
|
-
* above), or the target was never merged as itself — a squash/rebase-merge
|
|
43
|
-
* workflow (GitHub's default) discards the original commits and only the
|
|
44
|
-
* squashed commit survives on `HEAD`, so "Revert PR #N" names a sha that is
|
|
45
|
-
* either real-but-unreachable (still sitting on an abandoned branch) or
|
|
46
|
-
* genuinely gone (garbage-collected after the branch was deleted). Measured
|
|
47
|
-
* against 5 real repos, 6 of 9 real reverts fell into these two buckets and
|
|
48
|
-
* were silently dropped by a naive index lookup.
|
|
49
|
-
*
|
|
50
|
-
* `resolveCommitBySha` is the fallback: it goes straight to the object
|
|
51
|
-
* database (`git cat-file` / `git diff-tree`), which enforces neither
|
|
52
|
-
* constraint `readHistory` applies. It resolves the merge case and the
|
|
53
|
-
* unreachable-but-present case. Only the genuinely-gone case still fails, and
|
|
54
|
-
* that failure is disclosed via `unresolved` (below) rather than dropped with
|
|
55
|
-
* no trace — this is the fallback CLAUDE.md rule 7 requires labelling.
|
|
2
|
+
* Git history `IRSource` (§11.6/§11.7) — an `IRSource`, not a `LanguageAdapter`: one write path, no un-provenanced rows. Everything is R0; DEC-019 caps confidence at 0.5 and §11A.5 caps any finding at Class C — co-change is evidence about people, not code.
|
|
3
|
+
* Precision over recall: merge commits excluded from co-change (not from revert resolution below), large commits excluded, only explicit-revert trailers become incidents.
|
|
4
|
+
* `resolveCommitBySha` recovers reverts the primary index misses (6/9 real reverts, 5 repos, needed it); a genuinely-gone target is disclosed via `unresolved`, never dropped (rule 7).
|
|
56
5
|
*/
|
|
57
6
|
import { type IRSource } from "@descryy/ir";
|
|
58
7
|
import { type Commit, type HistoryOptions } from "./history.ts";
|
|
59
8
|
export declare const GIT_SOURCE_ID = "git-history";
|
|
60
9
|
export declare const GIT_SOURCE_VERSION = "0.1.0";
|
|
61
|
-
/**
|
|
62
|
-
* `
|
|
63
|
-
*
|
|
64
|
-
* Emitting both directions would double the edge count and make the pair count
|
|
65
|
-
* twice in any per-edge aggregate. The cost is that a caller must traverse it
|
|
66
|
-
* undirected — `direction: "both"` — and forgetting that yields a *missing*
|
|
67
|
-
* edge, which is a disclosed gap rather than a wrong answer. That asymmetry is
|
|
68
|
-
* why this is the safe default and not the convenient one.
|
|
69
|
-
*/
|
|
10
|
+
/** `CHANGES_WITH` is symmetric, stored one direction only — a caller must
|
|
11
|
+
* traverse `direction: "both"`, or gets a disclosed missing edge, not a wrong one. */
|
|
70
12
|
export declare const UNDIRECTED_EDGE_TYPES: readonly ["CHANGES_WITH"];
|
|
71
13
|
export interface GitSourceOptions extends HistoryOptions {
|
|
72
14
|
readonly repo: string;
|
|
73
15
|
readonly cwd: string;
|
|
74
|
-
/**
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
* **Provisional.** The architecture's own illustration is that 18x co-change
|
|
78
|
-
* is a warning and 2x is noise, which fixes the shape of the threshold but not
|
|
79
|
-
* its value; §32's tuning register has no number for it either. 5 is a
|
|
80
|
-
* defensible floor for a repo with a few hundred commits and is expected to
|
|
81
|
-
* move once measured. See DEC-033.
|
|
82
|
-
*/
|
|
16
|
+
/** Minimum times two files must co-change before an edge is emitted.
|
|
17
|
+
* Provisional — 5 is a defensible floor, expected to move once measured (DEC-033). */
|
|
83
18
|
readonly minSupport?: number;
|
|
84
|
-
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* Support alone over-reports the files that change constantly: a config file
|
|
88
|
-
* touched in half of all commits co-occurs with everything. Confidence is what
|
|
89
|
-
* separates "coupled" from "always busy".
|
|
90
|
-
*/
|
|
19
|
+
/** Minimum `support / timesFileChanged` — support alone over-reports files
|
|
20
|
+
* that change constantly; this separates "coupled" from "always busy". */
|
|
91
21
|
readonly minConfidence?: number;
|
|
92
22
|
}
|
|
93
23
|
export declare function revertedShaOf(commit: Commit): string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/sources/git/source.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/sources/git/source.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAQL,KAAK,QAAQ,EAGd,MAAM,aAAa,CAAC;AAErB,OAAO,EAKL,KAAK,MAAM,EACX,KAAK,cAAc,EACpB,MAAM,cAAc,CAAC;AAGtB,eAAO,MAAM,aAAa,gBAAgB,CAAC;AAC3C,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAG1C;uFACuF;AACvF,eAAO,MAAM,qBAAqB,2BAA4B,CAAC;AAE/D,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;2FACuF;IACvF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;+EAC2E;IAC3E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAWD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG3D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,QAAQ,CAkUnE"}
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../../src/sources/git/source.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../../src/sources/git/source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* §14.6 for one change against a base branch — the shape `cross_pr` actually has.
|
|
3
|
+
*
|
|
4
|
+
* ## Why the base branch is the second member of the set
|
|
5
|
+
*
|
|
6
|
+
* `migration-heads.ts` computes heads across a *set of changes*, and `cross_pr`
|
|
7
|
+
* has one. That is not a mismatch, it is a missing member: the set the
|
|
8
|
+
* migration runner will see after this merge is **base's migrations plus this
|
|
9
|
+
* change's**, and heads over that union is exactly the computation the runner
|
|
10
|
+
* performs when it refuses with *"multiple head revisions are present"*.
|
|
11
|
+
*
|
|
12
|
+
* So base is read as a change with its own id. Nothing about the check changes;
|
|
13
|
+
* it is given the set it was always meant to have.
|
|
14
|
+
*
|
|
15
|
+
* ## The one wrong sentence this must not say
|
|
16
|
+
*
|
|
17
|
+
* A base branch that already forks produces two heads whatever the change does.
|
|
18
|
+
* Reporting that as *this* change's conflict is a wrong sentence about the wrong
|
|
19
|
+
* person, and it would fire on every change to such a repository until someone
|
|
20
|
+
* fixed a fork they did not create.
|
|
21
|
+
*
|
|
22
|
+
* So base is measured **alone** first. Its head count is a fact about base:
|
|
23
|
+
*
|
|
24
|
+
* | base alone | what this reports |
|
|
25
|
+
* | --- | --- |
|
|
26
|
+
* | one head | the union is computed and `baseHead` is supplied, so stale-history is checked too |
|
|
27
|
+
* | more than one | a disclosure naming base's fork, and no conflict attributed to the change |
|
|
28
|
+
* | none — no migrations at all | the change's own migrations, with nothing to fork from |
|
|
29
|
+
*
|
|
30
|
+
* ## Reading base without checking it out
|
|
31
|
+
*
|
|
32
|
+
* `git ls-tree` names base's files and `git show base:<path>` reads one. Neither
|
|
33
|
+
* touches the working tree, so this is safe to run mid-edit — which is the only
|
|
34
|
+
* time anyone runs a pre-merge check.
|
|
35
|
+
*
|
|
36
|
+
* The tree is narrowed by {@link looksLikeMigration} before anything is read. A
|
|
37
|
+
* base branch is thousands of paths and its migrations are dozens; reading all
|
|
38
|
+
* of them to discover that would be the check's whole cost paid for nothing.
|
|
39
|
+
*
|
|
40
|
+
* ## Everything here is R0 and the ceiling follows
|
|
41
|
+
*
|
|
42
|
+
* A regex over source text, per `read.ts`. The class column is a ceiling rather
|
|
43
|
+
* than a floor, so a conflict computed from these records caps at C however
|
|
44
|
+
* certain the arithmetic above it. Reaching A needs the framework's own
|
|
45
|
+
* migration history, which needs the tool installed and run, and nothing here
|
|
46
|
+
* installs or runs anything.
|
|
47
|
+
*/
|
|
48
|
+
import type { MigrationHeadReport } from "../../multipr/migration-heads.ts";
|
|
49
|
+
import type { MigrationReadReport } from "./read.ts";
|
|
50
|
+
/** A migration no runner will see, because of where it is. */
|
|
51
|
+
export interface MisplacedMigration {
|
|
52
|
+
readonly file: string;
|
|
53
|
+
readonly revision: string;
|
|
54
|
+
/** The dialect it parses as — the same one this repository already uses. */
|
|
55
|
+
readonly dialect: string;
|
|
56
|
+
}
|
|
57
|
+
export interface MigrationsAcrossChange {
|
|
58
|
+
/** Base's own migrations, read from the tree rather than the working copy. */
|
|
59
|
+
readonly base: MigrationReadReport;
|
|
60
|
+
/** What this change adds or edits. */
|
|
61
|
+
readonly change: MigrationReadReport;
|
|
62
|
+
/**
|
|
63
|
+
* Base's single head, or `null` when base has none or more than one.
|
|
64
|
+
*
|
|
65
|
+
* `null` for two different reasons and the notes say which. Supplying it is
|
|
66
|
+
* what enables the stale-history check one level up.
|
|
67
|
+
*/
|
|
68
|
+
readonly baseHead: string | null;
|
|
69
|
+
/** Heads over the union — the computation the migration runner performs. */
|
|
70
|
+
readonly report: MigrationHeadReport;
|
|
71
|
+
/**
|
|
72
|
+
* Well-formed migrations sitting where no migration tool looks.
|
|
73
|
+
*
|
|
74
|
+
* Not part of the head computation, and that is the point: the runner cannot
|
|
75
|
+
* see them either, so a merge that "leaves one head" can be true and
|
|
76
|
+
* incomplete at once.
|
|
77
|
+
*/
|
|
78
|
+
readonly misplaced: readonly MisplacedMigration[];
|
|
79
|
+
readonly notes: readonly string[];
|
|
80
|
+
}
|
|
81
|
+
export interface AcrossChangeOptions {
|
|
82
|
+
/** Cap on files read per side. Truncation is disclosed, never silent. */
|
|
83
|
+
readonly maxFiles?: number;
|
|
84
|
+
/** Paths this change touched. Read from git when not supplied. */
|
|
85
|
+
readonly changedFiles?: readonly string[];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Read both sides of a merge and compute the heads it would leave.
|
|
89
|
+
*
|
|
90
|
+
* @param base the branch this change would merge into
|
|
91
|
+
* @param head the tip being reviewed
|
|
92
|
+
*/
|
|
93
|
+
export declare function readMigrationsAcrossChange(cwd: string, base: string, head: string, options?: AcrossChangeOptions): Promise<MigrationsAcrossChange>;
|
|
94
|
+
//# sourceMappingURL=across-change.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"across-change.d.ts","sourceRoot":"","sources":["../../../src/sources/migrations/across-change.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAOH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAG5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AA0BrD,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,sCAAsC;IACtC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AA2HD,MAAM,WAAW,mBAAmB;IAClC,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,kEAAkE;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,sBAAsB,CAAC,CAqGjC"}
|