Merge pull request #136 from levineuwirth/locals-query-handoff

Record landed locals-query processing
This commit is contained in:
Levi Neuwirth 2026-07-22 17:49:41 +00:00 committed by GitHub
commit 40111dc2b0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 24 additions and 62 deletions

View File

@ -14,7 +14,7 @@ backlog.
machine-local: `origin` may name this canonical URL, a release mirror, machine-local: `origin` may name this canonical URL, a release mirror,
or something else, and therefore has no authority by name alone. or something else, and therefore has no authority by name alone.
- Canonical base at this snapshot: - Canonical base at this snapshot:
`githubsucks/main` @ `8bd8298` (landed-state handoff #133; protocol v18). `githubsucks/main` @ `8cbb9f4` (locals-query processing #134; protocol v18).
- On the transfer source, `origin/main` named a release mirror at - On the transfer source, `origin/main` named a release mirror at
`d3fa632` and lagged badly. On the current destination, `origin` names `d3fa632` and lagged badly. On the current destination, `origin` names
the canonical URL. This difference is why all recovery begins by the canonical URL. This difference is why all recovery begins by
@ -48,43 +48,9 @@ git worktree list
git status --short --branch git status --short --branch
``` ```
The first command must expose `8bd8298` or a newer intentional main. The first command must expose `8cbb9f4` or a newer intentional main.
If it does not, stop and repair the remote/fetch configuration. If it does not, stop and repair the remote/fetch configuration.
## Locals-query processing lane
- Portable branch: `githubsucks/locals-query-processing`
- Base: canonical `main` @ `8bd8298`.
- Framing head: `42a28b9` (`docs/locals-query-processing-framing.md`).
- Implementation head: `47ffe5d`.
- PR: #134, <https://github.com/levineuwirth/pmacs/pull/134>, open for review.
Implementation is complete; protocol remains v18.
- Scope: bundled Lua/JavaScript/TypeScript locals metadata, lexical
scope/definition/value/reference resolution cached on each settled layer,
and shared `#is?`/`#is-not? local` filtering in the TUI and semantic/GPU
highlight producers.
- Focused verification:
- default and Lua 5.4 lexical suites: 35 passed each;
- default and Lua 5.4 end-to-end render/edit acceptance: 1 passed each.
- Full pre-PR verification:
- `cargo fmt --check`: clean;
- strict workspace Clippy: clean;
- default library: 1,757 passed (3 ignored);
- CRDT library: 1,933 passed (3 ignored);
- M4 acceptance excluding basedpyright: 121 passed, 3 ignored, 1 filtered;
- required GPU: 109 passed;
- workspace: 2,893 passed across 82 suites, 19 ignored, 1 filtered;
- `git diff --check`: clean.
Recovery worktree on a machine that does not already own the branch:
```sh
git worktree add --track \
-b locals-query-processing \
../pmacs-locals-query \
githubsucks/locals-query-processing
```
## Parked lane: kill-ring browser + persistence ## Parked lane: kill-ring browser + persistence
- Portable branch: `githubsucks/kill-ring-browser` - Portable branch: `githubsucks/kill-ring-browser`

View File

@ -1,9 +1,8 @@
# Agent handoff — cross-machine continuity # Agent handoff — cross-machine continuity
**Last updated: 2026-07-22, with locals-query processing (#134) implemented **Last updated: 2026-07-22, after locals-query processing (#134) landed on
and awaiting review, after modeline language `main`, following modeline language detection (#132), Vterm Stage 2 (#130),
detection (#132), Vterm Stage 2 (#130), and mode system wiring (#129/#131) and mode system wiring (#129/#131). Vterm Stage 3 is not implemented.**
landed on `main`. Vterm Stage 3 is not implemented.**
This file is the This file is the
bridge between development machines. If you are an agent reading bridge between development machines. If you are an agent reading
this on a fresh clone: this document plus the `docs/*-framing.md` this on a fresh clone: this document plus the `docs/*-framing.md`
@ -17,8 +16,7 @@ commands, read `docs/active-work.md` immediately after this file.
## 1. Where the project stands (2026-07-22) ## 1. Where the project stands (2026-07-22)
- `main` @ `8bd8298` (landed-state handoff #133; latest runtime merge - `main` @ `8cbb9f4` (locals-query processing #134), protocol **v18**
`1dd47fc`, modeline detection #132), protocol **v18**
(`SUPPORTED=[6..18]`; v16 = `ThemeFacts`, v17 = `FontFacts`, v18 = (`SUPPORTED=[6..18]`; v16 = `ThemeFacts`, v17 = `FontFacts`, v18 =
`StatuslineSegments`). `StatuslineSegments`).
- **Config registry LANDED — #127** (`docs/config-registry-framing.md` - **Config registry LANDED — #127** (`docs/config-registry-framing.md`
@ -120,7 +118,7 @@ commands, read `docs/active-work.md` immediately after this file.
`workspace/configuration`). Make has no server. `workspace/configuration`). Make has no server.
- **Substrate**: `LanguageEntry.highlights_query` and `.locals_query` are - **Substrate**: `LanguageEntry.highlights_query` and `.locals_query` are
`&[&'static str]` fragments joined base-first (cuda over c/cpp; ts over `&[&'static str]` fragments joined base-first (cuda over c/cpp; ts over
js/jsx). On `locals-query-processing` @ `47ffe5d`, settle compiles the js/jsx). Since locals-query processing #134, settle compiles the
grammar's `LOCALS_QUERY`, resolves Tree-sitter's scope/definition/value/ grammar's `LOCALS_QUERY`, resolves Tree-sitter's scope/definition/value/
reference conventions into sorted `LocalFacts`, and stores them beside reference conventions into sorted `LocalFacts`, and stores them beside
each layer's tree/query. Work runs once per fresh bundle and only when the each layer's tree/query. Work runs once per fresh bundle and only when the
@ -341,10 +339,10 @@ commands, read `docs/active-work.md` immediately after this file.
editing/indent/comment items that were config-blocked. editing/indent/comment items that were config-blocked.
- **Mode system wiring COMPLETE (#129)** — major-mode keymaps, - **Mode system wiring COMPLETE (#129)** — major-mode keymaps,
introspection, lifecycle initialization, and statusline display shipped. introspection, lifecycle initialization, and statusline display shipped.
- **Locals-query processing IN REVIEW — #134** — grammar locals metadata, - **Locals-query processing COMPLETE — #134** — grammar locals metadata,
lexical resolution, settled per-layer facts, and shared TUI/GPU lexical resolution, settled per-layer facts, shared TUI/GPU
local-predicate filtering are implemented on `locals-query-processing` local-predicate filtering, and a registry-wide locals-query invariant
@ `47ffe5d`. shipped without a protocol change.
- Remaining ranked arcs: 6 folding, 7 DAP, 8 GPU splits, plus the - Remaining ranked arcs: 6 folding, 7 DAP, 8 GPU splits, plus the
`.ipynb` arc (its JSON-grammar prerequisite shipped in #123). `.ipynb` arc (its JSON-grammar prerequisite shipped in #123).
@ -579,10 +577,8 @@ Mode system (SHIPPED #129): minor modes, `buffer.after-mode-change`,
mode-scoped settings, `describe-mode`, and persistence of explicit mode-scoped settings, `describe-mode`, and persistence of explicit
major-mode overrides/clears across sessions. Modeline detection shipped in #132. major-mode overrides/clears across sessions. Modeline detection shipped in #132.
Highlight/detection (from the #114#118 side-quest + injections #122): Highlight/detection (from the #114#118 side-quest + injections #122):
locals-query processing (run each grammar's LOCALS_QUERY so ~~locals-query processing~~ **SHIPPED #134**; remaining injection follow-ups
`#is?`/`#is-not? local` is honored instead of the current fail-closed now that the engine landed (#122) —
drop — restores `.builtin` styling for non-shadowed console/require
etc.); **injection follow-ups now the engine landed (#122)**
`injection.combined` (many matches → one shared parse; PHP-in-HTML, some `injection.combined` (many matches → one shared parse; PHP-in-HTML, some
comment schemes), child-tree incrementality + range-scoped layer rebuild comment schemes), child-tree incrementality + range-scoped layer rebuild
(child layers cold-reparse on every settle today), injectable (child layers cold-reparse on every settle today), injectable

View File

@ -1,6 +1,7 @@
# Locals-query processing - syntax-highlight completion # Locals-query processing - syntax-highlight completion
**Status:** Revision 1, implementation active by user direction, 2026-07-22. **Status:** Revision 1 implemented and landed as PR #134 on 2026-07-22
(`8cbb9f4`). Protocol remains v18.
**Base:** `githubsucks/main` at `8bd8298` (mode system #129, Vterm Stage 2 **Base:** `githubsucks/main` at `8bd8298` (mode system #129, Vterm Stage 2
#130, modeline detection #132, and landed-state handoff #133). Protocol remains #130, modeline detection #132, and landed-state handoff #133). Protocol remains

View File

@ -25,10 +25,10 @@ cross-cutting index. Keep it pruned as items ship.
The direct continuation of the #114#118 grammar/detection stack. The direct continuation of the #114#118 grammar/detection stack.
- **Locals-query processing** — run each grammar's `LOCALS_QUERY` so - **Locals-query processing — SHIPPED (#134).** Bundled Lua/JavaScript/
`#is?`/`#is-not? local` is honored (restores `.builtin` styling for TypeScript locals queries now drive settled per-layer lexical facts, and
*non-shadowed* console/require etc.), replacing the current both highlight producers honor `#is?`/`#is-not? local`. Non-shadowed
fail-closed drop in `compute_highlight_spans`. builtins regain `.builtin` styling while shadowed names stay ordinary.
- **Multi-language injections — SHIPPED (#122).** The load-bearing - **Multi-language injections — SHIPPED (#122).** The load-bearing
engine landed: `ParseTreeBundle` holds `Vec<Layer>`, the worker builds engine landed: `ParseTreeBundle` holds `Vec<Layer>`, the worker builds
child trees off the static grammar table, settle resolves per-layer child trees off the static grammar table, settle resolves per-layer
@ -237,13 +237,12 @@ guides (visual, not color).
## North star (highest-leverage first) ## North star (highest-leverage first)
**The original north-star items and mode-system wiring have now shipped** — **The original north-star items, mode-system wiring, and locals-query
multi-language injections (#122), the config registry (#127), JSON + YAML processing have now shipped** — multi-language injections (#122), the config
(#123), and mode-system wiring (#129). The remaining board: registry (#127), JSON + YAML (#123), mode-system wiring (#129), and locals
queries (#134). The remaining board:
1. **Locals-query processing** — restores `.builtin` styling for 1. **Tab-width rendering parity** — five constants across two crates
non-shadowed builtins, the last rough edge of the highlight stack.
2. **Tab-width rendering parity** — five constants across two crates
with two different values, and no tab expansion at all on the GPU with two different values, and no tab expansion at all on the GPU
main text path. Explicitly NOT a config-registry task; see the entry main text path. Explicitly NOT a config-registry task; see the entry
under "Cross-cutting substrate". under "Cross-cutting substrate".