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>
7.3 KiB
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 now — tools/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.shand the/sylph-canaryskill pass--audit_61_branch_probe_pcs, defined only onauto/canary-instrumentation-snapshot-2026-07-28(30d05ee97).sylpheed-reis 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_buffertakes ~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 gcon this machine will eventually drop the unreferenced0148cb8; the server keeps its own copy independently.
First moves on the other machine
- Clone, set
.env, thendocker build -t sylph-ci:local docker/ci(~6 min) and re-run the baseline throughdocker/ci/runwith all three corpora. Compare against 45 / 377 / 0 / 14. - Review #53 and #54 — both were measured here, neither was merged, because merging is the human's.
- Answer #49 and #50; both block nothing technically and both shape what comes next.
- 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 cloneworks again. Measured 2026-09-17: 56 s, 114 MB,mainplus tags. The--filter=blob:noneadvice 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.