Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
ec591c1
Harden empirical session ownership
fraware Aug 19, 2026
18b8103
Add canonical Gate B and Gate C review plans
fraware Aug 24, 2026
0df1871
Export canonical review planning API
fraware Aug 24, 2026
036456e
Test exact canonical Gate B and Gate C matrices
fraware Aug 24, 2026
39cc394
Add candidate register and deterministic campaign ordering
fraware Aug 24, 2026
82bc48a
Export precommitment validation API
fraware Aug 24, 2026
e0d08d5
Test candidate register and deterministic collection order
fraware Aug 24, 2026
5b52bd3
Add deterministic digital-twin acoustic stress tests
fraware Aug 24, 2026
8ed4cc5
Add immutable measurement and derivation provenance model
fraware Aug 24, 2026
9ffaded
Export measurement provenance API
fraware Aug 24, 2026
129e25e
Test immutable measurement and derivation provenance
fraware Aug 24, 2026
11de404
Add abstaining deterministic Sonic Twin baseline
fraware Aug 24, 2026
3416b33
Export Sonic Twin baseline API
fraware Aug 24, 2026
a095881
Test abstaining Sonic Twin baseline and benchmark metrics
fraware Aug 24, 2026
0d53205
Add privacy-preserving Resonance Atlas record schema
fraware Aug 24, 2026
607b37e
Export Resonance Atlas schema API
fraware Aug 24, 2026
0e0f6ee
Test privacy-preserving Atlas records and snapshots
fraware Aug 24, 2026
a6529ef
Add runtime-independent SHA-256 helper
fraware Aug 24, 2026
92bebfe
Declare cross-runtime Web Crypto globals for validation hashing
fraware Aug 24, 2026
f2c1c5c
Declare cross-runtime Web Crypto globals for provenance hashing
fraware Aug 24, 2026
30c9f12
Add full-stack digital-twin qualification test
fraware Aug 24, 2026
c13f778
Align Gate A documentation with frozen 12-specimen campaign
fraware Aug 24, 2026
01e2e5e
Align Gate B docs with canonical fixed-panel plan
fraware Aug 24, 2026
f6769ce
Align Gate C docs with canonical 4x2x2 matrix
fraware Aug 24, 2026
5b8d2a6
Tighten frozen campaign slot authoring rules
fraware Aug 24, 2026
f0006cf
Test distinct release-core family enforcement
fraware Aug 24, 2026
bb28fd9
Add strict Gate B and Gate C plan parsers
fraware Aug 24, 2026
6f9a0fe
Export canonical review plan parsers
fraware Aug 24, 2026
ec3947c
Test strict canonical review plan parsing
fraware Aug 24, 2026
640838b
Add authoritative canonical v8 release evaluator
fraware Aug 24, 2026
f7d4e7b
Export authoritative canonical release evaluator
fraware Aug 24, 2026
e1ec4ac
Test canonical release cannot bypass frozen plans
fraware Aug 24, 2026
156462e
Make canonical review plans authoritative in Release Console
fraware Aug 24, 2026
7b66787
Make provenance canonicalization total over JSON-like values
fraware Aug 24, 2026
5050930
Avoid large spread in digital-twin peak check
fraware Aug 24, 2026
95434be
Document non-release digital twin qualification lane
fraware Aug 24, 2026
472f5b2
Add repository code ownership defaults
fraware Aug 24, 2026
da053f3
Add security and privacy reporting policy
fraware Aug 24, 2026
6d4644c
Add contribution and empirical-change discipline
fraware Aug 24, 2026
2791f71
Add explicit non-release digital twin qualification workflow
fraware Aug 24, 2026
06d2a4b
Remove unused standalone SHA-256 helper
fraware Aug 24, 2026
839e392
Bind canonical review plans to exact upstream verdict digests
fraware Aug 24, 2026
9297bcf
Add deterministic runtime-independent SHA-256 utility
fraware Aug 24, 2026
d71bbbc
Use deterministic synchronous SHA-256 for canonical plan authority
fraware Aug 24, 2026
acf4397
Require exact upstream verdict digests in review plan parsers
fraware Aug 24, 2026
549a8bb
Test required upstream verdict digests in review plans
fraware Aug 24, 2026
9ec8288
Verify deterministic SHA-256 implementation against standard vectors
fraware Aug 24, 2026
298e7bd
Add nuisance-characterization and hard-negative benchmark utilities
fraware Aug 24, 2026
4bcd21c
Export nuisance benchmark utilities
fraware Aug 24, 2026
20f879e
Test nuisance characterization, hard negatives, and specimen-disjoint…
fraware Aug 24, 2026
82e43fd
Fix synchronous Gate C planning rejection test
fraware Aug 24, 2026
ea9c9a2
Add acoustic object model aggregation
fraware Aug 24, 2026
e88deaf
Add Sonic Twin retrieval benchmark
fraware Aug 24, 2026
330b548
Add data-bound Sonic Twin calibration metrics
fraware Aug 24, 2026
6efcdbb
Add Sonic Twin benchmark corpus contract
fraware Aug 24, 2026
5c8cc9b
Export object, retrieval, corpus, and calibration APIs
fraware Aug 24, 2026
48f65dc
Test object models, retrieval, corpus, and calibration
fraware Aug 24, 2026
d33196a
Add append-only Atlas registry semantics
fraware Aug 24, 2026
2440ce6
Export Atlas registry APIs
fraware Aug 24, 2026
de0b0f1
Test Atlas registry publication and merge semantics
fraware Aug 24, 2026
23c702e
Add research-only high-resolution damped-mode estimator
fraware Aug 24, 2026
ebeda9c
Export research-only Prony mode estimator
fraware Aug 24, 2026
81c27ae
Test research estimator on close digital modes
fraware Aug 24, 2026
3c01984
Add integrity-enforcing research repository core
fraware Aug 24, 2026
9d5e1b6
Export research repository integrity APIs
fraware Aug 24, 2026
161d955
Test research repository provenance closure
fraware Aug 24, 2026
164383f
Add measurement-station calibration contracts
fraware Aug 24, 2026
8343cfa
Export station calibration APIs
fraware Aug 24, 2026
9d81934
Test digital station calibration contracts
fraware Aug 24, 2026
14cb218
Add local Sonic Twin research surface
fraware Aug 24, 2026
51a734c
Add local Resonance Atlas research surface
fraware Aug 24, 2026
cf60684
Expose Sonic Twin and Atlas research routes
fraware Aug 24, 2026
1281eef
Smoke test Sonic Twin and Atlas research routes
fraware Aug 24, 2026
b9f25ae
Add Atlas collections and public graph model
fraware Aug 24, 2026
7f8190b
Export Atlas collection and graph APIs
fraware Aug 24, 2026
603b445
Test Atlas collections and graph projection
fraware Aug 24, 2026
717a4c1
Empirical v8: enforce canonical Gate B/C review matrices
fraware Aug 24, 2026
64670a3
Add full-vision software qualification workflow
fraware Aug 24, 2026
53f06cf
Run browser qualification through canonical smoke script
fraware Aug 24, 2026
6ff661a
Add multi-specimen full-vision software integration test
fraware Aug 24, 2026
38b6301
Add spatial modal sound-field model
fraware Aug 24, 2026
39532a3
Export spatial modal sound-field APIs
fraware Aug 24, 2026
43e1730
Test spatial modal sound-field interpolation
fraware Aug 24, 2026
1ec9d68
Add research-only material inference baseline
fraware Aug 24, 2026
b78dd59
Export research-only material inference APIs
fraware Aug 24, 2026
908b511
Test research-only material inference baseline
fraware Aug 24, 2026
607723d
Add testable Atlas service boundary
fraware Aug 24, 2026
9a347c5
Export Atlas service contract and reference adapter
fraware Aug 24, 2026
318ea40
Test Atlas service contract conformance
fraware Aug 24, 2026
9e4df3f
Add content-addressed artifact transport envelopes
fraware Aug 24, 2026
71f6965
Export transport envelope and migration APIs
fraware Aug 24, 2026
7f08102
Test artifact envelopes and deterministic migrations
fraware Aug 24, 2026
6f9301c
Add held-out algorithm promotion governance
fraware Aug 24, 2026
0c5407b
Export held-out promotion governance APIs
fraware Aug 24, 2026
e2cd08a
Test held-out algorithm promotion governance
fraware Aug 24, 2026
552760d
Add machine-readable software assurance claims
fraware Aug 24, 2026
85e07d8
Harden full-vision integrity and held-out qualification
fraware Aug 24, 2026
beafccc
Integrate empirical v8 authority into full-vision branch
fraware Aug 24, 2026
c2d6c1a
Harden research estimator indexed access
fraware Aug 24, 2026
3c3b4a5
Strengthen object-model algorithm provenance typing
fraware Aug 24, 2026
265a6b6
Use capture sample rate in full-system qualification
fraware Aug 24, 2026
94481c7
Bound full-system qualification runtime explicitly
fraware Aug 24, 2026
4531217
Align browser qualification with held-out calibration surface
fraware Aug 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Default ownership until subsystem maintainers are added.
* @fraware

# Empirical protocols and release authority require explicit owner review.
/docs/GATE_*.md @fraware
/docs/EMPIRICAL_CAMPAIGN.md @fraware
/packages/validation/ @fraware
/packages/dsp/ @fraware
/apps/web/src/ReleaseApp.tsx @fraware
/apps/web/src/CampaignAuthorApp.tsx @fraware
/apps/web/src/CampaignCollectionApp.tsx @fraware
13 changes: 9 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,24 @@ name: ci
on:
pull_request:
push:
branches: [main]
branches: [main, post-freeze-development]

permissions:
contents: read

concurrency:
group: ci-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
validate:
runs-on: ubuntu-latest
timeout-minutes: 30
env:
VITE_SOFTWARE_REVISION: ${{ github.sha }}
VITE_SOFTWARE_REVISION: ${{ github.event.pull_request.head.sha || github.sha }}
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v6
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38
with:
node-version: 22
- name: Enable Corepack
Expand Down
77 changes: 77 additions & 0 deletions .github/workflows/digital-twin-qualification.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: digital-twin-qualification

on:
workflow_dispatch:
pull_request:
paths:
- ".github/workflows/digital-twin-qualification.yml"
- "packages/acquisition/**"
- "packages/dsp/**"
- "packages/fingerprint/**"
- "packages/instrument/**"
- "packages/synth/**"
- "packages/validation/**"
- "apps/web/**"
- "scripts/**"
- "docs/DIGITAL_TWIN_QUALIFICATION.md"

permissions:
contents: read

concurrency:
group: digital-twin-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
qualify:
runs-on: ubuntu-24.04
timeout-minutes: 30
env:
VITE_SOFTWARE_REVISION: ${{ github.event.pull_request.head.sha || github.sha }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38
with:
node-version: 22
- name: Enable Corepack
run: corepack enable
- name: Install frozen dependencies
run: pnpm install --frozen-lockfile
- name: Typecheck
run: pnpm typecheck
- name: Test including digital twins
run: pnpm test
- name: Build
run: pnpm build
- name: Browser qualification
run: bash scripts/browser-smoke.sh
- name: Emit qualification report
run: |
cat > /tmp/everything-rings-digital-twin-qualification.json <<EOF
{
"schemaVersion": 1,
"qualificationContractVersion": "digital-twin-qualification-2",
"softwareRevision": "${VITE_SOFTWARE_REVISION}",
"workflowRunId": "github-run:${{ github.run_id }}",
"releaseGateEquivalent": false,
"physicalMicrophonePathTested": false,
"physicalObjectTested": false,
"layers": [
"frozen-dependency-install",
"typecheck",
"unit-tests",
"digital-twin-acoustic-stress",
"canonical-review-governance",
"build",
"browser-e2e"
],
"claim": "software qualification under deterministic synthetic acoustic inputs only"
}
EOF
cat /tmp/everything-rings-digital-twin-qualification.json
- name: Upload qualification report
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with:
name: digital-twin-qualification-${{ env.VITE_SOFTWARE_REVISION }}
path: /tmp/everything-rings-digital-twin-qualification.json
if-no-files-found: error
98 changes: 98 additions & 0 deletions .github/workflows/full-vision-software-qualification.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: full-vision-software-qualification

on:
pull_request:
branches:
- post-freeze-development
push:
branches:
- post-freeze-development
workflow_dispatch:

permissions:
contents: read

concurrency:
group: full-vision-software-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
VITE_SOFTWARE_REVISION: ${{ github.event.pull_request.head.sha || github.sha }}

jobs:
qualify:
runs-on: ubuntu-24.04
timeout-minutes: 30
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38
with:
node-version: 22
- name: Enable Corepack
run: corepack enable
- name: Install frozen dependencies
run: pnpm install --frozen-lockfile
- name: Typecheck all workspaces
run: pnpm typecheck
- name: Run all software and digital-twin tests
run: pnpm test
- name: Build all workspaces
run: pnpm build
- name: Browser and lifecycle qualification
run: bash scripts/browser-smoke.sh
- name: Emit machine-readable qualification report
run: |
mkdir -p qualification
cat > qualification/full-vision-software.json <<EOF
{
"qualificationContractVersion": "full-vision-software-qualification-2",
"sourceRevision": "${VITE_SOFTWARE_REVISION}",
"workflowRunId": "github-run:${{ github.run_id }}",
"qualifiedAt": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
"softwareOnly": true,
"physicalObjectTested": false,
"humanPerceptualValidationPerformed": false,
"realPlaybackTransducerValidated": false,
"releaseGateEquivalent": false,
"checks": {
"frozenDependencyInstall": "pass",
"typecheck": "pass",
"unitAndDigitalTwinTests": "pass",
"build": "pass",
"browserAndLifecycleQualification": "pass"
},
"capabilityFamilies": [
"acquisition-software-path",
"er-dsp-2",
"research-high-resolution-estimator",
"modal-reconstruction",
"playable-instrument",
"measurement-provenance",
"artifact-integrity",
"nuisance-characterization",
"acoustic-object-model",
"spatial-modal-field",
"verification-baseline",
"specimen-retrieval",
"held-out-data-bound-calibration",
"risk-coverage",
"algorithm-promotion-governance",
"research-material-inference",
"station-calibration-contract",
"atlas-registry",
"atlas-search",
"atlas-snapshots",
"atlas-collections-and-graph",
"atlas-service-conformance",
"machine-readable-assurance",
"browser-twin-lab",
"browser-atlas-lab"
]
}
EOF
- name: Upload qualification report
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with:
name: full-vision-software-qualification-${{ env.VITE_SOFTWARE_REVISION }}
path: qualification/full-vision-software.json
if-no-files-found: error
50 changes: 50 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Contributing

EVERYTHING RINGS combines a consumer acoustic instrument with empirical measurement and validation infrastructure. Contributions are welcome, but changes must preserve the distinction between product behavior, research diagnostics, and evidence-eligible empirical contracts.

## Development setup

Use the repository-declared pnpm version and frozen lockfile:

```sh
corepack enable
pnpm install --frozen-lockfile
pnpm typecheck
pnpm test
pnpm build
bash scripts/browser-smoke.sh
```

## Change classes

### Product-only changes

Consumer UI, local history, sharing, visualization, and other non-empirical features belong on the product development line. They must not be merged into a frozen empirical authority revision solely for convenience.

### Research/diagnostic changes

Alternative DSP configurations, digital twins, external datasets, similarity baselines, and future embeddings must clearly state whether their output is evidence-eligible. Custom analysis configurations must not claim an `er-dsp-*` canonical algorithm version unless a new algorithm contract is explicitly versioned.

### Empirical-contract changes

Changes to acquisition semantics, DSP parameters, evidence schemas, campaign design, gate thresholds, review-plan selection, or Release Console authority require explicit versioning and requalification before new physical evidence is accepted. Do not relax a frozen threshold or omit a failed observation to make an observed dataset pass.

## Pull requests

A pull request should state:

- the intended change class;
- which claim or product behavior changes, if any;
- whether evidence semantics change;
- tests added or updated;
- whether a prior empirical revision must be superseded or requalified.

Keep machine contracts, documentation, and advertised claims synchronized. A nearby or weaker theorem/test must not be presented as evidence for a stronger proposition.

## Privacy

Do not commit microphone PCM, private Gate B listening companions, device identifiers that should remain local, secrets, or user-private artifacts. Synthetic/digital-twin signals are acceptable when clearly labeled non-physical.

## Licensing

The repository currently has an open issue to choose an explicit project license. Until that decision is made, public repository visibility should not be interpreted as a grant of reuse rights beyond GitHub's platform terms. Contribution licensing language will be finalized with the repository license decision.
25 changes: 25 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Security and privacy reporting

EVERYTHING RINGS handles microphone access locally in the browser and intentionally separates microphone PCM from shareable evidence artifacts. Security reports that could affect microphone privacy, evidence integrity, provenance binding, artifact parsing, or release-gate correctness are treated as high priority.

## Report scope

Please report privately before public disclosure when an issue could:

- cause microphone capture to continue after stop, cancellation, page departure, or ownership transfer;
- upload, persist, or disclose raw microphone samples outside an explicitly local/private path;
- bypass evidence schema validation or revision/algorithm binding;
- forge, substitute, or mismatch Gate B listening companions or provenance digests;
- cause the Release Console to accept an incomplete or non-canonical empirical matrix;
- execute untrusted content through imported evidence, campaign, review-plan, Capsule, or future Atlas artifacts;
- compromise content-addressed measurement or derivation integrity.

## Reporting

Use GitHub's private vulnerability reporting facility for this repository when enabled. If that facility is not enabled, contact the repository owner through a private channel rather than publishing exploit details in a public issue.

Include the affected revision, browser/runtime, reproduction steps, expected and actual behavior, and whether microphone data or release evidence may have been exposed or misclassified.

## Claim discipline

A software security fix does not retroactively validate physical evidence. Changes to an empirical authority revision require the project's normal revision-binding and requalification process before new physical evidence is accepted.
4 changes: 4 additions & 0 deletions apps/web/src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import { AtlasApp } from "./AtlasApp";
import { CampaignAuthorApp } from "./CampaignAuthorApp";
import { CampaignCollectionApp } from "./CampaignCollectionApp";
import { ConsumerApp } from "./ConsumerApp";
import { LabApp } from "./LabApp";
import { PostCollectionReviewApp } from "./PostCollectionReviewApp";
import { ReleaseApp } from "./ReleaseApp";
import { TwinLabApp } from "./TwinLabApp";
import "./postCollectionReview.css";

export function App() {
Expand All @@ -13,6 +15,8 @@ export function App() {
if (params.get("gate-c") === "1") return <PostCollectionReviewApp mode="gate-c" />;
if (params.get("campaign-author") === "1") return <CampaignAuthorApp />;
if (params.get("campaign") === "1") return <CampaignCollectionApp />;
if (params.get("twin") === "1") return <TwinLabApp />;
if (params.get("atlas") === "1") return <AtlasApp />;
if (params.get("lab") === "1") return <LabApp />;
return <ConsumerApp />;
}
Loading
Loading