phase 11 cleanup: log-classifier + workflow fanout + e2e smoke#93
Merged
Conversation
Phase 06 holdover, shipped in Phase 11 cleanup. Cheap regex gate over container log output. When no patterns match in a log_check coolify fetch, finalize the run as skipped(no_errors_detected) so post-run chains gated on on:'success' don't fan out to the LLM triage step — preserves the daily cost cap (Phase 06 invariant). 16 patterns: panic/fatal, unhandled exception, OOM, port in use, ECONNREFUSED, 5xx, segfault, stack overflow, error lines, container exit non-zero, deploy failed, migration failed, postgres FATAL/PANIC, JWT/auth failures, out of disk, DNS resolution failure. Tests: hub/test/log-classifier.test.ts (21 pass) — one case per pattern + clean log + multi-match + edge cases.
Phase 11 verification deferred item. Walks dev_plan → dev_execute → dev_ship via executeChain, asserts triggeredByRunId + chainDepth propagate and the terminal step doesn't fan out further. Stubs dispatcher.runNow via mock.module to keep this DB-free. Also locks the 3-step shape invariant for security and log_check workflows so any future re-ordering shows up here before it ships.
Phase 11 verification deferred item. Skipped without REMO_E2E_DB_URL — matches hub/test/scheduled-tasks.e2e.test.ts convention. Locks the exit criterion from PLAN.md §11: every-5-min dev workflow → dev_plan populates runtime_context_snapshot with non-null project_type, repo, notify_email → chain fires dev_execute, then dev_ship.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Knocks out the three items deferred from Phase 11 (
VERIFICATION.md§"Deferred / not-shipped").Summary
hub/src/scheduler/log-classifier.ts— 16-pattern regex gate. Wired intosenders/coolify.ts: when alog_check/log_pullreturns clean, finalize asskipped(no_errors_detected)soon:'success'chains don't fan out to the LLM triage step. Cost cap preserved.hub/test/workflows-fanout.test.ts— walks dev_plan → dev_execute → dev_ship viaexecuteChain, mocksdispatcher.runNowto capture chain edges + chainDepth. Also locks the 3-step shape invariant for security and log_check.hub/test/phase-11.e2e.test.ts— gated onREMO_E2E_DB_URL, mirrorsscheduled-tasks.e2e.test.tsconvention. Scaffolds the every-5-min dev-workflow exit criterion from PLAN.md §11.Test plan
bun installbun run build:web— cleanbun test hub/test/— 416 pass / 93 skip / 8 fail (baseline was 389/90/8 → +27 pass, 0 new fails)REMO_E2E_DB_URL)🤖 Generated with Claude Code