Files
autocomplete-model/shared
HarvmasterandClaude Opus 5.5 5c99f011e8
ci / build (push) Canceled after 0s
Next-edit: treat empty model output as no-edit
llama-server leaves special tokens out of content, so the NO_EDIT token arrives as an
empty string. The daemon treated that as a rewrite of the region to nothing (Tab would
have deleted the region). shared/nextedit.ts parseNextEditOutput() is now used by the
daemon and the eval.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J39imRDT8L7xYbWzsVWd8A
2026-10-04 00:15:11 +00:00
..

shared

Code used both by the training pipeline (to build training/eval data) and by the daemon at inference time. Keeping one copy is what guarantees the model sees exactly the prompt format it was trained on.

  • prompt.ts: FIM prompt layout (spm/psm), the repo-level header, KV-cache-friendly prefix truncation, and post-processing (suffix-overlap trimming, single-line detection). No dependencies.
  • symbols.ts: "symbols available at the cursor" context from the TypeScript language service (imported signatures, repo-local types, optional member completions) and the missing-this. detection. Pinned to typescript@5.9.3 and @vue/compiler-sfc@3.5.43: the output format is part of the model's training distribution, so upgrade only together with re-checking parity.
  • symbol-lang.ts: language-id mapping (dependency-free, so the daemon's main bundle stays small).