Repository navigation
Releases: profitlich-ch/prosonata-vscode-tools
Release list
1.0.0
- Available in the VS Code Marketplace and on Open VSX. Updates now arrive
by themselves. A copy installed by hand is taken over by the Marketplace,
because the idprofitlich.prosonata-vscode-toolsstays the same. - The activity bar shows “ProSonata” instead of “:Profitlich”.
- README: New sections “Data and privacy” and “Platforms”. In the
Marketplace the diagrams appear as images, because it does not render
Mermaid.
0.11.1 — Fremde Einträge verschwinden aus dem Panel
Offene Zeiteinträge fremder Projekte standen in jedem Panel. Die Liste filterte nur auf «offen», nicht auf das Arbeitsverzeichnis — ein offener Branch-Eintrag aus einem anderen Repository erschien überall, beschriftet als Offen · <branch>, was sich wie ein Branch des gerade geöffneten Projekts liest. Ein Klick darauf öffnete den Abschluss-Dialog für den fremden Eintrag.
prosonata status meldete fremde Timer. Gesucht wurde nach Branchnamen allein; da main in jedem Repository existiert, stand dort «läuft», sobald irgendwo sonst ein main-Timer lief. Die Dauer daneben war korrekt — nur die Aussage darüber nicht.
Beides betraf allein die Anzeige: Keine Zeit war falsch gebucht, nichts in ProSonata betroffen.
Installation: die .vsix herunterladen und in VS Code über «Aus VSIX installieren…» einspielen.
0.11.0 — Der fremde Anteil wird benannt
Die Zeile Offener Eintrag nennt den Anteil eines zweiten Computers, sobald es einen gibt: Buchungsmodul · 4:00 h (1:00 h anderswo).
Bisher standen dort zwei verschiedene Summen untereinander — die Timer-Zeile zählt, was auf diesem Rechner gemessen wurde, die Eintragszeile den ganzen Zeiteintrag —, ohne dass etwas den Unterschied erklärte. Beide Zahlen waren richtig und sahen zusammen nach einem Fehler aus.
Arbeitest du allein, ändert sich nichts: Die Klammer erscheint nur, wenn tatsächlich ein fremder Anteil existiert.
Ausserdem in KONZEPT.md dokumentiert: wie ein Rechner den fremden Anteil überhaupt erkennt (über lastWritten), warum kein Read-Modify-Write verwendet wird — und dass die Aufteilung in keiner Ansicht sichtbar ist, auch nicht in ProSonata.
Installation: die .vsix herunterladen und in VS Code über «Aus VSIX installieren…» einspielen.
0.10.0 — Die Kennung überlebt den Abschluss
Ein abgeschlossener Zeiteintrag behält seine Kennung: aus [LAUFEND:a3f9c1] Text wird [a3f9c1] Text statt nur Text. Das Wort trägt den Zustand — auf einem fertigen Eintrag wäre «LAUFEND» eine Lüge —, der Schlüssel die Identität. Ohne ihn ist ein geschlossener Eintrag in ProSonata anonym, und genau daran hingen drei Einschränkungen: Zuschlagen ging nur über state.json, die Wiederherstellung fand nur offene Einträge, und ein zurückgerollter Commit war seinem Eintrag nicht mehr zuzuordnen.
Damit möglich geworden: Das Zuschlagen findet sein Ziel auch in ProSonata, wenn der lokale Zustand keines kennt. Und die leere Hülle des offenen Eintrags wird aufgeräumt, nachdem die Zeit sicher auf dem anderen steht — bei fremdem Anteil bleibt die Absage.
detailLimit steht auf 800 statt 200, vom Hersteller als feste Feldlänge zugesagt. Die eigene Längenprüfung bleibt: ProSonata kürzt stillschweigend und spiegelt sogar den ungekürzten Text zurück.
Behoben: «Konto einrichten» setzte alle übrigen Einstellungen zurück; prosonata init verweigerte den Key-Wechsel auf einem eingerichteten Rechner.
Installation: die .vsix herunterladen und in VS Code über «Aus VSIX installieren…» einspielen.
0.9.0 — Platzhalter statt Warten
Ein Eintrag ohne Text wird jetzt geschrieben — unter dem Platzhalter (in Arbeit), sobald ein Timer für ihn läuft. Bisher wartete er auf den ersten Commit, und das kostete zweierlei: Ein zweiter Computer fand ihn nicht (gesucht wird über den Marker, den es erst nach dem ersten Schreibvorgang gibt) und legte einen zweiten Eintrag für denselben Branch an; und ein Verlust von state.json nahm den ganzen Eintrag mit. Der Platzhalter steht nur in ProSonata — lokal bleibt der Eintrag textlos, der erste Trailer ersetzt ihn.
Das Panel zeigt das Budget des Projekts, etwa «15,25 von 20 h». Geholt wird es beim Öffnen des Fensters, beim ersten Auftauchen eines Projekts und sobald ein abgeschlossener Eintrag in ProSonata angekommen ist — kein Polling.
Behoben: Ein Eintrag liess sich im Editor ohne Text abschliessen. Er wäre sofort als namenlose Zeile ins Kundenprojekt gegangen, denn die Regel «ohne Text kein Versand» galt nur für offene Einträge.
Ausserdem: Auf Branches erinnert eine Panel-Zeile an den fehlenden Rechnungstext. README und KONZEPT wurden geprüft — sechs sachliche Fehler korrigiert, sieben unfertige Stellen als solche markiert.
Installation: die .vsix herunterladen und in VS Code über «Aus VSIX installieren…» einspielen.
0.8.0 — Abschlusszeile im Log, Verwerfen
Der Log zeigt, wo ein Zeiteintrag endet. Beim Abschliessen entsteht eine eigene Zeile ohne Zeiten, mit der Summe und dem Vermerk Zeiteintrag — alles darüber gehört zu ihr. Auf main also nach jedem Commit eine Trennlinie, ohne den Text auf jeder Segmentzeile zu wiederholen.
Ein laufendes Segment lässt sich ganz verwerfen — der Fall «committet, Anhalten vergessen, danach nicht mehr gearbeitet». Zuoberst im Korrektur-Dialog, als Befehl in der Palette und als prosonata discard im Terminal.
Zeiten lesen sich als Stunden:Minuten, nicht dezimal: 1:16 h statt 1.27 h. Gesendet wird unverändert dezimal.
Der Bericht rundet je Zeiteintrag, wie ProSonata es tut, statt die Gesamtsumme in einem Zug — sonst zeigte er weniger an, als in Rechnung gestellt wird. Die Zahl erscheint nur noch, wenn das Raster sie verändert; die Branch-Spalte entfällt bei einem einzelnen Branch.
Behoben: Segmente eines Commits hingen am Nachfolger-Eintrag statt an dem, in den gebucht wurde. Betroffen war allein der Querverweis im Protokoll — nicht die gebuchte Zeit und nichts in ProSonata.
Installation: die .vsix herunterladen und in VS Code über «Aus VSIX installieren…» einspielen.
0.7.0 — Laufender Timer in der Marke
Der Statusanzeiger zieht aus einem geliehenen API-Feld in die eigene Marke — und die Felder sagen endlich, was sie in ProSonata bedeuten.
Die Marke trägt, seit wann gemessen wird: [LAUFEND:a3f9c1][260802-08:12] Text. Die zweite Klammer steht nur, solange ein Timer läuft. Bewusst eine eigene Klammer: Ein älterer Stand fände eine Marke mit der Zeit innerhalb der Klammer nicht mehr und hielte den Eintrag für anderswo abgeschlossen.
Die Warnung über einen fremden Timer kennt den Tag. Bisher stand dort eine Uhrzeit ohne Datum — ein vergessener Timer klang eine Woche später wie einer von heute früh. Jetzt: «läuft seit 08:12», «läuft seit gestern 23:50» oder «trägt seit 30.07. 08:12 eine laufende Messung — dort wurde vermutlich das Anhalten vergessen».
Start und Ende in ProSonata: workingTimeStart und workingTimeEnd tragen die Spanne des Arbeitstages aus dem Segmentprotokoll. Fallen die Enden auf verschiedene Tage, werden die Felder geleert — eine Spanne sagt nur über einen einzelnen Tag etwas aus.
Achtung bei zwei Computern: Beide sollten diesen Stand haben. Ein älterer zeigt die Zeitklammer als Textrest.
Installation: die .vsix herunterladen und in VS Code über «Aus VSIX installieren…» einspielen.
0.6.0 — Nacharbeit zuschlagen
Nacharbeit nach dem Commit lässt sich dem letzten Eintrag zuschlagen. Auf main schliesst jeder Commit seinen Eintrag; wer danach weiterarbeitet und nicht mehr committet, hat Zeit gemessen, die zum eben gemachten Commit gehört. Dafür steht in der Seitenleiste Nicht gebucht, im Terminal prosonata attach. Geschrieben wird nur die neue Gesamtsumme — Text und Datum bleiben unberührt, fakturierte Einträge werden abgelehnt.
Behoben: das Zeitraster eines Repositories erreichte den Versand nie. Panel und Log zeigten es, gerundet wurde beim Schreiben aber immer mit der Vorgabe aus ~/.prosonata/config.json. Ein Repository konnte also eine Rundung anzeigen, die nie stattfand.
Ausserdem
- Die Statusleiste zeigt die Summe des Branches; das laufende Segment steht im Tooltip.
- Das Log öffnet als gesetzte Markdown-Vorschau und ist wirklich schreibgeschützt.
Installation: die .vsix herunterladen und in VS Code über «Aus VSIX installieren…» einspielen.
0.5.1 — Korrekturen an der Zeitkorrektur
Nachlese zur 0.5.0: vier Fehler, die erst im Alltag auffielen.
- Eine Korrektur setzte die Grenze fürs Zurückdrehen, obwohl ihr Zeitstempel nur der Moment der Eingabe ist.
- Negative Zeiten trugen zwei Minuszeichen (
-1:-15statt−0:15). - Der Dialog hatte seine Rückmeldung vertauscht: Die Absage verschwand beim Tippen, weil ein QuickPick nach dem Text filtert. Sie steht jetzt im Titel.
- Die Grenze einer nachgetragenen Dauer nannte den Eintrag, gemeint sind die lokal gemessenen Segmente.
Die Rückmeldungen sagen zuerst, was möglich ist, und begründen es mit dem Segment: nur +1 Minute → letztes Segment reicht bis 18:04.
Installation: die .vsix herunterladen und in VS Code über «Aus VSIX installieren…» einspielen.
0.5.0 — Zeit vor- und zurückdrehen
Der vergessene Start hatte bisher keine Antwort, das vergessene Ende nur eine grobe. Beides beantwortet jetzt ein Dialog, der beim Tippen zum Eingabefeld wird.
Installation
code --install-extension prosonata-vscode-tools-0.5.0.vsixDanach das Fenster neu laden.
Zeit korrigieren — über das Stift-Symbol an der Timer-Zeile, die Befehlspalette oder prosonata adjust:
| Eingabe | Bedeutung |
|---|---|
25 |
bietet +25 und −25 an |
-25, +1:30 |
genau diese Richtung |
ab 9:40 |
ich arbeite seit 9:40 — der Beginn des laufenden Segments wandert dorthin |
bis 9:40 |
ich habe um 9:40 aufgehört — es wird bis dahin gebucht und der Timer angehalten |
Jede Zeile zeigt vorher, was sie bewirkt: 7:13:09 → 0:40:00, und wenn ein Wunsch gekürzt wird, warum: „erst ab 14:25 möglich — davor ist alles erfasst".
Die Regeln dahinter
- Uhrzeiten ändern das laufende Segment. Steht der Timer, gibt es keines, auf das sie zeigen könnten — dann trägt man eine Dauer nach.
- Ein abgeschlossenes Segment erklärt alles davor für erledigt. Weiter zurück reicht keine Uhrzeit.
- Eine nachgetragene Dauer ist keine Messung und trägt im Protokoll deshalb keine Anfangszeit statt einer erfundenen Spanne.
- Ein Eintrag fällt nie unter null.
Ausserdem
- Die Timer-Zeile im Panel nennt beide Zahlen: das laufende Segment zuerst, dahinter die Summe des Branches.
Der vollständige Changelog steht in CHANGELOG.md.