feat(ruview): secure community metaharness flywheel (#1467)

* feat(ruview): add secure community metaharness flywheel

* fix(ruview): canonicalize manifest line endings
This commit is contained in:
rUv
2026-07-28 23:57:16 -04:00
committed by GitHub
parent e78252a575
commit 2b7853b18f
41 changed files with 1944 additions and 78 deletions
+6 -6
View File
@@ -38,8 +38,8 @@ jobs:
- dir: harness/ruview
build: false
publishable: true
# ADR-263: dependency-free harness; budget guards against dep creep.
unpacked_budget: 65536
# ADR-283: brain + local hosts + replay assets; still runtime-dependency-free.
unpacked_budget: 131072
- dir: tools/ruview-mcp
build: true
publishable: true
@@ -53,14 +53,14 @@ jobs:
run:
working-directory: ${{ matrix.package.dir }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
- uses: actions/setup-node@v4
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: ${{ matrix.node }}
# Repo policy gitignores lockfiles under harness/ (the harness is
# dependency-free anyway); the TS packages commit theirs.
# Packages with development dependencies commit lockfiles; runtime
# dependency freedom is checked from the packed tarball.
- name: Install
run: |
if [ -f package-lock.json ]; then npm ci; else npm install --no-fund --no-audit; fi
@@ -0,0 +1,66 @@
name: RuView harness flywheel
on:
pull_request:
paths:
- 'harness/ruview/**'
- '.github/workflows/ruview-harness-flywheel.yml'
workflow_dispatch:
inputs:
run_darwin:
description: 'Generate an untrusted Darwin proposal archive (never promotes)'
required: true
default: false
type: boolean
permissions:
contents: read
jobs:
verify:
runs-on: ubuntu-latest
defaults:
run:
working-directory: harness/ruview
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
with:
persist-credentials: false
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 20
cache: npm
cache-dependency-path: harness/ruview/package-lock.json
- run: npm ci --ignore-scripts
- run: npm audit --omit=optional
- run: npm test
- run: npm run brain:verify
- run: npm run flywheel:plan
- run: npm run flywheel:verify
- run: npm run manifest:verify
- run: npm pack --dry-run
darwin-proposal:
if: github.event_name == 'workflow_dispatch' && inputs.run_darwin
needs: verify
runs-on: ubuntu-latest
permissions:
contents: read
defaults:
run:
working-directory: harness/ruview
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
with:
persist-credentials: false
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 20
- run: npm ci --ignore-scripts
- run: node flywheel/run.mjs --confirm
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: untrusted-darwin-proposal-${{ github.run_id }}
path: harness/ruview/.metaharness/
if-no-files-found: error
retention-days: 7
+4 -4
View File
@@ -37,9 +37,9 @@ jobs:
run:
working-directory: ${{ inputs.package }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
- uses: actions/setup-node@v4
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '20'
registry-url: 'https://registry.npmjs.org'
@@ -76,8 +76,8 @@ jobs:
run: |
set -euo pipefail
case "${{ inputs.package }}" in
# ADR-263: dependency-free harness; budget guards against dep creep.
harness/ruview) export UNPACKED_BUDGET=65536 ;;
# ADR-283: brain + local hosts + replay assets; no runtime deps.
harness/ruview) export UNPACKED_BUDGET=131072 ;;
# ADR-264 O2: map-free tarball (was 188 kB with maps).
tools/ruview-mcp) export UNPACKED_BUDGET=140000 ;;
*) echo "Unknown package '${{ inputs.package }}' — no budget defined"; exit 1 ;;