Public roadmap

Generated plan timeline with explicit status boundaries

This page is built from the canonical repository Gantt data. It exposes current plan state, completed evidence, dependencies, and planning estimates without treating dates as delivery commitments.

Generated from docs/gantt-data.json

Roadmap timeline and task details

Filter by status, priority, workstream, or text. Rows remain tied to the repository plan and generated Gantt artifact.

Total rows 98
Done 92
Planned 3
Gated 1

Showing 98 rows

Dates and estimates come from the generated planning artifact. They are scheduling aids for maintainers, not delivery commitments.

Source: docs/gantt-data.json. Excluded wrapper: docs/gantt-data.js.

Workstream

Ingest And Agent

ING-01 Validate framed Cap'n Proto batches, auth identity, sequence ranges, limits, and spool dedupe/conflicts
ING-01
ING-02 Local agent queues heartbeat batches and flushes to collector
ING-02
ING-03 Heartbeat batches include real scalar lmagent_up metric
ING-03
ING-04 Add initial real host metric collection beyond heartbeat up gauge
ING-04
ING-04A Rename initial agent telemetry before it becomes a stable public metric contract
ING-04A
ING-05 Initial configurable file log input collection in --once and --daemon
ING-05
ING-06 File identity, rename, and copy-truncate rotation tracking for configured log inputs
ING-06
ING-07 Multi-batch log splitting and queue pressure/drop policy
ING-07
ING-08 Production daemon lifecycle integration
ING-08
ING-09 Extend host telemetry with bounded per-core CPU and network I/O metrics
ING-09
ING-10 Bounded process-enumeration host telemetry for the agent heartbeat metric contract
ING-10
ING-11 Harden custom-CA collector URL parsing and manual HTTP request construction
ING-11

Live API And Realtime UI 5 done

LIVE-01 SSE GET /api/v1/events for accepted-batch live updates
LIVE-01
LIVE-02 Console consumes SSE for realtime metric/log/alert updates
LIVE-02
LIVE-03 Live log tail view backed by real ingested log records. Production UI contract changes: Logs view reads bounded persisted records from GET /api/v1/logs, merges accepted-batch SSE log summaries, preserves repeated same-content rows, and exposes SSE disconnect state. Out of scope: /api/v1/logs/tail, missed-event gap repair, contains filtering, and new backend APIs
LIVE-03
LIVE-04 Live metric chart updates from incoming SSE and reconciles with query results
LIVE-04
LIVE-05 Backfill/reconnect semantics for live views. Production UI contract changes: the embedded console detects missed accepted-batch sequence ranges per agent/boot and uses the existing focused metric /api/v1/query_range path to repair the affected timestamp interval. Out of scope: durable SSE event replay, new backend APIs, multi-series dashboard backfill, and /api/v1/logs/tail gap repair
LIVE-05

Query And PromQL 11 done

QUERY-01 Prometheus endpoint skeleton and query auth
QUERY-01
QUERY-02 Direct selectors over accepted spool scalar samples
QUERY-02
QUERY-03 Complete P0 query_range semantics for Grafana graph panels
QUERY-03
QUERY-04 Regex label matchers
QUERY-04
QUERY-05 Basic rate() evaluator over range selectors
QUERY-05
QUERY-06 Aggregations with by (...)
QUERY-06
QUERY-07 Histogram bucket query support and histogram_quantile
QUERY-07
QUERY-08 Query reads listing-capable object-store accepted manifests/raw blobs plus local landed spool tail
QUERY-08
QUERY-09 Derived-index-backed object-store query planning
QUERY-09
QUERY-10 Object-store query coverage metadata and cache rebuild
QUERY-10
QUERY-11 Prometheus label/series match filtering and instant-query evaluation time
QUERY-11

Object Storage And Landing

OBJ-01 Filesystem object-store acceptance primitives for raw blobs and accepted manifests
OBJ-01
OBJ-02 Collector lands accepted spool batches to configured filesystem object store
OBJ-02
OBJ-03 MinIO/S3 backend for object-store primitives
OBJ-03
OBJ-04 Configurable ingest acceptance mode: local_spool versus s3_manifest
OBJ-04
OBJ-05 Identity-conflict quarantine and operator-visible conflict records
OBJ-05
OBJ-06A Derived index primitives for accepted manifests and raw blobs
OBJ-06A
OBJ-06B Accepted-manifest reconciliation primitive
OBJ-06B
OBJ-06C Startup accepted-manifest reconciliation
OBJ-06C
OBJ-06D Periodic/background reconciliation and operator-visible repair reporting
OBJ-06D
OBJ-07 Configurable local_spool batch landing interval through ingest.object_landing_interval_ms; production config/runtime behavior changes for asynchronous object landing from accepted spool entries to the configured object store. Out of scope: changing s3_manifest acknowledgement semantics, spool retention/GC, persistent landing history, and admin retry controls
OBJ-07
OBJ-08 Object-store garbage collection with reverse-reference proof
OBJ-08

Logs And Alerts API 4 done

LOG-01 Bounded JSON log query API over accepted data
LOG-01
LOG-02 Realtime log tail API semantics. Production API contract change: GET /api/v1/logs/tail is a private SSE endpoint that emits bounded storage-backed log tail snapshots and update notices using the same accepted-data visibility source as GET /api/v1/logs. Out of scope: LOG-04 contains, durable SSE event replay, unbounded log streams, UI changes, and new storage indexes
LOG-02
LOG-03 Bounded JSON alert query API
LOG-03
LOG-04 Log contains text filter. Production API contract change: GET /api/v1/logs?contains=... applies a decoded, case-sensitive substring match to accepted log messages after existing time, agent, boot, severity, and target filters. Out of scope: new storage indexes, full-text search, case-insensitive matching, UI adoption, durable SSE replay, unbounded log streams, and contains support on GET /api/v1/logs/tail
LOG-04

Rollups And Indexes 3 done

ROLL-01 Immutable rollup object writer for configured 1m/5m/1h windows. Production storage contract change: configured rollup windows write deterministic immutable chunk and manifest objects during accepted-manifest object landing and reconciliation. Out of scope: query planner use, cross-batch counter/histogram baseline stitching, retention/compaction, rollup indexes beyond manifests, and background scheduling beyond existing accepted-manifest reconciliation
ROLL-01
ROLL-02 Query planner reads scalar rollups when raw object scans are too expensive. Production query contract change: configured object-store-backed query_range loads immutable gauge/counter rollup chunks for long scalar range queries and keeps local landed spool samples in the result path for recent/tail data. Out of scope: instant-query rollup use, histogram rollups and histogram_quantile() over rollups, cross-batch counter baseline stitching, exact object-store coverage metadata, retention enforcement, and new rollup indexes beyond existing rollup manifests
ROLL-02
ROLL-03 Histogram rollup and quantile query support. Production query contract change: configured object-store-backed query_range can load compatible histogram virtual-series rollup chunks for _bucket, _sum, _count, and histogram_quantile() when a rollup window fits the query step and lookback. Out of scope: instant-query rollup use, cross-batch histogram baseline stitching, exact object-store coverage metadata, retention enforcement, MinIO end-to-end rollup query coverage, and new rollup indexes beyond existing rollup manifests
ROLL-03

UI, Design, And Mock Contracts

UI-01 Embed design-aligned console shell from provided design artifacts
UI-01
UI-02 Contract-check UI mock fixture against real live DTO
UI-02
UI-03 Replace placeholder chart refresh behavior with realtime-plus-query reconciliation for the embedded console's focused metric chart. Production UI contract change: accepted-batch SSE metric summaries update visible live values immediately, while persisted chart history and manual refresh reconciliation use the existing /api/v1/query_range API. Out of scope: new backend APIs, durable SSE replay, multi-series dashboard backfill, typed TOML dashboard definitions, and source-tier/rollup comparison UI
UI-03
UI-04 Feature-gated object-store reconciliation panels. Production UI contract change: after query-token connect, the embedded console fetches GET /api/v1/object-store/reconciliation and renders API-derived disabled, partial, or failed object-store state in the statusbar, Ingest & storage view, and Object horizon dashboard gate. Out of scope: new backend APIs, exact object-store horizon metadata, typed TOML dashboard loading, and full ingest/storage v2 parity
UI-04
UI-05 Review design parity against the Claude Design v2 archive after real data flows exist. Production UI/test contract change: the console UI browser test captures desktop/mobile UI-05 screenshots under target/ui-05-screenshots/, rejects prototype-only visible wording and any standalone Dashboards product section, checks page-level horizontal overflow, and checks common top-level child overlap. Out of scope: new backend APIs, dashboard action paths, dashboard editing, durable SSE replay, session-scoped token storage, and exact object-store horizon metadata
UI-05
UI-06 Typed dashboard definition schema, loader, and private API. Production config/API contract change: [dashboards] server config selects custom definition files/directories, collector startup and --check-config load typed TOML definitions, and authenticated GET /api/v1/dashboards returns canonical dashboard definitions for the embedded console. Out of scope: dynamic reload, dashboard editor, full definition-backed console data surfaces, and unsupported-panel Grafana export handling
UI-06
UI-07 Definition-backed configured dashboard data panels and bounded alerts refresh. Production UI contract change: visible configured Prometheus dashboard panels from /api/v1/dashboards evaluate through bounded /api/v1/query_range with per-dashboard panel and concurrency caps, render chart/table/status output from the real Prometheus envelope, and surface loading, empty, partial-warning, stale, and error states. Alerts refresh through bounded GET /api/v1/alerts while preserving accepted-batch SSE updates. Out of scope: new backend APIs, dashboard editing, durable SSE replay, unsupported-panel Grafana export handling, and the deeper Claude Design v2 parity gaps tracked by UI-10
UI-07
UI-08 Bring the production console shell to Claude Design v2 parity
UI-08
UI-09 Implement Fleet overview v2 triage behavior over real bounded APIs
UI-09
UI-10 Implement remaining v2 data-surface parity
UI-10
UI-11 Metric-panel-only Grafana JSON export from dashboard settings
UI-11
UI-12 Session-scoped console bearer-token handling. Production UI contract change: console query bearer tokens are session-scoped by default, localStorage persistence requires explicit Remember opt-in, legacy persistent tokens without that opt-in are ignored, and Disconnect clears both browser storage scopes. Out of scope: server-side session management
UI-12

Public Website And Docs Site

WEB-01 Claude Design public website HTML mockup/pages for lightmetrics.dev
WEB-01
WEB-02 Static Astro site scaffold and content/source boundary. Production website contract change: add the site/ package, select pnpm as the site package manager, and define build-time repository inputs for public pages
WEB-02
WEB-03 Landing page and project information content
WEB-03
WEB-04 Public documentation publishing pipeline
WEB-04
WEB-05 Public roadmap/Gantt page
WEB-05
WEB-06 Cloudflare Pages preview deployment configuration
WEB-06
WEB-07 lightmetrics.dev custom domain and launch
WEB-07
WEB-08 Public site quality, search, analytics, and publication governance
WEB-08
WEB-09 Bring public site visual style closer to the embedded console UI
WEB-09
WEB-10 Fix public Gantt page usability
WEB-10

Planning And Reporting Tools 9 done

PLAN-01 Generate a Gantt roadmap from docs/PLAN.md, worklog data, and git log timestamps, including actual completed durations, feature-reasoned estimates for incomplete items, structured JSON data, and an interactive D3 HTML viewer
PLAN-01
PLAN-02 Calibrate and benchmark task-duration estimation against historical completed slices
PLAN-02
PLAN-03 Planning status cleanup and backlog decomposition after design/source review
PLAN-03
PLAN-04 Split operational backlog state from historical completed-slice records
PLAN-04
PLAN-05 Public lightmetrics.dev website planning and decomposition
PLAN-05
PLAN-06 Narrow repeat-review skip policy for docs-only rebase conflicts
PLAN-06
PLAN-07 Split completed-slice worklog into per-task JSONL files
PLAN-07
PLAN-08 Duration benchmark operator output and stable fold assignment
PLAN-08
PLAN-09 Remove optional CatBoost duration experiment
PLAN-09

Documentation And Process

DOC-01 Document current explicit and implicit Lightmetrics limitations, and make persistent planning mandatory for non-trivial user requests whether performed immediately, deferred, or parked
DOC-01
DOC-02 Umbrella documentation program for quickstart, install, Docker/container usage, user workflows, admin/operations, configuration, APIs, development, demos/integration, troubleshooting, release/upgrade notes, and documentation maintenance rules
DOC-02
DOC-02A Documentation information architecture and status index. Create the doc directory map, target audience boundaries, source-of-truth rules, and a status matrix that labels each page as implemented, partial, planned, unsupported, or demo-only
DOC-02A
DOC-02B Quickstart guide for the shortest verified local path from checkout to visible data
DOC-02B
DOC-02C Installation and packaging guide for local binaries and service layout
DOC-02C
DOC-02D Docker/container usage guide
DOC-02D
DOC-02E User guide for private console, Grafana datasource, query examples, logs, alerts, dashboards, and disabled workflows
DOC-02E
DOC-02F Admin and operations guide
DOC-02F
DOC-02G Configuration reference
DOC-02G
DOC-02H API reference for ingest, Prometheus-compatible query, logs, alerts, and live SSE endpoints
DOC-02H
DOC-02I Development guide
DOC-02I
DOC-02J Troubleshooting guide plus release and upgrade notes
DOC-02J
DOC-03 README implementation-status refresh
DOC-03

Demo, Integration, And CI 5 done

DEMO-01 Repeatable local demo start/stop/status with MinIO, collector, and agent loop
DEMO-01
DEMO-02 Process-level MinIO plus synthetic agent ingest smoke test
DEMO-02
DEMO-03 Upgrade smoke test to assert object landing, duplicate idempotence, and conflict behavior through MinIO
DEMO-03
DEMO-04 CI gating for integration tests
DEMO-04
DEMO-05 Restrictive local-demo secret file permissions
DEMO-05

Grafana Compatibility

GRAF-01 Stock Grafana Prometheus datasource can query Lightmetrics
GRAF-01
GRAF-02 Grafana smoke dashboard backed by real Lightmetrics queries
GRAF-02
GRAF-03 Dashboard JSON export from Lightmetrics dashboards
GRAF-03
ING-01 Validate framed Cap'n Proto batches, auth identity, sequence ranges, limits, and spool dedupe/conflicts Done
Workstream
Ingest And Agent
Priority
P0
Dependencies
none
Window
2026-05-06 18:20 :21+03 to 2026-05-06 18:24 :54+03
Planning estimate
19m range 7m to 36m

Acceptance

Invalid, duplicate, and conflicting batches have deterministic HTTP outcomes and do not corrupt spool.

Evidence

Worklog: ING-01.

Estimate basis

  • contracts: agent, http/api, storage
  • durability, idempotency, or repair semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=ING-01,ING-02,OBJ-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
ING-02 Local agent queues heartbeat batches and flushes to collector Done
Workstream
Ingest And Agent
Priority
P0
Dependencies
ING-01
Window
2026-05-06 19:15 :18+03 to 2026-05-06 22:27 :49+03
Planning estimate
19m range 7m to 36m

Acceptance

lm-agent --once queues, uploads, and advances sequence state.

Evidence

Worklog: ING-02.

Estimate basis

  • contracts: agent
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=ING-02,ING-03,ING-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
ING-03 Heartbeat batches include real scalar lmagent_up metric Done
Workstream
Ingest And Agent
Priority
P0
Dependencies
ING-02
Window
2026-05-07 09:15 :48+03 to 2026-05-07 09:30 :43+03
Planning estimate
19m range 7m to 36m

Acceptance

Live update includes metrics and logs; query API can return lmagent_up.

Evidence

Worklog: ING-03.

Estimate basis

  • contracts: agent, http/api
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=ING-03,ING-02,DEMO-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
ING-04 Add initial real host metric collection beyond heartbeat up gauge Done
Workstream
Ingest And Agent
Priority
P1
Dependencies
ING-02
Window
2026-05-08 08:43 :11+03 to 2026-05-08 09:25 :46+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

Agent emits bounded aggregate CPU, memory, queue-filesystem, load, process CPU counter, and process RSS gauge metrics from Linux host APIs; cumulative CPU counters preserve stable start timestamps; collector config validation rejects metric-series/label limits below the built-in Linux heartbeat floor.

Evidence

Worklog: ING-04.

Estimate basis

  • contracts: agent, config
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=ING-04,ING-09,ING-10)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
ING-04A Rename initial agent telemetry before it becomes a stable public metric contract Done
Workstream
Ingest And Agent
Priority
P1
Dependencies
ING-09
Window
2026-05-08 10:23 :51+03 to 2026-05-08 11:28 :13+03
Planning estimate
21m range 5m to 1h 4m

Acceptance

Agent-owned metrics use the short lmagent_ prefix; implemented host facts, including bounded CPU and network telemetry, use common Prometheus exporter names where current semantics match; the aggregate CPU series keeps a Lightmetrics-owned name to avoid node-exporter query double-counting; quickstart, smoke tests, and docs use the new names. Out of scope: process enumeration and backwards-compatible aliases for the pre-contract names.

Evidence

Worklog: ING-04A.

Estimate basis

  • contracts: agent, http/api
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=ING-04A,ING-10,ING-04)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
ING-05 Initial configurable file log input collection in --once and --daemon Done
Workstream
Ingest And Agent
Priority
P1
Dependencies
ING-02
Window
2026-05-07 18:40 :51+03 to 2026-05-08 08:17 :53+03
Planning estimate
20m range 5m to 1h 4m

Acceptance

Agent reads complete newline-terminated configured file lines, persists offsets after durable queue acceptance, bounds/omits oversized records, and retries queued batches through the same flush path.

Evidence

Worklog: ING-05.

Estimate basis

  • contracts: agent, storage
  • durability, idempotency, or repair semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=ING-05,ING-06,ING-07)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
ING-06 File identity, rename, and copy-truncate rotation tracking for configured log inputs Done
Workstream
Ingest And Agent
Priority
P1
Dependencies
ING-05
Window
2026-05-08 21:11 :14+03 to 2026-05-08 21:35 :01+03
Planning estimate
20m range 5m to 1h 4m

Acceptance

Agent does not duplicate or skip complete log lines across common uncompressed same-directory rotation modes; state records file identity and a committed-offset fingerprint to distinguish truncation from replacement. Out of scope: compressed/deleted/moved rotated files, trailing partial rotated lines, and multi-batch splitting.

Evidence

Worklog: ING-06.

Estimate basis

  • contracts: agent
  • durability, idempotency, or repair semantics
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=ING-06,ING-05,ING-07)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
ING-07 Multi-batch log splitting and queue pressure/drop policy Done
Workstream
Ingest And Agent
Priority
P1
Dependencies
ING-05
Window
2026-05-08 21:35 :46+03 to 2026-05-08 21:58 :23+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

A scrape with more complete lines than one batch can carry produces multiple ordered queued batches, and a full queue drops newest non-critical logs before metrics/alerts with a local alert record when possible.

Evidence

Worklog: ING-07.

Estimate basis

  • contracts: agent
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=ING-07,ING-05,LOG-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
ING-08 Production daemon lifecycle integration Planned
Workstream
Ingest And Agent
Priority
P2
Dependencies
ING-05
Window
2026-05-09 19:56 +03:00 to 2026-05-09 20:02 +03:00
Planning estimate
6m range 5m to 6m

Acceptance

Agent has documented signal handling, supervisor/service-unit guidance, and explicit reload behavior or non-reload behavior.

Evidence

Not started.

Estimate basis

  • contracts: agent
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P2, priority_n=5; neighbors=DOC-02G,LOG-03,QUERY-10)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
ING-09 Extend host telemetry with bounded per-core CPU and network I/O metrics Done
Workstream
Ingest And Agent
Priority
P1
Dependencies
ING-04
Window
2026-05-08 10:13 :55+03 to 2026-05-08 10:30 :42+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

Agent emits Linux per-core CPU counters for a documented maximum number of cores and network byte counters for a documented maximum number of interfaces, preserves bounded labels, updates collector floor validation for the built-in heartbeat series count and label byte limits, and remains best-effort on hosts where /proc data is missing or malformed.

Evidence

Worklog: ING-09.

Estimate basis

  • contracts: agent
  • parser/query semantics
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=ING-09,ING-04,DOC-02G)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
ING-10 Bounded process-enumeration host telemetry for the agent heartbeat metric contract Done
Workstream
Ingest And Agent
Priority
P1
Dependencies
ING-09
Window
2026-05-08 21:59 :36+03 to 2026-05-08 22:22 :36+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

Agent emits process-level CPU/RSS metrics with privacy-safe labels that do not read command-line arguments, a fixed process cap, deterministic sorting, and an omitted-count gauge; cargo test -p lm-agent --locked --all-targets host_metrics and config-limit tests prove the bounded contract.

Evidence

Worklog: ING-10. Out of scope: configurable process selectors, command-line labels, per-process IO/file-descriptor metrics, non-Linux process APIs, and persisted CPU-rate delta calculation.

Estimate basis

  • contracts: agent, config
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=ING-10,ING-04,ING-09)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
ING-11 Harden custom-CA collector URL parsing and manual HTTP request construction Done
Workstream
Ingest And Agent
Priority
P1
Dependencies
ING-02
Window
2026-05-08 22:23 :31+03 to 2026-05-08 22:40 :01+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

Agent upload with tls_ca_cert_file rejects collector URLs whose authority, Host header, or request target contains control bytes, whitespace, userinfo, unsupported IPv6 forms, or non-origin-form paths; tests cover CR/LF injection attempts and the normal custom-CA HTTPS path still uploads with matching ack validation. Out of scope: replacing the custom TLS client with a new dependency unless needed by the implementation.

Evidence

Worklog: ING-11.

Estimate basis

  • contracts: agent, http/api
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=ING-11,ING-04,DOC-02H)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
LIVE-01 SSE GET /api/v1/events for accepted-batch live updates Done
Workstream
Live API And Realtime UI
Priority
P0
Dependencies
ING-01
Window
2026-05-07 08:22 :34+03 to 2026-05-07 08:43 :49+03
Planning estimate
18m range 7m to 36m

Acceptance

Non-duplicate accepted batches publish bounded metric/log/alert summaries after durable spool acceptance.

Evidence

Worklog: LIVE-01.

Estimate basis

  • contracts: http/api, storage, ui
  • durability, idempotency, or repair semantics
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=LIVE-01,LOG-01,LIVE-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
LIVE-02 Console consumes SSE for realtime metric/log/alert updates Done
Workstream
Live API And Realtime UI
Priority
P0
Dependencies
LIVE-01
Window
2026-05-07 08:22 :34+03 to 2026-05-07 08:43 :49+03
Planning estimate
20m range 7m to 36m

Acceptance

Browser test drives mocked SSE with real contract shape; production console has no hard-coded telemetry.

Evidence

Worklog: LIVE-02.

Estimate basis

  • contracts: http/api, ui
  • external/integration service involved
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=LIVE-02,UI-01,LIVE-04)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
LIVE-03 Live log tail view backed by real ingested log records. Production UI contract changes: Logs view reads bounded persisted records from GET /api/v1/logs, merges accepted-batch SSE log summaries, preserves repeated same-content rows, and exposes SSE disconnect state. Out of scope: /api/v1/logs/tail, missed-event gap repair, contains filtering, and new backend APIs Done
Workstream
Live API And Realtime UI
Priority
P1
Dependencies
ING-05, LIVE-01
Window
2026-05-08 23:04 :24+03 to 2026-05-08 23:07 :07+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

UI can display newly ingested log lines without periodic refresh; disconnected SSE state is visible; browser mock asserts the /api/v1/logs API boundary, duplicate row preservation, and older selected-range retention.

Evidence

Worklog: LIVE-03.

Estimate basis

  • contracts: agent, http/api, storage, ui
  • external/integration service involved
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=LIVE-03,LIVE-05,UI-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
LIVE-04 Live metric chart updates from incoming SSE and reconciles with query results Done
Workstream
Live API And Realtime UI
Priority
P1
Dependencies
QUERY-02, LIVE-01
Window
2026-05-08 11:55 :05+03 to 2026-05-08 12:38 :34+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

Chart updates immediately on SSE, then converges with /api/v1/query_range after refresh/reconnect.

Evidence

Worklog: LIVE-04.

Estimate basis

  • contracts: http/api, ui
  • parser/query semantics
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=LIVE-04,LIVE-02,LIVE-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
LIVE-05 Backfill/reconnect semantics for live views. Production UI contract changes: the embedded console detects missed accepted-batch sequence ranges per agent/boot and uses the existing focused metric /api/v1/query_range path to repair the affected timestamp interval. Out of scope: durable SSE event replay, new backend APIs, multi-series dashboard backfill, and /api/v1/logs/tail gap repair Done
Workstream
Live API And Realtime UI
Priority
P1
Dependencies
LIVE-01
Window
2026-05-08 23:07 :37+03 to 2026-05-08 23:30 :28+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

UI detects missed events and issues range query for the missing interval instead of trusting memory state; browser mock asserts the gap request interval and visible repair state.

Evidence

Worklog: LIVE-05.

Estimate basis

  • contracts: agent, http/api, storage, ui
  • external/integration service involved
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • UI state or browser-visible behavior
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=LIVE-05,UI-03,LIVE-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
QUERY-01 Prometheus endpoint skeleton and query auth Done
Workstream
Query And PromQL
Priority
P0
Dependencies
ING-01
Window
2026-05-07 08:22 :34+03 to 2026-05-07 08:43 :49+03
Planning estimate
19m range 7m to 36m

Acceptance

Supported subset validates; unsupported syntax returns Prometheus-style error envelope.

Evidence

Worklog: QUERY-01.

Estimate basis

  • contracts: http/api
  • parser/query semantics
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=QUERY-01,DOC-02H,GRAF-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
QUERY-02 Direct selectors over accepted spool scalar samples Done
Workstream
Query And PromQL
Priority
P0
Dependencies
QUERY-01, ING-01
Window
2026-05-07 09:02 :18+03 to 2026-05-07 09:15 :48+03
Planning estimate
19m range 7m to 36m

Acceptance

Labels, label values, series, instant vector, and range matrix return decoded spool data.

Evidence

Worklog: QUERY-02.

Estimate basis

  • contracts: http/api, storage
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=QUERY-02,QUERY-04,QUERY-08)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
QUERY-03 Complete P0 query_range semantics for Grafana graph panels Done
Workstream
Query And PromQL
Priority
P0
Dependencies
QUERY-02
Window
2026-05-07 12:09 :10+03 to 2026-05-07 12:48 :35+03
Planning estimate
19m range 7m to 36m

Acceptance

Honors start, end, and step; returns stable sorted matrix samples; documents partial-range behavior.

Evidence

Worklog: QUERY-03.

Estimate basis

  • contracts: http/api
  • external/integration service involved
  • parser/query semantics
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=QUERY-03,QUERY-02,QUERY-07)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
QUERY-04 Regex label matchers Done
Workstream
Query And PromQL
Priority
P0
Dependencies
QUERY-03
Window
2026-05-07 15:56 :20+03 to 2026-05-07 16:06 :45+03
Planning estimate
19m range 7m to 36m

Acceptance

=~ and !~ work for direct selectors used by query and query_range, with invalid regexes rejected explicitly. Label values and series filters remain out of scope.

Evidence

Worklog: QUERY-04.

Estimate basis

  • contracts: http/api
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=QUERY-04,QUERY-02,QUERY-11)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
QUERY-05 Basic rate() evaluator over range selectors Done
Workstream
Query And PromQL
Priority
P1
Dependencies
QUERY-03
Window
2026-05-07 16:06 :45+03 to 2026-05-07 16:19 :22+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

Grafana can graph rate(lmagent_up[5m]) or a real counter equivalent without empty placeholder results. Aggregations, nested functions, and Prometheus extrapolation parity remain out of scope.

Evidence

Worklog: QUERY-05.

Estimate basis

  • contracts: http/api
  • external/integration service involved
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=QUERY-05,QUERY-06,QUERY-04)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
QUERY-06 Aggregations with by (...) Done
Workstream
Query And PromQL
Priority
P1
Dependencies
QUERY-05
Window
2026-05-07 16:19 :22+03 to 2026-05-07 16:30 :02+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

sum(rate(...)) by (agent_id) returns grouped Prometheus vectors/matrices. Non-sum, aggregation without by, and nested non-rate expressions remain out of scope.

Evidence

Worklog: QUERY-06.

Estimate basis

  • contracts: agent, http/api
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=QUERY-06,QUERY-05,GRAF-02)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
QUERY-07 Histogram bucket query support and histogram_quantile Done
Workstream
Query And PromQL
Priority
P1
Dependencies
QUERY-06
Window
2026-05-07 16:30 :02+03 to 2026-05-07 16:42 :37+03
Planning estimate
20m range 5m to 1h 4m

Acceptance

Histogram panels can query bucket series and quantiles with documented limitations.

Evidence

Worklog: QUERY-07.

Estimate basis

  • contracts: http/api
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=QUERY-07,GRAF-02,ROLL-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
QUERY-08 Query reads listing-capable object-store accepted manifests/raw blobs plus local landed spool tail Done
Workstream
Query And PromQL
Priority
P0
Dependencies
QUERY-03, OBJ-06C
Window
2026-05-07 16:58 :42+03 to 2026-05-07 17:35 :42+03
Planning estimate
20m range 7m to 36m

Acceptance

Range query spans accepted manifests/raw blobs and recent landed spool data without duplicate samples; object-store backends that cannot list accepted manifests return explicit partial warnings.

Evidence

Worklog: QUERY-08.

Estimate basis

  • contracts: agent, http/api, storage
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • 2 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=QUERY-08,OBJ-03,OBJ-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
QUERY-09 Derived-index-backed object-store query planning Done
Workstream
Query And PromQL
Priority
P1
Dependencies
QUERY-08, OBJ-06A
Window
2026-05-08 14:34 :29+03 to 2026-05-08 14:46 :36+03
Planning estimate
20m range 5m to 1h 4m

Acceptance

Metric/log/alert query loading can use accepted-by-time to bound closed-range object-store manifest discovery, attach explicit partial warnings for indexed results, and fall back to accepted-manifest scans when indexes are unavailable, empty, or too broad. Per-event compact indexes and exact coverage metadata remain out of scope.

Evidence

Worklog: QUERY-09.

Estimate basis

  • contracts: http/api, storage
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • 2 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=QUERY-09,ROLL-02,ROLL-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
QUERY-10 Object-store query coverage metadata and cache rebuild Done
Workstream
Query And PromQL
Priority
P1
Dependencies
QUERY-08, OBJ-06C
Window
2026-05-08 23:31 :31+03 to 2026-05-08 23:50 :57+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

Query, logs, and alerts responses distinguish exact object-backed coverage, local-tail-only coverage, object-store unavailability, and outside-horizon requests with explicit warnings/errors; rebuildable local cache behavior is documented. Out of scope: persistent query-cache implementation, exact coverage metadata beyond warnings/errors, rollup-aware planning, and background reconciliation scheduling.

Evidence

Worklog: QUERY-10.

Estimate basis

  • contracts: agent, http/api, storage
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • 2 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=QUERY-10,QUERY-09,LOG-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
QUERY-11 Prometheus label/series match filtering and instant-query evaluation time Done
Workstream
Query And PromQL
Priority
P1
Dependencies
QUERY-04, GRAF-01
Window
2026-05-08 23:52 :22+03 to 2026-05-09 00:10 :43+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

/api/v1/series and /api/v1/label/<name>/values honor supported repeated match[] selectors, malformed match[] returns Prometheus bad_data, and /api/v1/query?time=... evaluates supported selectors/functions at the requested finite time with the documented fixed lookback. Grafana variable-query smoke covers filtered label values. Out of scope: full Prometheus staleness parity, arbitrary PromQL expressions, and instant-query object-store coverage warnings.

Evidence

Worklog: QUERY-11.

Estimate basis

  • contracts: http/api, storage
  • external/integration service involved
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=QUERY-11,QUERY-04,QUERY-02)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
OBJ-01 Filesystem object-store acceptance primitives for raw blobs and accepted manifests Done
Workstream
Object Storage And Landing
Priority
P0
Dependencies
ING-01
Window
2026-05-07 08:43 :49+03 to 2026-05-07 09:02 :18+03
Planning estimate
19m range 7m to 36m

Acceptance

Raw blobs are content-addressed and idempotent; accepted manifests detect duplicate and identity conflict outcomes.

Evidence

Worklog: OBJ-01.

Estimate basis

  • contracts: storage
  • durability, idempotency, or repair semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=OBJ-01,OBJ-03,OBJ-02)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
OBJ-02 Collector lands accepted spool batches to configured filesystem object store Done
Workstream
Object Storage And Landing
Priority
P0
Dependencies
OBJ-01
Window
2026-05-07 11:30 :11+03 to 2026-05-07 11:35 :33+03
Planning estimate
19m range 7m to 36m

Acceptance

New non-duplicate ingest writes raw object and accepted manifest after spool acceptance; duplicate ingest is idempotent; failures are visible and retryable.

Evidence

Worklog: OBJ-02.

Estimate basis

  • contracts: storage
  • durability, idempotency, or repair semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=OBJ-02,OBJ-01,OBJ-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
OBJ-03 MinIO/S3 backend for object-store primitives Done
Workstream
Object Storage And Landing
Priority
P0
Dependencies
OBJ-02
Window
2026-05-07 11:35 :33+03 to 2026-05-07 11:55 :24+03
Planning estimate
20m range 7m to 36m

Acceptance

Integration test asserts raw blobs and accepted manifests in MinIO with conditional-create behavior and correct duplicate/conflict outcomes.

Evidence

Worklog: OBJ-03.

Estimate basis

  • contracts: storage
  • external/integration service involved
  • durability, idempotency, or repair semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=OBJ-03,OBJ-01,OBJ-06A)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
OBJ-04 Configurable ingest acceptance mode: local_spool versus s3_manifest Done
Workstream
Object Storage And Landing
Priority
P0
Dependencies
OBJ-03
Window
2026-05-07 13:01 :29+03 to 2026-05-07 13:32 :08+03
Planning estimate
20m range 7m to 36m

Acceptance

Single-collector mode can keep local spool acceptance; S3 manifest mode acknowledges only after the identity manifest conditional create succeeds and returns 503 while S3 is unavailable.

Evidence

Worklog: OBJ-04.

Estimate basis

  • contracts: storage
  • external/integration service involved
  • durability, idempotency, or repair semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=OBJ-04,OBJ-03,OBJ-02)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
OBJ-05 Identity-conflict quarantine and operator-visible conflict records Done
Workstream
Object Storage And Landing
Priority
P0
Dependencies
OBJ-04
Window
2026-05-07 13:23 :24+03 to 2026-05-07 13:55 :50+03
Planning estimate
19m range 7m to 36m

Acceptance

Different bytes for the same (agent_id, boot_id, seq_start, seq_end) return non-acknowledging 409, preserve the submitted batch, and expose both hashes/object keys for inspection.

Evidence

Worklog: OBJ-05.

Estimate basis

  • contracts: agent, storage
  • durability, idempotency, or repair semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=OBJ-05,DEMO-03,OBJ-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
OBJ-06A Derived index primitives for accepted manifests and raw blobs Done
Workstream
Object Storage And Landing
Priority
P0
Dependencies
OBJ-05
Window
2026-05-07 13:55 :50+03 to 2026-05-07 14:18 :28+03
Planning estimate
19m range 7m to 36m

Acceptance

Accepted-manifest landing can idempotently write accepted-by-time, accepted-by-blob, and raw-blobs-by-time references without changing acceptance semantics when index writes fail.

Evidence

Worklog: OBJ-06A.

Estimate basis

  • contracts: storage
  • durability, idempotency, or repair semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=OBJ-06A,OBJ-01,OBJ-06B)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
OBJ-06B Accepted-manifest reconciliation primitive Done
Workstream
Object Storage And Landing
Priority
P0
Dependencies
OBJ-06A
Window
2026-05-07 14:18 :28+03 to 2026-05-07 14:32 :42+03
Planning estimate
19m range 7m to 36m

Acceptance

A repair pass over listed accepted manifests verifies raw blob hash/bytes, backfills derived indexes, and reports missing/corrupt blobs without hiding them as successful repairs.

Evidence

Worklog: OBJ-06B.

Estimate basis

  • contracts: storage
  • durability, idempotency, or repair semantics
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=OBJ-06B,OBJ-06A,OBJ-06C)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
OBJ-06C Startup accepted-manifest reconciliation Done
Workstream
Object Storage And Landing
Priority
P0
Dependencies
OBJ-06B
Window
2026-05-07 14:32 :42+03 to 2026-05-07 14:43 :54+03
Planning estimate
19m range 7m to 36m

Acceptance

Collector startup runs the accepted-manifest repair pass for listing-capable object stores, skips unsupported manifest listing without failing startup, and logs repaired/missing/corrupt counts.

Evidence

Worklog: OBJ-06C.

Estimate basis

  • contracts: storage
  • durability, idempotency, or repair semantics
  • 2 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=OBJ-06C,OBJ-06B,OBJ-02)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
OBJ-06D Periodic/background reconciliation and operator-visible repair reporting Done
Workstream
Object Storage And Landing
Priority
P1
Dependencies
OBJ-06C
Window
2026-05-09 00:12 :30+03 to 2026-05-09 00:32 :12+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

A fixed-interval background repair path repeatedly backfills derived indexes, reports missing/corrupt raw blobs, and exposes the latest operator-facing repair summary at GET /api/v1/object-store/reconciliation without depending only on startup logs. Configurable schedules, S3 Inventory fallback, cross-process leader election, full cold-scan scheduling, rollup enqueueing, and persistent admin history remain out of scope.

Evidence

Worklog: OBJ-06D.

Estimate basis

  • contracts: http/api, storage
  • external/integration service involved
  • durability, idempotency, or repair semantics
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=OBJ-06D,OBJ-06B,OBJ-07)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
OBJ-07 Configurable local_spool batch landing interval through ingest.object_landing_interval_ms; production config/runtime behavior changes for asynchronous object landing from accepted spool entries to the configured object store. Out of scope: changing s3_manifest acknowledgement semantics, spool retention/GC, persistent landing history, and admin retry controls Done
Workstream
Object Storage And Landing
Priority
P1
Dependencies
OBJ-02
Window
2026-05-09 00:33 :01+03 to 2026-05-09 00:52 :15+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

Operator can choose landing cadence; local_spool ingest acknowledges and private query remains backed by accepted spool data before object landing; background landing writes raw blobs, accepted manifests, derived indexes, and local landed markers without letting object-store outages reject local acceptance.

Evidence

Worklog: OBJ-07.

Estimate basis

  • contracts: config, http/api, storage
  • external/integration service involved
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=OBJ-07,OBJ-06A,OBJ-02)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
OBJ-08 Object-store garbage collection with reverse-reference proof Planned
Workstream
Object Storage And Landing
Priority
P2
Dependencies
OBJ-06D, OBJ-05
Window
2026-05-09 20:02 +03:00 to 2026-05-09 20:08 +03:00
Planning estimate
6m range 5m to 6m

Acceptance

Orphan raw blobs can be deleted only after retry horizon, accepted/quarantine reverse-reference proof, and an audit checkpoint; accepted manifests are never routine-GC candidates.

Evidence

Not started.

Estimate basis

  • contracts: storage
  • durability, idempotency, or repair semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P2, priority_n=5; neighbors=OBJ-06A,OBJ-01,OBJ-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
LOG-01 Bounded JSON log query API over accepted data Done
Workstream
Logs And Alerts API
Priority
P1
Dependencies
ING-05, QUERY-08
Window
2026-05-07 17:47 :22+03 to 2026-05-07 17:53 :09+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

GET /api/v1/logs supports time, agent, boot, severity, target, order, limit, cursor, auth, and explicit partial/error metadata over the same visibility source as metrics.

Evidence

Worklog: LOG-01.

Estimate basis

  • contracts: agent, http/api, storage
  • parser/query semantics
  • 2 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=LOG-01,LOG-03,LIVE-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
LOG-02 Realtime log tail API semantics. Production API contract change: GET /api/v1/logs/tail is a private SSE endpoint that emits bounded storage-backed log tail snapshots and update notices using the same accepted-data visibility source as GET /api/v1/logs. Out of scope: LOG-04 contains, durable SSE event replay, unbounded log streams, UI changes, and new storage indexes Done
Workstream
Logs And Alerts API
Priority
P1
Dependencies
LOG-01, LIVE-03
Window
2026-05-09 00:53 :28+03 to 2026-05-09 01:30 :30+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

Endpoint requires query bearer auth, supports bounded reconnect repair from queryable storage with after cursors scoped to matching agent_id and boot_id, does not treat memory live state as authoritative, and has tests for auth, storage-backed initial repair, lag repair, and live log update notices.

Evidence

Worklog: LOG-02.

Estimate basis

  • contracts: agent, http/api, storage, ui
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=LOG-02,LOG-04,LOG-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
LOG-03 Bounded JSON alert query API Done
Workstream
Logs And Alerts API
Priority
P1
Dependencies
QUERY-08
Window
2026-05-07 18:03 :12+03 to 2026-05-07 18:05 :42+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

GET /api/v1/alerts supports documented filters, cursor/limit/order, auth, and explicit partial/error metadata.

Evidence

Worklog: LOG-03.

Estimate basis

  • contracts: http/api
  • parser/query semantics
  • 2 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=LOG-03,LOG-01,QUERY-10)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
LOG-04 Log contains text filter. Production API contract change: GET /api/v1/logs?contains=... applies a decoded, case-sensitive substring match to accepted log messages after existing time, agent, boot, severity, and target filters. Out of scope: new storage indexes, full-text search, case-insensitive matching, UI adoption, durable SSE replay, unbounded log streams, and contains support on GET /api/v1/logs/tail Done
Workstream
Logs And Alerts API
Priority
P1
Dependencies
LOG-01
Window
2026-05-09 01:31 :47+03 to 2026-05-09 01:52 :45+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

Spool and object-store logs queries return only records whose message contains the decoded substring; + decodes as space, percent escapes decode as UTF-8, malformed escapes return invalid_contains_encoding, and tests fail without the filter.

Evidence

Worklog: LOG-04.

Estimate basis

  • contracts: agent, http/api, storage, ui
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=LOG-04,LOG-02,LOG-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
ROLL-01 Immutable rollup object writer for configured 1m/5m/1h windows. Production storage contract change: configured rollup windows write deterministic immutable chunk and manifest objects during accepted-manifest object landing and reconciliation. Out of scope: query planner use, cross-batch counter/histogram baseline stitching, retention/compaction, rollup indexes beyond manifests, and background scheduling beyond existing accepted-manifest reconciliation Done
Workstream
Rollups And Indexes
Priority
P1
Dependencies
OBJ-06C
Window
2026-05-09 01:54 :16+03 to 2026-05-09 02:31 :48+03
Planning estimate
21m range 5m to 1h 4m

Acceptance

Gauges, counters, and compatible histograms produce immutable rollup chunks/manifests with idempotent output keys; duplicate accepted-manifest replay does not duplicate rollup work; reconciliation reports bounded rollup write errors without aborting repair scans.

Evidence

Worklog: ROLL-01.

Estimate basis

  • contracts: http/api, storage
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=ROLL-01,ROLL-03,ROLL-02)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
ROLL-02 Query planner reads scalar rollups when raw object scans are too expensive. Production query contract change: configured object-store-backed query_range loads immutable gauge/counter rollup chunks for long scalar range queries and keeps local landed spool samples in the result path for recent/tail data. Out of scope: instant-query rollup use, histogram rollups and histogram_quantile() over rollups, cross-batch counter baseline stitching, exact object-store coverage metadata, retention enforcement, and new rollup indexes beyond existing rollup manifests Done
Workstream
Rollups And Indexes
Priority
P1
Dependencies
ROLL-01, QUERY-08
Window
2026-05-09 02:32 :40+03 to 2026-05-09 02:59 :46+03
Planning estimate
21m range 5m to 1h 4m

Acceptance

Long scalar range queries use rollup chunks where possible; raw/spool tail samples remain query-visible and deduplicated; empty or unreadable rollup selections fall back to existing raw accepted-manifest loading.

Evidence

Worklog: ROLL-02.

Estimate basis

  • contracts: agent, http/api, storage
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=ROLL-02,ROLL-03,ROLL-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
ROLL-03 Histogram rollup and quantile query support. Production query contract change: configured object-store-backed query_range can load compatible histogram virtual-series rollup chunks for _bucket, _sum, _count, and histogram_quantile() when a rollup window fits the query step and lookback. Out of scope: instant-query rollup use, cross-batch histogram baseline stitching, exact object-store coverage metadata, retention enforcement, MinIO end-to-end rollup query coverage, and new rollup indexes beyond existing rollup manifests Done
Workstream
Rollups And Indexes
Priority
P1
Dependencies
ROLL-01, QUERY-07
Window
2026-05-09 03:01 :09+03 to 2026-05-09 03:37 :11+03
Planning estimate
21m range 5m to 1h 4m

Acceptance

Compatible bucket series, _sum, _count, and histogram_quantile() return documented bounded approximations; empty or unreadable selected rollups fall back to raw accepted-manifest loading.

Evidence

Worklog: ROLL-03.

Estimate basis

  • contracts: http/api, storage
  • external/integration service involved
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=ROLL-03,ROLL-02,ROLL-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
UI-01 Embed design-aligned console shell from provided design artifacts Done
Workstream
UI, Design, And Mock Contracts
Priority
P0
Dependencies
LIVE-01, QUERY-01
Window
2026-05-07 08:22 :34+03 to 2026-05-07 08:43 :49+03
Planning estimate
20m range 7m to 36m

Acceptance

Console served by collector; no production hard-coded telemetry; UI test uses mocked API/SSE.

Evidence

Worklog: UI-01.

Estimate basis

  • contracts: http/api, ui
  • parser/query semantics
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=UI-01,LIVE-02,UI-02)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
UI-02 Contract-check UI mock fixture against real live DTO Done
Workstream
UI, Design, And Mock Contracts
Priority
P0
Dependencies
UI-01
Window
2026-05-07 08:22 :34+03 to 2026-05-07 08:43 :49+03
Planning estimate
20m range 7m to 36m

Acceptance

Rust test validates committed fixture shape against LiveUpdate JSON contract.

Evidence

Worklog: UI-02.

Estimate basis

  • contracts: ui
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=UI-02,LIVE-02,UI-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
UI-03 Replace placeholder chart refresh behavior with realtime-plus-query reconciliation for the embedded console's focused metric chart. Production UI contract change: accepted-batch SSE metric summaries update visible live values immediately, while persisted chart history and manual refresh reconciliation use the existing /api/v1/query_range API. Out of scope: new backend APIs, durable SSE replay, multi-series dashboard backfill, typed TOML dashboard definitions, and source-tier/rollup comparison UI Done
Workstream
UI, Design, And Mock Contracts
Priority
P1
Dependencies
QUERY-03
Window
2026-05-08 12:38 :34+03 to 2026-05-09 03:51 :46+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

Browser automation asserts live values appear from mocked accepted-batch SSE, focused chart points are reconciled through /api/v1/query_range, and manual refresh requests the real query API with bounded step sizing.

Evidence

Worklog: UI-03. Production behavior was implemented by LIVE-04/LIVE-05; this slice closes the UI backlog item with direct browser coverage for manual refresh.

Estimate basis

  • contracts: config, http/api, storage, ui
  • external/integration service involved
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=UI-03,LIVE-05,UI-07)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
UI-04 Feature-gated object-store reconciliation panels. Production UI contract change: after query-token connect, the embedded console fetches GET /api/v1/object-store/reconciliation and renders API-derived disabled, partial, or failed object-store state in the statusbar, Ingest & storage view, and Object horizon dashboard gate. Out of scope: new backend APIs, exact object-store horizon metadata, typed TOML dashboard loading, and full ingest/storage v2 parity Done
Workstream
UI, Design, And Mock Contracts
Priority
P1
Dependencies
OBJ-02
Window
2026-05-09 03:52 :23+03 to 2026-05-09 04:10 :18+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

Browser automation mocks the real reconciliation endpoint shape, asserts partial object-store state, reconciliation report counters, and bounded issue samples are visible through the console, and verifies the endpoint was requested.

Evidence

Worklog: UI-04.

Estimate basis

  • contracts: config, http/api, storage, ui
  • external/integration service involved
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • UI state or browser-visible behavior
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=UI-04,UI-07,UI-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
UI-05 Review design parity against the Claude Design v2 archive after real data flows exist. Production UI/test contract change: the console UI browser test captures desktop/mobile UI-05 screenshots under target/ui-05-screenshots/, rejects prototype-only visible wording and any standalone Dashboards product section, checks page-level horizontal overflow, and checks common top-level child overlap. Out of scope: new backend APIs, dashboard action paths, dashboard editing, durable SSE replay, session-scoped token storage, and exact object-store horizon metadata Done
Workstream
UI, Design, And Mock Contracts
Priority
P1
Dependencies
UI-08, UI-09, UI-10
Window
2026-05-09 06:10 :53+03 to 2026-05-09 06:12 :04+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

Browser review covers the configured dashboard, Fleet health and ingest modes, Live metrics, Logs, Alerts, Ingest/storage, Metrics query, and mobile tab overflow; mobile root-grid overflow is bounded; long metric labels wrap inside query/histogram table cells.

Evidence

Worklog: UI-05.

Estimate basis

  • contracts: http/api, storage, ui
  • external/integration service involved
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=UI-05,UI-07,UI-04)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
UI-06 Typed dashboard definition schema, loader, and private API. Production config/API contract change: [dashboards] server config selects custom definition files/directories, collector startup and --check-config load typed TOML definitions, and authenticated GET /api/v1/dashboards returns canonical dashboard definitions for the embedded console. Out of scope: dynamic reload, dashboard editor, full definition-backed console data surfaces, and unsupported-panel Grafana export handling Done
Workstream
UI, Design, And Mock Contracts
Priority
P1
Dependencies
UI-01
Window
2026-05-09 04:11 :17+03 to 2026-05-09 04:41 :21+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

Built-in and custom TOML dashboard definitions load through the server, ambiguous custom IDs and implicit built-in overrides are rejected, configured custom definitions are exposed through /api/v1/dashboards, and the console loads dashboard tabs/settings from that private API with visible loading/error state.

Evidence

Worklog: UI-06.

Estimate basis

  • contracts: config, http/api, ui
  • external/integration service involved
  • UI state or browser-visible behavior
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=UI-06,UI-07,UI-04)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
UI-07 Definition-backed configured dashboard data panels and bounded alerts refresh. Production UI contract change: visible configured Prometheus dashboard panels from /api/v1/dashboards evaluate through bounded /api/v1/query_range with per-dashboard panel and concurrency caps, render chart/table/status output from the real Prometheus envelope, and surface loading, empty, partial-warning, stale, and error states. Alerts refresh through bounded GET /api/v1/alerts while preserving accepted-batch SSE updates. Out of scope: new backend APIs, dashboard editing, durable SSE replay, unsupported-panel Grafana export handling, and the deeper Claude Design v2 parity gaps tracked by UI-10 Done
Workstream
UI, Design, And Mock Contracts
Priority
P1
Dependencies
UI-06, QUERY-08, LOG-01, LOG-03
Window
2026-05-09 05:08 :33+03 to 2026-05-09 05:11 :26+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

Browser automation mocks real HTTP/SSE boundaries and asserts dashboard success, empty, partial-warning, stale, and error panel states, /api/v1/alerts refresh, and existing logs/object-store/query/fleet flows. Dashboard fixture contract tests parse the expanded mock dashboard definition shape.

Evidence

Worklog: UI-07.

Estimate basis

  • contracts: config, http/api, storage, ui
  • external/integration service involved
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • UI state or browser-visible behavior
  • 2 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=UI-07,UI-03,UI-05)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
UI-08 Bring the production console shell to Claude Design v2 parity Done
Workstream
UI, Design, And Mock Contracts
Priority
P1
Dependencies
UI-01
Window
2026-05-08 15:28 :36+03 to 2026-05-08 19:00 :55+03
Planning estimate
20m range 5m to 1h 4m

Acceptance

Shared time range control has 15m/1h/6h/24h, matching-height custom From/To picker with native datetime pickers on both fields, now below To, unlabeled relative shortcuts (last 30m, last 4h, last 12h, last 7d, last 30d), metric resolution hint, compact dashboard tabs without source badges, overflow +N menu with active-tab promotion, and per-dashboard settings/cog metadata covering definition ID, source, version, tags, refresh, variables, panel count, duplicate-ID errors, invalid definitions, hidden built-ins, and disabled dashboards.

Evidence

Worklog: UI-08. Production contract changed: console shell state and dashboard-definition presentation only; no backend API, storage, Fleet v2, or typed TOML definition loading changes.

Estimate basis

  • contracts: config, http/api, ui
  • durability, idempotency, or repair semantics
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=UI-08,UI-06,UI-07)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
UI-09 Implement Fleet overview v2 triage behavior over real bounded APIs Done
Workstream
UI, Design, And Mock Contracts
Priority
P1
Dependencies
UI-08, QUERY-03, LOG-01, LOG-03
Window
2026-05-08 19:02 :33+03 to 2026-05-08 20:02 :46+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

Fleet has the collapsed-by-default Collectors strip, Host health vs Agent ingest mode swap, mode-specific KPI strips and state filters, row click-through to Host detail, two-stat selector defaulting to mean/current, two-value CPU/memory/disk bars, two-line net rx/tx, sortable resource/network columns, and row-level sparklines.

Evidence

Worklog: UI-09. Existing accepted-batch SSE/query boundaries only; no new backend collector detail API, typed TOML dashboard loading, or non-Fleet v2 surface changes.

Estimate basis

  • contracts: agent, config, http/api, storage, ui
  • parser/query semantics
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=UI-09,UI-10,UI-05)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
UI-10 Implement remaining v2 data-surface parity Done
Workstream
UI, Design, And Mock Contracts
Priority
P1
Dependencies
UI-08, QUERY-03, QUERY-07, LOG-01, LOG-03
Window
2026-05-09 05:41 :46+03 to 2026-05-09 05:42 :52+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

Live metrics shows source-tier states and 1m/5m rollup comparison; Logs/alerts have bounded filters; Ingest/storage shows remaining collector, spool, dedupe, conflict, and rollup panels beyond the UI-04 object-store reconciliation gate; Metrics query shows chart/table/histogram results and copyable request helpers with text fitting.

Evidence

Worklog: UI-10. Existing API/SSE boundaries only; no backend collector summary API, durable SSE replay, dashboard action paths, dashboard editing, or exact object-store horizon metadata.

Estimate basis

  • contracts: http/api, storage, ui
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=UI-10,UI-07,UI-09)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
UI-11 Metric-panel-only Grafana JSON export from dashboard settings Low
Workstream
UI, Design, And Mock Contracts
Priority
Low
Dependencies
UI-06, GRAF-02
Window
2026-05-09 20:08 +03:00 to 2026-05-09 20:25 +03:00
Planning estimate
17m range 5m to 44m

Acceptance

Export is read-only, lives under dashboard settings rather than a primary dashboard action, applies only to panels that map to stock Grafana Prometheus panels, omits or labels logs/alerts/custom blocks, and does not imply Grafana JSON import.

Evidence

Current console exposes a broad dashboard export button and does not model unsupported-panel omission/labeling.

Estimate basis

  • contracts: http/api, ui
  • external/integration service involved
  • UI state or browser-visible behavior
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (global fallback for priority=Low, priority_n=0; neighbors=UI-02,UI-10,UI-05)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
UI-12 Session-scoped console bearer-token handling. Production UI contract change: console query bearer tokens are session-scoped by default, localStorage persistence requires explicit Remember opt-in, legacy persistent tokens without that opt-in are ignored, and Disconnect clears both browser storage scopes. Out of scope: server-side session management Done
Workstream
UI, Design, And Mock Contracts
Priority
P1
Dependencies
UI-01
Window
2026-05-09 06:13 :29+03 to 2026-05-09 06:23 :51+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

Browser automation asserts stale persistent-token suppression, default session-only storage, remembered reload/autoconnect behavior, disconnect clearing, and desktop/mobile layout bounds.

Evidence

Worklog: UI-12.

Estimate basis

  • contracts: http/api, ui
  • external/integration service involved
  • parser/query semantics
  • UI state or browser-visible behavior
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=UI-12,UI-05,UI-04)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
WEB-01 Claude Design public website HTML mockup/pages for lightmetrics.dev Done
Workstream
Public Website And Docs Site
Priority
P1
Dependencies
none
Window
2026-05-08 20:04 :04+03 to 2026-05-08 20:35 :25+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

docs/claude-design-public-site-task.md is used as the source prompt; Claude Design output includes desktop and mobile HTML mockups for the landing page, docs index, representative docs page, public roadmap/Gantt page, and limitations/status page; the bundle is archived under design-artifacts/claude-design/ and recorded in docs/design-artifacts.md; all visible product claims are traceable to README, docs/limitations.md, or implemented plan rows; screenshots show no overlapping text; production Astro implementation, Cloudflare deployment, and DNS changes remain out of scope.

Evidence

Worklog: WEB-01. Static reference bundle archived at design-artifacts/claude-design/lightmetrics-public-site-2026-05-08.tar.gz; no Astro scaffold, Cloudflare deployment, or DNS change.

Estimate basis

  • contracts: storage
  • external/integration service involved
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=WEB-01,WEB-03,PLAN-05)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
WEB-02 Static Astro site scaffold and content/source boundary. Production website contract change: add the site/ package, select pnpm as the site package manager, and define build-time repository inputs for public pages Done
Workstream
Public Website And Docs Site
Priority
P1
Dependencies
WEB-01, DOC-02A, PLAN-01
Window
2026-05-09 06:25 :01+03 to 2026-05-09 06:53 :11+03
Planning estimate
20m range 5m to 1h 4m

Acceptance

site/ translates the approved WEB-01 mockups into maintainable Astro components, builds static output to site/dist with pnpm --dir site build, avoids the Cloudflare adapter/SSR unless a later slice documents a dynamic requirement, and copies/imports only public source metadata and selected excerpts from README.md, docs/README.md, docs/quickstart.md, docs/install.md, docs/limitations.md, docs/PLAN.md, docs/design.md, and docs/gantt-data.json. Out of scope: Cloudflare Pages configuration, DNS/custom-domain work, full Markdown docs publishing, and a full public Gantt interaction surface.

Evidence

Worklog: WEB-02. Static Astro scaffold committed under site/; no Cloudflare adapter, SSR, DNS/custom-domain change, full Markdown publishing pipeline, or full public Gantt surface.

Estimate basis

  • narrow implementation surface
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=WEB-02,WEB-01,WEB-06)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
WEB-03 Landing page and project information content Done
Workstream
Public Website And Docs Site
Priority
P1
Dependencies
WEB-02
Window
2026-05-09 06:54 :32+03 to 2026-05-09 07:08 :26+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

lightmetrics.dev landing route presents project purpose, current maturity, core architecture, quickstart/install links, limitations, roadmap links, and GitHub/source links without claiming planned runtime behavior as implemented; desktop/mobile browser checks verify text fitting and navigation.

Evidence

Worklog: WEB-03. Landing route now includes source-grounded project facts, architecture steps, start-point links, and desktop/mobile browser verification; no full Markdown docs publishing, full public Gantt surface, Cloudflare Pages configuration, or DNS/custom-domain change.

Estimate basis

  • contracts: storage, ui
  • external/integration service involved
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=WEB-03,WEB-01,DOC-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
WEB-04 Public documentation publishing pipeline Done
Workstream
Public Website And Docs Site
Priority
P1
Dependencies
WEB-02, DOC-02A, DOC-02B, DOC-02C
Window
2026-05-09 07:09 :44+03 to 2026-05-09 07:40 :09+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

Site renders selected repository docs with status labels, source links, generated navigation, broken-link checks, and explicit planned/partial/unsupported callouts; incomplete admin/API/config/user guides are linked as planned rather than published as complete; private/internal agent procedure content is excluded or clearly marked.

Evidence

Worklog: WEB-04. Static Astro docs routes are generated from an allowlist of repository Markdown sources, the build checks same-origin output links, planned guides remain listed as planned, and agent/review/worklog procedure sources are excluded from public docs routes. No full public Gantt interaction, Cloudflare Pages configuration, runtime API calls, DNS/custom-domain change, or package/service-unit docs are introduced.

Estimate basis

  • contracts: agent, config, http/api
  • 3 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=WEB-04,DOC-02A,WEB-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
WEB-05 Public roadmap/Gantt page Done
Workstream
Public Website And Docs Site
Priority
P1
Dependencies
WEB-02, PLAN-01, PLAN-04
Window
2026-05-09 07:41 :11+03 to 2026-05-09 08:04 :33+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

Site consumes canonical docs/gantt-data.json at build time or as a static asset, renders the roadmap with filters/details suitable for public readers, explains that estimates are planning artifacts rather than commitments, and does not depend on the file://-only docs/gantt-data.js wrapper.

Evidence

Worklog: WEB-05. Public roadmap page now consumes the generated Gantt JSON through the prebuild source-boundary payload, renders status/priority/workstream/search filters, task details, and a static Gantt timeline, labels estimates as planning artifacts, and keeps docs/gantt-data.js excluded. No Cloudflare Pages preview configuration, DNS/custom-domain launch, runtime API calls, or publication-governance work is introduced.

Estimate basis

  • contracts: http/api
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=WEB-05,WEB-10,PLAN-05)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
WEB-06 Cloudflare Pages preview deployment configuration Done
Workstream
Public Website And Docs Site
Priority
P1
Dependencies
WEB-02
Window
2026-05-09 08:29 +03:00 to 2026-05-09 18:48 :36+03
Planning estimate
20m range 5m to 1h 4m

Acceptance

Cloudflare Pages project/build settings are documented or codified for the site path, production branch, build command, dist output, preview deployments, headers, redirects, and cache behavior; local and preview builds prove static assets and docs routes work before any custom-domain launch.

Evidence

Worklog: WEB-06. Preview deployment settings are codified through site/wrangler.toml, site/.node-version, site/public/_headers, site/public/_redirects, and the site build's Pages deploy-contract check; DNS/custom-domain launch and authenticated Cloudflare project operations remain out of scope.

Estimate basis

  • contracts: config
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=WEB-06,WEB-02,PLAN-05)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
WEB-07 lightmetrics.dev custom domain and launch Gated
Workstream
Public Website And Docs Site
Priority
P1
Dependencies
WEB-06
Window
2026-05-09 19:38 +03:00 to 2026-05-09 19:56 +03:00
Planning estimate
18m range 5m to 1h 4m

Acceptance

Cloudflare Pages serves the site over HTTPS on the chosen canonical domain, apex versus www behavior is explicit, any *.pages.dev exposure or redirect policy is documented, and rollback steps are known.

Evidence

Gated on Cloudflare account, Pages project, zone/domain permissions, and explicit approval for DNS/custom-domain changes.

Estimate basis

  • contracts: http/api
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=WEB-06,PLAN-05,WEB-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
WEB-08 Public site quality, search, analytics, and publication governance Done
Workstream
Public Website And Docs Site
Priority
P2
Dependencies
WEB-03, WEB-04, WEB-05, WEB-06
Window
2026-05-09 19:12 :26+03 to 2026-05-09 19:18 :14+03
Planning estimate
6m range 5m to 6m

Acceptance

Site has sitemap/robots metadata, social preview metadata, accessibility checks, link checks, performance budget or Lighthouse threshold, optional privacy-preserving analytics decision, and a docs freshness rule that blocks publishing stale generated Gantt/docs data.

Evidence

Worklog: WEB-08. Accessibility checks and Lighthouse threshold remain follow-up.

Estimate basis

  • narrow implementation surface
  • duration model: pre-task similarity blend over robust priority median (priority=P2, priority_n=5; neighbors=WEB-08,WEB-04,PLAN-09)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
WEB-09 Bring public site visual style closer to the embedded console UI Done
Workstream
Public Website And Docs Site
Priority
P1
Dependencies
WEB-03
Window
2026-05-09 19:04 :44+03 to 2026-05-09 19:10 :28+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

Public site shares the console's color palette, typography, spacing, and component styling so the two surfaces feel like the same product; the site remains static Astro with no runtime dependencies on the console JS.

Evidence

Worklog: WEB-09.

Estimate basis

  • contracts: ui
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=WEB-09,PLAN-05,WEB-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
WEB-10 Fix public Gantt page usability Done
Workstream
Public Website And Docs Site
Priority
P1
Dependencies
WEB-05
Window
2026-05-09 18:55 :18+03 to 2026-05-09 19:01 :16+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

The /roadmap/ Gantt view is usable: timeline is readable at default zoom, task bars are sized and labeled legibly, filters work without layout breakage, and the page works on desktop and mobile.

Evidence

Worklog: WEB-10.

Estimate basis

  • contracts: http/api
  • parser/query semantics
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=WEB-10,WEB-05,WEB-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
PLAN-01 Generate a Gantt roadmap from docs/PLAN.md, worklog data, and git log timestamps, including actual completed durations, feature-reasoned estimates for incomplete items, structured JSON data, and an interactive D3 HTML viewer Done
Workstream
Planning And Reporting Tools
Priority
P1
Dependencies
none
Window
2026-05-07 18:00 :37+03 to 2026-05-07 18:14 :54+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

scripts/generate_gantt.py maps commit-backed completed items, emits warnings for weak mappings or inconsistent plan state, writes canonical docs/gantt-data.json plus docs/gantt-data.js for direct browser viewing, and docs/gantt.html renders the generated data with filterable, zoomable D3 timeline controls.

Evidence

Worklog: PLAN-01.

Estimate basis

  • contracts: ui
  • external/integration service involved
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=PLAN-01,PLAN-04,PLAN-07)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
PLAN-02 Calibrate and benchmark task-duration estimation against historical completed slices Done
Workstream
Planning And Reporting Tools
Priority
P1
Dependencies
PLAN-01
Window
2026-05-07 21:21 :08+03 to 2026-05-07 22:54 :39+03
Planning estimate
26m range 5m to 1h 4m

Acceptance

A repeatable benchmark reports 3-fold cross-validation precision for the current heuristic, calibrated robust baselines, and five feature/model improvement iterations, with explicit outlier handling and an independent agent review.

Evidence

Worklog: PLAN-02.

Estimate basis

  • contracts: agent
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=PLAN-02,PLAN-08,PLAN-07)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
PLAN-03 Planning status cleanup and backlog decomposition after design/source review Done
Workstream
Planning And Reporting Tools
Priority
P1
Dependencies
PLAN-02
Window
2026-05-08 08:27 :13+03 to 2026-05-08 08:29 :25+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

Broad active rows reflect implemented production scope, remaining design gaps are split into follow-up rows, stale current-baseline/Grafana smoke wording is corrected, and generated planning artifacts are refreshed.

Evidence

Worklog: PLAN-03.

Estimate basis

  • external/integration service involved
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=PLAN-03,PLAN-04,PLAN-09)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
PLAN-04 Split operational backlog state from historical completed-slice records Done
Workstream
Planning And Reporting Tools
Priority
P1
Dependencies
PLAN-03
Window
2026-05-08 09:17 :51+03 to 2026-05-08 09:31 :41+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

docs/PLAN.md stays concise for active planning; worklog records own completed-slice commits and verification; the Gantt generator maps completed rows from worklog records or Plan-Item: commit trailers, ignores generated-only artifact commits, exposes a coverage check for unmapped mainline work, and provides a pre-commit hook to refresh generated planning artifacts.

Evidence

Worklog: PLAN-04.

Estimate basis

  • narrow implementation surface
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=PLAN-04,PLAN-07,PLAN-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
PLAN-05 Public lightmetrics.dev website planning and decomposition Done
Workstream
Planning And Reporting Tools
Priority
P1
Dependencies
PLAN-04
Window
2026-05-08 09:45 :03+03 to 2026-05-08 09:47 :03+03
Planning estimate
20m range 5m to 1h 4m

Acceptance

This plan records the Claude Design mockup-first public website flow, repository-owned Claude Design prompt, Astro static site assumptions, Cloudflare Pages deployment slices, custom-domain gate, public docs/Gantt publication boundaries, and concrete WEB-* dependencies without implementing or deploying the site.

Evidence

Worklog: PLAN-05.

Estimate basis

  • narrow implementation surface
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=PLAN-05,WEB-01,WEB-02)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
PLAN-06 Narrow repeat-review skip policy for docs-only rebase conflicts Done
Workstream
Planning And Reporting Tools
Priority
P1
Dependencies
PLAN-04
Window
2026-05-08 09:50 :45+03 to 2026-05-08 09:58 :11+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

AGENTS.md allows skipping repeat review after a previously reviewed slice rebases over clearly resolved docs, planning, worklog, or generated planning conflicts from unrelated concurrent work, while keeping behavior-affecting or uncertain conflicts on the normal review path.

Evidence

Worklog: PLAN-06.

Estimate basis

  • contracts: agent, storage
  • durability, idempotency, or repair semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=PLAN-06,PLAN-04,PLAN-09)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
PLAN-07 Split completed-slice worklog into per-task JSONL files Done
Workstream
Planning And Reporting Tools
Priority
P1
Dependencies
PLAN-04
Window
2026-05-08 10:10 :18+03 to 2026-05-08 11:53 :04+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

Completed-slice records live under docs/worklog/<TASK-ID>.jsonl; scripts/record_worklog.py creates or updates the per-task file and validates filename/task ID consistency; scripts/generate_gantt.py and duration benchmark scripts read the directory by default with deterministic ordering; the pre-commit hook watches the directory and stages refreshed generated artifacts; the legacy docs/worklog.jsonl file is removed after migration.

Evidence

Worklog: PLAN-07.

Estimate basis

  • narrow implementation surface
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=PLAN-07,PLAN-04,PLAN-09)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
PLAN-08 Duration benchmark operator output and stable fold assignment Done
Workstream
Planning And Reporting Tools
Priority
P1
Dependencies
PLAN-02, PLAN-04
Window
2026-05-08 15:04 :16+03 to 2026-05-08 15:15 :10+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

scripts/benchmark_duration_model.py prints concise action and best-model metrics to stdout, uses stable SHA-256 assignment over mapped commit groups for 3-fold validation, keeps shared-commit tasks in the same fold, and adding a new independent commit group does not move existing groups.

Evidence

Worklog: PLAN-08.

Estimate basis

  • narrow implementation surface
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=PLAN-08,PLAN-02,PLAN-09)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
PLAN-09 Remove optional CatBoost duration experiment Done
Workstream
Planning And Reporting Tools
Priority
P1
Dependencies
PLAN-08
Window
2026-05-08 15:16 :12+03 to 2026-05-08 15:27 :35+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

The optional CatBoost benchmark script and generated experiment artifacts are removed; stdlib duration benchmark docs no longer link to CatBoost output; current planning checks no longer generate CatBoost outputs or require CatBoost commands.

Evidence

Worklog: PLAN-09.

Estimate basis

  • narrow implementation surface
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=PLAN-09,PLAN-07,PLAN-04)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DOC-01 Document current explicit and implicit Lightmetrics limitations, and make persistent planning mandatory for non-trivial user requests whether performed immediately, deferred, or parked Done
Workstream
Documentation And Process
Priority
P1
Dependencies
none
Window
2026-05-07 21:11 :44+03 to 2026-05-07 21:49 :29+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

README links the limitations registry; docs/limitations.md covers current system, agent, protocol, collector, object-store, query, live, rollup, UI, Grafana, integration, and planning/process limitations; AGENTS.md and this plan require non-trivial design/code/refactor/docs/test/tooling/operations requests to be tracked in docs/PLAN.md.

Evidence

Worklog: DOC-01.

Estimate basis

  • contracts: agent, http/api, storage, ui
  • external/integration service involved
  • parser/query semantics
  • UI state or browser-visible behavior
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=DOC-01,DOC-02I,DOC-02F)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DOC-02 Umbrella documentation program for quickstart, install, Docker/container usage, user workflows, admin/operations, configuration, APIs, development, demos/integration, troubleshooting, release/upgrade notes, and documentation maintenance rules Planned
Workstream
Documentation And Process
Priority
P1
Dependencies
DOC-01
Window
2026-05-09 19:20 +03:00 to 2026-05-09 19:38 +03:00
Planning estimate
18m range 5m to 1h 4m

Acceptance

Repository has linked docs with clear audience boundaries; commands are verified or explicitly marked conceptual; docs point to current config/API behavior and limitations; maintenance rules require updates when code or behavior changes.

Evidence

Requested by user; planning captured, implementation not started.

Estimate basis

  • contracts: config, http/api
  • external/integration service involved
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=DOC-02E,DOC-02I,DOC-02A)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DOC-02A Documentation information architecture and status index. Create the doc directory map, target audience boundaries, source-of-truth rules, and a status matrix that labels each page as implemented, partial, planned, unsupported, or demo-only Done
Workstream
Documentation And Process
Priority
P1
Dependencies
DOC-02
Window
2026-05-07 22:01 :50+03 to 2026-05-07 22:03 :12+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

README and docs index route users to the right guide; every listed guide has an owner path and status; missing guides are linked to this plan instead of implied as complete.

Evidence

Worklog: DOC-02A.

Estimate basis

  • 3 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=DOC-02A,WEB-04,DOC-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DOC-02B Quickstart guide for the shortest verified local path from checkout to visible data Done
Workstream
Documentation And Process
Priority
P1
Dependencies
DOC-02A, DEMO-01
Window
2026-05-07 22:11 :38+03 to 2026-05-07 22:16 :49+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

Guide names prerequisites, commands, expected endpoints, generated token/config locations, verification queries, common failure points, and cleanup; commands are run against the current repo or blockers are recorded.

Evidence

Worklog: DOC-02B.

Estimate basis

  • contracts: config, http/api
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=DOC-02B,DOC-02C,DOC-02D)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DOC-02C Installation and packaging guide for local binaries and service layout Done
Workstream
Documentation And Process
Priority
P1
Dependencies
DOC-02A
Window
2026-05-07 22:25 :20+03 to 2026-05-07 22:26 :23+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

Guide covers build/install commands, binary names, system users, state/cache/spool directories, config locations, TLS/token files, upgrades that preserve state, and unsupported package formats.

Evidence

Worklog: DOC-02C.

Estimate basis

  • contracts: config, storage
  • durability, idempotency, or repair semantics
  • UI state or browser-visible behavior
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=DOC-02C,DOC-02D,DOC-02B)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DOC-02D Docker/container usage guide Done
Workstream
Documentation And Process
Priority
P1
Dependencies
DOC-02A, DEMO-01, OBJ-03
Window
2026-05-09 08:30 :19+03 to 2026-05-09 08:57 :20+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

Guide covers image build/run commands, exposed ports, volume layout, state persistence, network/TLS/token handling, MinIO/S3 wiring, cleanup, and container-specific limitations.

Evidence

Worklog: DOC-02D. No repository-owned Dockerfile, published image, production Compose stack, image publishing workflow, or hardened orchestration guidance.

Estimate basis

  • contracts: storage
  • external/integration service involved
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=DOC-02D,DOC-02C,DOC-02F)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DOC-02E User guide for private console, Grafana datasource, query examples, logs, alerts, dashboards, and disabled workflows Done
Workstream
Documentation And Process
Priority
P1
Dependencies
DOC-02A, UI-01, GRAF-01
Window
2026-05-09 18:03 :24+03 to 2026-05-09 18:26 :47+03
Planning estimate
20m range 5m to 1h 4m

Acceptance

Guide shows supported user workflows with real API-backed behavior; planned or disabled features are explicitly marked and linked to limitations/backlog items.

Evidence

Worklog: DOC-02E.

Estimate basis

  • contracts: http/api, ui
  • external/integration service involved
  • parser/query semantics
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=DOC-02E,DOC-03,WEB-04)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DOC-02F Admin and operations guide Done
Workstream
Documentation And Process
Priority
P1
Dependencies
DOC-02A, OBJ-04, OBJ-05, OBJ-06C
Window
2026-05-09 18:09 :44+03 to 2026-05-09 18:27 :51+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

Guide covers collector/agent topology, auth token rotation, TLS, spool and queue sizing, object-store modes, backpressure, identity-conflict inspection, reconciliation, backup/restore assumptions, retention gaps, and operational limitations.

Evidence

Worklog: DOC-02F.

Estimate basis

  • contracts: agent, http/api, storage
  • durability, idempotency, or repair semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=DOC-02F,DOC-02J,DOC-02D)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DOC-02G Configuration reference Done
Workstream
Documentation And Process
Priority
P1
Dependencies
DOC-02A
Window
2026-05-09 17:25 :15+03 to 2026-05-09 17:41 :40+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

Every server and agent TOML field is documented with sample/default value, validation rule, runtime effect, reload behavior if any, secret-file handling, and cross-component couplings such as agent max_log_message_bytes versus collector ingest.max_log_message_bytes, agent max_logs_per_batch versus collector ingest.max_logs_per_batch, and Linux heartbeat metric-series/label floors versus collector ingest limits.

Evidence

Worklog: DOC-02G.

Estimate basis

  • contracts: agent, config
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=DOC-02G,ING-09,ING-04)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DOC-02H API reference for ingest, Prometheus-compatible query, logs, alerts, and live SSE endpoints Done
Workstream
Documentation And Process
Priority
P1
Dependencies
DOC-02A, ING-01, QUERY-03, LOG-02, LOG-03, LIVE-01
Window
2026-05-09 17:43 :37+03 to 2026-05-09 17:51 :19+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

Reference documents auth headers, request parameters, response DTOs, warnings/errors, cursor/limit behavior, enforced limits, unsupported paths, and examples generated or checked against server DTOs where practical.

Evidence

Worklog: DOC-02H.

Estimate basis

  • contracts: http/api
  • parser/query semantics
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=DOC-02H,LOG-03,QUERY-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DOC-02I Development guide Done
Workstream
Documentation And Process
Priority
P2
Dependencies
DOC-02A, PLAN-01
Window
2026-05-09 18:12 :09+03 to 2026-05-09 18:15 :25+03
Planning estimate
7m range 5m to 7m

Acceptance

Guide covers workspace layout, dependency/tool versions, code generation, build/test/clippy commands, UI test boundaries, integration harnesses, Gantt generation, review gates, planning rules, and contribution workflow caveats.

Evidence

Worklog: DOC-02I.

Estimate basis

  • contracts: ui
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P2, priority_n=5; neighbors=DOC-02I,DOC-02D,DOC-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DOC-02J Troubleshooting guide plus release and upgrade notes Done
Workstream
Documentation And Process
Priority
P2
Dependencies
DOC-02A
Window
2026-05-09 18:27 :51+03 to 2026-05-09 18:32 :27+03
Planning estimate
5m range 5m to 6m

Acceptance

Guide covers ingest rejections, auth/TLS failures, queue/spool pressure, object-store failures, partial query warnings, oversized records, stale live views, conflict recovery, config/schema changes, data compatibility, migration steps, and release caveats.

Evidence

Worklog: DOC-02J.

Estimate basis

  • contracts: agent, config, http/api, storage
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • 1 uncertainty marker(s)
  • duration model: pre-task similarity blend over robust priority median (priority=P2, priority_n=5; neighbors=DOC-02J,DOC-02F,DOC-02C)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DOC-03 README implementation-status refresh Done
Workstream
Documentation And Process
Priority
P2
Dependencies
DOC-02A
Window
2026-05-09 17:24 :04+03 to 2026-05-09 17:25 :15+03
Planning estimate
5m range 5m to 6m

Acceptance

README's short project summary and workspace descriptions match current source boundaries, avoid scaffold-only wording for implemented ingest/query/object-store/demo pieces, and link to limitations for planned rollups/dashboard configuration without claiming unfinished behavior.

Evidence

Worklog: DOC-03.

Estimate basis

  • contracts: http/api, storage, ui
  • parser/query semantics
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P2, priority_n=5; neighbors=DOC-03,DOC-02A,WEB-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DEMO-01 Repeatable local demo start/stop/status with MinIO, collector, and agent loop Done
Workstream
Demo, Integration, And CI
Priority
P0
Dependencies
ING-03, QUERY-02
Window
2026-05-07 09:15 :48+03 to 2026-05-07 09:30 :43+03
Planning estimate
19m range 7m to 36m

Acceptance

scripts/lightmetrics-demo start runs all services; query returns lmagent_up; stop/restart work.

Evidence

Worklog: DEMO-01.

Estimate basis

  • contracts: agent, http/api
  • external/integration service involved
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=DEMO-01,DEMO-02,ING-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DEMO-02 Process-level MinIO plus synthetic agent ingest smoke test Done
Workstream
Demo, Integration, And CI
Priority
P0
Dependencies
DEMO-01
Window
2026-05-07 09:30 :43+03 to 2026-05-07 09:33 :19+03
Planning estimate
18m range 7m to 36m

Acceptance

Test starts isolated services on alternate ports, checks queryable metric and MinIO bucket.

Evidence

Worklog: DEMO-02.

Estimate basis

  • contracts: agent
  • external/integration service involved
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=DEMO-02,DEMO-01,DEMO-04)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DEMO-03 Upgrade smoke test to assert object landing, duplicate idempotence, and conflict behavior through MinIO Done
Workstream
Demo, Integration, And CI
Priority
P0
Dependencies
OBJ-03, OBJ-04, OBJ-05
Window
2026-05-07 14:43 :54+03 to 2026-05-07 14:53 :45+03
Planning estimate
20m range 7m to 36m

Acceptance

Test inspects MinIO raw objects/manifests, verifies derived index objects, conditional-create duplicate behavior, conflict side effects including object-store quarantine manifests, and confirms the private query API can read the landed synthetic batch.

Evidence

Worklog: DEMO-03.

Estimate basis

  • contracts: http/api, storage
  • external/integration service involved
  • durability, idempotency, or repair semantics
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=DEMO-03,OBJ-03,OBJ-06A)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DEMO-04 CI gating for integration tests Done
Workstream
Demo, Integration, And CI
Priority
P1
Dependencies
DEMO-03
Window
2026-05-09 17:13 :54+03 to 2026-05-09 17:20 :25+03
Planning estimate
18m range 5m to 1h 4m

Acceptance

Integration tests are opt-in locally and runnable in CI with MinIO service setup.

Evidence

Worklog: DEMO-04.

Estimate basis

  • external/integration service involved
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=DEMO-04,DEMO-01,DEMO-02)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
DEMO-05 Restrictive local-demo secret file permissions Done
Workstream
Demo, Integration, And CI
Priority
P2
Dependencies
DEMO-01
Window
2026-05-09 18:16 :50+03 to 2026-05-09 18:20 :07+03
Planning estimate
5m range 5m to 6m

Acceptance

scripts/lightmetrics-demo creates demo directories and generated token, MinIO env, and TLS private-key files with restrictive modes independent of ambient umask; restart preserves existing secrets without widening permissions; integration or shell test asserts expected file modes. Out of scope: production secret management.

Evidence

Worklog: DEMO-05.

Estimate basis

  • external/integration service involved
  • duration model: pre-task similarity blend over robust priority median (priority=P2, priority_n=5; neighbors=DEMO-05,DEMO-01,DOC-02B)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
GRAF-01 Stock Grafana Prometheus datasource can query Lightmetrics Done
Workstream
Grafana Compatibility
Priority
P0
Dependencies
QUERY-03
Window
2026-05-07 15:14 :48+03 to 2026-05-07 15:30 :07+03
Planning estimate
19m range 7m to 36m

Acceptance

Grafana datasource health and basic graph/variable queries succeed against local demo.

Evidence

Worklog: GRAF-01.

Estimate basis

  • contracts: http/api
  • external/integration service involved
  • parser/query semantics
  • duration model: pre-task similarity blend over robust priority median (priority=P0, priority_n=24; neighbors=GRAF-01,GRAF-02,DEMO-01)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
GRAF-02 Grafana smoke dashboard backed by real Lightmetrics queries Done
Workstream
Grafana Compatibility
Priority
P1
Dependencies
GRAF-01, QUERY-05, QUERY-06, QUERY-07
Window
2026-05-08 20:37 :07+03 to 2026-05-08 21:10 :10+03
Planning estimate
19m range 5m to 1h 4m

Acceptance

Checked-in dashboard fixture, including rate() and histogram_quantile() panels, returns non-empty data without a custom plugin.

Evidence

Worklog: GRAF-02. Smoke-only counter and histogram data is accepted through the real ingest/query path, and the pinned Grafana data-source proxy verifies non-empty rate() and histogram_quantile() responses. Browser-rendered panel screenshots remain out of scope.

Estimate basis

  • contracts: http/api, storage, ui
  • external/integration service involved
  • parser/query semantics
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (priority=P1, priority_n=63; neighbors=GRAF-02,GRAF-01,QUERY-07)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m
GRAF-03 Dashboard JSON export from Lightmetrics dashboards Low
Workstream
Grafana Compatibility
Priority
Low
Dependencies
GRAF-02
Window
2026-05-09 20:25 +03:00 to 2026-05-09 20:45 +03:00
Planning estimate
20m range 5m to 44m

Acceptance

Export-only flow exists after query compatibility is stable.

Evidence

Explicitly low priority.

Estimate basis

  • contracts: http/api, ui
  • external/integration service involved
  • parser/query semantics
  • UI state or browser-visible behavior
  • duration model: pre-task similarity blend over robust priority median (global fallback for priority=Low, priority_n=0; neighbors=GRAF-01,GRAF-02,QUERY-03)
  • outlier handling: log-duration IQR winsorization bounds 1.1m..208.7m

Input

Roadmap Source

Only the canonical JSON payload is imported. The local browser wrapper is not part of the site boundary.

Input Status Use Size Source
README.md sha256 37bedde525a1 Partial Published public docs route /docs/repository-readme/. Project orientation, workspace map, first build, and local demo entry point. 96 lines source
docs/README.md sha256 0e01c2dc5964 Current Published public docs route /docs/documentation-index/. Documentation map, source-of-truth rules, and planned guide boundaries. 80 lines source
docs/quickstart.md sha256 1a20c773c153 Current Published public docs route /docs/quickstart/. Verified local demo path from checkout to queryable heartbeat data. 159 lines source
docs/install.md sha256 fb34f6ea462d Current Published public docs route /docs/install/. Manual source-build binary install layout and current unsupported package formats. 212 lines source
docs/docker.md sha256 3083b4ed7c3a Current Published public docs route /docs/docker/. Operator-owned container build/run recipe, volumes, ports, token/TLS mounts, and MinIO/S3 wiring. 386 lines source
docs/limitations.md sha256 e4011655c767 Current Published public docs route /docs/limitations/. Explicit and implicit implementation limits by component. 408 lines source
docs/design.md sha256 696b52b52de4 Reference Published public docs route /docs/design-reference/. Target architecture and rationale for the Lightmetrics system. 630 lines source
docs/active-active-s3-ingest.md sha256 07fd4051440d Partial Published public docs route /docs/active-active-s3-ingest/. S3-manifest ingest direction and active-active conditional-create constraints. 430 lines source
docs/design-artifacts.md sha256 574014d88cd3 Reference Published public docs route /docs/design-artifacts/. Links and notes for console and public website design artifacts. 152 lines source
docs/claude-design-public-site-task.md sha256 96ff27aa920d Reference Published public docs route /docs/public-site-design-task/. Claude Design prompt and intake workflow for public website mockups. 211 lines source
docs/PLAN.md sha256 d440dd1374c5 Current Public WEB backlog status and scope boundaries. 688 lines source
docs/gantt-data.json sha256 b51276e6dd6e Generated Canonical static roadmap and Gantt metadata for the public roadmap page. 8011 lines source