novahiz 0.4.0 → 0.5.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/CHANGELOG.md +84 -0
- package/README.md +433 -400
- package/adapters/opencode/agent/novahiz.md +3 -0
- package/adapters/opencode/novahiz-token-economy.ts +255 -0
- package/bin/novahiz.cmd +2 -2
- package/bin/novahiz.mjs +31 -1
- package/catalog/overrides.json +13 -0
- package/catalog/rules.json +14 -0
- package/docs/CONFIGURATION.md +5 -0
- package/docs/TOKENS.md +83 -28
- package/install/install.mjs +597 -592
- package/mcp/argus/IMPLEMENTATION-SUMMARY.md +1 -1
- package/mcp/argus/src/commands/test.mjs +4 -4
- package/package.json +2 -2
- package/skills/token-economy/SKILL.md +103 -0
- package/src/commands/doctor.ts +856 -856
- package/mcp/argus/tmp/argus/argus-results-1791138636150.json +0 -83
- package/mcp/novahiz-docs/data/index.sqlite +0 -0
- /package/mcp/argus/src/{test → fixtures}/test_hardcoded.php +0 -0
- /package/mcp/argus/src/{test → fixtures}/test_injection.sh +0 -0
- /package/mcp/argus/src/{test → fixtures}/test_vulnerable.py +0 -0
- /package/mcp/argus/src/{test → fixtures}/test_xss.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,90 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.5.1] - 2026-10-05
|
|
9
|
+
|
|
10
|
+
Fix-forward release: the `v0.5.0` tag was pushed but its CI never reached
|
|
11
|
+
`npm publish`, so no `0.5.0` exists on the registry.
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- `tests/memory-robust.test.ts` built the child process's import URL from a
|
|
16
|
+
hardcoded absolute path (`file:///C:/Users/...`): the two-process lock test
|
|
17
|
+
only passed on one machine and failed every CI run with "le fils ne s'est
|
|
18
|
+
jamais signale pret". The URL now derives from `import.meta.url`.
|
|
19
|
+
- `tests/clepsydre-scheduler.test.ts` (lock test) observed the released lock
|
|
20
|
+
a single `setImmediate` after `release()`, racing a wake armed at delay 0
|
|
21
|
+
for a past-due schedule: depending on event-loop timing it saw either
|
|
22
|
+
`busy = []` or the task re-locked by a second execution. The test stops the
|
|
23
|
+
wake before observing the state, so the lock-release assertion is
|
|
24
|
+
deterministic. The re-arm it exposes (a past-due schedule on a busy task
|
|
25
|
+
keeps `arm()` at delay 0) is left to the scheduler, not to this release.
|
|
26
|
+
|
|
27
|
+
## [0.5.0] - 2026-10-05
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- **Token economy, plugin + skill** (`adapters/opencode/novahiz-token-economy.ts`,
|
|
32
|
+
`skills/token-economy/SKILL.md`): the plugin trims oversized tool output
|
|
33
|
+
before it reaches the model - head kept, full text written to
|
|
34
|
+
`<NOVAHIZ_HOME>/tmp/tool-output/`, footer naming the file to re-read instead
|
|
35
|
+
of re-running - and `/novahiz-tokens` posts the estimated saving for the
|
|
36
|
+
session without a model call. Strictly opt-in: nothing happens until
|
|
37
|
+
`NOVAHIZ_TOKEN_ECONOMY=1`, `read`/`edit`/`write` and skill output are never
|
|
38
|
+
trimmed, and any plugin error fails open. Budgets: `NOVAHIZ_TE_MAX_LINES`
|
|
39
|
+
(120), `NOVAHIZ_TE_MAX_BYTES` (16384), `NOVAHIZ_TE_TOOLS`,
|
|
40
|
+
`NOVAHIZ_TE_DUMP_DIR`. The skill carries the agent-side rules (read the
|
|
41
|
+
smallest thing, batch calls, delegate exploration, answer in paths).
|
|
42
|
+
- The installer now copies both plugin files into `<config>/plugins/`, the
|
|
43
|
+
directory opencode actually loads plugins from.
|
|
44
|
+
|
|
45
|
+
### Fixed
|
|
46
|
+
|
|
47
|
+
- **Argus vulnerable fixtures are no longer collected by the test runner**:
|
|
48
|
+
`mcp/argus/src/test/` was renamed to `mcp/argus/src/fixtures/`, so
|
|
49
|
+
`node --test` (and `node scripts/ci-local.mjs`) stops picking
|
|
50
|
+
`test_xss.js` - a deliberately vulnerable sample - up as a test file and
|
|
51
|
+
failing on `require is not defined in ES module scope`. The argus end-to-end
|
|
52
|
+
suite still reports 30/30.
|
|
53
|
+
- `tests/clepsydre-tools.test.ts` used a one-shot date hardcoded to
|
|
54
|
+
`2026-10-05T09:00:00Z`, which started failing once the clock passed it; the
|
|
55
|
+
test now uses a date relative to now.
|
|
56
|
+
|
|
57
|
+
### Docs
|
|
58
|
+
|
|
59
|
+
- `docs/TOKENS.md` rewritten around what is implemented (the plugin, the
|
|
60
|
+
skill, `novahiz tokens`); it now states that the `tokens` block of
|
|
61
|
+
`novahiz.config.example.json` is read by no code.
|
|
62
|
+
|
|
63
|
+
## [0.4.1] - 2026-10-05
|
|
64
|
+
|
|
65
|
+
### Fixed
|
|
66
|
+
|
|
67
|
+
- **`npm install -g novahiz` works on npm 11.16+**, where install scripts no
|
|
68
|
+
longer count as approved unless they appear in `allowScripts` and a global
|
|
69
|
+
install has no `package.json` to record that approval in — npm prints
|
|
70
|
+
`npm warn allow-scripts novahiz (...)` and, depending on the version, skips
|
|
71
|
+
the postinstall so nothing gets configured. The recommended command is
|
|
72
|
+
`npm install -g --allow-scripts=novahiz novahiz`;
|
|
73
|
+
`npm config set allow-scripts=novahiz --location=user` makes it permanent so
|
|
74
|
+
plain `npm install -g novahiz` works afterwards.
|
|
75
|
+
- **The published 0.4.0 tarball still carried the dry-run postinstall**
|
|
76
|
+
(`node install/install.mjs --dry-run`) — the `--yes` republish never reached
|
|
77
|
+
the registry, so even an allowed postinstall only printed the next step
|
|
78
|
+
instead of installing. 0.4.1 publishes `postinstall: node install/install.mjs
|
|
79
|
+
--yes`.
|
|
80
|
+
- **`novahiz` finishes the setup itself when npm skipped the postinstall**: the
|
|
81
|
+
first run of the CLI finds no `~/.config/novahiz/.novahiz-install.json`
|
|
82
|
+
manifest and executes `install/install.mjs --yes` once before the command
|
|
83
|
+
runs. `-v`, `--version`, `--help`, `-h` and `NOVAHIZ_AUTOINSTALL=0` skip the
|
|
84
|
+
bootstrap; a repo checkout (outside `node_modules`) is never touched.
|
|
85
|
+
|
|
86
|
+
### Docs
|
|
87
|
+
|
|
88
|
+
- README quick start rewritten: the one-liner carries `--allow-scripts`, both
|
|
89
|
+
fallbacks are listed, and the `ENOENT: package.json` trap of running the flag
|
|
90
|
+
without a package name is called out.
|
|
91
|
+
|
|
8
92
|
## [0.4.0] - 2026-10-05
|
|
9
93
|
|
|
10
94
|
### Added
|