Skip to content

The run-log continuum evicts, so an audit trail cannot live there: declarable retention, or a seal-time export hook #2102

Description

@joshuadarron

The engine writes every trace call to a run-log continuum, durable the moment a run seals. But it evicts: getTrace starts answering that the run is below the retention horizon, and an answer whose link opens nothing is not an audit trail. An app that promises receipts cannot keep them there.

Filed from section 4.2 of the Rocket CRM runtime findings (docRevision 252). Part of the Rocket CRM build tracked in rocketride-ai/rocketride-saas#456.

Mechanism

Retention is a property of the engine's log, not of the app's promise. The app cannot declare how long its own runs must remain resolvable, cannot be told when one is about to go, and cannot learn that one has gone except by asking for it and being refused.

What we do today

Runs are copied into the app's own database, synced on the node rather than in the browser — which also catches runs no browser ever saw. Combined with the process-lifetime problem (filed separately as section 4.7), the app now sweeps after every turn.

Ask

  1. A retention policy an app can declare for its own project, or
  2. an export hook at seal time — the app is told a run is complete and copies it then.

The seal-time hook is the better of the two: it removes the guesswork about when to copy, and it is the same hook the run-log-lifetime issue asks for. Without either, every app that promises receipts will build this same archive.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or enhancementmodule:aiAI/ML modulespriority:highMajor feature broken or silently wrong, workaround costly, shipped regression, dated commitment

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions