docs(handoff): record JSON and YAML merge

Mark PR #123 landed at bb17ec9 and remove its completed recovery lane.
This commit is contained in:
Levi Neuwirth 2026-07-21 09:48:46 -04:00
parent 5ba9c526b4
commit 753689955d
2 changed files with 22 additions and 141 deletions

View File

@ -14,7 +14,7 @@ backlog.
machine-local: `origin` may 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).
`githubsucks/main` @ `bb17ec9` (#123 merged atop #124, protocol v17).
- On the transfer source, `origin/main` named a release mirror at
`d3fa632` and lagged badly. On the current destination, `origin` names
the canonical URL. This difference is why all recovery begins by
@ -48,126 +48,9 @@ git worktree list
git status --short --branch
```
The first command must expose `f8096ff` or a newer intentional main.
The first command must expose `bb17ec9` 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: `ffcb903`
- Original merge base was `56eb67e`; the completed branch is rebased onto
canonical main `f8096ff`.
- Portable checkpoint branch:
`githubsucks/json-yaml-handoff-2026-07-20`
- Checkpoint head: `ffcb903`
- The checkpoint is a continuation branch for recovery, not a second
feature and not a merge target. Its completed head now exactly matches
`githubsucks/json-yaml-grammar`.
The checkpoint carries the transferred review-fix set, completed
destination-machine continuation, and final review-documentation cleanup:
- push configured settings via
`workspace/didChangeConfiguration` immediately after `initialized`;
- 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_sections` passed.
- `m4_5_initial_config_pushed_via_did_change_configuration` passed.
- `cargo fmt --check` and `git diff --check` passed.
- `yaml-language-server@1.24.0` standalone protocol smoke passed:
initialization reported version 1.24.0; the initial
`workspace/configuration` request was exactly
`yaml`, `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_diagnostics` passed
against `/tmp/pmacs-yamlls` on the destination machine (0.36s).
- Bite verification passed: with `builtin/runtime/lsp.lua` swapped to
pre-JSON/YAML `56eb67e`, 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.
- The first post-rebase Clippy pass found one `doc_markdown` warning in
the new YAML test comment. The backtick-only correction was amended
into the test commit and pushed at the checkpoint head above; the
standalone rerun passed.
- Post-rebase gates completed on checkpoint `5c202c5`:
- `cargo fmt --check` passed;
- `cargo clippy --workspace --all-targets -- -D warnings` passed as its
own step;
- `cargo test --lib`: 1,594 passed, 3 ignored;
- `cargo test --lib --features crdt`: 1,768 passed, 3 ignored;
- `cargo test --test m4_acceptance -- --skip basedpyright` with both
pinned providers on PATH: 114 passed, 3 ignored, 1 filtered; the
real JSON and real YAML tests both ran and passed;
- `PMACS_REQUIRE_GPU=1 cargo test -p pmacs-gpu`: 102 passed against a
real GPU device.
- `cargo test --workspace -- --skip basedpyright` passed as one
pipefail-protected invocation with both pinned providers on PATH; its
complete machine-local log is
`/tmp/pmacs-json-yaml-workspace-5c202c5.log`, and the log confirms both
live provider tests ran and passed.
- Final-head `cargo fmt --check`, `git diff --check`, and clean-worktree
audit passed.
- The completed head was pushed to `githubsucks/json-yaml-grammar` with
an exact force-with-lease. PR #123 is open against `main` at full OID
`5c202c54c19c05b0824812a578463ec082810981`; fresh CI run
`29778967156` completed successfully for that head: all 12 jobs passed
(format; LuaJIT/Lua 5.4 lint and Linux/macOS tests; headless GPU; and
M1/M4/M5/M6 gates).
- Review cleanup `ffcb903` refreshes the stale YAML transfer-task test
comment and the framing/handoff checkpoint status. Its targeted
`m4_json_yaml_lsp_configs_pin_command_and_sections`, `cargo fmt --check`,
and `git diff --check` verification passed; both public and checkpoint
refs were fast-forwarded to it.
Still required:
1. Await user review. Never merge without the user's instruction.
Provider setup is intentionally machine-local:
```sh
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:
```sh
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`

View File

@ -1,9 +1,8 @@
# Agent handoff — cross-machine continuity
**Last updated: 2026-07-21, after the JSON/YAML review-documentation
cleanup and the cross-machine continuity audit;
main still reflects GPU font preferences (#124), themes stage 1 (#120),
and injections (#122).** This file is the
**Last updated: 2026-07-21, after JSON/YAML (#123) merged and the
cross-machine continuity audit; main also reflects GPU font preferences
(#124), themes stage 1 (#120), and injections (#122).** This file is the
bridge between development machines. If you are an agent reading
this on a fresh clone: this document plus the `docs/*-framing.md`
files ARE your memory. Read this fully before taking on work, seed
@ -14,11 +13,11 @@ reads it the way you just did.
For volatile branches, checkpoints, verification, and recovery
commands, read `docs/active-work.md` immediately after this file.
## 1. Where the project stands (2026-07-20)
## 1. Where the project stands (2026-07-21)
- `main` @ `f8096ff` (GPU font preferences #124 merged), protocol
**v17** (`SUPPORTED=[6..17]`; v15→16 shipped `ThemeFacts`, v16→17
shipped `FontFacts`).
- `main` @ `bb17ec9` (JSON + YAML #123 merged atop GPU font preferences
#124), protocol **v17** (`SUPPORTED=[6..17]`; v15→16 shipped
`ThemeFacts`, v16→17 shipped `FontFacts`).
- **Syntax-highlight / language-detection side-quest (#114#118)
LANDED** — a one-shot arc built in sibling worktrees off main while
the user's themes lane (`theme-faces`) ran concurrently in the shared
@ -75,6 +74,16 @@ commands, read `docs/active-work.md` immediately after this file.
`inline` node; matches tree-sitter-md's own splitter), and the wire
flattener runs over the WHOLE buffer via the file-style summary, so it
must be an event sweep, not O(spans²).
- **JSON + YAML grammars and language servers (#123) LANDED** — bundled
ABI-current `tree-sitter-json` / `tree-sitter-yaml` cover `.json`,
`.yaml`, and `.yml`; the existing injection engine now highlights YAML
frontmatter and JSON/YAML fences. Default external LSP configs are the
pinned `vscode-json-language-server` provider and
`yaml-language-server`; configured settings are pushed after
`initialized`, which also supports push-model servers. The fake-server
delivery proof and PATH-gated live JSON/YAML provider smokes cover the
configuration contract. `.jsonc` / `.json5` remain a deliberate
follow-up because the JSON grammar is strict.
- **Compile-mode (Arc 5 stage 1, #113) LANDED** (2026-07-14, 7 rounds;
framing `docs/compile-mode-framing.md` rev 13). `compile.run` streams
`/bin/sh -c "exec 2>&1; <cmd>"` into an intercept-read-only
@ -140,15 +149,6 @@ commands, read `docs/active-work.md` immediately after this file.
`StatuslineSegments` channel; the existing LSP status tracker is the
first built-in provider. Approval → implementation → gates → PR.
Completing stage 3 completes Arc 4.
- **OPEN: JSON + YAML PR #123.** Public and checkpoint branches both
point to review-cleanup `ffcb903`, atop fully gated `5c202c5` rebased
onto `f8096ff`. Review fixes include config push delivery, corrected
provider/config claims, both live-provider paths, and the final stale
checkpoint-text cleanup; the real YAML-through-pmacs smoke proves
auto-attach, network-free configuration, diagnostics, and continued
liveness against Red Hat 1.24.0. CI run `29778967156` passed all 12
jobs for `5c202c5`; the doc-only cleanup passed its targeted checks and
the PR awaits user review. Exact recovery is in `docs/active-work.md`.
- **PARKED: kill-ring browser + persistence.** Revision 2 framing is
preserved on branch `kill-ring-browser`, but its `0efb5cd` scout is
stale and must be repeated before implementation. No PR or
@ -357,13 +357,11 @@ runtime/Lua-registered languages (v1 resolves only against
`BUILTIN_LANGUAGES`), and the next injection *consumers* gated on new
grammars — HTML/CSS/GraphQL/SQL (`<script>`/`<style>`, JS/TS template
literals, doc-comment code); modeline detection as a 5th layer
(`-*- mode: … -*-` / `# vim: ft=…`); JSON/YAML grammars+LSP
(PR #123 open; checkpoint and remaining verification are in
`docs/active-work.md`);
(`-*- mode: … -*-` / `# vim: ft=…`);
byte-accurate multibyte cursor placement in `move_active_cursor_to`
(still steps one codepoint per LSP byte column). A full Jupyter `.ipynb`
setup (reader → editable → kernel execution) is a real arc now gated on
**JSON** (injections shipped in #122), NOT a one-shot.
setup (reader → editable → kernel execution) now has its JSON grammar
prerequisite, but remains a real arc, not a one-shot.
GPU: auto-reconnect after daemon restart, splits/multi-buffer, gutter
riders (whitespace guides, folding, git markers).
Themes (full list in theme-faces framing rev 9 "Deferred (named)"):