This commit is contained in:
Oleg Maslov
2026-09-02 10:14:22 +02:00
parent 0c3e2ead3b
commit b20b138fe4
771 changed files with 161561 additions and 9027 deletions

View File

@@ -1,143 +1,109 @@
# Launch Recommendation — Waggle V1
# Launch Recommendation — Windows Solo
Generated: 2026-03-20
Updated: 2026-08-27
---
## Current verdict: INSTALLER/LIFECYCLE INTERNAL RC QUALIFIED; RELEASE QUALIFICATION INCOMPLETE
## Recommendation: CONDITIONAL GO
The supported launch scope is Windows Solo with Claude Code, Codex, and Hermes using
their official user-owned installations and authentication. Cursor, OpenClaw, and macOS
packaging/certification remain roadmap work and do not block this internal RC.
Ship after fixing the 8 CRITICAL issues (~6.5 hours of work). The HIGH issues are important but can be addressed in a rapid V1.0.1 patch within the first week.
This document is the release-status authority. Historical receipts are evidence only;
they do not certify a later behavior-changing revision unless a bounded no-impact review
explicitly says so.
---
## Frozen runtime candidate
## Executive Summary
- Source revision: `23ad3fa5f99bddce648b84750a41365299aeb0da`
- Source tree: `aab548f77ec64b181086664dad29c32e6bc78779`
- Integration: private Waggle PR #66, tested head
`587e259166db69ff86e806fa8393a5f8974ea0a1`, merged 2026-08-27
- Tree equivalence: the tested PR head and merge commit resolve to the same source tree
- Repository state after merge: private `main` equals `origin/main`
Waggle is a substantial, well-architected product with 3,895 passing tests, 53 agent tools, 29 connectors, 15K+ marketplace packages, and a complete feature set covering all 8 Kill List use cases. The agent loop, memory system, and vault encryption are architecturally sound. The UI underwent a recent Phase 10 rewrite that brought Tailwind adoption and Direction D palette cleanup.
The documentation-only descendant that updates this record does not replace the runtime
candidate. Before it is merged, its diff must be limited to documentation and all required
remote checks must remain green.
However, the audit uncovered **8 CRITICAL issues** (5 security, 1 stability, 2 UX) that must be fixed before any external user touches the product. The most severe: CORS is wide open (any website can call your localhost APIs), there are no React error boundaries (one render error = permanent white screen), and the streaming loading indicator is invisible (users can't tell the agent is thinking).
## Exact-current Windows installer
The good news: every CRITICAL fix is straightforward. Total estimated effort is 6.5 hours. None require architectural changes.
- NSIS artifact:
`app/src-tauri/target/x86_64-pc-windows-msvc/release/bundle/nsis/Waggle_0.2.0_x64-setup.exe`
- Size: 102,923,936 bytes
- SHA-256: `7BFA9F9B13633A51CD3336B42E3EF904B7F7A568C6DEE4F6CED967CBD4F40A59`
- Internal signer: `CN=Egzakta Internal Pilot, O=Egzakta Group, C=RS`
- Signer thumbprint: `E2F028541E7A4D1FE80FFFF02079060D36579846`
- RFC 3161 timestamp authority: DigiCert SHA256 RSA4096 Timestamp Responder 2025 1
- Trust classification: internal pilot only; the self-signed root is not public trust
---
Clean-profile certification passed **64/64** checks in 450.199 seconds:
## What's Ready (Strengths)
- Receipt:
`output/installer-certification/23ad3fa5-20260827T123917Z-exact-main-clean-profile/windows-installer-certification.json`
- Receipt SHA-256:
`AC2A1C54119E28CC22DA931EB43E2815862B01832DD6097CE03F8F79D9D3DF4D`
- Receipt source and bundled-sidecar revision: exact `23ad3fa5`
- Tier: FREE/Solo
- Managed model: `qwen2.5:0.5b`
- Managed-model digest:
`sha256:a8b0c51577010a279d933d14c2a8ab4b268079d44c5c8830c0a93900f1827c67`
1. **Solid agent core** — 53 tools, loop guards, injection scanning, approval gates, sub-agent orchestration. 1,272 tests on the agent package alone.
The receipt proves silent install, bundled Node/npm and offline package execution,
first boot, in-process embeddings, built-in proxy/session authentication, workspace and
memory persistence, managed runtime/model pull and chat, proxy-restart chat, same-version
repair, relaunch, data preservation, Exit/owned-process cleanup, uninstall, registry
cleanup, and preservation of external `.hive-mind` and `.ollama` roots. It also proves
that developer Node.js, Python, Docker, external LiteLLM, and a separately installed
Ollama are not prerequisites.
2. **Complete feature set** — All 8 Kill List use cases work. Workspace memory, connectors, marketplace, personas, cron, swarm protocol, capability packs, onboarding with memory import.
## Integrated test and security evidence
3. **Good test coverage** — 3,895 tests across 277 files, zero failures. Every major package has dedicated test suites with behavior-focused assertions and realistic mocks.
- PR #66: every blocking remote check passed — primary CI, Playwright smoke and full
E2E, Windows and both macOS Tauri verification targets, Wave 1, and Hive Mind
install/smoke on Windows, Ubuntu, and macOS.
- Exact-current dependency audits: 0 Critical and 0 High in both full and production
dependency trees. Lower-severity maintenance remains tracked.
- The security-hardening integration covers workspace path/link boundaries, hook/database
hard-link boundaries, normalized ingress, atomic consolidation/cognify, deprecated-frame
search exclusion before limits, and knowledge-graph provenance.
- Hosted signing policy and workflow tests remain green, but no publicly trusted hosted
artifact has been produced.
4. **Security fundamentals** — AES-256-GCM vault, parameterized SQL everywhere, path traversal protection, CLI allowlists, DOMPurify HTML sanitization, SecurityGate for marketplace.
## Persona, router, and authentication evidence
5. **Deployment infrastructure** — Tauri Windows installer built (8.2MB), Docker production compose, Render.com blueprint, GitHub Actions CI/release pipeline.
The historical ten-persona collection at `4c712ff6` contains 30/30 results at or above
95/100 after documented independent semantic adjudication. It is not relabeled as an
exact-current deterministic seal: PR #66 changed memory behavior, so public release
qualification requires either a fresh exact-candidate collection or an explicit bounded
semantic-impact attestation.
6. **Product polish** — 8 personas, dark/light mode, keyboard shortcuts, global search, workspace hue colors, onboarding wizard, tool card transparency, approval gates inline in chat.
Smart-router primary, compact-tool-context, durable-budget/fallback, and official-user-auth
canaries for Claude Code, Codex, and Hermes remain scoped historical evidence. No PR #66
change altered provider credential ownership or copied/read provider credential files.
---
## Hive Mind repository state
## Must Fix Before Launch (CRITICAL — ~6.5 hours)
Curated public-mirror hardening PR #53 merged to `marolinik/hive-mind` `master` as
`3410327800db3ea23f875d547a0c7f4d08826b7e`; Linux, Windows, macOS, and Ubuntu
first-run smoke passed. The immutable drift checker still reports reviewed blockers and
one unreviewed difference, with zero forbidden exports. Therefore the Windows Solo RC is
not blocked, but the next Hive Mind package release remains a separate maintainer-curated
operation. Raw subtree publication remains forbidden.
### Security (4 hours)
## Public GO blockers
| # | Issue | Fix | Time |
|---|-------|-----|------|
| 1 | **CORS allows any origin** — any website can call all Waggle APIs | Change `origin: true` to `origin: ['http://localhost:1420', 'tauri://localhost']` (or your Tauri webview origins). Fix SSE hijack endpoints to use the same allowlist. | 1.5 hr |
| 2 | **Server CSP has `unsafe-eval` + `unsafe-inline`** | Remove both. If scripts break, use nonces or hashes instead. | 30 min |
| 3 | **OAuth refresh tokens stored plaintext** | Encrypt refresh tokens the same way access tokens are encrypted in `setConnectorCredential()`. | 1 hr |
| 4 | **Verify API key revoked** | Go to Anthropic dashboard, confirm the key from commit `c29d75f` is revoked. Delete local branch `phase6-capability-truth`. | 30 min |
Public release may be called **GO** only after all of these are closed for the approved
release-tag commit:
### Stability (2 hours)
1. A protected hosted build produces a publicly trusted Authenticode artifact.
2. The managed Codex Security workflow produces a sealed Deep Security report with no
unresolved Critical or High findings.
3. Current persona qualification is sealed by a fresh exact-candidate receipt or an
independently reviewed bounded semantic-impact attestation.
4. Smart-router and Claude Code/Codex/Hermes official-auth qualification is either rerun
on the exact candidate or covered by a concrete independently reviewed no-impact
attestation.
5. Protected release-tag checks are green and the exact artifact hashes are recorded.
| # | Issue | Fix | Time |
|---|-------|-----|------|
| 5 | **Zero error boundaries** | Add `<ErrorBoundary>` wrapping each view in App.tsx, plus one at the app root. Use react-error-boundary or a simple class component. Show "Something went wrong" with a retry button. | 2 hr |
### UX (30 minutes)
| # | Issue | Fix | Time |
|---|-------|-----|------|
| 6 | **Streaming indicator invisible** | The loading dots use BEM CSS classes with no definitions. Either add the CSS or replace with Tailwind `animate-pulse` dots. | 15 min |
| 7 | **SplashScreen wrong palette** | Replace `#1a1a2e`/`#16213e`/`#0f3460` with Direction D tokens. Change `#f5a623` to `#d4a843`. | 15 min |
---
## Ship-Week Fixes (HIGH — ~28 hours, V1.0.1)
**Security hardening (first 2 days):**
- Approval gates: change auto-approve to auto-deny on 5min timeout (15 min)
- WebSocket authentication: require session token on `/ws` connect (2 hr)
- Team WebSocket: validate JWT instead of trusting userId param (2 hr)
- Replace `xlsx` with `exceljs` to fix prototype pollution (2 hr)
- Generate Tauri updater keypair and set pubkey (30 min)
**Agent loop safety (day 3):**
- Cap rate-limit retries (max 3, then fail gracefully) (1 hr)
- Add token budget enforcement with configurable limit (2 hr)
- Parameterize sqlite-vec SQL interpolation (30 min)
**Frontend stability (days 3-5):**
- Add code splitting with `React.lazy()` for 7 views (2 hr)
- Deduplicate SSE connections (1 hr)
- Fix eventBus.removeAllListeners to scope per-client (1 hr)
- Fix light theme breakage across components (2 hr)
**Build fixes (day 5):**
- Fix npx waggle: compile .ts entry, resolve workspace deps (2 hr)
- Add non-root user to Docker (30 min)
- Fix CI branch target master→main (15 min)
- Clean up 87 TypeScript errors (2 hr)
---
## Known Limitations (Ship Anyway)
These are acceptable for V1 and can be improved iteratively:
1. **No browser E2E tests** — Unit/integration coverage is strong (3,895 tests). True browser automation (Playwright user journeys) is a V1.1 investment. Screenshot baselines exist.
2. **Monolithic App.tsx (1300 lines)** — Works but hard to maintain. Refactoring into feature-specific providers is a V1.1 task that won't affect users.
3. **No React.memo optimization** — The app performs fine at current scale. Memoization is premature optimization until profiling shows problems.
4. **macOS build not configured** — DMG, code signing, notarization require an Apple Developer account. Windows installer works. Ship Windows-first, add macOS in V1.1.
5. **Direction D at ~78%** — The Phase 10 UI rewrite made massive progress (371→19 inline styles). Remaining 22% is polish, not broken functionality.
6. **KVARK client not wired** — KVARK integration (Phase 7) is library code + tests. Not wired into the running server because KVARK itself needs its HTTP API deployed first. This is expected — it's the Enterprise tier path.
7. **Conversation history unbounded** — At typical usage (10-50 turns/session), this isn't a problem. Add context window management for power users in V1.1.
---
## Post-Launch Priority Queue
### First Week (V1.0.1)
1. All HIGH security fixes (approval timeout, WebSocket auth, xlsx, updater pubkey)
2. Agent loop safety (retry cap, token budget)
3. Frontend stability (code splitting, SSE dedup, error boundaries for remaining components)
4. Light theme fixes
### First Month (V1.1)
1. Browser E2E test suite (Playwright user journeys)
2. React component rendering tests
3. App.tsx decomposition (extract providers/hooks)
4. macOS build + code signing
5. npx waggle publishable package
6. CI pipeline expansion (Docker, lint, security scan)
7. Direction D compliance to 95%+
### First Quarter (V1.2)
1. KVARK server-side wiring (when KVARK HTTP API ready)
2. Performance profiling + React.memo optimization
3. Context window management for long conversations
4. Token budget UI (user-configurable spend limits)
5. Full accessibility audit (WCAG 2.1 AA)
---
## Verdict
**CONDITIONAL GO** — Fix the 8 CRITICALs (6.5 hours), then ship. The product is feature-complete, well-tested, and architecturally sound. The critical issues are configuration mistakes, not design flaws. Every fix is surgical and low-risk.
The foundation is strong. Ship it.
Until then, the installer is suitable for controlled internal testing, not public
distribution, and Waggle must not be described as publicly production-ready or GO.