moving
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user