moving
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled

This commit is contained in:
Oleg Maslov
2026-09-02 10:10:29 +02:00
commit 0c3e2ead3b
3841 changed files with 970576 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
# Waggle OS — QA Polish Pass (2026-06-24) · Fix Plan + Tracker
> Source: founder QA brief (Jun 2026). Branch `fix/qa-polish-2026-06-24` off main @ `65635862`.
> GUARDRAIL: preserve the 5-item calm spine + ⌘K progressive disclosure. No new sidebar apps.
> Ratified decisions: (1) Trust stats → **relabel as overlapping dimensions** (don't change math).
> (2) Scope → **all P0P3 + find-similar + 4-state audit + the ⌘K coachmark (OPTIONAL)**.
Verify per batch: `tsc -p apps/web/tsconfig.app.json` 0 · `tsc -p packages/server/tsconfig.json` 0
(server is tsx-transpile-only — NOT covered by `npm run build`; run it explicitly) · affected vitest green.
## Batch 1 — KG graph (P0) · server contract projection
- [ ] kg-entity-type-dropped + kg-edges-not-rendered — `packages/server/src/local/routes/knowledge.ts`: project raw rows → `nodes:{id:String(id),label:name,type:entity_type}` + `edges:{source:String(source_id),target:String(target_id),relationship:relation_type}` as the FINAL step (after scope==='all' numeric-id merge). Fixes node-click + filter (both already wired). Add regression test for projected shape.
## Batch 2 — Home "Waggle suggests" (P0) · text derivation
- [ ] home-suggest-pipe-cursor-leak — shared `sanitizeExtracted()` in `session-utils.ts`, call at extractProgressItems/extractOpenQuestions/extractSessionOutcome + `workspace-state.ts` extractDecisionItems. Strip leading/trailing `|`, stray markers.
- [ ] home-suggest-head-truncation — clause-boundary anchor on TASK_PATTERNS; truncate TAIL + ellipsis, never head.
## Batch 3 — scheduling / timeline / notif / ⌘K (P1/P2)
- [ ] raw-cron-shown — extend in-house `describeCronExpr` (no new dep) in `lib/automation-display.ts`/`cron-presets.ts`; CockpitApp + AutomationCenter + AutomationBuilder use it; raw cron → title/tooltip.
- [ ] timeline-utc-vs-iso — `routes/events.ts`: insert explicit `new Date().toISOString()` timestamp so stored == queried format.
- [ ] missioncontrol-cmdk-cockpit-alias — `lib/command-catalog.ts`: add `keywords`/alias "cockpit" to the mission-control entry (it IS registered; "cockpit" just matched nothing).
- [ ] generic-agent-finished-notification — `routes/chat.ts:1656`: enrich title/body (workspace · agent · task) + `actionUrl` deep link.
## Batch 4 — memory content (P1/P2)
- [ ] trust-stat-cards-relabel — `MemoryTrustManage.tsx`: total headline + 3 subordinate non-summing "dimension" chips + one-line note. Math untouched.
- [ ] weaver-status-contract-mismatch — `adapter.ts getWeaverStatus()` real shape (no success-shaped catch fallback); WeaverPanel + CockpitApp follow.
- [ ] wiki-per-page-metadata — `WikiTab.tsx` relative date formatter; investigate identical sourceCount (upstream `wiki-compiler`); hide if not real.
- [ ] evolution-list-error-as-empty + wiki error state — add explicit ERROR branch (mirror MemoryCenterTab pattern).
## Batch 5 — chat / identity / i18n / copy / askbar / dup-ws (P2/P3)
- [ ] chat-session-uuid-title — `sessions.ts` return null title; FE auto-title from first user message + backfill.
- [ ] identity-two-sources-of-truth — `profile.ts`: profile.json authoritative; broaden A→B sync to supersede stale identity facts.
- [ ] i18n-faza-1 — `lib/shape-selection.ts` + `SettingsApp.tsx`: "Faza 1" → "Phase 1" (+ JSDoc).
- [ ] artifacts-stale-later-phase-copy — `WorkspaceDesktopApp.tsx:690`: drop "arrives in a later phase"; align to shipped Library.
- [ ] askbar-cmdk-hardcoded-and-plus-noop — shared `lib/platform.ts cmdKLabel`; AskBar/Sidebar/CommandCenter/NotFound consume it; wire "+" to quick-capture/⌘K.
- [ ] duplicate-workspace-names — CreateWorkspaceDialog dup warn + disambiguator (created/last-topic) on Home cards + switcher.
## Batch 6 — 4-state audit + ⌘K coachmark + similar sweep
- [ ] error-as-empty audit: MissionControl fleet/activity tabs, Forgotten tab, any swallow-to-empty catches surfaced in recon `similar`.
- [ ] ⌘K coachmark (OPTIONAL): one-time "Press ⌘K to reach Automations, Files, Vault, Usage…" coachmark OR "More tools" affordance in ⌘K empty state. Keep spine intact.
## Final
- [ ] adversarial review (workflow) → fix HIGH/MEDIUM
- [ ] live smoke (graph, home suggests, cron, timeline, weaver, chat titles) 0 console errors
- [ ] commit per batch; merge --no-ff; push; handoff

View File

@@ -0,0 +1,26 @@
# QA Polish — Live Smoke (2026-06-24/25)
**Branch:** `fix/qa-polish-2026-06-24` (8 commits) · **Sidecar:** restarted on :3333 with the new server code (esbuild 0.28.0 binary realigned to tsx's host — env fix, `--no-save`) · **UI:** vite :8080 (HMR). Viewport 1440×900.
## Result: PASS — every smoked fix renders correctly, **0 console errors** on all surfaces.
| Fix | Surface | Evidence | Result |
|---|---|---|---|
| **KG graph P0** | `GET /api/memory/graph` (live) | — | **3562 nodes** real types (concept/org/person/project/technology, NOT "unknown"), **31837/31837 edges resolve to nodes** |
| **KG graph P0** | `/memory?tab=graph` | `smoke-01-kg-graph-fixed.png` | "54/54 nodes · **312/312 edges**" (was 0/312), nodes colored by type, legend "Concept 44 · Technology 5 · Organization 4 · Person 1" (was "Unknown 54"), real labels |
| **cron P1** | Mission Control | `smoke-02-mission-control.png` | "Wednesdays at 10:00 AM", "Every day at 5:00 AM", "Sundays at 4:00 AM" — no raw cron |
| **weaver P2** | Mission Control | `smoke-02-mission-control.png` | "Memory Weaver — Status: **Active**" (was blank) |
| **trust relabel P1** | `/memory?tab=trust` | `smoke-03-trust-relabel.png` | "451" total headline + subordinate chips (1 fresh · 366 stale · 448 awaiting) + "Overlapping views — a memory can be counted in more than one." |
| **suggestions P0** | Home briefing | `smoke-04-home-suggestions.png` | "Egzakta Group Positioning in Serbian Consulting Market (June 2026)" (no `\| … \|` pipe leak), complete phrases, tail-truncated ellipsis |
| **cmdK label P3** | Sidebar | `smoke-01…png` | "Ctrl K" on Windows (was hardcoded "⌘K") |
## Verified at the API layer (live sidecar)
- `GET /api/memory/graph?scope=personal``{nodes:[{id,label,type}], edges:[{source,target,relationship}]}`; **all-unknown? False**; **edges resolving to nodes: 31837/31837**.
## Not exercised (deliberate)
- Node-click detail panel + filter narrowing (recon confirmed both are wired; they self-resolve once nodes carry real labels/types — verified data is now correct).
- Real OAuth / Stripe / agent-run notification round-trips (need live creds / a real agent run).
- Timeline 24h window with NEW events (the ISO-storage fix applies to events emitted after the restart; existing space-format rows age out).
## Gates at smoke time
server tsc 0 · apps/web tsc 0 · apps/web FE 1160/1160 · touched server suites 281/281 · cron 33 · command-center 32.