Repository navigation
Release 0.9.0: client-drawn SysON views, UX v1 viewers, @mcpview migration - #7
Merged
Merged
Conversation
…t preview Codex work of 2026-10-23, left uncommitted in the main checkout and captured here unchanged so the UX work can resume from it: compact floating diagram toolbar, temporary Space-drag panning, a diagram model with rectangle selection of primary blocks, and SelectionBasket rebuilt on the kit's ActiveContextChip. Focused tests and Codex reviews passed on the local preview; the basket still imports the unpublished @casys/mcp-view-components/preact/context entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adopt SDK v2 and shared active context controls with compact, reference and query tiers. Resolve complete multi-element identity queries for graduated selections. Co-Authored-By: Codex <noreply@openai.com>
…diagnostics Co-Authored-By: Codex <noreply@openai.com>
Applies syson-ux-design.md on the @mcpview context controls. - Shared chrome: one ViewerHeader (explicit title, meta, actions, and the AI-context basket at its end), one selectable ElementRow (kind pill, name, readable kind, no UUID in rows; selection intent shown at once through data-context-state, double-click or Enter opens without an intermediate context write), KindMark (SysML family tones, outlined definitions) and TechnicalDetails (ids live there, with copy). - Model explorer: a real tree. Children load lazily and stay cached, indent guides, first level grouped by family when long, kind chips act as filters, WAI-ARIA tree keyboard navigation; opening an element shows its page (kind, contents by kind, technical details). - Validation: counts per severity, diagnostics grouped by severity and named by their constraint, the constraint inventory; a click puts the constraint and its diagnostic in AI context. - Query results and value change: shared rows and full basket, query line in the header, sort and selection kept across locales; before/after value card. - Requirements and trace: live list with authored limits, in-place detail sheet; trace rows with TRACE GAP and literal unknown verification, a "gaps only" filter and a summary. - Diagram: one header line with a "..." menu (existing views, rendering details), 35 % opening floor in reading order (top-left block), overview map, zoom to selection, non-scaling selection outline with a count badge, keyboard help behind "?". - Tests and checks follow the new structure; verify-ui-bundles accepts viewer catalogs built on sysonMessages. Verified in the audit host on the live SysON project: ui:check, 234 tests, lint, fmt, check, and 7 fresh bundles. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The diagram viewer now draws the SysON snapshot itself from its nodes and edges instead of showing the server's approximate SVG (kept as the fallback when the data cannot be rendered client-side). - Edges live in a layer under opaque blocks, so no line crosses a block's content; orthogonal routes with rounded corners. - Blocks: family accent bar, kind pill (outlined definitions, filled usages), 13 px names, titled compartments with "+N more", ports on the border with outside labels, dot grid, hover lifts a block and highlights its edges; selection and pending states as before. - Level of detail: full blocks from 60 %, header only (pill, name, item count at constant screen size) from 30 %, tinted blocks with constant 11 px names below, so the 35 % opening is readable. - Layout control in the "..." menu: SysON (default) or Auto. Auto runs ELK layered/top-down with orthogonal routing and packed components, lazily, in a worker with an in-page fallback, ~0.2-0.5 s on view1; failures fall back to the SysON layout with a quiet status. - Edge markers follow the edge type and never invent semantics (view1 only reports straight edges today). The bundle grows from 0.63 MB to 2.28 MB (ELK, never evaluated at opening; first paint 123 -> 173 ms on localhost). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The three view types beyond the General View fell back to the server's
approximate SVG and drew every element SysON hides. They are now drawn by
the viewer, nested as SysON shows them.
- Snapshot contract (syson_diagram_snapshot): SysON's node and edge state
is read; hidden elements (and everything under a hidden node) are left
out and counted in hiddenNodeCount / hiddenEdgeCount, faded ones carry
faded: true. Node styles carry childrenLayout (list / free); children of
a free-form node or of a view frame have kind "node". Edges carry
SysON's style (lineStyle, sourceArrow, targetArrow). The advertised
output schema and the viewer validator accept the new fields.
- Model: list compartments stay sections of rows; free-form compartments
are regions holding nested blocks (parent, depth); view frames get a
title tab; start, done, decision and fork/join bars keep their names;
parameter ports keep their in/out direction.
- Notation from SysON's own style: dashed successions with open heads,
filled item-flow heads, diamonds, circles, triangles with bar or dots.
The type-based marker remains the fallback.
- Drawing: container bodies, then edges, then blocks (opaque headers and
list sections), then edge labels on top, placed off blocks and other
labels. Routed edges attach facing their bends and stay orthogonal;
north/south port labels stack.
- SysON layout: compartments where SysON put them; unplaced nested blocks
get a grid in their region and a placed container grows around them.
- Auto layout: containers are ELK compound nodes (free ports, padding for
header and sections); edges live in their lowest common container;
diagonal or missing sections are routed locally.
- Heading: the diagram's name is the title, the representation type
("General View") the eyebrow. A container spanning the diagram opens
on its header.
Recorded fixtures of the three views (tests/fixtures/diagram-views) back
the model, scene, schema and real-ELK tests. Reviewed by a Sonnet
subagent; its three findings (output schema, ELK compound ports, unplaced
nested blocks) are fixed with tests.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Version 0.9.0 in deno.json, the App manifests, the server identity test, the README and the getting-started guide; the documented OCI image moves to ghcr.io/superworldsavior/mcp-syson. - CHANGELOG entry for the branch: client-drawn SysON views with nested blocks and SysON's notation, SysON/Auto layout, the seven viewers' UX, syson_requirements_list and syson_diagram_types, the snapshot contract change (hidden elements left out, kinds, styles), the @mcpview and MCP SDK v2 migration, and the requirements-trace and validation fixes. - README captures: the requirements viewer is re-rendered on the new UX and a diagram viewer capture (FlightModes state machine) leads the page. The documentation harness serves either fixture (?view=), accepts context updates, and gives the diagram a fixed height so the capture opens at full detail; docs:viewer-fixtures builds diagram-session.json from the recorded view fixture, and docs:viewer-screenshot writes both images. - Docs describe what the diagram viewer draws and the server SVG's role as fallback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
superWorldSavior
marked this pull request as ready for review
October 24, 2026 16:27
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Release 0.9.0 of
@casys/mcp-syson. SeeCHANGELOG.mdfor the full entry.syson_diagram_snapshotcontract (breaking fornodes/edgesconsumers): hidden elements left out and counted (hiddenNodeCount,hiddenEdgeCount), nested nodes have kindnode, styles carrychildrenLayout, edges carry SysON'sstyle. The advertised output schema follows.syson_requirements_list,syson_diagram_types.@mcpview/server0.30.0,@mcpview/contracts0.2.0,@mcpview/view0.11.0,@mcpview/components0.12.0, MCP SDK v2.Verification
deno task fmt,lint,check,ui:check,ui:build,ui:verify: green;deno task test: 271 passed, including recorded fixtures of the three views, the advertised output schema (Ajv) and a real-ELK layout test.view1unchanged apart from hidden compartments now left out (as SysON shows it).deno publish --dry-run: success.Release
After merge, tag
v0.9.0onmain: the release workflow builds and smokes the GHCR image, qualifies it against SysON, then publishes the JSR package.🤖 Generated with Claude Code