7.5 KiB
7.5 KiB
Overnight PR/Issue Shakedown — hermes-workspace
Mission: Work through the open PRs and issues on outsourc-e/hermes-workspace, test/fix/shake them down LOCALLY, and consolidate everything safe into ONE integration PR. Run autonomously overnight. Quality over quantity — never break main.
Environment
- Working clone (USE THIS, never touch /Users/aurora/hermes-workspace — it has uncommitted local work):
/Users/aurora/hermes-workspace-swarm - Repo:
outsourc-e/hermes-workspace.ghauthed asoutsourc-e(ADMIN). pnpm. Node 22. - Build:
pnpm build· Test:pnpm test· Lint:pnpm lint· Typecheck:pnpm check - 46 open PRs, 27 open issues at start (2026-06-05 03:32 EDT).
gh pr list --state open,gh issue list --state open.
The integration branch + PR
- Create branch
chore/overnight-pr-shakedown-20260605off latest origin/main. - As you validate each upstream PR, cherry-pick / merge its changes into this branch (resolve conflicts).
- Open ONE consolidated PR titled "Overnight PR shakedown: integrate validated fixes (2026-06-05)" with a body that lists, per source PR: number, title, author, what it does, and PASS/FAIL of build+test+lint.
- Push incrementally so progress survives.
Per-PR loop (do this for each open PR, newest/highest-value first)
gh pr view <n>+gh pr diff <n>. Skip DRAFTs unless trivial+valuable.- Categorize: SAFE (small, clear, low-risk fix), REVIEW (medium), RISKY (auth/security/Docker/large refactor/i18n-934-strings), SKIP (conflicts badly / superseded / off-mission).
- For SAFE + REVIEW that look correct: apply the change onto the integration branch.
- Run
pnpm build+pnpm test+pnpm lint. If GREEN, keep it. If it breaks, try to FIX it; if you can't fix in reasonable effort, REVERT that change and log it as needs-human. - Map issues → PRs: if a PR fixes an open issue, note "fixes #" in the PR body.
Priority signal (fix these issue areas if PRs exist or you can safely patch)
- Build/ship blockers for desktop + local site: #594 React DOM crash on navigation, #579/#500/#588 Windows desktop, #573 session list React crash, #570 /api/hermes-tasks returns HTML, #572 double chat responses, #561 stuck Thinking, #552 scroll auto-jump.
- Security: #553 path traversal (validate carefully, it's good to land).
- Model picker / providers: #583 Google provider, #569 config.yaml providers, #586 MiniMax M3.
- Skip for now unless trivial: huge i18n PR #563 (934 strings), draft prototypes (#578 LeseWerk, #557 company-os).
Hard rules
- NEVER merge directly to main. Only push the integration branch + open the consolidated PR.
- NEVER force-push main. NEVER touch /Users/aurora/hermes-workspace.
- Keep main buildable: the integration branch must pass
pnpm build+pnpm testbefore each push. - Idempotent: if re-run, continue from where the branch is (don't duplicate).
- Document everything in the PR body + append a short status to this file each cycle.
- If something needs human judgment (risky security/auth/Docker, or a conflict you can't cleanly resolve), leave it OUT of the integration branch and list it under "Needs Eric" in the PR body.
Out of scope (do NOT do)
- The game-embed/Supabase-auth port (Eric handles separately; needs WebGL v1 build first).
- Publishing a release / desktop build artifact (just get main green + PR ready).
- Any deploy. Any change to the live game server.
Status log (agent appends here)
- 2026-06-05 03:33 EDT: clone + spec created. Awaiting first cycle.
- 2026-06-05 04:42 EDT: CYCLE 2b complete. Integrated 2 more additive feature PRs: #450 (external memory provider browser — 10 unit/component tests pass, routeTree auto-regen) and #457 (Echo Studio scaffold, closes #447; dropped its e2e spec since repo lacks @playwright/test and all existing e2e specs already fail in baseline). Build GREEN, test 33 fail/686 pass (zero regressions, +10 from #450). Pushed
552ee7c. PR #595 now lists 20 PRs. Remaining Needs-Eric/large: #388 CONFLICTING, #469 (106 files) CONFLICTING, #549 too large, #503 CONFLICTING, #565 needs runtime verify. — CYCLE 2 (04:35) - 2026-06-05 04:35 EDT: CYCLE 2 complete. Integrated 6 more PRs onto chore/overnight-pr-shakedown-20260605: #568 (CODEOWNERS), #523 (slash-command sync — fixup restored /plugins description test), #545 (Monaco file open), #477 (Agent Bus panel — eslint --fix on new files), #429 (per-profile skills toggle, routeTree auto-regen). #484 superseded by #545 (conflict). Build GREEN, test 33 fail/676 pass (baseline parity, zero regressions), lint 1695 (+7 from new feature files, pre-existing debt). Pushed
96b7274. PR #595 now lists 18 PRs. Skipped/Needs Eric this cycle: #503 CONFLICTING, #549 too large (71 files), #565 (zero-fork chat — needs runtime verify), #503/#484. Drafts skipped. - 2026-06-05 03:57 EDT: CYCLE 1 complete. Branch chore/overnight-pr-shakedown-20260605 off origin/main@7f845bc. Baseline: build GREEN, test 34 fail/671 pass, lint 1695 err. Integrated 12 PRs (#592 #540 #567 #553 #539 #527 #577 #586 #581 #575 #593 #544 #550) — all build+test+lint GREEN. Final: build GREEN, test 33 fail/676 pass (+5 pass, no regressions; remaining 33 are pre-existing), lint 1688 err (-7). Fixups: exported getBearerToken (#575), restored normalizeCron null-guards (#550). Opened consolidated PR #595. Needs Eric: #463 (fork-registry rename), #558 (refactor conflicts #540), #571/#543/#589 (large overlapping), #563 (i18n out-of-scope), Docker issues #591/#584/#580/#560. Drafts skipped.
- 2026-06-05 05:15 EDT: CYCLE 3 complete. Integrated 1 priority Windows-desktop PR: #579 (Windows Electron desktop build compatibility — cross-platform spawnDetached, where-hermes detection, native child_process worker fallback in swarm-lifecycle when tmux absent, portable+nsis target, strips Windows-incompatible NODE_OPTIONS/NODE_ENV; addresses #500/#588 desktop path). Applied clean, eslint --fix on new files. Build GREEN, test 33 fail/686 pass (baseline parity, zero regressions), lint 1701 (+6 residual no-unnecessary-condition on defensive optional chains in new code). Pushed
b22d9d5. PR #595 now lists 21 PRs. New Needs-Eric this cycle: #588 now CONFLICTING (44-file overlap), #585 vitest 3→4 major bump (risky), #576 web-access stack adds Docker crawl4ai service + global agent-browser (Docker=Needs Eric per spec). Remaining mergeable backlog is exhausted — everything else open is CONFLICTING, draft, Docker/auth-judgment, too-large, or out-of-scope. - 2026-06-05 06:01 EDT: CYCLE 4 complete. Integrated 2 more priority blocker-mapped PRs onto chore/overnight-pr-shakedown-20260605: #589 (native Conductor dispatch + stale terminal-state fix, Battlelamb — resolved swarm-dispatch.ts conflict vs #567 by taking buildHermesChatQueryArgs helper with correct -q prompt adjacency; +8 passing regression tests) and #543 (chat UIX/UX — thinking indicators, message dedup, streaming stability, JohnGuidry; addresses #572 double-responses + #561 stuck-Thinking; vite loadEnv→process.env SSR bearer bridge). Both: build GREEN, test 33 fail/694 pass (baseline parity, ZERO regressions, +8 from #589's tests), eslint --fix on touched files (net lint errors 1700→1588, cleaned existing debt). Pushed
ef2e4ba+5271ca9. PR #595 now lists 23 PRs. New Needs-Eric this cycle: #565 (zero-fork chat) now CONFLICTS with integrated #543 on send-stream.ts streaming path — needs human decision on streaming strategy; #588 (44-file Windows overlap w/ #579); #585 (vitest 3→4 major bump); #576 (Docker crawl4ai). Remaining mergeable backlog is again exhausted — everything else open is CONFLICTING, draft, Docker/auth-judgment, too-large (#571/#549), or out-of-scope (#563 i18n).