Skip to content

feat(framework): retention, version control status and schema versioning for the journal #657

Description

@blafourcade

Outcome

The run journal has a bounded size, a stated place in version control, and a reader that survives a schema change.

Scope

Three policies that must exist before data accumulates, because each is far more expensive to introduce afterwards.

  • Version control status. .aidd/ is currently neither tracked nor gitignored in this repository, and aidd_docs/runs/ inherits that ambiguity. Decide, and state the consequence: a tracked journal puts who-worked-on-what-and-for-how-long into permanent history, which is the very thing feat(framework): measurement across tools and people #652 says cannot ship without an organisational decision.

  • Retention and rotation. One file per session, forever, with no deletion path. A team of ten at twenty sessions a day reaches tens of thousands of files inside a year, in git, with no way to prune them that does not rewrite history.

  • Schema versioning. Both runs/*.json and metadata.json carry schema_version: 1 and nothing says what a reader does with 2. feat(framework): an aidd-telemetry plugin whose hooks journal every session #620's strict nine-key whitelist makes every additive change a breaking one, which is the opposite of what a version field is for.

  • Excludes: deletion of telemetry held in the sink, which belongs to the sink's own retention.

  • Excludes: any hosted retention.

Done When

  • aidd_docs/runs/ is either tracked or ignored by an explicit rule, never by omission.
  • A rotation path exists that does not require rewriting history, and it is exercised in a test.
  • A reader given schema_version: 2 behaves predictably and says so, rather than failing or silently misreading.
  • An additive key does not break a reader written against the previous version, asserted with a fixture.
  • aidd telemetry disable states what happens to data already written, and does what it states.

Completion Evidence

A journal grown past its retention bound, pruned, and still readable — plus a reader running against a fixture of the previous schema version.

Relations

Field Value
parent #631
related #620, #646, #647

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    Priority

    None yet

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions