instar 1.3.1003 → 1.3.1004
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/core/userChannels.d.ts +46 -0
- package/dist/core/userChannels.d.ts.map +1 -1
- package/dist/core/userChannels.js +122 -2
- package/dist/core/userChannels.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +11 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/scripts/lib/classify-tier.mjs +15 -1
- package/src/data/builtin-manifest.json +46 -46
- package/upgrades/1.3.1004.md +111 -0
- package/upgrades/side-effects/channels-wa-imessage.md +77 -0
- package/upgrades/side-effects/tier-config-hint-filename.md +72 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Side-effects review — tier classifier no longer treats a .config FILENAME as a config surface
|
|
2
|
+
|
|
3
|
+
**Change:** removes the `\.config\b` alternative from `CONFIG_SURFACE_HINT` in
|
|
4
|
+
`scripts/lib/classify-tier.mjs`. That alternative matched a filename REFERENCE, so a diff that merely
|
|
5
|
+
read `*.config.ts` satisfied the config-surface gate and, combined with any object literal, raised the
|
|
6
|
+
risk floor for "new config key added".
|
|
7
|
+
|
|
8
|
+
**Decision point touched?** Yes — the risk floor of the instar-dev tier gate. This LOWERS the floor in
|
|
9
|
+
one specific false-positive case, so it is a loosening and reviewed as such.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 1. Over-block
|
|
14
|
+
|
|
15
|
+
This change exists to remove one. The over-block was concrete: a read-only developer script that adds
|
|
16
|
+
no config key had its floor raised to 2 purely for naming `vitest.push.config.ts`.
|
|
17
|
+
|
|
18
|
+
## 2. Under-block
|
|
19
|
+
|
|
20
|
+
The real risk of the change, stated plainly: narrowing a heuristic can blind it. If a genuine
|
|
21
|
+
config-key addition mentions ONLY a `*.config.ts` filename and none of the remaining anchors
|
|
22
|
+
(`ConfigDefaults`, `config.json`, `defaultConfig`, `InstarConfig`, `configSchema`), its floor will no
|
|
23
|
+
longer rise.
|
|
24
|
+
|
|
25
|
+
Bounded two ways. The remaining anchors cover the actual config surfaces in this repo — a diff adding
|
|
26
|
+
a real key names the module, the file, or the type. And a test now iterates EVERY remaining anchor and
|
|
27
|
+
asserts the floor still rises, so a future narrowing that blinds the check fails.
|
|
28
|
+
|
|
29
|
+
Residual: this is a heuristic over diff text and always was. It deters accidental omission; it is not
|
|
30
|
+
a boundary against a determined author. Unchanged by this.
|
|
31
|
+
|
|
32
|
+
## 3. Level-of-abstraction fit
|
|
33
|
+
|
|
34
|
+
Correct — the defect is in the hint regex and the fix is in the hint regex. A broader alternative
|
|
35
|
+
(requiring the anchor on the SAME line as the key) was considered and rejected as a larger behavioural
|
|
36
|
+
change than the evidence supports: one bad alternative was identified precisely, so one alternative is
|
|
37
|
+
removed.
|
|
38
|
+
|
|
39
|
+
## 4. Signal vs authority compliance
|
|
40
|
+
|
|
41
|
+
The classifier is a SIGNAL that informs a declared tier; the agent holds the authority and the
|
|
42
|
+
declaration is audited. This change makes the signal more accurate without altering who decides. Per
|
|
43
|
+
`docs/signal-vs-authority.md` that is the intended direction.
|
|
44
|
+
|
|
45
|
+
## 5. Interactions
|
|
46
|
+
|
|
47
|
+
`CONFIG_SURFACE_HINT` is used only to gate the `key: value` pattern inside the new-capability check.
|
|
48
|
+
No other risk signal is affected; the `export class` and router patterns are untouched. All 47
|
|
49
|
+
pre-existing classifier tests pass unchanged, plus 2 new ones.
|
|
50
|
+
|
|
51
|
+
Changes to this file alter tier decisions for FUTURE commits only. Nothing recorded in past decision
|
|
52
|
+
audits is rewritten.
|
|
53
|
+
|
|
54
|
+
## 6. External surfaces
|
|
55
|
+
|
|
56
|
+
None. Development-time classifier; no endpoint, no config key, no runtime behaviour, not user-facing.
|
|
57
|
+
|
|
58
|
+
## 7. Multi-machine posture
|
|
59
|
+
|
|
60
|
+
Not applicable: a pure function over diff text, identical on every checkout, with no state, no
|
|
61
|
+
persistence, and nothing to replicate or reconcile.
|
|
62
|
+
|
|
63
|
+
## 8. Rollback cost
|
|
64
|
+
|
|
65
|
+
Trivial — restore the alternative. The regression test would then fail, which is the correct signal
|
|
66
|
+
that the rollback reintroduces the false positive rather than a silent revert.
|
|
67
|
+
|
|
68
|
+
## Disclosure
|
|
69
|
+
|
|
70
|
+
I hit this false positive myself and declared Tier 1 under the raised floor without reading it first.
|
|
71
|
+
That declaration and its deliberate re-declaration are both in the decision audit. This change fixes
|
|
72
|
+
the classifier; it does not excuse the declaration.
|