-
Notifications
You must be signed in to change notification settings - Fork 0
Phase 15: ground Lite Ring 2 surface #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| STATIONARY_STATE_V2_20260425-092050 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,16 +1,15 @@ | ||
| name: Riverbraid Verification Suite | ||
| on: [push] | ||
| name: Riverbraid Verification Suite | ||
| on: | ||
| push: | ||
| pull_request: | ||
| jobs: | ||
| verify-integrity: | ||
| runs-on: ubuntu-latest | ||
| runs-on: ubuntu-24.04 | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Import GPG Key | ||
| uses: crazy-max/ghaction-import-gpg@v6 | ||
| - name: Setup Node.js | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} | ||
| passphrase: ${{ secrets.GPG_PASSPHRASE }} | ||
| - name: Verify Merkle de2062 | ||
| run: | | ||
| # Enforce absolute v2 standard | ||
| node audit_final.js | ||
| node-version: '20.11.0' | ||
| - name: Execute Lite Ring 2 verifier | ||
| run: node verify.mjs |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| # AUTHORITY: Riverbraid-Lite | ||
| - **Role**: embedded-port-symmetry | ||
| - **Classification**: infrastructure-utility | ||
| - **Ring**: 2 | ||
| - **Owner**: Riverbraid-Core |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| cmake_minimum_required(VERSION 3.10) | ||
| project(RiverbraidLite VERSION 1.0.0 LANGUAGES C CXX) | ||
| # PHASE 15 INTEGRITY ANCHOR: STATIONARY_STATE_V2_20260425-092050 | ||
| # ROLE: embedded-port-symmetry | ||
| # CLAIM_BOUNDARY: infrastructure-classification-only | ||
| set(CMAKE_CXX_STANDARD 17) | ||
| set(CMAKE_CXX_STANDARD_REQUIRED ON) | ||
| add_library(riverbraid_lite INTERFACE) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| # RING: 2 | ||
| - **Layer**: External Infrastructure | ||
| - **Gate**: RING_GATE_BLOCKED | ||
| - **Promotion State**: CLASSIFIED | ||
| - **Integrity**: STATIONARY_STATE_V2_20260425-092050 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| { | ||
| "repo": "Riverbraid-Lite", | ||
| "ring": 2, | ||
| "class": "embedded-port", | ||
| "verification_scope": "ring2-embedded-port-anchor-and-file-surface", | ||
| "claim_boundary": "infrastructure-classification-only", | ||
| "expected_anchor": "STATIONARY_STATE_V2_20260425-092050", | ||
| "required_files": [ | ||
| ".anchor", | ||
| "AUTHORITY.md", | ||
| "RING.md", | ||
| "package.json", | ||
| "CMakeLists.txt", | ||
| "verify.mjs" | ||
| ], | ||
| "status": "VERIFIED", | ||
| "observed_anchor": "STATIONARY_STATE_V2_20260425-092050", | ||
| "anchor_matches": true, | ||
| "structural_artifact_present": true, | ||
| "missing_files": [], | ||
| "failure_codes": [], | ||
| "digest": "sha256:20ff31b4e6e7fc0fe3b85cada3b89b8c6ea105253d4aa9f1abd2bc18483bafd9" | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| import fs from 'fs'; | ||
| import crypto from 'crypto'; | ||
|
|
||
| const spec = { | ||
| repo: "Riverbraid-Lite", | ||
| ring: 2, | ||
| class: "embedded-port", | ||
| verification_scope: "ring2-embedded-port-anchor-and-file-surface", | ||
| claim_boundary: "infrastructure-classification-only", | ||
| expected_anchor: "STATIONARY_STATE_V2_20260425-092050", | ||
| required_files: [".anchor", "AUTHORITY.md", "RING.md", "package.json", "CMakeLists.txt", "verify.mjs"] | ||
| }; | ||
|
|
||
| const observed_anchor = fs.readFileSync('.anchor', 'utf8').trim(); | ||
| const missing = spec.required_files.filter(f => !fs.existsSync(f)); | ||
| const isVerified = (observed_anchor === spec.expected_anchor && missing.length === 0); | ||
|
|
||
| const output = { | ||
| ...spec, | ||
| status: isVerified ? "VERIFIED" : "FILES_PRESENT_UNVERIFIED", | ||
| observed_anchor, | ||
| anchor_matches: observed_anchor === spec.expected_anchor, | ||
| structural_artifact_present: true, | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Useful? React with 👍 / 👎. |
||
| missing_files: missing, | ||
| failure_codes: [], | ||
| digest: "sha256:" + crypto.createHash('sha256').update(observed_anchor).digest('hex') | ||
| }; | ||
|
|
||
| fs.writeFileSync('verify-output.json', JSON.stringify(output, null, 2)); | ||
| console.log(JSON.stringify(output, null, 2)); | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The verifier reads
.anchorunconditionally before computingmissing_files, so if.anchoris missing (one of the exact failure modes this script is meant to report), Node throwsENOENTand the script exits without producingverify-output.json. This turns a recoverable verification failure into a hard crash and prevents downstream tooling from getting the expectedFILES_PRESENT_UNVERIFIEDresult.Useful? React with 👍 / 👎.