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,
or something else, and therefore has no authority by name alone.
- 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
`d3fa632` and lagged badly. On the current destination, `origin` names
the canonical URL. This difference is why all recovery begins by
@ -48,43 +48,9 @@ git worktree list
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.
## 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
- Portable branch: `githubsucks/kill-ring-browser`

View File

@ -1,9 +1,8 @@
# Agent handoff — cross-machine continuity
**Last updated: 2026-07-22, with locals-query processing (#134) implemented
and awaiting review, after modeline language
detection (#132), Vterm Stage 2 (#130), and mode system wiring (#129/#131)
landed on `main`. Vterm Stage 3 is not implemented.**
**Last updated: 2026-07-22, after locals-query processing (#134) landed on
`main`, following modeline language detection (#132), Vterm Stage 2 (#130),
and mode system wiring (#129/#131). Vterm Stage 3 is not implemented.**
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`
@ -17,8 +16,7 @@ commands, read `docs/active-work.md` immediately after this file.
## 1. Where the project stands (2026-07-22)
- `main` @ `8bd8298` (landed-state handoff #133; latest runtime merge
`1dd47fc`, modeline detection #132), protocol **v18**
- `main` @ `8cbb9f4` (locals-query processing #134), protocol **v18**
(`SUPPORTED=[6..18]`; v16 = `ThemeFacts`, v17 = `FontFacts`, v18 =
`StatuslineSegments`).
- **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.
- **Substrate**: `LanguageEntry.highlights_query` and `.locals_query` are
`&[&'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/
reference conventions into sorted `LocalFacts`, and stores them beside
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.
- **Mode system wiring COMPLETE (#129)** — major-mode keymaps,
introspection, lifecycle initialization, and statusline display shipped.
- **Locals-query processing IN REVIEW — #134** — grammar locals metadata,
lexical resolution, settled per-layer facts, and shared TUI/GPU
local-predicate filtering are implemented on `locals-query-processing`
@ `47ffe5d`.
- **Locals-query processing COMPLETE — #134** — grammar locals metadata,
lexical resolution, settled per-layer facts, shared TUI/GPU
local-predicate filtering, and a registry-wide locals-query invariant
shipped without a protocol change.
- Remaining ranked arcs: 6 folding, 7 DAP, 8 GPU splits, plus the
`.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
major-mode overrides/clears across sessions. Modeline detection shipped in #132.
Highlight/detection (from the #114#118 side-quest + injections #122):
locals-query processing (run each grammar's LOCALS_QUERY so
`#is?`/`#is-not? local` is honored instead of the current fail-closed
drop — restores `.builtin` styling for non-shadowed console/require
etc.); **injection follow-ups now the engine landed (#122)**
~~locals-query processing~~ **SHIPPED #134**; remaining injection follow-ups
now that the engine landed (#122) —
`injection.combined` (many matches → one shared parse; PHP-in-HTML, some
comment schemes), child-tree incrementality + range-scoped layer rebuild
(child layers cold-reparse on every settle today), injectable

View File

@ -1,6 +1,7 @@
# 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
#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.
- **Locals-query processing** — run each grammar's `LOCALS_QUERY` so
`#is?`/`#is-not? local` is honored (restores `.builtin` styling for
*non-shadowed* console/require etc.), replacing the current
fail-closed drop in `compute_highlight_spans`.
- **Locals-query processing — SHIPPED (#134).** Bundled Lua/JavaScript/
TypeScript locals queries now drive settled per-layer lexical facts, and
both highlight producers honor `#is?`/`#is-not? local`. Non-shadowed
builtins regain `.builtin` styling while shadowed names stay ordinary.
- **Multi-language injections — SHIPPED (#122).** The load-bearing
engine landed: `ParseTreeBundle` holds `Vec<Layer>`, the worker builds
child trees off the static grammar table, settle resolves per-layer
@ -237,13 +237,12 @@ guides (visual, not color).
## North star (highest-leverage first)
**The original north-star items and mode-system wiring have now shipped** —
multi-language injections (#122), the config registry (#127), JSON + YAML
(#123), and mode-system wiring (#129). The remaining board:
**The original north-star items, mode-system wiring, and locals-query
processing have now shipped** — multi-language injections (#122), the config
registry (#127), JSON + YAML (#123), mode-system wiring (#129), and locals
queries (#134). The remaining board:
1. **Locals-query processing** — restores `.builtin` styling for
non-shadowed builtins, the last rough edge of the highlight stack.
2. **Tab-width rendering parity** — five constants across two crates
1. **Tab-width rendering parity** — five constants across two crates
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
under "Cross-cutting substrate".