Skip to content

feat(desktop): mature generated files workbar - #2506

Merged
jackwener merged 2 commits into
mainfrom
feat/generated-files-workbar
Aug 8, 2026
Merged

feat(desktop): mature generated files workbar#2506
jackwener merged 2 commits into
mainfrom
feat/generated-files-workbar

Conversation

@jackwener

Copy link
Copy Markdown
Member

Summary

  • rename the Files workbar to Generated files and replace the split list/preview layout with focused list → full-panel preview navigation
  • move artifact actions into a compact More menu while preserving delete confirmation, path safety, subscriptions, and binary preview boundaries
  • reuse Maka Markdown, Astryx CodeBlock, and one shared structural diff renderer with line numbers and syntax
  • bound rich rendering/highlighting to 64 KB / 1,000 lines, diff rendering to 500 lines, and total text display to 256 KB
  • add focused Playwright coverage for click/keyboard navigation, focus restoration, action-menu contents, and the renamed launcher

Verification

  • npm --workspace @maka/desktop run build:renderer
  • npm --workspace @maka/desktop run test:checks
  • node --test packages/ui/dist/__tests__/tool-activity-presentation.test.js
  • npx playwright test --config e2e/playwright.config.ts e2e/session-workbar.spec.ts (2 passed)

Local baseline note

npm --workspace @maka/ui run typecheck still reports the existing ChatLayoutProps.conversationKey mismatch against the installed Astryx 0.3.0 types; no changed file reports a type error, and the renderer production build succeeds.

@jackwener
jackwener force-pushed the feat/generated-files-workbar branch from 7144156 to 285ab7d Compare August 8, 2026 13:05
@jackwener
jackwener merged commit 16b0fb7 into main Aug 8, 2026
21 of 23 checks passed
@jackwener
jackwener deleted the feat/generated-files-workbar branch August 8, 2026 13:22
Astro-Han added a commit that referenced this pull request Aug 21, 2026
Review on #3436 caught the caller-scan test asserting something already
false. Two surfaces render MarkdownBody at compact density — the
transcript and the desktop Artifact Preview (apps/desktop, since #2506) —
and the test passed anyway, for two independent reasons: it walked only
packages/ui/src, and its `<Markdown\s` pattern never matched the
`<MarkdownBody>` form the second caller uses. Either bug alone would have
surfaced the other caller.

Delete it rather than widen it. The set it wants to pin spans workspaces,
so holding it means a library test grepping application source — the
dependency backwards — and the mechanism already proved it can be wrong
and silent on its first commit. A guard that lies is worse than a
documented gap.

What the deletion gives up is recorded where the sharing matters, next to
the heading rules: compact carries transcript TYPOGRAPHY, which Astryx's
density RFC says density should not, so a third compact surface inherits
it with nothing to catch that. Left shared deliberately for the preview —
it is a narrow pane showing a document a few lines at a time, the shape
the flattening was built for. Splitting the key is a visible change to
that surface and belongs in its own PR, argued on its own screenshots.

The 12px block rung reaches the preview too, and there it is a move
toward the design system rather than away: 12px is Astryx's own document
paragraph rhythm.

The two remaining assertions are untouched — both read rendered DOM and
the stylesheet itself, so neither can be wrong about scope.

Generated-by: Claude Code
Astro-Han added a commit that referenced this pull request Aug 21, 2026
Review on #3436 caught the caller-scan test asserting something already
false. Two surfaces render MarkdownBody at compact density — the
transcript and the desktop Artifact Preview (apps/desktop, since #2506) —
and the test passed anyway, for two independent reasons: it walked only
packages/ui/src, and its `<Markdown\s` pattern never matched the
`<MarkdownBody>` form the second caller uses. Either bug alone would have
surfaced the other caller.

Delete it rather than widen it. The set it wants to pin spans workspaces,
so holding it means a library test grepping application source — the
dependency backwards — and the mechanism already proved it can be wrong
and silent on its first commit. A guard that lies is worse than a
documented gap.

What the deletion gives up is recorded where the sharing matters, next to
the heading rules: compact carries transcript TYPOGRAPHY, which Astryx's
density RFC says density should not, so a third compact surface inherits
it with nothing to catch that. Left shared deliberately for the preview —
it is a narrow pane showing a document a few lines at a time, the shape
the flattening was built for. Splitting the key is a visible change to
that surface and belongs in its own PR, argued on its own screenshots.

The 12px block rung reaches the preview too, and there it is a move
toward the design system rather than away: 12px is Astryx's own document
paragraph rhythm.

The two remaining assertions are untouched — both read rendered DOM and
the stylesheet itself, so neither can be wrong about scope.

Generated-by: Claude Code
Astro-Han added a commit that referenced this pull request Aug 21, 2026
Transcript paragraphs sat 8px apart against 20px body leading — a paragraph
break narrower than the line break inside a paragraph. Raise the block rung
to 12px, which is Astryx's own `spacingParagraphDefault`, so the transcript
stops being denser than the design system between two paragraphs while
keeping its own heading scale (#1857) and list rung untouched.

The spacing is owned by the compact rhythm table in packages/ui/src/styles.css,
not by Astryx's density tokens: the table zeroes Astryx's margins outright and
declares every gap itself, so retuning `--md-gap-block` is the only lever.

Adds two contract assertions for the ways that table can break silently — the
runtime DOM hooks its selectors need still being emitted, and the ListItem
control padding still being neutralized (the mechanism that inverted the
ladder in #2348). Declared values are deliberately not pinned; a wrong number
is visible the moment anyone looks at a transcript.

Review caught a third assertion claiming compact markdown was transcript-only.
It was already false — the desktop Artifact Preview has rendered
`<MarkdownBody density="compact">` since #2506 — and passed anyway. Removed
rather than widened, since holding it means a library test grepping
application source. The shared surface and the unguarded typography coupling
are documented next to the heading rules instead.

Generated-by: Claude Code
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.

1 participant