@nathapp/nax 0.28.0 → 0.29.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/CHANGELOG.md +13 -2
- package/dist/nax.js +72691 -0
- package/package.json +12 -4
- package/src/cli/config.ts +3 -1
- package/src/config/defaults.ts +1 -0
- package/src/config/schemas.ts +1 -0
- package/src/config/types.ts +1 -0
- package/src/context/builder.ts +10 -1
- package/src/prompts/sections/role-task.ts +4 -2
- package/src/review/runner.ts +6 -1
- package/src/version.ts +2 -1
- package/.claude/rules/01-project-conventions.md +0 -34
- package/.claude/rules/02-test-architecture.md +0 -39
- package/.claude/rules/03-test-writing.md +0 -58
- package/.claude/rules/04-forbidden-patterns.md +0 -29
- package/.claude/settings.json +0 -15
- package/.githooks/pre-commit +0 -16
- package/.gitlab-ci.yml +0 -103
- package/.mcp.json +0 -8
- package/BRIEF.md +0 -140
- package/CLAUDE.md +0 -143
- package/US-007-IMPLEMENTATION.md +0 -139
- package/biome.json +0 -14
- package/bun.lock +0 -163
- package/bunfig.toml +0 -12
- package/docker-compose.test.yml +0 -15
- package/docs/20260216-fix-plan-context-review.md +0 -56
- package/docs/20260216-relentless-vs-ngent-comparison.md +0 -208
- package/docs/20260216-v02-plan.md +0 -136
- package/docs/20260216-v02-review.md +0 -685
- package/docs/20260217-dogfood-findings.md +0 -56
- package/docs/20260217-p2-plus-plan.md +0 -117
- package/docs/20260217-partial-fixes-plan.md +0 -62
- package/docs/20260217-plan-analyze-spec.md +0 -117
- package/docs/20260217-post-impl-review.md +0 -1137
- package/docs/20260217-quick-wins-plan.md +0 -66
- package/docs/20260217-split-runner-plan.md +0 -75
- package/docs/20260217-v03-impl-plan.md +0 -80
- package/docs/20260217-v03-post-impl-review.md +0 -589
- package/docs/20260217-v04-impl-plan.md +0 -86
- package/docs/20260217-v05-post-impl-review.md +0 -850
- package/docs/20260217-v06-post-impl-review.md +0 -817
- package/docs/20260218-adr003-port-plan.md +0 -151
- package/docs/20260218-review-adr003-verification.md +0 -175
- package/docs/20260219-fix-plan-bug16-19.md +0 -79
- package/docs/20260219-fix-plan-bug20-22.md +0 -114
- package/docs/20260219-plan-llm-routing.md +0 -116
- package/docs/20260219-review-bug20-22-fixes.md +0 -135
- package/docs/20260219-routing-baseline-keyword.md +0 -63
- package/docs/20260220-plan-structured-logging-p1.md +0 -80
- package/docs/20260220-plan-structured-logging-p2.md +0 -37
- package/docs/20260220-review-llm-routing.md +0 -180
- package/docs/20260220-review-post-fix-llm-routing.md +0 -70
- package/docs/20260221-fix-plan-relevantfiles-split.md +0 -101
- package/docs/20260221-fix-plan-routing-mode.md +0 -125
- package/docs/20260221-review-v0.9-implementation.md +0 -379
- package/docs/20260222-fix-plan-v091-routing-isolation.md +0 -197
- package/docs/20260223-fix-plan-prompt-audit.md +0 -62
- package/docs/20260224-nax-roadmap-phases.md +0 -189
- package/docs/20260225-phase2-llm-service-layer.md +0 -401
- package/docs/20260225-review-v0.10.1.md +0 -187
- package/docs/20260303-v010-implementation-plan.md +0 -165
- package/docs/20260304-review-nax.md +0 -492
- package/docs/CLAUDE.md.bak +0 -191
- package/docs/ROADMAP.md +0 -390
- package/docs/SPEC-rectification.md +0 -0
- package/docs/SPEC.md +0 -324
- package/docs/US-001-plugin-loading-verification.md +0 -152
- package/docs/adr/ADR-005-implementation-plan.md +0 -655
- package/docs/adr/ADR-005-pipeline-re-architecture.md +0 -464
- package/docs/architecture-analysis.md +0 -1076
- package/docs/bugs/BUG-21-escalation-null-attempts.md +0 -48
- package/docs/bugs-from-dogfood-run-c.md +0 -243
- package/docs/code-review-20260228.md +0 -612
- package/docs/code-review-v0.15.0.md +0 -629
- package/docs/hook-lifecycle-test-plan.md +0 -149
- package/docs/releases/v0.11.0-and-earlier.md +0 -20
- package/docs/releases/v0.12.0.md +0 -15
- package/docs/releases/v0.13.0.md +0 -14
- package/docs/releases/v0.14.0.md +0 -20
- package/docs/releases/v0.14.1.md +0 -36
- package/docs/releases/v0.14.2.md +0 -51
- package/docs/releases/v0.14.3.md +0 -174
- package/docs/releases/v0.14.4.md +0 -94
- package/docs/releases/v0.15.0.md +0 -502
- package/docs/releases/v0.15.1.md +0 -170
- package/docs/releases/v0.15.3.md +0 -193
- package/docs/specs/bug-039-orphan-processes.md +0 -131
- package/docs/specs/bug-040-review-rectification.md +0 -82
- package/docs/specs/bug-041-cross-story-test-isolation.md +0 -88
- package/docs/specs/bug-042-verifier-failure-capture.md +0 -117
- package/docs/specs/bun-pty-migration.md +0 -171
- package/docs/specs/central-run-registry.md +0 -116
- package/docs/specs/feat-010-smart-runner-git-history.md +0 -96
- package/docs/specs/feat-011-file-context-strategy.md +0 -73
- package/docs/specs/feat-012-tdd-writer-tier.md +0 -79
- package/docs/specs/feat-013-test-after-review.md +0 -89
- package/docs/specs/feat-014-heartbeat-observability.md +0 -127
- package/docs/specs/status-file-consolidation.md +0 -93
- package/docs/specs/status-file-v0.10.1.md +0 -812
- package/docs/specs/trigger-completion.md +0 -145
- package/docs/specs/verification-architecture-v2.md +0 -343
- package/docs/tdd/strategies.md +0 -97
- package/docs/v0.10-global-config.md +0 -206
- package/docs/v0.10-plugin-system.md +0 -415
- package/docs/v0.10-prompt-optimizer.md +0 -234
- package/docs/v0.3-spec.md +0 -244
- package/docs/v0.4-spec.md +0 -140
- package/docs/v0.5-spec.md +0 -237
- package/docs/v0.6-spec.md +0 -371
- package/docs/v0.7-spec.md +0 -177
- package/docs/v0.8-llm-routing.md +0 -206
- package/docs/v0.8-structured-logging.md +0 -132
- package/docs/v0.9.3-prompt-audit.md +0 -112
- package/examples/plugins/console-reporter/index.test.ts +0 -207
- package/examples/plugins/console-reporter/index.ts +0 -110
- package/memory/topic/feat-010-baseref.md +0 -28
- package/memory/topic/feat-013-test-after-deprecation.md +0 -22
- package/nax/config.json +0 -154
- package/nax/features/bug-039-medium/prd.json +0 -45
- package/nax/features/bugfix-v0171/prd.json +0 -52
- package/nax/features/central-run-registry/prd.json +0 -105
- package/nax/features/config-management/prd.json +0 -108
- package/nax/features/config-management/progress.txt +0 -5
- package/nax/features/diagnose/acceptance.test.ts +0 -414
- package/nax/features/diagnose/prd.json +0 -41
- package/nax/features/nax-compliance/prd.json +0 -52
- package/nax/features/nax-compliance/progress.txt +0 -1
- package/nax/features/orchestration-fixes/prd.json +0 -89
- package/nax/features/orchestration-fixes/progress.txt +0 -1
- package/nax/features/plugin-integration/US-007-VERIFICATION.md +0 -259
- package/nax/features/plugin-integration/prd.json +0 -208
- package/nax/features/plugin-integration/progress.txt +0 -5
- package/nax/features/post-rearch-bugfix/prd.json +0 -137
- package/nax/features/precheck/prd.json +0 -205
- package/nax/features/precheck/progress.txt +0 -15
- package/nax/features/prompt-builder/prd.json +0 -152
- package/nax/features/prompt-builder/progress.txt +0 -3
- package/nax/features/review-quality/prd.json +0 -55
- package/nax/features/routing-persistence/prd.json +0 -104
- package/nax/features/routing-persistence/progress.txt +0 -1
- package/nax/features/smart-test-runner/plan.md +0 -7
- package/nax/features/smart-test-runner/prd.json +0 -203
- package/nax/features/smart-test-runner/progress.txt +0 -13
- package/nax/features/smart-test-runner/spec.md +0 -7
- package/nax/features/smart-test-runner/tasks.md +0 -8
- package/nax/features/status-file-consolidation/prd.json +0 -106
- package/nax/features/structured-logging/prd.json +0 -199
- package/nax/features/trigger-completion/prd.json +0 -150
- package/nax/features/trigger-completion/progress.txt +0 -7
- package/nax/features/unlock/prd.json +0 -36
- package/nax/features/v0.18.3-execution-reliability/prd.json +0 -80
- package/nax/features/v0.18.3-execution-reliability/progress.txt +0 -3
- package/nax/features/v0.19.0-hardening/plan.md +0 -7
- package/nax/features/v0.19.0-hardening/prd.json +0 -84
- package/nax/features/v0.19.0-hardening/progress.txt +0 -7
- package/nax/features/v0.19.0-hardening/spec.md +0 -18
- package/nax/features/v0.19.0-hardening/tasks.md +0 -8
- package/nax/features/verify-v2/prd.json +0 -79
- package/nax/features/verify-v2/progress.txt +0 -3
- package/nax/status.json +0 -36
- package/test/COVERAGE-GAPS.md +0 -333
- package/test/e2e/cm-003-default-view.test.ts +0 -195
- package/test/e2e/plan-analyze-run.test.ts +0 -902
- package/test/helpers/helpers.test.ts +0 -295
- package/test/helpers/timeout.ts +0 -42
- package/test/integration/US-002-TEST-SUMMARY.md +0 -107
- package/test/integration/US-003-TEST-SUMMARY.md +0 -149
- package/test/integration/US-004-TEST-SUMMARY.md +0 -106
- package/test/integration/US-005-TEST-SUMMARY.md +0 -138
- package/test/integration/US-007-TEST-SUMMARY.md +0 -100
- package/test/integration/cli/agent-validation.test.ts +0 -439
- package/test/integration/cli/cli-config-default-edge-cases.test.ts +0 -223
- package/test/integration/cli/cli-config-default-view.test.ts +0 -230
- package/test/integration/cli/cli-config-diff.test.ts +0 -461
- package/test/integration/cli/cli-config-prompts-explain.test.ts +0 -74
- package/test/integration/cli/cli-config.test.ts +0 -737
- package/test/integration/cli/cli-diagnose.test.ts +0 -595
- package/test/integration/cli/cli-logs.test.ts +0 -346
- package/test/integration/cli/cli-plugins.test.ts +0 -679
- package/test/integration/cli/cli-precheck.test.ts +0 -372
- package/test/integration/cli/cli-run-headless.test.ts +0 -174
- package/test/integration/cli/cli.test.ts +0 -76
- package/test/integration/cli/precheck-integration.test.ts +0 -476
- package/test/integration/cli/precheck-orchestrator.test.ts +0 -247
- package/test/integration/cli/precheck.test.ts +0 -806
- package/test/integration/config/config-loader.test.ts +0 -266
- package/test/integration/config/config.test.ts +0 -444
- package/test/integration/config/merger.test.ts +0 -466
- package/test/integration/config/paths.test.ts +0 -52
- package/test/integration/config/security-loader.test.ts +0 -83
- package/test/integration/context/context-integration.test.ts +0 -703
- package/test/integration/context/context-path-security.test.ts +0 -173
- package/test/integration/context/context-provider-injection.test.ts +0 -507
- package/test/integration/context/context-verification-integration.test.ts +0 -296
- package/test/integration/context/s5-greenfield-fallback.test.ts +0 -298
- package/test/integration/execution/execution-isolation.test.ts +0 -143
- package/test/integration/execution/execution.test.ts +0 -634
- package/test/integration/execution/feature-status-write.test.ts +0 -302
- package/test/integration/execution/parallel.test.ts +0 -251
- package/test/integration/execution/prd-pause.test.ts +0 -205
- package/test/integration/execution/prd-resolvers.test.ts +0 -186
- package/test/integration/execution/progress.test.ts +0 -34
- package/test/integration/execution/runner-batching.test.ts +0 -682
- package/test/integration/execution/runner-config-plugins.test.ts +0 -462
- package/test/integration/execution/runner-escalation.test.ts +0 -561
- package/test/integration/execution/runner-fixes.test.ts +0 -400
- package/test/integration/execution/runner-plugin-integration.test.ts +0 -544
- package/test/integration/execution/runner-queue-and-attempts.test.ts +0 -476
- package/test/integration/execution/status-file-integration.test.ts +0 -289
- package/test/integration/execution/status-file.test.ts +0 -380
- package/test/integration/execution/status-writer.test.ts +0 -447
- package/test/integration/execution/story-id-in-events.test.ts +0 -274
- package/test/integration/interaction/interaction-chain-pipeline.test.ts +0 -476
- package/test/integration/pipeline/hooks.test.ts +0 -363
- package/test/integration/pipeline/pipeline-acceptance.test.ts +0 -303
- package/test/integration/pipeline/pipeline-events.test.ts +0 -476
- package/test/integration/pipeline/pipeline.test.ts +0 -660
- package/test/integration/pipeline/reporter-lifecycle.test.ts +0 -862
- package/test/integration/pipeline/verify-stage.test.ts +0 -286
- package/test/integration/plan/analyze-integration.test.ts +0 -262
- package/test/integration/plan/analyze-scanner.test.ts +0 -132
- package/test/integration/plan/logger.test.ts +0 -461
- package/test/integration/plan/plan.test.ts +0 -157
- package/test/integration/plugins/config-integration.test.ts +0 -173
- package/test/integration/plugins/config-resolution.test.ts +0 -523
- package/test/integration/plugins/loader.test.ts +0 -644
- package/test/integration/plugins/plugins-registry.test.ts +0 -747
- package/test/integration/plugins/validator.test.ts +0 -564
- package/test/integration/prompts/pb-004-migration.test.ts +0 -523
- package/test/integration/review/review-config-commands.test.ts +0 -320
- package/test/integration/review/review-config-schema.test.ts +0 -117
- package/test/integration/review/review-plugin-integration.test.ts +0 -729
- package/test/integration/review/review.test.ts +0 -150
- package/test/integration/routing/plugin-routing-advanced.test.ts +0 -461
- package/test/integration/routing/plugin-routing-core.test.ts +0 -527
- package/test/integration/routing/routing-stage-bug-021.test.ts +0 -275
- package/test/integration/routing/routing-stage-greenfield.test.ts +0 -287
- package/test/integration/tdd/tdd-cleanup.test.ts +0 -246
- package/test/integration/tdd/tdd-orchestrator-core.test.ts +0 -565
- package/test/integration/tdd/tdd-orchestrator-failureCategory.test.ts +0 -355
- package/test/integration/tdd/tdd-orchestrator-fallback.test.ts +0 -311
- package/test/integration/tdd/tdd-orchestrator-lite.test.ts +0 -289
- package/test/integration/tdd/tdd-orchestrator-prompts.test.ts +0 -260
- package/test/integration/tdd/tdd-orchestrator-verdict.test.ts +0 -536
- package/test/integration/tmp/headless-test/test.jsonl +0 -30
- package/test/integration/verification/test-scanner.test.ts +0 -403
- package/test/integration/verification/verification-asset-check.test.ts +0 -143
- package/test/integration/worktree/manager.test.ts +0 -218
- package/test/integration/worktree/worktree-merge.test.ts +0 -341
- package/test/manual/logging-formatter-demo.ts +0 -158
- package/test/ui/tui-agent-panel.test.tsx +0 -99
- package/test/ui/tui-pty-integration.test.tsx +0 -146
- package/test/unit/acceptance.test.ts +0 -187
- package/test/unit/agent-stderr-capture.test.ts +0 -147
- package/test/unit/agents/claude.test.ts +0 -107
- package/test/unit/analyze-classifier.test.ts +0 -216
- package/test/unit/analyze.test.ts +0 -224
- package/test/unit/auto-detect.test.ts +0 -250
- package/test/unit/cli-status-project-level.test.ts +0 -283
- package/test/unit/cli-status.test.ts +0 -418
- package/test/unit/commands/common.test.ts +0 -321
- package/test/unit/commands/logs.test.ts +0 -458
- package/test/unit/commands/runs.test.ts +0 -303
- package/test/unit/commands/unlock.test.ts +0 -320
- package/test/unit/config/defaults.test.ts +0 -70
- package/test/unit/config/quality-commands-schema.test.ts +0 -72
- package/test/unit/config/regression-gate-schema.test.ts +0 -160
- package/test/unit/config/smart-runner-flag.test.ts +0 -250
- package/test/unit/constitution-generators.test.ts +0 -161
- package/test/unit/constitution.test.ts +0 -210
- package/test/unit/context/context-autodetect.test.ts +0 -297
- package/test/unit/context/context-build.test.ts +0 -575
- package/test/unit/context/context-coverage.test.ts +0 -236
- package/test/unit/context/context-error.test.ts +0 -93
- package/test/unit/context/context-estimate-tokens.test.ts +0 -201
- package/test/unit/context/context-format.test.ts +0 -302
- package/test/unit/context/context-isolation.test.ts +0 -267
- package/test/unit/context/context-sort.test.ts +0 -93
- package/test/unit/context/context-story.test.ts +0 -108
- package/test/unit/context/prior-failures.test.ts +0 -463
- package/test/unit/context.test.ts +0 -1726
- package/test/unit/cost.test.ts +0 -231
- package/test/unit/crash-recovery.test.ts +0 -309
- package/test/unit/escalation.test.ts +0 -127
- package/test/unit/execution/lifecycle/run-completion.test.ts +0 -240
- package/test/unit/execution/lifecycle/run-regression.test.ts +0 -420
- package/test/unit/execution/pid-registry.test.ts +0 -241
- package/test/unit/execution/sequential-executor.test.ts +0 -235
- package/test/unit/execution/sfc-004-dead-code-cleanup.test.ts +0 -89
- package/test/unit/execution/structured-failure.test.ts +0 -415
- package/test/unit/execution-logging-stderr.test.ts +0 -157
- package/test/unit/execution-stage.test.ts +0 -123
- package/test/unit/fix-generator.test.ts +0 -276
- package/test/unit/formatters.test.ts +0 -468
- package/test/unit/greenfield.test.ts +0 -180
- package/test/unit/hooks/shell-security.test.ts +0 -40
- package/test/unit/interaction/auto-plugin.test.ts +0 -162
- package/test/unit/interaction/human-review-trigger.test.ts +0 -165
- package/test/unit/interaction-network-failures.test.ts +0 -390
- package/test/unit/interaction-plugins.test.ts +0 -472
- package/test/unit/logging/formatter.test.ts +0 -456
- package/test/unit/merge.test.ts +0 -269
- package/test/unit/metrics/aggregator.test.ts +0 -164
- package/test/unit/metrics/tracker.test.ts +0 -186
- package/test/unit/metrics.test.ts +0 -276
- package/test/unit/optimizer/noop.optimizer.test.ts +0 -125
- package/test/unit/optimizer/rule-based.optimizer.test.ts +0 -358
- package/test/unit/pipeline/event-bus.test.ts +0 -105
- package/test/unit/pipeline/routing-partial-override.test.ts +0 -121
- package/test/unit/pipeline/runner-retry.test.ts +0 -89
- package/test/unit/pipeline/stages/autofix.test.ts +0 -97
- package/test/unit/pipeline/stages/completion-review-gate.test.ts +0 -218
- package/test/unit/pipeline/stages/execution-ambiguity.test.ts +0 -311
- package/test/unit/pipeline/stages/execution-merge-conflict.test.ts +0 -218
- package/test/unit/pipeline/stages/rectify.test.ts +0 -101
- package/test/unit/pipeline/stages/regression-stage.test.ts +0 -69
- package/test/unit/pipeline/stages/review.test.ts +0 -201
- package/test/unit/pipeline/stages/routing-idempotence.test.ts +0 -139
- package/test/unit/pipeline/stages/routing-initial-complexity.test.ts +0 -321
- package/test/unit/pipeline/stages/routing-persistence.test.ts +0 -380
- package/test/unit/pipeline/stages/verify.test.ts +0 -267
- package/test/unit/pipeline/subscribers/events-writer.test.ts +0 -227
- package/test/unit/pipeline/subscribers/hooks.test.ts +0 -84
- package/test/unit/pipeline/subscribers/interaction.test.ts +0 -313
- package/test/unit/pipeline/subscribers/registry.test.ts +0 -149
- package/test/unit/pipeline/subscribers/reporters.test.ts +0 -90
- package/test/unit/pipeline/verify-smart-runner.test.ts +0 -345
- package/test/unit/prd-auto-default.test.ts +0 -291
- package/test/unit/prd-failure-category.test.ts +0 -177
- package/test/unit/prd-get-next-story.test.ts +0 -215
- package/test/unit/precheck/checks-warnings.test.ts +0 -114
- package/test/unit/precheck-checks.test.ts +0 -841
- package/test/unit/precheck-story-size-gate.test.ts +0 -288
- package/test/unit/precheck-types.test.ts +0 -143
- package/test/unit/prompts/builder.test.ts +0 -258
- package/test/unit/prompts/loader.test.ts +0 -355
- package/test/unit/prompts/sections/conventions.test.ts +0 -30
- package/test/unit/prompts/sections/isolation.test.ts +0 -35
- package/test/unit/prompts/sections/role-task.test.ts +0 -40
- package/test/unit/prompts/sections/sections.test.ts +0 -238
- package/test/unit/prompts/sections/story.test.ts +0 -45
- package/test/unit/prompts/sections/verdict.test.ts +0 -58
- package/test/unit/prompts.test.ts +0 -476
- package/test/unit/queue.test.ts +0 -237
- package/test/unit/rectification.test.ts +0 -285
- package/test/unit/registry.test.ts +0 -288
- package/test/unit/review/runner.test.ts +0 -117
- package/test/unit/routing/content-hash.test.ts +0 -99
- package/test/unit/routing/routing-stability.test.ts +0 -208
- package/test/unit/routing/strategies/llm.test.ts +0 -306
- package/test/unit/routing-advanced.test.ts +0 -313
- package/test/unit/routing-core.test.ts +0 -341
- package/test/unit/routing-strategies.test.ts +0 -440
- package/test/unit/storyid-events.test.ts +0 -213
- package/test/unit/tdd-verdict.test.ts +0 -492
- package/test/unit/test-output-parser.test.ts +0 -377
- package/test/unit/ui/tui-controls.test.ts +0 -335
- package/test/unit/ui/tui-cost-and-pty.test.ts +0 -190
- package/test/unit/ui/tui-layout.test.ts +0 -379
- package/test/unit/ui/tui-stories.test.ts +0 -333
- package/test/unit/unit-isolation.test.ts +0 -135
- package/test/unit/utils/git.test.ts +0 -50
- package/test/unit/utils/path-security.test.ts +0 -47
- package/test/unit/utils-helpers.test.ts +0 -318
- package/test/unit/verdict.test.ts +0 -325
- package/test/unit/verification/orchestrator-types.test.ts +0 -54
- package/test/unit/verification/orchestrator.test.ts +0 -66
- package/test/unit/verification/smart-runner-config.test.ts +0 -163
- package/test/unit/verification/smart-runner-discovery.test.ts +0 -354
- package/test/unit/verification/smart-runner.test.ts +0 -262
- package/test/unit/verification/strategies/acceptance.test.ts +0 -33
- package/test/unit/verification/strategies/regression.test.ts +0 -87
- package/test/unit/verification/strategies/scoped.test.ts +0 -100
- package/test/unit/worktree-manager.test.ts +0 -159
- package/tsconfig.json +0 -27
package/docs/CLAUDE.md.bak
DELETED
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
# @nathapp/nax — AI Coding Agent Orchestrator
|
|
2
|
-
|
|
3
|
-
Standalone CLI (Bun + TypeScript) that orchestrates AI coding agents with smart model routing, three-session TDD, and lifecycle hooks. NOT an OpenClaw skill — independent npm package.
|
|
4
|
-
|
|
5
|
-
**CLI command:** `nax`
|
|
6
|
-
|
|
7
|
-
## Commands
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
bun test # Run all tests (bun:test)
|
|
11
|
-
bun run typecheck # TypeScript type checking (tsc --noEmit)
|
|
12
|
-
bun run lint # Biome linter (src/ bin/)
|
|
13
|
-
bun run dev # Run CLI locally
|
|
14
|
-
bun run build # Bundle for distribution
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Architecture
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
bin/nax.ts # CLI entry point (commander)
|
|
21
|
-
src/
|
|
22
|
-
agents/ # AgentAdapter interface + implementations (claude.ts)
|
|
23
|
-
cli/ # CLI commands (init, run, features, agents, status)
|
|
24
|
-
config/ # NaxConfig schema + layered loader + validation (global → project)
|
|
25
|
-
execution/ # Main orchestration loop (the core)
|
|
26
|
-
hooks/ # Lifecycle hooks (hooks.json → shell commands + NAX_* env)
|
|
27
|
-
pipeline/ # Pipeline orchestration utilities
|
|
28
|
-
prd/ # PRD/user-story loader, ordering, completion tracking
|
|
29
|
-
queue/ # Queue manager for multi-agent parallel execution
|
|
30
|
-
routing/ # Complexity classifier + test strategy decision tree
|
|
31
|
-
tdd/ # Three-session TDD types + file isolation checker + orchestrator
|
|
32
|
-
test/ # Bun test files (*.test.ts)
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### Key Concepts
|
|
36
|
-
|
|
37
|
-
- **Complexity Routing**: Tasks classified as simple/medium/complex/expert → mapped to model tiers (cheap/standard/premium)
|
|
38
|
-
- **Three-Session TDD**: Session 1 (test-writer, only test files) → Session 2 (implementer, only source files) → Session 3 (verifier, auto-approves legitimate fixes)
|
|
39
|
-
- **Isolation Enforcement**: Git diff verification between TDD sessions — test-writer can't touch source, implementer can't touch tests
|
|
40
|
-
- **Hook System**: `hooks.json` maps lifecycle events (on-start, on-complete, on-pause, on-error, on-story-start, on-story-end) to shell commands
|
|
41
|
-
- **Layered Config**: `~/.nax/config.json` (global) merged with `<project>/nax/config.json` (project overrides)
|
|
42
|
-
|
|
43
|
-
### Pipeline Architecture (v0.3 target)
|
|
44
|
-
|
|
45
|
-
The execution loop should be refactored from a monolithic `run()` into composable pipeline stages. This enables adding/removing/reordering stages without editing a 600+ line function.
|
|
46
|
-
|
|
47
|
-
```typescript
|
|
48
|
-
// src/pipeline/types.ts
|
|
49
|
-
interface PipelineStage {
|
|
50
|
-
name: string; // unique stage identifier
|
|
51
|
-
enabled: (ctx: PipelineContext) => boolean; // skip if false
|
|
52
|
-
execute: (ctx: PipelineContext) => Promise<StageResult>; // do the work
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
interface PipelineContext {
|
|
56
|
-
config: NaxConfig;
|
|
57
|
-
prd: PRD;
|
|
58
|
-
story: UserStory; // current story (or batch leader)
|
|
59
|
-
stories: UserStory[]; // batch (length 1 for single)
|
|
60
|
-
routing: RoutingResult;
|
|
61
|
-
workdir: string;
|
|
62
|
-
featureDir?: string;
|
|
63
|
-
hooks: HooksConfig;
|
|
64
|
-
// accumulated through stages
|
|
65
|
-
constitution?: string;
|
|
66
|
-
contextMarkdown?: string;
|
|
67
|
-
prompt?: string;
|
|
68
|
-
agentResult?: AgentResult;
|
|
69
|
-
reviewResult?: ReviewResult;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
type StageResult =
|
|
73
|
-
| { action: 'continue' } // proceed to next stage
|
|
74
|
-
| { action: 'skip'; reason: string } // skip this story
|
|
75
|
-
| { action: 'fail'; reason: string } // mark story failed
|
|
76
|
-
| { action: 'escalate' } // retry with higher tier
|
|
77
|
-
| { action: 'pause'; reason: string } // pause execution (queue command)
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
**Default pipeline stages (in order):**
|
|
81
|
-
```typescript
|
|
82
|
-
const defaultPipeline: PipelineStage[] = [
|
|
83
|
-
queueCheckStage, // check for PAUSE/ABORT/SKIP commands
|
|
84
|
-
routingStage, // classify complexity → model tier
|
|
85
|
-
constitutionStage, // load & inject project constitution
|
|
86
|
-
contextStage, // build file context from relevant sources
|
|
87
|
-
promptStage, // assemble final prompt from story + context + constitution
|
|
88
|
-
executionStage, // spawn agent session (single, batch, or TDD)
|
|
89
|
-
verifyStage, // check agent output, tests pass
|
|
90
|
-
reviewStage, // post-impl quality gate (typecheck/lint/test)
|
|
91
|
-
completionStage, // mark story done, fire hooks, log progress
|
|
92
|
-
];
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
**Design rules:**
|
|
96
|
-
- Each stage is a separate file: `src/pipeline/stages/<name>.ts`
|
|
97
|
-
- Stages communicate via `PipelineContext` — no side-channel state
|
|
98
|
-
- The pipeline runner (`src/pipeline/runner.ts`) iterates stages, handles StageResult actions
|
|
99
|
-
- The outer loop (load PRD → pick story → run pipeline → repeat) stays in `src/execution/runner.ts` but delegates per-story work to the pipeline
|
|
100
|
-
- Hooks fire inside stages (e.g., `completionStage` fires `on-story-complete`), not in the outer loop
|
|
101
|
-
- Config can override stage order or disable stages: `config.pipeline.stages`
|
|
102
|
-
|
|
103
|
-
## Code Style
|
|
104
|
-
|
|
105
|
-
- Bun-native APIs preferred (Bun.file, Bun.write, Bun.spawn, Bun.sleep)
|
|
106
|
-
- Each module directory: `types.ts` (interfaces), implementation files, `index.ts` (barrel exports)
|
|
107
|
-
- Immutable patterns — avoid mutation
|
|
108
|
-
- No classes unless wrapping stateful adapters (like ClaudeCodeAdapter)
|
|
109
|
-
- Functional style for pure logic (routing, classification, isolation checks)
|
|
110
|
-
- Biome for formatting and linting
|
|
111
|
-
|
|
112
|
-
## Testing
|
|
113
|
-
|
|
114
|
-
- Test framework: `bun:test` (describe/test/expect)
|
|
115
|
-
- Test files: `test/*.test.ts`
|
|
116
|
-
- Test naming: `test/<module>.test.ts`
|
|
117
|
-
- All routing/classification logic must have unit tests
|
|
118
|
-
- Isolation checker must have unit tests
|
|
119
|
-
- Run `bun test` before committing — all tests must pass
|
|
120
|
-
|
|
121
|
-
## File Conventions
|
|
122
|
-
|
|
123
|
-
- Max ~400 lines per file, split if larger
|
|
124
|
-
- Types/interfaces in dedicated `types.ts` per module
|
|
125
|
-
- Barrel exports via `index.ts` — import from module path, not deep paths
|
|
126
|
-
- Config defaults co-located with schema (`DEFAULT_CONFIG` in `schema.ts`)
|
|
127
|
-
|
|
128
|
-
## Current Status (v0.2.0-dev)
|
|
129
|
-
|
|
130
|
-
**Tests:** 222 passing across 16 files, 504 assertions
|
|
131
|
-
**Last Review:** 2026-02-17 — Grade B+ (82/100) — see `docs/20260217-post-impl-review.md`
|
|
132
|
-
|
|
133
|
-
### Implemented (v0.1 → v0.2)
|
|
134
|
-
- [x] Agent adapter interface + Claude Code implementation
|
|
135
|
-
- [x] Config schema + layered loader + validation
|
|
136
|
-
- [x] Hook lifecycle system + **command injection prevention** (SEC-1 ✅)
|
|
137
|
-
- [x] Complexity-based routing + test strategy decision tree
|
|
138
|
-
- [x] TDD isolation checker + three-session TDD orchestrator
|
|
139
|
-
- [x] PRD loader/saver with dependency-aware ordering
|
|
140
|
-
- [x] Execution runner with cost tracking
|
|
141
|
-
- [x] Queue manager + **PAUSE/ABORT/SKIP commands** (v0.2 Phase 2 ✅)
|
|
142
|
-
- [x] CLI: init, run, analyze, features create/list, agents, status
|
|
143
|
-
- [x] **Story-scoped context extraction from PRD** (v0.2 Phase 1 ✅)
|
|
144
|
-
- [x] **Explicit 3-tier escalation chain** fast→balanced→powerful (v0.2 Phase 3 ✅)
|
|
145
|
-
- [x] **Story batching for simple stories** with --no-batch flag (v0.2 Phase 4 ✅)
|
|
146
|
-
- [x] **Path validation + bounds checking** (SEC-2 ✅) — `src/config/path-security.ts`
|
|
147
|
-
- [x] **Agent installation check + retry with exponential backoff** (BUG-1 partial ✅)
|
|
148
|
-
- [x] **Atomic queue file handling** — rename-before-read pattern (BUG-2 ✅)
|
|
149
|
-
- [x] **PRD size limits** — `maxStoriesPerFeature` config + validation (MEM-1 partial ✅)
|
|
150
|
-
- [x] **Improved cost estimation** — structured output parsing + confidence (BUG-3 partial ✅)
|
|
151
|
-
- [x] **Story dependency validation** in analyze command (BUG-6 ✅)
|
|
152
|
-
- [x] **Hook timeout messages** — clear timeout vs failure distinction (BUG-5 ✅)
|
|
153
|
-
|
|
154
|
-
### Remaining Issues (from review, by priority)
|
|
155
|
-
|
|
156
|
-
#### P1 — Reliability
|
|
157
|
-
- [ ] **MEM-1 (partial):** Lazy loading for large PRDs not implemented — only size limit validation exists. No memory pressure detection or streaming JSON parsing.
|
|
158
|
-
- [ ] **PERF-1:** O(n²) batch story selection — not yet optimized with pre-computed eligible stories.
|
|
159
|
-
- [ ] **BUG-3 (partial):** Cost estimation still falls back to duration-based guessing when structured output unavailable. No per-story confidence scores.
|
|
160
|
-
|
|
161
|
-
#### P2 — Quality
|
|
162
|
-
- [ ] **ENH-1:** JSDoc coverage ~40% — `src/agents/claude.ts` (1 JSDoc), `bin/nax.ts` (1 JSDoc) are underserved. Most exported functions in runner.ts have docs but `routeTask()`, `buildContext()`, `runThreeSessionTdd()` lack usage examples.
|
|
163
|
-
- [ ] **TYPE-1:** Config loader still uses `as unknown as` double-casting (2 instances). No Zod runtime validation.
|
|
164
|
-
- [ ] **BUG-4:** Batch failure still escalates only first story. No config option for batch-wide escalation.
|
|
165
|
-
- [ ] **ENH-2:** No agent capability negotiation — adapters don't declare supported tiers/features.
|
|
166
|
-
- [ ] **PERF-2:** PRD reloaded every iteration — no dirty flag optimization.
|
|
167
|
-
- [ ] **ENH-3:** Context builder doesn't load file content — stories only, no source code context.
|
|
168
|
-
|
|
169
|
-
#### P3 — Polish
|
|
170
|
-
- [ ] **STYLE-1:** `runner.ts` is 901 lines (was 779, grew with fixes). Needs splitting into prompts/batching/queue-handler/escalation modules.
|
|
171
|
-
- [ ] **ENH-4:** No progress bar or ETA display — only line-by-line iteration logging.
|
|
172
|
-
- [ ] **TYPE-2:** `QueueCommand` still mixed string literals + object — not discriminated union.
|
|
173
|
-
- [ ] **ENH-5:** No dry-run mode for three-session TDD.
|
|
174
|
-
- [ ] **PERF-3:** Token estimation still uses `Math.ceil(text.length / 3)` — no improved heuristic.
|
|
175
|
-
|
|
176
|
-
#### P4 — Consistency
|
|
177
|
-
- [ ] **STYLE-2:** Inconsistent error handling patterns (throw vs return null vs log warning).
|
|
178
|
-
- [ ] **STYLE-3:** Magic numbers not extracted as named constants.
|
|
179
|
-
|
|
180
|
-
## Git
|
|
181
|
-
|
|
182
|
-
- Conventional commits: `feat:`, `fix:`, `refactor:`, `test:`, `docs:`, `chore:`
|
|
183
|
-
- Run `bun test && bun run typecheck` before committing
|
|
184
|
-
- Keep commits atomic — one logical change per commit
|
|
185
|
-
|
|
186
|
-
## Important
|
|
187
|
-
|
|
188
|
-
- This is a Bun project — do NOT use Node.js APIs when Bun equivalents exist
|
|
189
|
-
- Agent adapters spawn external processes — always handle timeouts and cleanup
|
|
190
|
-
- Never hardcode API keys — agents use their own auth (e.g., Claude Code uses ANTHROPIC_API_KEY from env)
|
|
191
|
-
- The execution runner has `[TODO]` markers for unimplemented agent spawning — that's the next priority
|
package/docs/ROADMAP.md
DELETED
|
@@ -1,390 +0,0 @@
|
|
|
1
|
-
# nax Roadmap
|
|
2
|
-
|
|
3
|
-
> **Authoritative source** for planned and shipped versions.
|
|
4
|
-
> Specs in `memory/` are detailed references. GitLab issues are supplementary.
|
|
5
|
-
> Full release notes → `docs/releases/`
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## v0.18.0 — Orchestration Quality ✅
|
|
10
|
-
|
|
11
|
-
**Theme:** Fix execution bugs and improve orchestration reliability
|
|
12
|
-
**Status:** ✅ Shipped (2026-03-03)
|
|
13
|
-
|
|
14
|
-
### Bugfixes (Priority)
|
|
15
|
-
- [x] ~~**BUG-016:** Hardcoded 120s timeout in verify stage → read from config~~
|
|
16
|
-
- [x] ~~**BUG-017:** `run.complete` not emitted on SIGTERM → emit in crash handler~~
|
|
17
|
-
- [x] ~~**BUG-018:** Test-writer spawns on every retry → skip when tests exist (`story.attempts > 0`)~~
|
|
18
|
-
- [x] ~~**BUG-019:** Misleading TIMEOUT output preview → separate TIMEOUT vs TEST_FAILURE messaging~~
|
|
19
|
-
- [x] ~~**BUG-020:** Missing storyId in JSONL events → audit all emitters~~
|
|
20
|
-
- [x] ~~**BUG-021:** `Task classified` log shows raw LLM result, not final routing after cache/config override → log final routing only~~
|
|
21
|
-
- [x] ~~**BUG-022:** Story interleaving wastes iterations — after failure, `getNextStory()` picks next pending story instead of retrying the failed one → prioritize current story retries before moving on~~
|
|
22
|
-
- [x] ~~**BUG-023:** Agent failure doesn't log exitCode/stderr → add to `execution.Agent session failed` event~~
|
|
23
|
-
- [x] ~~**BUG-025:** `needsHumanReview` doesn't trigger interactive plugin in headless mode → wire to interaction chain or suppress the log~~
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## v0.18.1 — Type Safety + CI Pipeline ✅
|
|
28
|
-
|
|
29
|
-
**Theme:** Fix all TypeScript/lint errors, establish CI pipeline
|
|
30
|
-
**Status:** ✅ Shipped (2026-03-03)
|
|
31
|
-
|
|
32
|
-
### TypeScript Fixes (60 errors across 21 files)
|
|
33
|
-
- [x] ~~**TS-001:** Fix context module exports (13 errors)~~
|
|
34
|
-
- [x] ~~**TS-002:** Fix config/command type safety (12 errors)~~
|
|
35
|
-
- [x] ~~**TS-003:** Fix review/verification types (9 errors)~~
|
|
36
|
-
- [x] ~~**TS-004:** Fix escalation PRD type construction (4 errors)~~
|
|
37
|
-
- [x] ~~**TS-005:** Fix misc types (6 errors)~~
|
|
38
|
-
- [x] ~~**LINT-001:** Run biome check --fix + manual review~~
|
|
39
|
-
|
|
40
|
-
### CI Pipeline (new)
|
|
41
|
-
- [x] `.gitlab-ci.yml` — stages: test → release → notify
|
|
42
|
-
- [x] Image: `nathapp/node-bun:22.21.0-1.3.9-alpine` (test/release), `gkci/node:22.14.0-alpine-ci` (notify)
|
|
43
|
-
- [x] `before_script`: apk add git python3 make g++, safe.directory, git identity
|
|
44
|
-
- [x] Test env: `NAX_SKIP_PRECHECK=1 bun test test/ --timeout=60000`
|
|
45
|
-
- [x] CI skip guards for env-sensitive tests (claude binary, PID checks, subprocess integration)
|
|
46
|
-
- [x] Fixed `checkClaudeCLI()` ENOENT crash — try/catch around Bun.spawn
|
|
47
|
-
- [x] Release trigger: `[run-release]` in commit message on master
|
|
48
|
-
- [x] Runner requirement: 8GB shared runner (`saas-linux-small-amd64`)
|
|
49
|
-
- [x] **Result: 1952 pass, 56 skip, 0 fail**
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## v0.18.2 — Smart Test Runner + Routing Fix ✅
|
|
54
|
-
|
|
55
|
-
**Theme:** Scope verify to changed files only + fix routing override
|
|
56
|
-
**Status:** ✅ Shipped (2026-03-03)
|
|
57
|
-
|
|
58
|
-
### Smart Test Runner
|
|
59
|
-
- [x] ~~After agent implementation, run `git diff --name-only` to get changed source files~~
|
|
60
|
-
- [x] ~~Map source → test files by naming convention (`src/foo/bar.ts` → `test/unit/foo/bar.test.ts`)~~
|
|
61
|
-
- [x] ~~Run only related tests for verify (instead of full suite)~~
|
|
62
|
-
- [x] ~~Fallback to full suite when mapping yields no test files~~
|
|
63
|
-
- [x] ~~Config flag `execution.smartTestRunner: true` (default: true) to opt out~~
|
|
64
|
-
- [x] ~~Result: verify drops from ~125s to ~10-20s for typical single-file fixes~~
|
|
65
|
-
|
|
66
|
-
### Bun PTY Migration (BUN-001)
|
|
67
|
-
- [x] ~~Replace `node-pty` with `Bun.spawn` (piped stdio) — shipped in v0.18.5~~
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## v0.18.3 — Execution Reliability ✅
|
|
73
|
-
|
|
74
|
-
**Theme:** Fix execution pipeline bugs (escalation, routing, review), structured failure context, and Smart Runner enhancement
|
|
75
|
-
**Status:** ✅ Shipped (2026-03-04)
|
|
76
|
-
**Spec:** [docs/specs/verification-architecture-v2.md](specs/verification-architecture-v2.md) (Phase 1)
|
|
77
|
-
|
|
78
|
-
### Bugfixes — Completed
|
|
79
|
-
- [x] **BUG-026:** Regression gate timeout → accept scoped pass + warn (not escalate). Config: `regressionGate.acceptOnTimeout: true`.
|
|
80
|
-
- [x] **BUG-028:** Routing cache ignores escalation tier — `clearCacheForStory(storyId)` in `llm.ts`, called on tier escalation in both `preIterationTierCheck()` and `handleTierEscalation()`.
|
|
81
|
-
|
|
82
|
-
### Structured Failure Context — Completed
|
|
83
|
-
- [x] **SFC-001:** `StructuredFailure` type with `TestFailureContext[]` + `priorFailures?: StructuredFailure[]` on `UserStory`. Populated on verify, regression, rectification, and escalation failures.
|
|
84
|
-
- [x] **SFC-002:** Format `priorFailures` into agent prompt at priority 95 via `createPriorFailuresContext()` in `context/builder.ts`.
|
|
85
|
-
|
|
86
|
-
### Bugfixes — Completed (Round 2)
|
|
87
|
-
- [x] **BUG-029:** Escalation resets story to `pending` → bypasses BUG-022 retry priority. After escalation, `getNextStory()` picks the next pending story instead of retrying the escalated one. **Location:** `src/prd/index.ts:getNextStory()`. **Fix:** Recognize escalated-pending stories in Priority 1 (e.g. check `story.routing.modelTier` changed, or use `"retry-pending"` status).
|
|
88
|
-
- [x] **BUG-030:** Review lint/typecheck failure → hard `"fail"`, no rectification or retry. `review.ts:92` returns `{ action: "fail" }` → `markStoryFailed()` permanently. Lint errors are auto-fixable but story is killed with zero retry. **Fix:** Return `"escalate"` for lint/typecheck failures (or add review-rectification loop). Reserve `"fail"` for plugin reviewer rejection only.
|
|
89
|
-
- [x] **BUG-032:** Routing stage overrides escalated `modelTier` with complexity-derived tier. `routing.ts:43` always runs `complexityToModelTier()` even when `story.routing.modelTier` was set by escalation → escalated tier silently ignored. BUG-013 fix (`applyCachedRouting`) runs too late. **Fix:** Skip `complexityToModelTier()` when `story.routing.modelTier` is explicitly set.
|
|
90
|
-
|
|
91
|
-
### STR-007: Smart Test Runner Enhancement — Completed
|
|
92
|
-
- [x] Configurable `testFilePatterns` in config (default: `test/**/*.test.ts`)
|
|
93
|
-
- [x] `testFileFallback` config option: `"import-grep"` | `"full-suite"` (default: `"import-grep"`)
|
|
94
|
-
- [x] 3-pass test discovery: path-convention → import-grep (grep test files for changed module name) → full-suite
|
|
95
|
-
- [x] Config schema update: `execution.smartTestRunner` becomes object `{ enabled, testFilePatterns, fallback }` (backward compat: boolean coerced)
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
## v0.18.4 — Routing Stability ✅
|
|
100
|
-
|
|
101
|
-
**Theme:** Fix routing classifier consistency and LLM routing reliability
|
|
102
|
-
**Status:** ✅ Shipped (2026-03-04)
|
|
103
|
-
|
|
104
|
-
### Bugfixes
|
|
105
|
-
- [x] **BUG-031:** Keyword fallback classifier gives inconsistent strategy across retries for same story. `priorErrors` text shifts keyword classification. **Fix:** Keyword classifier should only use original story fields; or lock `story.routing.testStrategy` once set.
|
|
106
|
-
- [x] **BUG-033:** LLM routing has no retry on timeout — single 15s attempt, then keyword fallback. **Fix:** Add `routing.llm.retries` config (default: 1) with backoff. Raise default timeout to 30s for batch routing.
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## v0.18.5 — Bun PTY Migration ✅
|
|
111
|
-
|
|
112
|
-
**Theme:** Remove native `node-pty` dependency, Bun-native subprocess for agent sessions
|
|
113
|
-
**Status:** ✅ Shipped (2026-03-04)
|
|
114
|
-
**Spec:** [docs/specs/bun-pty-migration.md](specs/bun-pty-migration.md)
|
|
115
|
-
|
|
116
|
-
### BUN-001: Replace node-pty with Bun.spawn
|
|
117
|
-
- [x] ~~All sub-items complete — `claude.ts` + `usePty.ts` migrated to `Bun.spawn`, `node-pty` removed from `package.json`, CI cleaned up~~
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## v0.23.0 — Status File Consolidation ✅
|
|
122
|
-
|
|
123
|
-
**Theme:** Auto-write status.json to well-known paths, align readers, remove dead options
|
|
124
|
-
**Status:** ✅ Shipped (2026-03-07)
|
|
125
|
-
**Spec:** [docs/specs/status-file-consolidation.md](specs/status-file-consolidation.md)
|
|
126
|
-
**Pre-requisite for:** v0.24.0 (Central Run Registry)
|
|
127
|
-
|
|
128
|
-
### Stories
|
|
129
|
-
- [x] ~~**SFC-001:** Auto-write project-level status — remove `--status-file` flag, always write to `<workdir>/nax/status.json`~~
|
|
130
|
-
- [x] ~~**BUG-043:** Fix scoped test command construction + add `testScoped` config with `{{files}}` template~~
|
|
131
|
-
- [x] ~~**BUG-044:** Log scoped and full-suite test commands at info level in verify stage~~
|
|
132
|
-
- [x] ~~**SFC-002:** Write feature-level status on run end — copy final snapshot to `<workdir>/nax/features/<feature>/status.json`~~
|
|
133
|
-
- [x] ~~**SFC-003:** Align status readers — `nax status` + `nax diagnose` read from correct paths~~
|
|
134
|
-
- [x] ~~**SFC-004:** Clean up dead code — remove `--status-file` option, `.nax-status.json` references~~
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
## v0.28.0 — Prompt Builder
|
|
140
|
-
|
|
141
|
-
**Theme:** Unified, user-overridable prompt architecture replacing 11 scattered functions
|
|
142
|
-
**Status:** 🔲 Planned
|
|
143
|
-
**Spec:** `nax/features/prompt-builder/prd.json`
|
|
144
|
-
|
|
145
|
-
### Stories
|
|
146
|
-
- [ ] **PB-001:** PromptBuilder class with layered section architecture + fluent API
|
|
147
|
-
- [ ] **PB-002:** Typed sections: isolation, role-task, story, verdict, conventions
|
|
148
|
-
- [ ] **PB-003:** Default templates + user override loader + config schema (`prompts.overrides`)
|
|
149
|
-
- [ ] **PB-004:** Migrate all 6 user-facing prompt call sites to PromptBuilder
|
|
150
|
-
- [ ] **PB-005:** Document `prompts` config in `nax config --explain` + precheck validation
|
|
151
|
-
|
|
152
|
-
---
|
|
153
|
-
|
|
154
|
-
## v0.27.1 — Pipeline Observability ✅ Shipped (2026-03-08)
|
|
155
|
-
|
|
156
|
-
**Theme:** Fix redundant verify stage + improve pipeline skip log messages
|
|
157
|
-
**Status:** ✅ Shipped (2026-03-08)
|
|
158
|
-
|
|
159
|
-
### Bugfixes
|
|
160
|
-
- [x] **BUG-054:** Skip pipeline verify stage when TDD full-suite gate already passed — `runFullSuiteGate()` now returns `boolean`, propagated via `ThreeSessionTddResult` → `executionStage` → `ctx.fullSuiteGatePassed` → `verifyStage.enabled()` returns false with reason "not needed (full-suite gate already passed)"
|
|
161
|
-
- [x] **BUG-055:** Pipeline skip messages now differentiate "not needed" from "disabled". Added optional `skipReason(ctx)` to `PipelineStage` interface; `rectify`, `autofix`, `regression`, `verify` stages all provide context-aware reasons
|
|
162
|
-
|
|
163
|
-
## v0.27.0 — Review Quality ✅ Shipped (2026-03-08)
|
|
164
|
-
|
|
165
|
-
**Theme:** Fix review stage reliability — dirty working tree false-positive, stale precheck, dead config fields
|
|
166
|
-
**Status:** ✅ Shipped (2026-03-08)
|
|
167
|
-
**Spec:** `nax/features/review-quality/prd.json`
|
|
168
|
-
|
|
169
|
-
### Stories
|
|
170
|
-
- [x] **RQ-001:** Assert clean working tree before running review typecheck/lint (BUG-049)
|
|
171
|
-
- [x] **RQ-002:** Fix `checkOptionalCommands` precheck to use correct config resolution path (BUG-050)
|
|
172
|
-
- [x] **RQ-003:** Consolidate dead `quality.commands.typecheck/lint` into review resolution chain (BUG-051)
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
## v0.26.0 — Routing Persistence ✅ Shipped (2026-03-08)
|
|
177
|
-
|
|
178
|
-
- **RRP-001:** Persist initial routing classification to `prd.json` on first classification
|
|
179
|
-
- **RRP-002:** Add `initialComplexity` to `StoryRouting` and `StoryMetrics` for accurate reporting
|
|
180
|
-
- **RRP-003:** Add `contentHash` to `StoryRouting` for staleness detection — stale cached routing is re-classified
|
|
181
|
-
- **RRP-004:** Unit tests for routing persistence, idempotence, staleness, content hash, metrics
|
|
182
|
-
- **BUG-052:** Replace `console.warn` with structured JSONL logger in `review/runner.ts` and `optimizer/index.ts`
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
## v0.25.0 — Trigger Completion ✅ Shipped (2026-03-07)
|
|
187
|
-
|
|
188
|
-
**Theme:** Wire all 8 unwired interaction triggers, 3 missing hook events, and add plugin integration tests
|
|
189
|
-
**Status:** ✅ Shipped (2026-03-07)
|
|
190
|
-
**Spec:** [docs/specs/trigger-completion.md](specs/trigger-completion.md)
|
|
191
|
-
|
|
192
|
-
### Stories
|
|
193
|
-
- [x] **TC-001:** Wire `cost-exceeded` + `cost-warning` triggers — fire at 80%/100% of cost limit in sequential-executor.ts
|
|
194
|
-
- [x] **TC-002:** Wire `max-retries` trigger — fire on permanent story failure via `story:failed` event in wireInteraction
|
|
195
|
-
- [x] **TC-003:** Wire `security-review`, `merge-conflict`, `pre-merge` triggers — review rejection, git conflict detection, pre-completion gate
|
|
196
|
-
- [x] **TC-004:** Wire `story-ambiguity` + `review-gate` triggers — ambiguity keyword detection, per-story human checkpoint
|
|
197
|
-
- [x] **TC-005:** Wire missing hook events — `on-resume`, `on-session-end`, `on-error` to pipeline events
|
|
198
|
-
- [x] **TC-006:** Auto plugin + Telegram + Webhook integration tests — mock LLM/network, cover approve/reject/HMAC flows
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
## v0.24.0 — Central Run Registry ✅
|
|
203
|
-
|
|
204
|
-
**Theme:** Global run index across all projects — single source of truth for all nax run history
|
|
205
|
-
**Status:** ✅ Shipped (2026-03-07)
|
|
206
|
-
**Spec:** [docs/specs/central-run-registry.md](specs/central-run-registry.md)
|
|
207
|
-
|
|
208
|
-
### Stories
|
|
209
|
-
- [x] ~~**CRR-000:** `src/pipeline/subscribers/events-writer.ts` — `wireEventsWriter()`, writes lifecycle events to `~/.nax/events/<project>/events.jsonl` (machine-readable completion signal for watchdog/CI)~~
|
|
210
|
-
- [x] ~~**CRR-001:** `src/pipeline/subscribers/registry.ts` — `wireRegistry()` subscriber, listens to `run:started`, writes `~/.nax/runs/<project>-<feature>-<runId>/meta.json` (path pointers only — no data duplication, no symlinks)~~
|
|
211
|
-
- [x] ~~**CRR-002:** `src/commands/runs.ts` — `nax runs` CLI, reads `meta.json` → resolves live `status.json` from `statusPath`, displays table (project, feature, status, stories, duration, date). Filters: `--project`, `--last`, `--status`~~
|
|
212
|
-
- [x] ~~**CRR-003:** `nax logs --run <runId>` — resolve run from global registry via `eventsDir`, stream logs from any directory~~
|
|
213
|
-
|
|
214
|
-
---
|
|
215
|
-
|
|
216
|
-
## v0.21.0 — Process Reliability & Observability ✅
|
|
217
|
-
|
|
218
|
-
**Theme:** Kill orphan processes cleanly, smart-runner precision, test strategy quality
|
|
219
|
-
**Status:** ✅ Shipped (2026-03-06)
|
|
220
|
-
|
|
221
|
-
### Shipped
|
|
222
|
-
- [x] **BUG-039 (simple):** Timeouts for review/runner.ts lint/typecheck, git.ts, executor.ts timer leak
|
|
223
|
-
- [x] **BUG-039 (medium):** runOnce() SIGKILL follow-up + pidRegistry.unregister() in finally; LLM stream drain (stdout/stderr cancel) before proc.kill() on timeout
|
|
224
|
-
- [x] **FEAT-010:** baseRef tracking — capture HEAD per attempt, `git diff <baseRef>..HEAD` in smart-runner (precise, no cross-story pollution)
|
|
225
|
-
- [x] **FEAT-011:** Path-only context for oversized files (>10KB) — was silently dropped, now agent gets a path hint
|
|
226
|
-
- [x] **FEAT-013:** Deprecated `test-after` from auto routing — simple/medium stories now default to `three-session-tdd-lite`
|
|
227
|
-
- [x] ~~**BUG-041:**~~ Won't fix — superseded by FEAT-010
|
|
228
|
-
- [x] ~~**FEAT-012:**~~ Won't fix — balanced tier sufficient for test-writer
|
|
229
|
-
|
|
230
|
-
### → v0.22.1 Pipeline Re-Architecture ✅ Shipped (2026-03-07)
|
|
231
|
-
**ADR:** [docs/adr/ADR-005-pipeline-re-architecture.md](adr/ADR-005-pipeline-re-architecture.md)
|
|
232
|
-
**Plan:** [docs/adr/ADR-005-implementation-plan.md](adr/ADR-005-implementation-plan.md)
|
|
233
|
-
|
|
234
|
-
**Theme:** Eliminate ad-hoc orchestration, consolidate 4 scattered verification paths into single orchestrator, add event-bus-driven hooks/plugins/interaction, new stages (rectify, autofix, regression), post-run pipeline SSOT.
|
|
235
|
-
|
|
236
|
-
- [x] **Phase 1:** VerificationOrchestrator + Pipeline Event Bus (additive, no behavior change)
|
|
237
|
-
- [x] **Phase 2:** New stages — `rectify`, `autofix`, `regression` + `retry` stage action
|
|
238
|
-
- [x] **Phase 3:** Event-bus subscribers for hooks, reporters, interaction (replace 20+ scattered call sites)
|
|
239
|
-
- [x] **Phase 5:** Post-run pipeline SSOT — `deferred-regression` stage, tier escalation into `iteration-runner`, `runAcceptanceLoop` → `runPipeline(postRunPipeline)`
|
|
240
|
-
|
|
241
|
-
**Resolved:**
|
|
242
|
-
- [x] **BUG-040:** Lint/typecheck auto-repair → `autofix` stage + `quality.commands.lintFix/formatFix`
|
|
243
|
-
- [x] **BUG-042:** Verifier failure capture → unified `VerifyResult` with `failures[]` always populated
|
|
244
|
-
- [x] **FEAT-014:** Heartbeat observability → Pipeline Event Bus with typed events
|
|
245
|
-
- [x] **BUG-026:** Regression gate triggers full retry → targeted `rectify` stage with `retry` action
|
|
246
|
-
- [x] **BUG-028:** Routing cache ignores escalation tier → cache key includes tier
|
|
247
|
-
|
|
248
|
-
**Test results:** 2264 pass, 12 skip, 1 fail (pre-existing disk space flaky)
|
|
249
|
-
|
|
250
|
-
---
|
|
251
|
-
|
|
252
|
-
## v0.20.0 — Verification Architecture v2 ✅
|
|
253
|
-
|
|
254
|
-
**Theme:** Eliminate duplicate test runs, deferred regression gate, structured escalation context
|
|
255
|
-
**Status:** ✅ Shipped (2026-03-06)
|
|
256
|
-
**Spec:** [docs/specs/verification-architecture-v2.md](specs/verification-architecture-v2.md)
|
|
257
|
-
|
|
258
|
-
### Shipped
|
|
259
|
-
- [x] Pipeline verify stage is single test execution point (Smart Test Runner)
|
|
260
|
-
- [x] Removed scoped re-test in `post-verify.ts` (duplicate eliminated)
|
|
261
|
-
- [x] Review stage: typecheck + lint only — `checks: ["typecheck", "lint"]`
|
|
262
|
-
- [x] Deferred regression gate — `src/execution/lifecycle/run-regression.ts`
|
|
263
|
-
- [x] Reverse Smart Test Runner mapping: test → source → responsible story
|
|
264
|
-
- [x] Targeted rectification per story with full failure context
|
|
265
|
-
- [x] `regressionGate.mode: "deferred" | "per-story" | "disabled"` config
|
|
266
|
-
- [x] `maxRectificationAttempts` config (default: 2)
|
|
267
|
-
- [x] BUG-037: verify output shows last 20 lines (failures, not prechecks)
|
|
268
|
-
|
|
269
|
-
---
|
|
270
|
-
|
|
271
|
-
## v0.19.0 — Hardening & Compliance ✅
|
|
272
|
-
|
|
273
|
-
**Theme:** Security hardening, _deps injection pattern, Node.js API removal
|
|
274
|
-
**Status:** ✅ Shipped (2026-03-04)
|
|
275
|
-
**Spec:** [docs/specs/verification-architecture-v2.md](specs/verification-architecture-v2.md) (Phase 2)
|
|
276
|
-
|
|
277
|
-
### Shipped
|
|
278
|
-
- [x] Pipeline verify stage is the single test execution point (Smart Test Runner)
|
|
279
|
-
- [x] Remove scoped re-test in `post-verify.ts` (duplicate of pipeline verify)
|
|
280
|
-
- [x] Review stage runs typecheck + lint only — remove `review.commands.test` execution
|
|
281
|
-
- [x] `priorFailures` injected into escalated agent prompts via `context/builder.ts`
|
|
282
|
-
- [x] Reverse file mapping for regression attribution
|
|
283
|
-
|
|
284
|
-
---
|
|
285
|
-
|
|
286
|
-
## Shipped
|
|
287
|
-
|
|
288
|
-
| Version | Theme | Date | Details |
|
|
289
|
-
|:---|:---|:---|:---|
|
|
290
|
-
| v0.27.1 | Pipeline Observability | 2026-03-08 | BUG-054: skip redundant verify after full-suite gate; BUG-055: differentiate skip reasons |
|
|
291
|
-
| v0.26.0 | Routing Persistence | 2026-03-08 | RRP-001–004: persist initial routing, initialComplexity, contentHash staleness detection, unit tests; BUG-052: structured logger in review/optimizer |
|
|
292
|
-
| v0.25.0 | Trigger Completion | 2026-03-07 | TC-001–004: run.complete event, crash recovery, headless formatter, trigger completion |
|
|
293
|
-
| v0.24.0 | Central Run Registry | 2026-03-07 | CRR-000–003: events writer, registry, nax runs CLI, nax logs --run global resolution |
|
|
294
|
-
| v0.23.0 | Status File Consolidation | 2026-03-07 | SFC-001–004: auto-write status.json, feature-level status, align readers, remove dead code; BUG-043/044: testScoped config + command logging |
|
|
295
|
-
| v0.18.1 | Type Safety + CI Pipeline | 2026-03-03 | 60 TS errors + 12 lint errors fixed, GitLab CI green (1952/56/0) |
|
|
296
|
-
| v0.22.2 | Routing Stability + SFC-001 | 2026-03-07 | BUG-040 floating outputPromise crash on LLM timeout retry; SFC-001 auto-write status.json |
|
|
297
|
-
| v0.22.1 | Pipeline Re-Architecture | 2026-03-07 | VerificationOrchestrator, EventBus, new stages (rectify/autofix/regression/deferred-regression), post-run SSOT. 2264 pass |
|
|
298
|
-
| v0.20.0 | Verification Architecture v2 | 2026-03-06 | Deferred regression gate, remove duplicate tests, BUG-037 |
|
|
299
|
-
| v0.19.0 | Hardening & Compliance | 2026-03-04 | SEC-1 to SEC-5, BUG-1, Node.js API removal, _deps rollout |
|
|
300
|
-
| v0.18.5 | Bun PTY Migration | 2026-03-04 | BUN-001: node-pty → Bun.spawn, CI cleanup, flaky test fix |
|
|
301
|
-
| v0.18.4 | Routing Stability | 2026-03-04 | BUG-031 keyword drift, BUG-033 LLM retry, pre-commit hook |
|
|
302
|
-
| v0.18.3 | Execution Reliability + Smart Runner | 2026-03-04 | BUG-026/028/029/030/032 + SFC-001/002 + STR-007, all items complete |
|
|
303
|
-
| v0.18.2 | Smart Test Runner + Routing Fix | 2026-03-03 | FIX-001 + STR-001–006, 2038 pass/11 skip/0 fail |
|
|
304
|
-
| v0.18.0 | Orchestration Quality | 2026-03-03 | BUG-016/017/018/019/020/021/022/023/025 all fixed |
|
|
305
|
-
| v0.17.0 | Config Management | 2026-03-02 | CM-001 --explain, CM-002 --diff, CM-003 default view |
|
|
306
|
-
| v0.16.4 | Bugfixes: Routing + Env Allowlist | 2026-03-02 | BUG-012/013/014 |
|
|
307
|
-
| v0.16.1 | Project Context Generator | 2026-03-01 | `nax generate`, auto-inject, multi-language |
|
|
308
|
-
| v0.16.0 | Story Size Gate | 2026-03-01 | [releases/v0.16.0.md](releases/v0.16.0.md) |
|
|
309
|
-
| v0.15.3 | Constitution Generator + Runner Interaction Wiring | 2026-02-28 | [releases/v0.15.3.md](releases/v0.15.3.md) |
|
|
310
|
-
| v0.15.1 | Architectural Compliance + Security Hardening | 2026-02-28 | [releases/v0.15.1.md](releases/v0.15.1.md) |
|
|
311
|
-
| v0.15.0 | Interactive Pipeline | 2026-02-28 | [releases/v0.15.0.md](releases/v0.15.0.md) |
|
|
312
|
-
| v0.14.4 | Code Audit Cleanup (MEDIUM findings) | 2026-02-28 | [releases/v0.14.4.md](releases/v0.14.4.md) |
|
|
313
|
-
| v0.14.3 | Code Audit Fixes (CRITICAL+HIGH+MEDIUM) | 2026-02-28 | [releases/v0.14.3.md](releases/v0.14.3.md) |
|
|
314
|
-
| v0.14.2 | E2E Test Hang Fix | 2026-02-28 | [releases/v0.14.2.md](releases/v0.14.2.md) |
|
|
315
|
-
| v0.14.1 | nax diagnose CLI | 2026-02-28 | [releases/v0.14.1.md](releases/v0.14.1.md) |
|
|
316
|
-
| v0.14.0 | Failure Resilience | 2026-02-28 | [releases/v0.14.0.md](releases/v0.14.0.md) |
|
|
317
|
-
| v0.13.0 | Precheck | 2026-02-27 | [releases/v0.13.0.md](releases/v0.13.0.md) |
|
|
318
|
-
| v0.12.0 | Structured Logging | 2026-02-27 | [releases/v0.12.0.md](releases/v0.12.0.md) |
|
|
319
|
-
| v0.11.0 and earlier | Plugin Integration, LLM Routing, Core Pipeline | 2026-02-27 | [releases/v0.11.0-and-earlier.md](releases/v0.11.0-and-earlier.md) |
|
|
320
|
-
|
|
321
|
-
---
|
|
322
|
-
|
|
323
|
-
## Backlog
|
|
324
|
-
|
|
325
|
-
### Bugs
|
|
326
|
-
- [x] ~~BUG-002: Orphan Claude processes~~
|
|
327
|
-
- [x] ~~BUG-003: PRD status "done" not skipped~~
|
|
328
|
-
- [x] ~~BUG-004: router.ts crashes on missing tags~~
|
|
329
|
-
- [x] ~~BUG-005: Hardcoded `bun run lint` in review~~
|
|
330
|
-
- [x] ~~BUG-006: Context auto-detection~~
|
|
331
|
-
- [x] ~~BUG-008: E2E tests hang with infinite retry~~
|
|
332
|
-
- [x] ~~BUG-009: No cross-story regression check~~
|
|
333
|
-
- [x] ~~BUG-010: Greenfield TDD no test files~~
|
|
334
|
-
- [x] ~~BUG-011: Escalation tier budget not enforced~~
|
|
335
|
-
- [x] ~~BUG-012: Greenfield detection ignores pre-existing test files~~
|
|
336
|
-
- [x] ~~BUG-013: Escalation routing not applied in iterations~~
|
|
337
|
-
- [x] ~~BUG-014: buildAllowedEnv() strips USER/LOGNAME~~
|
|
338
|
-
- [x] ~~**BUG-015:** `loadConstitution()` leaks global `~/.nax/constitution.md` into unit tests — fixed via `skipGlobal: true` in all unit tests~~
|
|
339
|
-
- [x] ~~**BUG-027:** `runPrecheck()` always prints to stdout — pollutes test output when called programmatically. Shipped in v0.18.2.~~
|
|
340
|
-
- [x] ~~**BUG-028:** Routing cache ignores escalation tier — escalated stories re-run at original tier. Shipped in v0.18.3.~~
|
|
341
|
-
- [x] ~~**BUG-016:** Hardcoded 120s timeout in pipeline verify stage → fixed in v0.18.0~~
|
|
342
|
-
- [x] ~~**BUG-017:** run.complete not emitted on SIGTERM → fixed in v0.18.0~~
|
|
343
|
-
- [x] ~~**BUG-018:** Test-writer wastes ~3min/retry when tests already exist → fixed in v0.18.0~~
|
|
344
|
-
- [x] ~~**BUG-019:** Misleading TIMEOUT output preview → fixed in v0.18.0~~
|
|
345
|
-
- [x] ~~**BUG-020:** Missing storyId in JSONL events → fixed in v0.18.0~~
|
|
346
|
-
- [x] ~~**BUG-021:** `Task classified` log shows raw LLM result, not final routing → fixed in v0.18.0~~
|
|
347
|
-
- [x] ~~**BUG-022:** Story interleaving — `getNextStory()` round-robins instead of exhausting retries on current story → fixed in v0.18.0~~
|
|
348
|
-
- [x] ~~**BUG-023:** Agent failure silent — no exitCode/stderr in JSONL → fixed in v0.18.0~~
|
|
349
|
-
- [x] ~~**BUG-025:** `needsHumanReview` not triggering interactive plugin → fixed in v0.18.0~~
|
|
350
|
-
- [x] ~~**BUG-029:** Escalation resets story to `pending`. Fixed.~~
|
|
351
|
-
- [x] ~~**BUG-030:** Review lint failure resets. Fixed.~~
|
|
352
|
-
- [x] ~~**BUG-031:** Keyword fallback classifier inconsistency. Fixed.~~
|
|
353
|
-
- [x] ~~**BUG-032:** Routing stage overrides escalated modelTier. Fixed.~~
|
|
354
|
-
- [x] ~~**BUG-033:** LLM routing timeout/retry. Fixed.~~
|
|
355
|
-
- [x] ~~**BUG-037:** Test output summary (verify stage) tail. Fixed.~~
|
|
356
|
-
- [x] ~~**BUG-038:** smart-runner over-matching. Fixed.~~
|
|
357
|
-
- [x] ~~**BUG-043:** Scoped test command construction. Fixed.~~
|
|
358
|
-
- [x] ~~**BUG-044:** Scoped/full-suite test command logging. Fixed.~~
|
|
359
|
-
- [x] ~~**BUG-049:** Review typecheck runs on dirty working tree. Fixed in v0.27.0.~~
|
|
360
|
-
- [x] ~~**BUG-050:** `checkOptionalCommands` precheck uses legacy config fields. Fixed in v0.27.0.~~
|
|
361
|
-
- [x] ~~**BUG-051:** `quality.commands.typecheck/lint` are dead config. Fixed in v0.27.0.~~
|
|
362
|
-
- [x] ~~**BUG-052:** `console.warn` in runtime pipeline code bypasses JSONL logger. Fixed in v0.26.0.~~
|
|
363
|
-
- [x] ~~**BUG-054:** Redundant scoped verify after TDD full-suite gate passes. Fixed in v0.27.1.~~ When rectification gate runs full test suite and passes, the pipeline verify stage re-runs scoped tests (subset). **Fix:** Skip verify if full-suite gate already passed.
|
|
364
|
-
- [x] ~~**BUG-055:** Pipeline skip messages conflate "not needed" with "disabled". Fixed in v0.27.1.~~ `runner.ts:54` logs "skipped (disabled)" for all stages where `enabled()` returns false, even if just because tests passed. **Fix:** Differentiate log message.
|
|
365
|
-
|
|
366
|
-
### Features
|
|
367
|
-
- [x] ~~`nax unlock` command~~
|
|
368
|
-
- [x] ~~Constitution file support~~
|
|
369
|
-
- [x] ~~Per-story testStrategy override — v0.18.1~~
|
|
370
|
-
- [x] ~~Smart Test Runner — v0.18.2~~
|
|
371
|
-
- [ ] **Central Run Registry** — moved to v0.24.0
|
|
372
|
-
- [x] ~~**BUN-001:** Bun PTY Migration — replace `node-pty` with `Bun.spawn` (piped stdio). Shipped in v0.18.5.~~
|
|
373
|
-
- [ ] **CI-001:** CI Memory Optimization — parallel test sharding for 1GB runners
|
|
374
|
-
- [ ] **CI-001:** CI Memory Optimization — parallel test sharding to pass on 1GB runners (currently requires 8GB). Evaluate `bun test --shard` when stable.
|
|
375
|
-
- [ ] Cost tracking dashboard
|
|
376
|
-
- [ ] npm publish setup
|
|
377
|
-
- [ ] `nax diagnose --ai` flag (LLM-assisted, future TBD)
|
|
378
|
-
- [ ] **Auto-decompose oversized stories** — When story size gate triggers, offer via interaction chain to auto-decompose using `nax analyse`.
|
|
379
|
-
- [ ] **AST-based context file detection** — replace keyword-matching with import/symbol graph analysis. Target: v0.19+
|
|
380
|
-
- [ ] VitePress documentation site — full CLI reference, hosted as standalone docs (pre-publish requirement)
|
|
381
|
-
|
|
382
|
-
---
|
|
383
|
-
|
|
384
|
-
## Versioning
|
|
385
|
-
|
|
386
|
-
Sequential canary → stable: `v0.12.0-canary.0` → `canary.N` → `v0.12.0`
|
|
387
|
-
Canary: `npm publish --tag canary`
|
|
388
|
-
Stable: `npm publish` (latest)
|
|
389
|
-
|
|
390
|
-
*Last updated: 2026-03-08 (v0.27.1 shipped — Pipeline Observability; v0.28.0 PRD ready — Prompt Builder)*
|
|
File without changes
|