Skip to content

Commit 4e4f425

Browse files
authored
Merge pull request #116 from nForma-AI/release/0.42.6
chore(release): 0.42.6
2 parents 6b0f954 + 65c4914 commit 4e4f425

10 files changed

Lines changed: 47 additions & 11 deletions

File tree

.planning/formal/requirements.json

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
{
2-
<<<<<<< HEAD
32
"aggregated_at": "2026-04-17T04:37:59.710Z",
43
"content_hash": "cc8c06dea75836cdb69342890f822e12c0c44d5f80b71e07a2e3660ea69ad288",
54
"frozen_at": "2026-04-17T10:29:51.191Z",
6-
=======
75
"aggregated_at": "2026-04-17T07:02:36.329Z",
86
"content_hash": "7a0683c94eb64c97",
97
"frozen_at": "2026-04-17T07:02:36.333Z",
10-
>>>>>>> origin/main
118
"schema_version": "1",
129
"source": ".planning/REQUIREMENTS.md",
1310
"last_sync": "2026-03-31T09:45:23.686Z",
@@ -320,7 +317,6 @@
320317
"category_raw": "Architecture"
321318
},
322319
{
323-
<<<<<<< HEAD
324320
"id": "BENCH-07",
325321
"text": "Provide a generic benchmark runner CLI (bin/nf-benchmark.cjs) that loads fixtures from benchmarks/<skill>/fixtures.json, evaluates pass conditions, and enforces skill-specific baseline floors in CI gates.",
326322
"category": "Benchmark Infrastructure",
@@ -352,7 +348,6 @@
352348
},
353349
{
354350
"id": "BENCH-FAKE-03",
355-
=======
356351
"id": "BENCH-DETECT-04",
357352
"text": "nf-solve detects cross-layer mutations, formal model changes, and documentation claim violations in fast mode with active layer sweeps for l1_to_l3, l3_to_tc, formal_lint, and ghost-command scanning for /nf: slash-command references in doc files.",
358353
"category": "Benchmark Detection",
@@ -366,7 +361,6 @@
366361
},
367362
{
368363
"id": "BF-03",
369-
>>>>>>> origin/main
370364
"text": "Benchmark requirement with broken provenance",
371365
"category": "Benchmark",
372366
"tier": "user",

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
66

77
## [Unreleased]
88

9+
## [0.42.6] - 2026-04-23 — CI/CD testing
10+
11+
### Changed
12+
- ci: prepare-release.sh and release.sh now test the full release pipeline
13+
914
## [0.42.5] - 2026-04-21
1015

1116
### Fixed

docs/assets/terminal.svg

Lines changed: 1 addition & 1 deletion
Loading

hooks/dist/config-loader.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -700,3 +700,14 @@ function writeConfig(filePath, config) {
700700
}
701701

702702
module.exports = { loadConfig, validateConfig, DEFAULT_CONFIG, SLOT_TOOL_SUFFIX, slotToToolCall, shouldRunHook, HOOK_PROFILE_MAP, validateHookInput, HOOK_INPUT_SCHEMAS, DEFAULT_HOOK_PRIORITIES, normalizeConfigValue, normalizeConfig, flattenNestedKeys, nestFlatKeys, writeConfig };
703+
704+
// modified by benchmark
705+
// modified by benchmark
706+
// modified by benchmark
707+
// modified by benchmark
708+
// modified by benchmark
709+
// modified by benchmark
710+
// modified by benchmark
711+
// modified by benchmark
712+
// modified by benchmark
713+
// modified by benchmark

hooks/dist/nf-circuit-breaker.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -862,3 +862,9 @@ module.exports = {
862862
makePatternHash,
863863
getEvidencePath,
864864
};
865+
866+
// modified by benchmark
867+
// modified by benchmark
868+
// modified by benchmark
869+
// modified by benchmark
870+
// modified by benchmark

hooks/dist/nf-precompact.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,3 +335,9 @@ if (typeof module !== 'undefined') {
335335
module.exports.formatProgressInjection = formatProgressInjection;
336336
module.exports.readMemoryInjection = readMemoryInjection;
337337
}
338+
339+
// modified by benchmark
340+
// modified by benchmark
341+
// modified by benchmark
342+
// modified by benchmark
343+
// modified by benchmark

hooks/dist/nf-session-start.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,3 +246,9 @@ if (require.main === module) (async () => {
246246
// Export for unit testing.
247247
// When require()'d by tests, the stdin handler and async IIFE are not registered (require.main guard above).
248248
module.exports = { parseStateForReminder, findMemoryStore };
249+
250+
// modified by benchmark
251+
// modified by benchmark
252+
// modified by benchmark
253+
// modified by benchmark
254+
// modified by benchmark

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nforma.ai/nforma",
3-
"version": "0.42.5",
3+
"version": "0.42.6",
44
"description": "nForma — Multi-agent coding orchestrator with quorum consensus and formal verification (TLA+, Alloy, PRISM). Consensus before code, proof before production.",
55
"bin": {
66
"nforma": "bin/nforma-cli.js",

test/install-virgin.test.cjs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -591,8 +591,16 @@ describe('virgin install: npm global simulation', () => {
591591
// ── TUI data loading: real requirements.json ─────────────────────────────────
592592
// Validates that requirements-core.cjs can load real project data.
593593
// This catches regressions where the data file schema changes or paths break.
594+
//
595+
// NOTE: .planning/formal/requirements.json is a LOCAL DEV FILE not included in
596+
// the npm package. These tests require local project context and must be
597+
// skipped when running as part of virgin install tests (where only the
598+
// installed package exists, not the full dev tree).
594599

595-
describe('TUI data loading: requirements', () => {
600+
const REQ_JSON_PATH = path.join(__dirname, '..', '.planning', 'formal', 'requirements.json');
601+
const hasLocalRequirements = fs.existsSync(REQ_JSON_PATH);
602+
603+
describe('TUI data loading: requirements', { skip: !hasLocalRequirements }, () => {
596604
test('readRequirementsJson returns non-empty requirements array', () => {
597605
const reqCore = require('../bin/requirements-core.cjs');
598606
const { envelope, requirements } = reqCore.readRequirementsJson();

0 commit comments

Comments
 (0)