Skip to content

feat: visualisation UI#24

Open
valdo404 wants to merge 3 commits intomainfrom
claude/mcp-server-ui-design-VvKe5
Open

feat: visualisation UI#24
valdo404 wants to merge 3 commits intomainfrom
claude/mcp-server-ui-design-VvKe5

Conversation

@valdo404
Copy link
Copy Markdown
Owner

@valdo404 valdo404 commented Feb 3, 2026

Architecture plan for a read-only session browser UI (docx-ui binary):

  • Back-end: Kestrel Minimal API with CreateSlimBuilder (NativeAOT, zero
    reflection, source-generated JSON)
  • Front-end: vanilla JS SPA with Fluent UI Web Components (Microsoft
    design system) and docx-preview.js for native DOCX rendering
  • Real-time: SSE (Server-Sent Events) via FileSystemWatcher + polling
    fallback for live session/patch notifications
  • 5 REST endpoints: sessions list, detail, DOCX bytes at position,
    history, and SSE event stream
  • LRU cache for reconstructed documents (slider scrubbing performance)
  • CLI integration: docx-cli server [--port N] launches docx-ui
  • No npm/webpack/vite: vendorized JS libs, ES modules, zero build step

https://claude.ai/code/session_01AVZcLrhY6w4QujyzEAnLUJ

Closes #18

@valdo404 valdo404 changed the title docs: add UI design plan — NativeAOT Minimal API + Fluent UI Web Components feat: visualisation UI Feb 3, 2026
…onents

Architecture plan for a read-only session browser UI (docx-ui binary):

- Back-end: Kestrel Minimal API with CreateSlimBuilder (NativeAOT, zero
  reflection, source-generated JSON)
- Front-end: vanilla JS SPA with Fluent UI Web Components (Microsoft
  design system) and docx-preview.js for native DOCX rendering
- Real-time: SSE (Server-Sent Events) via FileSystemWatcher + polling
  fallback for live session/patch notifications
- 5 REST endpoints: sessions list, detail, DOCX bytes at position,
  history, and SSE event stream
- LRU cache for reconstructed documents (slider scrubbing performance)
- CLI integration: `docx-cli server [--port N]` launches docx-ui
- No npm/webpack/vite: vendorized JS libs, ES modules, zero build step

https://claude.ai/code/session_01AVZcLrhY6w4QujyzEAnLUJ
@valdo404 valdo404 force-pushed the claude/mcp-server-ui-design-VvKe5 branch from 52c0111 to 9e6706d Compare February 4, 2026 12:44
…lla JS SPA

Add DocxMcp.Ui project: a lightweight read-only session browser that
visualizes document evolution through snapshots and patches.

Back-end (Kestrel Minimal API, NativeAOT-safe):
- REST endpoints for sessions list, detail, history, DOCX byte export
- SSE endpoint with FileSystemWatcher + polling for real-time updates
- LRU cache for reconstructed document bytes (slider scrubbing)
- SessionBrowserService rebuilds documents at any WAL position
- Source-generated JSON serialization (no reflection)

Front-end (vanilla JS + Fluent UI Web Components + docx-preview.js):
- Session list page with live SSE refresh
- Session detail: document tree, DOCX preview, timeline slider, history
- Diff view: side-by-side before/after rendering with patch details
- Debounced slider input for smooth document navigation
- Dark/light theme toggle

CLI integration:
- `docx-cli server [--port N]` launches the UI binary as subprocess
- Forwards DOCX_MCP_SESSIONS_DIR env var to share session storage

Core changes:
- SessionManager.ReplayPatch: private → internal (for UI rebuild)
- InternalsVisibleTo for DocxMcp.Ui

https://claude.ai/code/session_01AVZcLrhY6w4QujyzEAnLUJ
@valdo404 valdo404 force-pushed the claude/mcp-server-ui-design-VvKe5 branch from 9e6706d to efc7e20 Compare February 4, 2026 12:47
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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.

provide visualisation UI

2 participants