← Orbiter Dev Hub
feat/anything-engine · PR #343 · 2026-05-12 PM
Anything Engine — Waves 18-20 + Backend Ships FRONTEND BACKEND

Frontend + Backend converged.
12 merges, 2 Xano ships, 1 new outcome class.

Yesterday's report closed Waves 14-17 with PR #343 demo-ready and a list of "Mark territory" backend gaps. Tonight three of those gaps closed: fn 12993 (real update_pitch_profile) replaces the stub, ep 8545 (/summarize-pitch-profile) lights up system-rewrite-on-edit, and the travel class shipped end-to-end as outcome #16. Twelve frontend branches integrated on top.

12
Frontend merges
2
Xano endpoints shipped
16
Outcome classes live
1,391
Tests passing
The Headline

Three "Mark territory" gaps closed. Frontend pre-wires now hit real backend.

Yesterday's Wave 14-17 report flagged five backend-owned blockers (fn 12918 stub, /summarize endpoint, travel class #16, getMostRecentPitchProfile BFF, welcome-strip design). Tonight, three landed:

End-state: 1,391 tests passing, tsc --noEmit 0 errors, Biome 0 errors, PR #343 still MERGEABLE / CLEAN. Frontend canvas at /network?active-view=anything-engine now exercises a complete deck-upload → Path A 12-batch confirmation → edit-with-system-rewrite → dispatch → cards path with no stub fallbacks on the rewrite leg.

No scaffold, no fake success. The Wave 19 pre-wire shipped with an explicit amber "pending backend" badge so users could see what was wired vs. what was waiting. Wave 20 swapped that for a live LLM call. The amber badge is now gone from the path where the backend exists; remaining edit fields still surface it where the backend isn't built yet.

Wave 18 — Quality Fundamentals

Auth-flicker, env-tests, MemoryPanel parity

Wave 18 hit three low-glamour but high-impact quality gaps. Each ran as an independent sub-agent branch with a clean verify.

ScopeMerge SHAWhat it does
Auth-flicker 1b987131 staleTime on _authed + network route loaders. Prefetch on hover no longer flashes a sign-in redirect frame when the session is fresh but cached.
Env-tests 88c86f81 Skip env validation under Vitest (VITEST=true skipValidation path). Unblocks 5 pre-existing test files that had been silently skipped at boot due to missing required env vars in CI.
MemoryPanel parity a504aa5b Ports the MemoryPanel slide-out from chat-shell onto the canvas surface. /network?active-view=anything-engine can now read Xano native memory (matching the chat-shell standalone behavior).
Wave 19 — Polish + Bridges + Pre-Wire

Cross-thread race, TTS over-fire, rail bridge, mobile, system-rewrite

Wave 19 split into five parallel sub-agents covering the last set of polish items + the system-rewrite-on-edit frontend pre-wire that hands off to Wave 20's backend ship.

ScopeMerge SHAWhat it does
Pitch-confirm race 44f5f528 Per-thread gate on the ae-pitch-confirm handler. Previously, switching threads while one was confirming could leak the confirm lang into the wrong conversation. Now gated by conversation id.
useEffect audit 40c0fc9a Destructure speak / voiceEnabled from useVoice() so the TTS effect doesn't re-fire on every render. Closes a perf leak that was firing TTS synthesis 20-40× per assistant turn.
Right-rail content d2e7f180 Bridges canvas state (attachments + pitch profile) to the right rail via a typed ae-canvas-rail-state custom event. Modify / Context tabs now reflect live canvas state instead of stale fallbacks.
Mobile CSS b1bb8cff Responsive breakpoints across .ae-outcome-grid + canvas shell. Tile grid stacks on tablet/mobile; composer text 16px to suppress iOS auto-zoom; dedupe of orphaned shell rules.
System rewrite (pre-wire) abbeb809 summarizeFn BFF wrapper + debounced field handlers on InterviewSummaryConfirm + amber "pending backend" badge. Frontend was wired this wave; Wave 20 dropped in the live Xano endpoint.

Page feedback shipped this wave. Robert flagged four items live; all four closed before Wave 20 opened. See the "Page feedback" section below for the full list.

Wave 20 — Backend Ships + Integrations

Two Xano endpoints + travel class + persistence + dead-code

Wave 20 is the convergence wave. Xano workspace 3 shipped two new endpoints + extended classify to 16 classes; the frontend wave landed four merges that consume them, persist Path A confirmation state, retire dead CSS, and update docs to retire the "fn 12918 STUB" claim.

Backend ships (Xano workspace 3, group 1270)

Endpoint / fnStateWhat it does
fn 12993 — pitch/update-pitch-profile NEW Replaces the inline stub that ep 8497 was calling. Real diff-apply with NULL semantics. The "fn 12918 STUB" claim from yesterday's report is retired; the live function now lives under pitch/update-pitch-profile and writes the profile delta to the fundraising_pitch_profiles row.
ep 8545 — /summarize-pitch-profile NEW Real LLM regeneration of the summary on field edit. Haiku 4.5 backed. Called by the Wave 19 summarizeFn BFF wrapper. End-to-end edit → rewrite → display loop is now live on the find_investors leg.
ep 8400 — classifier EXTENDED Now emits 16 classes. travel added with chief-of-staff voice; classifier prompts + sample-result.md shipped under prompts/travel/.

Frontend integrations (this branch)

ScopeMerge SHAWhat it does
Path A persist 61d60d7d Persists Path A DispatchConfirmation lang to Xano so a refresh restores the deck-confirmation step. Closes the last "refresh = lost progress" gap on the Path A loop.
CSS dead-rules d2d32ad7 Removes 15 dead .ae-scanning-card rules (254 LOC). The component was retired earlier in the wave series; the CSS hung around.
update-pitch-profile docs 88493a5c Corrects the stale "fn 12918 STUB" claim in CLAUDE.md. Documents that the live function is now fn 12993 at pitch/update-pitch-profile.
Travel class #16 18226611 Tile + sky-blue class accent + classifier integration + prompts. The 16th outcome class is shipped end-to-end (classifier → interview → dispatch).
Page Feedback — Shipped Today

Four flags from Robert, all closed

Live page-feedback comments landed mid-session. Each closed as a small commit on the canvas branch:

FeedbackSHAResolution
QueryInput filter button 645b6b50 Search filters trigger swapped from SlidersHorizontalPlus icon to read as "attach", not "filter".
InterviewTurn freetext margin 3b84e5dc +12px top margin on the InterviewTurn freetext form so it doesn't crowd the question.
Taking-longer pill 34b5d46e REMOVED. The 20s "Taking longer than usual..." badge was noise on real flows; the actual scanning loader (3-phase carousel from Wave 15) is sufficient.
System-rewrite "why aren't we doing it?" c1a6e28f → abbeb809 → ep 8545 Pre-wired the frontend in Wave 19 with an explicit amber badge; Wave 20 shipped the live Xano endpoint behind it. Edit a confirmation field → debounced → LLM regen → new summary lands.
What's Next

Mark dogfoods → PR #343 merges to dev

The shape of the next move hasn't changed since yesterday's report — but the gap list has materially shrunk. Three of the five "Mark territory" blockers from the Wave 14-17 page are now closed.

  1. Mark opens /network?active-view=anything-engine and runs the find_investors flow end-to-end on his own deck. The full path now exercises: starter tile → deck upload → Path A Opening Move turn → ready state → summary card → edit a fieldsystem rewrites via ep 8545 → confirm → dispatch → cards. No stubs in that path.
  2. PR #343 merge to dev. MERGEABLE, CLEAN, all CI green. 0 reviews. Awaiting Mark sign-off only.
  3. Wave 21 queued. Eight lightweight outcome classes, per-mode context floors (Mark's Apr 30 directive), R4 dogfood on the Wave 18-20 surface, worktree cleanup.
Known Remaining Blockers

What's still open after tonight's converge

Three of five Mark-territory blockers from Wave 14-17 closed tonight. These four remain:

getMostRecentPitchProfile BFF wrapper. In flight. Path A 12-batch loop is rendering the full 32-prop pitch_profile via buildDispatchConfirmationLang, but the BFF wrapper that hydrates the most-recent profile by user_id is still being built (task #40 in flight).

Welcome-strip persistence (May 7 defect #5). Design-blocked. Needs a Mark/Robert call on whether the layout becomes inline, banner, or drawer. Unchanged from yesterday.

Eight lightweight outcome classes. find_co_investors, find_event_attendees, find_warm_intros, plan_outcome, research_company, research_person, research_topic, summarize_meeting. Queued for Wave 21.

Per-mode context floors (v0). Mark's Apr 30 directive. Pending; queued for Wave 21.