v1.0.0
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