0.10.1: Archify Sync in the status bar, server address as a setting

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.
This commit is contained in:
root-at-skic committed 2026-11-06 23:21:56 +02:00
1 parent d02c331155
commit 9ccd67b2dd
7 files changed
+135 -19

No files matched your search

+5 -1
View File
@@ -489,7 +489,11 @@ export async function run(): Promise<void> {
await check('without a shared model, sync stays unloaded and its commands are there', async () => {
const commands = await vscode.commands.getCommands(true);
for (const id of ['archify.sync.signIn', 'archify.sync.share', 'archify.sync.join']) assert.ok(commands.includes(id), `${id} is registered`);
for (const id of ['archify.sync.signIn', 'archify.sync.share', 'archify.sync.join', 'archify.sync.menu', 'archify.sync.setServer']) assert.ok(commands.includes(id), `${id} is registered`);
// No server of anyone's built in: empty until the user sets one.
const config = vscode.workspace.getConfiguration('archify.sync');
assert.equal(config.get('server'), '');
assert.equal(config.get('statusBar'), true);
// The extension host's module cache: dist/sync.js (Yjs, the WebSocket) is not loaded.
const loaded = Object.keys(require.cache).filter((file) => file.endsWith(`${path.sep}dist${path.sep}sync.js`));
assert.deepEqual(loaded, [], 'the sync bundle is not loaded');