Skip to content

Integration harness: profiles, merge hygiene, and granular re-anchor - #70

Merged
hyperpolymath merged 3 commits into
mainfrom
arena/01a0daa1-metamanifold-webui
Sep 25, 2026
Merged

hyperpolymath merged 3 commits into
mainfrom
arena/01a0daa1-metamanifold-webui

Conversation

@arena-ai-coding-agent

Copy link
Copy Markdown

Summary

Makes merging this fork's work into upstream (JoshuaJewell/MetaManifold-WebUI) tractable, and keeps both sides runnable with zero extra effort. The two commits are tooling, config, and docs only — no application/analysis logic changes.

The fork and upstream share only the root commit and then developed in parallel, so a one-shot git merge surfaces 159 conflicting files at once. This PR removes that wall three ways:

  1. Merge hygiene — lockfiles and build output can no longer produce line-conflict markers; they resolve by regeneration (.gitattributes, just merge-drivers).
  2. Profiles & components — the fork's work is a registry the maintainer can adopt incrementally, from pure upstream (base, the default) to partially transitional to everything (full), with per-component toggles and automatic conflict triage (config/integration.toml, scripts/integrate.sh, just integrate …).
  3. Granular re-anchor — replay the fork's commits one-by-one onto upstream. Measured: the whole fork re-anchors with 3 decisions and 0 residual conflicts, producing ~206 reviewable commits that also share a real base with upstream (scripts/reanchor.sh, just reanchor).

It also makes the environment turnkey: mise.toml stays the single source of truth and just bootstrap / setup-full / heal / doctor now cover the whole toolchain and the R lane (renv-restore), so a fresh clone always runs.

Base check

  • Base is hyperpolymath/MetaManifold-WebUI:main (engineering/tooling work lands on this fork per CONTRIBUTING.md)

Changes

  • .gitattributes — lockfiles / build output marked merge: unset, linguist-generated (never hand-merge a generated file).
  • config/integration.toml + scripts/integrate.sh + just integrate … — profiles (base/transitional/full), per-component augment/suspend, conflict triage (auto / component / human), verify.
  • scripts/reanchor.sh + just reanchor{,-plan,-manual} — granular re-anchor onto upstream (isolated worktree; never touches the current branch).
  • Justfile — doctor (full toolchain report), heal (repair), merge-drivers (opt-in lockfile auto-resolve), renv-restore; bootstrap/setup-full now cover the R lane and merge drivers.
  • docs/integration/ — README.md (guide), conflict-map-2026-09-25.md (measured), HANDOFF-granular-reanchor.md (brief to land it).
  • .gitignore (track docs/integration/), CONTRIBUTING.md (pointer).

Engineering checklist

Required

  • bun run check — N/A: no frontend/ changes (frontend untouched).
  • scripts/check-spdx.sh / scripts/check-format.sh pass (check-lint.sh N/A: no TS changes).
  • Conventional commit subjects (feat(integration):, feat(reanchor):).
  • New source files carry correct SPDX headers (MPL-2.0 code/scripts, CC-BY-SA-4.0 docs).
  • No secrets, .env, or sequencing data.
  • No application-logic changes hidden inside this tooling PR.

As applicable

  • CHANGELOG.md — tooling/docs PR; changelog entry optional.
  • docs/reproducibility.md — environment unchanged (mise.toml untouched; only additive Justfile lanes).

Testing

  • reanchor.sh validated end-to-end (plan + run): 206 granular commits, 0 residual conflicts, 3 logged decisions (all "respect upstream's deletion of pipelinesteps.txt"); runs in an isolated worktree, auto-cleans, branch untouched.
  • integrate.sh validated: status / profiles / plan / triage / enable / disable / verify.
  • Justfile structurally validated: 64 recipes, no parse errors, all dependencies resolve.
  • Hygiene gates green (SPDX 289 files, format 337 files).
  • Mergeable into main with no file overlap against main's newer commits.

hyperpolymath and others added 2 commits September 25, 2026 22:28
The fork (hyperpolymath) and upstream (JoshuaJewell) share no git
ancestor, so a naive merge three-way-merges nothing and conflicts on
all 159 shared-but-different files (measured; see
docs/integration/conflict-map-2026-09-25.md). This makes the
maintainer's integration tractable and keeps both sides runnable with
zero extra effort.

- .gitattributes: stop git line-merging lockfiles/build output
  (merge: unset) so they resolve by regeneration, never by editing.
- config/integration.toml + scripts/integrate.sh + `just integrate`:
  profiles (base -> transitional -> full) and per-component toggles,
  so the maintainer adopts work incrementally and learns to trust it.
  Default is `base` (pure upstream); nothing risk-bearing is active,
  so operations are never compromised.
- Justfile: doctor (full toolchain report), heal (repair),
  merge-drivers (opt-in lockfile auto-resolve), renv-restore, and
  suspend/augment component toggles. bootstrap/setup-full now cover
  the whole toolchain + R lane, so a fresh clone always runs.
- docs/integration/: the guide and the measured conflict map.

All new paths are fork-only or brand new, so this aid introduces no
conflicts of its own. Hygiene gates (spdx, format) green.

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
With full history the fork and upstream share the root commit (7884553)
and diverged at the second commit, developing in parallel (fork 221,
upstream 89). The earlier "unrelated histories" note was a depth-1
shallow-clone artifact; the 159-conflict one-shot merge is real, but the
fix is a rebase, not unrelated-history surgery.

- scripts/reanchor.sh + just reanchor{,-plan,-manual}: replay the fork's
  commits one-by-one onto upstream (git auto-applies the clean ones),
  turning the 159-file wall into per-commit decisions. Measured: 206
  granular commits, 0 residual conflicts, 3 logged decisions (all
  "respect upstream's deletion of pipelinesteps.txt"). Runs in an
  isolated worktree; never touches the current branch.
- docs: correct the premise in README/conflict-map; add the re-anchor
  layer and a HANDOFF brief to land it.
- CONTRIBUTING: point at reanchor-plan/reanchor and the handoff.

The re-anchored branch also shares a real base with upstream, so future
upstream changes merge cleanly too.

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

coderabbitai Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: d79e7e85-c8d6-4737-9f69-349864714723

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

@hyperpolymath
hyperpolymath merged commit 7066730 into main Sep 25, 2026
3 of 5 checks passed
@hyperpolymath
hyperpolymath deleted the arena/01a0daa1-metamanifold-webui branch September 25, 2026 22:47
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