Extension 0.6.0: next-edit, token healing, TS errors context, cursor-move, prewarm
ci / build (push) Canceled after 0s

- shared/nextedit.ts: next-edit prompt format (region rewrite or NO_EDIT, Qwen spare special tokens)
- shared/diagnostics.ts: TS errors near the cursor as context; symbols format 2 adds namespace imports
- shared/prompt.ts: token healing (cut the half-typed word, force it via grammar), errors header section
- daemon: model profiles carry contextFormat/errors/members/nextEdit; /v1/next-edit with edit-burst
  tracking; /v1/prewarm; /v1/debug/last; token healing on by default
- extension: next-edit decorations (Tab apply / Esc dismiss), suggest on cursor move, prewarm on focus,
  Show Last Prompt, update check against releases, diagnostics in the edit recorder
- models/README: training-data attribution; release script profiles for stage-d/stage-e
- .gitea/workflows/ci.yml: build + test, publish release on vscode-v* tags (needs a runner + RELEASE_TOKEN)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J39imRDT8L7xYbWzsVWd8A
This commit is contained in:
2026-10-03 17:21:38 +00:00
co-authored by Claude Opus 5.5
parent af302df26a
commit 87d3c3c3bf
24 changed files with 1090 additions and 53 deletions
+64 -2
View File
@@ -3,7 +3,7 @@
"displayName": "Local Autocomplete",
"description": "Inline code completion from a local fine-tuned model via the acd daemon",
"publisher": "harvmaster",
"version": "0.5.0",
"version": "0.6.0",
"license": "MIT",
"engines": {
"vscode": "^1.90.0"
@@ -37,6 +37,26 @@
{
"command": "localAutocomplete.showLog",
"title": "Local Autocomplete: Show Log"
},
{
"command": "localAutocomplete.applyNextEdit",
"title": "Local Autocomplete: Apply Suggested Edit"
},
{
"command": "localAutocomplete.dismissNextEdit",
"title": "Local Autocomplete: Dismiss Suggested Edit"
},
{
"command": "localAutocomplete.requestNextEdit",
"title": "Local Autocomplete: Suggest Next Edit Here"
},
{
"command": "localAutocomplete.showLastPrompt",
"title": "Local Autocomplete: Show Last Prompt"
},
{
"command": "localAutocomplete.checkForUpdates",
"title": "Local Autocomplete: Check for Updates"
}
],
"configuration": {
@@ -187,9 +207,51 @@
"type": "string",
"default": "",
"description": "If set (e.g. ~/Projects/AutoComplete/daemon/recordings), edit recordings are written here directly and no daemon is needed. Otherwise they are sent to the daemon."
},
"localAutocomplete.nextEdit.enabled": {
"type": "boolean",
"default": true,
"description": "Suggest edits beyond the cursor (e.g. remove a leftover \")\", update call sites) after you pause typing. Only with models trained for next-edit."
},
"localAutocomplete.nextEdit.debounceMs": {
"type": "number",
"default": 700,
"description": "Pause after typing before asking for a next-edit suggestion."
},
"localAutocomplete.triggerOnCursorMove": {
"type": "boolean",
"default": false,
"description": "Also suggest when you move the cursor (arrow keys, mouse) and pause. With next-edit models it predicts what you came to change; otherwise only on empty lines, line ends or lines with errors."
},
"localAutocomplete.cursorMoveDelayMs": {
"type": "number",
"default": 400,
"description": "Pause after moving the cursor before triggerOnCursorMove fires."
},
"localAutocomplete.prewarmOnFocus": {
"type": "boolean",
"default": false,
"description": "Prefill the model cache when you switch to a file, so the first keystroke is fast (uses some CPU/GPU when switching files)."
},
"localAutocomplete.checkForUpdates": {
"type": "boolean",
"default": true,
"description": "Check the Gitea releases page for a newer version once a day."
}
}
}
},
"keybindings": [
{
"command": "localAutocomplete.applyNextEdit",
"key": "tab",
"when": "editorTextFocus && localAutocomplete.nextEditVisible && !inlineSuggestionVisible && !suggestWidgetVisible"
},
{
"command": "localAutocomplete.dismissNextEdit",
"key": "escape",
"when": "editorTextFocus && localAutocomplete.nextEditVisible"
}
]
},
"scripts": {
"compile": "tsc -p . && node build-daemon.mjs",