wip(repoint): app runs on burrow-engine only (functional core)#288
Draft
caezium wants to merge 3 commits into
Draft
wip(repoint): app runs on burrow-engine only (functional core)#288caezium wants to merge 3 commits into
caezium wants to merge 3 commits into
Conversation
… reducer FUNCTIONAL CORE of the full repoint (GUI shells burrow-engine directly, dropping the burrow-cli conductor + burrow-digger engine). LOCALLY BUILDABLE via build.sh with BURROW_ENGINE_SRC pointed at a burrow-engine checkout; NOT yet wired into the release pipeline or submodules (deliberate follow-up after local validation). - macos/scripts/bundle-burrow.sh: cargo-builds the ONE burrow-engine binary universal (arm64+x86_64 lipo) → Resources/burrow (kept the name so BurrowConductor.executableURL is unchanged). Replaces the digger Go build. - macos/project.yml: dropped the 'Bundle burrow (conductor)' phase; the 'Bundle burrow-engine' phase now cargo-builds the engine from BURROW_ENGINE_SRC. fclones phase kept (dupes still shells it via $BURROW_FCLONES). - MoleCLI.bundledExecutable: Resources/engine/mole → Resources/burrow. - BurrowStreamReport.swift (new): reduces the engine's clean/optimize --stream NDJSON (removed/would_remove/failed/protected/task/would_run + done) into the same TaskRunReport the views render; OperationFlow.moleStream now uses it instead of the human-text parseTaskReport. Every envelope-based pane (analyze/status/net/orphans/ photos/dupes/history/uninstall) is UNCHANGED — the engine emits the same envelope. KNOWN REMAINING (needs your build+test loop): 1. mo→engine argv inversion for the DIRECT/ELEVATED .mo path: mo 'clean' = live but engine 'clean' = dry-run (+--apply). streamArgv handles it for the streaming path (default), but elevated/streaming-off clean/optimize/uninstall/purge/installer via resolveMo pass mo-style argv → wrong semantics. Needs a MoActions-level translation. 2. Submodules: swap the 3 (.gitmodules: burrow-cli x2 + burrow-digger) for a single caezium/burrow-engine submodule (macos + windows). 3. release.yml + windows-release.yml: build burrow-engine (ENGINE_PAT auth already present), bundle as Resources/burrow, drop the digger/conductor fetch + verify + sign. 4. analyze --progress streaming is already OFF by default (uses capture) — no change.
…ract
The one CI failure: OperationFlowTests fed the OLD digger human-text ('Potential
space: …') to moleStream's reducer, which now consumes the engine's NDJSON. Converted
cannedClean to the equivalent clean --stream PREVIEW NDJSON (would_remove + a dry-run
done with would_free_human) — it reduces to the same summary, so the existing
assertions (space '383.8MB', groups 1, 'Cleaned 383.8MB · 372 items') still hold.
Added BurrowStreamReportTests locking the contract directly: clean preview ('Cleaned'),
clean live ('Freed', freed_human → freeChange), optimize task events, garbage-line
tolerance, and hudLine label extraction.
…oleStream The cleanOp() fixture uses the old parseTaskReport (text) reducer, while only the moleStream op uses the new NDJSON BurrowStreamReport reducer. Reverted cannedClean to its text form (so the cleanOp-based gate tests parse '383.8MB' again) and added a separate cannedCleanStream (NDJSON) used only by the moleStream final-detail test.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft — needs local build + hand-test. The functional core of the full repoint: the GUI shells the single
burrow-enginebinary (bundled asResources/burrow, does all work + emits the envelope) instead of the burrow-cli conductor + burrow-digger engine.Done (locally buildable via
macos/scripts/build.shwithBURROW_ENGINE_SRC=<burrow-engine checkout>):bundle-burrow.shcargo-builds burrow-engine universal → Resources/burrow.project.yml: one engine bundle phase (dropped the conductor phase); fclones kept.MoleCLI.bundledExecutable→ Resources/burrow.BurrowStreamReport.swift: reduces clean/optimize--streamNDJSON → the existing TaskRunReport;OperationFlow.moleStreamuses it. Every envelope pane (analyze/status/net/orphans/photos/dupes/history/uninstall) is unchanged.Remaining (needs your build+test loop):
.mopath (moclean=live vs engineclean=dry-run+--apply) — streaming path is handled; elevated/streaming-off isn't.caezium/burrow-engine.release.yml+windows-release.yml: build+bundle burrow-engine (ENGINE_PAT already wired), drop digger/conductor fetch/verify/sign.Engine side is 100% done (52 PRs, 234 tests, streaming + preview streaming, CI-green ×3).