7.6 KiB
Active work — cross-machine resume ledger
Snapshot: 2026-07-20. This file records volatile work that has not
landed on main. Read it after docs/agent-handoff.md. Remove completed
entries when their PR merges; do not let this become a second permanent
backlog.
Repository authority
- Canonical development URL:
https://github.com/levineuwirth/pmacs.git. This ledger uses the normalized local aliasgithubsucksso its refs and recovery commands are identical on every machine. Remote names are otherwise machine-local:originmay name this canonical URL, a release mirror, or something else, and therefore has no authority by name alone. - Canonical base at this snapshot:
githubsucks/main@f8096ff(#124 merged, protocol v17). - On the transfer source,
origin/mainnamed a release mirror atd3fa632and lagged badly. On the current destination,originnames the canonical URL. This difference is why all recovery begins by verifying URLs and normalizinggithubsucksrather than trustingorigin/main. - The shared desktop checkout contained unrelated uncommitted work. The branches below were prepared in isolated worktrees; never clean or overwrite the shared checkout to recover them.
Start on another machine by inspecting its remotes:
git remote -v
git remote get-url githubsucks
If the second command says the alias is absent, add it; if it prints a different URL, stop and resolve that collision rather than overwriting an unknown remote:
git remote add githubsucks https://github.com/levineuwirth/pmacs.git
Then recover current refs:
git fetch githubsucks --prune
git log -1 --oneline githubsucks/main
git worktree list
git status --short --branch
The first command must expose f8096ff or a newer intentional main.
If it does not, stop and repair the remote/fetch configuration.
Active lane: PR #123 — JSON + YAML
- PR: https://github.com/levineuwirth/pmacs/pull/123
- Public PR branch:
githubsucks/json-yaml-grammar - Public PR head before the transfer checkpoint:
4be2a65 - Original merge base:
56eb67e; current main is nine commits ahead. - Portable checkpoint branch:
githubsucks/json-yaml-handoff-2026-07-20 - Checkpoint head:
3ef5e2e - The checkpoint is a continuation branch for recovery, not a second
feature and not a merge target. Finish there, then push its completed
head to
githubsucks/json-yaml-grammar.
The checkpoint carries the transferred review-fix set plus the completed destination-machine continuation:
- push configured settings via
workspace/didChangeConfigurationimmediately afterinitialized; - fake-LSP configuration sink and a deterministic delivery test;
- explicit
json.validate.enable = true; - JSON provider pin
@t1ckbase/vscode-langservers-extracted@2.0.2; - corrected YAML configuration sections:
yaml,http,[yaml],editor,files; - corrected telemetry, schema-network, and schema-association claims;
- PATH-gated real JSON provider integration test.
- PATH-gated real YAML 1.24.0 integration test with SchemaStore and the Kubernetes CRD catalog disabled for network-free determinism. It pins YAML-specific auto-attach/initialization, a real syntax diagnostic, no crash, and continued initialized state after the diagnostic.
Verification completed across the source and destination machines:
- JSON provider standalone protocol smoke passed.
- JSON provider through pmacs passed
m4_real_json_provider_receives_config_and_reports_diagnostics. m4_json_yaml_lsp_configs_pin_command_and_sectionspassed.m4_5_initial_config_pushed_via_did_change_configurationpassed.cargo fmt --checkandgit diff --checkpassed.yaml-language-server@1.24.0standalone protocol smoke passed: initialization reported version 1.24.0; the initialworkspace/configurationrequest was exactlyyaml,http,[yaml],editor,files; opening the document caused a second scoped[yaml]request; invalid YAML produced a real parser diagnostic; shutdown exited 0 with empty stderr.m4_real_yaml_provider_pulls_config_and_reports_diagnosticspassed against/tmp/pmacs-yamllson the destination machine (0.36s).- Bite verification passed: with
builtin/runtime/lsp.luaswapped to pre-JSON/YAML56eb67e, the real YAML test failed at the absent YAML config rather than skipping. - The four-commit checkpoint rebased cleanly onto canonical
githubsucks/main@f8096ff; the rewritten portable head was pushed with an exact force-with-lease.
Still required:
- Run the full repository gate suite from
AGENTS.md, putting both pinned temporary provider prefixes on PATH so neither live smoke can skip. - Push the completed head to
githubsucks/json-yaml-grammar; confirm new PR checks belong to that head. Never merge without the user's instruction.
Provider setup is intentionally machine-local:
npm install --prefix /tmp/pmacs-jsonls \
@t1ckbase/vscode-langservers-extracted@2.0.2
npm install --prefix /tmp/pmacs-yamlls \
yaml-language-server@1.24.0
The Node language servers had to run outside the prior machine's
restrictive execution sandbox. The /tmp prefixes and smoke harnesses
do not travel.
Recovery worktree:
git worktree add --track \
-b json-yaml-handoff-2026-07-20 \
../pmacs-jsonyaml-home \
githubsucks/json-yaml-handoff-2026-07-20
If that local branch name already exists, omit --track -b ... and
give the existing local branch as the final argument.
Active lane: Arc 4 stage 3 — statusline segments
- Portable branch:
githubsucks/statusline-segments - Framing head:
432e4d4 - State: framing only, revision 1, based on
f8096ff/ protocol v17. - Status: awaiting user review. No implementation and no PR.
- Scope: composable per-window Lua modeline providers, dynamic
modeline-face inventory, and protocol v18
StatuslineSegments; the built-in LSP segment is the first consumer. - Do not implement until the user approves the framing. When approved, continue on this branch so the framing remains the first commit.
Recovery worktree:
git worktree add --track \
-b statusline-segments \
../pmacs-statusline \
githubsucks/statusline-segments
Parked lane: kill-ring browser + persistence
- Portable branch:
githubsucks/kill-ring-browser - Parked framing head:
503c489 - State: framing only, revision 2; no implementation and no PR.
- Status: explicitly parked by the user on 2026-07-20.
- Its original scout was based on
0efb5cd. The preserved framing marks this ground truth stale and requires a complete re-scout against the then-currentgithubsucks/mainbefore implementation. - Compile-mode has merged since the original scout, so old “compile-mode in flight” keybinding/touch-set assumptions are not authoritative.
Recovery worktree, only when the user un-parks it:
git worktree add --track \
-b kill-ring-browser \
../pmacs-kill-ring-browser \
githubsucks/kill-ring-browser
Documentation lane
- Portable branch:
githubsucks/handoff-2026-07-20 - Carries synchronized
AGENTS.md/CLAUDE.md, this ledger, the durable handoff refresh, and the keybinding reference correction. - It changes no runtime code.
- Review and merge this documentation branch separately; it must not be folded into PR #123 or either feature framing branch.
Update protocol
Whenever a listed lane changes materially:
- update its public branch and head/state here;
- record new verification and remove superseded caveats;
- keep durable architecture in
docs/agent-handoff.md, not here; - remove the lane after merge or abandonment;
- verify every recovery command from a clean worktree before calling the transfer complete.