Skip to content

v0.2.5 — portfolio freeze (freeze-correction, no new features)

Latest

Choose a tag to compare

@haeliotang haeliotang released this 12 Jul 04:14
44be21b

The engineering line is frozen here. This is a freeze-correction — it fixes what a seventh review found, adds no features, and carries no packet (the evidence has one home: credential-packet-v1, sha256 af6e4142…).

What the freeze-correction fixed

  • Persisted-run identity invariants (P1). Uniqueness was enforced only on the Script, but the API reads the stored AgentRun — so a run with duplicate policy-decision ids let one attestation clear two items, and duplicate seat ids made the accountable party ambiguous. AgentRun now enforces unique seat ids, unique decision ids, and sub-object run_id ownership.
  • Version consistency (P2). All software versions are 0.2.5, and a version-consistency CI job (on push and on v* tags) fails if package/app/web versions disagree or, on a tag, if tag ≠ version. The "tag says vX but code says vY" class can't recur silently.
  • Claims discipline (P2). Narrowed the wide quantifiers; the v0.2.4 "can't be falsified" line is retracted (it was itself falsified). The rule going forward: state known limitations as of a version and specific verified properties — never "closed / complete / unfalsifiable."

Honest status (frozen baseline)

This is a strong engineering + self-audited reference / portfolio artifact. It is not an externally-adopted or independently-verified platform: 0 stars/forks, and CI is the only packet downloader. Verified properties are enumerated across the docs; what is not enforced is listed in docs/limitations.md with tracking issues (#29#33).

After the freeze

Only externally-reported P0/P1 fixes. The next steps are not more internal hardening:

  • #37 Independent reproduction — a third party runs the packet + suites and reports; this is the acceptance criterion for "independently verified."
  • #38 90-second demo — a comms asset (explicitly not verification evidence).

Post-freeze backlog (Tempo #8, GHCR #10, OTel semconv #12, etc.) stays deprioritized behind those two.