← back

Roadmap

Spark Wonder Pty Ltd · 2026-Q2

Products

OvrsightIN PROGRESS

Business management SaaS

Phase 3 — Stripe Checkout. Q2 Rock #1.

spark-reachPLANNED

Cold outreach engine

Concept / early infrastructure. Needs Supabase project.

spark-box.aiPLANNED

Local AI appliance ecosystem

Concept stage — infrastructure building.

Project OSPLANNED

Project management layer

In planning.

Infrastructure

spark-coreLIVE

Headless API server — health, terminal, Claude proxy

PM2 id 3. Running on beachlifevs (temp host). Needs dedicated NUC.

sparkast.aiLIVE

Master cockpit — links to all tools

Built 2026-04-02. Port 3004.

NUC upgradePLANNED

Dedicated node for spark-core

Move spark-core off beachlifevs. Dashed on diagram.

Victron energy systemPLANNED

Power + solar monitoring

Off-grid capability. No timeline yet.

UPS / redundancyPLANNED

Power protection for all nodes

Known gap — critical for production uptime.

Offsite backupPLANNED

Remote backup of NAS data

Known gap. Data only on beachlifevs currently.

Advisory

Client 1 (active)LIVE

Spark Wonder Advisory — current engagement

Active. 1 of target 10.

Target 10 clientsIN PROGRESS

$2,400/month per client

Active pipeline building.

Advisory playbookPLANNED

Documented delivery framework

To be built as advisory scales.

Recent Build History

2026-03-31 — spark-web-tests pushed to GitHub, test loop complete
- spark-web-tests repo created and pushed to github.com/daensimmat/spark-web-tests (private)
- Git credentials configured on spark-web-test via credential store (gho_ OAuth token)
- Full test loop ready: Spark Test tab → SSH → spark-web-test → Playwright → results back to Supabase → Think context
2026-04-02 — sparkast.ai master cockpit built
- Created /home/beach/sparkast — Next.js 16, Tailwind CSS v4, JetBrains Mono, port 3004
- Landing page: SPARK WONDER header, status bar polling spark-core health every 60s, 8 nav cards
- /diagram: interactive vis-network infrastructure diagram (hardware + services + cloud + gaps)
- /roadmap: swimlane roadmap from projects.md and build-journal.md (Products/Infrastructure/Advisory)
- /context: read-only collapsible viewer for all spark-context files, copy button per card
- /think: idea capture tool — text, project tag, effort, notes, status workflow, search/filter
- API routes: /api/health (spark-core proxy), /api/status (port checker), /api/think (CRUD → data/think.json)
- PM2 id 5 — sparkast online, pm2 save done
- Cloudflare tunnel config updated: sparkast.ai → localhost:3004 (written to /tmp/cloudflared-config.yml — needs sudo apply + cloudflared restart)
- ports.md and stack.md updated in spark-context
- spark-reach port conflict resolved: stack.md listed 3004 for spark-reach (not yet created) — reassigned to sparkast; spark-reach will need a new port when built
- Phase 2 Think (Claude evaluate) noted in code comments — not built

---
2026-04-02 — Token efficiency audit and remediation across full Spark Wonder stack
Full audit of spark, ovrsight, spark-core, pocket-spark for context bloat, unbounded output, and model misuse. Nine fixes applied:

1. **spark/api/think/route.ts** — Added module-level context file cache (5-min TTL), converted system prompt to array with `cache_control: ephemeral` on the static context block (opsp/projects/stack), added `anthropic-beta: prompt-caching-2024-07-31` header. Static context block (~3,000 tokens) now cached across all turns in a Think session.

2. **spark-core/server.js** — Capped all terminal command output at 200 lines. Truncation notice appended if capped. Protects against unbounded dumps from `cat`, `git log`, `journalctl`, etc.

3. **ovrsight/lib/analyser.ts** — Extracted 250-line static Ovrsight framework as `OVRSIGHT_STATIC_SYSTEM` module constant. Moved to `system` parameter with `cache_control: ephemeral`. Only dynamic step 4 + financial data stay in user message.

4. **ovrsight/lib/prompts/paidAnalysisPrompt.ts** — Extracted ~300-line static framework (8 steps, 6 paid sections, scoring, voice rules, output schema) as `PAID_ANALYSIS_STATIC_SYSTEM` constant. Changed `buildPaidAnalysisPrompt` return type to `{systemStatic, systemDynamic, userMessage}`. Dynamic industry context + add-backs go in uncached second system block. Financial data is user message only.

5. **ovrsight/api/analyse/route.ts** — Updated `handleSessionFlow` to use split prompt structure from `buildPaidAnalysisPrompt` with cached system array. Model updated from `claude-sonnet-4-20250514` (Claude 3.7) to `claude-sonnet-4-6` throughout (3 occurrences).

6. **ovrsight/api/deeper/route.ts** — Added static advisor role as cached system block. Model updated to `claude-sonnet-4-6`.

7. **ovrsight/lib/analyser.ts** — Model updated from `claude-sonnet-4-20250514` to `claude-sonnet-4-6`.

8. **ovrsight/api/pocket-chat/route.ts** — Model downgraded to `claude-haiku-4-5-20251001` (dev-assist chat doesn't need Sonnet). History capped at 20 turns server-side.

9. **spark/api/opsp/coach/route.ts** — History capped at 20 turns server-side.

Principles added to stack.md and mind.md. All changes include `// TOKEN:` inline comments explaining the reason for each limit/cache/truncation.

---
---