Releases
v0.12.0
Compare
Sorry, something went wrong.
No results found
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 )
daemon: mask slack_user_token in GET /settings (f867a21 )
daemon: read settings off the async workers; raise default abstain margin to 1.20 (1f8013d )
daemon: stop holding the sqlite mutex across the claude shell-out (#41 ) (5d16542 )
infer: a rebuild never fuses two ticketed blocks, so no ticket is lost (f3eee4f )
infer: a saved split divides the worked minutes, wherever the idle stretches fall (1665307 )
infer: a saved split only moves work minutes, never personal time (631da71 )
infer: a saved split re-cuts the work time the day already had, so it never adds time (0e43946 )
infer: blocks follow a saved split, spanning the minutes it hands each project (990421e )
infer: client work claims a minute before any personal project (62105e6 )
infer: each minute belongs to one project, so parallel sessions never double-bill (bd00b97 )
infer: each project's block spans the minutes it owns; quick hops join a neighbour instead of vanishing (bde2a80 )
infer: focus follows the owner's latest action; Claude working in the background only fills idle minutes (b40dc92 )
infer: split pieces link their own project's events, so the saved block keeps its project (5c924e3 )
infer: worklog day and worklog infer keep saved splits (the 15-min schedule undid them) (c91ebcf )
laya: run the real laya Router in the helper script (718f692 )
repo: preserve routing label through re-collect (5be7681 )
routing: file exact repo/path mentions by rule before the classifier (737d516 )
routing: match named projects in the visited URL or own message, never the page title (fb3a1a9 )
routing: propagate edited always-rule folder to rule-labelled events (c9bab1a )
routing: reject always-rule when kind mismatches event source (36a7d95 )
schedule: never repoint the real collect agent at a temp-dir binary (updater tests broke it) (16b5daf )
slack: paginate search.messages and isolate per-message failures (550b63b )
slack: skip empty profile names when titling DMs (ff91dac )
verdict: never guess a lone option and ask with the measured wording (fbefc11 )
verdict: T002 never send a Choice with fewer than 2 options (22a3a36 )
web: colour day-strip segments per project and show a short Lunch/Away label on narrow gaps (31b381d )
web: give labelled routed rows the same two-column layout as unsorted rows (4709a48 )
web: lanes-view band misalignment and full per-project activity (f990daf )
web: lay out unsorted rows so the rule checkbox and picker sit under the event text (bd6f96a )
web: plain names for Claude prompt and working clues (4e92682 )
web: point the container healthcheck at IPv4 loopback (0742476 )
web: pressing a slider or button in the split box no longer starts a new drag (1130bdb )
web: rename settings ratio fields to abstain_margin/runner_up_ratio (e40a8e7 )
web: space the day's project colours by golden angle so busy projects never share a hue (b170a92 )
web: T011 remount UnsortedList on day change (0b5f04f )
web: T012 review round 1 — blank threshold no longer saves 0, tighten reachable assertion (e17d9a6 )
web: use typographic quotes in the sort tray hint so the build lints (616ed01 )
Documentation
specs: 003 amend — heartbeat CORS preflight, Slack DM names; CHK002 evidence (be83095 )
specs: 003 approved by user (1b7863b )
specs: 003 checkpoints wait for the tasks they check (ccb6bb0 )
specs: 003 CHK001 pre-check evidence (246ac68 )
specs: 003 CHK001 user-verified (6d8b882 )
specs: 003 contract for the Firefox add-on (3238b06 )
specs: 003 gates green, PASS-4709a48 (21f964f )
specs: 003 note phase 2 test command (f365a22 )
specs: 003 notes — phase 5 test filter, missing slop-check (d968c96 )
specs: 003 prep awaiting lint ruling (c127063 )
specs: 003 prep ready for spec (user kept one file over 12-question lint) (73e0a7f )
specs: 003 re-tick CHK001 against manifest commit (f60167b )
specs: 003 spec, design, tasks + routing contract module (0fa7830 )
specs: 003 tick CHK001 (b2b064b )
specs: 003 tick CHK003 (user verified day page) (830c4a7 )
specs: 003 tick T003 (daemon routes) (b6d3771 )
specs: 003 tick T006 (Laya client + helper) (4645778 )
specs: 003 tick T007 (route before inference) (d4cdc75 )
specs: 003 tick T010 (web routing types + actions) (0433e11 )
specs: 003 tick T011, T012 (unsorted list, settings) (12c6f73 )
specs: 003 tick T013 (heartbeat CORS preflight) (51d853f )
specs: 003 tick T014 (Slack DM names) (f12df60 )
specs: 003 wave 1 ticked (schema v11, Firefox add-on) (893323a )
specs: 003 wave 2 ticked (browser ingest, Slack collector, router core) (5cb926d )
specs: 004 approved and verified by user, gates green (7dcef4e )
specs: 004 real-day verification, ticks and notes (e913371 )
specs: 004 tick T001, progress and notes (4bb8246 )
specs: 004 Verdict routing spec, design and tasks (eb435ef )
specs: day page screenshot with confidence badges and gap rows (43e4c4d )
specs: gap audit across every readable local source (7d71808 )
specs: gap audit across every readable local source (86bee78 )
specs: inventory of local timeline data sources (f3bed27 )
specs: prep for browser + Slack event routing (003) (1dbb2f8 )
specs: timeline report — day page, review fix, gates (45af703 )
specs: timeline report for the first day with shell and reflog sources (08052fe )
specs: user stories for the zero-effort day view (ca18a09 )
specs: zero-touch day design and status (9f52582 )
specs: zero-touch status — attention-first split, adjustable overlaps (be2b86b )
You can’t perform that action at this time.