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>
This commit is contained in:
@@ -395,3 +395,15 @@ non-test code does not use tokio, so moving it to `dev-dependencies` is sound an
|
||||
the `examples/` targets keep compiling. **Claim survives** — recorded because a
|
||||
survived challenge is stronger than an unchallenged one, not because it changed
|
||||
anything.
|
||||
|
||||
---
|
||||
|
||||
## Superseded in part — see `HANDOFF-2026-09-18.md`
|
||||
|
||||
Two things in this document have since stopped being true:
|
||||
|
||||
* **A plain `git clone` works again** (measured 2026-09-17: 56 s, 114 MB, `main` plus tags). The
|
||||
`--filter=blob:none` advice above was about the branch that carried 545 MB of game-content history,
|
||||
and that branch was deleted in the consolidation cleanup.
|
||||
* The baseline numbers quoted here are two baselines old. The current one, with all three corpora
|
||||
present, is in `CLAUDE.md` and in `HANDOFF-2026-09-18.md`.
|
||||
|
||||
108
docs/agents/HANDOFF-2026-09-18.md
Normal file
108
docs/agents/HANDOFF-2026-09-18.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# 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.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.
|
||||
Reference in New Issue
Block a user