Skip to main content

GOV-ONT-004 — Expose decision chronology

FieldValue
StatusOpen finding; source-verified
SeverityMedium
Componentssparqd/ontology, sparqd/oqullus
Associated issuesNot opened pending finding review

Concrete observed case​

Each approval or rejection is stored as a decision row. Proposal reads reduce that history to the latest decision per approver and omit decision time and the proposal's create, update, decision, and merge timestamps. Branch edits also delete tasks and decisions before reopening the proposal.

Expected condition​

The UI distinguishes current effective review state from an append-only event timeline that records actor, time, branch revision, decision, comment, resets, and merge outcome.

Why it matters​

Reviewers and auditors cannot reconstruct who changed a decision, when reviewed content changed, or why prior approvals ceased to apply.

Existing controls and workarounds​

The database retains decisions until a branch edit resets the proposal. Direct database inspection is not a supported governance view and loses deleted rows.

Alternatives considered​

  1. Recommended: append-only proposal events plus a derived effective status.
  2. Expose all existing decision rows and timestamps — useful interim step but does not preserve reset events after deletion.
  3. Keep only latest state — simple, but insufficient for governed review.

Component involvement​

  • Ontology backend owns immutable review events and response timestamps.
  • Oqullus presents current state and chronology separately.

Reproduction and verification​

Follow ONT-S014.

Resolution conditions​

Close when repeated decisions and branch-edit resets remain attributable and ordered after reload, merge, and archival.

Validation and blockers​

Persistence and response shaping are source-confirmed; live history is pending because the deployed database has no proposals or decisions.