Skip to content

Release 0.6.4: background priority, embed_skip, quantised variants, and the zerograph skill - #203

Open
devmaxxx wants to merge 9 commits into
mainfrom
fix/background-priority
Open

devmaxxx wants to merge 9 commits into
mainfrom
fix/background-priority

Conversation

@devmaxxx

@devmaxxx devmaxxx commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • feat: run work nobody waits on at background priority
  • feat(install-agent): name the skill zerograph and stamp its release
  • chore(release): bump to 0.6.4
  • fix: keep serve at normal priority and report a partial lowering
  • feat(resources): balanced takes 40% of the logical cores
  • feat(config): embed_skip keeps a file in the graph and out of the vectors
  • feat(embed): pick a model's quantised export with <hub id>:<variant>
  • fix: settle the review findings of the embed tuning

A consumer repo ran its git hooks as update --no-dense because a dense refresh was feared to load the machine; 18,787 rows ended up owing vectors and ask silently missed recent code. The detached update, watch, and the MCP reindex / switch_model tools now lower the whole process before any thread starts: PRIO_DARWIN_BG on macOS, nice 19 plus the idle I/O class on Linux, PROCESS_MODE_BACKGROUND_BEGIN on Windows. A failure to lower is logged and the work continues. serve and every foreground command keep normal priority, so a question is never answered at background speed. A dense update pays rows an earlier --no-dense write left owed (pay_owed, with a test), so hooks can drop --no-dense.

The skill install-agent writes is now zerograph and carries metadata.version. An old repo-query skill is removed only when it is byte-identical to what 0.6.0–0.6.3 generated; an edited, symlinked or extended copy is kept with a note.

Trade-off, recorded in docs/history.md: the 2026-09-09 removal of priority = "background" was about rebuilds paid by whoever waited. This lowers only unattended work, but a foreground update that finds a background one holding the store still waits behind it; ask never does.

balanced now takes 40% of the logical cores (4 threads on 12, the 2026-10-09 four-thread row: build 521 s against 674 s at three). embed_skip globs keep generated or bulk files in the graph, the lexical index, impact and trace, but out of the vectors; adding a glob embeds nothing else. <hub id>:<variant> reads a published quantised export; on this CPU none embeds faster than fp32 (docs/bench/2026-10-17-gemma-quantized-results.md), so the default stays fp32 and :q4 is offered for memory-constrained machines.

Test plan

  • cargo test — 1608 passed, 0 failed, 8 ignored
  • cargo clippy --all-targets -- -D warnings clean
  • node hook tests 39/39
  • priority.rs type-checks for Linux and Windows targets
  • Linux process-priority tests run in CI

The detached update a hook, a reader over budget or the MCP server
starts, watch, and serve's poll between questions now run in the
background band: PRIO_DARWIN_BG on macOS, nice 19 with the idle I/O
class on Linux, background mode on Windows. serve polls on a short-lived
thread so its answers keep normal priority; Linux cannot raise a lowered
thread back. Foreground commands are unchanged. A refusal is logged and
the work goes on.

A dense update pays every row an earlier --no-dense write left owed;
the sync is pulled out as pay_owed so a test can hold it to that.
The skill moves to skills/zerograph/ with metadata.version set to the
release that wrote it, so a re-run by the same release writes nothing
and one by another says what it replaced. The repo-query directory an
earlier release wrote is removed when it holds only that release's
SKILL.md, under any --command; an edited one, a link or one with files
of its own is left and named.

The skill gains what keeps the index fresh, how to see and pay owed
vectors without blocking a turn, and why embed_model belongs in
zerograph.toml.
serve joined its lowered poll thread, so a question waiting behind a
poll ran at background speed, and the rayon workers were never lowered
anyway. Its poll is back on the main thread, and Extractor loses the
Send bound the thread needed. On Linux, nice 19 without the idle I/O
class is reported as that rather than as no lowering at all.
Four threads on twelve cores instead of three. The balanced row in
configuration.md is the four-thread run of 2026-10-09 (taken under the
one-third rule, which gave the same count); it has not been re-run on this
build.
…tors

Generated code, migrations and mocks were a fifth of beauty-crm's embedded
rows. skip would also take them from impact, trace, changes and the
lexical index; embed_skip leaves those alone, owes them no rows, and the
next writer drops the rows they held. Every other row is matched by hash,
so changing the key re-embeds nothing else.
onnx-community publishes model_<dtype>.onnx beside model.onnx; the
suffix reads that file from the same repository and pinned commit, with
the model's own prefixes and pooling. All five embeddinggemma exports
load on the CPU provider. On the bench fixture at balanced, none embeds
faster than fp32, none loses a paraphrase on the 30-case arm, and q4 is
a sixth of the download at 0.91 GB RSS against 1.47 GB. The default
stays fp32; the widened 60-case arm could not be re-read.
A variant no longer fetches the fp32 graph's own data file from the
profile's `beside` list — `qwen3-embedding:q4` asked for 2 GB of weights
that belong to `model.onnx`; the variant's own external data is still found
by size. The threads test gets its doc comment back from the embed_skip
test inserted above it, and the 0.6.4 notes name `embed_skip` and the
`<hub id>:<variant>` spelling.
@devmaxxx devmaxxx changed the title Release 0.6.4: background priority for unattended refreshes, and the zerograph skill Release 0.6.4: background priority, embed_skip, quantised variants, and the zerograph skill Oct 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant