thevoidforge 21.0.10 → 21.0.12
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/.claude/commands/ai.md +69 -0
- package/dist/.claude/commands/architect.md +121 -0
- package/dist/.claude/commands/assemble.md +201 -0
- package/dist/.claude/commands/assess.md +75 -0
- package/dist/.claude/commands/blueprint.md +135 -0
- package/dist/.claude/commands/build.md +116 -0
- package/dist/.claude/commands/campaign.md +201 -0
- package/dist/.claude/commands/cultivation.md +166 -0
- package/dist/.claude/commands/current.md +128 -0
- package/dist/.claude/commands/dangerroom.md +74 -0
- package/dist/.claude/commands/debrief.md +178 -0
- package/dist/.claude/commands/deploy.md +99 -0
- package/dist/.claude/commands/devops.md +143 -0
- package/dist/.claude/commands/gauntlet.md +140 -0
- package/dist/.claude/commands/git.md +104 -0
- package/dist/.claude/commands/grow.md +146 -0
- package/dist/.claude/commands/imagine.md +126 -0
- package/dist/.claude/commands/portfolio.md +50 -0
- package/dist/.claude/commands/prd.md +113 -0
- package/dist/.claude/commands/qa.md +107 -0
- package/dist/.claude/commands/review.md +151 -0
- package/dist/.claude/commands/security.md +100 -0
- package/dist/.claude/commands/test.md +96 -0
- package/dist/.claude/commands/thumper.md +116 -0
- package/dist/.claude/commands/treasury.md +100 -0
- package/dist/.claude/commands/ux.md +118 -0
- package/dist/.claude/commands/vault.md +189 -0
- package/dist/.claude/commands/void.md +108 -0
- package/dist/CHANGELOG.md +1918 -0
- package/dist/CLAUDE.md +250 -0
- package/dist/HOLOCRON.md +856 -0
- package/dist/VERSION.md +123 -0
- package/dist/docs/NAMING_REGISTRY.md +478 -0
- package/dist/docs/methods/AI_INTELLIGENCE.md +276 -0
- package/dist/docs/methods/ASSEMBLER.md +142 -0
- package/dist/docs/methods/BACKEND_ENGINEER.md +165 -0
- package/dist/docs/methods/BUILD_JOURNAL.md +185 -0
- package/dist/docs/methods/BUILD_PROTOCOL.md +426 -0
- package/dist/docs/methods/CAMPAIGN.md +568 -0
- package/dist/docs/methods/CONTEXT_MANAGEMENT.md +189 -0
- package/dist/docs/methods/DEEP_CURRENT.md +184 -0
- package/dist/docs/methods/DEVOPS_ENGINEER.md +295 -0
- package/dist/docs/methods/FIELD_MEDIC.md +261 -0
- package/dist/docs/methods/FORGE_ARTIST.md +108 -0
- package/dist/docs/methods/FORGE_KEEPER.md +268 -0
- package/dist/docs/methods/GAUNTLET.md +344 -0
- package/dist/docs/methods/GROWTH_STRATEGIST.md +466 -0
- package/dist/docs/methods/HEARTBEAT.md +168 -0
- package/dist/docs/methods/MCP_INTEGRATION.md +139 -0
- package/dist/docs/methods/MUSTER.md +148 -0
- package/dist/docs/methods/PRD_GENERATOR.md +186 -0
- package/dist/docs/methods/PRODUCT_DESIGN_FRONTEND.md +250 -0
- package/dist/docs/methods/QA_ENGINEER.md +337 -0
- package/dist/docs/methods/RELEASE_MANAGER.md +145 -0
- package/dist/docs/methods/SECURITY_AUDITOR.md +320 -0
- package/dist/docs/methods/SUB_AGENTS.md +335 -0
- package/dist/docs/methods/SYSTEMS_ARCHITECT.md +171 -0
- package/dist/docs/methods/TESTING.md +359 -0
- package/dist/docs/methods/THUMPER.md +175 -0
- package/dist/docs/methods/TIME_VAULT.md +120 -0
- package/dist/docs/methods/TREASURY.md +184 -0
- package/dist/docs/methods/TROUBLESHOOTING.md +265 -0
- package/dist/docs/patterns/README.md +52 -0
- package/dist/docs/patterns/ad-billing-adapter.ts +537 -0
- package/dist/docs/patterns/ad-platform-adapter.ts +421 -0
- package/dist/docs/patterns/ai-classifier.ts +195 -0
- package/dist/docs/patterns/ai-eval.ts +272 -0
- package/dist/docs/patterns/ai-orchestrator.ts +341 -0
- package/dist/docs/patterns/ai-router.ts +194 -0
- package/dist/docs/patterns/ai-tool-schema.ts +237 -0
- package/dist/docs/patterns/api-route.ts +241 -0
- package/dist/docs/patterns/backtest-engine.ts +499 -0
- package/dist/docs/patterns/browser-review.ts +292 -0
- package/dist/docs/patterns/combobox.tsx +300 -0
- package/dist/docs/patterns/component.tsx +262 -0
- package/dist/docs/patterns/daemon-process.ts +338 -0
- package/dist/docs/patterns/data-pipeline.ts +297 -0
- package/dist/docs/patterns/database-migration.ts +466 -0
- package/dist/docs/patterns/e2e-test.ts +629 -0
- package/dist/docs/patterns/error-handling.ts +312 -0
- package/dist/docs/patterns/execution-safety.ts +601 -0
- package/dist/docs/patterns/financial-transaction.ts +342 -0
- package/dist/docs/patterns/funding-plan.ts +462 -0
- package/dist/docs/patterns/game-entity.ts +137 -0
- package/dist/docs/patterns/game-loop.ts +113 -0
- package/dist/docs/patterns/game-state.ts +143 -0
- package/dist/docs/patterns/job-queue.ts +225 -0
- package/dist/docs/patterns/kongo-integration.ts +164 -0
- package/dist/docs/patterns/middleware.ts +363 -0
- package/dist/docs/patterns/mobile-screen.tsx +139 -0
- package/dist/docs/patterns/mobile-service.ts +167 -0
- package/dist/docs/patterns/multi-tenant.ts +382 -0
- package/dist/docs/patterns/oauth-token-lifecycle.ts +223 -0
- package/dist/docs/patterns/outbound-rate-limiter.ts +260 -0
- package/dist/docs/patterns/prompt-template.ts +195 -0
- package/dist/docs/patterns/revenue-source-adapter.ts +311 -0
- package/dist/docs/patterns/service.ts +224 -0
- package/dist/docs/patterns/sse-endpoint.ts +118 -0
- package/dist/docs/patterns/stablecoin-adapter.ts +511 -0
- package/dist/docs/patterns/third-party-script.ts +68 -0
- package/dist/scripts/thumper/gom-jabbar.sh +241 -0
- package/dist/scripts/thumper/relay.sh +610 -0
- package/dist/scripts/thumper/scan.sh +359 -0
- package/dist/scripts/thumper/thumper.sh +190 -0
- package/dist/scripts/thumper/water-rings.sh +76 -0
- package/dist/scripts/voidforge.js +1 -1
- package/package.json +1 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,1918 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## [21.0.0] - 2026-04-08
|
|
10
|
+
|
|
11
|
+
### Breaking Changes — The Extraction (ADR-038)
|
|
12
|
+
|
|
13
|
+
The wizard is now a standalone npm package. Projects contain methodology only.
|
|
14
|
+
|
|
15
|
+
- **Monorepo structure:** `packages/voidforge/` (wizard+CLI) and `packages/methodology/` (@voidforge/methodology)
|
|
16
|
+
- **CLI router:** `npx voidforge` with 12 commands (init, update, install, uninstall, deploy, doctor, migrate, version, templates, help)
|
|
17
|
+
- **.voidforge marker file:** JSON identity file at project root for CLI detection
|
|
18
|
+
- **Project creation:** `npx voidforge init --headless` creates projects with methodology copy, identity injection, marker, git init
|
|
19
|
+
- **Extension system:** `npx voidforge install <ext>` for danger-room (config) and cultivation (heartbeat, 12 jobs, treasury)
|
|
20
|
+
- **Update mechanisms:** `npx voidforge update` replaces `/void` git-fetch with methodology diff/apply preserving CLAUDE.md identity
|
|
21
|
+
- **Daemon aggregator:** Multi-project heartbeat connection, aggregated KPIs, freeze/unfreeze
|
|
22
|
+
- **v20.x migration:** `npx voidforge migrate` with backup, rollback, dry-run
|
|
23
|
+
- **Tests:** 675 (618 original + 57 new across 7 modules)
|
|
24
|
+
|
|
25
|
+
### Post-Campaign Tasks
|
|
26
|
+
|
|
27
|
+
- [ ] npm account creation for publishing
|
|
28
|
+
- [ ] Deprecation commits on scaffold/core branches
|
|
29
|
+
- [ ] CI/CD pipeline for npm publish on git tag
|
|
30
|
+
- [ ] Build pipeline (tsc compile to dist/) for production distribution
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## [20.2.0] - 2026-04-03
|
|
35
|
+
|
|
36
|
+
### Added
|
|
37
|
+
- **ADR-037: Graceful Tier Degradation** — sentinel file check, methodology-only fallback, --audit-only expansion, cultivation graceful skip, phantom directory cleanup.
|
|
38
|
+
- **PRD-graceful-degradation.md** — 6 requirements for scaffold /cultivation and /grow experience.
|
|
39
|
+
- **Spring Cleaning migration** in `/void` — auto-cleans leaked main-only files from old scaffold/core clones. Fingerprints ambiguous files before removing. Detects Full-tier wizard usage.
|
|
40
|
+
- **GROWTH_STRATEGIST.md "Scaffold/Core Users"** section — documents which /grow phases work without wizard.
|
|
41
|
+
- **TROUBLESHOOTING.md** — Step 0 (What Changed?), Hypothesis Invalidation, Post-Deploy Debugging Protocol. (Field reports #271, #275)
|
|
42
|
+
- **QA_ENGINEER.md** — Stateful Service Audit: verify runtime state survives restart. (Field report #271)
|
|
43
|
+
- **SECURITY_AUDITOR.md** — Verify Before Transact: read-back verification for >$100 irreversible operations. (Field report #271)
|
|
44
|
+
- **SYSTEMS_ARCHITECT.md** — Strategy Consolidation Check + Access Control Granularity in conflict checklist. (Field reports #273, #274)
|
|
45
|
+
- **GAUNTLET.md** — Troi Marketing Copy Drift Check in standard and Infinity rounds. (Field report #273)
|
|
46
|
+
- **execution-safety.ts** — Derive Don't Accumulate pattern + never raw transfer() to smart contracts. (Field reports #271, #274, #275)
|
|
47
|
+
- **relay.sh** — Transport pre-flight validation at daemon startup for all 3 transports. (Field report #276)
|
|
48
|
+
- **BACKEND_ENGINEER.md** — Stateless by Default: all runtime state must be reconstructable within one startup cycle. (Field report #274)
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
- **Tier gate sentinel** — all 6 Full-tier commands (`/cultivation`, `/grow`, `/dangerroom`, `/treasury`, `/portfolio`, `/current`) check `wizard/server.ts` not `wizard/` directory. Prevents phantom empty directories from bypassing the gate.
|
|
52
|
+
- **/grow Prerequisites** — "On no" proceeds to Phases 1-3 instead of hard stopping. `--audit-only`, `--seo`, `--content` skip the wizard gate entirely.
|
|
53
|
+
- **/cultivation install** — Steps 4-8 display skip messages when wizard absent. Step 7 shows partial install summary. "On no" proceeds to Steps 1-3.
|
|
54
|
+
- **/grow --audit-only** — expanded from Phase 1 to Phases 1-3 (reconnaissance + foundation + content).
|
|
55
|
+
- **.gitignore** — hardened with keys/certs, coverage, playwright reports, editor backups, settings.json, package-lock.json patterns. `wizard/` added on scaffold/core.
|
|
56
|
+
- **ROADMAP.md** — header updated to v20.2.0.
|
|
57
|
+
- **package.json** — replaced with minimal version on scaffold (name + version + description only, no dependencies).
|
|
58
|
+
|
|
59
|
+
### Removed
|
|
60
|
+
- **274 files** from scaffold branch — wizard/ (216 files), build configs, main-only scripts, stale v15.2.1 docs, wizard-specific ADRs (32), PRD-VOIDFORGE, PROPHECY, WORKSHOP, marketing copy, package-lock.json. Scaffold: 408 → 134 tracked files.
|
|
61
|
+
- **16 files** from core branch — same categories. Added 3 methodology-relevant ADRs (008, 032, 034).
|
|
62
|
+
- **20 residual wizard files** from scaffold (UI + headless-deploy.ts from earlier incomplete cleanup).
|
|
63
|
+
- **6 field reports closed** — #271 (debugging protocol), #272 (LEARNINGS validated), #273 (marketing drift), #274 (stateless + strategy), #275 (merged with #271), #276 (thumper tmux — 1 accept, 3 wontfix).
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## [20.1.1] - 2026-04-02
|
|
68
|
+
|
|
69
|
+
### Changed
|
|
70
|
+
- **Parallel Agent Standard** added to `SUB_AGENTS.md` — standard brief format, structured deliverables, 3-agent concurrency cap, orchestration loop. Main thread orchestrates, sub-agents do the work. Dispatch directives added to ASSEMBLER.md (Rule 11), GAUNTLET.md, BUILD_PROTOCOL.md, CAMPAIGN.md, QA_ENGINEER.md, SECURITY_AUDITOR.md, CONTEXT_MANAGEMENT.md.
|
|
71
|
+
- **ID Space Audit** added to `QA_ENGINEER.md` — verify identifier comparisons use the same ID type.
|
|
72
|
+
- **Safety Parameter Audit** added to `SECURITY_AUDITOR.md` — verify safety-critical params can't be overridden to unsafe values.
|
|
73
|
+
- **Maul re-probe** formalized as mandatory gate in `ASSEMBLER.md` — review fixes can introduce new failure modes.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## [20.1.0] - 2026-04-02
|
|
78
|
+
|
|
79
|
+
### Added
|
|
80
|
+
- **Kongo Engine integration** (10 modules, 119 tests) — first-party landing page system for `/cultivation` and `/grow`. Typed HTTP client, page CRUD, campaign/variant management, AI variant generation, growth signal computation (two-proportion z-test), webhook HMAC verification, API key provisioning, PRD-to-seed extraction, heartbeat daemon jobs. Architecture: ADR-036.
|
|
81
|
+
- **`docs/patterns/kongo-integration.ts`** (37th pattern) — client, from-PRD generation, growth signal, webhook handling, daemon jobs.
|
|
82
|
+
- **`docs/LEARNINGS.md`** — first use of the Operational Learnings system (ADR-035). 3 initial entries from the Kongo build.
|
|
83
|
+
- **GROWTH_STRATEGIST.md Phase 3.5** — Kongo page generation between Content and Distribution phases. Content Engine section with 3-phase activation model, integration classification, weekly feedback loop, Wayne testLayer: 'page'.
|
|
84
|
+
- **HEARTBEAT.md Kongo jobs** — kongo-signal (hourly), kongo-seed (on winner), kongo-webhook (event-driven).
|
|
85
|
+
- **GAUNTLET.md** — Vin (Analytics) statistical review agent in Round 2 First Strike.
|
|
86
|
+
- **CAMPAIGN.md** — hard Gauntlet gate in Step 6, L-scope review scaling in Step 4, Kenobi quick-scan for auth/crypto missions, cross-mission data handoff check, blitz validation clarification.
|
|
87
|
+
- **PRD_GENERATOR.md** — external API doc reading requirement before writing data models.
|
|
88
|
+
- **BUILD_PROTOCOL.md** — stored value rename check, worker env verification checkpoint.
|
|
89
|
+
- **BACKEND_ENGINEER.md** — optimized path fallback rule.
|
|
90
|
+
- **AI_INTELLIGENCE.md** — token limit headroom rule, prohibition placement guidance.
|
|
91
|
+
- **FORGE_KEEPER.md** — Radagast description accuracy check in Step 4.
|
|
92
|
+
- **LESSONS.md** — muster semantic briefing lesson.
|
|
93
|
+
|
|
94
|
+
### Fixed
|
|
95
|
+
- **Growth signal control selection** (Gauntlet CRITICAL) — was using worst variant as baseline, now uses first variant by creation order (order=0) with deterministic tiebreaker.
|
|
96
|
+
- **Z-test confidence computation** (Gauntlet CRITICAL) — was using normalCdf as confidence; now computes proper one-tailed p-value (confidence = 1 - pValue).
|
|
97
|
+
- **Poll timeout** (Gauntlet CRITICAL) — was 120s for 2-10 min generation; now 660s.
|
|
98
|
+
- **Webhook future timestamp bypass** (Gauntlet HIGH) — rejects timestamps >60s in future.
|
|
99
|
+
- **Response body credential leak** (Gauntlet HIGH) — raw response body removed from error messages.
|
|
100
|
+
- **Response body DoS** (Gauntlet HIGH) — 10 MB size limit on HTTP responses.
|
|
101
|
+
- **Pagination infinite loop** (Gauntlet HIGH) — bounded to 20 pages max in batch campaign status.
|
|
102
|
+
- **Authorization header override** (Gauntlet HIGH) — case-insensitive sanitization prevents extraHeaders from overriding auth.
|
|
103
|
+
- **seedPush no-op** (Gauntlet HIGH) — now returns winning slot values instead of discarding.
|
|
104
|
+
- **Frontmatter delimiter guard** (Gauntlet HIGH) — missing closing delimiter treated as no frontmatter.
|
|
105
|
+
- **Z-test NaN guard** (Gauntlet HIGH) — catches views=0, se=NaN via `!(se > 0)`.
|
|
106
|
+
- **ADR-036 stale endpoints** — implementation status table replaces hypothetical endpoint list.
|
|
107
|
+
|
|
108
|
+
### Security
|
|
109
|
+
- Webhook HMAC: future timestamp bypass closed, body size limit (1 MB) added.
|
|
110
|
+
- HTTP client: response body size limit (10 MB), credential leak removed from errors, auth header override prevention, double-reject settled flag.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## [19.5.0] - 2026-03-31
|
|
115
|
+
|
|
116
|
+
### Added
|
|
117
|
+
- **`/blueprint` command** (28th slash command) — fourth entry path for users with pre-written specs. Validates PRD frontmatter, discovers supporting documents, merges project directives into CLAUDE.md, runs conflict scan, hands off to campaign.
|
|
118
|
+
- **Document discovery module** (`wizard/lib/document-discovery.ts`) — Wong scans for PRD, project directives, operations playbook, ADRs, and reference materials following Blueprint Path convention.
|
|
119
|
+
- **CLAUDE.md merge utility** (`wizard/lib/claude-merge.ts`) — safe idempotent append of project-specific directives. Never replaces methodology. Includes unmerge for re-merging with updated directives.
|
|
120
|
+
- **PRD structural validator** (`wizard/lib/prd-validator.ts`) — Troi's compliance checks (section detection, conditional rules based on frontmatter) + Picard's conflict scan (auth+database, payments+auth, workers+deploy, cache+deploy, admin+auth).
|
|
121
|
+
- **Blueprint API endpoint** (`wizard/api/blueprint.ts`) — detect, validate, and merge routes registered with wizard server for auto-detection.
|
|
122
|
+
- **Wizard auto-detection** — detects existing `docs/PRD.md` when transitioning from Step 3 to Step 4, offers "Use my blueprint" or "Start fresh" choice.
|
|
123
|
+
- **PRD template** (`docs/templates/PRD-TEMPLATE.md`) — complete frontmatter field reference with all required and optional fields.
|
|
124
|
+
- **`/prd --import`** flag — import and validate an existing PRD without running the interview.
|
|
125
|
+
- **`language` and `description`** fields added to `PrdFrontmatter` interface.
|
|
126
|
+
- **45 new tests** — document discovery (12), CLAUDE.md merge (11), PRD validator (22).
|
|
127
|
+
|
|
128
|
+
### Fixed
|
|
129
|
+
- **Path traversal** (Gauntlet CRITICAL) — blueprint merge endpoint validates `directivesPath` does not escape project root.
|
|
130
|
+
- **Typo** `executeBluprintMerge` → `executeBlueprintMerge`.
|
|
131
|
+
- **Blueprint API routes registered** with wizard server (were exported but never mounted).
|
|
132
|
+
- **Wizard dead-end flow** — "Use my blueprint" now shows validation results inline instead of `alert()` dead-end.
|
|
133
|
+
- **Blueprint banner colors** — uses theme accent (`#5b5bf7`) instead of mismatched gold (`#e2b714`).
|
|
134
|
+
- **`workers` negation inconsistency** — `scanConflicts` now checks `!== 'none'` consistently with `validatePrdStructure`.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## [19.4.0] - 2026-03-30
|
|
139
|
+
|
|
140
|
+
### Added
|
|
141
|
+
- **Campaign adapter directory** `wizard/lib/financial/campaign/` — new adapter category for campaign CRUD operations
|
|
142
|
+
- **Sandbox campaign adapter** — full lifecycle (create → pending_review → active → paused → resumed → completed) with realistic fake metrics (CTR 1.2-3.8%, CPC $0.45-$2.10, ROAS 1.5-4.2x), idempotency keys, deleted-campaign guards
|
|
143
|
+
- **Google Ads campaign adapter** — Campaign CRUD via Google Ads API v17, GAQL queries, 15k ops/day rate limiting
|
|
144
|
+
- **Meta Marketing campaign adapter** — Campaign CRUD via Graph API v19.0, 200 calls/hr rate limiting
|
|
145
|
+
- **TikTok Marketing campaign adapter** — Campaign CRUD via Marketing API v1.3, 10 calls/sec rate limiting
|
|
146
|
+
- **Campaign adapter factory** `getCampaignAdapter()` — config-driven instantiation with cached sandbox fallback per platform
|
|
147
|
+
- **5 heartbeat handlers wired** — handleCampaignLaunch, handleCampaignPause, handleCampaignResume, handleBudgetChange, handleCreativeUpdate now call real platform adapters
|
|
148
|
+
- **Campaign status polling** — every 5 minutes, polls adapter.getPerformance() for live metrics (spend, CTR, CPC, ROAS), enriches campaign records for Danger Room display
|
|
149
|
+
- **Circuit breaker** — 3 consecutive adapter failures marks platform degraded
|
|
150
|
+
- **48 new tests** — sandbox adapter (30), platform adapters (19), heartbeat handlers (13), campaign polling (7) — minus existing, net +48 (406 → 454)
|
|
151
|
+
|
|
152
|
+
### Changed
|
|
153
|
+
- **Freeze handler** pauses ALL active campaigns across ALL platforms via adapter.pauseCampaign(), transitions to `suspended`
|
|
154
|
+
- **Unfreeze handler** resumes ALL suspended campaigns via adapter.resumeCampaign()
|
|
155
|
+
- **Freeze returns 207** on partial failure (previously always 200)
|
|
156
|
+
- **Token refresh** now calls adapter.refreshToken() instead of logging
|
|
157
|
+
|
|
158
|
+
### Fixed
|
|
159
|
+
- **GAQL injection** (Victory Gauntlet CRITICAL) — sanitize all query parameters in Google campaign adapter
|
|
160
|
+
- **Path traversal** (Victory Gauntlet CRITICAL) — validate campaignId format before file I/O
|
|
161
|
+
- **Sandbox adapter ephemeral** (Victory Gauntlet CRITICAL) — cache instances per platform so campaign state persists between operations
|
|
162
|
+
- **Budget validation** — reject negative, NaN, Infinity, non-integer values
|
|
163
|
+
- **WAL entry** for budget changes (ADR-3 compliance)
|
|
164
|
+
- **Idempotency keys** on Meta and TikTok createCampaign (previously missing)
|
|
165
|
+
- **Compliance guard** on all 3 platform adapters
|
|
166
|
+
- **BUDGET_EXCEEDED** error mapping on all 3 platforms
|
|
167
|
+
|
|
168
|
+
### Removed
|
|
169
|
+
- **5 VG-R1-006 stub handlers** returning 501 — all replaced with full implementations
|
|
170
|
+
- **Stale VG-R1-006 comment** on reconciliation handler (already wired)
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## [19.3.0] - 2026-03-30
|
|
175
|
+
|
|
176
|
+
### Added
|
|
177
|
+
- **Multi-Environment Isolation** — 8-point checklist in DEVOPS_ENGINEER.md: separate users, credentials, storage, Redis auth, worktree model, git hooks, Docker port audit, staging-first flow (field report #241)
|
|
178
|
+
- **4 testing anti-patterns** in TESTING.md — error format migration checklist, source-code string assertions, standalone test app handler, version-agnostic assertions (field report #227)
|
|
179
|
+
- **HTML Sanitizer Preservation** section in BACKEND_ENGINEER.md — DOMPurify client-fallback detection (field report #228)
|
|
180
|
+
- **Schema.sql sync gate** in BUILD_PROTOCOL.md Phase 12 — IF NOT EXISTS post-processing, reference file freshness (field reports #232, #242)
|
|
181
|
+
- **Tenant isolation completeness** gate in CAMPAIGN.md Victory — campaign-level org_id sweep (field report #229)
|
|
182
|
+
- **Dead code discovery** in GAUNTLET.md Round 1 Kusanagi — dead API method scan (field report #233)
|
|
183
|
+
- **Cross-environment contamination** check in GAUNTLET.md Round 1 — shared credentials, Docker bypass (field report #241)
|
|
184
|
+
- **System Protocol identity headers** on 8 utility docs (BUILD_PROTOCOL, BUILD_JOURNAL, CONTEXT_MANAGEMENT, MCP_INTEGRATION, MUSTER, PRD_GENERATOR, SUB_AGENTS, TROUBLESHOOTING)
|
|
185
|
+
- **5 undocumented patterns** now in CLAUDE.md — ad-billing-adapter.ts, browser-review.ts, e2e-test.ts, funding-plan.ts, stablecoin-adapter.ts (35 total)
|
|
186
|
+
|
|
187
|
+
### Changed
|
|
188
|
+
- **Confidence scoring** deduplicated — 3 agent docs (UX, QA, Security) now cross-reference GAUNTLET.md with low-confidence escalation rule intact
|
|
189
|
+
- **RC-STUB** detection expanded — else/default branches flagged as most commonly missed variant (field report #230)
|
|
190
|
+
- **Pattern count** in Docs Reference table corrected from 32 to 35
|
|
191
|
+
|
|
192
|
+
### Fixed
|
|
193
|
+
- **22 field reports triaged** on tmcleod3/voidforge — 14 informational closed, 8 actionable with 13 fixes applied, all 22 closed
|
|
194
|
+
- **Assessment findings** reduced from 18 (v16.1.0) to 0 (v19.3.0) — all Critical and High resolved
|
|
195
|
+
|
|
196
|
+
## [19.2.0] - 2026-03-26
|
|
197
|
+
|
|
198
|
+
### Added
|
|
199
|
+
- **TikTok billing adapter** — spend monitoring, debit projection, MONITORED_ONLY classification via Marketing API
|
|
200
|
+
- **AdPlatform type widened** — `google | meta` → 7-platform union (future-proof)
|
|
201
|
+
- **5 new TikTok billing tests** — capability detection, spend projection, normalized state
|
|
202
|
+
|
|
203
|
+
### Changed
|
|
204
|
+
- **Adapter extensibility proven** — adding a new billing platform: 3 files, same pattern every time
|
|
205
|
+
|
|
206
|
+
## [19.1.0] - 2026-03-26
|
|
207
|
+
|
|
208
|
+
### Added
|
|
209
|
+
- **Adapter factory** (`adapter-factory.ts`) — config-driven adapter selection. Reads `funding-config.json.enc` from vault, returns Circle/Mercury/Google/Meta real adapters or sandbox fallback. Zero hard-coded adapter instantiations.
|
|
210
|
+
- **Auto-funding execution** — approved funding plans from `funding-plans.jsonl` now automatically execute off-ramps via the adapter factory. Plan lifecycle: APPROVED → PENDING_SETTLEMENT → SETTLED.
|
|
211
|
+
- **WAL recovery** — daemon startup reads `pending-ops.jsonl` and resumes incomplete operations.
|
|
212
|
+
- **WAL rotation** — 7-file rotation on `pending-ops.jsonl` (same pattern as audit-log).
|
|
213
|
+
- **66 new financial tests** — funding-policy (22), reconciliation-engine (17), platform-planner (15), sandbox-stablecoin (12). Total: 314 → 380.
|
|
214
|
+
|
|
215
|
+
### Fixed
|
|
216
|
+
- **Billing jobs wired** — Google invoice scan and Meta debit monitor now read real data via adapter factory (were no-ops returning immediately)
|
|
217
|
+
- **`pendingObligationsCents` populated** — runway forecast now includes real invoice/debit obligations (was hardcoded to 0)
|
|
218
|
+
- **CB-4/CB-5 invocable** — billing circuit breakers now called from billing jobs (were dead code)
|
|
219
|
+
- **Mercury wired** — bank-settlement-monitor reads real bank balance via adapter factory (was never populated)
|
|
220
|
+
- **Circle stable IDs** — `listCompletedTransfers` uses Circle payout ID, not random UUID (was breaking reconciliation)
|
|
221
|
+
- **Sandbox unknown transfer** — `getTransferStatus` returns 'failed' for unknown IDs (was returning 'completed' with 0 amount)
|
|
222
|
+
|
|
223
|
+
## [19.0.0] - 2026-03-25
|
|
224
|
+
|
|
225
|
+
### Added
|
|
226
|
+
- **Stablecoin Ad Funding Rail** — complete USDC → Circle off-ramp → Mercury bank → Google/Meta billing pipeline
|
|
227
|
+
- **3 new pattern files** — `stablecoin-adapter.ts` (511 lines), `ad-billing-adapter.ts` (537 lines), `funding-plan.ts` (462 lines). 35 patterns total.
|
|
228
|
+
- **`wizard/lib/financial/` directory** — 14 modules: stablecoin adapters (Circle real + sandbox), Mercury bank adapter, Google/Meta billing adapters, treasury planner, funding policy engine (7 rules), reconciliation engine (3-way matching), auto-funding evaluator, platform planner (invoice settlement + debit protection + portfolio rebalancing), reporting (daily markdown + monthly JSON + funding simulation), registries
|
|
229
|
+
- **Circle adapter** — real `node:https` against Circle Business Account API v1 (balance, off-ramp, transfer lifecycle)
|
|
230
|
+
- **Mercury adapter** — real `node:https` against Mercury API v1 (balance, transactions)
|
|
231
|
+
- **Google Ads billing adapter** — billing setup detection, invoice reads, settlement instructions, capability classification
|
|
232
|
+
- **Meta Ads billing adapter** — funding source classification, debit projection, direct debit tracking
|
|
233
|
+
- **Sandbox stablecoin adapter** — $50K simulated USDC balance, 3-poll transfer lifecycle
|
|
234
|
+
- **8 new heartbeat daemon jobs** — stablecoin balance, off-ramp poll, settlement monitor, Google invoice scan, Meta debit monitor, runway forecast, funding reconciliation, stale plan detector
|
|
235
|
+
- **6 treasury socket handlers** — /treasury/offramp (vault+TOTP), /treasury/freeze, /treasury/unfreeze (vault+TOTP), /treasury/balances, /treasury/funding-status, /treasury/runway
|
|
236
|
+
- **6 circuit breakers** — provider down (3 polls), SLA breach (24h), recon mismatch (2 consecutive), invoice coverage shortfall, debit failure, daily cap ($50K)
|
|
237
|
+
- **Danger Room funding intelligence** — Growth tab (runway + funding risk + next event), Treasury tab (USDC balance + pending + bank + invoices + reconciliation + freeze state), Campaigns tab (billing capability per platform), Heartbeat tab (funding ops)
|
|
238
|
+
- **20 treasury-planner tests** — runway, offramp triggers, plan generation, spend forecasting
|
|
239
|
+
|
|
240
|
+
### Changed
|
|
241
|
+
- **Method docs** updated: TREASURY.md (stablecoin section + 9 commands), HEARTBEAT.md (8 jobs + 5 states), GROWTH_STRATEGIST.md (billing capability verification)
|
|
242
|
+
- **Command docs** updated: cultivation.md (stablecoin option), grow.md (billing checks), treasury.md (crypto commands)
|
|
243
|
+
- **Heartbeat daemon** extended with treasury module — backward compatible (stablecoin gated on config)
|
|
244
|
+
- **HeartbeatState** interface extended with 5 optional treasury fields
|
|
245
|
+
|
|
246
|
+
## [18.2.0] - 2026-03-25
|
|
247
|
+
|
|
248
|
+
### Fixed
|
|
249
|
+
- **A11y heading hierarchy** — `<h3>` → `<h2>` in index.html (3 headings) and deploy.html (2 headings) to maintain proper hierarchy under `<h1>`
|
|
250
|
+
- **Semantic headings in dashboards** — 40 `.panel-title` divs changed to `<h2>` in danger-room.html (29) and war-room.html (11) for screen reader navigation landmarks
|
|
251
|
+
- **Tower CDN fallback** — When xterm.js fails to load from CDN (offline/air-gapped), tower page now shows a helpful message instead of silently breaking
|
|
252
|
+
|
|
253
|
+
### Security (verified clean)
|
|
254
|
+
- All 7 pages return correct security headers (CSP, X-Frame-Options, CORS, Referrer-Policy, Permissions-Policy)
|
|
255
|
+
- CSRF protection verified: POST without X-VoidForge-Request returns 403
|
|
256
|
+
- Directory traversal verified: `../../etc/passwd` returns 404
|
|
257
|
+
- No stack traces or internal paths exposed on any page
|
|
258
|
+
|
|
259
|
+
## [18.1.0] - 2026-03-25
|
|
260
|
+
|
|
261
|
+
### Added
|
|
262
|
+
- **`browser-review.ts` pattern** (32nd pattern) — Review browser launcher with network isolation, console error capture with noise filtering, page state capture (screenshot + a11y + headings), responsive capture (3 viewports), behavioral walkthrough (click all buttons, fill all forms), security inspection (cookies, CORS, CSP)
|
|
263
|
+
- **QA Step 3.6 "Browser Forensic Review"** — console error sweep, error state gallery (force API failures + screenshot), form torture (empty/max/unicode/XSS), network failure simulation
|
|
264
|
+
- **UX Browser-Assisted Walkthrough** — proof-of-life screenshots, behavioral verification (click + verify response), form interaction, keyboard walkthrough, responsive proof-of-life at 3 viewports. Samwise browser a11y with axe-core + color scheme emulation.
|
|
265
|
+
- **Security browser checks expanded** — cookie inspection via `inspectCookies()`, CORS verification via `captureCORSHeaders()`, CSP violation capture via `captureCSPViolations()`, auth redirect verification, mixed content detection
|
|
266
|
+
- **Gauntlet Hawkeye R2.5 Browser Intelligence** — console error capture, proof-of-life screenshots shared with Round 2 agents, cookie/CORS inspection forwarded to Kenobi
|
|
267
|
+
|
|
268
|
+
### Changed
|
|
269
|
+
- Agents now interact with running applications during review passes — console errors, behavioral walkthroughs, and security inspection reduce human eyeball dependency. Screenshots are evidence (not design review — Riker's dissent adopted from the Muster).
|
|
270
|
+
|
|
271
|
+
## [18.0.0] - 2026-03-24
|
|
272
|
+
|
|
273
|
+
### Added
|
|
274
|
+
- **Playwright E2E testing infrastructure** — `@playwright/test` + `@axe-core/playwright` with network isolation, test port 3199, VOIDFORGE_TEST mode, separate CI job with browser caching
|
|
275
|
+
- **21 E2E tests** across 4 test files: lobby (empty state, keyboard nav, modal, a11y), login (form, validation, a11y), setup wizard (load, input, a11y, keyboard), danger room (5-tab navigation, growth empty state, a11y), deploy (load, a11y), tower (UI shell), war room (load)
|
|
276
|
+
- **`e2e-test.ts` pattern file** — Page Object Model, axe-core fixture, auth helper, network mock, WebSocket mock, CWV measurement, flaky test protocol, framework adaptations (Next.js, Express, Django, Rails)
|
|
277
|
+
- **Browser verification in 6 method docs** — QA (Batman browser verification + Huntress flaky monitoring), UX (Samwise browser a11y + Éowyn enchantment verification + Gimli CWV), Gauntlet (Hawkeye R2.5 browser smoke + Troi browser PRD compliance), Build Protocol (Playwright in Phase 1/4/9-11), Security (5 browser-based checks), DevOps (E2E CI architecture)
|
|
278
|
+
- **TESTING.md E2E section** — testing pyramid position, 2-min performance budget, flaky test protocol, sharding guidance
|
|
279
|
+
- **PRD frontmatter `e2e` field** — `yes | no`, defaults by project type
|
|
280
|
+
|
|
281
|
+
### Changed
|
|
282
|
+
- **CI pipeline** expanded from typecheck + unit tests to include a separate Playwright E2E job (parallel, Chromium-only, cached browsers)
|
|
283
|
+
- **VOIDFORGE_TEST mode** — rate limit bypass, TOTP 000000 accept, self-start on PORT env var (for test isolation)
|
|
284
|
+
|
|
285
|
+
## [17.3.0] - 2026-03-24
|
|
286
|
+
|
|
287
|
+
### Added
|
|
288
|
+
- **`--muster` flag** — Full 9-universe agent deployment in 3 waves (Vanguard → Main Force → Adversarial). Available on `/architect`, `/campaign`, `/build`, `/gauntlet`. 30-50 agents for decisions that matter. See `docs/methods/MUSTER.md`.
|
|
289
|
+
- **`MUSTER.md` method doc** — Reusable protocol: beacons, muster roll, the ride, the council. 40+ agents mapped with inclusion criteria.
|
|
290
|
+
- **Flag taxonomy in CLAUDE.md** — 3-tier system: Universal (--resume, --plan, --fast, --dry-run, --status, --blitz), Scope (--security-only, --ux-only, --qa-only), Intensity (--fast < standard < --muster < --infinity)
|
|
291
|
+
|
|
292
|
+
### Changed
|
|
293
|
+
- **`--quick` renamed to `--fast`** on Gauntlet for cross-command consistency (deprecated alias noted)
|
|
294
|
+
- **`--plan` added** to `/architect` and `/grow`
|
|
295
|
+
- **`--status`** standardized as flag (not subcommand) on `/cultivation`, `/dangerroom`, `/thumper`
|
|
296
|
+
- **`--dry-run` added** to `/treasury`, `/grow`, `/git`
|
|
297
|
+
- **`--blitz` added** to `/assemble` and `/build`
|
|
298
|
+
- **`--resume` added** to `/build`
|
|
299
|
+
|
|
300
|
+
## [17.2.0] - 2026-03-24
|
|
301
|
+
|
|
302
|
+
### Added
|
|
303
|
+
- **101 new security tests** for 7 P0 modules: totp (14), tower-session (20), tower-rate-limit (9), user-manager (16), compliance (12), treasury-backup (7), autonomy-controller (23). Total: 193 → 294.
|
|
304
|
+
|
|
305
|
+
### Fixed
|
|
306
|
+
- **TypeScript mock type error** in stripe-adapter.test.ts — `req.end` mock now returns req for ClientRequest compatibility. `tsc --noEmit` clean.
|
|
307
|
+
|
|
308
|
+
## [17.1.0] - 2026-03-24
|
|
309
|
+
|
|
310
|
+
### Added
|
|
311
|
+
- **3 new test files** — stripe-adapter (9 tests: mocked HTTPS, error handling), heartbeat-data (10 tests: file-based campaign/treasury reads), audit-log (7 tests: rotation cascade, no-throw). Total: 167 → 193.
|
|
312
|
+
- **3 ADRs** — ADR-032 (No Stubs Doctrine), ADR-033 (Sandbox Demo Pipeline), ADR-034 (Raw HTTPS for External APIs)
|
|
313
|
+
- **TypeScript CI** — `npm run typecheck` added to validate-branches.yml before tests
|
|
314
|
+
|
|
315
|
+
### Fixed
|
|
316
|
+
- **Timing-safe vault comparison** — HMAC both inputs to fixed-size digests before `timingSafeEqual` (no more password length leak via timing)
|
|
317
|
+
- **Negative spend clamping** — `Math.max(0, ...)` on spend log entries prevents negative amountCents from producing nonsensical ROAS
|
|
318
|
+
- **Inverted date range handling** — sandbox adapters return empty results instead of silently treating end-before-start as 1 day
|
|
319
|
+
- **IPv6 proxy shutdown** — stored at module level and closed in shutdown handler (was a dangling listener)
|
|
320
|
+
- **28 TypeScript errors** in pattern files — type-safe API response casts, removed unused @ts-expect-error, fixed session type in server.ts. `tsc --noEmit` now produces **0 errors**
|
|
321
|
+
|
|
322
|
+
### Changed
|
|
323
|
+
- **Sandbox campaigns Map** moved from module level to instance scope — prevents state leaks between tests and adapter instances
|
|
324
|
+
- `readCampaigns()` and `readTreasurySummary()` exported from heartbeat.ts for direct unit testing
|
|
325
|
+
|
|
326
|
+
## [17.0.0] - 2026-03-24
|
|
327
|
+
|
|
328
|
+
### Added
|
|
329
|
+
- **No Stubs Doctrine** — enforced across CLAUDE.md, BUILD_PROTOCOL, CAMPAIGN, GAUNTLET (RC-STUB), ARCHITECT (ADR scope), ASSESS, GROWTH_STRATEGIST, LESSONS. Never ship stub code again.
|
|
330
|
+
- **Sandbox ad platform adapter** — full implementation with realistic campaign data, spend tracking, performance metrics. Enables Cultivation pipeline demo without real API credentials.
|
|
331
|
+
- **Sandbox bank adapter** — full implementation with realistic transactions and balances for treasury demo.
|
|
332
|
+
- **Stripe revenue adapter** — real Stripe API integration via `node:https` (zero new dependencies). connect, getTransactions, getBalance. Free test mode supported.
|
|
333
|
+
- **Danger Room growth tabs** — 4 new tabs: #growth (KPI cards), #campaigns (campaign table), #treasury (vault + budget status), #heartbeat (daemon + token health). 30-second auto-refresh.
|
|
334
|
+
- **Implementation Completeness Policy** (PRD §8.1) — formal policy codifying the No Stubs Doctrine
|
|
335
|
+
- **74 new tests** — financial-vault (13), reconciliation (11), campaign-state-machine (33), sandbox-adapter (17). Total: 93 → 167.
|
|
336
|
+
|
|
337
|
+
### Changed
|
|
338
|
+
- **Heartbeat daemon wired to real data** — readCampaigns() reads treasury/campaigns/*.json, readTreasurySummary() reads spend/revenue JSONL logs, all 8 scheduled jobs perform real reads and meaningful logging
|
|
339
|
+
- **Heartbeat handlers return 501** (honest "not yet wired") instead of 200 (fake success) for campaign pause/resume/launch/budget — No Stubs Doctrine enforcement
|
|
340
|
+
- **Adapter registry** tracks `implemented: true/false` per platform and `REVENUE_ADAPTERS` registry added
|
|
341
|
+
- **PRD counts corrected** — 260+ agents (was 185+), 30 patterns (was 10), 17 leads (was 15), 9 universes (was 8)
|
|
342
|
+
- **PRD roadmap collapsed** — shipped versions (v4-v16.1) summarized, v17.0 + v17.1+ plan added
|
|
343
|
+
|
|
344
|
+
### Fixed
|
|
345
|
+
- **X-Forwarded-For parsing** — use leftmost entry (real client IP) not rightmost (proxy 127.0.0.1). Rate limiting and session IP binding were completely broken in remote mode.
|
|
346
|
+
- **Local mode loopback binding** — bind to `127.0.0.1` + `::1` proxy instead of `::` (IPv6 wildcard). Prevents LAN exposure of vault data. (PRD §9.20.1)
|
|
347
|
+
- **Vault unlock rate limiting** — use getClientIp() instead of req.socket.remoteAddress. All users shared one rate limit bucket behind proxy.
|
|
348
|
+
- **Freeze endpoint** — wired to daemon Unix socket with auth token instead of returning fake `{ ok: true }`. Requires deployer RBAC.
|
|
349
|
+
- **AWS credential validation** — calls STS.GetCallerIdentity (SDK already a dependency) instead of format-only check
|
|
350
|
+
- **TOCTOU race in auth setup** — removed outer hasUsers() check, rely on createUser()'s serialized atomic check
|
|
351
|
+
- **Audit log 7-rotation** — retains .1 through .7 instead of single .1 that lost financial audit trail
|
|
352
|
+
- **auth.json backup-before-write** — prevents remote mode lockout on corruption
|
|
353
|
+
- **/api/server/status** — registered via addRoute() for auth middleware coverage in remote mode
|
|
354
|
+
- **Treasury backup size limit** — 100MB per file to prevent unbounded memory allocation
|
|
355
|
+
- **Missing await on buildStateSnapshot()** — heartbeat.json was writing `{}` instead of real state
|
|
356
|
+
- **Stripe error handling** — non-JSON error responses (proxy 502) no longer cause SyntaxError
|
|
357
|
+
- **Sandbox adapter type alignment** — return types match pattern interfaces (externalId, spend, platform, scopes)
|
|
358
|
+
|
|
359
|
+
### Removed
|
|
360
|
+
- **8 stub adapter files deleted** — meta.ts, google.ts, tiktok.ts, linkedin.ts, twitter.ts, reddit.ts, mercury.ts, brex.ts (610 lines, 77 `throw new Error('Implement...')` calls). Per No Stubs Doctrine: real adapters ship when developer accounts are available (v17.1+).
|
|
361
|
+
- **Dead getClientIp** from tower-rate-limit.ts — single source of truth in tower-auth.ts
|
|
362
|
+
|
|
363
|
+
### Security
|
|
364
|
+
- Freeze endpoint requires `deployer` role minimum (was accessible to any authenticated user)
|
|
365
|
+
- 3 P0 fixes verified by Kenobi: XFF parsing, loopback binding, vault rate limit IP
|
|
366
|
+
|
|
367
|
+
## [16.1.0] - 2026-03-24
|
|
368
|
+
|
|
369
|
+
### Added
|
|
370
|
+
- **Database migration safety** — `database-migration.ts` pattern (backward-compat, batched ops, rollback, zero-downtime validation) + Migration Safety Gate checklist in BUILD_PROTOCOL.md Phase 2
|
|
371
|
+
- **Data pipeline pattern** — `data-pipeline.ts` (typed stages, checkpoint/resume, quality checks, idempotent processing)
|
|
372
|
+
- **Backtest engine pattern** — `backtest-engine.ts` (walk-forward validation, no-lookahead enforcement, Sharpe/drawdown/profit factor, slippage/commission modeling)
|
|
373
|
+
- **Execution safety pattern** — `execution-safety.ts` (order validation, position limits, exchange precision from API, paper/live toggle, circuit breaker, reconciliation, audit trail)
|
|
374
|
+
- **Branch CI validation** — `.github/workflows/validate-branches.yml` validates all 3 branches on push (command files, method docs, pattern files, VERSION.md)
|
|
375
|
+
- **PRD frontmatter** — `type: "quantitative"`, `data_source`, `backtest`, `live_execution`, `ai:` fields
|
|
376
|
+
|
|
377
|
+
### Changed
|
|
378
|
+
- **Dependency health check** added to `/assess` (Crusher) and `/campaign` Step 0 (Kira): auto-check if project >30 days stale
|
|
379
|
+
- **Load testing guidance** added to DEVOPS_ENGINEER.md: when/what/tools/diagnostics
|
|
380
|
+
- Pattern count: 26 → 30 across CLAUDE.md, README.md, HOLOCRON.md, patterns/README.md
|
|
381
|
+
- **Personality section** added to CLAUDE.md: never agree just to agree, challenge when appropriate
|
|
382
|
+
|
|
383
|
+
## [16.0.0] - 2026-03-24
|
|
384
|
+
|
|
385
|
+
### Added
|
|
386
|
+
- **Foundation universe (Isaac Asimov)** — 9th universe, 13 named agents for the AI Intelligence domain
|
|
387
|
+
- **Hari Seldon** — 18th lead agent, AI Intelligence Architect. Owns: model selection, prompt engineering, tool-use schemas, orchestration patterns, failure modes, token economics, evaluation, AI safety, model versioning, LLM observability
|
|
388
|
+
- **`/ai` command** — Seldon's AI Intelligence Audit: 5-phase protocol (Surface Map → Parallel Audits → Sequential Audits → Remediate → Re-Verify)
|
|
389
|
+
- **`AI_INTELLIGENCE.md`** — Full method doc with 12 sub-agents, 10 operating rules, 5 checklists, 8 anti-patterns
|
|
390
|
+
- **6 AI pattern files** — `ai-orchestrator.ts` (agent loops, circuit breaker), `ai-classifier.ts` (confidence thresholds, fallback chains), `ai-router.ts` (intent routing), `prompt-template.ts` (versioned prompts), `ai-eval.ts` (golden datasets, regression detection), `ai-tool-schema.ts` (typed tools, provider adapters)
|
|
391
|
+
- **7th Gauntlet Stone: Wisdom** — AI Intelligence domain in comprehensive review
|
|
392
|
+
- **PRD frontmatter** — `ai: yes`, `ai_provider`, `ai_models`, `ai_features` fields
|
|
393
|
+
|
|
394
|
+
### Changed
|
|
395
|
+
- **8 existing commands** integrated with Seldon's AI layer: `/build` (AI Gate at Phase 4), `/gauntlet` (7th Stone + Crossfire + Council), `/assemble` (Phase 6.5), `/campaign` (5th requirement type), `/security` (Bliss handoff), `/qa` (AI Behavior Testing), `/architect` (Seldon Review), `/prd` (AI Architecture section)
|
|
396
|
+
- Agent counts: 247 → 260+, 8 → 9 universes, 25 → 26 commands, 20 → 26 patterns, 17 → 18 leads
|
|
397
|
+
|
|
398
|
+
## [15.3.0] - 2026-03-23
|
|
399
|
+
|
|
400
|
+
### Changed
|
|
401
|
+
- **README.md** — 247 agents / 8 universes / 25 commands / 20 patterns / 17 leads
|
|
402
|
+
- **HOLOCRON.md** — Same count updates + 8 missing command descriptions + Cosmere universe
|
|
403
|
+
- **ARCHITECTURE.md** — Updated to v15.2.1: 5 subsystems, tower-auth split, vault security, LAN mode
|
|
404
|
+
- **FAILURE_MODES.md** — 11 new failure modes (vault brute-force, deploy, Danger Room, heartbeat)
|
|
405
|
+
- **SCALING.md** — 7 new scaling improvements (batch writes, LAN mode, tiered polling, test suite)
|
|
406
|
+
- **TECH_DEBT.md** — Full rewrite: 17 resolved items, 11 current items
|
|
407
|
+
- **ROADMAP.md** — Header fixed from v12.6.4 to v15.2.1
|
|
408
|
+
- **COMPATIBILITY.md** — Engine range corrected, vitest added
|
|
409
|
+
- **patterns/README.md** — 7 → 20 patterns indexed
|
|
410
|
+
|
|
411
|
+
## [15.2.1] - 2026-03-23
|
|
412
|
+
|
|
413
|
+
### Changed
|
|
414
|
+
- **GAUNTLET.md** — Added Dimension 4 (output verification) to Sibling Verification Protocol: verify fixes against real output data to catch false positives in keyword filters (#148)
|
|
415
|
+
- **CAMPAIGN.md** — Victory condition now includes deploy entrypoint verification: confirm Docker CMD / PM2 ecosystem runs the built architecture, not a legacy file (#147)
|
|
416
|
+
- **BUILD_PROTOCOL.md** — Phase 12 Docker smoke test: mandatory check that container entrypoint runs new code before go-live (#147)
|
|
417
|
+
- **DEVOPS_ENGINEER.md** — First deployment checklist: process manager, env vars, log directory, health endpoint, entrypoint verification (#147)
|
|
418
|
+
|
|
419
|
+
### Added
|
|
420
|
+
- **LESSONS.md** — 3 new lessons: read-before-export (verify source exports before re-exporting), read-before-test (read implementation before writing expectations), numeric context checks (cite actual % from /context)
|
|
421
|
+
|
|
422
|
+
## [15.2.0] - 2026-03-23
|
|
423
|
+
|
|
424
|
+
### Changed
|
|
425
|
+
- **tower-auth.ts** split into 3 modules: tower-auth (424 lines — auth core), tower-session (149 lines — sessions/cookies), tower-rate-limit (87 lines — rate limiting). All exports re-exported for backward compatibility.
|
|
426
|
+
- **aws-vps.ts** — SSH security group restricted to deployer's IP post-provisioning (detects IP via checkip.amazonaws.com, revokes 0.0.0.0/0 rule)
|
|
427
|
+
- **ProvisionEvent.status** type now includes `'warning'` for non-fatal alerts
|
|
428
|
+
|
|
429
|
+
## [15.1.0] - 2026-03-23
|
|
430
|
+
|
|
431
|
+
### Added
|
|
432
|
+
- **vitest** test framework with `--pool forks` isolation — 91 tests across 8 files (vault, body-parser, tower-auth, network, frontmatter, instance-sizing, safety-tiers, http-helpers)
|
|
433
|
+
- **Vault unlock rate limiting** — 5 attempts/min, lockout after 10 consecutive failures (separate from login rate limits)
|
|
434
|
+
- **Vault auto-lock** — 15-minute idle timeout clears session password
|
|
435
|
+
- **6 proxy modules** — financial-core, daemon-core, oauth-core, revenue-types, ad-platform-core, rate-limiter-core (breaks direct wizard/ → docs/patterns/ imports)
|
|
436
|
+
- **provisioner-registry.ts** — single source of truth for provisioners, credential scoping, GitHub-linked targets
|
|
437
|
+
|
|
438
|
+
### Changed
|
|
439
|
+
- **Terminal HMAC** — per-boot random 32-byte key replaces vault password as HMAC keying material
|
|
440
|
+
- **sendJson** consolidated from 10 duplicate definitions to 1 shared module in http-helpers.ts (with noCache support)
|
|
441
|
+
- **Health poller** — batch writes (N individual → 1 registry update per poll cycle)
|
|
442
|
+
- **TOTP clock skew** — prunes usedCodes when drift exceeds ±3 steps (prevents lockout after clock jump)
|
|
443
|
+
|
|
444
|
+
### Fixed
|
|
445
|
+
- **47 Infinity Gauntlet fixes** — provision lock deadlock, vault cache mutation, body-parser non-object bypass, terminal resize NaN crash, Docker healthcheck exec form, CI SSH key leak, RDS hardcoded 'admin', symlink security no-op, autonomy-controller crash safety, secret stripping keyword gaps, and 36 more across 21 files
|
|
446
|
+
- **Accessibility** — skip-nav + noscript on all 7 pages, aria-labelledby on deploy step 1
|
|
447
|
+
|
|
448
|
+
### Security
|
|
449
|
+
- Secret stripping expanded with allowlist (SAFE_OUTPUT_KEYS) — comprehensive keyword coverage without false positives
|
|
450
|
+
- Error message token regex lowered from 40+ to 16+ characters
|
|
451
|
+
|
|
452
|
+
---
|
|
453
|
+
|
|
454
|
+
## [15.0.0] - 2026-03-22
|
|
455
|
+
|
|
456
|
+
### Added
|
|
457
|
+
- **`/deploy` command** — Kusanagi's deploy agent with 6-step protocol: target detection (VPS/Vercel/Railway/Docker/Static/Cloudflare), pre-deploy checks (Levi), deploy execution, health check (L), rollback (Valkyrie), deploy-state.md logging
|
|
458
|
+
- **Campaign Step 7** — optional auto-deploy after Victory Gauntlet passes. Blitz mode auto-deploys. Deploy failure doesn't revoke Victory.
|
|
459
|
+
- **`/git --deploy` flag** — one-command commit + push + deploy. Coulson commits, Kusanagi deploys.
|
|
460
|
+
- **Deploy drift detector** — `GET /api/danger-room/drift` compares deployed commit against `git rev-parse HEAD`. Catches "pushed but not deployed" scenarios.
|
|
461
|
+
- **Deploy Automation** section in DEVOPS_ENGINEER.md — target detection, deploy state, campaign integration, rollback protocol
|
|
462
|
+
|
|
463
|
+
### Changed
|
|
464
|
+
- **Deploy panel** reads from `deploy-state.md` (v15.0 format) in addition to `deploy-log.json`
|
|
465
|
+
|
|
466
|
+
---
|
|
467
|
+
|
|
468
|
+
## [14.0.0] - 2026-03-22
|
|
469
|
+
|
|
470
|
+
### Added
|
|
471
|
+
- **Day-0 Cultivation onboarding** — 7-step guided install: treasury → revenue → ad platforms → budget → creatives → tracking → launch. No longer requires a deployed product.
|
|
472
|
+
- **`/grow --setup`** — standalone ad platform onboarding: guided credential collection for Google Ads, Meta, LinkedIn, Twitter, Reddit with per-platform best-fit guidance
|
|
473
|
+
- **Phase 4.5 Launch Preparation** — budget allocation (product-type-aware splits), creative foundation (6 variants via /imagine), tracking & attribution (pixel snippets + conversion events)
|
|
474
|
+
- **Launch activation flow** — summary presentation, user confirmation, platform submission, Danger Room Growth tab wiring
|
|
475
|
+
- **Pre-Revenue Setup** in TREASURY.md — budget tracking before first dollar, auto-detection of payment processors, absolute spend limits for pre-revenue projects
|
|
476
|
+
|
|
477
|
+
### Changed
|
|
478
|
+
- **Cultivation install no longer requires deployment** — "product should be deployed" prerequisite removed. Day-0 setup works pre-launch, launch day, and post-launch.
|
|
479
|
+
- **Growth Strategist operating rule 1** updated — product deployment required for Phase 1+ (reconnaissance), not for installation
|
|
480
|
+
|
|
481
|
+
---
|
|
482
|
+
|
|
483
|
+
## [13.1.0] - 2026-03-22
|
|
484
|
+
|
|
485
|
+
### Changed
|
|
486
|
+
- **Circular import broken** — `getServerPort`/`getServerHost` extracted to `wizard/lib/server-config.ts`, eliminating the `server.ts ↔ dashboard-ws.ts` cycle
|
|
487
|
+
- **CORS/CSP for LAN mode** — private IP origins accepted via `isPrivateOrigin()` in CORS; `ws://*:PORT` added to CSP `connect-src` for WebSocket
|
|
488
|
+
- **Context gauge always visible** — compact percentage indicator in header bar, color-coded, stays visible when scrolling past Tier 1
|
|
489
|
+
- **Private IP consolidation** — `health-poller.ts` now imports `isPrivateIp` from shared `network.ts` instead of inline checks
|
|
490
|
+
|
|
491
|
+
---
|
|
492
|
+
|
|
493
|
+
## [13.0.0] - 2026-03-22
|
|
494
|
+
|
|
495
|
+
### Added
|
|
496
|
+
- **LAN mode (`--lan`)** — Private network access for ZeroTier, Tailscale, WireGuard. Binds `0.0.0.0` with optional password, no TOTP/Caddy. Private IP validation covers RFC 1918, CGNAT (Tailscale), IPv6 ULA (ZeroTier).
|
|
497
|
+
- **Status Line bridge** — `scripts/danger-room-feed.sh` connects Claude Code's Status Line API to the Danger Room. Per-session files with atomic writes, 60-second staleness threshold. Powers context gauge + cost display.
|
|
498
|
+
- **Agent activity ticker** — Methodology-driven JSONL logging (not hooks). Hybrid `fs.watch` + 3-second poll fallback. Live agent dispatch events broadcast via WebSocket.
|
|
499
|
+
- **Tests panel** — Structured `test-results.json` data contract with defined schema. New `/api/danger-room/tests` endpoint.
|
|
500
|
+
- **Git status panel** — Branch, uncommitted count, ahead/behind, last commit via `execFile` with 5-second timeout. New `/api/danger-room/git-status` endpoint.
|
|
501
|
+
- **Dashboard config** — `danger-room.config.json` for project-specific panel settings (health endpoint, PM2 process, enabled panels).
|
|
502
|
+
- **Shared `wizard/lib/network.ts`** — `isPrivateIp()` + `isPrivateOrigin()` with numeric octet parsing. Consolidates duplicate implementations.
|
|
503
|
+
|
|
504
|
+
### Changed
|
|
505
|
+
- **3-tier information architecture** — Ops tab restructured: Live Feed (context gauge + agent ticker) → Campaign State (timeline + findings + pipeline) → System Status (version + deploy + tests). Visual hierarchy with tier labels and distinct styling.
|
|
506
|
+
- **Tiered polling** — Fast 5s (context), campaign 10s (timeline/findings), slow 60s (version/deploy). Replaces uniform 10-second poll. ~60% reduction in unnecessary network requests.
|
|
507
|
+
- **Dashboard consolidation** — 800+ lines of duplicated code extracted into 3 shared modules (`http-helpers.ts`, `dashboard-data.ts`, `dashboard-ws.ts`). danger-room.ts: 306→113 lines. war-room.ts: 248→67 lines.
|
|
508
|
+
- **War Room wired** — Routes now actually register (was dead code — never imported by server.ts).
|
|
509
|
+
- **Empty states** — Every panel shows actionable guidance when data is missing.
|
|
510
|
+
|
|
511
|
+
### Fixed
|
|
512
|
+
- **Campaign regex** — `parseCampaignState()` rewritten for actual 5-column format. Handles bold markdown status (`**DONE**`). Normalizes vocabulary. Extracts `blockedBy` + `debrief` fields.
|
|
513
|
+
- **Build state artifacts** — `parseBuildState()` explicit trim removes leading `| ` capture artifacts.
|
|
514
|
+
- **Findings counter** — `parseFindings()` reads `build-state.md` "Known Issues" first (curated, open issues only). Falls back to regex scan with defensive logging.
|
|
515
|
+
|
|
516
|
+
---
|
|
517
|
+
|
|
518
|
+
## [12.6.4] - 2026-03-22
|
|
519
|
+
|
|
520
|
+
### Added
|
|
521
|
+
- **Encryption Egress Audit** in security auditor — grep all usages of plaintext variable after encrypting, not just the storage path (DB, Redis, SSE, logs, API responses)
|
|
522
|
+
- **GROUP BY Compatibility Check** in security auditor — random-IV encryption breaks aggregation; add deterministic HMAC hash column
|
|
523
|
+
- **v14.0 roadmap** — The Day-0 Engine: Cultivation onboarding redesign with 7-step guided growth setup
|
|
524
|
+
|
|
525
|
+
### Fixed
|
|
526
|
+
- Field reports #130, #131 triaged — 2 security methodology fixes applied, 1 feature request roadmapped
|
|
527
|
+
|
|
528
|
+
---
|
|
529
|
+
|
|
530
|
+
## [12.6.3] - 2026-03-22
|
|
531
|
+
|
|
532
|
+
### Changed
|
|
533
|
+
- Campaign planning now **requires acceptance criteria** on every mission before the Prophecy Board is finalized — applies to `--plan` mode too, not just build
|
|
534
|
+
- Kira's Step 0 checks if `campaign-state.md` is **gitignored** and warns immediately — prevents silent data loss on `/clear`
|
|
535
|
+
- Kira's Step 0 includes a **pre-flight checklist**: VERSION.md, package manifest, campaign-state tracking, clean working tree
|
|
536
|
+
|
|
537
|
+
### Added
|
|
538
|
+
- `/architect --adr-only` lightweight mode — write ADRs without full bridge crew deployment, for deferred architecture decisions
|
|
539
|
+
|
|
540
|
+
### Fixed
|
|
541
|
+
- Field report #129 triaged — 4 fixes applied, 1 wontfix (--plan --draft solved by git diff)
|
|
542
|
+
|
|
543
|
+
---
|
|
544
|
+
|
|
545
|
+
## [12.6.2] - 2026-03-22
|
|
546
|
+
|
|
547
|
+
### Added
|
|
548
|
+
- **v13.0 roadmap** — The Private Network: `--lan` mode for ZeroTier/Tailscale/WireGuard access, context gauge wiring via Status Line bridge, 3 Danger Room bug fixes, 3 unwired feature plans, 4 new dashboard panel proposals from real-world usage (field reports #127, #128)
|
|
549
|
+
|
|
550
|
+
---
|
|
551
|
+
|
|
552
|
+
## [12.6.1] - 2026-03-22
|
|
553
|
+
|
|
554
|
+
### Changed
|
|
555
|
+
- Campaign Gauntlet checkpoints now extract **Learned Rules** — recurring root causes become pre-flight checks for subsequent missions, with escalation triggers (hardening sprints for >5 HIGH findings, auto-add missions for missing capabilities)
|
|
556
|
+
- Build Protocol Phase 0 validates data-dependent business cases against **historical data** before building infrastructure — no more blocking campaigns on live monitoring
|
|
557
|
+
- Campaign missions for data-dependent systems must re-run **regression test suites** when modifying strategy logic
|
|
558
|
+
|
|
559
|
+
### Added
|
|
560
|
+
- Iterative PRD evolution workflow documented for `/architect --plan` — multi-commit PRD refinement as a recognized pattern
|
|
561
|
+
- PRD Evolution Log section in PRD template for tracking architectural reasoning across iterations
|
|
562
|
+
|
|
563
|
+
### Fixed
|
|
564
|
+
- Field report #126 triaged — 3 root causes accepted, 5 file changes applied, issue closed
|
|
565
|
+
|
|
566
|
+
---
|
|
567
|
+
|
|
568
|
+
## [12.6.0] - 2026-03-22
|
|
569
|
+
|
|
570
|
+
### Added
|
|
571
|
+
- **`/assess` command** — Pre-build codebase assessment: chains `/architect` → `/gauntlet --assess` → PRD gap analysis into a unified "State of the Codebase" report. For evaluating existing codebases before a rebuild or VoidForge onboarding.
|
|
572
|
+
- **`--assess` flag for `/gauntlet`** — Assessment-only mode: Rounds 1-2 (Discovery + First Strike), no fix batches. Produces report grouped by root cause. Designed for pre-build evaluation where full 10 rounds would be redundant.
|
|
573
|
+
- **Stub Detection** in QA_ENGINEER.md — Oracle scans for methods that return True/success without side effects (no network calls, no state writes). The most dangerous form of incomplete code. High severity; Critical for financial systems.
|
|
574
|
+
- **Migration Completeness Check** in BUILD_PROTOCOL.md Phase 1 — Before scaffolding, scan for duplicate implementations across directories. Abandoned migrations are flagged as blockers.
|
|
575
|
+
- **Auth-from-Day-One** in BUILD_PROTOCOL.md Phase 1 — HTTP endpoints require API key middleware returning 401 from birth. Full auth stays Phase 3, but the door is locked from day one.
|
|
576
|
+
- **Process Manager Discipline** in DEVOPS_ENGINEER.md — Never kill ports owned by PM2/systemd/Docker directly; always reload through the process manager.
|
|
577
|
+
- **Frontmatter Validation** in CAMPAIGN.md Step 1 — Before Dax analyzes the PRD, validate YAML frontmatter exists. If missing, Sisko runs a 5-question interview to add it.
|
|
578
|
+
- **VM execution test** in GAUNTLET.md build-output verification — Compiled JSX/HTML must be tested in the target runtime, not just built successfully.
|
|
579
|
+
|
|
580
|
+
### Fixed
|
|
581
|
+
- Field reports #123, #124, #125 triaged — 8 methodology improvements applied, all 3 issues closed
|
|
582
|
+
|
|
583
|
+
---
|
|
584
|
+
|
|
585
|
+
## [12.4.2] - 2026-03-19
|
|
586
|
+
|
|
587
|
+
### Changed
|
|
588
|
+
- Full-tier commands auto-pull `wizard/` from upstream when missing — scaffold/core users get "Pull it? [Y/n]" instead of a dead end
|
|
589
|
+
- CLAUDE.md slash command table has Tier column (All/Full) for all 23 commands
|
|
590
|
+
- Gauntlet Troi verifies CLAUDE.md claims (commands, agents, docs exist at stated paths)
|
|
591
|
+
- Gauntlet Kenobi checks pattern auth completeness (flags presence-only `!!header` checks)
|
|
592
|
+
- Campaign Victory Gauntlet has cross-campaign integration gate
|
|
593
|
+
- Release Manager has CLAUDE.md command table integrity check
|
|
594
|
+
|
|
595
|
+
### Fixed
|
|
596
|
+
- Field reports #108, #109, #110 triaged — 12 methodology improvements applied
|
|
597
|
+
|
|
598
|
+
---
|
|
599
|
+
|
|
600
|
+
## [12.4.1] - 2026-03-18
|
|
601
|
+
|
|
602
|
+
### Added
|
|
603
|
+
- **`/dangerroom` command** — starts wizard server and opens the Danger Room dashboard. Documents all 6 tabs, global elements, prerequisites. Was listed in CLAUDE.md but the command file never existed.
|
|
604
|
+
- **`WORKSHOP.md`** — 45-minute beginner workshop for building web apps with Claude Code + VoidForge scaffold
|
|
605
|
+
- **GitHub community health files** — LICENSE (MIT), CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md, 3 issue templates, PR template, CODEOWNERS, FUNDING.yml
|
|
606
|
+
|
|
607
|
+
### Fixed
|
|
608
|
+
- GAUNTLET.md: env var audit after smoke test (NEXT_PUBLIC blindness — field report #104)
|
|
609
|
+
- RELEASE_MANAGER.md: post-push deploy check (build-not-deployed gap — field report #104)
|
|
610
|
+
- BUILD_PROTOCOL.md: build-time env var verification in Phase 13 (field report #104)
|
|
611
|
+
- CAMPAIGN.md: deploy credential check in Step 0 (field report #103)
|
|
612
|
+
- DEVOPS_ENGINEER.md: rsync exclusion mandate + credential pre-flight (field report #103)
|
|
613
|
+
- TROUBLESHOOTING.md: destructive DB operation recovery checklist (field report #103)
|
|
614
|
+
|
|
615
|
+
---
|
|
616
|
+
|
|
617
|
+
## [12.4.0] - 2026-03-18
|
|
618
|
+
|
|
619
|
+
### Added — The Autonomy (Full Autonomous Operation)
|
|
620
|
+
- **`wizard/lib/route-optimizer.ts`** — Paris's ROI-weighted campaign sequencing: scores proposals on ROI (40%), urgency (35%), risk-inverted (25%). `pickBestCampaign()` for single-proposal selection.
|
|
621
|
+
- **`wizard/lib/autonomy-controller.ts`** — Tier 2 supervised autonomy (24h delay queue, veto mechanism) + Tier 3 full autonomy (immediate execution). 6 circuit breakers: kill switch, strategic drift (>30%), consecutive Criticals (3+), spend increase streak (7 days), ROAS floor (<1.0x for 7 days), 30-day mandatory strategic sync. Deploy freeze windows. 10-campaign human checkpoint for Tier 3.
|
|
622
|
+
- All 3 branches synced to v12.4 shared methodology
|
|
623
|
+
|
|
624
|
+
### Fixed
|
|
625
|
+
- DC-001: Added DEEP_CURRENT.md to CLAUDE.md docs reference table
|
|
626
|
+
- DC-003: Added /api/danger-room/current endpoint for Deep Current tab data
|
|
627
|
+
- DC-007: Improved SSRF protection (IPv6-mapped addresses, cloud metadata hostnames)
|
|
628
|
+
|
|
629
|
+
## [12.2.0] - 2026-03-18
|
|
630
|
+
|
|
631
|
+
### Added — The Bridge (Cross-Pipeline Correlation)
|
|
632
|
+
- **`wizard/lib/correlation-engine.ts`** — Chakotay's correlation engine: product change → metric outcome tracking. Before/after comparison with configurable lag windows (1/7/28 days). Confidence levels (high >30%, medium >15%, low >5%). Prediction recording, evaluation, and accuracy averaging.
|
|
633
|
+
|
|
634
|
+
## [12.1.0] - 2026-03-18
|
|
635
|
+
|
|
636
|
+
### Added — The Analyst (Gap Analysis + Campaign Proposals)
|
|
637
|
+
- **`wizard/lib/gap-analysis.ts`** — Seven's 5-dimension scoring: feature completeness (PRD vs codebase diff), quality (tests, gauntlet history, lessons), revenue potential (treasury, payments, pricing). Feeds situation model.
|
|
638
|
+
- **`wizard/lib/campaign-proposer.ts`** — Tuvok's campaign proposal generator: per-dimension templates (feature sprint, quality hardening, performance optimization, growth foundation, revenue infrastructure). Quantified predictions, risk assessments, autonomy tier recommendations.
|
|
639
|
+
- **Danger Room Deep Current tab** — 7th tab with 4 panels: situation model (5-dimension KPI cards), active proposal (Tuvok's recommendation with launch/dismiss), prediction history, autonomy status.
|
|
640
|
+
|
|
641
|
+
---
|
|
642
|
+
|
|
643
|
+
## [12.0.0] - 2026-03-18
|
|
644
|
+
|
|
645
|
+
### Added — The Scanner (Deep Current: Autonomous Campaign Intelligence)
|
|
646
|
+
- **`/current` command** — Tuvok's Deep Current: scan → analyze → propose → gate → execute → learn. Cold start intake for greenfield projects. Status display with 5-dimension radar.
|
|
647
|
+
- **`docs/methods/DEEP_CURRENT.md`** — Tuvok's method doc: the Loop (SENSE→ANALYZE→PROPOSE→GATE→EXECUTE→LEARN), 3-tier autonomy, cold start sequence, situation model schema, security constraints, circuit breakers
|
|
648
|
+
- **`wizard/lib/site-scanner.ts`** — Torres's HTTP-based site scanner: performance (TTFB, compression, cache), SEO (meta tags, sitemap, JSON-LD), security (HTTPS, HSTS, CSP), growth (analytics detection, email capture, social meta). SSRF protection + redirect depth limit.
|
|
649
|
+
- **`wizard/lib/deep-current.ts`** — Situation model: 5-dimension scoring (feature, quality, performance, growth, revenue), project state classifier (GREENFIELD → OPERATING), cold start intake with per-state recommendations, persistent JSON state
|
|
650
|
+
- **5 Voyager agent roles** — Tuvok (strategic intelligence), Seven (optimization), Chakotay (cross-pipeline bridge), Paris (route planning), Torres (site scanning). Updated in naming registry.
|
|
651
|
+
|
|
652
|
+
### Fixed
|
|
653
|
+
- SSRF protection in site scanner (private IP blocking)
|
|
654
|
+
- Redirect depth limit (max 5, was unbounded)
|
|
655
|
+
- IDEA+PRD → IDEA_PRD naming consistency
|
|
656
|
+
|
|
657
|
+
---
|
|
658
|
+
|
|
659
|
+
## [11.3.0] - 2026-03-18
|
|
660
|
+
|
|
661
|
+
### Added — The Heartbeat (Portfolio, Anomaly Detection, Service Management)
|
|
662
|
+
- **`/portfolio` command** — cross-project financial dashboard with --report (tax records), --optimize (Kelsier's reallocation), project registration
|
|
663
|
+
- **Mercury + Brex bank adapters** — read-only OAuth 2.0 adapters for account balance and transaction polling
|
|
664
|
+
- **Anomaly detection engine** — 4 types (spend spikes, traffic drops, conversion changes, ROAS drops), 3 severity tiers (warning/alert/critical), configurable thresholds, self-contained messages
|
|
665
|
+
- **Encrypted daily backup** — AES-256-GCM with scrypt key derivation, 30-day retention, automatic pruning, export function for /treasury --export
|
|
666
|
+
- **Service install** — macOS LaunchAgent plists + Linux systemd user units for both heartbeat daemon and wizard server. KeepAlive, RunAtLoad, Background process type.
|
|
667
|
+
- **Desktop notifications** — macOS (osascript) + Linux (notify-send), agent-voiced messages (Wax, Breeze, Dockson), non-blocking with try/catch
|
|
668
|
+
- **Danger Room Heartbeat tab** — Daemon status (state/PID/uptime/last beat), token health per platform, scheduled jobs, anomaly alerts (aria-live="assertive")
|
|
669
|
+
- All 5 Danger Room tabs now complete: Ops → Growth → Campaigns → Treasury → Heartbeat
|
|
670
|
+
|
|
671
|
+
---
|
|
672
|
+
|
|
673
|
+
## [11.2.0] - 2026-03-18
|
|
674
|
+
|
|
675
|
+
### Added — The Distribution (Ad Platform Adapters + Spend Execution)
|
|
676
|
+
- **6 ad platform adapters** — Meta Marketing, Google Ads, TikTok Marketing, LinkedIn Marketing, Twitter/X Ads, Reddit Ads. Each with Setup (interactive OAuth) + Adapter (daemon runtime). All use OutboundRateLimiter.
|
|
677
|
+
- **`docs/patterns/outbound-rate-limiter.ts`** — Token bucket with per-platform configs, safety margin reservation, daily quota tracking, executeWithRetry with exponential backoff
|
|
678
|
+
- **Campaign state machine** — 10 states with validated transitions, agent-allowed subset (active→paused only), event-sourced history with source/reason/ruleId
|
|
679
|
+
- **Spend execution pipeline** — WAL intent → budget lock → platform API → spend log. Idempotency keys per ADR-3.
|
|
680
|
+
- **Szeth's compliance framework** — GDPR cookie consent, CAN-SPAM unsubscribe/address, per-platform ToS checks. Critical findings block campaign launch.
|
|
681
|
+
- **Danger Room Ad Campaigns tab** — Campaign performance table with semantic HTML, A/B test groups panel, agent recommendations panel
|
|
682
|
+
- **Platform adapter registry** — Index with name and minimum budget per platform
|
|
683
|
+
|
|
684
|
+
### Fixed
|
|
685
|
+
- ARC-001: Removed dead TokenBucketLimiter re-export from adapter types
|
|
686
|
+
- QA-002: Budget lock uses `>=` (not `>`) for hard stop enforcement
|
|
687
|
+
|
|
688
|
+
---
|
|
689
|
+
|
|
690
|
+
## [11.1.0] - 2026-03-18
|
|
691
|
+
|
|
692
|
+
### Added — The Treasury (Dockson's Financial Operations)
|
|
693
|
+
- **`docs/methods/TREASURY.md`** — Dockson's financial operations protocol: revenue ingest, budget allocation, reconciliation, safety controls, immutable spend log
|
|
694
|
+
- **`docs/methods/HEARTBEAT.md`** — Daemon architecture: startup sequence, signal handling, sleep/wake recovery, socket API contract, vault session, service management, daemon states
|
|
695
|
+
- **`/treasury` command** — first-run setup flow, financial summary, budget management, freeze/unfreeze, reconciliation trigger, data export
|
|
696
|
+
- **`docs/patterns/daemon-process.ts`** — PID management with stale detection, Unix domain socket server with JSON-over-HTTP, session token auth with rotation, job scheduler with sleep/wake detection, signal handling with 10s deadline, structured JSON logger
|
|
697
|
+
- **`docs/patterns/revenue-source-adapter.ts`** — Read-only revenue interface with Stripe Events API + Paddle implementations, overlapping poll windows, externalId dedup, timing-safe webhook signature verification
|
|
698
|
+
- **`docs/patterns/oauth-token-lifecycle.ts`** — Per-platform TTL configs (Meta 60d, Google 1h, TikTok 24h, LinkedIn 60d, Reddit 1h), refresh at 80% TTL, 3-failure escalation to requires_reauth, session token 24h rotation with 30s grace period
|
|
699
|
+
- **`wizard/lib/heartbeat.ts`** — Heartbeat daemon: single-writer for all financial state (ADR-1), Unix domain socket API with auth tiers, 10 scheduled jobs, WAL reconciliation on startup (ADR-3), vault key in memory with SIGTERM zeroing
|
|
700
|
+
- **`wizard/lib/reconciliation.ts`** — Two-pass reconciliation engine: preliminary at midnight UTC, authoritative at 06:00 UTC, tiered discrepancy thresholds ($5 noise / 5% relative / $50 absolute), ADR-6 currency enforcement
|
|
701
|
+
- **Danger Room Treasury tab** — KPI cards (revenue/spend/net/ROAS), budget utilization progress bar with ARIA, platform connections status, reconciliation status, empty states with CTAs
|
|
702
|
+
- **5 methodology improvements from inbox triage** — GAUNTLET.md (3-dimension Sibling Verification Protocol + R1 runtime diagnostics), SECURITY_AUDITOR.md (Remediation Caller Tracing), SYSTEMS_ARCHITECT.md (Data Mutation Parity + Security Tradeoff Register)
|
|
703
|
+
|
|
704
|
+
### Fixed
|
|
705
|
+
- VG-001: Added creative endpoint stub (501) to heartbeat daemon socket API
|
|
706
|
+
- VG-006: Stripe webhook signature now uses timing-safe comparison
|
|
707
|
+
|
|
708
|
+
---
|
|
709
|
+
|
|
710
|
+
## [11.0.0] - 2026-03-18
|
|
711
|
+
|
|
712
|
+
### Added — The Consciousness (Cosmere Growth Universe)
|
|
713
|
+
- **8th Universe: Cosmere (Brandon Sanderson)** — 18 agents led by Kelsier. Growth, marketing, analytics, and financial operations.
|
|
714
|
+
- **`/grow` command** — 6-phase growth protocol: Reconnaissance → Foundation → Content → Distribution → Compliance → Measure. CLI-driven initial setup transitioning to autonomous daemon monitoring.
|
|
715
|
+
- **`/cultivation install` command** — installs the heartbeat daemon, financial vault, TOTP 2FA, and adds Growth tabs to the Danger Room.
|
|
716
|
+
- **`docs/methods/GROWTH_STRATEGIST.md`** — Kelsier's growth methodology with 3-tier autonomous execution model (deterministic daemon jobs, on-demand AI, opt-in scheduled AI).
|
|
717
|
+
- **`docs/patterns/ad-platform-adapter.ts`** — Split interface pattern: `AdPlatformSetup` (interactive OAuth), `AdPlatformAdapter` (daemon runtime), `ReadOnlyAdapter` (Tier 1 jobs). Reference Meta Marketing API implementation. Token bucket rate limiter.
|
|
718
|
+
- **`docs/patterns/financial-transaction.ts`** — Branded `Cents`/`Percentage`/`Ratio` types, hash-chained append-only log, atomic write with macOS `F_FULLFSYNC` awareness, number formatting per §9.15.4.
|
|
719
|
+
- **`wizard/lib/financial-vault.ts`** — Separate encrypted vault for ad platform and bank credentials. scrypt KDF (memory-hard). AES-256-GCM. Different password from infrastructure vault.
|
|
720
|
+
- **`wizard/lib/totp.ts`** — RFC 6238 TOTP for financial 2FA. macOS Keychain storage (ADR-4). Replay protection tracking all used codes within window. 5-minute session TTL.
|
|
721
|
+
- **`wizard/lib/safety-tiers.ts`** — Budget authorization with half-open interval tiers ($25/$100/$500). Aggregate $100/day cap. Campaign creation rate limits. Autonomous scope enforcement.
|
|
722
|
+
- **Danger Room tab navigation system** — ARIA-compliant tablist/tab/tabpanel with arrow key navigation, hash routing. Tabs shown conditionally when Cultivation is installed.
|
|
723
|
+
- **Danger Room Growth tab** — KPI cards (revenue/spend/net), ROAS by Platform, Traffic Sources, Conversion Funnel panels. Read-only placeholder data for v11.0.
|
|
724
|
+
- **Financial CSS color tokens** — 8 semantic tokens for financial data display (positive, negative, warning, neutral, healthy, error, inactive, frozen).
|
|
725
|
+
- **Global freeze button** — Emergency spend freeze in Danger Room header (desktop) and FAB (mobile). CSP-compliant event handlers.
|
|
726
|
+
- **WebSocket reconnection** — Exponential backoff (1s→30s cap), reconnection banner, full state refresh on reconnect.
|
|
727
|
+
- **PRD §9.19** — 16 subsections: Cultivation architecture clarification, process model, install commands, autonomous execution model, autonomous scope, code modification policy, authentication, CLI-to-autonomous handoff, WebSocket reconnection, adapter interface update, campaign state machine events, system state type, backup scope, rate limits, token rotation, API response sanitization.
|
|
728
|
+
- **PRD §9.20** — 14 subsections: Network binding fix, tab architecture, A/B test group data model, daemon authorization guard, autonomous rule thresholds, approval queue UX, agent voice in autonomous loop, freeze button spec, symlink guard, prompt injection mitigation, socket API contract, CampaignConfig schema, data propagation model, proxy token re-read.
|
|
729
|
+
|
|
730
|
+
### Changed
|
|
731
|
+
- **Danger Room rename complete** — War Room → Danger Room across all remaining PRD references (lines 1607-1609, component contract)
|
|
732
|
+
- **PRD §9.1 Vision rewritten** — Cultivation is the engine (daemon + rules), not a separate web app
|
|
733
|
+
- **PRD §9.3 /grow rewritten** — aligned with §9.19 execution model
|
|
734
|
+
- **ROADMAP.md v11 deliverables expanded** — Danger Room tab system, §9.19/§9.20 references, per-version tab additions
|
|
735
|
+
- **10 methodology improvements from inbox triage** — BUILD_PROTOCOL (+4 wiring checks), SECURITY_AUDITOR (+fail-closed), TESTING (+constraint smoke test), BACKEND_ENGINEER (+2 gotchas), CAMPAIGN (+consumer verification), FIELD_MEDIC (+--submit clarification)
|
|
736
|
+
|
|
737
|
+
---
|
|
738
|
+
|
|
739
|
+
## [10.2.0] - 2026-03-17
|
|
740
|
+
|
|
741
|
+
### Added
|
|
742
|
+
- **Natural Language Deploy** — `wizard/lib/natural-language-deploy.ts`. Prose description → YAML deploy frontmatter. Budget parsing, platform detection, resilience config inference. Integrated into `/prd` Act 5 as optional input.
|
|
743
|
+
- **Methodology A/B Testing** — `wizard/lib/experiment.ts`. Experiment CRUD + evaluation framework at `~/.voidforge/experiments.json`. True-positive rate + context efficiency comparison. Per-agent accuracy tracking. Danger Room Experiment Dashboard panel.
|
|
744
|
+
- **Prophecy Visualizer** — `wizard/ui/war-room-prophecy.js`. Interactive SVG dependency graph. Color-coded mission nodes (green/yellow/red/gray/purple). Clickable with keyboard support. Legend and detail panel. Danger Room integration.
|
|
745
|
+
|
|
746
|
+
### Fixed
|
|
747
|
+
- SVG focus indicators for keyboard navigation (Gauntlet G-UX-001)
|
|
748
|
+
- SVG role changed to `group` for assistive technology compatibility (G-UX-002)
|
|
749
|
+
- XSS defense-in-depth: escape mission status/number in prophecy detail panel (G-SEC-001)
|
|
750
|
+
- Atomic write + restricted permissions (0o600) for experiments.json (G-QA-001)
|
|
751
|
+
- Experiment panel aria-labelledby linked to title (G-UX-003)
|
|
752
|
+
|
|
753
|
+
---
|
|
754
|
+
|
|
755
|
+
## [10.1.0] - 2026-03-17
|
|
756
|
+
|
|
757
|
+
### Added
|
|
758
|
+
- **Danger Room data feeds** — `wizard/api/war-room.ts` with 6 REST endpoints parsing campaign-state.md, assemble-state.md, phase logs, deploy logs, VERSION.md. WebSocket handler at `/ws/war-room` with heartbeat, connection limits, and graceful shutdown.
|
|
759
|
+
- **Confidence scoring enforcement** — mandatory `[CONFIDENCE: XX]` in finding tables across `/gauntlet`, `/qa`, `/security`, `/ux`, `/review` commands. Low-confidence (<60) escalation to different-universe agent. Cross-referenced in QA_ENGINEER.md, SECURITY_AUDITOR.md, PRODUCT_DESIGN_FRONTEND.md.
|
|
760
|
+
- **Agent debates enforcement** — conflict detection in `/assemble` (Crossfire + Council) and `/review` (new Step 1.5). Structured 3-exchange debates logged as ADRs.
|
|
761
|
+
- **Living PRD enforcement** — Phase 0 PRD snapshot (`PRD-snapshot-phase0.md`), PRD alignment gates at Phases 4, 6, 8 in `/build`. Two-way sync: fix code or update PRD.
|
|
762
|
+
|
|
763
|
+
### Fixed
|
|
764
|
+
- Danger Room a11y: ARIA landmarks, keyboard focus, responsive breakpoint, reduced motion, gauge progressbar role, agent ticker aria-live
|
|
765
|
+
- WebSocket: exponential backoff reconnect, onerror handler, heartbeat keepalive, stale connection cleanup
|
|
766
|
+
- Context gauge shows em-dash instead of misleading 0% when data unavailable
|
|
767
|
+
|
|
768
|
+
---
|
|
769
|
+
|
|
770
|
+
## [10.0.1] - 2026-03-17
|
|
771
|
+
|
|
772
|
+
### Added
|
|
773
|
+
- **Agent Confidence Scoring** — findings report 0-100 confidence, low-confidence escalated.
|
|
774
|
+
- **Agent Debate Protocol** — structured 3-exchange debates, logged as ADRs.
|
|
775
|
+
- **Adversarial PRD Review** (`/prd --challenge`) — Boromir challenges the PRD before building.
|
|
776
|
+
- **The Living PRD** — PRD evolves at phase gates, Phase 0 snapshot for drift view.
|
|
777
|
+
- **Cross-Project Memory** — global lessons file across all projects.
|
|
778
|
+
- **Build Archaeology** — trace production bugs back through the build protocol.
|
|
779
|
+
|
|
780
|
+
---
|
|
781
|
+
|
|
782
|
+
## [10.0.0] - 2026-03-17
|
|
783
|
+
|
|
784
|
+
### Added
|
|
785
|
+
- **Danger Room dashboard** — `war-room.html` + `war-room.js`. 5 core panels (Campaign Timeline, Phase Pipeline, Finding Scoreboard, Context Gauge, PRD Coverage), sidebar (Version, Deploy, Tests, Cost), Agent Activity Ticker. WebSocket real-time feed with auto-reconnect.
|
|
786
|
+
- **`/api/war-room/*` REST endpoints** in server.ts.
|
|
787
|
+
- **Danger Room button** in Lobby navigation.
|
|
788
|
+
|
|
789
|
+
---
|
|
790
|
+
|
|
791
|
+
## [9.3.0] - 2026-03-17
|
|
792
|
+
|
|
793
|
+
### Added
|
|
794
|
+
- **Game build protocol** — 12-phase adaptation for `type: game`.
|
|
795
|
+
- **3 game patterns:** `game-loop.ts`, `game-state.ts`, `game-entity.ts`.
|
|
796
|
+
- **Game QA + UX checklists** — frame rate, input latency, game feel, accessibility.
|
|
797
|
+
- **4 game agents:** Spike-GameDev, Éowyn-GameFeel, Deathstroke-Exploit, L-Profiler.
|
|
798
|
+
|
|
799
|
+
---
|
|
800
|
+
|
|
801
|
+
## [9.2.0] - 2026-03-17
|
|
802
|
+
|
|
803
|
+
### Added
|
|
804
|
+
- **Mobile methodology** — BUILD_PROTOCOL, QA_ENGINEER, SECURITY_AUDITOR, PRODUCT_DESIGN_FRONTEND all gain mobile-specific checklists.
|
|
805
|
+
- **2 mobile patterns:** `mobile-screen.tsx` (React Native, safe area, a11y) + `mobile-service.ts` (offline-first, sync queue).
|
|
806
|
+
- **3 conditional agents:** Uhura-Mobile, Samwise-Mobile, Rex-Mobile.
|
|
807
|
+
- **PRD template** updated with mobile frontmatter.
|
|
808
|
+
|
|
809
|
+
### Blocked
|
|
810
|
+
- Mobile provisioner deferred (needs Xcode CLI + Play Console API).
|
|
811
|
+
|
|
812
|
+
---
|
|
813
|
+
|
|
814
|
+
## [9.1.0] - 2026-03-17
|
|
815
|
+
|
|
816
|
+
### Added
|
|
817
|
+
- **Django + FastAPI deep dives** in all 8 pattern files — full code examples for DRF ViewSets, Pydantic models, Celery tasks, django-tenants, HTMX templates, FastAPI dependency injection, SQLAlchemy services, ARQ workers.
|
|
818
|
+
- **Python framework detection** in BUILD_PROTOCOL.md — Phase 0 detects `framework: django|fastapi`, adapts scaffold, migrations, testing, and security checks.
|
|
819
|
+
|
|
820
|
+
---
|
|
821
|
+
|
|
822
|
+
## [9.0.0] - 2026-03-17
|
|
823
|
+
|
|
824
|
+
### Added
|
|
825
|
+
- **`docs/META_WORKFLOW.md`** — How to use VoidForge to develop VoidForge. Documents the feedback loop, anti-patterns discovered across 4 campaigns, when to use each campaign mode, and version history of campaigns-on-self.
|
|
826
|
+
- **Wong's Pattern Usage Log (Phase 12.5)** — After each build, logs which patterns were used, which framework adaptations applied, which custom modifications made. Feeds pattern evolution analysis in `/debrief`.
|
|
827
|
+
- **Pattern Evolution Check** in FIELD_MEDIC.md — Wong checks pattern-usage data for recurring variations across projects. 10+ occurrences → propose as new pattern.
|
|
828
|
+
|
|
829
|
+
### Changed
|
|
830
|
+
- **`/imagine` API key persistence** — FORGE_ARTIST.md now instructs persisting the OpenAI API key to `.env.local` on first use, preventing key loss between sessions. (Field report #62)
|
|
831
|
+
|
|
832
|
+
---
|
|
833
|
+
|
|
834
|
+
## [8.3.0] - 2026-03-16
|
|
835
|
+
|
|
836
|
+
### Added
|
|
837
|
+
- **`/campaign --autonomous`** — supervised autonomy with safety rails: git tag before each mission, critical-finding rollback, 5-mission human checkpoints, Victory Gauntlet requires human confirmation. Safer than `--blitz` for long campaigns (10+ missions).
|
|
838
|
+
|
|
839
|
+
---
|
|
840
|
+
|
|
841
|
+
## [8.2.0] - 2026-03-16
|
|
842
|
+
|
|
843
|
+
### Added
|
|
844
|
+
- **Self-Improving Methodology (Wong Promotion Analysis)** — when 3+ lessons in LESSONS.md share the same category and target the same method doc, Wong auto-drafts a promotion: a specific checklist item or rule based on the lesson cluster. Presented for user approval, never auto-applied. Added to FIELD_MEDIC.md and `/debrief` command.
|
|
845
|
+
- **Custom Sub-Agents** — users can create project-specific sub-agents in `docs/CUSTOM_AGENTS.md`. Agents carry domain knowledge (e.g., `Jarvis-Tailwind` for Tailwind v4 patterns). Run alongside built-in agents. Naming collision check rule added to NAMING_REGISTRY.md. Template file created.
|
|
846
|
+
|
|
847
|
+
---
|
|
848
|
+
|
|
849
|
+
## [8.1.2] - 2026-03-16
|
|
850
|
+
|
|
851
|
+
### Changed
|
|
852
|
+
- **`/qa` command** gains Green Lantern (test matrix), Flash (smoke tests), Batgirl (detail audit), Aquaman (deep dive), Huntress (flaky tests), Green Arrow (precision), Superman (standards).
|
|
853
|
+
- **`/security` command** gains Han + Cassian (Phase 0.5 first strike + recon), Bo-Katan (perimeter alongside Rex), Qui-Gon + Sabine + Bail Organa (Phase 2 extended), Anakin + Din Djarin (Phase 4 bypass + bounty).
|
|
854
|
+
- **`/ux` command** gains Aragorn (orchestrator), Pippin + Frodo (Step 3 edge cases + hardest flow), Faramir (Step 5 quality focus), Boromir + Glorfindel (Step 6 hubris + hard rendering), Haldir (Step 7 boundaries), Merry (Step 7.5 pair verification).
|
|
855
|
+
- **`/architect` command** gains Crusher + Archer (Step 0 diagnostics + greenfield), Tuvok (Step 1 security architecture), Kim + Janeway (Step 2 API design + novel architectures).
|
|
856
|
+
- **`/gauntlet` command** Round 3 now explicitly names DevOps team (Senku, Levi, Spike, L, Bulma, Holo, Valkyrie).
|
|
857
|
+
- **`/assemble` command** gains Hill (phase tracking) + Jarvis (status summaries).
|
|
858
|
+
- **`/campaign` command** gains Pike (Step 1 — bold ordering challenge to Dax).
|
|
859
|
+
|
|
860
|
+
---
|
|
861
|
+
|
|
862
|
+
## [8.1.1] - 2026-03-16
|
|
863
|
+
|
|
864
|
+
### Added
|
|
865
|
+
- **Extended DC roster for `/qa`** — Flash (rapid testing), Batgirl (detail audit), Green Arrow (precision), Huntress (flaky tests), Aquaman (deep dive), Superman (standards), Green Lantern (scenario construction), Martian Manhunter (cross-environment).
|
|
866
|
+
- **Extended Star Wars roster for `/security`** — Qui-Gon (subtle vulns), Han (first strike), Anakin (dark-side exploitation), Bo-Katan (perimeter), Din Djarin (bug bounty), Bail Organa (governance), Cassian (threat modeling), Sabine (unconventional attacks).
|
|
867
|
+
- **Extended Tolkien roster for `/ux`** — Aragorn (UX leadership), Faramir (quality focus), Pippin (edge cases), Boromir (hubris check), Haldir (boundary guard), Glorfindel (hard rendering), Frodo (hardest task), Merry (pair review).
|
|
868
|
+
- **Extended Anime roster for `/devops`** — Vegeta (monitoring), Trunks (migrations), Mikasa (critical protection), Erwin (planning), Mustang (cleanup), Olivier (hardening), Hughes (observability), Calcifer (daemons), Duo (teardown).
|
|
869
|
+
- **Extended Star Trek roster for `/architect`** — Janeway (novel architectures), Tuvok (security architecture), Crusher (diagnostics), Archer (greenfield), Kim (API design), Pike (bold planning).
|
|
870
|
+
- **Extended Marvel roster for `/build`** — T'Challa (craft), Wanda (state), Shuri (innovation), Rocket (scrappy), Okoye (data integrity), Falcon (migrations), Bucky (legacy).
|
|
871
|
+
|
|
872
|
+
---
|
|
873
|
+
|
|
874
|
+
## [8.1.0] - 2026-03-16
|
|
875
|
+
|
|
876
|
+
### Added
|
|
877
|
+
- **Troi (PRD Compliance)** activated in `/build` Phase 0 (confirms PRD extraction), Phase 4/8 gates (spot-checks built features against PRD), and `/campaign` per-mission checks.
|
|
878
|
+
- **Padmé (Functional Verification)** activated in `/build` Phase 4/6 gates (verifies primary user flow end-to-end) and `/campaign` per-mission for user-facing missions.
|
|
879
|
+
- **Celeborn (Design System Governance)** activated in `/ux` Step 2 and `/build` Phase 5 — audits spacing tokens, typography scale, color palette consistency, component naming.
|
|
880
|
+
- **Worf (Security Implications)** activated in `/architect` Step 1 — flags security implications of architectural decisions alongside Spock and Uhura.
|
|
881
|
+
- **Riker (Decision Review)** activated in `/architect` Step 5 — reviews Picard's ADRs for trade-off validity and second-order effects.
|
|
882
|
+
- **Torres (Performance Architecture)** activated in `/architect` Step 3 — identifies N+1 queries, missing indexes, caching gaps in design phase.
|
|
883
|
+
- **Cyborg (System Integration)** activated in `/qa` Step 1 — traces full data paths across module boundaries when 3+ modules connect.
|
|
884
|
+
- **Raven (Deep Analysis)** activated in `/qa` Step 1 — finds bugs hidden beneath layers of abstraction, data flowing through transforms.
|
|
885
|
+
- **Wonder Woman (Truth Detector)** activated in `/qa` Step 1 — finds code that says one thing and does another.
|
|
886
|
+
- **Valkyrie (Disaster Recovery)** activated in `/devops` — backup verification, restore testing, failover procedures.
|
|
887
|
+
|
|
888
|
+
---
|
|
889
|
+
|
|
890
|
+
## [8.0.1] - 2026-03-16
|
|
891
|
+
|
|
892
|
+
### Fixed
|
|
893
|
+
- **Victory Gauntlet hardening** — 16 fixes across 2 Gauntlet runs: PTY stale session cleanup (3 compounding bugs), .env newline/shell injection, globSync Node 22+ compat replaced with recursive readdir, restart banner dead endpoint + CSP violation, symlink cycle guard, XSS in auto-command banner, dead code cleanup.
|
|
894
|
+
- **Node.js `engines` field** tightened from `>=20.0.0` to `>=20.11.0` — `import.meta.dirname` requires 20.11+.
|
|
895
|
+
- **Quality Reduction Anti-Pattern** — hard methodology rule: agents MUST NOT reduce Gauntlet, checkpoint, or debrief quality based on self-assessed "context pressure." Must run `/context` and report actual usage. Below 70% = continue full protocol.
|
|
896
|
+
- **9 methodology fixes** from field reports #46-#53: CORS requirements check, external API HTTPS enforcement, IP range validation warning, internal path leakage check, client-side partial failure testing, const/let audit, Node API compatibility check, UI→server route tracing, Victory Checklist with debrief-before-sign-off.
|
|
897
|
+
- **CLAUDE.md** — added PRD_GENERATOR to Docs Reference, corrected pattern count (7→8).
|
|
898
|
+
- **Architecture docs** version headers updated to 8.0.0.
|
|
899
|
+
|
|
900
|
+
---
|
|
901
|
+
|
|
902
|
+
## [8.0.0] - 2026-03-16
|
|
903
|
+
|
|
904
|
+
### Added
|
|
905
|
+
- **Agent Memory — Active Lessons Read-Back.** Wong loads `/docs/LESSONS.md` during Phase 0 Orient. Review commands (`/qa`, `/security`, `/ux`, `/review`) read LESSONS.md in Context Setup and flag matches during analysis.
|
|
906
|
+
- **Conflict Prediction — Phase 0.5 Architecture Scan.** Picard scans PRD frontmatter for 8 structural contradictions before any code is written. Added Conflict Checklist to SYSTEMS_ARCHITECT.md and pre-analysis step to `/architect`.
|
|
907
|
+
- **`/prd` command** — Sisko's PRD generator. 5-act structured interview producing a complete PRD with valid YAML frontmatter.
|
|
908
|
+
|
|
909
|
+
---
|
|
910
|
+
|
|
911
|
+
## [7.7.0] - 2026-03-16
|
|
912
|
+
|
|
913
|
+
### Added
|
|
914
|
+
- **Native module mtime detection** — server snapshots `.node` file mtimes at startup, checks on Lobby load. If changed (npm install while server running), shows "Restart Now" banner.
|
|
915
|
+
- **`/api/server/status` endpoint** — returns `needsRestart` flag for native module detection.
|
|
916
|
+
- **`docs/COMPATIBILITY.md`** — Node.js version testing doc with known ABI-breaking changes and engines field policy.
|
|
917
|
+
- **Restart banner** in Lobby — appears when native modules changed on disk.
|
|
918
|
+
|
|
919
|
+
### Changed
|
|
920
|
+
- **ARCHITECTURE.md** rewritten from v2.7.0 to v7.7.0 — adds Avengers Tower, RBAC, Thumper, ws/node-pty, PTY manager, vault key naming, mtime detection.
|
|
921
|
+
- **FAILURE_MODES.md** rewritten — adds WebSocket, PTY, Tower, Thumper, and native module failure modes.
|
|
922
|
+
- **SCALING.md** rewritten — Tier 2 reflects shipped multi-user features, PTY sessions as bottleneck.
|
|
923
|
+
- **Context pressure rule** fixed — removed "3 consecutive missions" heuristic. Checks actual usage, only checkpoints at 70%.
|
|
924
|
+
|
|
925
|
+
---
|
|
926
|
+
|
|
927
|
+
## [7.6.0] - 2026-03-16
|
|
928
|
+
|
|
929
|
+
### Added
|
|
930
|
+
- **`voidforge deploy --env-only`** — write vault credentials to `.env` without provisioning infrastructure. Reads all vault keys, maps both `env:`-prefixed and hyphenated keys to env vars, appends to `.env`. Supports `VOIDFORGE_VAULT_PASSWORD` env var for non-interactive use.
|
|
931
|
+
- **`scripts/vault-read.ts`** — standalone vault reader. Read a single key (`--key`) or list all keys (`--list`). Supports non-interactive use via `VOIDFORGE_VAULT_PASSWORD`.
|
|
932
|
+
- **Campaign vault auto-inject (Step 0.5)** — if vault has credentials not yet in `.env`, auto-run `deploy --env-only` before the first mission. Blitz mode auto-runs; normal mode asks for confirmation.
|
|
933
|
+
- **Node.js `engines` field** in package.json — `>=20.0.0 <25.0.0`. Prevents silent ABI breaks with unsupported Node versions.
|
|
934
|
+
|
|
935
|
+
### Changed
|
|
936
|
+
- **Stale PTY session cleanup** — Tower auto-detects sessions that fail within 2 seconds of creation. Auto-removes the dead tab and retries once. Prevents dead sessions from consuming MAX_SESSIONS slots.
|
|
937
|
+
- **Fallback model ID** updated from `claude-sonnet-4-5-20241022` to `claude-sonnet-4-6`.
|
|
938
|
+
|
|
939
|
+
---
|
|
940
|
+
|
|
941
|
+
## [7.5.3] - 2026-03-16
|
|
942
|
+
|
|
943
|
+
### Added
|
|
944
|
+
- **Vault key naming convention** in HOLOCRON — documents hyphenated keys (global/infra) vs `env:`-prefixed keys (project-specific), with resolver order and provisioner mapping.
|
|
945
|
+
- **Outbound URL Safety** checklist in security audit — verify transactional emails never send localhost/private IP URLs, production fallback requirement, dedicated `EMAIL_BASE_URL` recommendation. (Field report #44)
|
|
946
|
+
- **Query-param state trust** attack vector in QA — Deathstroke tests whether URL parameters controlling client state are validated server-side before rendering. (Field report #44)
|
|
947
|
+
- **Collapsible/Accordion ARIA pattern** in component reference — `aria-expanded` + `aria-controls` + `id` triple checklist with code example. (Field report #43)
|
|
948
|
+
- **v7.7 The Housekeeping** planned in ROADMAP — architecture doc refresh, server auto-restart (tech debt #11), Node.js compatibility doc.
|
|
949
|
+
- **v7.6 bolt-ons** planned in ROADMAP — stale PTY cleanup (#12), Node.js `engines` field, fallback model ID update.
|
|
950
|
+
- **v8.0 ship order** in ROADMAP — Agent Memory first, then Conflict Prediction, then Auto-PRD.
|
|
951
|
+
|
|
952
|
+
### Fixed
|
|
953
|
+
- **Stale roadmap header** — updated from v7.1.0 to v7.5.2 with correct next version (v7.6).
|
|
954
|
+
- **Field reports #42-#44** triaged and closed — 4 fixes applied, 2 already-fixed, 2 deferred to v7.6, 2 wontfix.
|
|
955
|
+
|
|
956
|
+
---
|
|
957
|
+
|
|
958
|
+
## [7.5.2] - 2026-03-16
|
|
959
|
+
|
|
960
|
+
### Added
|
|
961
|
+
- **Credentials flow documentation** in HOLOCRON — explains how vault credentials reach `.env` during build and deploy.
|
|
962
|
+
- **v7.6 The Vault Pipeline** planned in ROADMAP — `deploy --env-only`, standalone vault reader, campaign auto-inject.
|
|
963
|
+
|
|
964
|
+
---
|
|
965
|
+
|
|
966
|
+
## [7.5.1] - 2026-03-16
|
|
967
|
+
|
|
968
|
+
### Added
|
|
969
|
+
- **Vault awareness in campaign** — Kira checks vault status in Step 0, Dax classifies credentials as "vault-available" instead of BLOCKED. (Field report #40)
|
|
970
|
+
- **Troi pre-scan before Victory** — verifies all PRD claims before declaring "all complete." (Field report #38)
|
|
971
|
+
- **Cross-file dependency check** in per-mission review — catch cross-module integration gaps. (Field report #38)
|
|
972
|
+
- **Deployment verification** in Assembler Phase 9 — check if project is already live before suggesting deploy steps. (Field report #37)
|
|
973
|
+
- **Deployment section** in build-state.md template. (Field report #37)
|
|
974
|
+
|
|
975
|
+
### Changed
|
|
976
|
+
- **Security audit** gains 5 new checklist items: anonymity invariant, filesystem access, constant-time comparison, sanitizer baseline, auth framework rate limiting. (Field reports #36, #38)
|
|
977
|
+
- **API route pattern** gains Prisma select-on-mutations rule and fire-and-forget endpoint (sendBeacon/CSRF) guidance. (Field report #36)
|
|
978
|
+
- **Service pattern** gains Prisma select-on-mutation example. (Field report #36)
|
|
979
|
+
- **Campaign** gains data model retrofit check, pattern replication check, vault-aware Dax classification. (Field reports #38, #40)
|
|
980
|
+
- **WCAG contrast verification** added to Galadriel's UX checklist. (Field report #38)
|
|
981
|
+
- **Post-pipeline deploy offer** in Assembler after Phase 13. (Field report #37)
|
|
982
|
+
|
|
983
|
+
---
|
|
984
|
+
|
|
985
|
+
## [7.5.0] - 2026-03-16
|
|
986
|
+
|
|
987
|
+
### Added
|
|
988
|
+
- **Thumper Command Center** — `/help` in Telegram shows an interactive inline keyboard grid of all 15 VoidForge commands. Tap a command → submenu shows all flag variants (e.g., `/campaign --blitz`, `/gauntlet --quick`, `/debrief --inbox`). Tap a variant to send immediately. ← Back returns to grid.
|
|
989
|
+
- **Bot personalization** in `/thumper setup` — auto-sets bot name (project-branded), Bilbo writes description from PRD, registers 15+1 commands in Telegram menu, generates DALL-E avatar (if OpenAI key in vault).
|
|
990
|
+
- **Command↔doc sync check** in `/git` Step 5.5 — flags when method docs change but paired command files don't. 13 pairs tracked.
|
|
991
|
+
|
|
992
|
+
### Fixed
|
|
993
|
+
- **Thumper response relay** — water-rings.sh now reads `last_assistant_message` from Stop hook stdin metadata. Previously tried to read conversation JSON from stdin (which doesn't exist), always falling back to "no summary available."
|
|
994
|
+
- **scan.sh non-interactive** — all `read -r -p` prompts skipped when `--token` and `--chat-id` provided. Environment confirmation and "Start now?" prompts were still blocking.
|
|
995
|
+
|
|
996
|
+
### Changed
|
|
997
|
+
- **`/thumper setup` is Claude-native** — conversational flow guides through BotFather, validates token via API, auto-detects chat ID, runs scan.sh non-interactive. No interactive stdin needed.
|
|
998
|
+
- **9 Gauntlet consistency fixes** — command files synced with method docs: Kusanagi in Round 1, Hawkeye smoke test, Lucius in Round 2 Batman, --ux-extra flag, VERSION.md/CHANGELOG.md in shared file lists, 3-mission context limit, minimum 1 review guarantee.
|
|
999
|
+
|
|
1000
|
+
---
|
|
1001
|
+
|
|
1002
|
+
## [7.4.1] - 2026-03-16
|
|
1003
|
+
|
|
1004
|
+
### Added
|
|
1005
|
+
- **Thumper scripts now synced** by `/void` — `scripts/thumper/*` added to shared files, carved out from `scripts/*` exclusion. (Field report #34)
|
|
1006
|
+
- **Parallel agent convention lock** — schema ownership, naming conventions, required fields must be specified when launching parallel agents. (Field report #33)
|
|
1007
|
+
- **Integration wiring check** in build protocol — verify new services are connected to consumers, TODOs resolved, workers registered. (Field report #33)
|
|
1008
|
+
- **Cascade review checklist** — orphaned references, race conditions, PII scrubbing, reassignment fallbacks for DELETE/UPDATE operations. (Field report #31)
|
|
1009
|
+
- **Mandatory end-of-campaign debrief** — `/debrief --submit` required after Victory Gauntlet, non-negotiable. (Field report #31)
|
|
1010
|
+
- **Campaign state auto-sync** — cross-reference git log against campaign-state.md at session start. (Field report #32)
|
|
1011
|
+
- **3-mission context pressure limit** — checkpoint and consider fresh session after 3 consecutive build missions. (Field report #33)
|
|
1012
|
+
|
|
1013
|
+
### Changed
|
|
1014
|
+
- **Proxy route SSRF** added to security checklist — validate target paths against regex allowlist. (Field report #33)
|
|
1015
|
+
- **No secrets in stored data** — verify no API keys/tokens embedded in database-stored URLs. (Field report #33)
|
|
1016
|
+
- **Crypto randomness** check — flag `Math.random()` in token/code/identifier generation. (Field report #32)
|
|
1017
|
+
- **Deeper PRD scan** in Dax's analysis — grep for feature completeness, not just file existence. (Field report #32)
|
|
1018
|
+
- **Database fixtures** guidance — always use shared conftest, never custom DDL. (Field report #31)
|
|
1019
|
+
|
|
1020
|
+
---
|
|
1021
|
+
|
|
1022
|
+
## [7.4.0] - 2026-03-16
|
|
1023
|
+
|
|
1024
|
+
### Added
|
|
1025
|
+
- **Runtime smoke test** in Gauntlet Round 2 — start server, hit endpoints, test WebSocket lifecycle. Catches what static analysis misses. (Field report #30)
|
|
1026
|
+
- **First-run scenario checklist** in QA — fresh install, server restart, project import, dependency update transitions. (Field report #30)
|
|
1027
|
+
- **Restart resilience checklist** in DevOps — inventory in-memory state, define recovery paths. (Field report #30)
|
|
1028
|
+
- **Campaign-mode assemble pipeline** — reduced phases (arch + build + 1 review + security if needed) for multi-mission campaigns. Full pipeline deferred to Victory Gauntlet. (Field report #26)
|
|
1029
|
+
- **Lightweight inline debrief** option for blitz — 3-line summary to log file when full `/debrief --submit` is too heavy. (Field report #26)
|
|
1030
|
+
- **Minimum 1 review round guarantee** — even `--fast` gets 1 review, never 0. (Field report #28)
|
|
1031
|
+
|
|
1032
|
+
### Changed
|
|
1033
|
+
- **Direct-ID entity access** is now High severity minimum in security audit — never defer. (Field report #28)
|
|
1034
|
+
- **Role enforcement** must cover ALL write routes, not just CRUD — batch, merge, import/export, admin utilities. (Field report #28)
|
|
1035
|
+
- **Admin self-referential case** added to UX checklist — disable destructive actions on own user row. (Field report #28)
|
|
1036
|
+
- **SQL fragment builders** must accept alias parameter from day 1 — breaks in JOINs without it. (Field report #28)
|
|
1037
|
+
- **Per-item processing** for unreliable inputs — individual items with timeouts, not batch. (Field report #27)
|
|
1038
|
+
- **Cache AI agent outputs** — reuse cached intermediate results to prevent cross-generation drift. (Field report #27)
|
|
1039
|
+
- **Server components for content pages** — "use client" on marketing pages kills SEO. (Field report #27)
|
|
1040
|
+
- **Background operations need visible progress** — loading state, progress indicator, completion notification. (Field report #27)
|
|
1041
|
+
- **Mode instructions must replace, not append** — each mode needs complete spec, not a footnote. (Field report #27)
|
|
1042
|
+
- **Platform networking** — bind `::` (dual-stack) not `127.0.0.1`. macOS resolves localhost to IPv6. (Field report #30)
|
|
1043
|
+
- **Tailwind v4 deployment guide** — pin versions, restrict source scanning, avoid `attr()` in CSS. (Field report #29)
|
|
1044
|
+
- **Don't interleave debugging with syncs** — sync first, verify, THEN debug separately. (Field report #29)
|
|
1045
|
+
- **Infrastructure dependency exception** — zero-dep policy applies to business logic, not protocol infrastructure (ws, node-pty). (Field report #30)
|
|
1046
|
+
|
|
1047
|
+
---
|
|
1048
|
+
|
|
1049
|
+
## [7.3.2] - 2026-03-16
|
|
1050
|
+
|
|
1051
|
+
### Changed
|
|
1052
|
+
- **Blitz debrief is now a blocking gate** — `/debrief --submit` must complete before the campaign loop continues. Previously it was a suggestion that agents skipped in velocity mode. Now it blocks progression. (Field reports #24, #25)
|
|
1053
|
+
- **Blitz per-mission checklist** added to campaign command header — 5 mandatory items (assemble, git, debrief, state update, proceed) that must be verified before each loop-back.
|
|
1054
|
+
- **Blitz mode documented in CAMPAIGN.md method doc** — full section under "Two Modes" explaining what blitz changes, what it preserves, and that `--blitz ≠ --fast`. (Field report #25)
|
|
1055
|
+
- **Debrief issue tracking** in campaign state — mission table now includes debrief issue number column.
|
|
1056
|
+
- **Blitz privacy exception** in FIELD_MEDIC.md — user opted into autonomous mode, so auto-submit is permitted without review. (Field report #25)
|
|
1057
|
+
- **Blitz checkpoint enforcement** — explicit mission counter instruction in Step 4.5 with mandatory logging. (Field report #23)
|
|
1058
|
+
- **"No questions in blitz"** rule — all decisions autonomous, choose quality-preserving option when uncertain. (Field report #23)
|
|
1059
|
+
- **Tier enforcement extended to UI components** — QA now greps `.tsx`/`.jsx` for hardcoded tier comparisons. (Field report #22)
|
|
1060
|
+
- **Action inventory before hiding containers** — UX redesigns must list all primary AND secondary actions before collapsing/hiding a component. (Field report #22)
|
|
1061
|
+
- **Test schema vs. production schema** check — verify test fixtures create all tables from migration runner. (Field report #21)
|
|
1062
|
+
- **Timestamp format enforcement** — QA greps for non-canonical `strftime`/format calls. (Field report #21)
|
|
1063
|
+
- **Auth retrofit audit** — when adding auth to a router, audit ALL existing endpoints in that file. (Field report #21)
|
|
1064
|
+
|
|
1065
|
+
---
|
|
1066
|
+
|
|
1067
|
+
## [7.3.1] - 2026-03-16
|
|
1068
|
+
|
|
1069
|
+
### Changed
|
|
1070
|
+
- **`/campaign --blitz` now auto-debriefs after every mission.** In blitz mode, `/debrief --submit` runs automatically after each mission completes, filing a GitHub field report with learnings while context is fresh. No user review needed — blitz trusts the output. Run `/debrief --inbox` on the upstream repo later to triage accumulated reports. This is the missing feedback loop for autonomous builds: every mission's failures, patterns, and methodology gaps are captured even when nobody is watching.
|
|
1071
|
+
|
|
1072
|
+
---
|
|
1073
|
+
|
|
1074
|
+
## [7.3.0] - 2026-03-16
|
|
1075
|
+
|
|
1076
|
+
### Added
|
|
1077
|
+
- **`/campaign --blitz`** — Fully autonomous campaign mode. Skips mission confirmation prompts, implies `--fast`, auto-continues between missions. Victory Gauntlet still mandatory. Use when you want to click "Start Building" and walk away.
|
|
1078
|
+
- **Lobby build-state indicator** — Project cards show contextual buttons: "Start Building" (Phase 0), "Resume Build" (Phase 1-12), "Open Room" (built/deployed). Color-coded badge shows current state.
|
|
1079
|
+
- **Tower vault unlock form** — When the vault is locked (server restart, import), the Tower shows an inline password form instead of a cryptic error. Unlock → auto-retries terminal creation.
|
|
1080
|
+
- **Tower auto-send countdown** — After Claude Code launches, a 3-second countdown auto-types the command (e.g., `/campaign --blitz`). Cancel button available.
|
|
1081
|
+
|
|
1082
|
+
### Fixed
|
|
1083
|
+
- **WebSocket terminal connection** — Replaced custom WebSocket implementation with the `ws` library (same as VS Code). The custom handshake was incompatible with Node.js v24's HTTP internals, causing `code 1006` connection failures in all browsers.
|
|
1084
|
+
- **IPv6 localhost binding** — Server now binds to `::` (dual-stack) in local mode. macOS resolves `localhost` to `::1` (IPv6 first); binding to `127.0.0.1` broke WebSocket connections.
|
|
1085
|
+
- **PTY Enter key** — Auto-send used `\n` (line feed) instead of `\r` (carriage return). PTY terminals require `\r` to simulate the Enter key.
|
|
1086
|
+
- **Build status "Live" false positive** — Projects with a `deployUrl` set during wizard setup (intended domain) showed as "Live" even at Phase 0. Now requires both `deployUrl` AND `lastDeployAt` to confirm actual deployment.
|
|
1087
|
+
- **Static file caching** — Added `Cache-Control: no-cache, must-revalidate` to static file responses. Prevents browsers from serving stale JS after server updates.
|
|
1088
|
+
- **CSP connect-src** — Added `https://cdn.jsdelivr.net` to allow xterm.js source map fetching.
|
|
1089
|
+
|
|
1090
|
+
### Changed
|
|
1091
|
+
- **Claude Code in Tower** now launches with `--dangerously-skip-permissions` for autonomous operation.
|
|
1092
|
+
- **`ws` + `@types/ws`** added as dependencies (replaces 200+ lines of custom WebSocket code).
|
|
1093
|
+
|
|
1094
|
+
---
|
|
1095
|
+
|
|
1096
|
+
## [7.2.1] - 2026-03-15
|
|
1097
|
+
|
|
1098
|
+
### Fixed
|
|
1099
|
+
- **Avengers Tower terminal crash on Node.js v24** — `posix_spawnp failed` error when opening terminal. Upgraded `node-pty` from 1.1.0 to 1.2.0-beta.12 which includes prebuilds compatible with Node v24's ABI.
|
|
1100
|
+
|
|
1101
|
+
---
|
|
1102
|
+
|
|
1103
|
+
## [7.2.0] - 2026-03-15
|
|
1104
|
+
|
|
1105
|
+
### Added
|
|
1106
|
+
- **Third-party script loading pattern** — Three-state pattern (loading/ready/error) for external script dependencies (`docs/patterns/third-party-script.ts`)
|
|
1107
|
+
- **v8.0-v9.0+ roadmap** — The Hive Mind (Agent Memory, Conflict Prediction, `/prd`), The Evolution (Self-Improving Methodology, Agent Specialization), The Autonomy (`/campaign --autonomous`), The Horizon (Pattern Evolution, Cross-Project, Multi-Language)
|
|
1108
|
+
- **7 enchantment animations** — Forge-lit pulse on vault unlock, streaming cursor for PRD generation, success icon pop, directional step transitions, primary button gradient glow, subtitle delayed fade-in, status message slide-in
|
|
1109
|
+
|
|
1110
|
+
### Changed
|
|
1111
|
+
- **Vault password minimum raised to 8 characters** — was 4, now consistent with security best practices (server + client)
|
|
1112
|
+
- **TOTP validation enforces exactly 6 digits** — rejects alphabetic and short/long codes per RFC 6238
|
|
1113
|
+
- **Provisioning concurrency lock** — check-and-set is now synchronous (same event loop tick), preventing TOCTOU race on concurrent requests
|
|
1114
|
+
- **Manifest writes serialized** — all mutation functions in provision-manifest.ts now use write queue, preventing race conditions
|
|
1115
|
+
- **PTY cols/rows clamped before spawnOptions** — consistent with resize clamping, prevents oversized terminal dimensions
|
|
1116
|
+
- **ANTHROPIC_API_KEY excluded from remote PTY** — operator's API key no longer leaks to deployer-role terminal sessions
|
|
1117
|
+
- **11 methodology fixes** from 5 field reports: execution order verification (Gauntlet), Node.js mutex pattern (Backend), symlink resolution (Security), CSS animation replay (Frontend), cross-file flow tracing (Assembler), VERSION.md content checks (Forge Keeper + void), .claude/settings.json in /void "Never touch" list
|
|
1118
|
+
|
|
1119
|
+
### Security
|
|
1120
|
+
- **HSTS header** in remote mode (`Strict-Transport-Security: max-age=31536000; includeSubDomains`)
|
|
1121
|
+
- **Vault cache timing-safe comparison** — uses `timingSafeEqual` instead of `===` for password check
|
|
1122
|
+
- **UUID validation on manifest runId** — prevents path traversal via crafted cleanup requests
|
|
1123
|
+
- **Symlink resolution** in project import — `fs.realpath()` prevents symlink attacks pointing outside project directory
|
|
1124
|
+
|
|
1125
|
+
### Fixed
|
|
1126
|
+
- **Skip navigation link** added for keyboard/screen reader users (WCAG 2.1 AA)
|
|
1127
|
+
- **ARIA tab linkage** — PRD tabs have ids, aria-controls, and aria-labelledby
|
|
1128
|
+
- **Section aria-labelledby** — all wizard step sections linked to their headings
|
|
1129
|
+
- **noscript fallback** — shows clear message when JavaScript is disabled
|
|
1130
|
+
- **--text-muted contrast** raised from #767676 to #8a8a8a (5.76:1 ratio, WCAG AA compliant)
|
|
1131
|
+
- **Heading "Describe Your Vision"** replaces "Product Requirements" — matches PRD three-act language
|
|
1132
|
+
- **Backward animation direction** — navigating from step 5 to 4b now plays slide-left (not slide-right)
|
|
1133
|
+
- **Forge-lit animation replay** — vault unlock pulse replays correctly on repeated attempts via reflow trick
|
|
1134
|
+
|
|
1135
|
+
---
|
|
1136
|
+
|
|
1137
|
+
## [7.1.0] - 2026-03-15
|
|
1138
|
+
|
|
1139
|
+
### Added
|
|
1140
|
+
- **Operations menu** — Act 3 presents expandable cards: Deploy Target, Cloud Credentials, Domain & Hostname, Resilience Pack. Pick what you need, skip the rest.
|
|
1141
|
+
- **Resilience Pack** — 10 opt-in toggles for operational hardening: multi-env, preview deploys, auto-rollback, migrations, backups, health check, graceful shutdown, error boundaries, rate limiting, dead letter queue.
|
|
1142
|
+
- **Live header** — Shows "Gandalf — [Project Name]" as you type.
|
|
1143
|
+
|
|
1144
|
+
### Changed
|
|
1145
|
+
- **Three-act wizard flow** — "Secure Your Forge" (vault → API key) → "Describe Your Vision" (project → PRD) → "Equip Your Project" (operations menu). Vault and API key split into separate focused screens. Domain/hostname moved to operations menu.
|
|
1146
|
+
- **Act-based progress labels** — "Act 1 — Secure Your Forge" instead of "Step 3 of 7".
|
|
1147
|
+
|
|
1148
|
+
### Removed
|
|
1149
|
+
- **Simple/Advanced toggle** — Eliminated. Every user gets the same flow; configure depth via the operations menu.
|
|
1150
|
+
|
|
1151
|
+
---
|
|
1152
|
+
|
|
1153
|
+
## [7.0.1] - 2026-03-15
|
|
1154
|
+
|
|
1155
|
+
### Changed
|
|
1156
|
+
- **Gandalf wizard redesigned as Three-Act Flow** — identity (vault + key), vision (name + PRD), operations (menu of cards). Eliminates simple/advanced toggle. Éowyn's enchantment notes woven into each act.
|
|
1157
|
+
- **v4.3 reclassified as "The Resilience Pack"** — opt-in card in Gandalf's Act 3 operations menu with 10 toggles (5 deploy + 5 runtime resilience). Smart defaults based on deploy target and framework.
|
|
1158
|
+
- **v7.1 "The Redesign" added to ROADMAP** — implementation plan for the wizard UX overhaul.
|
|
1159
|
+
|
|
1160
|
+
### Fixed
|
|
1161
|
+
- **SSRF bypass checklist** added to Kenobi's security audit — octal IPs, decimal IPs, IPv6, DNS rebinding, URL scheme bypass (field report #12).
|
|
1162
|
+
- **AI output sanitization checklist** added — nested structure handling, secure fallback paths, isolated-vm requirement, sandbox escape test (field report #11).
|
|
1163
|
+
- **"Grep for siblings" rule** added to Batman's QA Pass 2 and Gauntlet fix batches — fix ALL instances of a pattern, not just the one reported (field reports #11 + #12).
|
|
1164
|
+
- **Encoding variant check** added to Gauntlet fix batch protocol — verify security filters handle all name encodings (field report #12).
|
|
1165
|
+
- **Enum consumer sweep** added to Build Protocol Phase 5 — grep all consumers when adding new enum values (field report #11).
|
|
1166
|
+
- **Cross-surface consistency sweep** added to Build Protocol Phase 8 — search all surfaces when changing pricing/tiers/counts (field report #11).
|
|
1167
|
+
- **Kusanagi added to Gauntlet Round 1** — infrastructure issues discovered earlier, not deferred to Round 3 (field report #11).
|
|
1168
|
+
- **Whitelist-over-blocklist** documented as general security principle in Kenobi's method doc (field report #12).
|
|
1169
|
+
|
|
1170
|
+
---
|
|
1171
|
+
|
|
1172
|
+
## [7.0.0] - 2026-03-15
|
|
1173
|
+
|
|
1174
|
+
### Added
|
|
1175
|
+
- **The Penthouse — Multi-User RBAC** — Three roles (admin, deployer, viewer) with invitation-only user creation. TOTP mandatory. ROUTE_ROLES middleware enforces role hierarchy on every API endpoint.
|
|
1176
|
+
- `wizard/lib/user-manager.ts` — User CRUD, invitation system (24h tokens, single-use, timing-safe comparison), `hasRole()` hierarchy, `hasProjectAccess()` per-project checks.
|
|
1177
|
+
- `wizard/api/users.ts` — User management endpoints: list, invite, complete-invite, remove, role change. All admin-gated with defense-in-depth.
|
|
1178
|
+
- **Per-Project Access Control** — Project ownership and access lists. Each project has an owner and a list of `{ username, role }` entries. Queries filtered by access — users only see projects they own or have been granted access to.
|
|
1179
|
+
- `grantAccess()`, `revokeAccess()`, `getProjectsForUser()`, `checkProjectAccess()` in project-registry.
|
|
1180
|
+
- Access management modal in Lobby UI with focus trap, Escape handler, DOM-safe event binding.
|
|
1181
|
+
- Role badges on project cards (Owner/Deployer/Viewer).
|
|
1182
|
+
- **Linked Services** — Bidirectional project linking for monorepo orchestration. BFS group resolution with cycle detection. Coordinated deploy checks across linked services.
|
|
1183
|
+
- `wizard/lib/deploy-coordinator.ts` — `checkDeployNeeded()`, `getDeployPlan()` with audit.
|
|
1184
|
+
- Link/unlink API endpoints with dual-ownership verification.
|
|
1185
|
+
- Link management modal in Lobby UI.
|
|
1186
|
+
- **Rollback Dashboard** — Deploy history panel in Avengers Tower with collapsible sidebar, keyboard navigation (Escape to close), `aria-expanded`/`aria-controls`.
|
|
1187
|
+
- `wizard/ui/rollback.js` — viewer-gated deploy history display.
|
|
1188
|
+
- **Cost Tracker** — Aggregate monthly costs across all accessible projects via existing `monthlyCost` field. NaN/negative guard on writes.
|
|
1189
|
+
- `wizard/lib/cost-tracker.ts` — `getAggregateCosts()`, `setProjectCost()`.
|
|
1190
|
+
- Lobby Penthouse footer fetches real cost data from API.
|
|
1191
|
+
- **Agent Memory** — Cross-project lesson storage for methodology learning. 1000-entry cap with oldest-eviction. Serialized writes, atomic file ops.
|
|
1192
|
+
- `wizard/lib/agent-memory.ts` — `addLesson()`, `getLessons()`, `getRelevantLessons()`.
|
|
1193
|
+
- `~/.voidforge/lessons.json` (0600 permissions).
|
|
1194
|
+
- 4 Architecture Decision Records: ADR-028 (RBAC), ADR-029 (per-project access), ADR-030 (linked services), ADR-031 (observatory features).
|
|
1195
|
+
|
|
1196
|
+
### Changed
|
|
1197
|
+
- `tower-auth.ts` — Extended for multi-user: `UserRole` type, `SessionInfo` return from `validateSession()`, role in sessions, `createUser()` accepts role, `removeUser()`/`updateUserRole()`/`listUsers()`/`getUserRole()` added, legacy user migration (pre-v7.0 users get `role: 'admin'`), username character validation (`/^[a-zA-Z0-9._-]+$/`), X-Forwarded-For takes rightmost IP.
|
|
1198
|
+
- `server.ts` — ROUTE_ROLES middleware maps API paths to minimum roles. WebSocket upgrade uses `hasRole()` (not hardcoded string). CSRF error format standardized. User context propagated to handlers.
|
|
1199
|
+
- `project-registry.ts` — `owner`, `access`, `linkedProjects` fields. `removeProject()` cleans up linked references. `removeUserFromAllProjects()` clears ownership on user deletion. BFS `getLinkedGroup()`.
|
|
1200
|
+
- `pty-manager.ts` — `username` field in PtySession for audit trail.
|
|
1201
|
+
- `terminal.ts` — Per-project access checks, user context extraction, session list filtered by ownership, kill endpoint with ownership check.
|
|
1202
|
+
- `lobby.js` — Role-aware UI: conditional buttons per role, access/link modals with focus traps, cost display from API.
|
|
1203
|
+
- `lobby.html` — Access modal, link modal, role badge styling, linked badge styling.
|
|
1204
|
+
- `tower.html` — Rollback panel with a11y attributes.
|
|
1205
|
+
|
|
1206
|
+
### Fixed
|
|
1207
|
+
- Tailwind v4 content scanning check added to Galadriel's UX method (field report #10).
|
|
1208
|
+
- Platform Build Gate added to Kusanagi's DevOps method (field report #10).
|
|
1209
|
+
|
|
1210
|
+
### Security
|
|
1211
|
+
- ROUTE_ROLES enforces minimum role on all 45+ API endpoints (defense-in-depth with handler-level checks).
|
|
1212
|
+
- Per-project access returns 404 (not 403) to prevent information leakage.
|
|
1213
|
+
- Invite tokens: 256-bit, timing-safe comparison, 24h expiry, single-use with rollback on failure.
|
|
1214
|
+
- Terminal sessions filtered by user — deployers can only see/kill their own sessions.
|
|
1215
|
+
- Viewer blocked from terminals (WebSocket + REST), deploy metadata, and write operations.
|
|
1216
|
+
- User removal clears project ownership to prevent privilege escalation via username reuse.
|
|
1217
|
+
- Session cookie always sets Secure flag in remote mode (not header-dependent).
|
|
1218
|
+
- `ProjectAccessEntry.role` tightened to `'deployer' | 'viewer'` (admin grants blocked at API).
|
|
1219
|
+
- 52 security/quality findings resolved across 4 missions + 2 Gauntlet checkpoints.
|
|
1220
|
+
|
|
1221
|
+
---
|
|
1222
|
+
|
|
1223
|
+
## [6.5.1] - 2026-03-15
|
|
1224
|
+
|
|
1225
|
+
### Changed
|
|
1226
|
+
- **The Arthurian Retcon** — All Arthurian legend references removed from the codebase. VoidForge's identity is rooted in its declared fictional universes (Tolkien, Marvel, DC, Star Wars, Star Trek, Dune, Anime). Arthurian legend was never one of them.
|
|
1227
|
+
- **Merlin → Gandalf** (Tolkien) — Setup wizard is now Gandalf. *"I'm looking for someone to share in an adventure."* The wizard who kicks off the journey.
|
|
1228
|
+
- **Gandalf → Radagast** (Tolkien) — UX edge-cases sub-agent renamed to free the name. Radagast notices things at the boundaries others overlook.
|
|
1229
|
+
- **Camelot → Avengers Tower** (Marvel) — Browser terminal / operations console. Stark's HQ. Every project gets a floor.
|
|
1230
|
+
- **Great Hall → The Lobby** (Marvel) — Multi-project dashboard. Where you see every floor at a glance.
|
|
1231
|
+
- **Round Table → The Penthouse** (Marvel) — v7.0 multi-user coordination. Where the team meets. Top floor.
|
|
1232
|
+
- 39 files modified, 5 files renamed, ~180 replacements across code + docs.
|
|
1233
|
+
|
|
1234
|
+
---
|
|
1235
|
+
|
|
1236
|
+
## [6.5.0] - 2026-03-15
|
|
1237
|
+
|
|
1238
|
+
### Added
|
|
1239
|
+
- **Avengers Tower Remote** — self-hosted VoidForge with 5-layer security. Access your forge from any browser, anywhere.
|
|
1240
|
+
- `wizard/lib/tower-auth.ts` — Full authentication engine: PBKDF2 password hashing (210k iterations, NIST SP 800-63B), TOTP 2FA (RFC 6238 with replay protection), session management (in-memory only, 8-hour TTL, IP binding, single active session), rate limiting (5/min, 10-consecutive lockout for 30 min), serialized writes, periodic cleanup.
|
|
1241
|
+
- `wizard/api/auth.ts` — Login, logout, session check, initial setup endpoints. Runtime type validation, field length caps, Cache-Control: no-store on auth responses.
|
|
1242
|
+
- `wizard/ui/login.html` + `wizard/ui/login.js` — Login page with setup flow (first-time TOTP enrollment) and auth flow (username + password + TOTP). Keyboard accessible, autofill-friendly.
|
|
1243
|
+
- `wizard/lib/audit-log.ts` — Append-only JSON lines audit trail at `~/.voidforge/audit.log`. Logs: login attempts, sessions, vault events, terminal sessions, deploys, credential access. 10MB rotation. Never crashes the server.
|
|
1244
|
+
- `wizard/lib/provisioners/self-deploy.ts` — VoidForge self-deploy provisioner: installs Node.js, Caddy, PM2, creates forge-user, generates Caddy HTTPS config, starts VoidForge as a managed service.
|
|
1245
|
+
- ADR-027: Avengers Tower Remote 5-Layer Security Architecture.
|
|
1246
|
+
|
|
1247
|
+
### Changed
|
|
1248
|
+
- `wizard/server.ts` — Auth middleware gates all routes in remote mode (exempt: login/setup/static). WebSocket upgrade validates Avengers Tower session. CSP includes `wss://` for remote WebSocket. CORS expanded for remote domain. Binds to `0.0.0.0` in remote mode.
|
|
1249
|
+
- `wizard/lib/pty-manager.ts` — Remote mode: 20 max sessions (vs. 5 local), audit log integration (terminal_start/terminal_end), forge-user sandboxing.
|
|
1250
|
+
- `wizard/ui/lobby.html` + `wizard/ui/lobby.js` — Auth-aware: shows username, logout button, redirects to login when unauthenticated.
|
|
1251
|
+
- `scripts/voidforge.ts` — `--remote` flag (remote mode), `--self` flag (self-deploy), `--host` flag (domain name).
|
|
1252
|
+
|
|
1253
|
+
### Security
|
|
1254
|
+
- Two-password architecture: login password (bcrypt/PBKDF2) ≠ vault password (AES-256-GCM). Compromised session cannot read credentials.
|
|
1255
|
+
- TOTP replay protection: lastTotpStep tracked per user, codes rejected at or before last used step.
|
|
1256
|
+
- Rate limiting with memory cleanup: periodic eviction of expired sessions and stale rate-limit entries.
|
|
1257
|
+
- Setup endpoint rate-limited and serialized to prevent race-to-setup attacks.
|
|
1258
|
+
- X-Forwarded-For only trusted in remote mode (behind Caddy reverse proxy).
|
|
1259
|
+
- Auth store throws on corruption (prevents silent re-setup attack vector).
|
|
1260
|
+
- Shell injection prevention in self-deploy: input validation + shell escaping.
|
|
1261
|
+
- IP binding on sessions: mismatch invalidates session entirely.
|
|
1262
|
+
|
|
1263
|
+
---
|
|
1264
|
+
|
|
1265
|
+
## [6.0.0] - 2026-03-15
|
|
1266
|
+
|
|
1267
|
+
### Added
|
|
1268
|
+
- **Avengers Tower Multi — The Lobby** — multi-project operations console. Dashboard shows all VoidForge projects with health status, deploy URL, framework badge, cost, and quick actions.
|
|
1269
|
+
- `wizard/lib/project-registry.ts` — CRUD for `~/.voidforge/projects.json`. Serialized writes (vault pattern), atomic file ops (temp + fsync + rename), backup before overwrite, field validation on read, MUTABLE_FIELDS allowlist on update.
|
|
1270
|
+
- `wizard/api/projects.ts` — REST API: list all, get by ID, import existing project, delete from registry. Runtime type validation on all inputs, path canonicalization via `resolve()`.
|
|
1271
|
+
- `wizard/ui/lobby.html` + `wizard/ui/lobby.js` — The Lobby dashboard with project cards, health indicators (color + text labels for WCAG 1.4.1), import modal with focus trap, keyboard-navigable cards, 30-second polling.
|
|
1272
|
+
- `wizard/lib/health-poller.ts` — Background health checks every 5 minutes. Parallel via `Promise.allSettled`, 5-second timeout per project, SSRF protection (private IP blocklist, redirect blocking, hex/octal/IPv6 coverage).
|
|
1273
|
+
- **Import Existing Project** — `POST /api/projects/import` scans a directory for CLAUDE.md, PRD frontmatter, .env, build-state, and auto-detects framework from package.json/requirements.txt/Gemfile.
|
|
1274
|
+
- **Back-to-Lobby navigation** in Avengers Tower — "← Lobby" button with session persistence confirmation.
|
|
1275
|
+
- ADR-026: Project Registry and The Lobby Architecture.
|
|
1276
|
+
|
|
1277
|
+
### Changed
|
|
1278
|
+
- Server landing page changed from Gandalf (`/index.html`) to The Lobby (`/lobby.html`). Gandalf still accessible via direct URL and "New Project" buttons.
|
|
1279
|
+
- `wizard/server.ts` — health poller lifecycle (start on listen, stop before PTY cleanup), double-shutdown guard, CORS fix (non-matching origins get no allow-origin header).
|
|
1280
|
+
- `wizard/api/project.ts` — registers new projects in registry, runtime type validation on all body fields, .env template injection prevention (newline stripping).
|
|
1281
|
+
- `wizard/ui/tower.html` — ARIA landmarks (`<main>`, `role="alert"`), `:focus-visible` on buttons, `prefers-reduced-motion` support.
|
|
1282
|
+
|
|
1283
|
+
### Security
|
|
1284
|
+
- SSRF prevention in health poller: URL scheme validation, private IP blocklist (IPv4, IPv6, hex, octal, decimal, 0.0.0.0, metadata endpoints), `redirect: 'manual'` to prevent redirect-based SSRF.
|
|
1285
|
+
- CORS hardened: non-matching origins no longer receive `Access-Control-Allow-Origin` header.
|
|
1286
|
+
- .env injection prevention: newlines stripped from all template-interpolated fields (name, description, domain, hostname, deploy target).
|
|
1287
|
+
- Runtime type validation on `/api/project/create` body fields (was unsafe `as` cast).
|
|
1288
|
+
- Registry file backup before every write (data loss prevention).
|
|
1289
|
+
|
|
1290
|
+
### Fixed
|
|
1291
|
+
- **Field Report #9:** Rex (Kenobi's security team) now checks build output HTML for inline scripts before tightening CSP. Gauntlet adds build-output verification gate after every fix batch. Prevents framework-generated inline scripts (Next.js, Nuxt, SvelteKit) from being blocked by CSP changes.
|
|
1292
|
+
|
|
1293
|
+
---
|
|
1294
|
+
|
|
1295
|
+
## [5.5.0] - 2026-03-15
|
|
1296
|
+
|
|
1297
|
+
### Added
|
|
1298
|
+
- **Avengers Tower Local** — browser terminal with real Claude Code. Never leave the browser.
|
|
1299
|
+
- `wizard/lib/pty-manager.ts` — PTY lifecycle management using `node-pty`. Spawns real shell processes, manages multiple sessions per project, 30-min idle timeout, max 5 concurrent sessions.
|
|
1300
|
+
- `wizard/api/terminal.ts` — WebSocket ↔ PTY bridge (raw RFC 6455 implementation). REST endpoints for session CRUD. Vault password required to establish connections.
|
|
1301
|
+
- `wizard/ui/tower.html` + `wizard/ui/tower.js` — browser terminal UI using xterm.js. Tabbed interface: multiple terminals per project (Claude Code, Shell, SSH). Auto-launches Claude Code on open. Resize handling, session reconnection on navigate-back.
|
|
1302
|
+
- "Open in Avengers Tower" button on Gandalf's done screen — transitions directly from project creation to browser terminal.
|
|
1303
|
+
- WebSocket upgrade handler in `wizard/server.ts` — routes `/ws/terminal` to PTY bridge.
|
|
1304
|
+
- Graceful shutdown: `killAllSessions()` on SIGINT/SIGTERM.
|
|
1305
|
+
- New dependency: `node-pty` (~2MB native module, same as VS Code terminal)
|
|
1306
|
+
- CSP updated to allow xterm.js CDN and WebSocket connections
|
|
1307
|
+
|
|
1308
|
+
---
|
|
1309
|
+
|
|
1310
|
+
## [5.0.0] - 2026-03-15
|
|
1311
|
+
|
|
1312
|
+
### Added
|
|
1313
|
+
- **Lessons integration** — Wong extracts learnings after every `/assemble` run and appends to `LESSONS.md`. Lessons confirmed across 2+ projects are flagged for promotion to method docs. `/build` Phase 0 now loads relevant lessons from prior projects to inform the current build.
|
|
1314
|
+
- **Build analytics** — `wizard/lib/build-analytics.ts` tracks metrics across projects: phase findings, fix-to-finding ratios, framework-specific trends. Stored at `~/.voidforge/analytics.json`. `surfaceTrends()` generates human-readable insights.
|
|
1315
|
+
- **Smart scoping** — `/campaign` now orders missions complexity-first within dependency tiers. Hardest features (most integrations, edge cases, schema relationships) built first when energy is fresh; polish and admin later.
|
|
1316
|
+
- **Project templates** — 4 curated starters: SaaS (Next.js + Stripe + teams), REST API (Express + Postgres), Marketing Site (Next.js + Tailwind), Admin Dashboard (Next.js + shadcn/ui). `npx voidforge init --template saas` or select in Gandalf wizard. `npx voidforge templates` lists all available.
|
|
1317
|
+
- New file: `wizard/lib/templates.ts` — template definitions with frontmatter, suggested integrations, and PRD scaffolding
|
|
1318
|
+
- New API: `GET /api/prd/templates`, `GET /api/prd/templates/get?id=saas`
|
|
1319
|
+
- New CLI: `npx voidforge templates` command
|
|
1320
|
+
|
|
1321
|
+
---
|
|
1322
|
+
|
|
1323
|
+
## [4.6.0] - 2026-03-15
|
|
1324
|
+
|
|
1325
|
+
### Added
|
|
1326
|
+
- **`/debrief --inbox`** — Bashir's inbox mode: fetches open `field-report` issues from GitHub, triages each one (accept/already-fixed/wontfix/needs-info), applies accepted fixes, comments on issues with triage results, closes resolved issues. Completes the feedback loop: downstream submits → upstream triages → `/void` propagates fixes.
|
|
1327
|
+
- **`/imagine` retry logic** — 3 attempts with exponential backoff (1s, 3s, 9s) for DALL-E server errors (500/502/503). ~15% of requests hit transient failures; now handled automatically.
|
|
1328
|
+
- **Global CSS conflict check** in `/ux` Step 1.5 — Galadriel checks for specificity conflicts between global stylesheets and component-level utilities (Tailwind, CSS modules). Common traps: `overflow: hidden` on parents, stacking context conflicts, `:focus-visible` bleed-through.
|
|
1329
|
+
|
|
1330
|
+
### Changed
|
|
1331
|
+
- Count cross-referencing in `/qa` already existed (shipped in v4.4.0) — confirmed during field report triage, no changes needed.
|
|
1332
|
+
|
|
1333
|
+
---
|
|
1334
|
+
|
|
1335
|
+
## [4.5.0] - 2026-03-15
|
|
1336
|
+
|
|
1337
|
+
### Added
|
|
1338
|
+
- **PRD-driven credential collection** — Gandalf Step 4.5: after pasting a PRD, the wizard parses the env var section and presents a dynamic form to collect project-specific API keys (WhatsApp, Mapbox, Google Places, etc.). All stored in the vault with AES-256-GCM encryption.
|
|
1339
|
+
- New API endpoint: `POST /api/prd/env-requirements` — parses PRD content for service-specific credentials
|
|
1340
|
+
- New API endpoint: `POST /api/credentials/env-batch` — stores multiple credentials in one call
|
|
1341
|
+
- New Gandalf step between PRD and Deploy Target with accordion-style credential groups
|
|
1342
|
+
- **Headless deploy mode** — `npx voidforge deploy --headless` runs the full provisioner pipeline from the terminal without opening a browser. Uses vault credentials and PRD frontmatter. Progress output to stdout with colored status icons. Used by `/build` Phase 12 so you never leave Claude Code.
|
|
1343
|
+
- New file: `wizard/lib/headless-deploy.ts` — terminal adapter for provisioner pipeline
|
|
1344
|
+
- Updated `scripts/voidforge.ts` with `--headless` and `--dir` flags
|
|
1345
|
+
- Updated `/build` Phase 12 to reference headless deploy
|
|
1346
|
+
- **PostgreSQL extension support** — VPS provisioner now detects `postgis` and `pg_trgm` from Prisma schema's `extensions` directive and generates install commands in `provision.sh`
|
|
1347
|
+
- Updated `wizard/lib/provisioners/scripts/provision-vps.ts` with extension block generator
|
|
1348
|
+
- Updated `wizard/api/deploy.ts` to parse Prisma schema for extensions
|
|
1349
|
+
|
|
1350
|
+
### Changed
|
|
1351
|
+
- Gandalf navigation updated to handle Step 4b (project credentials) with proper back/forward flow
|
|
1352
|
+
- HOLOCRON updated with headless deploy documentation
|
|
1353
|
+
- `/build` Phase 12 now references `npx voidforge deploy --headless` as the primary deploy path
|
|
1354
|
+
|
|
1355
|
+
---
|
|
1356
|
+
|
|
1357
|
+
## [4.4.0] - 2026-03-15
|
|
1358
|
+
|
|
1359
|
+
### Added
|
|
1360
|
+
- **`/imagine` command** — Celebrimbor's Forge: AI image generation from PRD visual descriptions. Scans PRD for illustrations, portraits, OG images, hero art. Derives style from brand section. Generates via OpenAI API with asset manifest for regeneration. Provider-abstracted.
|
|
1361
|
+
- New agent: **Celebrimbor** (Tolkien, Silmarillion) — "Hand of Silver," greatest elven smith
|
|
1362
|
+
- Sub-agents: **Nori** (asset scanner), **Ori** (prompt engineer), **Dori** (integration checker)
|
|
1363
|
+
- **`/debrief` command** — Bashir's Field Reports: post-session analysis that identifies methodology gaps and proposes fixes in VoidForge's own language. Can submit structured post-mortems as GitHub issues on the upstream repo.
|
|
1364
|
+
- New agent: **Bashir** (Star Trek DS9) — chief medical officer, diagnostician
|
|
1365
|
+
- Sub-agents: **Ezri** (timeline), **O'Brien** (root cause), **Nog** (solutions), **Jake** (report)
|
|
1366
|
+
- `wizard/lib/image-gen.ts` — Image generation provider abstraction with OpenAI support, asset manifest, cost estimation
|
|
1367
|
+
- `wizard/lib/asset-scanner.ts` — PRD parser for visual asset requirements with brand style extraction
|
|
1368
|
+
- `docs/methods/FORGE_ARTIST.md` — Celebrimbor's full method doc
|
|
1369
|
+
- `docs/methods/FIELD_MEDIC.md` — Bashir's full method doc
|
|
1370
|
+
|
|
1371
|
+
### Changed
|
|
1372
|
+
- Lead agent count: 11 → 13 (Celebrimbor + Bashir)
|
|
1373
|
+
- Command count: 13 → 15 (`/imagine` + `/debrief`)
|
|
1374
|
+
- NAMING_REGISTRY.md: 7 new character entries (Celebrimbor, Nori, Ori, Dori, Ezri, Nog, Jake)
|
|
1375
|
+
|
|
1376
|
+
---
|
|
1377
|
+
|
|
1378
|
+
## [4.2.0] - 2026-03-14
|
|
1379
|
+
|
|
1380
|
+
### Added
|
|
1381
|
+
- **Prisma type generation** (ADR-025) — runs `prisma generate` and creates `types/index.ts` barrel export. Conditional on Prisma schema existing.
|
|
1382
|
+
- **OpenAPI spec generation** (ADR-025) — generates starter `docs/api.yaml` with framework-aware defaults. Users fill in their endpoints.
|
|
1383
|
+
- **Database ERD generation** (ADR-025) — parses Prisma schema and generates `docs/schema.md` with Mermaid entity-relationship diagram.
|
|
1384
|
+
- **Database seeding** (ADR-025) — generates `prisma/seed.ts` with factory functions for all models. Run with `npx tsx prisma/seed.ts`.
|
|
1385
|
+
- **Integration templates** (ADR-025) — pre-built client wrappers selected via PRD frontmatter:
|
|
1386
|
+
- `payments: stripe` → `lib/stripe.ts` (checkout, portal, webhooks)
|
|
1387
|
+
- `email: resend` → `lib/resend.ts` (transactional email)
|
|
1388
|
+
- `storage: s3` → `lib/s3-upload.ts` (signed URL upload/download)
|
|
1389
|
+
|
|
1390
|
+
### Security
|
|
1391
|
+
- All integration templates validate required env vars at startup (fail-fast, not silent fallback)
|
|
1392
|
+
|
|
1393
|
+
---
|
|
1394
|
+
|
|
1395
|
+
## [4.1.0] - 2026-03-14
|
|
1396
|
+
|
|
1397
|
+
### Added
|
|
1398
|
+
- **Structured deploy logs** (ADR-021) — every successful provision is persisted to `~/.voidforge/deploys/` with timestamp, target, URL, resources, and sanitized outputs. New `/api/deploys` endpoint to query deploy history.
|
|
1399
|
+
- **AWS cost estimation** (ADR-022) — before provisioning AWS targets (VPS/S3), emits an estimated monthly cost based on instance type, RDS, and ElastiCache selections. Informational only, does not block.
|
|
1400
|
+
- **Post-deploy health monitoring** (ADR-023) — VPS: generates `infra/healthcheck.sh` cron script (curl every 5 minutes, log failures). Platforms: emits direct links to Vercel Analytics, Railway Metrics, or Cloudflare dashboard.
|
|
1401
|
+
- **Sentry error tracking** (ADR-024) — optional integration. When `sentry-dsn` exists in vault, generates framework-specific Sentry SDK initialization code (`sentry.ts`, `sentry.client.config.ts`, or `sentry_config.py`). Writes DSN to `.env`. Non-fatal — works without it.
|
|
1402
|
+
|
|
1403
|
+
### Security
|
|
1404
|
+
- Deploy log outputs are sanitized (password/secret/token keys stripped) before persisting to disk — same logic as SSE output sanitizer.
|
|
1405
|
+
- Health check script sanitizes projectName and deployUrl to prevent shell injection in generated bash.
|
|
1406
|
+
|
|
1407
|
+
---
|
|
1408
|
+
|
|
1409
|
+
## [4.0.0] - 2026-03-14
|
|
1410
|
+
|
|
1411
|
+
### Added
|
|
1412
|
+
- **Pre-deploy build step** (ADR-016) — framework-aware build runs BEFORE any deploy action. Detects build command and output directory per framework (Node, Django, Rails). Installs dependencies automatically. Skips if output already exists or no package.json found.
|
|
1413
|
+
- **GitHub Actions CI/CD generation** (ADR-017) — generates `ci.yml` (test + lint on PR) and `deploy.yml` (deploy on merge to main) during GitHub pre-step. Framework-aware test/lint/build commands. Deploy target-specific workflows (Vercel, Cloudflare, Railway, VPS, S3). Required secrets documented in generated files.
|
|
1414
|
+
- **Environment validation script** (ADR-018) — generates `validate-env.js` or `validate_env.py` that checks all required env vars at startup. Detects placeholder values. Works in both CommonJS and ESM projects.
|
|
1415
|
+
- **Credential scoping** (ADR-020) — each provisioner only receives the vault keys it needs, not the full vault. Extends the cleanup scoping pattern from v3.8.0 to the provisioning phase. Internal `_`-prefixed keys (GitHub metadata) pass through.
|
|
1416
|
+
|
|
1417
|
+
### Changed
|
|
1418
|
+
- **Railway API migration** (ADR-019) — replaced deprecated `pluginCreate` GraphQL mutation with `templateDeploy` for database/Redis provisioning. Falls back to `serviceCreate` if templates unavailable. Fixed custom domain ordering (now created after service). Deploy polling queries by service ID to target the correct service.
|
|
1419
|
+
- `provision.ts` — framework value normalized to lowercase at boundary. Build failure message clarified. Fatal error now includes sanitized detail. Hostname validation includes format example. keepaliveTimer moved into finally block.
|
|
1420
|
+
- `github.ts` — accepts framework/deployTarget params for CI/CD generation. Second commit/push for workflow files after initial push.
|
|
1421
|
+
- S3 deploy uses framework-aware output directory via `getBuildOutputDir()` instead of hardcoded `dist`.
|
|
1422
|
+
|
|
1423
|
+
### Architecture
|
|
1424
|
+
- 5 new ADRs: 016 (build step), 017 (CI/CD), 018 (env validation), 019 (Railway templates), 020 (credential scoping)
|
|
1425
|
+
|
|
1426
|
+
---
|
|
1427
|
+
|
|
1428
|
+
## [3.9.1] - 2026-03-14
|
|
1429
|
+
|
|
1430
|
+
### Added
|
|
1431
|
+
- **ROADMAP.md** — 5-version strategic roadmap (v4.0 Reliability → v5.0 Intelligence)
|
|
1432
|
+
- **PRD-VOIDFORGE.md** — VoidForge's own product requirements document (root-level, not synced to user projects via /void)
|
|
1433
|
+
- **`/campaign --plan`** — planning mode: update PRD and ROADMAP with new ideas without building. Dax analyzes where it fits, Odo checks dependencies, presents changes for review.
|
|
1434
|
+
|
|
1435
|
+
### Changed
|
|
1436
|
+
- `/campaign` PRD discovery: checks `/PRD-VOIDFORGE.md` at root first, falls back to `/docs/PRD.md`. User projects unaffected.
|
|
1437
|
+
|
|
1438
|
+
---
|
|
1439
|
+
|
|
1440
|
+
## [3.9.0] - 2026-03-14
|
|
1441
|
+
|
|
1442
|
+
### Added
|
|
1443
|
+
- **/campaign command** — Sisko's Danger Room: read the PRD, pick the next mission, finish the fight, repeat until done. Autonomous campaign execution with mission scoping, dependency ordering, and The Prophecy Board for tracking progress across sessions.
|
|
1444
|
+
- **Sisko** (Benjamin Sisko, DS9) promoted to 11th lead agent. Star Trek now has two leads: Picard (architecture) and Sisko (campaign). Sub-agents: Kira (ops), Dax (strategy), Odo (prerequisites).
|
|
1445
|
+
- `docs/methods/CAMPAIGN.md` — full operating rules, 6-step sequence, session management, victory condition.
|
|
1446
|
+
- Flags: `--resume` (continue mid-campaign), `--fast` (skip Crossfire+Council in each mission), `--mission "Name"` (jump to specific PRD section).
|
|
1447
|
+
|
|
1448
|
+
### Changed
|
|
1449
|
+
- Command count updated to 13, lead count to 11 across CLAUDE.md, HOLOCRON.md, README.md, and NAMING_REGISTRY.md.
|
|
1450
|
+
|
|
1451
|
+
---
|
|
1452
|
+
|
|
1453
|
+
## [3.8.0] - 2026-03-14
|
|
1454
|
+
|
|
1455
|
+
### Added
|
|
1456
|
+
- **Haku's Last Mile** — every deploy target is now fully automated end-to-end. Run `npm run deploy` and get a live URL, not a manual checklist.
|
|
1457
|
+
- **GitHub integration** — new cloud provider in Gandalf. Collects PAT, creates repos, pushes code. Used by Vercel, Cloudflare Pages, and Railway for auto-deploy on push.
|
|
1458
|
+
- **SSH deploy module** — provisions EC2 servers remotely (provision.sh), deploys via release-directory strategy with atomic symlink swap, health checks, and automatic rollback on failure.
|
|
1459
|
+
- **S3 deploy via SDK** — uploads build directory to S3 with correct MIME types and cache-control headers. No AWS CLI dependency (ADR-014).
|
|
1460
|
+
- **Shared exec utility** — child process wrapper with timeout, abort signal, and streaming (ADR-013). Used by GitHub and SSH modules.
|
|
1461
|
+
- **Shared env-writer** — extracted .env append logic from 5 copy-pasted provisioner implementations.
|
|
1462
|
+
- **Deploy polling** — Vercel, Cloudflare Pages, and Railway provisioners poll deployment status after git push, reporting progress until the app is live.
|
|
1463
|
+
- **DEPLOY_URL** and **GITHUB_REPO_URL** displayed as clickable links on the Haku Done screen.
|
|
1464
|
+
- 5 Architecture Decision Records: ADR-011 (GitHub pre-step), ADR-012 (no GitHub cleanup), ADR-013 (exec utility), ADR-014 (S3 via SDK), ADR-015 (platform auto-deploy).
|
|
1465
|
+
|
|
1466
|
+
### Changed
|
|
1467
|
+
- **Vercel provisioner** — links GitHub repo, sets env vars via API, polls deploy. Re-runs (409) now fetch the existing project ID so all steps execute.
|
|
1468
|
+
- **Cloudflare provisioner** — includes GitHub source at project creation (required by Cloudflare API). Re-runs set CF_PROJECT_URL. Next.js destination dir corrected to `out`.
|
|
1469
|
+
- **Railway provisioner** — creates service with GitHub source, sets env vars using Railway's `${{Plugin.VAR}}` syntax. Deprecated `pluginCreate` gets clear fallback guidance.
|
|
1470
|
+
- **AWS VPS provisioner** — uses shared slugify and env-writer. Error messages now include resource IDs and console URLs instead of generic "Check AWS Console."
|
|
1471
|
+
- **GitHub org repos** — uses `/orgs/{owner}/repos` endpoint when owner is explicitly set, with fallback to `/user/repos`.
|
|
1472
|
+
|
|
1473
|
+
### Security
|
|
1474
|
+
- **Token never touches disk** — git push uses `http.extraheader` via environment variables instead of embedding PAT in the URL. No reflog persistence (ADR-011).
|
|
1475
|
+
- **Triple token sanitization** — error messages scrubbed with 3 regexes covering URL-embedded tokens, Base64 Authorization headers, and GIT_CONFIG env vars.
|
|
1476
|
+
- **projectDir validation** — rejects paths with `..` segments or non-absolute paths to prevent directory traversal.
|
|
1477
|
+
- **Credential scoping** — in-memory cleanup credentials store only target-specific keys, not the full vault.
|
|
1478
|
+
- **Auth gate on /incomplete** — orphaned run enumeration now requires vault unlock.
|
|
1479
|
+
- **.gitignore defense-in-depth** — verifies `.env` and `.ssh/` are protected before `git add -A`.
|
|
1480
|
+
- **Secret stripping loop** — SSE output deletes any key containing "password", "secret", or "token" (case-insensitive).
|
|
1481
|
+
|
|
1482
|
+
### Fixed
|
|
1483
|
+
- Vercel 409 (project exists) now fetches project ID — re-runs no longer silently skip linking, env vars, and deploy.
|
|
1484
|
+
- Cloudflare 409 now sets `CF_PROJECT_URL` — re-runs show the deploy URL on the Done screen.
|
|
1485
|
+
- Removed duplicate `slugify` from aws-vps.ts (diverged from shared implementation).
|
|
1486
|
+
- Removed unused `httpsPut` import from vercel.ts.
|
|
1487
|
+
- `.env` value parser strips surrounding quotes before uploading to Vercel.
|
|
1488
|
+
- `npm ci --omit=dev` replaces `--ignore-scripts` in SSH deploy (fixes native deps like bcrypt, sharp).
|
|
1489
|
+
- Null safety on all `safeJsonParse` casts in Cloudflare provisioner (8/8 now include `| null`).
|
|
1490
|
+
|
|
1491
|
+
---
|
|
1492
|
+
|
|
1493
|
+
## [3.7.0] - 2026-03-14
|
|
1494
|
+
|
|
1495
|
+
### Added
|
|
1496
|
+
- **/assemble command** — Fury's Initiative: 13-phase full pipeline (architect → build → 3x review → UX → 2x security → devops → QA → test → crossfire → council). Calls every agent from every universe. Convergence loop, session checkpointing, --resume/--fast/--skip-build flags.
|
|
1497
|
+
- **Fury** promoted to 10th lead agent (Marvel → The Initiative). Hill added to Marvel pool.
|
|
1498
|
+
- **/thumper command** — Chani's Worm Rider: drive Claude Code via Telegram from anywhere. Gom Jabbar passphrase authentication with PBKDF2 hashing, message deletion, 60-minute idle timeout, 3-attempt lockout. Five bash scripts, zero dependencies.
|
|
1499
|
+
- **Dune universe** — Chani as lead (Worm Rider) with 20 named characters. Sub-agents: Stilgar (security), Thufir Hawat (parsing), Duncan Idaho (relay), Reverend Mother Mohiam (authentication).
|
|
1500
|
+
- **Transport auto-detection** — TMUX_SENDKEYS (cross-platform), PTY_INJECT (headless Linux), OSASCRIPT (macOS Terminal.app/iTerm2). Explicit guidance for VS Code, Warp, Alacritty, Kitty users. Windows Git Bash gets "use WSL" message.
|
|
1501
|
+
- **Water Rings stop hook** — automatic task completion notifications to Telegram.
|
|
1502
|
+
- **LESSONS.md** — first entries from Kongo.io Sprint 4 post-mortem.
|
|
1503
|
+
|
|
1504
|
+
### Changed
|
|
1505
|
+
- **/review** — mandatory integration tracing (follow URLs/keys to consumers) and error path verification (verify UI displays specific server errors).
|
|
1506
|
+
- **/ux** — mandatory error state testing with intentionally invalid/conflicting input.
|
|
1507
|
+
- **/qa** — Step 2.5 smoke tests: hit the running server after build, verify cross-module paths at runtime.
|
|
1508
|
+
- **/test** — Step 3.5 cross-module integration tests: at least one test per feature crossing module boundaries.
|
|
1509
|
+
- **/security** — Maul executes actual HTTP exploitation attempts. Ahsoka traces the full auth middleware chain.
|
|
1510
|
+
- **/build** — Phase 4/5/6 gates define "works manually" explicitly: error paths, cross-module integration, generated URLs.
|
|
1511
|
+
- **/devops** — post-deploy smoke tests verify application behavior (not just infrastructure health).
|
|
1512
|
+
- CLAUDE.md, HOLOCRON.md, README.md — 12 commands, 10 agents, 7 universes, 170+ characters.
|
|
1513
|
+
|
|
1514
|
+
### Security
|
|
1515
|
+
- Gom Jabbar: PBKDF2 hashing (100k iterations), Telegram message deletion with fail-secure invalidation, idle timeout, lockout.
|
|
1516
|
+
- Control character sanitization strips terminal-dangerous bytes from all injected messages.
|
|
1517
|
+
- Root guard prevents /thumper from running as root.
|
|
1518
|
+
- Empty hash bypass prevention refuses auth when hashing tools unavailable.
|
|
1519
|
+
- Config injection prevention via `printf '%q'` and umask 077.
|
|
1520
|
+
|
|
1521
|
+
### Fixed
|
|
1522
|
+
- THUMPER.md rewritten — 10+ factual errors corrected (wrong timeouts, hash algo, flow description, nonexistent CLI flags).
|
|
1523
|
+
- Script copy clarified — hostile lockout softened, ambiguous passphrase prompts made explicit, empty notifications made useful.
|
|
1524
|
+
|
|
1525
|
+
---
|
|
1526
|
+
|
|
1527
|
+
## [3.5.3] - 2026-03-14
|
|
1528
|
+
|
|
1529
|
+
### Changed
|
|
1530
|
+
- **Renamed `/voice` to `/thumper`** — resolved conflict with Claude Code's built-in `/voice` skill. A thumper is the Fremen device that summons the sandworm — plant it, the worm comes, you ride it.
|
|
1531
|
+
- **Renamed "Remote Bridge" to "Worm Rider"** — proper Dune universe domain name for Chani's role. Worm riding is the quintessential Fremen skill.
|
|
1532
|
+
- All files renamed: `scripts/voice/` → `scripts/thumper/`, `voice.sh` → `thumper.sh`, `VOICE.md` → `THUMPER.md`, `.voidforge/voice/` → `.voidforge/thumper/`.
|
|
1533
|
+
- `/security` — Maul now executes actual HTTP exploitation attempts, not just conceptual red-teaming. Ahsoka traces the full auth middleware chain.
|
|
1534
|
+
- `/build` — Phase 4/5/6 gates now define "works manually" explicitly: must test error paths and cross-module integration at runtime.
|
|
1535
|
+
- `/devops` — Post-deploy smoke tests verify application behavior, not just infrastructure health.
|
|
1536
|
+
- Kongo.io lessons applied across `/review`, `/ux`, `/qa`, `/test` — integration tracing, error path verification, smoke tests, cross-module tests.
|
|
1537
|
+
|
|
1538
|
+
---
|
|
1539
|
+
|
|
1540
|
+
## [3.5.0] - 2026-03-14
|
|
1541
|
+
|
|
1542
|
+
### Added
|
|
1543
|
+
- **/voice command** — Chani's remote bridge: drive Claude Code sessions via Telegram from anywhere. Environment-aware setup auto-detects tmux, headless Linux, and macOS terminals.
|
|
1544
|
+
- **Gom Jabbar authentication** — passphrase-based session gate with PBKDF2 hashing, Telegram message deletion, 60-minute idle timeout, and 3-attempt lockout. Passphrase is erased from chat history; session invalidated if deletion fails.
|
|
1545
|
+
- **Dune universe** — 9th agent lead (Chani) with 20 named characters from Arrakis. Sub-agents: Stilgar (security), Thufir (parsing), Idaho (relay), Mohiam (authentication).
|
|
1546
|
+
- **Water Rings stop hook** — automatic task completion notifications to Telegram when Claude Code finishes responding.
|
|
1547
|
+
- **Transport vectors** — three injection methods: TMUX_SENDKEYS (cross-platform), PTY_INJECT (headless Linux), OSASCRIPT (macOS Terminal.app/iTerm2). Auto-detection with manual override.
|
|
1548
|
+
|
|
1549
|
+
### Security
|
|
1550
|
+
- Control character sanitization strips terminal-dangerous bytes (Ctrl+C, ESC, ANSI sequences) from all incoming messages before injection.
|
|
1551
|
+
- Root guard prevents /voice from running as root (unspoofable `id -u` check).
|
|
1552
|
+
- Config injection prevention via `printf '%q'` escaping and umask 077 subshells.
|
|
1553
|
+
- Empty hash bypass prevention — refuses authentication when hashing tools are unavailable.
|
|
1554
|
+
- Credentials stored in chmod 600 sietch vault, directory chmod 700, gitignored via `.voidforge/`.
|
|
1555
|
+
|
|
1556
|
+
### Changed
|
|
1557
|
+
- CLAUDE.md updated with /voice command, Chani in Team table, VOICE.md in Docs Reference.
|
|
1558
|
+
- HOLOCRON.md updated to 11 commands, 9 agents, 7 universes, 170+ characters. Full /voice Arsenal entry with Gom Jabbar explanation.
|
|
1559
|
+
- README.md updated with /voice in commands table, Chani in agent leads, voice/ in structure tree.
|
|
1560
|
+
- NAMING_REGISTRY.md expanded with full Dune universe section (Chani lead + 20 pool characters).
|
|
1561
|
+
- Environment detection improved: VS Code, Warp, Alacritty, Kitty on macOS now get explicit guidance instead of silent OSASCRIPT failure. Windows Git Bash/MSYS2 gets explicit "use WSL" message.
|
|
1562
|
+
|
|
1563
|
+
---
|
|
1564
|
+
|
|
1565
|
+
## [3.4.0] - 2026-03-13
|
|
1566
|
+
|
|
1567
|
+
### Added
|
|
1568
|
+
- **/test command** — Batman's test-writing mode: coverage gap analysis, test architecture review, write missing unit/integration/component tests. Different from /qa (which finds bugs).
|
|
1569
|
+
- **/review command** — Picard's code review: pattern compliance (Spock), code quality (Seven), maintainability (Data). Parallel analysis with re-verification pass.
|
|
1570
|
+
- **Deathstroke** (DC) — adversarial tester added to Batman's QA team. Penetration-style probing, bypasses validations, chains unexpected interactions.
|
|
1571
|
+
- **Constantine** (DC) — cursed code hunter added to Batman's QA team. Finds dead branches, impossible conditions, logic that only works by accident.
|
|
1572
|
+
- **Maul** (Star Wars) — red-team attacker added to Kenobi's Security team. Thinks like an attacker, chains vulnerabilities, re-probes after remediation.
|
|
1573
|
+
- **Double-pass review pattern** — all review phases (QA, UX, Security) now use find → fix → re-verify. Catches fix-induced regressions before they ship.
|
|
1574
|
+
|
|
1575
|
+
### Changed
|
|
1576
|
+
- **Context thresholds for 1M** — checkpoint trigger raised from 15 files/30 tool calls to 50 files/100 tool calls. Pre-load active domain's methodology at session start instead of on-demand only.
|
|
1577
|
+
- **Picard's architecture review parallelized** — Spock + Uhura run in parallel (independent), then La Forge + Data run in parallel. ~30% faster wall-clock time.
|
|
1578
|
+
- **Stark's backend audit parallelized** — Rogers + Banner analysis in parallel, then Barton + Romanoff + Thor in parallel. Fury validates all findings.
|
|
1579
|
+
- **Security audit restructured** — aligned method doc and command to 4 clear phases: parallel scans → sequential audits → remediate → Maul re-verifies.
|
|
1580
|
+
- **Build protocol phases 9-11** — merged into a unified double-pass review cycle. All three agents (Batman, Galadriel, Kenobi) find issues in parallel, fixes are batched, then all three re-verify.
|
|
1581
|
+
- **Galadriel's UX pass** — added Samwise + Gandalf re-verification after fixes to catch a11y regressions.
|
|
1582
|
+
- **Session boundaries expanded** — small-to-medium projects can complete phases 0-8 in a single session with 1M context.
|
|
1583
|
+
- **SUB_AGENTS.md** — added Coulson and Bombadil to the full roster table, fixed phantom anime character references.
|
|
1584
|
+
|
|
1585
|
+
---
|
|
1586
|
+
|
|
1587
|
+
## [3.3.1] - 2026-03-13
|
|
1588
|
+
|
|
1589
|
+
### Fixed
|
|
1590
|
+
- **PRD generation silently truncating** — output was hard-coded to 8192 max tokens, causing complex PRDs to cut off mid-stream with no warning. Now uses each model's full output capacity (Opus 32K, Sonnet 16K, Haiku 8K).
|
|
1591
|
+
- **No truncation feedback** — server now tracks `stop_reason` from the Claude API `message_delta` event and forwards a `truncated` signal to the client, which displays a visible warning instead of silently accepting incomplete output.
|
|
1592
|
+
|
|
1593
|
+
---
|
|
1594
|
+
|
|
1595
|
+
## [3.3.0] - 2026-03-13
|
|
1596
|
+
|
|
1597
|
+
### Added
|
|
1598
|
+
- **Async resource polling** — Haku now waits for RDS (up to 15min) and ElastiCache (up to 5min) to become available, extracts real endpoints (`DB_HOST`, `REDIS_HOST`), and writes them to `.env`. No more "check the AWS Console." (ADR-009)
|
|
1599
|
+
- **Domain registration via Cloudflare Registrar** — buy a domain through Haku as a pre-DNS step. Registration creates the zone, then DNS records are created in it. Includes availability check, price display, and non-refundable purchase confirmation gate. (ADR-010)
|
|
1600
|
+
- **Cloudflare Account ID** field in Cloud Providers — required for domain registration, validated as 32-char hex on save
|
|
1601
|
+
- **Post-failure registration verification** — if the registration API times out, Haku re-checks availability to detect masked successes before reporting failure
|
|
1602
|
+
|
|
1603
|
+
### Changed
|
|
1604
|
+
- **Partial success UI** — if infrastructure provisions but domain/DNS fails, Haku shows "partial success" with guidance instead of binary pass/fail
|
|
1605
|
+
- **Output display** — infra details on the Done page are now grouped logically (server → DB → cache → platform → domain → DNS) with human-readable date formatting for domain expiry
|
|
1606
|
+
- **AbortController integration** — polling loops cancel cleanly when the client disconnects instead of running for up to 15 minutes server-side
|
|
1607
|
+
- **HTTP client** — single retry on transient errors (ECONNRESET, ETIMEDOUT) with 2s delay; per-call timeout override (60s for registration)
|
|
1608
|
+
- **Polling jitter** — random interval variation prevents API throttling under concurrent use
|
|
1609
|
+
- **ADR-009** corrected to reflect actual AbortController implementation
|
|
1610
|
+
- **Cloudflare DNS** accepts `pending` zones from fresh domain registrations (previously required `active`)
|
|
1611
|
+
|
|
1612
|
+
### Fixed
|
|
1613
|
+
- **Terminal failure detection** — RDS/ElastiCache polling breaks immediately on `failed`/`deleted`/`create-failed` states instead of waiting for timeout
|
|
1614
|
+
- **Cleanup handling** — resources in "creating" state get a manual-cleanup warning instead of a silent deletion failure
|
|
1615
|
+
- **Asymmetric token check** — all combinations of missing Cloudflare credentials now emit clear skip messages
|
|
1616
|
+
- **404 availability fallback** — notes that availability is unconfirmed when domain is simply absent from the account
|
|
1617
|
+
- **Registration row** hidden for Docker (local) deploys and invalid hostnames
|
|
1618
|
+
- **`state.deployCmd`** declared in initial state object
|
|
1619
|
+
|
|
1620
|
+
### Security
|
|
1621
|
+
- **CSRF protection** — `X-VoidForge-Request` custom header required on all POST requests; triggers CORS preflight to block cross-origin form submissions
|
|
1622
|
+
- **DB_PASSWORD stripped from SSE** — password stays in `.env` only, never sent to the browser
|
|
1623
|
+
- **AWS error sanitization** — ARNs, account IDs, and internal identifiers no longer leak to the client
|
|
1624
|
+
- **`.env` file permissions** — `chmod 600` applied after generation, matching SSH key protection
|
|
1625
|
+
- **Provisioning concurrency lock** — returns 429 if a run is already in progress
|
|
1626
|
+
- **`encodeURIComponent(accountId)`** on all Cloudflare API URL interpolations — prevents path injection
|
|
1627
|
+
- **Domain + Account ID validation** at client, server, and registrar layers
|
|
1628
|
+
- **Random password suffix** replaces static `A1!` — uppercase + digit + special char now randomized
|
|
1629
|
+
- **Hostname allowlist** documented in HTTP client module
|
|
1630
|
+
|
|
1631
|
+
---
|
|
1632
|
+
|
|
1633
|
+
## [3.2.0] - 2026-03-13
|
|
1634
|
+
|
|
1635
|
+
### Added
|
|
1636
|
+
- **`/void` slash command** — Bombadil's Forge Sync. Self-update mechanism that fetches the latest VoidForge methodology from the scaffold branch, compares every shared file, shows a human-readable update plan, and applies changes while preserving project-specific customizations (PRD, logs, code, CLAUDE.md project section). Works on all three tiers.
|
|
1637
|
+
- **Forge Keeper method doc** (`docs/methods/FORGE_KEEPER.md`) — Bombadil's protocol with 5-step update sequence, sub-agent roster (Goldberry, Treebeard, Radagast), shared file manifest, edge cases, and rollback guidance
|
|
1638
|
+
- **Bombadil** (Tolkien) as 8th lead agent — Tom Bombadil, the Forge Keeper. Ancient, joyful, sings while he works. Tends the forge itself while others forge applications.
|
|
1639
|
+
- **Goldberry** added to Tolkien character pool — River-daughter, upstream change detection
|
|
1640
|
+
- ADR-008 (scaffold branch as update source for /void)
|
|
1641
|
+
|
|
1642
|
+
### Changed
|
|
1643
|
+
- **Command count** updated from 7 to 8 across CLAUDE.md, README, and Holocron
|
|
1644
|
+
- **`.claude/settings.json` excluded from Bombadil's sync scope** — user permissions and hooks are never overwritten (Picard's architecture review finding)
|
|
1645
|
+
- **Semver comparison** in `/void` uses integer parsing, not string comparison — prevents incorrect results for versions like 3.10.x vs 3.9.x (Picard's architecture review finding)
|
|
1646
|
+
|
|
1647
|
+
---
|
|
1648
|
+
|
|
1649
|
+
## [3.1.0] - 2026-03-13
|
|
1650
|
+
|
|
1651
|
+
### Added
|
|
1652
|
+
- **PRD-driven EC2 instance type selection** — PRD frontmatter `instance_type` field recommends t3.micro/small/medium/large based on project scope (database, cache, workers, payments, framework). Haku wizard shows the recommendation with cost estimates and allows override. RDS and ElastiCache sizes match automatically. (ADR-005)
|
|
1653
|
+
- **Cloudflare DNS wiring** — new `hostname` field in Gandalf wizard and PRD frontmatter. After Haku provisions infrastructure, it auto-creates Cloudflare DNS records (A for VPS, CNAME for platforms) pointing your domain at the provisioned resource. Works with all deploy targets. Non-fatal — infrastructure still succeeds if DNS fails. (ADR-006)
|
|
1654
|
+
- **Platform custom domain registration** — Haku now registers your hostname directly with Vercel, Railway, and Cloudflare Pages via their APIs, so the platform expects traffic on your domain
|
|
1655
|
+
- **Caddyfile auto-HTTPS** — when hostname is set, generated Caddyfile uses the domain instead of `:80`, enabling automatic Let's Encrypt SSL via Caddy
|
|
1656
|
+
- **Instance sizing module** (`wizard/lib/instance-sizing.ts`) — scoring heuristic with `recommendInstanceType()`, RDS/ElastiCache size mapping, swap scaling
|
|
1657
|
+
- **DNS module** (`wizard/lib/dns/`) — Cloudflare zone lookup, record CRUD, post-provision orchestration, cleanup support
|
|
1658
|
+
- ADRs 005 (instance type selection), 006 (DNS as post-provision step), 007 (hostname vs domain naming)
|
|
1659
|
+
|
|
1660
|
+
### Changed
|
|
1661
|
+
- **Provision script swap size** scales with instance type (2GB for micro/small, 1GB for medium, none for large)
|
|
1662
|
+
- **Cloudflare help text** updated to recommend Zone:DNS:Edit token permission for DNS wiring
|
|
1663
|
+
- **Architecture doc** updated with DNS in system diagram and new ADR references
|
|
1664
|
+
|
|
1665
|
+
---
|
|
1666
|
+
|
|
1667
|
+
## [3.0.0] - 2026-03-12
|
|
1668
|
+
|
|
1669
|
+
### Added
|
|
1670
|
+
- **The VoidForge Holocron** (`HOLOCRON.md`) — comprehensive 9-chapter user guide covering setup, first project walkthrough, build protocol, agent system, slash commands, code patterns, build journal, troubleshooting, and evolution. Named after the Star Wars knowledge devices.
|
|
1671
|
+
- **Three-tier distribution** — VoidForge now ships on three branches: `main` (full wizard), `scaffold` (methodology only), `core` (ultra-light drop-in). Each has its own README, release, and install path.
|
|
1672
|
+
- **Branch sync rules** in CLAUDE.md — shared methodology files (agents, methods, patterns, commands) must propagate across all three branches.
|
|
1673
|
+
|
|
1674
|
+
### Changed
|
|
1675
|
+
- **README restructured** — stripped down to pure system reference (architecture, components, tables). All walkthrough and guide content moved to the Holocron.
|
|
1676
|
+
- **Semver rules updated** — MAJOR now includes distribution model changes.
|
|
1677
|
+
- **VoidForge is now designed for external adoption** — three install paths, comprehensive guide, clean separation between system reference and user guide.
|
|
1678
|
+
|
|
1679
|
+
---
|
|
1680
|
+
|
|
1681
|
+
## [2.8.0] - 2026-03-12
|
|
1682
|
+
|
|
1683
|
+
### Added
|
|
1684
|
+
- **Wizard split into Gandalf (setup) and Haku (deploy)** — `npx voidforge init` launches the setup wizard, `npx voidforge deploy` launches the deploy wizard. Provisioning moved from Gandalf to Haku for cleaner separation of concerns.
|
|
1685
|
+
- **Architecture docs** — `ARCHITECTURE.md` (system overview + diagram), `SCALING.md` (three-tier assessment), `TECH_DEBT.md` (prioritized catalog), `FAILURE_MODES.md` (component failure analysis with recovery procedures)
|
|
1686
|
+
- **Security checklist** — `SECURITY_CHECKLIST.md`, reusable pre-deploy verification list covering secrets, vault, server, AWS provisioning, generated infrastructure, input validation, and dependencies
|
|
1687
|
+
|
|
1688
|
+
### Changed
|
|
1689
|
+
- **Gandalf UI simplified** — removed provisioning steps (now in Haku). Gandalf focuses on vault, credentials, project setup, PRD, and scaffold creation.
|
|
1690
|
+
|
|
1691
|
+
### Fixed
|
|
1692
|
+
- **QA fixes** for Gandalf/Haku restructure
|
|
1693
|
+
- **UX polish** for Haku deploy wizard
|
|
1694
|
+
|
|
1695
|
+
### Security
|
|
1696
|
+
- **DB/Redis security group ports** restricted from `0.0.0.0/0` (internet-open) to self-referencing security group (SG-only). Prevents database and Redis exposure to the internet.
|
|
1697
|
+
- **Security headers** added to local server: `X-Frame-Options: DENY`, `Content-Security-Policy`, `Referrer-Policy`, `Permissions-Policy`
|
|
1698
|
+
- **Error message sanitization** — API error responses no longer leak internal details (file paths, stack traces). Real errors logged server-side only.
|
|
1699
|
+
|
|
1700
|
+
---
|
|
1701
|
+
|
|
1702
|
+
## [2.7.0] - 2026-03-12
|
|
1703
|
+
|
|
1704
|
+
### Added
|
|
1705
|
+
- **Real API provisioning** for all deploy targets — Vercel creates projects, Railway creates projects with database/Redis services, Cloudflare creates Pages projects with D1 databases, Static S3 creates buckets with website hosting. All verified with live infrastructure.
|
|
1706
|
+
- **Shared HTTP client** for provisioner API calls with safe JSON parsing and slug generation
|
|
1707
|
+
- **Crash recovery cleanup** — orphaned resources from process crashes can now be cleaned up after server restart via disk-persisted manifests
|
|
1708
|
+
- **SSE keepalive** on provisioning and PRD generation streams — prevents proxy/VPN/browser timeouts with 15-second heartbeats and event IDs
|
|
1709
|
+
- **VoidForge favicon** — purple void portal icon
|
|
1710
|
+
|
|
1711
|
+
### Changed
|
|
1712
|
+
- **Generated deploy scripts** use release-directory strategy with atomic symlink swap, post-deploy health check, and automatic rollback on failure. Keeps last 5 releases.
|
|
1713
|
+
- **Generated provision scripts** include fail2ban, SSH hardening (no root/password), unattended security updates, 2GB swap, and log rotation
|
|
1714
|
+
- **Generated Caddyfile** includes HSTS, Content-Security-Policy, and Permissions-Policy headers
|
|
1715
|
+
- **Generated Dockerfiles** include HEALTHCHECK instructions. Build errors no longer silenced.
|
|
1716
|
+
- **Generated docker-compose** uses env var DB passwords (not hardcoded), internal-only ports for DB/Redis, and app health checks
|
|
1717
|
+
- **Generated PM2 config** includes crash-loop protection and graceful reload timeouts
|
|
1718
|
+
- **Done page** shows target-specific deploy commands, human-readable labels, clickable URLs, and free tier/cost info
|
|
1719
|
+
- **Railway** terminology updated from "plugins" to "services"
|
|
1720
|
+
|
|
1721
|
+
### Fixed
|
|
1722
|
+
- Safe JSON parsing on all external API responses — no more crashes on HTML error pages
|
|
1723
|
+
- S3 cleanup paginates object listing — handles buckets with more than 1000 objects
|
|
1724
|
+
- Slugify strips leading/trailing hyphens and provides fallback for empty slugs
|
|
1725
|
+
- Cloudflare D1 database only created for SQLite projects, not Postgres
|
|
1726
|
+
- Railway token validation works with API tokens (not just user sessions)
|
|
1727
|
+
- Help button now expands provider accordion when collapsed
|
|
1728
|
+
- Vercel and Cloudflare 409 (project exists) paths track resources for cleanup
|
|
1729
|
+
|
|
1730
|
+
### Security
|
|
1731
|
+
- Generated Caddyfile: HSTS, CSP, Permissions-Policy headers
|
|
1732
|
+
- Generated provision.sh: fail2ban, SSH hardening, firewall lock-down-first
|
|
1733
|
+
- Generated docker-compose: DB passwords from environment variables, database/Redis ports internal-only
|
|
1734
|
+
- All 4 ADRs now implemented: provision manifest, atomic vault writes, API response validation, SSE keepalive
|
|
1735
|
+
|
|
1736
|
+
---
|
|
1737
|
+
|
|
1738
|
+
## [2.6.0] - 2026-03-12
|
|
1739
|
+
|
|
1740
|
+
### Added
|
|
1741
|
+
- **Auto-provisioning system** — wizard steps 8 + 9. After project creation, provision infrastructure for your chosen deploy target with live SSE-streamed progress.
|
|
1742
|
+
- **Docker provisioner** — generates Dockerfile (multi-stage per framework), docker-compose.yml (with optional Postgres/MySQL/Redis services), and .dockerignore
|
|
1743
|
+
- **AWS VPS provisioner** — full EC2 + security group + SSH key pair provisioning, with optional RDS (Postgres/MySQL) and ElastiCache (Redis). Generates deploy scripts (provision.sh, deploy.sh, rollback.sh), Caddyfile, and PM2 ecosystem config.
|
|
1744
|
+
- **Config-only provisioners** — Vercel (vercel.json), Railway (railway.toml), Cloudflare (wrangler.toml), Static S3 (deploy-s3.sh)
|
|
1745
|
+
- **Provisioning API** — `POST /api/provision/start` (SSE-streamed), `POST /api/provision/cleanup`, `GET /api/provision/incomplete` for crash recovery
|
|
1746
|
+
- **Provision manifest** (ADR-001) — write-ahead resource tracking at `~/.voidforge/runs/` prevents orphaned AWS resources on crash
|
|
1747
|
+
- **Pre-provisioning confirmation gate** — users see what will be created (and AWS cost warning) before clicking "Start Provisioning"
|
|
1748
|
+
- **4 Architecture Decision Records** — provision manifest, atomic vault writes, API response validation, SSE keepalive
|
|
1749
|
+
- **QA regression checklist** — 24-item checklist covering all provisioning flows, a11y, and mobile
|
|
1750
|
+
|
|
1751
|
+
### Changed
|
|
1752
|
+
- **Vault writes are now atomic** (ADR-002) — write-to-temp + fsync + rename prevents credential loss on crash
|
|
1753
|
+
- **Wizard expanded to 9 steps** — step 8 (provision with confirmation gate) and step 9 (done with infra details)
|
|
1754
|
+
- **User-controlled transitions** — replaced auto-advance with explicit "Continue" button for a11y
|
|
1755
|
+
- **Advanced setup card** — updated copy from "Infrastructure provisioning in future phases" to "Automatic infrastructure provisioning"
|
|
1756
|
+
|
|
1757
|
+
### Fixed
|
|
1758
|
+
- **JS injection** in PM2 config via project names containing quotes — now uses `JSON.stringify`
|
|
1759
|
+
- **S3 deploy script** — added missing `--exclude '*'` before `--include` flags
|
|
1760
|
+
- **RDS/EC2 networking** — RDS instance now shares security group with EC2; DB/Redis ports added to SG
|
|
1761
|
+
- **RDS password** — generated with `crypto.randomBytes` instead of predictable slug-based derivation
|
|
1762
|
+
- **Skip provisioning** — now aborts in-flight fetch via AbortController
|
|
1763
|
+
- **Cleanup race condition** — resources tracked per run ID instead of global mutable state
|
|
1764
|
+
- **Security group cleanup** — retry loop with 10s intervals instead of insufficient 5s sleep
|
|
1765
|
+
- **Empty SSH key** — validates AWS returns key material before writing file
|
|
1766
|
+
- **Rollback script** — framework-aware restart commands (Django/Rails) instead of hardcoded npm/PM2
|
|
1767
|
+
|
|
1768
|
+
### Security
|
|
1769
|
+
- **Atomic vault writes** prevent credential file corruption
|
|
1770
|
+
- **DB password masked** on wizard done page (shown as bullet characters)
|
|
1771
|
+
- **`.ssh/` added to .gitignore** — prevents accidental deploy key commits
|
|
1772
|
+
|
|
1773
|
+
---
|
|
1774
|
+
|
|
1775
|
+
## [2.5.0] - 2026-03-12
|
|
1776
|
+
|
|
1777
|
+
### Added
|
|
1778
|
+
- **`/git` slash command** (`.claude/commands/git.md`) — Coulson's version & release management. 7-step flow: orient, analyze diffs, determine semver bump, write changelog, craft commit, verify consistency, optional push. 5 Marvel sub-agents (Vision, Friday, Wong, Rogers, Barton).
|
|
1779
|
+
- **Release Manager protocol** (`docs/methods/RELEASE_MANAGER.md`) — Coulson's method doc with semver rules, changelog writing guidelines, commit message format, and verification checklist. Works for VoidForge and generic projects.
|
|
1780
|
+
- **Coulson** (Marvel) as 7th lead agent — S.H.I.E.L.D.'s meticulous record-keeper for version management
|
|
1781
|
+
- **Friday** added to Marvel character pool in NAMING_REGISTRY.md — AI assistant for versioning and automation
|
|
1782
|
+
|
|
1783
|
+
### Changed
|
|
1784
|
+
- **CLAUDE.md** — added `/git` to Slash Commands table, Coulson to The Team table, Release Manager to Docs Reference
|
|
1785
|
+
- **README.md** — added `/git` to commands table, Coulson to leads table, updated command count to 7, added git.md and RELEASE_MANAGER.md to repo structure
|
|
1786
|
+
- **NAMING_REGISTRY.md** — added Coulson as Marvel lead (release), Friday to Marvel pool, updated rules and reserved list
|
|
1787
|
+
|
|
1788
|
+
---
|
|
1789
|
+
|
|
1790
|
+
## [2.4.0] - 2026-03-12
|
|
1791
|
+
|
|
1792
|
+
### Added
|
|
1793
|
+
- **Cloud provider management** — new credential validation and storage for AWS, Vercel, Railway, and Cloudflare. Live API validation (STS, GraphQL, token verify) with vault-encrypted storage.
|
|
1794
|
+
- **Deploy target selection** in wizard — choose deployment platform based on which providers have valid credentials. Docker always available.
|
|
1795
|
+
- **Deploy target in `.env`** — scaffolded projects include `DEPLOY_TARGET` when a platform is selected
|
|
1796
|
+
|
|
1797
|
+
### Changed
|
|
1798
|
+
- **Wizard UI overhaul** — redesigned credential step with provider cards, inline help, validation feedback. Expanded wizard flow with cloud and deploy target integration.
|
|
1799
|
+
- **Vault concurrency** — all vault operations now serialized through a write queue to prevent race conditions on concurrent requests
|
|
1800
|
+
- **Async key derivation** — PBKDF2 moved from sync to async to avoid blocking the event loop during encryption/decryption
|
|
1801
|
+
|
|
1802
|
+
### Fixed
|
|
1803
|
+
- **Command injection** in browser launcher — replaced `exec` with `execFile` to prevent shell interpretation of URLs
|
|
1804
|
+
- **Directory traversal** in static file server — replaced naive `..` stripping with `resolve()` + prefix check
|
|
1805
|
+
- **SSE crash on client disconnect** — PRD generation stream now safely no-ops when the client has disconnected
|
|
1806
|
+
- **CORS wildcard** — scoped `Access-Control-Allow-Origin` to the wizard's actual origin instead of `*`
|
|
1807
|
+
- **Error detail leaking** — API error responses no longer include internal error bodies or stack traces
|
|
1808
|
+
- **Password length cap** — vault unlock rejects passwords over 256 characters (DoS prevention)
|
|
1809
|
+
|
|
1810
|
+
### Removed
|
|
1811
|
+
- **`claude` dependency** — removed unused package from dependencies
|
|
1812
|
+
|
|
1813
|
+
---
|
|
1814
|
+
|
|
1815
|
+
## [2.3.0] - 2026-03-12
|
|
1816
|
+
|
|
1817
|
+
### Added
|
|
1818
|
+
- **Interactive setup wizard** (`wizard/`) — browser-based onboarding launched via `npm run wizard`. 5-step flow: credential vault, project setup, PRD creation, review, create.
|
|
1819
|
+
- **Encrypted credential vault** (`wizard/lib/vault.ts`) — AES-256-GCM with PBKDF2 key derivation, stored at `~/.voidforge/vault.enc`. Cross-platform (macOS, Linux, Windows). Users manage the password however they like.
|
|
1820
|
+
- **PRD generation with Claude** — streams a full PRD from a product idea using the best available model (auto-resolved via `/v1/models` API). Primary path in the wizard.
|
|
1821
|
+
- **Bring Your Own PRD** tab — copy the generator prompt to clipboard for use with any AI (ChatGPT, Gemini, etc.), paste the result back with frontmatter validation.
|
|
1822
|
+
- **Project scaffolding** — TypeScript port of `new-project.sh` logic with git init, CLAUDE.md substitution, .env generation.
|
|
1823
|
+
- **CLI entry point** (`scripts/voidforge.ts`) — `npx voidforge init` launches the wizard.
|
|
1824
|
+
- **Dynamic model resolution** (`wizard/lib/anthropic.ts`) — fetches available models from Anthropic API, picks newest Opus > Sonnet > Haiku. No hardcoded model IDs.
|
|
1825
|
+
- **Frontmatter parser** (`wizard/lib/frontmatter.ts`) — YAML frontmatter extraction and validation for PRD documents.
|
|
1826
|
+
- `tsconfig.json`, TypeScript and tsx dev dependencies.
|
|
1827
|
+
|
|
1828
|
+
### Changed
|
|
1829
|
+
- **README.md** — wizard is now the primary Quick Start path. Manual setup is an alternative section. Repository structure updated to include `wizard/` and `scripts/voidforge.ts`.
|
|
1830
|
+
- **`new-project.sh`** — comment noting `wizard/` exclusion from project copies.
|
|
1831
|
+
- **`package.json`** — added `bin` field, `wizard` and `typecheck` scripts, `type: "module"`.
|
|
1832
|
+
|
|
1833
|
+
---
|
|
1834
|
+
|
|
1835
|
+
## [2.2.0] - 2026-03-12
|
|
1836
|
+
|
|
1837
|
+
### Changed
|
|
1838
|
+
- **Project renamed to VoidForge** — "from nothing, everything." Replaced all references to `claude-scaffold` across README, scripts, package files, patterns, and version docs
|
|
1839
|
+
|
|
1840
|
+
---
|
|
1841
|
+
|
|
1842
|
+
## [2.1.1] - 2026-03-12
|
|
1843
|
+
|
|
1844
|
+
### Fixed
|
|
1845
|
+
- **PostToolUse hook format** in `.claude/settings.json` — migrated from flat `command` field to nested `hooks` array structure per current Claude Code schema
|
|
1846
|
+
|
|
1847
|
+
---
|
|
1848
|
+
|
|
1849
|
+
## [2.1.0] - 2026-03-10
|
|
1850
|
+
|
|
1851
|
+
### Added
|
|
1852
|
+
- **Build Journal system** (`docs/methods/BUILD_JOURNAL.md`) — persistent logging protocol for decisions, phase state, handoffs, errors. Every agent produces structured output in `/logs/`. Agents read journal files to recover state across sessions.
|
|
1853
|
+
- **Context Window Management** (`docs/methods/CONTEXT_MANAGEMENT.md`) — session scoping guide, load-on-demand protocol, file size discipline, context checkpointing, emergency recovery.
|
|
1854
|
+
- **Job queue pattern** (`docs/patterns/job-queue.ts`) — background jobs with idempotency keys, exponential backoff retry, dead letter queue, graceful shutdown. Includes BullMQ, Celery (Django), and Sidekiq (Rails) implementations.
|
|
1855
|
+
- **Multi-tenancy pattern** (`docs/patterns/multi-tenant.ts`) — workspace scoping middleware, tenant-scoped services, role-based access control. Includes Next.js, Django, and Rails implementations.
|
|
1856
|
+
- **Error handling pattern** (`docs/patterns/error-handling.ts`) — canonical error strategy: custom error types, global handler, response shape, operational vs programmer errors. Includes Express, Django, and Rails implementations.
|
|
1857
|
+
- **Regression checklist template** in QA_ENGINEER.md — concrete table format with example entries, growth rules (2-3 items per feature, by launch: 30-50 items)
|
|
1858
|
+
- **First-deploy pre-flight checklist** in `/devops` command — env vars, secrets, DB seeding, DNS, SSL, health check, rollback test, monitoring, security review
|
|
1859
|
+
- **Phase rollback strategy** in BUILD_PROTOCOL.md and TROUBLESHOOTING.md — identify, revert, verify, isolate, fix, re-apply, log
|
|
1860
|
+
- **Test execution timeline** in BUILD_PROTOCOL.md — authoritative table of which tests are written in which phase, all marked as breaking gates
|
|
1861
|
+
- **Frontmatter validation table** in BUILD_PROTOCOL.md — valid values for each PRD field, defaults when missing
|
|
1862
|
+
- **Parallel phase marking** in BUILD_PROTOCOL.md — each phase marked as parallelizable or strictly sequential
|
|
1863
|
+
- **Multi-agent conflict resolution** in SUB_AGENTS.md — escalation protocol: check PRD, present trade-offs to user, document as ADR. Common conflict patterns with resolutions.
|
|
1864
|
+
- **Framework-to-test-runner mapping** in TESTING.md — table covering Next.js, Express, Django, Rails, Go, Spring Boot
|
|
1865
|
+
- **Batman scope clarification** — explicitly cross-cutting investigator + validator
|
|
1866
|
+
|
|
1867
|
+
### Changed
|
|
1868
|
+
- **CLAUDE.md** — added build journal and context management references, "small batches" defined (max ~200 lines), error-handling.ts as canonical source, deduped from README
|
|
1869
|
+
- **BUILD_PROTOCOL.md** — rewritten with specific verification gates (manual + automated criteria per phase), test execution timeline, rollback strategy, frontmatter validation, parallel phase marking, small batch definition (~200 lines), logging integrated at every phase
|
|
1870
|
+
- **All 6 slash commands** — rewritten from pointers to self-contained executable sequences with inline steps, context setup, parallel analysis phases, logging instructions, and handoff protocols
|
|
1871
|
+
- **SUB_AGENTS.md** — Agent tool section clarified (parallel analysis, not parallel coding), git coordination for multi-session, conflict resolution expanded with tiebreaker protocol
|
|
1872
|
+
- **QA_ENGINEER.md** — added Scope section clarifying cross-cutting role, regression checklist template with format and rules
|
|
1873
|
+
- **TESTING.md** — added framework-to-test-runner mapping table at top
|
|
1874
|
+
- **TROUBLESHOOTING.md** — added phase rollback protocol section
|
|
1875
|
+
- **All 4 original pattern files** — added framework adaptation notes (Express, Django, Rails, Vue, Svelte)
|
|
1876
|
+
- **patterns/README.md** — updated table with all 7 patterns, framework columns
|
|
1877
|
+
- **new-project.sh** — creates `/logs/` directory, copies all new files
|
|
1878
|
+
- **DevOps slash command** — adapts based on PRD `deploy` target (vps/vercel/railway/docker/static), includes first-deploy checklist
|
|
1879
|
+
|
|
1880
|
+
---
|
|
1881
|
+
|
|
1882
|
+
## [2.0.0] - 2026-03-10
|
|
1883
|
+
|
|
1884
|
+
### Added
|
|
1885
|
+
- Slash commands (`.claude/commands/`) — `/build`, `/qa`, `/security`, `/ux`, `/devops`, `/architect`
|
|
1886
|
+
- Claude Code settings (`.claude/settings.json`) — permissions, deny list, quality gate hooks
|
|
1887
|
+
- Testing protocol (`docs/methods/TESTING.md`) — automated testing pyramid
|
|
1888
|
+
- Troubleshooting guide (`docs/methods/TROUBLESHOOTING.md`) — error recovery per phase
|
|
1889
|
+
- MCP integration guide (`docs/methods/MCP_INTEGRATION.md`)
|
|
1890
|
+
- Code patterns (`docs/patterns/`) — api-route, service, component, middleware
|
|
1891
|
+
- Feedback loop (`docs/LESSONS.md`)
|
|
1892
|
+
- PRD frontmatter, conditional build phases, project sizing profiles
|
|
1893
|
+
- Phase verification gates, single-session parallelism in SUB_AGENTS.md
|
|
1894
|
+
- Per-directory CLAUDE.md convention
|
|
1895
|
+
- Behavioral directives on all 6 agent method docs
|
|
1896
|
+
|
|
1897
|
+
### Changed
|
|
1898
|
+
- CLAUDE.md restructured to dense operational instructions
|
|
1899
|
+
- QA_ENGINEER.md integrated automated testing
|
|
1900
|
+
- BUILD_PROTOCOL.md added conditional skip rules and verification gates
|
|
1901
|
+
|
|
1902
|
+
---
|
|
1903
|
+
|
|
1904
|
+
## [1.1.0] - 2026-03-10
|
|
1905
|
+
|
|
1906
|
+
### Changed
|
|
1907
|
+
- Renamed DevOps lead from Motoko to Kusanagi across all files
|
|
1908
|
+
|
|
1909
|
+
---
|
|
1910
|
+
|
|
1911
|
+
## [1.0.0] - 2026-03-10
|
|
1912
|
+
|
|
1913
|
+
### Added
|
|
1914
|
+
- Root context file (`CLAUDE.md`), 13-phase Build Protocol
|
|
1915
|
+
- 6 specialist agent protocols (Galadriel, Stark, Batman, Kenobi, Picard, Kusanagi)
|
|
1916
|
+
- 150+ named characters across 6 universes
|
|
1917
|
+
- Sub-Agent Orchestrator, PRD Generator, PRD template, QA state file
|
|
1918
|
+
- Project initialization script
|