Skip to content

v1.0.0

Choose a tag to compare

@adityaharishch adityaharishch released this 01 Jun 07:56

1.0.0 (2026-06-01)

  • feat(migrations)!: rename 004→005 and rework agent schema (c390a91)
  • feat(migrations)!: rename 004→005 and rework agent schema (a405be6)

Bug Fixes

  • agents: address all PR review changes for jira-updater and meridian-mcp (70dfb39)
  • agents: address PR #3 review — defer hermes setup, fix header + docstring + cursor warning (70e6d07)
  • agents: resolve critical issues in jira-updater found in code review (2613ca6)
  • agents: validate MERIDIAN_DB env var at config load to prevent prompt injection, shell injection, and path traversal (40a7147)
  • ax-sidecar: harden against missing deps, transient failures, and idle states (b1e3867)
  • ax-sidecar: use OS process tree for host app detection + scan subagents/ (1b25123)
  • bootstrap: update synthesizer references to tagger, fix pm_tasks schema (578fc8d)
  • categorizer: correct misclassifications found in real session smoke test (c1bd8f4)
  • categorizer: fix false-positive DevOps from YouTube/README a11y elements (c134d70)
  • classifier: drop the 300-char cap on the reasoning field (7823758)
  • classifier: enforce JSON output and disable Qwen3 thinking mode (01b564b)
  • classifier: robust response extraction and JSON sanitization (4fefe19)
  • classifier: stop outlines truncating task reasoning at 300 chars (8dbaff7)
  • cli: add mlx-server to managed labels; kill orphaned mlx_lm.server on stop (7139796)
  • config: disable jira updater by default, skip gracefully if module missing (7a94a4a)
  • css: use direct path for tailwindcss import (e81c7cc)
  • db: improve window title normalization for non-browser apps (aa7f02a)
  • db: remove LIMIT 10 from get_element_samples and add TRIM dedup (36ca205)
  • donut: eliminate Recharts SSR hydration mismatch (1e269f2)
  • etl: close block on gap so session duration_s excludes gap time (66e81ce)
  • etl: deduplicate AXTextArea — keep only last snapshot per session (d653c6c)
  • etl: detect sleep gaps that span ETL run boundaries (a8f2280)
  • etl: fix three gap detection bugs (a63d0e6)
  • etl: merge reclassified Terminal sessions correctly (7af11f8)
  • etl: merge reclassified Terminal sessions correctly (f03b61b)
  • etl: recover inter-frame gap in session duration (extend Option D) (06bc9ab)
  • etl: refactor block args into BlockBounds to satisfy clippy (1a5ef2b)
  • etl: remove LIMIT cap on ocr_samples and elements_samples extraction (b716085)
  • etl: resolve 0s duration on single-frame sessions (Option D) (317ceb2)
  • etl: restore LIMIT 10 on elements_samples extraction (1032b65)
  • evals: correct model label phi-4-4bit → Qwen3.5-9B-OptiQ-4bit + TODO for /info endpoint (925b1e8), closes #1 #1
  • evals: force-flush root eval.run span before obs_shutdown (25af90d)
  • evals: wire Dev B candidates into render_seeds.py — normalise id/task_key (6a39692)
  • fmt: apply cargo fmt to intelligence modules (ca49a35)
  • hooks: block edits to committed migration files in pre-commit (4555892)
  • install: correct permissions walkthrough — Microphone pane has no '+' button (cfdaf34)
  • install: don't abort MLX installer when MERIDIAN_OO_AUTH is unset (3255f62)
  • install: find latest OO release that actually has darwin binaries (46ac6a7)
  • install: improve MLX server startup process and timeout handling (1748b5c)
  • install: make meridian stop actually stop daemons under KeepAlive (eec56da)
  • install: pin screenpipe to 0.3.350 via npm (62c9973)
  • install: prompt for OO email+password separately instead of raw base64 (27ef7c4)
  • install: prompt for OO email+password separately instead of raw base64 (fbf08b6)
  • install: reduce MLX readiness probe to 60s; don't block on first-run download (0e2eebc)
  • install: run pip install -e . so agents package is importable after setup (43184b3)
  • install: seed services/.hermes/ before env collection + switch screenpipe to npm (3d07cb6)
  • install: stream MLX log on first run; fast probe when model is cached (32b4992)
  • install: sync shared env vars and pin screenpipe to ~0.3 (06ed055)
  • install: update screenpipe install hint from brew to npm (f3f3a80)
  • install: update screenpipe install hint in install-screenpipe-daemon.sh (d46a3fd)
  • install: wait for bootout before bootstrap in daemon/ui/screenpipe installers (7ec084f)
  • install: wait for launchd bootout before MLX bootstrap (avoid EIO) (7b007bb)
  • intelligence: address code review findings across Rust backend (8bdcf8f)
  • intelligence: category settler skips historical sessions on first run (ea03cc1)
  • intelligence: classify all new browser sessions immediately, skip backlog (f7f251f)
  • intelligence: classify all new browser sessions immediately, skip backlog (22999f3)
  • intelligence: embed skill inline and disable toolsets to fix parse failures (47ba668)
  • intelligence: fix MLX deprecated API, fast-fail on server exit, add psutil+mlx-lm deps (fedcf5b)
  • intelligence: harden Chrome category settler and add tests (4682d12)
  • intelligence: harden Chrome category settler and add tests (de23ea3)
  • intelligence: log Foundation Models skip as warn instead of silently swallowing (633a85e)
  • intelligence: log Foundation Models skip as warn instead of silently swallowing (2e05d7b)
  • intelligence: promote run_task_linker python stderr from debug to info (cdd858d)
  • intelligence: skip backlog, lower browser session threshold to 5s (46a0e66)
  • intelligence: skip backlog, lower browser session threshold to 5s (a24e220)
  • intelligence: strip non-Latin characters from FM prompts (17cf377)
  • intelligence: strip non-Latin characters from FM prompts (ff00332)
  • intelligence: write sentinel on permanent FM failures to prevent endless retry (3480092)
  • intelligence: write sentinel on permanent FM failures to prevent endless retry (395ea8d)
  • launchd: apply hardened bootout/enable pattern to install-daemon.sh (53aeb70)
  • launchd: harden all daemon installers against bootstrap failures (a0c123e)
  • llm-selector: detect Ollama installed models and install mlx-lm on Apple Silicon (745b5b9)
  • llm-selector: read LLM_BUDGET_PCT from config when budget_pct not passed (c7051f3)
  • llm-selector: stabilise model selection by adjusting headroom for running managed server (030bc7c)
  • llm-selector: stabilise model selection by adjusting headroom for running managed server (e689a16)
  • llm-selector: use LM Studio /api/v0/models to detect loaded models (00b55ec)
  • llm-selector: wait for managed server to die before starting replacement (890a0f4)
  • llm-selector: wait for managed server to die before starting replacement (da4629b)
  • mcp: replace better-sqlite3 with sql.js to eliminate native module version errors (b13b907)
  • mcp: use local node path instead of npx until package is published to npm (3f99326)
  • migrations: add category_method column to app_sessions table (55b063b)
  • migrations: add category_method column to app_sessions table (9e06cfe)
  • migrations: drop and recreate pm_task_embeddings around pm_tasks swap in 022 (5fd5fa2)
  • mlx-server: remove ProcessType Background; extend readiness probe to 600s (785ab1f)
  • observability: disable OTel in dev to prevent Map size exhaustion (05c7f8a)
  • observability: flush OTel spans before short-lived subprocess exits (588beef)
  • observability: log to stdout so daemon.log / 'meridian logs' captures it (110869e)
  • observability: update OpenObserve installation to use fixed version v0.11.0 (34e43b5)
  • observability: use .instrument() to parent run_task_linking under poll_tick (47fd674)
  • openobserve: cap memory, default log level to warn, fix crash-loop (80f4bec)
  • pm-tasks: exclude subtasks and normalize status categories (5a62a0c)
  • release: build on macOS 26 SDK, complete FFI stub, fetch tags (7503155)
  • release: publish arch package by path, not npm owner/repo shorthand (cafa1aa)
  • screenpipe: enhance get_frame_full_texts to fallback on accessibility_text when full_text is NULL (c6d2158)
  • screenpipe: wrap npm script in /bin/sh for launchd compatibility (3ff2d1a)
  • scripts: chain coding-agent-indexer daemon and Claude hook into install scripts (42fbac3)
  • services: address Python code review findings and clean up pipeline (09f4866)
  • services: tighten Python dependency version bounds (3ee9971)
  • settings: number stepper allows free typing without clamping mid-edit (d43c8b0)
  • settings: number stepper allows free typing without clamping mid-edit (e021d98)
  • tagger: correct Ollama Cloud base URL to https://ollama.com/v1 (ada1c06)
  • tagger: replace ocr_samples with session_text throughout Python services (135de33)
  • tagger: use Ollama Cloud env vars for Stage 3 LLM config (d07d3c9)
  • task-classifier: clarify session_type logic and confidence scoring ranges (48bf82d)
  • task-classifier: correct example session_type from overhead to unknown (ea43d88)
  • task-classifier: intermediate sessions should link to task if work-related to prior context (cab5185)
  • task-classifier: raise confidence for clear work signals without task mapping (0.6-0.8) (58cd4dd)
  • task-classifier: require work alignment for high confidence, not just task key visibility (6042878)
  • task-classifier: standardize session_type naming to 'untracked' throughout (3494bb3)
  • task-linker: add reasoning and session_type to classification debug logs (486074b)
  • task-linker: reduce batch limit to 1 session per daemon tick (8b66354)
  • task-linker: remove unused fetch_sessions_by_ids (06baaaf)
  • task-linker: resolve post-merge protocol mismatch and import errors (db98586)
  • tests: add accessibility_text column to screenpipe mock schema (134e78c)
  • tests: add missing accessibility_text column to test frames schema (6a34d02)
  • tests: enhance parse_category tests with alias handling and verbose prose fallback (a1c963b)
  • tests: mark LLM smoke tests as ignored to unblock pre-push (a6f8016)
  • tests: remove stale stage-flag tests and fix MCP summary regex (6b7b6fc)
  • tests: serialise LLM smoke tests to prevent parallel timeout (eb6315a)
  • tests: serialize config env-var tests with a mutex (0d87772)
  • timeline: guard NaN in CSS position calculations (817da6a)
  • ui: correct Meridiana typo to Meridiona in app metadata (331f456)
  • ui: guard NaN in tooltip left from focus event clientX (ab68ad8)
  • ui: make All Time label black for readability (2e20dce)
  • ui: pin exact package versions, fix typescript@5.8.2 (5.8.0 was never published) (4946f7b)
  • ui: resolve hydration mismatch in DayTimeline + quiet terminal logs (eb1b8e8)
  • ui: restore correct page.tsx and remove stale ocr_samples refs (5e2b2ce)
  • ui: switch Instrument Serif to Google Fonts CDN link (05181ca)
  • ui: update TaskBadge pipeline display for hermes methods (ee705c7)
  • update parameters in generate_category method to avoid unused variable warnings (aa44c5a)

Features

  • a11y: add ax-sidecar to inject VS Code terminal content into screenpipe (75827a3)
  • add daemon entrypoint, config, and lib crate split (dca4751)
  • add PM update workflow and session summaries (c53dc79)
  • agents: add Jira update agent with slot-based scheduler (26e343b)
  • agents: implement dynamic LLM selection and download logic based on machine specs (24976f8)
  • agents: implement dynamic LLM selection for Apple Silicon and update configuration (0a24667)
  • ax-sidecar: add Codex session support + tag assistant role per agent (997fd84)
  • ax-sidecar: capture Claude Code session transcripts into screenpipe (cf8757e)
  • ax-sidecar: distinguish Claude windows via session title + uuid in window_name (66e0413)
  • ax-sidecar: pin host app per session, anchored to session start (e36fee3)
  • ax-sidecar: resolve app_name from screenpipe instead of hardcoding it (902d9fc)
  • backfill: add standalone backfill scripts for categories and task links (02b823c)
  • classifier: log run smoke_20260528T162251 + declare failure_class schema (f655b96)
  • classifier: log run smoke_20260528T180202 — SESSION_TEXT_CAP=0 experiment (13dd636)
  • coding-agent: port indexer + summariser into the Rust daemon (f5da20f)
  • config: multi-provider PM config architecture (db29400)
  • daemon: restore sequential run_task_linking for non-MLX backends (ca4bdf7)
  • db: add screenpipe read layer and meridian write schema (73d9183)
  • dist: npm distribution like screenpipe (@meridiona/meridian) (5fa278f)
  • etl: add block context extractor and ETL runner (75f8783)
  • etl: add structured debug tracing across gap detection, block ops, and context extraction (a93faac)
  • etl: categorize sessions inline during ETL, store in app_sessions (e678541)
  • etl: filter OCR noise from session_text at storage time (f3e04f2)
  • etl: gap detection — separate gaps table, system_sleep vs user_idle (dbf9dc9)
  • etl: infer Antigravity from Terminal OCR, fix browser domain grouping (4ef62c0)
  • etl: Option C — refine session end using ui_events click/key timestamps (693a454)
  • etl: split browser sessions by domain, add cat_smoke diagnostic binary (6b25314)
  • etl: split VS Code sessions by project and dedup terminal keystrokes (9586209)
  • eval-feedback: read local results JSON instead of querying OpenObserve (712bcd2)
  • eval: dynamic LLM selector — /info endpoint + auto-discovery + --model flag (0f2b87c), closes task#1 task#1
  • evals: --config flag for versioned experiment manifests (ff238c8)
  • evals: add Dev A 35-session golden seed dataset (a2c10f5)
  • evals: add Dev A candidates with 5 real KAN tickets + 2 decoys (63a38ca)
  • evals: add Dev B generic persona dataset — sessions 1-15 of 35 (3e98004)
  • evals: add EvalStrategy abstraction for pluggable classifier configs (bd87c42)
  • evals: add MLX classifier evaluation suite with DeepEval (eb62d49)
  • evals: add overhead + untracked tiers to b_generic dataset (133ccb6)
  • evals: add render_seeds.py + smoke_run.py for the classifier eval pipeline (722499a)
  • evals: Dev B sessions 16-20 — PROJ-201 completion and PROJ-225 profiling (f50e600), closes #88 #94 #frontend
  • evals: Dev B sessions 21-25 — hard discrimination cases and PROJ-230 (9163e5d), closes #92 #93 #92 #95
  • evals: Dev B sessions 26-30 — bug fix, scope control, and PROJ-242 deference (7eee871), closes #94 #88 #96
  • evals: Dev B sessions 31-35 — complete generic persona dataset (35/35) (fe926ad)
  • evals: experiment config for extract_then_classify on Dev B (d481fbb)
  • evals: ExtractThenClassifyStrategy — two-stage classification (Task #13) (54a469f)
  • evals: log eval run qwen35-9b-optiq-4bit-b_generic-baseline-20260529 (9cf31ff)
  • evals: log run b_generic_direct_http_20260530T110547 to FEEDBACK (b02ea61)
  • evals: log run b_generic_extract_then_classify_20260530T190121 to FEEDBACK (0cfa02e)
  • evals: meaningful run_id + richer OO trace coverage (89043da)
  • evals: nested OO traces for ExtractThenClassifyStrategy stages (2abb880)
  • evals: write canonical results JSON per eval run (2d40c5e)
  • install: add --mlx flag to install.sh for persistent MLX server (899cc5a)
  • install: add OpenObserve as an optional prereq (2f62758)
  • install: auto-start OpenObserve as a launchd LaunchAgent (7e0fde0)
  • install: interactive credential collection + install-package test suite (e04ba3e)
  • install: manage the Next.js dashboard as a launchd LaunchAgent (dd32acc)
  • install: MLX default, single repo .env, retire jira-updater (1fc93c7)
  • install: one-command install with launchd-managed screenpipe, meridian daemon, and jira-updater (2342b46)
  • install: one-command prebuilt installer (no clone, no build) (7837381)
  • intelligence: add backfill binaries for session categories and task classification (69606d9)
  • intelligence: add development category and include session_text in FM category prompt (f27ebac)
  • intelligence: add dynamic local LLM selection for task classifier (ad3fbc2)
  • intelligence: add LLM classifier pipeline with Foundation Models support (9c53223)
  • intelligence: add LLM classifier pipeline with Foundation Models support (c088e00)
  • intelligence: add pm_tasks and ticket_links migrations (2d0b363)
  • intelligence: add Swift Foundation Models FFI bridge (368dbe8)
  • intelligence: add Swift Foundation Models FFI bridge (2017ec2)
  • intelligence: add task-key debug logging to PM provider sync (9c421c2)
  • intelligence: add tracing instrumentation to jira provider (313a414)
  • intelligence: distinguish category confirmed vs updated in settler logs (9e63381)
  • intelligence: enforce FM structured output via @generable for category classification (1bdf7f0)
  • intelligence: expand FM category classification to all apps (acf2425)
  • intelligence: Jira REST connector and provider stubs (2d2cc94)
  • intelligence: propagate run_fm_categorization rename and add tracing spans (ce75135)
  • intelligence: session activity categorizer with 86 unit tests (c3f4d1c)
  • intelligence: wire dynamic LLM endpoint into hermes AIAgent (7169143)
  • intelligence: wire into daemon, add reqwest and dotenvy (c75a3f4)
  • launchd: add MLX server daemon scripts (82e9d95)
  • llm-gate: add process-global single-permit LLM gate (025ee53)
  • llm-gate: serialise classify + summarise MLX calls through the gate (d4d0fc1)
  • llm-selector: add comprehensive logging and tracing to model selection (be4a1dd)
  • llm-selector: add comprehensive logging and tracing to model selection (4c08b70)
  • llm-selector: auto-unload managed mlx server when external server detected (1b47393)
  • logs: split errors into a separate stream/command (daemon + MLX) (f2b6104)
  • main: enable browser category settler after each ETL pass (6722bda)
  • main: enable browser category settler after each ETL pass (5591021)
  • mcp: add npx installer that auto-configures Claude Desktop and Cursor (ff29db9)
  • mcp: add production-ready Meridian MCP server (cd341bd)
  • mcp: install into Claude Code CLI — user and project level (594e6c6)
  • mcp: remove audio_snippets from LLM-facing tool responses (e186aa9)
  • mcp: remove ocr/elements from queries, expose session_text (0846e9d)
  • meridian-agents: adapt db.py to 005 schema with new helpers (4d6c080)
  • meridian-agents: adapt db.py to 005 schema with new helpers (40348bb)
  • meridian-agents: add llm.py — async wrapper around hermes AIAgent (6a1f30e)
  • meridian-agents: add llm.py — async wrapper around hermes AIAgent (de70eda)
  • meridian-agents: config and db layers with full test suite (13eb999)
  • meridian-agents: config and db layers with full test suite (3102720)
  • meridian-agents: event-driven tagger via long-running daemon (c8a8f68), closes hi#water-mark
  • meridian-agents: event-driven tagger via long-running daemon (210201b), closes hi#water-mark
  • meridian-agents: hot-toggle stages without restarting the daemon (07b874f)
  • meridian-agents: hot-toggle stages without restarting the daemon (0da3d13)
  • meridian-agents: integrate synthesizer with meridian.db (177515b)
  • meridian-agents: integrate synthesizer with meridian.db (29dc01e)
  • meridian-agents: parallelize synthesizer tag phase (37d0907)
  • meridian-agents: parallelize synthesizer tag phase (c34131c)
  • meridian-agents: per-stage enable/disable flags (3ffa928)
  • meridian-agents: per-stage enable/disable flags (79dc1bc)
  • meridian-agents: tagger single-session inspection mode (dfbe13d)
  • meridian-agents: tagger single-session inspection mode (cae1d9c)
  • meridian-agents: tagger Stage-1 — multi-dimensional rules (0d32ea5)
  • meridian-agents: tagger Stage-1 — multi-dimensional rules (5ddfefe)
  • meridian-agents: tagger Stage-2 — embedding-based ticket matcher (dd09775)
  • meridian-agents: tagger Stage-2 — embedding-based ticket matcher (f93ad18)
  • meridian-agents: tagger Stage-2 multi-sample max-pooling (4ac67da), closes #10 #1
  • meridian-agents: tagger Stage-2 multi-sample max-pooling (e11cb63), closes #10 #1
  • meridian-agents: tagger Stage-3 — LLM tiebreaker (da86bf4)
  • meridian-agents: tagger Stage-3 — LLM tiebreaker (be7801a)
  • meridian-agents: vendor hermes runtime so AIAgent imports clean (211a6fe)
  • meridian-agents: vendor hermes runtime so AIAgent imports clean (9ae1935)
  • meridian-agents: vendor hermes-agent v2026.5.7 in-repo (373f7b6)
  • meridian-agents: vendor hermes-agent v2026.5.7 in-repo (ef4816c)
  • migrations: add 004_agents.sql for meridian-agents service (bb9f81d)
  • migrations: add 004_agents.sql for meridian-agents service (445756c)
  • migrations: remove ocr_samples/elements_samples, add session_text (ebdbfd7)
  • migrations: restore 014 drop of ocr_samples/elements_samples (a151639)
  • mlx-server: add /synthesise_worklog endpoint (8aad1e0)
  • mlx: add run_task_linker_mlx module for in-process inference (e7d3152)
  • observability: add full prompt/response text to span events for LLM debugging (e5c6045)
  • observability: add llm.model/runtime/is_local to spans and log records (50a8ba3)
  • observability: add MERIDIAN_TRACING_DISABLED to skip OTLP exporter (abacb4c)
  • observability: add OTel instrumentation to run_task_linker_mlx (844c8e6)
  • observability: emit info event for each trivial session in run_task_linking (b277578)
  • observability: end-to-end distributed tracing into OpenObserve (4b4afc7)
  • observability: end-to-end OTLP tracing via OpenObserve (30019e8)
  • observability: end-to-end OTLP tracing via OpenObserve (ce783ca)
  • observability: enhance LLM detection and add OpenTelemetry dependencies (3387006)
  • observability: enhance tracing and observability for task linking and ETL processes (2f4674a)
  • observability: enhance tracing configuration and context management (c1ed6ef)
  • observability: integrate opentelemetry-appender-tracing for enhanced logging (b01bae9)
  • observability: parent run_task_linking spans under poll_tick/startup_tick (91ae1b2)
  • observability: propagate Rust traceparent into MLX server classify_sessions span (745c193)
  • observability: wire W3C traceparent across Rust→Python boundary and add span events (02fe0ce)
  • pm-worklog: add 'meridian worklog-status' command (859c991)
  • pm-worklog: in-daemon Stage 4 worklog pipeline (59e554c)
  • pm-worklog: wire hourly driver + CLI into the daemon (9454f43)
  • prompts: update SESSION_TEXT_CAP to read from environment variable for eval experiments (95a1457)
  • release: prebuilt macOS arm64 release pipeline (95f363a)
  • replace ax sidecar with coding agent indexer (f59bfbf)
  • rust: replace subprocess with HTTP call to persistent MLX server (7ac4c03)
  • scripts: add setup-services.sh for co-dev onboarding (e316c83)
  • server: add POST /classify_sessions endpoint to MLX server (0d13857)
  • session_text: replace ocr/elements samples with full_text union (7ffa003)
  • session-categorizer: add comprehensive tracing events similar to extractor (01d4d7f)
  • session-categorizer: add detailed reasoning breakdown to logs (9eab3a2)
  • session-categorizer: add reasoning explanation to categorization logs (f595fbc)
  • session-categorizer: add score breakdown for debugging reasoning (144db85)
  • settings: Apple-style feel on Radix UI controls (706364e)
  • settings: Apple-style feel on Radix UI controls (9ff3e33)
  • settings: Apple-style select and stepper controls (e2bcce1)
  • settings: embed settings as dashboard SPA view with correct theme (f88524e)
  • settings: replace custom controls with Radix UI primitives (70026bb)
  • settings: replace custom controls with Radix UI primitives (b4b0c5b)
  • settings: runtime config UI backed by ~/.meridian/settings.json (483c98f)
  • settler: add why field to FM category response (f56b3ae)
  • settler: disable OCR in category prompt, add category_smoke binary (c6d1d63)
  • settler: disable OCR in category prompt, add category_smoke binary (bf225b4)
  • settler: store FM category explanation in DB and retry on unsupported language error (a52f57a)
  • skills: add eval-feedback Claude Code skill to maintain FEEDBACK.json (7a692f0)
  • task-linker: add startup preflight check for classification stack (b95d324)
  • task-linker: store hermes reasoning in ticket_links (11afaf1)
  • ui/api: add today, tasks, queue-review, and week route handlers (2d48a15)
  • ui: add design tokens, dark mode, and theme context (3cdb4ca)
  • ui: add navigation shell and dashboard page (e0c90d4)
  • ui: add Next.js 15 activity dashboard (6a5ecf7)
  • ui: add shared atom components (1338be8)
  • ui: add task classification badges with pipeline tooltip to all views (d568bd3)
  • ui: add Today, Tasks, Queue, Sessions, and Week views (f3e9faf)
  • ui: category-aware dashboard — badges, timeline colors, breakdown chart (f91fc6f)
  • ui: load more pagination on sessions page (15d0fd7)
  • ui: redesign dashboard with new design system and enhanced views (7b28633)
  • ui: remove ocr/elements types and components, clean up session card (f776eca)
  • ui: render gaps table — idle/sleep blocks on timeline + away stats (f2f39cb), closes #D4D1CB #C8C6C1
  • ui: replace broken Recharts tooltip with inline hover highlight on donut (19b0322)
  • ui: session detail page at /sessions/[id] (441d801)
  • ui: session detail page at /sessions/[id] (b0ac6c0)
  • ui: show all session data — OCR, accessibility elements, audio, signals (67c7464)
  • ui: show coding-agent time in the totals strip (6db8557)
  • ui: show Jira task on every SessionCard (86d5a8c)
  • ui: Today's Tickets tile on the dashboard (2c8afa4), closes #E8E6E1
  • ui: Today's Tickets tile on the dashboard (e1926fb), closes #E8E6E1

Performance Improvements

  • etl: deduplicate session data at SQL level to reduce LLM noise (b7d5039), closes hi#frequency
  • etl: eliminate redundant SELECTs and cap audio snippets (9b6f1b4)
  • etl: increase BATCH_SIZE from 500 to 2000 for faster initial migration (81df44d)
  • skill: teach eval-feedback to read FEEDBACK.json lean via jq (fdec347)

BREAKING CHANGES

  • services/meridian-agents/src/meridian_agents/db.py and
    its tests still reference summary_json/activity_kind on app_sessions —
    they will fail until updated in a follow-up commit. Intentional: this
    migration step lands in isolation per the agreed sequencing.

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

  • services/meridian-agents/src/meridian_agents/db.py and
    its tests still reference summary_json/activity_kind on app_sessions —
    they will fail until updated in a follow-up commit. Intentional: this
    migration step lands in isolation per the agreed sequencing.

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com