源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
Dependency audit / audit (push) Canceled after 0s
CI / plan (push) Canceled after 0s
Gitoxide helper admission / macos-latest (push) Canceled after 0s
Gitoxide helper admission / ubuntu-latest (push) Canceled after 0s
Gitoxide helper admission / windows-latest (push) Canceled after 0s
Runtime Host peer admission / quality (push) Canceled after 0s
Windows recovery / windows_recovery (push) Canceled after 0s
CI / heavy (push) Canceled after 0s
CI / test (push) Canceled after 0s
Dependency audit / audit (push) Canceled after 0s
CI / plan (push) Canceled after 0s
Gitoxide helper admission / macos-latest (push) Canceled after 0s
Gitoxide helper admission / ubuntu-latest (push) Canceled after 0s
Gitoxide helper admission / windows-latest (push) Canceled after 0s
Runtime Host peer admission / quality (push) Canceled after 0s
Windows recovery / windows_recovery (push) Canceled after 0s
CI / heavy (push) Canceled after 0s
CI / test (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
|
||||
# Astryx full surface audit
|
||||
|
||||
Date: 2026-08-09
|
||||
Branch: `feat/astryx-surface-alignment`
|
||||
Scope: every product surface under `apps/desktop/src/renderer/**` and `packages/ui/src/**` (183 inventory files).
|
||||
|
||||
This pass **read and analyzed** settings pages/modules, shell/chat/workbar/panels, module hubs, packages/ui compositions, and product CSS — not only inventory scripts.
|
||||
|
||||
## Verdict
|
||||
|
||||
| Layer | State |
|
||||
|-------|--------|
|
||||
| Raw `<button>` / `<input>` / `<select>` / `<textarea>` | **Clear** (product TSX) |
|
||||
| Inventory blockers | **0** |
|
||||
| Empty / loading / error contract | **Mostly aligned** after this pass |
|
||||
| Module kit (Skills / Plan / Daily / MCP) | **Aligned** |
|
||||
| Settings kit (`SettingsPage` / `SettingsSection`) | **Aligned** (providers multi-level intentional) |
|
||||
| Remaining debt | CSS control-chrome overrides, plan/graph plate elevation, ChatReasoning lab eject, Deep Research progress card |
|
||||
|
||||
## Surfaces reviewed
|
||||
|
||||
### Settings (all `*-page.tsx` + major modules)
|
||||
|
||||
Aligned: about, appearance, general, data, memory, projects, subagent, web-search, health, permission, usage, bot overview/detail/onboarding/wechat, providers multi-level, catalog, oauth, connection detail, personalization, password-input, skeleton, route header, expandable rows.
|
||||
|
||||
### Shell / panels
|
||||
|
||||
Aligned core: app-shell family, chat-message-surface, chat-composer-region, chat-workbar, session-workbar (tabs as Button), browser, terminal, review, inspector, import dialog, command palette, onboarding, mcp-page, side-chat confirm, error-boundary.
|
||||
|
||||
### Modules / packages/ui
|
||||
|
||||
Aligned: skills-panel, scheduled-task-*, daily-review-panel, module-pages, composer, chat-view (loading now Spinner), prompt rail, quote chip, session sidebar/history/list, search-modal, model/permission pickers, mermaid, toast, tool-activity shell.
|
||||
|
||||
## Fixed in this pass
|
||||
|
||||
| Area | Change |
|
||||
|------|--------|
|
||||
| plan-mode | error → `Banner` |
|
||||
| quote-companion | error → `Banner`; preparing → `Spinner` |
|
||||
| task-ledger | error → `Banner` |
|
||||
| web-search | live error → `Banner`; no results → `EmptyState` |
|
||||
| memory settings | warning callouts → `Banner`; dead CSS removed |
|
||||
| daily-review settings | loading → `SettingsSkeletonStack` |
|
||||
| permission center | error wrap in `SettingsPage` |
|
||||
| provider oauth | error → `Banner` |
|
||||
| custom pet | empty → `EmptyState isCompact` |
|
||||
| artifact preview | FailureCard / Unsupported → `Banner` |
|
||||
| mcp delete | `variant="destructive"` (no inline color) |
|
||||
| agent-graph empty | compact EmptyState without mixed tier icon |
|
||||
| chat-view | `messageLoading` → centered `Spinner` |
|
||||
|
||||
## Intentional exceptions (do not “fix” without product decision)
|
||||
|
||||
1. **`astryx-chat-reasoning.tsx`** — ejected Astryx lab ChatReasoning; keeps official `role="button"` header until stable peer lands.
|
||||
2. **Providers multi-level** — catalog/setup/detail are nested routes inside SettingsPage, not separate SettingsSection pages.
|
||||
3. **Usage analytics layout** — metrics/tabs, not settings rows.
|
||||
4. **Tool / agent / web-search preview cards** — product transcript content chrome, not generic controls.
|
||||
5. **DeepResearchProgressPanel** — product progress composition; kit-ify is a dedicated design task.
|
||||
6. **Quote chip / turn footer CSS** — still product-geometry overrides on Astryx controls; shrink chrome gradually.
|
||||
7. **Logo 44 / swatch 34 / session-context 40** — decorative or band heights, not control rhythm 28/32/36.
|
||||
8. **ChatReasoning / markdown density contracts** — documented product overrides.
|
||||
|
||||
## Remaining backlog (priority)
|
||||
|
||||
### P1 — visual system
|
||||
|
||||
- plan-mode / agent-graph plate: avoid fill + border + raw shadow stack; prefer raised ladder or single elevation token.
|
||||
- plan-mode status washes → semantic `--*-wash` tokens.
|
||||
- quote companion composer elevation → token.
|
||||
|
||||
### P2 — primitives consistency
|
||||
|
||||
- browser toolbar → Astryx `Toolbar`.
|
||||
- workbar launcher shortcut → `Kbd`.
|
||||
- keyboard-help headings → `Heading`/`Text`.
|
||||
- web tool result links → Astryx `Link`.
|
||||
- daily-review metrics → optional `StatTile`.
|
||||
|
||||
### P3 — CSS chrome debt
|
||||
|
||||
- shrink `.maka-quote-chip-remove` / `.maka-turn-footer-action` / lineage badge overrides.
|
||||
- retire dead tool-terminal CSS if unused.
|
||||
- inventory polish false-positives for logo/swatch heights.
|
||||
|
||||
## Method
|
||||
|
||||
1. Regenerated path inventory (183 files).
|
||||
2. Pattern scan: raw controls, role=button, hand empties, role=alert.
|
||||
3. Parallel deep-read audits: settings · shell · packages/ui.
|
||||
4. Implemented P0/P1 semantic gaps from those audits.
|
||||
5. Typechecked `@maka/ui` + desktop renderer.
|
||||
Reference in New Issue
Block a user