From 1a5482b4bf6f84612dafcd9cbc750be50bea6bc6 Mon Sep 17 00:00:00 2001 From: Root At Skic Date: Sat, 10 Oct 2026 13:47:57 +0300 Subject: [PATCH 1/3] Put Archify right-click entries in their own section at the bottom 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. --- CHANGELOG.md | 4 ++++ package.json | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 231c615..29c71b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## Unreleased + +- **Right-click menus:** Archify commands (New Diagram Archify…, Open Preview, Render to HTML File…, Open in Archify HTML Viewer) now sit in their own section at the bottom of the Explorer and editor-tab menus, instead of between New File, New Folder and the other built-in entries. + ## 0.5.1 — 2026-10-07 - **Clearer descriptions:** the Marketplace description, README and messages now say plainly that diagrams are `.archify` files in YAML. Archify's own JSON files (`*.architecture.json`, …) and rendered HTML are described as also supported, in their own section. diff --git a/package.json b/package.json index fe1bc4d..ba45a50 100644 --- a/package.json +++ b/package.json @@ -154,29 +154,29 @@ { "command": "archify.newDiagram", "when": "explorerResourceIsFolder", - "group": "navigation@10" + "group": "z_archify@1" }, { "command": "archify.showPreview", "when": "resourceFilename =~ /(\\.archify|\\.(architecture|workflow|sequence|dataflow|lifecycle)\\.json)$/", - "group": "navigation@20" + "group": "z_archify@2" }, { "command": "archify.renderToHtml", "when": "resourceFilename =~ /(\\.archify|\\.(architecture|workflow|sequence|dataflow|lifecycle)\\.json)$/", - "group": "navigation@21" + "group": "z_archify@3" }, { "command": "archify.openHtmlViewer", "when": "resourceExtname == .html", - "group": "navigation@20" + "group": "z_archify@2" } ], "editor/title/context": [ { "command": "archify.showPreview", "when": "resourceFilename =~ /(\\.archify|\\.(architecture|workflow|sequence|dataflow|lifecycle)\\.json)$/", - "group": "1_open" + "group": "z_archify@1" } ], "file/newFile": [ -- 2.54.0 From bc294dc6bd1887f04dbe63aa17c0d250f58d949c Mon Sep 17 00:00:00 2001 From: Root At Skic Date: Sat, 10 Oct 2026 13:49:27 +0300 Subject: [PATCH 2/3] =?UTF-8?q?Rename=20the=20new-diagram=20command=20to?= =?UTF-8?q?=20Archify=20|=20New=20Diagram=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 ++- README.md | 6 +++--- package.json | 2 +- src/extension.ts | 6 +++--- test/integration/suite.ts | 4 ++-- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 29c71b1..6d780bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,8 @@ ## Unreleased -- **Right-click menus:** Archify commands (New Diagram Archify…, Open Preview, Render to HTML File…, Open in Archify HTML Viewer) now sit in their own section at the bottom of the Explorer and editor-tab menus, instead of between New File, New Folder and the other built-in entries. +- **Right-click menus:** Archify commands (Archify | New Diagram…, Open Preview, Render to HTML File…, Open in Archify HTML Viewer) now sit in their own section at the bottom of the Explorer and editor-tab menus, instead of between New File, New Folder and the other built-in entries. +- The new-diagram command is renamed **Archify | New Diagram…** (was *New Diagram Archify…*). ## 0.5.1 — 2026-10-07 diff --git a/README.md b/README.md index 6939caa..24928f5 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ New diagrams should be `.archify` files; everything below describes them unless ## Quick start -The fastest start: right-click a folder in the Explorer and choose **New Diagram Archify…** (also in *File → New File…* and the Command Palette). Pick a kind of diagram (Architecture, Workflow, Sequence, Data Flow, Lifecycle or Everyday Plan), give it a name, and a small working `.archify` file is created and opened. Change its YAML to fit your case. +The fastest start: right-click a folder in the Explorer and choose **Archify | New Diagram…** (also in *File → New File…* and the Command Palette). Pick a kind of diagram (Architecture, Workflow, Sequence, Data Flow, Lifecycle or Everyday Plan), give it a name, and a small working `.archify` file is created and opened. Change its YAML to fit your case. To write one by hand: @@ -59,7 +59,7 @@ The Archify CLI and the AI agents that use it write diagrams as JSON, named `nam ## Features -- **New diagram from a template**: *New Diagram Archify…* creates a starter `.archify` file for any of the five diagram kinds, or an everyday plan, in the chosen folder. +- **New diagram from a template**: *Archify | New Diagram…* creates a starter `.archify` file for any of the five diagram kinds, or an everyday plan, in the chosen folder. - **Diagram editor**: `.archify` files open as the rendered diagram. **Show Source** opens the YAML beside it, and edits re-render live. - **Live updates**: the diagram re-renders as you edit, and keeps the focus and route you selected (`#focus=…`, `#route=…`). - **HTML viewer**: right-click a rendered `.html` file and choose **Open in Archify HTML Viewer**, or use *Reopen Editor With… → Archify HTML Viewer*. For Archify HTML already open as text, a button appears in the editor title. The viewer reloads when the file changes on disk. @@ -68,7 +68,7 @@ The Archify CLI and the AI agents that use it write diagrams as JSON, named `nam - **Schema help**: completion and hover from Archify's own schemas, through the YAML extension for `.archify` files. - **Source links**: in source-backed diagrams, clicking a source reference opens that file and line range in the editor. If the file is not in the workspace, the web link opens instead. - **Export**: the diagram's own Export menu (PNG, SVG, share card, …) saves through a VS Code save dialog. -- **Commands**: *New Diagram Archify…*, *Archify: Render to HTML File…*, *Archify: Open in Browser*, *Archify: Refresh Preview*, *Archify: Show Source*. +- **Commands**: *Archify | New Diagram…*, *Archify: Render to HTML File…*, *Archify: Open in Browser*, *Archify: Refresh Preview*, *Archify: Show Source*. ## Source evidence diff --git a/package.json b/package.json index ba45a50..d121e38 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "commands": [ { "command": "archify.newDiagram", - "title": "New Diagram Archify\u2026", + "title": "Archify | New Diagram\u2026", "icon": "$(new-file)" }, { diff --git a/src/extension.ts b/src/extension.ts index 175ebea..55d8a0c 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -119,7 +119,7 @@ export function activate(context: vscode.ExtensionContext): void { vscode.commands.registerCommand('archify.newDiagram', async (arg?: unknown) => { const template = await vscode.window.showQuickPick( TEMPLATES.map((item) => ({ label: item.label, description: item.description, template: item })), - { title: 'New Diagram Archify', placeHolder: 'Kind of diagram' }, + { title: 'Archify | New Diagram', placeHolder: 'Kind of diagram' }, ); if (!template) return; const { file, defaultName } = template.template; @@ -128,7 +128,7 @@ export function activate(context: vscode.ExtensionContext): void { let target: vscode.Uri | undefined; if (folder) { const name = await vscode.window.showInputBox({ - title: 'New Diagram Archify', + title: 'Archify | New Diagram', prompt: `File name in ${vscode.workspace.asRelativePath(folder, true)}`, value: defaultName, validateInput: async (value) => @@ -140,7 +140,7 @@ export function activate(context: vscode.ExtensionContext): void { } else { // No workspace: let the user choose where to save. target = await vscode.window.showSaveDialog({ - title: 'New Diagram Archify', + title: 'Archify | New Diagram', filters: { 'Archify Diagram': ['archify'] }, saveLabel: 'Create', }); diff --git a/test/integration/suite.ts b/test/integration/suite.ts index 6358fb5..58edae6 100644 --- a/test/integration/suite.ts +++ b/test/integration/suite.ts @@ -97,11 +97,11 @@ export async function run(): Promise { assert.ok(diagnostics[0].range.start.line >= 2, `reported on line ${diagnostics[0].range.start.line + 1}`); }); - await check('New Diagram Archify creates a .archify file from a template and opens the diagram', async () => { + await check('Archify | New Diagram creates a .archify file from a template and opens the diagram', async () => { // Menus show the bare title, so it must name Archify by itself. const commands = vscode.extensions.getExtension(EXTENSION_ID)?.packageJSON.contributes.commands as { command: string; title: string; category?: string }[]; const newDiagram = commands.find((item) => item.command === 'archify.newDiagram'); - assert.equal(newDiagram?.title, 'New Diagram Archify…'); + assert.equal(newDiagram?.title, 'Archify | New Diagram…'); assert.equal(newDiagram?.category, undefined); const folder = workspaceFile('.'); // Stub the template pick and the name prompt; check the name validation on the way. -- 2.54.0 From 0b536f3e103d4ac3362fdda5b322e1110bbcaa0c Mon Sep 17 00:00:00 2001 From: Root At Skic Date: Sat, 10 Oct 2026 15:04:52 +0300 Subject: [PATCH 3/3] =?UTF-8?q?Name=20all=20commands=20"Archify=20|=20?= =?UTF-8?q?=E2=80=A6",=20keep=20the=20menu=20section=20last;=200.5.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- CHANGELOG.md | 6 +++--- README.md | 6 +++--- package-lock.json | 4 ++-- package.json | 33 +++++++++++++-------------------- 4 files changed, 21 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d780bd..97f35e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,9 @@ # Changelog -## Unreleased +## 0.5.2 — 2026-10-10 -- **Right-click menus:** Archify commands (Archify | New Diagram…, Open Preview, Render to HTML File…, Open in Archify HTML Viewer) now sit in their own section at the bottom of the Explorer and editor-tab menus, instead of between New File, New Folder and the other built-in entries. -- The new-diagram command is renamed **Archify | New Diagram…** (was *New Diagram Archify…*). +- **Right-click menus:** the Archify commands (Archify | New Diagram…, Archify | Open Preview, Archify | Render to HTML File…, Archify | Open in HTML Viewer) now sit in their own section at the very bottom of the Explorer and editor-tab menus, instead of between New File, New Folder and the other built-in entries. +- **All commands are named "Archify | …"**, the same in right-click menus, the editor title bar and the Command Palette: Archify | New Diagram… (was *New Diagram Archify…*), Archify | Open Preview, Archify | Open Preview to the Side, Archify | Render to HTML File…, Archify | Open in HTML Viewer, Archify | Open in Browser, Archify | Refresh Preview, Archify | Show Source. ## 0.5.1 — 2026-10-07 diff --git a/README.md b/README.md index 24928f5..6269714 100644 --- a/README.md +++ b/README.md @@ -62,19 +62,19 @@ The Archify CLI and the AI agents that use it write diagrams as JSON, named `nam - **New diagram from a template**: *Archify | New Diagram…* creates a starter `.archify` file for any of the five diagram kinds, or an everyday plan, in the chosen folder. - **Diagram editor**: `.archify` files open as the rendered diagram. **Show Source** opens the YAML beside it, and edits re-render live. - **Live updates**: the diagram re-renders as you edit, and keeps the focus and route you selected (`#focus=…`, `#route=…`). -- **HTML viewer**: right-click a rendered `.html` file and choose **Open in Archify HTML Viewer**, or use *Reopen Editor With… → Archify HTML Viewer*. For Archify HTML already open as text, a button appears in the editor title. The viewer reloads when the file changes on disk. +- **HTML viewer**: right-click a rendered `.html` file and choose **Archify | Open in HTML Viewer**, or use *Reopen Editor With… → Archify HTML Viewer*. For Archify HTML already open as text, a button appears in the editor title. The viewer reloads when the file changes on disk. - **Problems**: YAML syntax errors, plus `archify validate`'s schema, layout and evidence problems, appear at the matching line of the `.archify` file. - **Brand logos**: after `brand:` the editor suggests Archify's built-in brand IDs (PostgreSQL, Redis, Kafka, Docker, …). Typing an alias or product name finds them too, so `kafka` offers `apache-kafka`. An unknown brand is reported on its own line. - **Schema help**: completion and hover from Archify's own schemas, through the YAML extension for `.archify` files. - **Source links**: in source-backed diagrams, clicking a source reference opens that file and line range in the editor. If the file is not in the workspace, the web link opens instead. - **Export**: the diagram's own Export menu (PNG, SVG, share card, …) saves through a VS Code save dialog. -- **Commands**: *Archify | New Diagram…*, *Archify: Render to HTML File…*, *Archify: Open in Browser*, *Archify: Refresh Preview*, *Archify: Show Source*. +- **Commands**: *Archify | New Diagram…*, *Archify | Render to HTML File…*, *Archify | Open in Browser*, *Archify | Refresh Preview*, *Archify | Show Source*. ## Source evidence A diagram that declares `meta.repository` and `sources` is verified against a local Git checkout whose `origin` and pinned commit match. The extension uses the Git top-level directory of the diagram file, or `archify.repoRoot` when set. -When verification fails, the default (`archify.sourceEvidence: "fallback"`) still shows the diagram without source links, explains why in a notice, and reports the reason as a warning. Set it to `"strict"` to treat this as an error, as the Archify CLI does. *Render to HTML File…* always verifies strictly and asks before rendering without source links. +When verification fails, the default (`archify.sourceEvidence: "fallback"`) still shows the diagram without source links, explains why in a notice, and reports the reason as a warning. Set it to `"strict"` to treat this as an error, as the Archify CLI does. *Archify | Render to HTML File…* always verifies strictly and asks before rendering without source links. ## Settings diff --git a/package-lock.json b/package-lock.json index 0a2f1d4..347c168 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "archify-vscode-ext", - "version": "0.5.1", + "version": "0.5.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "archify-vscode-ext", - "version": "0.5.1", + "version": "0.5.2", "license": "MIT", "dependencies": { "yaml": "^2.9.1" diff --git a/package.json b/package.json index d121e38..244fd96 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "archify-vscode-ext", "displayName": "Archify Diagram Viewer", "description": "Archify diagrams in VS Code. Write diagrams as .archify files in YAML: they open as the interactive diagram, with live updates, validation, templates and completion. Also previews Archify's own JSON files (*.architecture.json, \u2026) and opens rendered Archify HTML.", - "version": "0.5.1", + "version": "0.5.2", "publisher": "root-at-skic", "license": "MIT", "icon": "media/icon.png", @@ -46,44 +46,37 @@ }, { "command": "archify.showPreview", - "title": "Open Preview", - "category": "Archify", + "title": "Archify | Open Preview", "icon": "$(open-preview)" }, { "command": "archify.showPreviewToSide", - "title": "Open Preview to the Side", - "category": "Archify", + "title": "Archify | Open Preview to the Side", "icon": "$(open-preview)" }, { "command": "archify.openHtmlViewer", - "title": "Open in Archify HTML Viewer", - "category": "Archify", + "title": "Archify | Open in HTML Viewer", "icon": "$(open-preview)" }, { "command": "archify.renderToHtml", - "title": "Render to HTML File\u2026", - "category": "Archify", + "title": "Archify | Render to HTML File\u2026", "icon": "$(file-code)" }, { "command": "archify.openInBrowser", - "title": "Open in Browser", - "category": "Archify", + "title": "Archify | Open in Browser", "icon": "$(globe)" }, { "command": "archify.refreshPreview", - "title": "Refresh Preview", - "category": "Archify", + "title": "Archify | Refresh Preview", "icon": "$(refresh)" }, { "command": "archify.showSource", - "title": "Show Source", - "category": "Archify", + "title": "Archify | Show Source", "icon": "$(go-to-file)" } ], @@ -154,29 +147,29 @@ { "command": "archify.newDiagram", "when": "explorerResourceIsFolder", - "group": "z_archify@1" + "group": "zzz_archify@1" }, { "command": "archify.showPreview", "when": "resourceFilename =~ /(\\.archify|\\.(architecture|workflow|sequence|dataflow|lifecycle)\\.json)$/", - "group": "z_archify@2" + "group": "zzz_archify@2" }, { "command": "archify.renderToHtml", "when": "resourceFilename =~ /(\\.archify|\\.(architecture|workflow|sequence|dataflow|lifecycle)\\.json)$/", - "group": "z_archify@3" + "group": "zzz_archify@3" }, { "command": "archify.openHtmlViewer", "when": "resourceExtname == .html", - "group": "z_archify@2" + "group": "zzz_archify@2" } ], "editor/title/context": [ { "command": "archify.showPreview", "when": "resourceFilename =~ /(\\.archify|\\.(architecture|workflow|sequence|dataflow|lifecycle)\\.json)$/", - "group": "z_archify@1" + "group": "zzz_archify@1" } ], "file/newFile": [ -- 2.54.0