Skip to content

Null-calibration bench + small-sample caveat (#193), with cross-PR integration repair - #214

Merged
hyperpolymath merged 5 commits into
mainfrom
arena/dc1d6938-metamanifold-webui
Oct 23, 2026
Merged

hyperpolymath merged 5 commits into
mainfrom
arena/dc1d6938-metamanifold-webui

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Why

This branch carries the fork-side resolution of #193 and, because the squash merges of #196–#207 left main unable to build the frontend or load the Julia package, the integration repair needed to land anything at all. A file-by-file audit (every squash commit matched its PR-head tree exactly) traced the breakage to PR-branch conflict resolutions overwriting each other:

What

#193 (ad7f5f2): bench/null_calibration/ extracts the production NB R block and measures Wald/LRT null rejection (WebR + genuine MASS 7.3-65 reduced run executed; full grid + wald_trend/glmGamPoi QL/edgeR committed unrun — REPORT.md bounds exactly what ran). nb_glm results carry diagnostics.calibration_caveat (every ml result, scaled by the smaller group; glmGamPoi through 12/group), surfaced in the panel and CSV header. No p-value or default changes.

Merge (no-ff, by request): current main merged in; conflicts resolved onto main-side structure with the #193 changes reapplied.

Integration repair (1335ccd): nine-method registry/config/dispatch union, compositional + cladistics/clade-cumulus routes restored, frontend type/config/CSV unions, panel import disambiguated, stale test pins updated to the union.

Verification

  • Frontend: tsc clean, bun test 87/87, production build passes.
  • Julia: no runtime in the authoring sandbox — CI is the evidence; this PR stays open until it is green.

Refs #193 (fork-side bench + warning per maintainer decision; upstream default remains the upstream maintainer's call — draft in bench/null_calibration/UPSTREAM_DRAFT.md).

hyperpolymath and others added 3 commits October 23, 2026 00:13
#193)

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
…nifold-webui

# Conflicts:
#	README.md
#	config/defaults/pipeline.yml
#	frontend/src/api/types.ts
#	frontend/src/components/PipelineStages.tsx
#	frontend/src/components/differentialTable.ts
#	src/analysis/differential.jl

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
The squash merges of #196-#207 left main unable to build: PR-branch
conflict resolutions overwrote each other's differential method
registry, dropped the compositional include and cladistics routes,
duplicated the clade-cumulus include and frontend panel import, and
corrupted _differential_settings_error.

- MetaManifold.jl: restore analysis/compositional.jl, include
  clade_cumulus.jl once; server.jl includes routes/cladistics.jl and
  routes/clade_cumulus.jl.
- differential.jl: rebuild the 9-method registry and DifferentialConfig
  union (mn/dm optimiser + mc_samples), restore ancom_bc/aldex2/
  songbird and multinomial dispatch branches alongside the two-part
  models; routes build the union config; config validation regains
  the mn/dm cross-key rules.
- Frontend: union DifferentialMethod/config/diagnostics types, restore
  cladistics client imports, alias the cladistics panel so it no
  longer collides with the clade-cumulus panel, restore per-method
  CSV config lines and PipelineStages entries for all nine methods.
- Tests that pinned pre-union method lists and the 11-column CSV are
  updated to the union reality.

Frontend: tsc clean, bun test 87/87, production build passes.
Julia: exercised by CI (no Julia runtime in the authoring sandbox).

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@coderabbitai

coderabbitai Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 39 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: ed177c7d-eb64-445c-9561-037e4f0b0a0a
📥 Commits

Reviewing files that changed from the base of the PR and between 8a37159 and b7539f9.

⛔ Files ignored due to path filters: 3
  • bench/null_calibration/results/calibration_summary.csv is excluded by !**/*.csv
  • bench/null_calibration/results/power_summary.csv is excluded by !**/*.csv
  • bench/null_calibration/results/provenance_summary.csv is excluded by !**/*.csv
📒 Files selected for processing: 17
  • README.md
  • bench/null_calibration/.gitignore
  • bench/null_calibration/README.md
  • bench/null_calibration/REPORT.md
  • bench/null_calibration/UPSTREAM_DRAFT.md
  • bench/null_calibration/calibration.R
  • bench/null_calibration/summarise.R
  • bench/null_calibration/webr_run.mjs
  • config/defaults/pipeline.yml
  • frontend/src/api/types.ts
  • frontend/src/components/DifferentialPanel.tsx
  • frontend/src/components/PipelineStages.tsx
  • frontend/src/components/differentialTable.test.ts
  • frontend/src/components/differentialTable.ts
  • src/analysis/differential.jl
  • src/server/server.jl
  • test/unit/test_differential.jl
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

…nifold-webui

# Conflicts:
#	config/defaults/pipeline.yml
#	frontend/src/api/types.ts
#	frontend/src/components/PipelineStages.test.ts
#	frontend/src/components/PipelineStages.tsx
#	frontend/src/components/differentialTable.ts
#	frontend/src/views/StudyView.tsx
#	src/analysis/differential.jl
#	src/server/routes/analysis.jl
#	test/unit/test_differential.jl

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Fork governance

Lane Status Run
DEED syntax (repo deed) 🟢 conformant run 39880010320
Hypatia verdict grid purple (job: success) same run

Hypatia grid purple

🟣 critical · commit b7539f90ae3a · run 39880010320

Reporter Status Critical High Medium Minor Since previous revision
Hypatia scan 🟣 critical 47 63 31 0 ↔ unchanged
panic-attack assail 🔴 high 0 6 13 0 ↓ regressed (1 more blocking)
pons asinorum 🟡 medium 0 0 10 0 ↔ unchanged
rhodibot (RSR compliance) 🟠 indeterminate 0 0 0 0 — indeterminate
panicbot (panic recovery, error handling) 🟠 indeterminate 0 0 0 0 — indeterminate
echidnabot (formal verification: proofs/) 🟠 indeterminate 0 0 0 0 — indeterminate
seambot (integration health: API routes) 🟠 indeterminate 0 0 0 0 — indeterminate
finishingbot (release readiness) 🟠 indeterminate 0 0 0 0 — indeterminate
accessibilitybot (WCAG on the React UI) 🟠 indeterminate 0 0 0 0 — indeterminate
glambot (presentation quality) 🟠 indeterminate 0 0 0 0 — indeterminate
cipherbot ⚪ not applicable 0 0 0 0 ↔ unchanged
sustainabot ⚪ not applicable 0 0 0 0 ↔ unchanged
Hypatia scan: 141 finding(s)
  • critical cicd_rules/banned_language_file — frontend/src/views/run/parseFilterYaml.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/figure/encode.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/figure/charts.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/figure/export.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/figure/figure.test.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/figure/legend.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/figure/types.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/utils/download.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/utils/text.test.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/utils/timeago.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/utils/text.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/hooks/useUnsavedGuard.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/hooks/useApi.test.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/hooks/useApi.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/hooks/useAnalysis.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/hooks/useSSE.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/hooks/useTabParam.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/hooks/useNavRefresh.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/hooks/useJobEvents.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/about.ts — TypeScript file detected -- banned language
  • 121 more; see the structured report in the artifact.
panic-attack assail: 19 finding(s)
  • high DynamicCodeExecution — src/pipeline/dada2/context.jl — eval/Meta.parse in src/pipeline/dada2/context.jl
  • high DynamicCodeExecution — src/analysis/analysis.jl — eval/Meta.parse in src/analysis/analysis.jl
  • high DynamicCodeExecution — src/analysis/differential.jl — eval/Meta.parse in src/analysis/differential.jl
  • high DynamicCodeExecution — src/core/provenance.jl — eval/Meta.parse in src/core/provenance.jl
  • high DynamicCodeExecution — scripts/check-julia-syntax.jl — eval/Meta.parse in scripts/check-julia-syntax.jl
  • high DynamicCodeExecution — test/unit/test_permanova.jl — eval/Meta.parse in test/unit/test_permanova.jl
  • medium UnsafeFFI — src/core/memory_probe.jl — 3 ccall/FFI calls in src/core/memory_probe.jl
  • medium InputBoundary — src/server/routes/runs.jl — 2 JSON3.read/JSON.parse call(s) with 0 try block(s) in src/server/routes/runs.jl — these throw on malformed input; wrap in try/catch
  • medium InputBoundary — src/server/routes/composition.jl — 6 JSON3.read/JSON.parse call(s) with 2 try block(s) in src/server/routes/composition.jl — these throw on malformed input; wrap in try/catch
  • medium InputBoundary — src/server/routes/studies.jl — 4 JSON3.read/JSON.parse call(s) with 2 try block(s) in src/server/routes/studies.jl — these throw on malformed input; wrap in try/catch
  • medium InputBoundary — src/server/routes/analysis.jl — 9 JSON3.read/JSON.parse call(s) with 3 try block(s) in src/server/routes/analysis.jl — these throw on malformed input; wrap in try/catch
  • medium UnsafeFFI — install.jl — 1 ccall/FFI calls in install.jl
  • medium ProofDrift — test/unit/test_occupancy_grade.jl — 2 `@test x isa Y` assertion(s) with no value check — type-only tests may substitute for an unwritten formal theorem in test/unit/test_occupancy_grade.jl
  • medium ProofDrift — test/unit/test_evidence.jl — 1 `@test x isa Y` assertion(s) with no value check — type-only tests may substitute for an unwritten formal theorem in test/unit/test_evidence.jl
  • medium InputBoundary — bench/advanced_zero_handling/benchmark.jl — 1 JSON3.read/JSON.parse call(s) with 0 try block(s) in bench/advanced_zero_handling/benchmark.jl — these throw on malformed input; wrap in try/catch
  • medium InputBoundary — frontend/src/figure/charts.ts — 1 JSON.parse call(s) with 0 try block(s) in frontend/src/figure/charts.ts — JSON.parse throws SyntaxError on malformed input; wrap in try-catch
  • medium InputBoundary — frontend/src/tree/model.ts — 1 JSON.parse call(s) with 0 try block(s) in frontend/src/tree/model.ts — JSON.parse throws SyntaxError on malformed input; wrap in try-catch
  • medium InputBoundary — frontend/src/api/events.ts — 2 JSON.parse call(s) with 0 try block(s) in frontend/src/api/events.ts — JSON.parse throws SyntaxError on malformed input; wrap in try-catch
  • medium InputBoundary — frontend/src/components/alphaMetrics.tsx — 1 JSON.parse call(s) with 0 try block(s) in frontend/src/components/alphaMetrics.tsx — JSON.parse throws SyntaxError on malformed input; wrap in try-catch
pons asinorum: 10 finding(s)
  • medium string-concat-in-loop — ./frontend/src/tree/model.ts:122 — string built by repeated concatenation in a loop (T0, HEURISTIC)
  • medium string-concat-in-loop — ./frontend/src/tree/model.ts:118 — string built by repeated concatenation in a loop (T0, HEURISTIC)
  • medium string-concat-in-loop — ./frontend/src/tree/TreeShapes.tsx:69 — string built by repeated concatenation in a loop (T0, HEURISTIC)
  • medium string-concat-in-loop — ./frontend/src/tree/TreeShapes.tsx:66 — string built by repeated concatenation in a loop (T0, HEURISTIC)
  • medium string-concat-in-loop — ./frontend/src/tree/TreeShapes.tsx:61 — string built by repeated concatenation in a loop (T0, HEURISTIC)
  • medium string-concat-in-loop — ./frontend/src/tree/TreeShapes.tsx:53 — string built by repeated concatenation in a loop (T0, HEURISTIC)
  • medium string-concat-in-loop — ./frontend/src/tree/TreeShapes.tsx:43 — string built by repeated concatenation in a loop (T0, HEURISTIC)
  • medium string-concat-in-loop — ./frontend/src/tree/TreeShapes.tsx:42 — string built by repeated concatenation in a loop (T0, HEURISTIC)
  • medium unreachable-after-jump — ./frontend/src/figure/PaneEditor.tsx:45 — statement is unreachable after an unconditional jump (T0, HEURISTIC)
  • medium unreachable-after-jump — ./frontend/src/components/PublicationTablesPanel.tsx:208 — statement is unreachable after an unconditional jump (T0, HEURISTIC)
rhodibot (RSR compliance): not_run — enrolled, but no report-back was received
  • 🟠 indeterminate: enrolled, but no report-back was received
panicbot (panic recovery, error handling): not_run — enrolled, but no report-back was received
  • 🟠 indeterminate: enrolled, but no report-back was received
echidnabot (formal verification: proofs/): not_run — enrolled, but no report-back was received
  • 🟠 indeterminate: enrolled, but no report-back was received
seambot (integration health: API routes): not_run — enrolled, but no report-back was received
  • 🟠 indeterminate: enrolled, but no report-back was received
finishingbot (release readiness): not_run — enrolled, but no report-back was received
  • 🟠 indeterminate: enrolled, but no report-back was received
accessibilitybot (WCAG on the React UI): not_run — enrolled, but no report-back was received
  • 🟠 indeterminate: enrolled, but no report-back was received
glambot (presentation quality): not_run — enrolled, but no report-back was received
  • 🟠 indeterminate: enrolled, but no report-back was received
cipherbot: not_applicable — no cryptography is implemented in this repository
  • ⚪ not applicable: no cryptography is implemented in this repository
sustainabot: not_applicable — fleet adapter slot reserved; no adapter exists yet (gitbot-fleet README)
  • ⚪ not applicable: fleet adapter slot reserved; no adapter exists yet (gitbot-fleet README)

Scope: static findings reported by each row's tool at the named commit. Purple, red, yellow and blue grade the worst finding present; orange is evidence missing, malformed or a scanner that did not run; grey is an explicit scope exclusion with its reason. No row is a security certification. report.json, badge.json and the raw findings are in the verdict-grid artifact on the linked run.

…nifold-webui

# Conflicts:
#	README.md

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
@hyperpolymath
hyperpolymath merged commit 50a0e7f into main Oct 23, 2026
13 of 14 checks passed
@hyperpolymath
hyperpolymath deleted the arena/dc1d6938-metamanifold-webui branch October 23, 2026 00:45
@sonarqubecloud

Copy link
Copy Markdown

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.

1 participant