Salvage audit · Phase 1 · 2026-09-08

VentureRaven Salvage Audit

What does VentureRaven know that CodeRaven doesn't, and what is lost if the repo is archived? Five things, four of them now ported and building.

47Commits audited
5VR-forward changes
4Ported
33No salvage value
1Decision needed
The answer

VentureRaven produced 47 commits since the fork. Thirty-three carry no salvage value, nine were fixes that originated in CodeRaven and were ported into VentureRaven, and thirteen are venture content the merge plan already schedules into Phases 4–6. That leaves five genuine VentureRaven-forward changes, four of which were bugs CodeRaven still had.

The plan's earlier reading — that the salvage list was "trending toward empty" — was wrong. It was right about the tooling commits and wrong about the ideation fixes, which nothing had checked until this audit.

Method

The fork baseline is 0bd4fc4 (2026-06-25, "chore: fork Code Raven as VentureRaven"). Any VentureRaven file whose history begins at that commit and stops there is a fork-time copy of a CodeRaven file, so CodeRaven's version wins by definition. Only commits in 0bd4fc4..HEAD are audit surface.

That rule discards 44 VentureRaven-only files — 15,473 lines covering ToDos, MenuBar, QuickChecks and the pre-Wave-2 FeatureLab — without inspection, because CodeRaven deleted or rewrote all of them after the fork.

Port — VentureRaven-forward, absent from CodeRaven

ChangeSourceStatus
1 Deep-dive session-leak guard. precomputeForUpcomingWaits passed a previous session's deepDiveData into the next session's wait content. CodeRaven had the sibling guards at lines 331, 382, 1896 and 2090 but not this one. IdeationStudioContainerView.swift:399 Ported
2 Retired phase in the full-route stepper. CodeRaven's own comment says "Wave 2: Interview phase retired from the new-session flow," yet trackerPhases(for: .full) still advertised it, so stepping back rendered the vestigial IdeationInterviewView — card questions the user was never asked. faa37b2 Ported
3 Duplicate route picker. The welcome screen's route cards navigated to the Route Selection screen, which is the same chooser again. Full Exploration collects nothing there, so it now starts discovery directly. Topic and App still use the picker, where they gather their input. d93f75f Ported
4 Route-selection layout. Centering with Spacer() top and bottom inside a maxHeight: .infinity frame mis-centered the stack and pinned the Begin button below the fold on shorter windows, where it clipped rather than scrolling. Now top-anchored inside a ScrollView. d93f75f Ported
5 RegenerateButton. A small always-available control to kill an in-flight generation and retry a step without restarting the phase and discarding answers. CodeRaven has no regenerate affordance in any Beat view. 50593bc Decision

Items 1–4 are in CodeRaven now and the project builds (** BUILD SUCCEEDED **, Debug, Code Raven scheme).

Decision needed

Your call

Port RegenerateButton, or drop it?

It is a feature rather than a bug fix, and it is not venture-specific — its own docstring describes recovering from "a hung, empty, or unsatisfying generation." Porting it means wiring the control into the Beat views and adding cancel-and-retry paths to PulseCheckService, ReflectionAIService, StudioWaitOverlay and WaitContentModifier.

That is real scope the merge plan does not currently carry, so it is flagged rather than done. If it is worth porting, it belongs as its own task in Phase 5.

Already present in CodeRaven — discard

Nine commits. Several say so in their own commit bodies.

CommitSubjectEvidence
c309f2etrue file lines and real plan paths Body: "Two silent-failure bugs, both fixed in CodeRaven and never ported." This resolves the plan's Silent Task-Classification question — the bugs originated in CodeRaven.
1806723pressure-test survives navigation Body: "Ports CodeRaven's pressure-test survive-navigation refactor."
7833639cross-session state-scoping fixes Named as a port from CodeRaven in its subject.
4836fearoot session signals at the project CodeRaven bcea24c1, identical subject.
90c70a0retire /vr-checkin CodeRaven 83315bf8, /cr-checkin equivalent.
707e4d6surface review-copy HTML plans CodeRaven 43f9b7ad, Plans segment.
dd58acddocument every bundled command CodeRaven 8a66b986, identical subject.
1e22ca8flow-map gallery review artifacts FlowMapScanner.swift:40 scans reviews/.
8693469, e4d6229Spark Inbox and dispositions CodeRaven has every file, including SparkIdeaDispositionStore.swift.

No content — discard

Venture content — already scheduled

These are not salvage. They are the payload the merge exists to move, and the plan already places them.

CommitsContentPhase
0da110914-layer business Foundation cascade (34 files)Phase 4
f166e11, 9262069, 449a31eIdeation copy reframe, Threads → Offerings, Spark Inbox labelPhase 5
b8b2828, 33ec306, 3a52110, a4af319135 reframed interview questions, question generator, conversational prompts, front doorPhase 5
dc5032d, c43002aCapability/constraints step and business-form taggingPhase 5
50593bc (part)Diversified business formsPhase 5
962ad10, fb0522aStudio unlocked by default, sidebar Projects → VenturesPhase 3

Unverified

Open, low risk

fc85606 — self-routing commands

No subject-matching commit in CodeRaven. Given that /cr-checkin was retired by 83315bf8, the self-routing behavior may have been folded into /cr-entry rather than landing as its own commit. Low risk either way, since command content is regenerated from Resources/Commands/ rather than carried in app state.

What this means for the plan

Contingency withdrawn

Phase 7 does not move earlier

The plan's contingency said that if the audit came back nearly empty, Phase 7's data migration could jump ahead of Phases 5 and 6 to get the 18 ideation sessions somewhere safe sooner. That contingency does not apply. The audit came back with four real bugs, which is a different signal: the fork accumulated fixes nobody was tracking, and that argues for finishing the port before archiving anything.

The ordering in the plan stands as written. Phase 2 may begin.