whiteducksoftware / whiteducksoftware/flock

[1.0] Persist run history in SQLite independently of the dashboard

Open
#443 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
120
Forks
14
Avg merge
19h 32m
Merged PRs (30d)
8

Description

Artifact history is durable, but the collector's run registry is in memory and the agent-run history endpoint returns a placeholder. Useful run history must also exist in headless operation.

Scope

  • Reuse task/run identities and existing run/consumption records to persist agent, timing, outcome, input/output references and protected diagnostics in SQLite.
  • Expose bounded authorized list/detail reads for this history and use them instead of the empty run-history endpoint.
  • Define retention and historical-coverage behavior without implying that old agent snapshots are execution checkpoints.

Acceptance criteria

  • A headless deterministic run and a dashboard-enabled run produce equivalent durable history.
  • After a clean restart, successful, failed and confirmed-cancelled records retain their identity and outcome.
  • Authorized list/detail pagination returns the correct records; foreign readers cannot access protected diagnostics or referenced payloads.

Boundaries

Crash reconciliation and open intake receipts are a dependent ticket; automatic run restoration and workspace export are deferred.

References

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/flock/core/store.py, src/flock/api/collector.py, and src/flock/components/server/traces/trace_component.py, then trace the existing run and consumption records and the placeholder history endpoint. Define the SQLite persistence, retention and authorized bounded list/detail behavior within the stated boundaries. Done means headless and dashboard runs have equivalent durable history, records survive restart, pagination is correct, and protected diagnostics and payloads remain inaccessible to foreign readers.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, sqlite
Domain
api, backend, database
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.