CodeNomad/packages/ui
Pascal André 43e3ba72bc
chore(opencode): qualify and recommend stable 2.0.21
Align server/UI client and bundled-plugin pins with OpenCode 2.0.21 while keeping the demonstrated 2.0.7 application minimum and the separate 2.0.20 Codex Usage requirement. The native contract changes only by optional form-cancellation text, so existing callers need no production adapter or proxy expansion.

Extend recommendation/status coverage and update maintained architecture and compatibility references. Scope the lockfile to published OpenCode packages, including optional OpenTUI peer metadata, without refreshing unrelated dependencies.

Qualify minimum/current native suites, generated cancellation with and without a message, selected native Codex credentials, ordinary pruning/UI acceptance, standalone plugin, historical migrations and isolated upgrade retaining daemon version/PID. Typechecks, builds, 71 UI tests and 32 browser cases pass. Preserve the full server suite cleanup EPERM and its successful focused rerun as separate evidence rather than claiming a fix.
2026-10-01 01:43:49 +02:00
..
scripts docs: refresh README and workspace screenshot for 0.20 (#782) 2026-09-26 04:13:30 +02:00
src fix(mobile): responsive conversation controls and proportional prompt sizing (#813) 2026-10-01 01:04:25 +02:00
tests/browser fix(mobile): responsive conversation controls and proportional prompt sizing (#813) 2026-10-01 01:04:25 +02:00
.gitignore feat(ui): add Monaco changes/files right drawer viewers 2026-02-09 21:00:40 +00:00
package.json chore(opencode): qualify and recommend stable 2.0.21 2026-10-01 01:43:49 +02:00
postcss.config.js Split workspace into electron and ui packages 2025-11-17 12:06:58 +00:00
README.md Expose UI logger controls globally 2025-12-06 12:17:33 +00:00
tailwind.config.js Split workspace into electron and ui packages 2025-11-17 12:06:58 +00:00
tsconfig.json Split workspace into electron and ui packages 2025-11-17 12:06:58 +00:00
vite.config.ts feat(opencode): migrate CodeNomad to native V2 (#647) 2026-09-04 11:36:11 +01:00

CodeNomad UI

This package contains the frontend user interface for CodeNomad, built with SolidJS and Tailwind CSS.

Overview

The UI is designed to be a high-performance, low-latency cockpit for managing OpenCode sessions. It connects to the CodeNomad server (either running locally via CLI or embedded in the Electron app).

Features

  • SolidJS: Fine-grained reactivity for high performance.
  • Tailwind CSS: Utility-first styling for rapid development.
  • Vite: Fast build tool and dev server.

Development

To run the UI in standalone mode (connected to a running server):

npm run dev

This starts the Vite dev server at http://localhost:3000.

Building

To build the production assets:

npm run build

The output will be generated in the dist directory, which is then consumed by the Server or Electron app.

Debug Logging

The UI now routes all logging through a lightweight wrapper around debug. The logger exposes four namespaces that can be toggled at runtime:

  • sse – Server-sent event transport and handlers
  • api – HTTP/API calls and workspace lifecycle
  • session – Session/model state, prompt handling, tool calls
  • actions – User-driven interactions in UI components

You can enable or disable namespaces from DevTools (in dev or production builds) via the global window.codenomadLogger helpers:

window.codenomadLogger?.listLoggerNamespaces() // => [{ name: "sse", enabled: false }, ...]
window.codenomadLogger?.enableLogger("sse") // turn on SSE logs
window.codenomadLogger?.disableLogger("sse") // turn them off again
window.codenomadLogger?.enableAllLoggers() // optional helper

Enabled namespaces are persisted in localStorage under opencode:logger:namespaces, so your preference survives reloads.