Releases: johannes-kaindl/lingotuner
Releases · johannes-kaindl/lingotuner
Release list
0.6.1
0.6.0
Added
- The GitHub release now also carries a ready-to-unpack
lingotuner.zip(the plugin folder withmain.js,manifest.jsonandstyles.css) and achecksums.sha256file. For a manual install, download the zip and unpack it into.obsidian/plugins/instead of creating the folder and saving three files by hand. - Apple Intelligence (on-device) as an endpoint. With the LLM Endpoint Manager 0.4.0 the endpoint dropdown also offers "Apple Intelligence (on-device)"; a tune then runs through an Apple Shortcut instead of HTTP. Limits: the answer arrives all at once (no stream), is capped at about 4096 tokens, Shortcuts briefly comes to the front, and only one request runs at a time. The Model field stays empty. Failures of the shortcut (timeout, busy, cancelled, error) show their own message instead of an HTTP error. See the new guide "Use the Apple Intelligence endpoint".
Changed
- obsidian-kit 0.46.0 and code-kit 0.9.0 (was 0.43.0 and 0.7.0, chat client 0.44.0). Brings the shortcut bridge and transport choice; the endpoint dropdown, model picker and other kit parts are updated with it. A source that uses the Shortcuts transport no longer probes a backend.
0.5.0
Changed
- Chat client from obsidian-kit 0.43.0 (
createChatClient), replacing the local XHR client. Visible effects:- After the first token, a stall of 120 seconds without data now ends the run with "No answer within 120 seconds". Before, only the wait for the first token was limited (setting Timeout), and a stream that went silent later hung forever.
- A server that refuses the XHR stream (origin / CORS check) is retried once without streaming through Obsidian's
requestUrl; the answer then appears all at once. The "stream blocked (CORS)" message only shows when that request fails as well. - HTTP errors carry the server's message on one line, also for
200answers that hold an error body, and a context overflow is reported as an HTTP error. - The Lab recording measures
ttftMsfrom the first byte of the answer (also reasoning) as before, now taken from the client's timing.
- Lab recording through
logToLab(kitlab-client): a Lab that returns a promise instead of an id no longer slips through, and a Lab with anotherapiVersionis named once per session in the console instead of looking like "no Lab". - Kit vendoring raised to 0.43.0; the copied styles for the endpoint list (
>child selectors, so a nested setting keeps its label) and the streaming area (empty status and reasoning slots take no space) follow the kit.
0.4.0
Added
- Help row at the top of the settings with links to the documentation and the issue tracker (English and German).
0.3.3
Added
- Nutzer-Dokumentation.
docs/README.mdals Index, dazu Getting started und Troubleshooting (die Meldungen wörtlich aus dem Plugin, je mit Ursache und Abhilfe). Die README verlinkt sie im Abschnitt „Documentation“. - README-Bilder (Hero, Runden, Einstellungen, Regler), reproduzierbar per
npm run shots; Aufnahme-Vertrag indocs/images/README.md.
Fixed
- Die Zeile der aktiven Runde wurde in der Standardbreite der Seitenleiste links abgeschnitten. Ein Button hält seinen Text auf einer Zeile und zentriert den Überlauf; die Zeile bricht jetzt um. Der GUI-Smoke misst das mit dem neuen Punkt R1 (bei ~300 px, Gegenprobe am alten Stand rot).
Changed
docs/LAB.mdunddocs/SMOKE.mdliegen jetzt unterdocs/internal/(Wartungsmaterial, keine Nutzer-Doku).
0.3.2
Fixed
- Die Aufzeichnung in
llm-labwar still aus. Der Lab-Client prüfteapiVersion 3,llm-labliefert seit dem 2026-09-03 die Fassung 4 —readLabApigab deshalbnullzurück, und kein Tunen wurde aufgezeichnet (ohne Fehlermeldung). Der Client spricht jetzt Fassung 4.
Added
- Jeder Tunen-Lauf trägt eine
turnIdin der Lab-Aufzeichnung (ein Tunen = eine Nutzer-Handlung), damit das Lab zusammengehörige Aufrufe klammern kann.
0.3.1
Changed
authorUrlim Manifest zeigt wieder auf das GitHub-Profil (Rückkehr in den Community Store); keine Funktionsänderung.
0.3.0
Changed
- Sampling-Werte, Denkstufe und Tokenbudget kommen jetzt aus dem Anfrage-Profil (
code-kit
sampling-profiles) statt aus einer fest eingetragenen Temperatur. LingoTuner sendet im
Modustransform; die bisherige feste Temperatur0.3wird zur Modus-Vorgabe0.2—
Verhaltenswechsel, sichtbar im goldenen Request. Der alte Schalter „Denkschritt
überspringen" wird einmalig zu einer Denkstufe je Modus migriert (suppressThinking: true→
aus,false→ niedrig); das alte Feld wird danach nicht mehr gespeichert. - Neuer, aufklappbarer Abschnitt „Anfrage" in den Einstellungen (unter dem Endpunkt-Abschnitt):
zeigt Modellfamilie und Backend, welche Felder gesendet werden und warum, erlaubt eigene
Werte je Familie, zeigt die letzte gesendete Anfrage und Abweichungen der laufenden Sitzung. - Der Denk-Knopf im Panel erkennt die Modellfamilie jetzt über den Endpunkt (LLM Endpoint
Manager oder Namensschätzung) statt über eine reine Namensheuristik, und bietet bei Bedarf
vier Stufen (aus/niedrig/mittel/hoch) statt nur an/aus. - Kein
chat_template_kwargs/reasoning_budgetmehr im Anfrage-Body; gpt-oss bekommt nie
reasoning_effort: "none"(das Modell denkt dabei nachweislich mehr als bei"low").
Fixed
- Thinking toggle now shows its state without relying on color alone (UI-STANDARD §8,
state-button contract) —aria-pressedwas missing entirely. Fixed:aria-pressedfollows
the state on every render, icon switchesbrain↔brain-cogfor on/off instead of always
showingbrain. Nativedisabledand the tooltip viathink.hintwere already correct. - Endpunkt-Liste: Stil für Zusatz- und Schlüsselfelder nachgezogen (Kit 0.37.0).
- Ein API-Lauf (
quiet: true) zeigt bei einem fehlgeschlagenen Logbuch-Eintrag keineNotice
mehr, sondern schreibt wie der Override-Fehler daneben nur nachconsole.warn— ein
Fremdaufruf soll dem Nutzer keine unangeforderte Meldung ins Fenster schieben. - Der Status-Indikator wird jetzt auch bei einem reinen Patch (
patchPanel, ohne Voll-Draw)
nachgezogen — bislang blieb er stehen, bis der nächste Voll-Draw kam (heute folgenlos, weil
jeder Aufrufer ohnehin einen Voll-Draw auslöst, aber keine Eigenschaft der Funktion selbst).