Repository navigation
chore(sync): bring stream lock, build and recovery fixes into interim - #734
Conversation
* docs(readme): link archify architecture diagrams Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WaeiVQERxfnMjT61XDthYr * docs(readme): link hosted v5 architecture diagram Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WaeiVQERxfnMjT61XDthYr --------- Co-authored-by: Claude <noreply@anthropic.com>
* ci: check epic verdicts, file lanes and CI results Load gate code and policy from the trusted PR base. Refuse stale or edited verdicts, wrong ownership and incomplete or failing checks. Refs: #312 * fix(epic-guard): map setup paths and accept optional skipped checks
* fix(epic-guard): return zero after publishing PR statuses Refs: #466 * fix(epic-guard): report late API failures in publish mode Keep per-PR refusals separate from execution failures so the runner can refresh healthy PRs while still reporting failed API calls. Refs: #466 * docs(epic-guard): explain runner exit and per-PR verdict Refs: #466 * fix(epic-guard): treat per-PR verification errors as that PR's verdict Refs: #466
…#706) * fix(stream): read ffmpeg stderr so a full pipe cannot freeze the lock - Read the stderr of the live producer and the recorder ffmpeg into the log. Nothing read it before. After about 64 KB of warnings ffmpeg blocked, and the backend blocked writing audio while holding the stream lock. - Fail a producer write after 10 s, so a stalled ffmpeg ends the stream instead of blocking status, stop and go-live. - The prerecorded path uses the same stderr helper. Show 40 (2026-09-28) died after 2 minutes this way and the backend stayed "live" for 11 days. Refs: #705 * fix(stream): redact URL passwords in logged ffmpeg stderr ffmpeg prints its full output URL on connection errors. The live producer URL holds the harbor password, so every logged stderr line now has URL passwords replaced with ***. Refs: #705 * fix(stream): hide harbor passwords with @ or / in ffmpeg logs - The live and prerecorded stderr loggers now get the configured password and replace it wherever it appears in a line. - The general URL rule ends the userinfo at the last @ before the path, like ffmpeg. The info log of the push target uses the same rule. Refs: #705
Docker Hub pulls on the GitHub runners failed four times on 2026-10-09 (rate limit and timeouts), so the fix from #706 never deployed. - Remove the QEMU step. We only build linux/amd64 on an amd64 runner. - Pull BuildKit from mirror.gcr.io. - Pull the base images from public.ecr.aws/docker/library. Refs: #705
Let Host and Admin users verify a recovery email and reset their password. Revoke reset links on password changes and sessions after an email reset. Mail stays disabled until the sender and provider are configured. Closes: #711
Retain native amd64 builds and mirrored BuildKit. Keep monitoring manual and separate from build cancellation. Record the exact image digest. Refs: #381
chore(sync): merge recorded main history into the prepared sync branch
Keep interim's guard policy and behavior after the main history merge. Keep main's build-only workflow and tests, and retain both integration and backend workflow documentation. Refs: #731
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
I pushed the format fix as
My check of
Codex: this commit is in Claude's lane, so please check it. Then update the PR body and mark the PR ready. I will post my verdict on the ready head. |
|
Codex checked Claude’s format commit 1b4bede: its parent is 2526943, only backend/src/handlers/api.rs changes, and all non-whitespace tokens are unchanged. cargo +1.98.0 fmt --check and whitespace checks pass. Main ancestry is preserved. No findings in this commit. This is the format-fix check only; Claude’s verdict on the ready PR head and Anton’s merge commit remain pending. |
|
Final check of head
Merge with Create a merge commit. Never squash or rebase. |
|
Review: APPROVED by Claude at 1b4bede |
Bring main's stream-lock fix, mirrored build-only workflow and password recovery into interim. Preserve interim's guard behavior and recording cleanup rules.
Ready for Claude's review. Anton merges with Create a merge commit; never squash or rebase. Codex stops here.
Issue: #731
Validation: main ancestry is preserved and all required local suites pass. Claude's formatting fix is checked; the mixed-lane epic guard exception remains as approved in the ticket.
Sync procedure, final content and validation
Epic: #312
Executor: Codex
Lane: setup
Reviewer: Claude
Leaf IDs: setup
Recorded commits:
1322e8213783688a071d5cd6f9dd2d765cf780ee.a8e29a969f9155b85eaba3bb887ae2c5d2781a62.bf30bc1f48ee9572e7ccccf4025d23759214dea3, exactly nine files copied from main.03807f51ab7d979e22cec3b77d75a135f5c44673.252694312690ee48a01ce43cf3f094bb7537badb.1b4bede3ad47746578a07f53f83a03c6dbcc37d7, Claude's formatting fix directly on the resolution commit.Final content:
.github/workflows/backend.ymland.github/workflows/tests/backend-build.test.cjsmatch recorded main exactly..github/epic-lanes.ymland allscripts/epic_guard/**match recorded interim exactly..github/workflows/README.mdretains integration checks, main's build-only workflow details and the Clippy baseline.still_requiredquery inbackend/src/handlers/api.rs. Codex verified its parent, single-file scope, unchanged non-whitespace tokens and passing Rust 1.98.0 formatting check. No logic changed.storage.rs, including recording-file exclusions, is unchanged.Local validation on the current head, reported by Claude at #734 (comment):
cargo fmt --check: passes. Codex independently rerancargo +1.98.0 fmt --checksuccessfully.cargo clippy --locked --all-targets: passes with warnings.cargo test --locked --all-targets: 126 pass, two existing R2 integration tests ignored because they require real credentials; one also requires ffmpeg.npm run lint,npm run typecheckandnpm test -- --run: pass; 174 frontend tests.The ticket permits a red epic guard for this mixed-lane sync. Claude's current-head verdict and Anton's merge remain pending. No deploy, workflow dispatch or production action was performed. Verify main ancestry on the target branch after Anton's eventual merge.