Feat v0.7.6 code hygiene + test coverage
All checks were successful
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / test-runners (pull_request) Has been skipped
CI/CD / e2e-smoke (pull_request) Has been skipped
CI/CD / test-frontend (pull_request) Successful in 5s
CI/CD / test-sqlite (pull_request) Successful in 2m54s
CI/CD / test-go-pg (pull_request) Successful in 2m56s
CI/CD / build-and-deploy (pull_request) Successful in 1m1s

Clean up channels-era dead code, align migrations, add 92 tests,
and fix backup download + admin storage tab bugs before v0.8.x
kernel expansion.

Critical fixes:
- Remove `channels` from allowedViews in db_module.go
- Fix 5 dead API routes in workflow.html → public workflow API
- Fix RenderWorkflow handler to use route param as entry token

Dead code removal:
- Delete SeedTestChannel(), RunContext.ChannelID, webhook.ChannelID
- Fix stale comments in storage.go, prometheus.go, workflow_module.go

Migration hygiene:
- Add SQLite placeholder 013_cluster_registry.sql, renumber to 014
- Compat rename in migrate.go for existing SQLite databases
- Document missing migration 008 in both 009 files

Test coverage:
- 82 workflow routing tests (all operators, branch rules, stage resolution)
- 10 middleware tests (permissions, admin, rate limiter)

Bug fixes:
- Remove dead Admin Storage tab from System category
- Fix backup download: sw.auth.token() → sw.auth._getToken()

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-02 17:31:46 +00:00
parent 5e830c04de
commit 20572ef665
22 changed files with 850 additions and 144 deletions

View File

@@ -2,6 +2,32 @@
All notable changes to Armature are documented here.
## v0.7.6 — Code Hygiene + Test Coverage
**Critical Fixes**
- Removed `channels` from `allowedViews` in `db_module.go``ext_view_channels` does not exist; `db.view("channels")` would crash
- Fixed 5 dead API routes in `workflow.html` — rewired to public workflow API (`/api/v1/public/workflows/`)
- Fixed `RenderWorkflow` handler to pass route `:id` param as entry token (was reading unset `channel_id`)
**Dead Code Removal**
- Deleted `SeedTestChannel()` from `database/testhelper.go` (inserted into nonexistent channels table)
- Removed `RunContext.ChannelID` from `sandbox/runner.go` (vestigial, unused)
- Removed `webhook.Payload.ChannelID` field (channels no longer exist — breaking webhook JSON change)
- Fixed stale comments in `storage.go`, `prometheus.go`, `workflow_module.go` referencing dead `/channels` paths
**Migration Hygiene**
- Added SQLite placeholder `013_cluster_registry.sql` (PG-only migration, aligns numbering)
- Renumbered SQLite `013_test_runner_type.sql``014` to match PG (compat rename in `migrate.go`)
- Documented missing migration 008 in both 009 files (merged into 007 during pre-1.0 consolidation)
**Test Coverage**
- 82 new workflow routing tests (`routing_test.go`): `ResolveNextStage`, `ResolveStageByName`, `ParseStageConfig`, `evaluateCondition` with all 10 operators
- 10 new middleware tests (`permissions_test.go`): `RequirePermission`, `RequireAdmin`, permission caching, `RateLimiter` (allow/deny/fail-open)
**Bug Fixes**
- Removed dead Admin "Storage" tab from System category (backend endpoint preserved for future Monitoring use)
- Fixed backup download: `sw.auth.token()``sw.auth._getToken()` — both "Download Backup" and server backup download now work
## v0.7.5 — Headless E2E + CI Gate
**CI Gating Redesign**