Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit c31ee48452e94eb68af9053b39da0a17488c3cde
parent 09bf62e1c8efdccae41348823ec029e62fbe39f1
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Tue, 18 Aug 2026 19:51:16 -0400

umtool: register it as a workspace package and give it a port block

The tool's source was committed; the wiring that makes it runnable from the
repo root was not. A fresh checkout got umtool/ and no way to start it --
pnpm --filter umtool resolved to nothing, and its ports were documented
nowhere.

  - pnpm-workspace.yaml lists umtool, and pnpm-lock.yaml gains its importer.
    The eslint peer-resolution churn in the lockfile is that same install
    re-resolving peers, not a dependency change of its own.
  - dev:umtool goes through scripts/worktree.mjs like every other dev script,
    so a worktree gets its own ports instead of colliding with the checkout
    someone is judging clips in.
  - UMTOOL_PORT 3050 / UMTOOL_E2E_PORT 3051 join PORT_BASES and the table in
    WORKTREES.md. The three HOMEPAGE_* rows in that table are the same fix a
    step earlier: those ports were already in PORT_BASES and had never been
    written down.
  - .gitignore covers the e2e fixture, the build dir and the e2e server's
    SEPARATE build dir. Next refuses two dev servers for one project, so the
    suite needs its own -- and running the tests while judging clips is the
    normal case here, not an edge one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Diffstat:
M.gitignore | 9+++++++++
MWORKTREES.md | 5+++++
Mpackage.json | 1+
Mpnpm-lock.yaml | 72+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
Mpnpm-workspace.yaml | 1+
Mscripts/worktree.mjs | 2++
6 files changed, 85 insertions(+), 5 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -130,3 +130,12 @@ yarn-error.log* # Machine-specific and rebuildable with scripts/build-sortformer.sh. /.diarize/sortformer/ /.diarize/.sortformer-build/ + +# umtool: the e2e fixture (built by e2e/fixtures/make-fixture.mjs), the build +# dir, and the e2e dev server's SEPARATE build dir -- it needs its own so it can +# run alongside a dev server someone is judging clips in (Next refuses two for +# one project). +umtool/.e2e-song/ +umtool/.next/ +umtool/.next-e2e/ +umtool/test-results/ diff --git a/WORKTREES.md b/WORKTREES.md @@ -23,6 +23,11 @@ defaults — nothing changes for the primary checkout. | `EXPORT_DEV_PORT` | 3000 | export real dev (`pnpm dev:export`) | | `EXPORT_E2E_PORT` | 3020 | export's own Playwright suite | | `OLLAMA_STUB_PORT` | 11435 | digest-lane stub server in the editor e2e suite | +| `HOMEPAGE_DEV_PORT` | 3030 | homepage (hub) real dev (`pnpm dev:homepage`) | +| `HOMEPAGE_PORT` | 3031 | homepage static `serve out` (`pnpm start:homepage`) | +| `HOMEPAGE_E2E_PORT` | 3040 | homepage's own Playwright suite | +| `UMTOOL_PORT` | 3050 | um-clip triage tool real dev (`pnpm dev:umtool`) | +| `UMTOOL_E2E_PORT` | 3051 | umtool's own Playwright suite | | `PLAYWRIGHT_BASE_URL` | `http://localhost:3011` | node-side fetches in specs | So worktree #1 runs editor on **3101**, test server on **3111**, export on **3110**, etc. diff --git a/package.json b/package.json @@ -16,6 +16,7 @@ "dev:editor": "node scripts/worktree.mjs run -- pnpm --filter editor run dev", "dev:export": "node scripts/worktree.mjs run -- pnpm --filter export run dev", "dev:homepage": "node scripts/worktree.mjs run -- pnpm --filter homepage run dev", + "dev:umtool": "node scripts/worktree.mjs run -- pnpm --filter umtool run dev", "deploy:homepage": "pnpm --filter homepage run deploy", "e2e": "node scripts/worktree.mjs run -- pnpm --filter editor run e2e", "wt": "node scripts/worktree.mjs", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml @@ -302,6 +302,43 @@ importers: specifier: ^5.6.0 version: 5.9.3 + umtool: + dependencies: + next: + specifier: 16.2.3 + version: 16.2.3(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: + specifier: 19.2.4 + version: 19.2.4 + react-dom: + specifier: 19.2.4 + version: 19.2.4(react@19.2.4) + yt-dlp-transcript-common: + specifier: workspace:* + version: link:../common + devDependencies: + '@playwright/test': + specifier: ^1.59.1 + version: 1.59.1 + '@tailwindcss/postcss': + specifier: ^4.2.2 + version: 4.2.4 + '@types/node': + specifier: ^20.19.39 + version: 20.19.39 + '@types/react': + specifier: ^19.2.14 + version: 19.2.14 + '@types/react-dom': + specifier: ^19.2.3 + version: 19.2.3(@types/react@19.2.14) + tailwindcss: + specifier: ^4.2.2 + version: 4.2.4 + typescript: + specifier: ^5.9.3 + version: 5.9.3 + packages: '@alloc/quick-lru@5.2.0': @@ -6306,7 +6343,7 @@ snapshots: '@next/eslint-plugin-next': 16.2.3 eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.59.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-react: 7.37.5(eslint@9.39.4(jiti@2.6.1)) @@ -6349,7 +6386,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 @@ -6364,13 +6401,38 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.59.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.4.3 + eslint: 9.39.4(jiti@2.6.1) + get-tsconfig: 4.14.0 + is-bun-module: 2.0.0 + stable-hash: 0.0.5 + tinyglobby: 0.2.16 + unrs-resolver: 1.11.1 + optionalDependencies: + eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.59.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.59.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.10 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)): + dependencies: + debug: 3.2.7 + optionalDependencies: + eslint: 9.39.4(jiti@2.6.1) + eslint-import-resolver-node: 0.3.10 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)) transitivePeerDependencies: - supports-color @@ -6386,7 +6448,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.59.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.59.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) hasown: 2.0.3 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -6415,7 +6477,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.59.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)) + eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)) hasown: 2.0.3 is-core-module: 2.16.1 is-glob: 4.0.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml @@ -4,6 +4,7 @@ packages: - export - homepage - mcp + - umtool allowBuilds: esbuild: true diff --git a/scripts/worktree.mjs b/scripts/worktree.mjs @@ -22,6 +22,8 @@ const PORT_BASES = { HOMEPAGE_DEV_PORT: 3030, // homepage (hub) real dev HOMEPAGE_PORT: 3031, // homepage static `serve out` (start:homepage) HOMEPAGE_E2E_PORT: 3040, // homepage's own Playwright suite + UMTOOL_PORT: 3050, // um-clip triage tool real dev + UMTOOL_E2E_PORT: 3051, // umtool's own Playwright suite }; const OFFSET_STEP = 100;