@davesheffer/hunch 1.18.0 → 1.18.1

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/README.md CHANGED
@@ -23,6 +23,9 @@ then a deterministic check of the change against the rules your team has explici
23
23
  > relationships survive pre-render syntax without weakening fail-closed handling for ordinary
24
24
  > invalid YAML.
25
25
 
26
+ Read the [v1.18 release story](https://hunch-pi.vercel.app/blog/post?slug=configuration-joins-the-graph)
27
+ for the graph semantics, chart boundaries, honest limits, and Oliver Sampson's contribution.
28
+
26
29
  See the public [roadmap](ROADMAP.md) for what is next and what is deliberately out of scope.
27
30
 
28
31
  ## Start in five minutes
@@ -89,7 +92,7 @@ Git repo that every teammate can access, install the Matrix release on team mach
89
92
  have one maintainer run:
90
93
 
91
94
  ```bash
92
- npm i -g @davesheffer/hunch@1.18.0
95
+ npm i -g @davesheffer/hunch@1.18.1
93
96
  hunch shared --repo git@github.com:acme/project-hunch-memory.git
94
97
  git add .gitignore .hunch/team.json
95
98
  git commit -m "chore: connect shared Hunch memory"
@@ -104,7 +107,7 @@ printed by Hunch. Omit `--migrate` for a new setup.
104
107
  After the pointer commit lands, teammates need Hunch installed and Git access to the memory repo:
105
108
 
106
109
  ```bash
107
- npm i -g @davesheffer/hunch@1.18.0
110
+ npm i -g @davesheffer/hunch@1.18.1
108
111
  git pull
109
112
  hunch init
110
113
  hunch doctor
@@ -7,7 +7,10 @@
7
7
  * accepted -> status accepted (live)
8
8
  * proposed/draft -> status proposed
9
9
  * rejected -> status rejected
10
- * superseded/deprecated -> status superseded, valid_to closed (bi-temporal)
10
+ * superseded -> status superseded, valid_to closed (bi-temporal)
11
+ * deprecated + successor -> status superseded, closed at the successor date
12
+ * deprecated, bare -> status accepted with a loud review warning; the raw
13
+ * lifecycle remains in provenance evidence
11
14
  * "Considered Options" minus the chosen one -> alternatives_rejected
12
15
  * file slug -> topic `adr.<slug>` (namespaced so an import can never
13
16
  * collide with a live hand-captured topic; the CLI still
@@ -102,7 +105,14 @@ function refNumbers(text) {
102
105
  }
103
106
  function mapStatus(raw) {
104
107
  const s = raw.toLowerCase();
105
- if (/supersed|deprecat/.test(s))
108
+ // MADR permits a bare `deprecated` lifecycle with no replacement relation.
109
+ // Hunch has no deprecated Decision status, and inventing `superseded` would
110
+ // silently fabricate a history edge and remove the record from live recall.
111
+ // Keep it advisory/live unless an explicit successor below proves closure;
112
+ // provenance retains the source status and the mapper emits a warning.
113
+ if (/deprecat/.test(s))
114
+ return "accepted";
115
+ if (/supersed/.test(s))
106
116
  return "superseded";
107
117
  if (/reject/.test(s))
108
118
  return "rejected";
@@ -225,6 +235,9 @@ export function mapAdrCorpus(sources) {
225
235
  }
226
236
  const decisions = parsed.map((p) => {
227
237
  const successor = p.supersededByNumbers.map((n) => byNumber.get(n)).find(Boolean) ?? null;
238
+ if (/deprecat/i.test(p.statusRaw) && !successor) {
239
+ warnings.push(`${p.relPath}: deprecated status names no resolvable successor — kept in force as accepted; raw status remains in provenance evidence, review and record an explicit successor or rejection`);
240
+ }
228
241
  const superseded = p.status === "superseded" || !!successor;
229
242
  const validTo = superseded ? (successor?.date ?? p.date) : null;
230
243
  const alternatives = p.consideredOptions.filter((o) => !p.chosenOption || o.toLowerCase() !== p.chosenOption.toLowerCase());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@davesheffer/hunch",
3
- "version": "1.18.0",
3
+ "version": "1.18.1",
4
4
  "mcpName": "io.github.davesheffer/hunch",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Dave Sheffer <dave.sheffer1@gmail.com>",
package/server.json CHANGED
@@ -7,13 +7,13 @@
7
7
  "source": "github"
8
8
  },
9
9
  "websiteUrl": "https://hunch-pi.vercel.app",
10
- "version": "1.18.0",
10
+ "version": "1.18.1",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "npm",
14
14
  "registryBaseUrl": "https://registry.npmjs.org",
15
15
  "identifier": "@davesheffer/hunch",
16
- "version": "1.18.0",
16
+ "version": "1.18.1",
17
17
  "runtimeHint": "npx",
18
18
  "packageArguments": [
19
19
  {