web/ declares @nuxtjs/tailwindcss, which pulls tailwindcss 1.9.6. npm
hoisted that to the root, where @tailwindcss/forms resolved it instead of
the 3.4.19 desktop needs, breaking the CSS build.
Task 9 worked around this by copying a package into node_modules, which
would not survive npm ci. Removing web from the workspaces array is the
durable fix and is consistent with the spec, which declares web knowingly
broken and out of scope for this port. Restore the entry when web is
migrated to Nuxt 3.
Verified from a clean install: root tailwindcss is 3.4.19 and the build
emits 33KB of real CSS.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Migrates n-link-core's Tailwind config from 1.x to 3.x (drops future/
variants/purge, swaps custom-forms for @tailwindcss/forms) and replaces
the Vue 2 'vue/types/vue' augmentation with Vue 3
ComponentCustomProperties. Deletes the Vue 2 shims.
Adds a throwaway App.vue that exercises enumerate/open_device/list_dir/
close_device over Tauri 2 IPC and logs addDevice/removeDevice/progress
events. open_device, list_dir, and close_device are wrapped with a 10s
client-side timeout each so a hang or Busy response from the CX II's
known firmware issue can't block the other calls from reporting;
enumerate only reads USB descriptors and is left untimed.
Installs @tauri-apps/plugin-dialog and @tauri-apps/plugin-shell per the
task-7 brief's Step 1. Manual GUI verification against a connected
device (brief Steps 3-4) is out of scope here and left to the user;
download_file/sha256 cross-check is intentionally omitted since any
libnspire transfer against this CX II is known to hang. Replaced by
the real UI in Plan B.
Tauri 1.0.0-beta.8 links webkit2gtk-4.0, unavailable on Ubuntu 26.04.
Verified: builds and links libwebkit2gtk-4.1.so.0, libsoup-3.0.so.0,
libjavascriptcoregtk-4.1.so.0 with no webkit-4.0 or libssl.1.1 refs.
Workspace moved from yarn to npm; yarn.lock invalidated by this port.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>