Repository navigation
Make Tabellio provenance local-first and preserve coordinated publication - #58
Conversation
… IDs Entire-Checkpoint: 9aff5ea604c1
Entire-Checkpoint: 8b6d0f83be74
Entire-Checkpoint: 6a11c08d24a7
Entire-Checkpoint: f692553606e6
Entire-Checkpoint: 61bfecb0c453
Entire-Checkpoint: d742dce7304d
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 036c957c2b
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| repository_id="${TABELLIO_REPO_ID:-}" | ||
| if [[ -z "$repository_id" ]]; then | ||
| repository_url="$(git remote get-url origin)" | ||
| repository_id="$(node -e 'const u=process.argv[1]; const m=u.match(/^(?:https:\/\/github\.com\/|git@github\.com:)([^/]+\/[^/]+?)(?:\.git)?$/); if(!m)process.exit(1); console.log(m[1]);' "$repository_url")" |
There was a problem hiding this comment.
Accept ssh:// GitHub origin URLs
When a Buildkite checkout configures origin as the valid canonical form ssh://git@github.com/OWNER/REPO.git, this regex does not match, so the node -e command exits nonzero under set -e and product validation aborts before running the gate. The repository's own remote parser accepts this form, so derive the ID through that shared parser or extend this extraction to cover ssh:// URLs.
Useful? React with 👍 / 👎.
| || envelope.repositoryId !== `github.com/${process.env.GITHUB_REPOSITORY}` | ||
| || envelope.candidate !== git('rev-parse', 'HEAD') | ||
| || envelope.base !== git('merge-base', 'origin/main', 'HEAD') |
There was a problem hiding this comment.
Bind pushed proof to the pre-push base
On push runs, the checkout's origin/main resolves to the just-pushed HEAD, so this check requires envelope.base to equal HEAD. The later validation step instead uses HEAD^ as its base (and, for a squash merge, validates the fetched pre-merge PR head), so a normally exported proof describing the actual pre-push range is rejected before validation. This blocks post-merge and direct-main product validation unless an operator manually constructs an inconsistent envelope; preserve the pre-push base separately or validate against the same checkpoint base used by the gate.
Useful? React with 👍 / 👎.
Make provenance local by default while preserving evidence integrity checks and explicit shared publication coordination. Ordinary use no longer requires IntelIP/Tabellio-control or its private token.
Final reviewed head: 036c957. The reviewed architecture is accompanied by pinned GitHub Actions checks, exact candidate attribution, genuine filtered native checkpoint import, safe public summaries, a candidate-scoped Git capability probe, and measured singleton PostgreSQL input statistics. No integrity or timeout limits were relaxed.
Validation on this exact head:
The approved one-time handoff contained only the unchanged 12 native metadata blobs, excluding actual prompt/transcript blobs. Private worker files, both temporary secrets and the temporary proof environment were removed; deletion was independently verified. Both runs stored zero artifacts, and their logs exposed none of the 22 audited private metadata values. The original private backups and empty control-read environment remain preserved.
Merge remains blocked by the unchanged app-bound buildkite/tabellio requirement. A concrete replacement with the four successful GitHub Actions checks, preserving strict mode and all other protection, awaits explicit approval. No protection bypass or Buildkite retirement is included. This PR stays draft pending that decision.
Operational limitation: this handoff is bound to the final head. Future revisions and post-merge validation require fresh approved genuine evidence; a persistent channel has not been authorized. Entire 0.7.7 does not independently authenticate copied checkpoint trailer IDs, so trusted evidence producers remain required.