On a diagram page it goes last in Archify's toolbar, after Export, instead
of floating over it. Every rule is !important and flex: none, so the page's
button styles, narrow windows and high contrast themes no longer squeeze it
or strip its colour.
A labelled Sync button sits top right on every Archify page, also in Source, and opens the Sync menu. On a shared model it turns green and reads Shared. The title-bar icon and the pre-share status bar entry are gone, with their settings.
Every Archify page and .archify text editor gets a Sync button top right that opens the Sync menu: sign in, share, join, server address. archify.sync.titleButton hides it. The status bar entry stays.
Going back from Source to Model, Diagram or View left the editor on the page under the picture when nothing had been edited, since the page was only replaced after a re-render. The pane now hides whenever Source is off.
In workspaces with Archify files, Archify Sync sits in the status bar and
opens a menu: sign in, share, join, server address, settings. The new
archify.sync.server setting (empty by default) is used without asking,
and in workspace settings gives a project one server.
archify.sync.statusBar hides the entry.
Several people edit one model at once through a server you run yourself
(archify-vscode-ext-sync); the files stay ordinary files on each disk.
Sign-in through the browser, offline-first with later merge, teammates'
cursors in the Source view and text editors, and a Shared section on the
model page with people, versions, Compare and Restore.
Without a server nothing changes: the sync code is a separate bundle that
loads only when a model is shared, after a sign-in, or when a sync command
or invite link is used.
On a main.archify page in Source, Graph built the Graph page but the
host held it back until Source closed, so nothing happened, and Model
then showed the held Graph page. Switching between the model and its
graph now leaves Source first, and the page forgets Source when Graph
replaces it, so Model on the Graph page comes back to the model.
Every Archify page can show its file's YAML in place. Diagrams get
Diagram | Graph | Source (Graph only inside a model), main.archify
Model | Graph | Source, registry and decision pages View | Source, and the
Graph page a Source segment. 2D | 3D moves left of that switch and hides
while Source shows.
The YAML opens in a CodeMirror editor inside the page (dist/source.js,
loaded on first use), themed with the page's colours. Edits go to the VS
Code document as WorkspaceEdits; outside changes come back to the page.
Undo and redo are the editor's own, since VS Code sends ⌘Z in a focused
webview to the webview; save and find stay VS Code's. Problems come from
the host only (what the Problems panel holds for the file) and are
counted on the Source segment; completion and hover come from the schema,
folded into one draft-07 document per diagram type.
The host now checks .archify files against the extension's schema with
ajv on the YAML as written, before archify validate, and checks
.archify-registry files against the registry schema for the first time.
Registry and decision pages become text editor providers. While Source
shows, new renders wait and appear when the picture comes back.
Show Source switches the page to Source; Open in Text Editor (the editor
title button) opens the text beside it, as Show Source did. The decision
schema is no longer given to the YAML extension. Fixed: YAML errors in
registry and decision files were reported on line 1; "Webview is
disposed" when a diagram closed mid-render; the model heading under the
toolbar in narrow editors.
- Archify's theme toggle: pill track, sliding knob, masked sun/moon icon
- buttons as quiet 0.5rem pills inside 0.5625rem controls, pressed state like Archify's, Export PNG as the filled 0.6875rem primary
- Model | Graph switch styled as the 2D | 3D switch's twin
- layered layout by type (clients left, data right), empty columns left out, barycenter row ordering; registries in a row above, decisions in a row below; Force layout as the alternative
- orthogonal connections with labels staggered next to their source; opaque tinted nodes hide lines behind them
- hover glow on elements and their connections; decision and registry links show for the selected element or all with Links
- sun/moon button next to Export; the choice is remembered in the page state and written to the archify-theme key the diagram pages use
- explicit dark and light token sets; without a choice the page follows VS Code's theme as before
- Cytoscape restyles from the page tokens whenever the theme changes
- one node per decision (tag coloured by status) with decides links to its elements and supersedes links
- one node per registry file with defines links to its elements
- own legend chips, side panels (Open decision, Open registry), type:decision and type:registry
- walks and paths follow the diagrams' connections only; attached nodes follow their elements into a result
- Model | Graph switch on main.archify (Diagram | Graph on diagram pages, narrowed to that diagram)
- union graph of every element and connection, registry and inline, built from the model index
- query box: text, type:, diagram:, decision:, uses:, near:, from: to:, unused, shared, -shared
- side panel per element and connection with diagrams, registry line and decisions one click away
- legend chips, Fit, Layout, Labels, Export PNG; Cytoscape.js bundled as dist/graph.js
- command Archify | Open Model Graph; integration check; unit tests for graph and queries
- *.archify-decision files: id (unique, words), title, status, date,
elements, diagrams, supersedes, and prose; parsed, merged and link-checked
in the model index; diagnostics on the file
- diagrams point at decisions with decisions: [...] on the diagram, nodes
and edges; stripped before Archify, unknown ids reported, completion,
hover and go-to-definition for the ids and for elements/diagrams/
supersedes in decision files
- Decisions panel on the main.archify page; Decisions rail panel under a
diagram (hover lights up the node or connection); decisions on element
cards and in the element dialog; decision view for the file, with a
lost-model note outside a model
- Archify | New Decision… command and template; editor schemas; the three
New Model examples carry decisions; docs, changelog, 0.8.0
- resolveRefs no longer adds cards to a diagram; it returns node id →
description, which the page sets as the tooltip of the matching row in
Archify's Elements panel
- hand-written cards pass through unchanged; docs and changelog
- one collapsible header per .archify-registry file with its element
count and an Open button that opens the registry view; files start
collapsed, the Registry panel open
- view types moved to views/viewTypes.ts so the diagram page can open a
registry without a circular import
- 0.7.1
- .archify-registry opens in a new read-only custom editor (archify.registry,
default): the file's elements as cards; click one for a dialog with its
description, the defining line (opens the YAML) and the diagrams that use
it (open on click); Show Source and Open Model work from the view
- the same dialog opens from the registry cards on the model page
- Archify's node index is titled Elements; a Connectors panel built from the
SVG edges lists from → to with the label, highlights on hover and keeps the
highlight on click; side by side in the bottom rail
- integration test for the registry view; docs and changelog
- <details> panels for Diagrams (open) and Registry (closed by default)
- each folder inside Diagrams is its own collapsible header with a count,
above its diagram cards; diagrams next to main.archify list directly
- open/closed state is kept in the webview state, so re-renders and
restores keep it
- model page: registry elements are rendered as Archify info cards (type
colour dot, label, id · type, description, used-in chips that open the
diagram), replacing the table
- resolveRefs: a diagram without cards of its own gets one card per drawn
shared element that has a description, so the registry text shows under
every model diagram as it does on hand-written diagrams
- unit tests for generated cards, own cards winning and no cards without
refs; docs and changelog
- templates/models: C4 - Standard Web App, C4 - E-Shop, C4 - Event-Based
Integration; each a complete model (main.archify, registry, context,
containers, components) that validates
- archify.newModel: pick an example and a folder name, copy it, name the
model after the folder, open the model page
- Explorer menu: New Model… on folders, Open Model on .archify and
.archify-registry files; File → New File… lists New Model…
- unit test validates every example end to end; integration test runs the
command; README, CHANGELOG, docs/model.md
A folder with main.archify at its top is a model, a set of diagrams
that belong together. Opening main.archify shows the model page: the
model's name and description, its own overview diagram when the file
has one, the diagrams grouped by folder (click to open), and the
registry with where each element is used. The page is built by
traversing the folder tree and refreshes when files change.
*.archify-registry files define shared elements once; diagrams draw
them with `ref: <id>` plus position and may override label, sublabel
and tag. References are resolved before Archify runs, so Archify is
unchanged. Hover, go-to-definition and completion on ref; unknown
names, forbidden overrides, duplicate ids and broken registries in
Problems; registry edits re-render open diagrams. `diagram:` links on
elements and components open the linked diagram on double-click.
New command Archify | Open Model, a Model template for New Diagram…,
editor schemas for the new keys and for registries, docs/model.md and
examples/online-shop. Single diagrams behave exactly as before.
package.json declares sponsor.url, so the Extensions view and the
Marketplace page show a Sponsor button. The README mentions it after
the introduction and gets a Support section with the button.
The toolbar button next to Export is now a two-state switch: both
labels are visible and the filled half is the current view, so a
diagram that opens in 2D shows "2D" and one click flips it to 3D. The
dropdown is gone; nothing is greyed out and no menu stays open after a
choice.
The 3D-only controls moved to Archify's bottom-right dock beside PATH
and LENS: STACK (levels by kind, on or off), TOP (from above), and the
zoom stepper's middle button reads RESET while 3D is on, instead of a
2D zoom level that meant nothing there.
3D view: a "3D" menu beside Export switches the diagram to a three.js
scene built from the live Archify SVG. Nodes become blocks topped with
the node as Archify draws it, relationships become lit pipes along
Archify's routes, and the canvas, frames, lanes and legend form the
floor. Clicks and hover go to the SVG nodes, so focus, the Semantic
Passport and the intent trace work as in 2D; Archify's own animations
(trace, node pulse, passport/path/lens flows) are mirrored live. The
menu also offers flat or stacked levels, reset view and a top view;
Export gains "3D view" (PNG). Trackpad scrolling pans, pinch and the
mouse wheel zoom, and the zoom buttons work beyond the 2D limits.
The scene draws only when something moves. New setting
archify.defaultView.
Source: src/ is split by job (commands, views, webview, archify,
sources, language, util, viewer3d); behaviour unchanged.
All eight commands drop the Archify category and carry the prefix in the
title, so menus, the editor title bar and the Command Palette read the
same. The right-click group is zzz_archify: VS Code has a built-in
z_commands group that would otherwise sort after it.
Explorer and editor-tab context menus: the Archify commands used the
built-in navigation group and were mixed with New File, New Folder and
the rest. They now use a z_archify group, which VS Code sorts last and
separates with a divider.
- Marketplace description, README and messages lead with .archify files
in YAML; Archify's JSON files and rendered HTML are described as also
supported, in their own README section and a supported-files table
- Rename the rendered-HTML editor to Archify HTML Viewer (it shared the
extension's name) and its command to Open in Archify HTML Viewer
- Empty or broken .archify files ask for valid YAML instead of JSON
- Completion for brand values in .archify (YAML) and Archify JSON sources,
from the bundled brand-marks/catalog.json (107 marks); aliases and
product names match, so "kafka" offers apache-kafka
- brand/unknown diagnostics carry their JSON pointer only at the start of
the message; use it when subject.path is missing, so the error lands on
the brand line instead of the top of the file
- Unit tests for catalog loading, value detection and pointer fallback;
integration checks for completion and diagnostic placement
Closes#5
The Explorer folder menu shows a command's title without its category,
so it read just "New Diagram…". The title now names Archify itself and
the category is dropped, so the Command Palette shows the same text.
Integration test asserts the title.
- Archify: New Diagram… (Explorer folder menu, File > New File…, Command
Palette) creates a .archify file from a template and opens the diagram
- Six YAML templates: architecture, workflow, sequence, dataflow,
lifecycle and an everyday plan; connections carry ids, workflows use
schema 2
- Title and meta.output follow the file name; template comments are kept
- Tests: every template passes archify validate; integration check for
the command
Closes#2
- .archify content is YAML (JSON still accepted); converted to JSON for the renderer
- Archify Diagram custom editor is the default for *.archify; Show Source opens the YAML beside it
- YAML syntax errors and validation problems mapped to YAML lines
- yamlValidation for schema completion with redhat.vscode-yaml
- scripts/to-yaml.mjs converts existing .archify files
.archify files are Archify JSON diagram sources. They open as JSON,
preview with the same commands, report validation problems, and get
completion from a schema that dispatches on diagram_type. Adds a
hello.archify example and tests for detection, the dispatching schema
and the VS Code behaviour.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
VS Code extension that previews Archify diagrams from their JSON sources
(live, as you type) and opens rendered Archify HTML in a viewer tab.
Bundles the Archify 3.0.1 renderer and runs it on VS Code's Node runtime.
Adds validation diagnostics, JSON schema help, source-link navigation,
export saving, render-to-file and open-in-browser commands.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>