Files
Sylpheed/docs/agents/HANDOFF-2026-09-18.md
sim e45a56ad83 chore: hand the workspace over — the gated launchers, and the state of play
Resuming happens on the other machine, so anything that lived only in this
workspace either comes into the repo or gets named as something to carry.

**The launchers come in.** `run-canary-safe.sh` (Wine) and
`run-canary-native-safe.sh` (native) are the ONLY sanctioned way to start Canary
from the editor — they force software Vulkan and refuse to launch while a
hardware Vulkan device is visible, because Canary on the AMD GPU takes VS Code
with it. They sat in the workspace root, outside git, hardcoding one machine's
absolute paths, which is exactly why they could not be checked in. They now
derive the workspace from their own location and honour `$SYLPHEED_ISO` and
`$CANARY_BIN`, so the layout is a default rather than a requirement. Same for
`run-canary-native.sh` (interactive, hardware Vulkan — not from the IDE),
`diagnose-freeze.sh`, `live-guest-state.sh`, `heaptrack-wrap.sh` and the
`asound-null.conf` the native launcher needs beside it.

Both safe launchers were run from `tools/` before this commit: the native one
reached content in 20 s (`VERDICT: HEALTHY`, title + 25,398 XMA lines, no
faults), the Wine one ran 25 s and logged 4 `ADV.wmv` hits.

**`docs/agents/HANDOFF-2026-09-18.md`** records what changed since 2026-09-16,
what is on the server, what cannot travel through git, and the traps this machine
paid for — chiefly that the guest-PC branch probe exists only on the fork's
snapshot branch, so a rebuild from `sylpheed-re` silently loses it.

**`HANDOFF-2026-09-06.md`** gets a correction note rather than an edit: a plain
clone works again now that the 545 MB branch is gone, and its baselines are two
baselines old.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-18 07:17:36 +02:00

7.3 KiB
Raw Blame History

Hand-off — 2026-09-18, from the second desktop back to the original machine

Written for whoever resumes on fabi-Hyrican-PC. It covers what changed between 2026-09-16 and 2026-09-18 on fabi-MS-7C37, what is on the server, and what cannot travel through git.

Method and rules are unchanged: docs/agents/PROTOCOL.md. The cold-start doc is still docs/agents/HANDOFF-2026-09-06.md, with the corrections at the end of this file.

Where the work stands

main e732557
baseline, all three corpora present, measured 2026-09-17 in docker/ci/run 45 suites / 377 passed / 0 failed / 14 ignored
open PRs #53 (closes #16), #54 (closes #15) — both state/needs-human, neither merged
open issues #3, #4 (F2 audio gains) · #6, #7 (re-propose the port work) · #9, #25 (F6 residue) · #28 (input) · #49, #50 (decisions) · #51 (loop briefs) · #52 (kanji-only strings)
fork issue #1 — the branch probe exists only on auto/canary-instrumentation-snapshot-2026-07-28

Branches on fabi/Sylpheed: main, fix/corpus-mounts-and-paths (#53), fix/ci-pin-toolchain (#54), recover/options-menu, recover/port-f5-f6.

What changed since 2026-09-16

The consolidation closed. PRs #46#48 merged; 34 server branches deleted; about 55 GB freed locally. Sylpheed and the Xenia-Canary fork are the only live repos — see docs/agents/CONSOLIDATION.md.

Work from a deleted branch was recovered. auto/port-p6-audio (tip 0148cb8, 366 commits, never in a PR) held what issues #6 and #7 ask to re-propose. It is back as two snapshot commits parented on the branch's fork point e53d687:

  • recover/port-f5-f6 — all 84 files the branch changed, i.e. 0148cb8's tree minus the 854 exported game assets it carried. Verified to differ from the original tip by exactly those assets.
  • recover/options-menu — the nine files of the 2026-09-03 OPTIONS commits. A review slice, not a buildable tree: the two efforts interleaved commit by commit and do not separate by file.

The 366 original commits were not kept — reachable history must not carry game assets. They still exist unreferenced in the server's object store, so 0148cb8 can be fetched by SHA for as long as the server keeps it. Both issues carry the details.

The tracker was brought in line with reality. #8 closed (its corpus is on main), #26 closed as obsolete (the container tooling is parked for a from-scratch redo and still names the archived Syplheed-Reborn), stale state/* labels dropped from closed issues, and four decisions that had been living in session notes were filed: #49 (screenshots in public repos), #50 (require CI before merge), #51 (loop briefs, from sylph-pi's note on #38), #52 (kanji-only Shift_JIS strings).

The corpus control got honest (#53): one disc_root(), no machine-specific fallbacks, and docker/ci/run mounts $SYLPHEED_RES3D and $SYLPHEED_ISO as well as the disc. Before that an in-container run silently sat out two corpora while looking like a full one.

The CI toolchain is pinned (#54): dtolnay/rust-toolchain@1.98.1 in all three jobs, matching the version docker/ci already pins, so a local clippy run is a true stand-in for CI.

The gated launchers are in the repo nowtools/run-canary-safe.sh (Wine), tools/run-canary-native-safe.sh (native), tools/run-canary-native.sh (interactive, hardware Vulkan), plus asound-null.conf, diagnose-freeze.sh, live-guest-state.sh, heaptrack-wrap.sh. They used to live in the workspace root, outside git, hardcoding one machine's absolute paths. They now derive the workspace from their own location and honour $SYLPHEED_ISO and $CANARY_BIN. Both safe launchers were run from their new location before this was committed: the native one reached content in 20 s (VERDICT: HEALTHY), the Wine one ran 25 s and logged 4 ADV.wmv hits.

What cannot travel through git

Ask the outgoing machine for these; none of them belong in a repository.

what where it was note
agent memory ~/.claude/projects/-home-fabi-RE---Project-Sylpheed/memory/ 11 files + MEMORY.md, ~48 KB. The project's accumulated feedback and reference notes.
workspace instructions CLAUDE.md, README.md at the workspace root CLAUDE.md is what every session reads first.
Claude settings, skills, agent .claude/ at the workspace root settings.json (the Stop hooks), settings.local.json, skills/sylph-dis, skills/sylph-canary, agents/sylph-static.md.
corpus paths Sylpheed/.env Three variables: SYLPHEED_DISC, SYLPHEED_RES3D, SYLPHEED_ISO. Rewrite for the machine rather than copy.
game data the ISO, the extract, the flat .pe, the .xex.json, sylph_extract → the extract Never in git.
the Gitea token ~/.sylph-gitea-token, chmod 600 Prefer minting a fresh one on the other machine to moving it.
Canary builds xenia-canary/build-cross/…/Debug (Wine, 190 MB) and xenia-canary-native/build The Wine build is the only binary that accepts --audit_61_branch_probe_pcs — see fork #1. Rebuilding from sylpheed-re loses the probe.
official Canary oracles ~/xenia_canary_windows/xenia_canary.exe (b86414957), ~/Downloads/xenia_canary_linux/xenia_canary (de10b9ef9) The builds the game was played on; use them to bisect a regression in the fork.

Rebuildable, do not copy: sylpheed.db (~2.5 min, command in CLAUDE.md), target/, the sylph-ci:local image and its volumes, .trunk-bin.

Traps this machine paid for

  • The branch probe is not on the fork's default branch. run-canary-safe.sh and the /sylph-canary skill pass --audit_61_branch_probe_pcs, defined only on auto/canary-instrumentation-snapshot-2026-07-28 (30d05ee97). sylpheed-re is 232 commits ahead of that branch, so porting it is a cherry-pick with a build check, not a merge. Fork issue #1.
  • One suite dominates the test wall time. twin_pairs_do_not_share_a_buffer takes ~19 of the ~36 minutes. Budget for it; it is not a hang.
  • Nothing requires CI to pass before a merge (#50), and CI has no disc, so its green is parser-only.
  • The tally cannot tell you what it verified. Read target/sylpheed-corpus-report.txt (#16).
  • git gc on this machine will eventually drop the unreferenced 0148cb8; the server keeps its own copy independently.

First moves on the other machine

  1. Clone, set .env, then docker build -t sylph-ci:local docker/ci (~6 min) and re-run the baseline through docker/ci/run with all three corpora. Compare against 45 / 377 / 0 / 14.
  2. Review #53 and #54 — both were measured here, neither was merged, because merging is the human's.
  3. Answer #49 and #50; both block nothing technically and both shape what comes next.
  4. If dynamic RE is next, resolve fork #1 before rebuilding Canary, or carry the Wine build across.

Corrections to HANDOFF-2026-09-06.md

  • § "clone" — a plain git clone works again. Measured 2026-09-17: 56 s, 114 MB, main plus tags. The --filter=blob:none advice was for the branch carrying 545 MB of game-content history, which was deleted in the consolidation cleanup.
  • The ~/.sylph-* agent credentials and the agent images it describes exist on the original machine only; the second desktop never had them, and the agent and container tooling is parked for a from-scratch redo.