Repository navigation
Releases: TomasPalsson/worklog
Releases · TomasPalsson/worklog
Release list
v0.12.0
0.12.0 (2026-09-24)
Features
- 'What happened' timeline — prompt snippets read live, Claude stretches with branch/tools/files, copied sessions counted once (be16b84)
- browser-ingest: heartbeat ingest with work-hours + privacy filters (T002) (f352b61)
- cli: T004 verdict serve pins git rev + huggingface_hub (27a12db)
- cli: wire fish shell history and git reflog into
worklog collect(c2d396a) - collectors: add claude_turn transcript collector for the invisible-afternoon gap (7f7a8f9)
- collectors: add fish shell history collector (3f2c386)
- collectors: add git reflog collector (8793685)
- collectors: count Claude working in an interactive session, one marker per minute, no text (16217ac)
- collectors: T004 Slack collector for sent messages (20d4518)
- daemon: answer CORS preflight for extension heartbeats (69880ae)
- daemon: expose overlaps on GET /days/:day and allocation endpoints (960d0dd)
- daemon: surface block confidence and day gaps on /days/:day (252c1d5)
- daemon: T005 ratio settings (abstain_margin + runner_up_ratio) (03d9a70)
- infer: honour saved overlap allocations when building blocks (7190ddb)
- infer: parallel projects get parallel blocks instead of one fused block (9bf3920)
- overlaps: detect overlapping work windows and persist manual splits (b3bca0f)
- routing: absorb work-stretch events and hide the rest as noise (84abefd)
- routing: dismiss events as noise, with optional ignore rule (1caa291)
- routing: Link/Context label origins + Slack time-context filing (a19b7f3)
- routing: schema v11 and module stubs for browser/Slack event routing (799fa76)
- routing: T003 daemon routes for browser/Slack event routing (ac97b1a)
- routing: T003 relative filing rule (abstain margin + runner-up ratio) (2909ea6)
- routing: T005 router core — rules, threshold, container narrowing (fa55128)
- routing: T006 Laya client, helper script and CLI (19cf90f)
- routing: T007 route before inference in collect all and POST /infer (acdbeec)
- slack: title DMs with the counterpart's name via users.info (4996e31)
- timeline: add block_confidence and day_gaps helpers (5d9eaa6)
- upgrade: bring the web UI and collect agent onto the new binary (#43) (d1fc7dc)
- verdict: T002 helper script and client (probability, runner_up, abstain) (6faf2db)
- web: calmer day strip — merge same-project stretches, 4-project legend with +N more and Other, labels only when they fit (546f96c)
- web: click-and-drag time-range selection with saved-allocation brackets (949d0cd)
- web: day strip groups by the daemon's repo-folded project field (e5cb1b1)
- web: day strip, grouped sort tray with Not work, compact auto-filed list (bc8a48e)
- web: drop the no-ticket banner — the owner does not want it (665f8cb)
- web: interactive day strip — lanes view, legend focus, rich tooltip (536ef44)
- web: label the day gap that covers 11:30 as lunch (bba82ea)
- web: linked split sliders that start from today's split, drag measured on the track, 0% shares dropped on save (40a2b61)
- web: overlap types, daemon client and allocation server actions (8b5c31a)
- web: plain-language origin badges + preview on filed rows (442a6f7)
- web: render overlap bands, a count chip and the split popover (fe87073)
- web: saved splits read as chips (range, project, percent, reset) under the lanes (0595637)
- web: show block confidence badge and day gaps on the day page (2969486)
- web: show what each clue said or where it went, and why it was hidden, in the review drawer (203fe14)
- web: T010 routing types, daemon client and server actions (70fdecf)
- web: T011 unsorted list, label picker with always, source badges (B12) (3fcdff5)
- web: T012 settings routing controls, hard rules, source status (dcca57f)
- web: the day strip shows work only — no personal time (9077afd)
- web: zero-touch day page — quiet summary + review drawer, block clue line, attention line (fd9e317)
Bug Fixes
- billing: map a submodule's GitHub repo to the work folder that vendors it (b93e080)
- cli: worklog day collects slack, shell, and reflog again (83e4f4f)
- collectors: count only prompts the owner typed, never headless runs or system notifications (d9a2071)
- collectors: keep shell command text out of project_path (cee2052)
- collectors: read transcripts still being written after the day ends (b52119e)
- collectors: reflog reads worktree and submodule logs, not just the main repo (45e541c)
- collectors: store only a sanitised program name as the shell event title (7612edf)
- daemon: day summary reports the folded billing folder, not just the raw path ([3262147](32621471c097e1801cb65cdd72...
v0.11.2
v0.11.1
v0.11.0
0.11.0 (2026-07-28)
Features
- billing: invoicing-form export + UI-editable customer/folder registry (#33) (143f583)
- cli: UX overhaul phase 3 — auto-merge, status dashboard, Docker-free day (1c45f27)
- cli: UX overhaul phases 1-2 — block editing + day/week queries (39a23e7)
- cli: worklog completions <shell> — shell completion scripts (9f9ea23)
- daemon: add /tickets/search + /tickets/external (f55e04f)
- merge same-ticket blocks and describe with Claude (events + commits) (#23) (0be24a5)
- purge: automatic billing-cycle pruner (#34) (34cb176)
- set a block personal/work from the review UI (0503ea2)
- skill: bundled Claude Code skill for operating worklog (641bd60)
- sync: aggregate same-ticket blocks into one Tempo worklog (a0afbdf)
- web: collapse day view into per-ticket groups (80b8acb)
- web: live Jira ticket search in the picker (07741b1)
- worklog-core: external column + jira search backend (4c80693)
Bug Fixes
- estimate: redact code from event content before it reaches claude -p (5a155f6)
- hook: add hook_run::SUPPRESS_ENV the estimator references (9bd4a5e)
- hook: stop storing code in the events database (08c63e6)
- hook: sweep worklog handlers off legacy event keys on install (5166045)
- infer: stop fragmenting long Claude turns into dropped 2-min slivers (#21) (7ca11cc)
- reject phantom tickets (CRIT-1) and stop double-billing overlaps (20fdb68)
- tests: serialise WORKLOG_HOME and unlock flock explicitly (60b9897)
v0.10.0
v0.9.0
v0.8.0
v0.7.0
0.7.0 (2026-05-12)
Features
- auto-launch web UI after setup, open browser by default (b91179d)
- cli: auto-launch web UI + browser at end of setup (8ea9a15)
- core: add browser::open_url cross-platform opener (fe1260e)
- estimate: conservative tickets + merge adjacent same-ticket blocks (496ea7d)
- infer: split blocks at sustained project_path transitions (d6beef5)
- personal: auto-classify and dim personal-project blocks (022a66a)
- sync: dirty-flag local edits + PUT existing Tempo entries (b1ea7be)
- web: host-bun runner replaces Docker + collapse personal blocks (a6ab48d)
Bug Fixes
- estimate: allow cross-language project↔ticket matching (46c7a1a)
- estimate: read JSON from envelope.structured_output (c555e92)
- secrets: skip env-first lookup when file-backed shim is active (29aca9a)
- sync: DELETE Tempo worklog when block is deleted locally (b89d22a)
- sync: tempo v4 wants issueId + accountId, ticket overrides personal (1c74552)
- web: clearer sync toast + always rebuild on web up (a1adfec)
v0.6.0
v0.5.0
0.5.0 (2026-04-19)
⚠ BREAKING CHANGES
- remove Claude hook; add
worklog setupwizard - drop companies; Claude picks Jira ticket; cache open tickets
Features
- CLI polish + web auto-fetch + release-please automation (0fb6ac9)
- cli: GREEN — fix help/version exit codes + add serve/upgrade aliases (bdd092c)
- cli: polish output with console + indicatif (92a4916)
- cli: worklog doctor + Rust hook preference in hook install [GREEN] (5021291)
- daemon auto-install + CLI polish + rolling purge + richer hook capture + web dark mode (v0.4.0) (#4) (0a2a513)
- daemon: TCP listener alongside unix socket (stage 4.3) (310b233)
- day: GREEN — 'worklog day' orchestrator in Rust (37b65a4)
- db: schema v2 with sessions, blocks, session_id [GREEN] (e040f56)
- delegate hook to Rust + add schedule passthrough (stage 1.2 close) (9b6b1d9)
- delete the Python package, ship pure-Rust via signed curl installer (b596bea)
- drop companies; Claude picks Jira ticket; cache open tickets (101aaf5)
- estimate: claude -p block estimator + CLI [GREEN] (746a691)
- gcal: GREEN — implement Rust Gcal collector (7d2597d)
- infer: gap-timeout block clustering + CLI [GREEN] (a84535a)
- install: curl-piped installer + smoke tests (0835568)
- migrate Python CLI to delegate to Rust binary (971a23b)
- release: GREEN — real Ed25519 pubkey + GHA release workflow (2b80ed5)
- remove Claude hook; add
worklog setupwizard (a44bf4d) - rust-hook: working worklog-hook binary [GREEN] (4ea8546)
- rust: axum unix-socket daemon + block service (stage 3.2 close) (3a8b3fa)
- rust: hook + schedule modules + wizard integration (stage 1.2) (2493dcc)
- rust: infer + hook-run + estimator modules (stage 3.1) (b8e77e8)
- rust: jira, github, tempo collectors + HTTP client (stage 2.1) (552c41c)
- rust: scaffold worklog-core + worklog-cli (stage 1.1) (5954043)
- rust: setup wizard, CI, Justfile, crate README (stage 1 close) (d33a84f)
- rust: worklog collect + sync CLI + Python delegation (stage 2 close) (a844f18)
- sessions,hook: session pairing + reaper wired into Claude hook [GREEN] (899b3ef)
- setup: restore Claude hook + wire install prompt into wizard (bec4c6f)
- tempo,web: sync + UI operate on blocks [GREEN] (08877e3)
- updater: crypto + manifest + delta + install scaffolding (stage 5.1) (9dbefd7)
- updater: self-update CLI, dev tooling, python upgrade routing (stage 5 close) (2d29d23)
- web: auto-fetch web/ tree from GitHub archive (4ee1d12)
- web: Next.js + Bun app + daemon /estimate & /sync (stage 4.1) (07f10aa)
- web: readable card layout with icons (7c3c6b6)
- web: redesign review UI as log-viewer dashboard (88c2cf3)
- web: searchable ticket combobox + per-block source chips (49d4df4)
- worklog day (one-shot daily flow) + worklog upgrade (pulls from GitHub) (e3d01b6)
- worklog web CLI + Dockerfile, retire Python FastAPI (stage 4.2) (02ab27d)
Bug Fixes
- estimate: resilient fallback when claude omits minutes/description (73786ee)
- hook: rename install-default to hook-run; add back-compat 'hook run' alias (551387e)
- qa-phase-1: silent data loss bugs (C1, C8, H1, H2) (8333b4e)
- qa-phase-2: updater correctness (C2, C3, C4, C5, C6, C7, M2, M3) (6921d88)
- qa-phase-3: boundary + error handling (H5, M1, M4, M5) (10db970)
- qa-phase-4: web UX + accessibility (H6-H12, M6-M8) (de5c012)
- qa-phase-5: timezone correctness (H3, H4) (7915e8f)
- qa-round-2: close findings from second QA wave (d80ff55)
- qa-round-3: tempo canary + parity + manifest compat + concurrent safety (2f0c413)
- qa-round-4: delta fallback + pubkey hardening + observability + timeouts (15fb79c)
- security: token.json chmod 0600, sanitise OAuth error, always-cleanup key (56b8958)
- setup: generalize token prefix scrubber (GitHub PATs too) (e728b82)
- setup: strip stray glyph before Jira token (Atlassian Copy-button paste artifact) (aff96cf)
- upgrade: use SSH to handle private repo auth (77a6c70)