Skip to content

T-KTGF-adopt-augmented-web

Status: closed/done · Impact: medium · Complexity: medium

Bring the augmented_web Nuxt app in as apps/augmented_web/, joining the ROOT Bun workspace so its @augment/json-canvas-core / @augment/json-canvas-vue deps resolve to the vendored packages/ts/* members.

Source: https://github.com/sksizer/augmented_books at pinned rev acedcf77652e2e7c481e95123c486c2befe2c423, path apps/augmented_web/.

LocationRole today
package.jsonRoot workspaces list — needs an explicit apps/augmented_web entry
packages/ts/Destination of the vendored @augment/* packages (T-LVLY)
.moon/workspace.ymlapps/* glob registers the app via its moon.yml
apps/zoo/MIGRATION.mdpnpm→Bun conversion recipe

Source app facts at the pinned rev: Nuxt app with layers/, server/, shared/, tests/ + vitest.config.ts, own package-lock.json (npm), mise.toml, moon.yml, CLAUDE.md. Declares deps @augment/json-canvas-core, @augment/json-canvas-vue, and @augment/obsidian-bases — but a source grep at the pinned rev found no @augment/obsidian-bases import in its code. Verify and drop the unused dep rather than wiring it (this shrinks T-NLKF’s surface).

apps/augmented_web/ is a root Bun workspace member; json-canvas deps resolve locally; the obsidian-bases dep is either dropped (grep-proven unused) or wired to packages/ts/obsidian-bases-augment. Build and vitest suite pass.

  1. Clone the pinned rev; copy apps/augmented_web/ (exclude node_modules, package-lock.json).
  2. Add apps/augmented_web to root package.json workspaces.
  3. Grep the app for @augment/obsidian-bases: if unused, remove the dep and record the grep in the PR body; if used, point it at the vendored packages/ts/obsidian-bases-augment/.
  4. Ensure @augment/json-canvas-* ranges resolve to the vendored packages; root bun install.
  5. Reconcile its per-app mise.toml with repo conventions (drop it if it only pins node/pnpm; the repo root already pins toolchains).
  6. Verify bun run build and the vitest suite from the app dir; keep its moon.yml project registration working.
LocationKindChange
apps/augmented_web/newThe vendored Nuxt app
package.jsonmodifyworkspaces += apps/augmented_web
bun.lockmodifyRoot install absorbs the app’s deps
  • AC-1: Root bun install exits 0 with the app as a workspace member.
  • AC-2: @augment/json-canvas-core and @augment/json-canvas-vue resolve to the local packages/ts/* packages.
  • AC-3: The @augment/obsidian-bases dep is dropped with grep proof in the PR body, or wired locally if imports exist.
  • AC-4: bun run build and the vitest suite pass in apps/augmented_web/.
  • AC-5: No package-lock.json or pnpm-lock.yaml under apps/augmented_web/.
  • Porting obsidian-bases usage onto @sksizer/obsidian-bases (T-NLKF).
  • UI convergence with @determined/ui (T-JCML).
  • T-LVLY — vendored packages must exist for install to resolve.
  • Part of the augmented_books adoption (owner decision 2026-07-18).

Captured by /sdlc:task-work on 2026-07-19. PR: pending.

  • AC-1: agent-manual — root bun install exits 0 (354 pkgs); apps/augmented_web added to root workspaces (single-entry).
  • AC-2: agent-manual — @augment/json-canvas-core + json-canvas-vue resolve to local packages/ts/* (symlinks in the app’s node_modules); kept workspace:*.
  • AC-3: auto — @augment/obsidian-bases dropped (declared-but-unused; grep over the source app found it only in package.json, no import in any .ts/.vue/.js).
  • AC-4: agent-manual — bun run build (nuxt) exits 0 (.output produced); vitest 10/10 pass.
  • AC-5: auto — no package-lock.json/pnpm-lock.yaml under the app. Root bunx tsc --noEmit also clean.
  • @augment/json-canvas-* resolved to the vendored packages/ts/* via workspace:* with no changes.
  • Dropping the unused @augment/obsidian-bases dep (grep-proven) shrinks T-NLKF’s surface as the task intended.
  • @nuxt/content builds a SQLite content index via db0’s better-sqlite3 connector, which hard-fails nuxt build when better-sqlite3 is untrusted (unbuilt native binding). Fixed by content.experimental.sqliteConnector: 'native' (routes to Node’s built-in node:sqlite), keeping better-sqlite3 untrusted. Fix: the pnpm/npm→Bun adoption recipe (apps/zoo/MIGRATION.md) should codify setting the Nuxt-Content sqlite connector to 'native' for any @nuxt/content app.
  • @types/node hoist reconciliation was needed (^24.10.1^26.1.0) to avoid breaking apps/sdlc’s root tsc — the same recurring gap as T-LVLY; the adoption recipe should standardize shared @types/* to the monorepo pins.
  • The upstream vendored tree was broken-at-HEAD: an unresolved git merge-conflict marker in .gitignore and a stale test import path (pre moduleslayers refactor, failing under npm too). Vendoring at a pinned rev inherits upstream’s broken state; adoption should budget for making the suite actually green, which can exceed “fix only Bun-conversion breaks.”

T-LVLY


← Back to Tasks