8000 Add multidimensional trust and promotion gates by Mnehmos · Pull Request #73 · Mnehmos/MathOS · GitHub
[go: up one dir, main page]

Skip to content

Add multidimensional trust and promotion gates - #73

Merged
Mnehmos merged 6 commits into
mainfrom
feat/67-multidimensional-trust
Jul 26, 2026
Merged

Mnehmos merged 6 commits into
mainfrom
feat/67-multidimensional-trust

Conversation

@Mnehmos
@Mnehmos Mnehmos commented Jul 25, 2026 •
Copy link
Copy Markdown
Owner

Summary

  • Derive five independent trust dimensions for each exact formalization version: kernel, fidelity, definition, reuse, and coverage.
  • Add an immutable, evidence-backed transition ledger for definition, reuse, and coverage while keeping kernel and fidelity evidence-derived.
  • Gate v2 portable releases with hash-bound experimental, publication, and upstream promotion assessments.
  • Expose one canonical representation through CLI and MCP; this repository has no graphical client, so those JSON surfaces are the current UI representation.

Change class

  • Class 0: Administrative or documentation
  • Class 1: Standard implementation
  • Class 2: Verifier-critical
  • Class 3: Release, migration, or security-sensitive

Affected trust boundary: exact formalization trust derivation, migration 14, release promotion, and database-independent v2 release verification.

TDD evidence

  • Acceptance criteria were defined before implementation
  • Focused regressions cover the expected failure boundaries
  • The smallest coherent implementation made them pass
  • Refactoring preserved passing behavior
  • Relevant unit and integration suites pass
  • Failure paths and boundary cases are covered
  • Documentation-only exception applies

Red evidence: issue #67 adversarial criteria plus review reproductions for cross-axis history limits, invalid offline transitions, actor spoofing, kernel/fidelity legacy histories, and unbounded release projection.

Green evidence: exact-head CI run 30180744201 passes all five required jobs. Local final validation passes 201 library tests, 1 Lean worker test, 4 MCP tests, and 21 CLI tests.

Commands and results:

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • cargo test --workspace --all-targets --all-features
  • Python legacy regression, 8000 pinned Lean availability, and fresh real-storage migration smoke in CI

Mathematical verification

  • No mathematical trust boundary is affected
  • Candidate behavior was checked independently through exact-head CI and automated review
  • The pinned Lean worker integration passes without granting authority
  • A new mathematical theorem or counterexample is claimed
  • Assumptions, profiles, evidence authorities, and tool pins are recorded
  • Issue, PR, commit, and CI identifiers are linked

Verifier and result: CI run 30180744201 is green. This change creates no mathematical proof, refutation, fidelity, or Comparator authority.

Compatibility and provenance

  • release_manifest/1 private bundle bytes and legacy closure semantics remain unchanged.
  • Legacy public v1 bundles fail closed because they lack multidimensional assessment.
  • Migration creates no synthetic promotions; existing formalizations retain conservative defaults.
  • Oversized legacy kernel/fidelity histories are fully replayed before bounded projection.
  • v2 releases retain exact current fidelity evidence/report witnesses, preventing superseded history from exhausting the release inventory.
  • No new third-party code, data, model output, or dependency
  • MathCorpus and RL export implications are documented
  • No credentials, private data, or access-controlled material are included

Risk and recovery

Known limitations: definition and reuse remain human-reviewed judgments; issues #68 and #69 add deeper definition-review and upstream workflows. Future graphical clients must render the canonical five-axis CLI/MCP representation without collapsing it to a Boolean.

Rollback or recovery plan: preserve the additive migration and immutable evidence/transition rows; revert application behavior only with a verified database backup and do not reinterpret emitted v2 manifests. Integrity failures direct operators to quarantine affected histories and restore exact backups.

Follow-up work: #68, then #69.

Review readiness

  • The branch is current with main
  • The pull request addresses one coherent concern
  • Required checks pass
  • Review threads are resolved
  • Generated output is not represented as independently verified evidence

Closes #67

Summary by CodeRabbit

  • New Features

    • Added multidimensional trust status across kernel, fidelity, definition, reuse, and coverage.
    • Added CLI and MCP actions to review trust transitions and inspect current trust status.
    • Portable releases now include promotion assessments and hash-bound trust details.
    • Release promotion is blocked when required trust evidence or reviews are incomplete.
    • Added strict validation for release manifests, trust transitions, and offline verification.
  • Documentation

    • Documented the trust model, promotion profiles, release requirements, and verification rules.
    • Added a development diary entry explaining multidimensional trust.

@coderabbitai
coderabbitai Bot commented Jul 25, 2026 •
Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The PR replaces aggregate verification with five trust dimensions, adds immutable evidence-backed transitions and promotion assessments, exposes trust operations through CLI/MCP, and requires release manifest v2 bundles to include hash-bound trust data and assessment artifacts.

Changes

Trust and promotion lifecycle

Layer / File(s) Summary
Trust contracts and domain model
src/domain/trust.rs, schemas/trust/*, schemas/release/*, src/domain/release.rs, docs/architecture/*, docs/decisions/*
Defines independent trust axes, transition and assessment schemas, deterministic validation, promotion profiles, and release manifest v2 trust bindings.
Immutable transition storage
migrations/0014_multidimensional_trust.sql, src/store/mod.rs
Adds the strict trust_transitions ledger, guarded predecessor chaining, artifact checks, idempotent persistence, bounded reads, and immutability triggers.
Application and verification interfaces
src/app.rs, src/cli/mod.rs, src/mcp/mod.rs, tests/mcp_stdio.rs, tests/phase1_cli.rs
Adds trust status derivation and trust transition APIs, exposes CLI/MCP actions, and verifies dry-run, persistence, idempotency, integrity failures, and cross-interface responses.
Promotion-bound release construction and verification
src/release.rs, src/app.rs, scripts/release-pilot-a.sh, docs/trust/*
Gates releases on profile eligibility, emits promotion assessment artifacts and manifest v2 trust bindings, validates offline semantic closure, and retains current fidelity and trust evidence.
Supporting documentation and fixtures
docs/dev-diary/*, docs/implementation/*, src/comparator_export.rs, src/corpus_export.rs, src/rl_export.rs
Updates trust documentation, diary indexes, implementation status, and release-related fixtures for the new manifest fields.

Estimated code review effort: 5 (Critical) | ~120 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Client
  participant CLI_MCP_Verify
  participant Application
  participant Store
  Client->>CLI_MCP_Verify: submit trust_status or transition_trust
  CLI_MCP_Verify->>Application: dispatch validated request
  Application->>Store: read evidence or persist transition
  Store-->>Application: trust history or transition snapshot
  Application-->>CLI_MCP_Verify: canonical trust response
  CLI_MCP_Verify-->>Client: structured result
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 15.57% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The changes satisfy #67 by replacing single verified status with five trust axes, immutable transitions, fail-closed release policy, and promotion profiles.
Out of Scope Changes check ✅ Passed No clear out-of-scope changes are evident; the docs and tests all support the multidimensional trust and release-gating work.
Title check ✅ Passed The title is concise and accurately captures the main change: multidimensional trust plus promotion gating.
Description check ✅ Passed The description covers nearly all required sections with concrete evidence, commands, risks, and rollout details.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/67-multidimensional-trust

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Mnehmos
Mnehmos commented Jul 25, 2026
Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai
coderabbitai Bot commented Jul 25, 2026 •
Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9d736c97cd

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/store/mod.rs Resolved
Comment thread src/store/mod.rs Resolved
Comment thread src/domain/trust.rs Resolved
@coderabbitai coderabbitai Bot left a comment
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (6)
migrations/0014_multidimensional_trust.sql (1)

39-40: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Column/JSON agreement relies on byte-identical array rendering.

json_extract(request_json, '$.evidence_artifact_hashes') returns SQLite's own minified JSON text, which is compared as text against evidence_artifact_hashes_json produced by serde_json::to_string in src/store/mod.rs. They agree today only because both emit space-free arrays; any formatting change on either side turns a valid insert into an opaque CHECK failure. Normalizing both sides removes the coupling.

♻️ Compare normalized JSON on both sides
             AND json_extract(request_json, '$.evidence_artifact_hashes')
-                IS evidence_artifact_hashes_json
+                IS json_extract(evidence_artifact_hashes_json, '$')
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@migrations/0014_multidimensional_trust.sql` around lines 39 - 40, Update the
CHECK constraint comparing evidence_artifact_hashes_json with request_json to
compare normalized JSON values rather than raw serialized text, and ensure the
value produced in src/store/mod.rs is normalized consistently before storage.
Preserve validation of equivalent arrays regardless of whitespace or formatting
differences.
src/domain/trust.rs (2)

1095-1111: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Test helper breaks for id_suffix >= 16.

format!("{id_suffix:x}").repeat(64) yields 128 characters once the suffix needs two hex digits, so decision_hash stops being a valid 64-char hash. Current callers pass 1 and 2, but a future case would fail confusingly.

♻️ Pad to a single-width nibble
-            decision_hash: format!("{id_suffix:x}").repeat(64),
+            decision_hash: format!("{id_suffix:02x}").repeat(32),
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/domain/trust.rs` around lines 1095 - 1111, Update the decision test
helper’s decision_hash construction to always format id_suffix as a single
hexadecimal nibble before repeating it 64 times, preserving a valid 64-character
hash and making values at or above 16 fail clearly rather than producing an
oversized hash.

673-757: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Accepted-status lists are hand-maintained duplicates of the enum vocabularies. 8000

Each profile spells out string literals (e.g. the fidelity "not rejected" set and the "declared coverage" set). Adding a new FidelityTrustStatus or CoverageTrustStatus variant silently widens or narrows a policy without a compile error. Consider deriving these from the enums (e.g. filter FidelityTrustStatus::ALL excluding Rejected, CoverageTrustStatus::ALL excluding Unknown) so the policy stays exhaustive by construction.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/domain/trust.rs` around lines 673 - 757, Replace the hard-coded fidelity
and coverage status string lists in the profile policy with values derived from
their enum vocabularies, such as filtering FidelityTrustStatus::ALL to exclude
Rejected and CoverageTrustStatus::ALL to exclude Unknown. Update the affected
Experimental, Publication, and Upstream entries while preserving each profile’s
existing exclusions and accepted-status behavior.
src/domain/mod.rs (1)

24-24: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Re-export MAX_TRUST_HISTORY from crate::domain.

src/domain/mod.rs re-exports the trust module and schema-related symbols, but external callers must still refer to crate::domain::trust::MAX_TRUST_HISTORY or repeat 256 when checking trust history/evidence artifact limits.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/domain/mod.rs` at line 24, Update the public exports in the domain module
around the trust module declaration to re-export MAX_TRUST_HISTORY from
crate::domain, allowing external callers to access the constant directly while
preserving the existing trust module API.
src/app.rs (1)

10231-10249: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider one more forgery case: a mutated axis status.

The test covers assessment_hash substitution. Since validate_promotion_assessment also compares each per-dimension status and eligible against the assessment, adding a case that flips, for example, definition_status to upstream_accepted while leaving the hash intact would pin the status-binding half of that check too.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/app.rs` around lines 10231 - 10249, Extend the release integrity test
around changed_metadata_manifest to add a forgery case that changes one axis
status, such as definition_status, to upstream_accepted while preserving the
assessment_hash. Write the mutated manifest, verify the restarted bundle offline
with verify_release_bundle_integrity, and assert it returns
MCL_RELEASE_SEMANTIC_CLOSURE_INVALID, matching the existing assessment-hash
case.
tests/mcp_stdio.rs (1)

1331-1363: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add negative coverage for the two new verify actions.

claim_status has an exhaustive forbidden-field loop (Lines 439-483) asserting MCL_MCP_FIELD_FORBIDDEN for every cross-action field. The newly hand-written reject_present lists for transition_trust and trust_status in src/mcp/mod.rs have no equivalent coverage, so a missing or misspelled rejection would go unnoticed. A conflict case (replaying this transition with a stale from_status, expecting MCL_TRUST_TRANSITION_CONFLICT) would also pin the ledger head guard through the MCP surface.

Want me to draft those cases?

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/mcp_stdio.rs` around lines 1331 - 1363, The MCP tests around the
existing transition_trust success and idempotency assertions need negative
coverage for both new verify actions. Add exhaustive forbidden-field cases
matching the claim_status coverage for transition_trust and trust_status,
asserting MCL_MCP_FIELD_FORBIDDEN, and add a replay using a stale from_status
that asserts MCL_TRUST_TRANSITION_CONFLICT while exercising the ledger head
guard.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/architecture/TRUST_MODEL.md`:
- Around line 45-60: Update the TRUST_MODEL.md command examples to match the
existing VerifyAction parser surface: use the documented
TrustStatus/FidelityStatusOptions command and only its actual option names, and
replace or remove the unsupported transition-trust example and flags unless
corresponding parser symbols are added.

In `@src/app.rs`:
- Around line 1254-1297: Update transition_trust to require
request.reviewer_identity to match actor before validation or persistence, using
the existing identity-mismatch validation pattern such as review_fidelity.
Ensure this check applies consistently to definition, reuse, and covered
promotions, and preserve the actor-bound reviewer identity through
TrustDecision, trust status, and release manifest flows.

In `@src/domain/trust.rs`:
- Around line 445-446: Update bounded_nonempty, used by the reviewer_identity
and reason validation in the trust transition, to measure length in Unicode code
points rather than UTF-8 bytes. Preserve the existing non-empty and
maximum-bound checks so non-ASCII values valid under the committed schemas and
SQL constraint are accepted.

In `@tests/phase1_cli.rs`:
- Around line 1104-1105: Expand the promotion assertions in the affected test
cases around initial_trust to validate experimental, publication, and upstream
entries by their profile values rather than relying on promotion[0] ordering.
Also assert that the reuse and coverage axes remain unchanged across the
definition transition, preserving detection of omitted, reordered, or cross-axis
mutations.

---

Nitpick comments:
In `@migrations/0014_multidimensional_trust.sql`:
- Around line 39-40: Update the CHECK constraint comparing
evidence_artifact_hashes_json with request_json to compare normalized JSON
values rather than raw serialized text, and ensure the value produced in
src/store/mod.rs is normalized consistently before storage. Preserve validation
of equivalent arrays regardless of whitespace or formatting differences.

In `@src/app.rs`:
- Around line 10231-10249: Extend the release integrity test around
changed_metadata_manifest to add a forgery case that changes one axis status,
such as definition_status, to upstream_accepted while preserving the
assessment_hash. Write the mutated manifest, verify the restarted bundle offline
with verify_release_bundle_integrity, and assert it returns
MCL_RELEASE_SEMANTIC_CLOSURE_INVALID, matching the existing assessment-hash
case.

In `@src/domain/mod.rs`:
- Line 24: Update the public exports in the domain module around the trust
module declaration to re-export MAX_TRUST_HISTORY from crate::domain, allowing
external callers to access the constant directly while preserving the existing
trust module API.

In `@src/domain/trust.rs`:
- Around line 1095-1111: Update the decision test helper’s decision_hash
construction to always format id_suffix as a single hexadecimal nibble before
repeating it 64 times, preserving a valid 64-character hash and making values at
or above 16 fail clearly rather than producing an oversized hash.
- Around line 673-757: Replace the hard-coded fidelity and coverage status
string lists in the profile policy with values derived from their enum
vocabularies, such as filtering FidelityTrustStatus::ALL to exclude Rejected and
CoverageTrustStatus::ALL to exclude Unknown. Update the affected Experimental,
Publication, and Upstream entries while preserving each profile’s existing
exclusions and accepted-status behavior.

In `@tests/mcp_stdio.rs`:
- Around line 1331-1363: The MCP tests around the existing transition_trust
success and idempotency assertions need negative coverage for both new verify
actions. Add exhaustive forbidden-field cases matching the claim_status coverage
for transition_trust and trust_status, asserting MCL_MCP_FIELD_FORBIDDEN, and
add a replay using a stale from_status that asserts
MCL_TRUST_TRANSITION_CONFLICT while exercising the ledger head guard.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: f58e7e1a-bdbd-4126-8c4c-12dda25aac5c

📥 Commits

Reviewing files that changed from the base of the PR and between a208205 and 9d736c9.

📒 Files selected for processing (26)
  • docs/architecture/TRUST_MODEL.md
  • docs/decisions/ADR-0018-multidimensional-trust-and-promotion-profiles.md
  • docs/dev-diary/0040-one-proof-five-questions.md
  • docs/dev-diary/README.md
  • docs/implementation/RELEASE_CHECKLIST.md
  • docs/implementation/STATUS.md
  • docs/trust/RELEASES.md
  • migrations/0014_multidimensional_trust.sql
  • schemas/release/release-manifest-2.schema.json
  • schemas/trust/promotion-assessment-1.schema.json
  • schemas/trust/trust-status-1.schema.json
  • schemas/trust/trust-transition-1.schema.json
  • scripts/release-pilot-a.sh
  • src/app.rs
  • src/cli/mod.rs
  • src/comparator_export.rs
  • src/corpus_export.rs
  • src/domain/mod.rs
  • src/domain/release.rs
  • src/domain/trust.rs
  • src/mcp/mod.rs
  • src/release.rs
  • src/rl_export.rs
  • src/store/mod.rs
  • tests/mcp_stdio.rs
  • tests/phase1_cli.rs

Comment thread docs/architecture/TRUST_MODEL.md Resolved
Comment thread src/app.rs Resolved
Comment thread src/domain/trust.rs Resolved
Comment thread tests/phase1_cli.rs Resolved
@Mnehmos
Mnehmos commented Jul 25, 2026
Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1b44cb7d42

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/store/mod.rs Resolved
@Mnehmos
Mnehmos commented Jul 25, 2026
Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fe9fb69102

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/domain/trust.rs Resolved
@Mnehmos
Mnehmos commented Jul 25, 2026
Copy link
Copy Markdown
Owner Author

@codex review

Please review exact head 694ee09, especially the oversized fidelity-history projection added in response to the latest P2.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 694ee09e44

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/app.rs Resolved
@Mnehmos
Mnehmos commented Jul 26, 2026
Copy link
Copy Markdown
Owner Author

@codex review

Please review exact head 145ec43, especially the bounded v2 fidelity-witness release projection and unchanged v1 semantics.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 145ec435fb

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/release.rs Resolved
@Mnehmos
Mnehmos commented Jul 26, 2026
Copy link
Copy Markdown
Owner Author

@codex review

Please review exact head 0069f8b, especially offline reconstruction of reviewed trust-transition hashes.

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

Reviewed commit: 0069f8b757

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@Mnehmos
Mnehmos merged commit 91deab2 into main Jul 26, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace single verified status with multidimensional trust and promotion states

1 participant

0