add header rescan button to apply officer-items changes without restart

New POST /api/rescan re-runs the boot item setup (ensureItemDirs +
ensureToolLoader) and returns live item counts; the header button calls it
and invalidates the item query caches so the UI refetches from disk.

Also fix ensure-tool-loader to write into OFFICER_ITEMS_DIR/extensions (the
runtime read path) instead of the now-unread DATA_PATH/extensions.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-21 01:31:51 +00:00
co-authored by Claude Opus 4.8
parent 86a547b216
commit b9eb78c919
5 changed files with 89 additions and 2 deletions
+2 -2
View File
@@ -1,11 +1,11 @@
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
import { join, resolve } from 'node:path';
import { DATA_PATH } from './data-path';
import { itemsDir } from './data-path';
const SOURCE_PATH = resolve(import.meta.dir, 'tool-loader-source.ts');
export function ensureToolLoader(): void {
const targetDir = join(DATA_PATH, 'extensions', 'tool-loader');
const targetDir = join(itemsDir('extensions'), 'tool-loader');
const targetFile = join(targetDir, 'index.ts');
mkdirSync(targetDir, { recursive: true });