Skip to content

fix: restore what the last four squash merges overwrote (main is red) - #212

Closed
hyperpolymath wants to merge 1 commit into
mainfrom
arena/4439450c-metamanifold-webui
Closed

hyperpolymath wants to merge 1 commit into
mainfrom
arena/4439450c-metamanifold-webui

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Why

main is red, and not from a single mistake. Four PRs (#204 multinomial, #206
ANCOM-BC/ALDEx2/Songbird, #196 two-part NB, #201 Evidence Mode) were each
squashed onto a main that had moved on, and each squash reverted part of the PR
merged before it. The result:

  • bun run build → tsc && vite build fails with 26 type errors.
  • src/analysis/differential.jl is missing two of its three method families.
  • src/core/doi.jl declares module DOI twice, so it cannot load at all.
  • src/MetaManifold.jl includes clade_cumulus.jl twice and never includes
    analysis/compositional.jl, which Differential imports from.

This PR restores the union, per file, from the commit each feature actually
landed in — I did not re-implement anything that merely went missing.

What was restored

File Restored
src/analysis/differential.jl ANCOM-BC / ALDEx2 / Songbird dispatch (#206) and the multinomial / Dirichlet-multinomial dispatch (#204), both deleted by #196. METHODS is now the union of the nine implemented methods.
src/core/doi.jl the duplicate module DOI and the unbalanced end
src/MetaManifold.jl one clade_cumulus.jl include; analysis/compositional.jl included before Differential, which imports it
test/runtests.jl dropped the duplicate test_clade_cumulus.jl; re-registered test_evidence.jl and test_evidence_routes.jl, which were in the tree but never run
frontend/src/views/StudyView.tsx CladeCumulusPanel imported from two paths (aliased the study-level one)
frontend/src/api/client.ts three Cladistics* types used but never imported
frontend/src/components/differentialTable.ts the per-method configLine cases, and the Bayesian-only bayesian_alpha guard
frontend/src/components/PipelineStages.tsx the method enum now offers all nine methods instead of four
frontend/src/api/types.ts DifferentialMethod union, mn_*/max_iter/tolerance/max_seconds config fields, diagnostics.model
README.md, config/defaults/pipeline.yml the Evidence Mode section (#201) and the per-method documentation (#204, #206)

Two tests asserted contradictory method lists — one demanded four methods,
one demanded five different ones, for the same config key. Both now assert the
union, which is what the backend actually accepts.

Verification

  • npx tsc --noEmit -p . — clean (was 26 errors).
  • npx vite build — succeeds.
  • All 11 frontend test files pass: 238 assertions (was 8 failing, and one
    file that could not typecheck).
  • Every touched Julia file parses; no duplicate includes, modules, route
    registrations or UNIT_FILES entries remain anywhere in the tree.

The Julia suite has not been run here — there is no Julia or R in this
environment. That is the one thing still to confirm, and CI is where it has to
happen. Two areas are most likely to need a follow-up: the numeric expectations
in test_evidence*.jl (written without a Julia interpreter) and the R-backed
method branches, which need R packages installed.

Refs #7.

PRs #204, #206, #196 and #201 each rebased onto an older main and were then
squashed onto a newer one, so each squash silently reverted part of the PR
before it. main does not build: the frontend typecheck fails 26 times, and
src/analysis/differential.jl lost two of its three method families.

Restored, per file, from the commit each feature actually landed in:

- src/analysis/differential.jl: the ANCOM-BC / ALDEx2 / Songbird dispatch
  (#206) and the multinomial / Dirichlet-multinomial dispatch (#204), both
  deleted by #196. METHODS is the union of all nine implemented methods. The
  two-part NB branch (#196) is untouched.
- src/core/doi.jl: `module DOI` was declared twice, leaving an unbalanced end.
- src/MetaManifold.jl: analysis/clade_cumulus.jl was included twice, and
  analysis/compositional.jl was never included although Differential uses it.
- test/runtests.jl: the clade_cumulus unit file was registered twice and the
  two evidence files (#201) had lost their registration, so CI never ran them.
- frontend: StudyView imported CladeCumulusPanel from two paths; api/client.ts
  used three Cladistics types it never imported; differentialTable.configLine
  lost its per-method cases; PipelineStages offered four of the nine methods.
  Two tests also asserted contradictory method lists; both now assert the union.
- README.md and config/defaults/pipeline.yml: restored the Evidence Mode
  section (#201) and the per-method documentation (#204, #206).

Verified here: tsc --noEmit clean, vite build succeeds, all 11 frontend test
files pass (238 assertions), every touched Julia file parses. The Julia suite
still has to run in CI — this commit does not claim it passes.

Refs #7.

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
@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 26 seconds.

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: d80f62a9-ec55-4499-a357-2d0e0f5bd54c
📥 Commits

Reviewing files that changed from the base of the PR and between c06c0d4 and eaa3879.

📒 Files selected for processing: 17
  • README.md
  • config/defaults/pipeline.yml
  • frontend/src/api/client.ts
  • frontend/src/api/types.ts
  • frontend/src/components/DifferentialPanel.tsx
  • frontend/src/components/PipelineStages.test.ts
  • frontend/src/components/PipelineStages.tsx
  • frontend/src/components/differentialTable.test.ts
  • frontend/src/components/differentialTable.ts
  • frontend/src/views/StudyView.tsx
  • src/MetaManifold.jl
  • src/analysis/differential.jl
  • src/core/doi.jl
  • src/server/routes/analysis.jl
  • src/server/routes/config.jl
  • test/runtests.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.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-23T00:19:11.367168Z
We couldn’t complete this review. Comment @codex review to try again.
eaa3879 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@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.

@sonarqubecloud

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath enabled auto-merge (squash) October 23, 2026 00:49

Copy link
Copy Markdown
Owner Author

Superseded by work that landed on main while this PR was open.

Every repair in this branch now exists on main independently:

Repair Landed via
Load analysis/compositional.jl, one clade_cumulus.jl include #216
Differential.METHODS restored to the 9-tuple, ANCOM-BC/ALDEx2/Songbird dispatch and exports #211
config.jl compositional = m in Differential.COMPOSITIONAL_METHODS, dotted-key settings validation #211 / #216
Frontend type-check (DifferentialPanel, CladeCumulusPanel, client.ts, StudyView), 9-method enums #208 / #211
Evidence test registration, duplicate module DOI, README ### Evidence Mode section #209
High-precision and numeric-policy fixtures #213
docs/statistics/zero-handling.md, bench/null_calibration #214

Verified on main at 7bb716da: tsc --noEmit clean, all 11 frontend test files green (238 assertions), src/analysis/differential.jl defines every function this branch does (plus _calibration_caveat and the compositional limits), METHODS/COMPOSITIONAL_METHODS/DM_METHODS all match the tests, and src/MetaManifold.jl includes each analysis file once.

Merging this branch would now revert newer main content (the dispersion calibration caveat, the §null-calibration docs, and the zero-handling rewrite), so it is closed rather than merged.

Remaining main CI failure is unrelated to this PR: test/unit/test_validated_statistics.jl:180 gets a 500 from /studies/{study}/runs/{run}/statistics/summaries (DuckDB exact-count aggregation). Fixed separately by fix(stats): aggregate DuckDB counts exactly.

auto-merge was automatically disabled October 23, 2026 01:07

Pull request was closed

hyperpolymath added a commit that referenced this pull request Oct 23, 2026
#220)

Removes the React Evidence surface and keeps the Evidence API, per the
owner's ruling on #7: the semantics belong to the theory track, and the
browser implementation is being rewritten for the Vue/Marid client, so
the React one should not sit in the tree in the meantime.

## What goes

| Path | Lines |
| --- | --- |
| `frontend/src/evidence/` (10 files) | 2401 |
| `frontend/src/components/EvidenceModeToggle.tsx` | 21 |
| `api.evidence` namespace in `frontend/src/api/client.ts` | 31 |
| `evidence` tab in `RunView.tsx` | — |

## What stays

`src/core/evidence.jl`, `src/server/routes/evidence.jl`,
`test/unit/test_evidence.jl`, `test/unit/test_evidence_routes.jl`. The
claim schema (scope 1–50 values ≤200 chars, text ≤2000, ≤5 warrants, ≤20
caveats, blank status → `draft`, `supported` requires ≥1 of
measurement/citation/inference), the echo verdicts, containment labels
and residual arithmetic are untouched and still covered by the Julia
suite.

## Side effect on #7's actual complaint

`EvidenceModeToggle` gated the placement `CladeCumulusPanel` in the
Trees view — "Evidence Mode currently gates Advanced and CladeCumulus".
With the toggle gone that panel renders unconditionally, so the gating
the issue describes no longer exists.

## Contract for the Marid client

The README `### Evidence Mode (API)` section now documents the endpoints
and the server-enforced validation rules instead of the three removed
views.

## Verification

- `tsc --noEmit -p .` — clean
- 10 remaining frontend test files — 169 assertions, 0 failures
- `vite build` — succeeds

The deleted `evidence.test.ts` covered the UI claim helpers; the rules
it mirrored stay tested on the server. This branch is also rebased onto
current `main`, and replaces #212 (closed as superseded — every repair
it carried landed on `main` via #208–#216).

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
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