Skip to content

feat(ui): USX surface alignment, toolbar standardization, and sovereign ecosystem sync - #39

Merged
fredporter merged 1 commit into
mainfrom
feat/usx-surface-alignment-ecosystem-sync
Sep 16, 2026
Merged

fredporter merged 1 commit into
mainfrom
feat/usx-surface-alignment-ecosystem-sync

Conversation

@fredporter

Copy link
Copy Markdown
Owner

Summary

This PR implements comprehensive frontend Vue alignment with canonical USX design tokens and bridges backend capabilities to the sovereign user interface:

  • Typed API Client: Added typed methods for host sync status, Apple Mail/iMessage intake, task triage actions, and vector quantization (quantizeVectorToLattice, quantizeVectorToTeletext, quantizeVectorToBob).
  • Vector-to-Bitmap (V2B) Studio: Added 4th studio mode in BananaStudio.vue with dot lattice matrix rendering and Amiga BOB planar blitter hex streams.
  • Button Typo Elimination: Fixed .uxs-btn transposition typos across all BrowserUI panels (BananaStudio.vue, BrowserUISurface.vue, ResearchDashboard.vue, EditTab.vue, PreviewTab.vue, CardStack.vue).
  • Workflow Communications Triage & Autonomous Approvals Gate: Consolidated TasksPanel.vue headers into a unified header with segmented switcher (Kanban, List, Inbox Triage), live Apple Mail/Messages intake feed, and human approval gate actions.
  • Sovereign Ecosystem Sync: Added the Ecosystem Sync card to DashboardSurface.vue (tracking Apple PIM, BitChat LAN Mesh, and Google Vault) and a serene sync dot indicator in GlobalToolbar.vue.
  • Surface Toolbar Standardizations: Removed redundant secondary ← Dashboard back bars from HomeNestSurface.vue, SonicScrewdriverSurface.vue, BitChatSurface.vue, and GrooveboxSurface.vue. Replaced interactive emoji buttons with UIcon and eliminated amber CRT phosphor overrides in favor of semantic var(--usx-color-warning).
  • Standards & Documentation: Updated docs/USX_SURFACE_BASELINE_SPEC.md with surface toolbar, button, and icon standards.

Verification

  • pnpm -C frontend-vue run type-check: 0 errors
  • pnpm -C frontend-vue exec vitest run: 108/108 passed across 27 test files
  • pnpm -C frontend-vue run build: passed (✓ built in 15.78s)
  • python3 scripts/check_home_path_policy.py: Home path policy: OK
  • uv run --no-project pytest ...: 29 passed in 0.31s
  • All CI governance validation scripts passed

…gn ecosystem sync

- Expand API client with typed methods for host sync status, Apple Mail/iMessage intake, task triage actions, and vector quantization
- Add 4th studio mode to BananaStudio: Vector-to-Bitmap (V2B) dot lattice and Amiga BOB blitter hex streams
- Fix .uxs-btn typo across all BrowserUI panels to canonical .usx-btn classes
- Consolidate TasksPanel headers into unified header with segmented switcher: Kanban, List, and Inbox Triage (live Mail/Messages feed & autonomous approval gates)
- Add Sovereign Ecosystem Sync card to DashboardSurface and serene sync indicator to GlobalToolbar
- Remove redundant secondary back bars from HomeNestSurface, SonicScrewdriverSurface, BitChatSurface, and GrooveboxSurface
- Enforce strict UIcon usage, eliminating interactive emojis and amber CRT phosphor overrides in favor of semantic tokens
- Update USX_SURFACE_BASELINE_SPEC.md with surface toolbar and button standards
Copilot AI lite review requested due to automatic review settings September 16, 2026 23:31
@fredporter
fredporter merged commit 1d89e33 into main Sep 16, 2026
4 checks passed
@fredporter
fredporter deleted the feat/usx-surface-alignment-ecosystem-sync branch September 16, 2026 23:32

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Several new host and vector workflows misread API response contracts, causing empty triage feeds, failed quantization previews, and missing approval cards.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Adds USX-aligned Vue surfaces, workflow communications triage, ecosystem sync indicators, and V2B quantization tooling.

Changes:

  • Standardizes headers, buttons, icons, and surface navigation.
  • Adds host sync status, inbox triage, and approval actions.
  • Adds vector quantization modes and updates USX documentation.
File summaries
File Description
TasksPanel.vue Unified task/communications triage UI
DashboardSurface.vue Ecosystem sync status card
GlobalToolbar.vue Sync indicator
BananaStudio.vue V2B quantization modes
ApiBridge.ts Quantization API methods and types
client.ts Host/workflow API methods
Other changed Vue panels/surfaces USX buttons, icons, headers, and toolbar updates
USX_SURFACE_BASELINE_SPEC.md Updated surface standards
Review details

Suppressed comments (2)

frontend-vue/src/surfaces/bitchat/BitChatSurface.vue:276

  • This second modal close control has the same accessibility regression: replacing × with UIcon removed the button's explicit accessible name.
          <button class="bitchat-modal-close" @click="showConvertTaskModal = false">

frontend-vue/src/surfaces/browserui/BrowserUISurface.vue:1938

  • The new small-button rule sets a hardcoded 28px touch target, below the shared --usx-touch-min-sm requirement and the baseline's interactive-control minimum.
  min-height: 28px;
  • Files reviewed: 17/17 changed files
  • Comments generated: 28
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +215 to +220
approveTask: (id: string) =>
request(
`${UCORE_API}/api/workflow/tasks/${encodeURIComponent(id)}/approve`,
{
method: "POST",
},
Comment on lines +87 to +90
title="Host Ecosystem Sync Active (Dashboard)"
@click="navigate('/')"
>
<span class="global-toolbar__sync-dot" />
<div class="bitchat-modal-header">
<h3>Save Discussion Evidence to Binder</h3>
<button class="bitchat-modal-close" @click="showSaveBinderModal = false">×</button>
<button class="bitchat-modal-close" @click="showSaveBinderModal = false">
Comment on lines +202 to +206
export interface QuantizeLatticeResult {
ok: boolean
width: number
height: number
active_points: number
border-radius: var(--usx-radius-sm);
min-height: var(--usx-touch-target-compact);
border-radius: var(--usx-radius-md);
min-height: var(--usx-control-size-sm);
Comment on lines +138 to +139
background: var(--usx-color-surface-base, var(--usx-color-bg, #0d0e11));
color: var(--usx-color-on-surface, #e2e4e9);
.homenest-surface-label {
.homenest-header__title {
font-size: var(--usx-font-size-xl);
font-weight: 600;
background: var(--usx-color-surface-hover);
.sonic-header__title {
font-size: var(--usx-font-size-xl);
font-weight: 600;
Comment on lines +1533 to +1535
padding: 0.25rem 0.6rem;
font-size: var(--usx-font-size-xs);
font-weight: 500;
Comment on lines +1599 to +1600
font-size: var(--usx-font-size-md);
font-weight: 600;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants