Spaces:
Sleeping
Sleeping
Commit History
-
feat: full i18n — 1752 keys across 10 languages, all panels translated (#326)
nykUnverified signature* feat: add i18n with 10 languages (en, zh, ja, ko, es, fr, de, pt, ru, ar) Add internationalization infrastructure using next-intl with cookie-based locale detection (NEXT_LOCALE cookie -> Accept-Language header -> default). - Install next-intl and wire into Next.js config + root layout - Create translation files for 10 languages covering auth pages, navigation labels, common UI strings, and settings - Translate login page, setup page, and nav-rail labels - Add LanguageSwitcher component (compact dropdown) to login page, setup page, nav-rail sidebar, and settings panel - Support RTL layout for Arabic (dir="rtl" on html element) - No URL-based locale routing — uses cookie-only approach to avoid breaking existing URLs and the custom proxy middleware Panel internals are left with English strings for incremental translation in follow-up PRs. Based on the approach from PR #312 by richard-able, expanded to 10 languages with proper infrastructure. * test(e2e): add i18n language sw…b180108 -
fix(ui): persist doctor banner dismiss with 24h expiry (#328)
nykUnverified signature* fix(ui): persist doctor banner dismiss with 24h expiry (#320) Replace ephemeral useState dismiss with Zustand store + localStorage. Banner stays hidden for 24 hours after dismiss, then resurfaces so users can re-check. Mirrors the existing UpdateBanner pattern. Closes #320 * test: add unit tests for doctor banner dismiss persistence Tests verify localStorage persistence, 24h expiry, page refresh survival, and graceful handling of corrupted values.ce66f43
-
security(csp): remove unsafe-inline with nonce-based CSP (#288)
nykUnverified signature* fix: route coordinator sends to live sessions and parse boxed doctor output * feat: make coordinator routing user-configurable and deployment-agnostic * feat: add coordinator target dropdown in settings * feat(settings): preview live coordinator routing resolution * security(csp): remove unsafe-inline via per-request nonce policy * fix(ui): disable new organization CTA; improve skills registry and panel defaults - disable non-functional New organization button in nav rail - gate Hermes Memory visibility on actual Hermes CLI binary detection - optimize agents task stats API by replacing N+1 with grouped query - make task board render primary data first and hydrate quality-review async - default skills panel registry source to awesome-openclaw - add resilient registry search fallbacks for ClawdHub/skills.sh endpoint variantsa6b2e2f -
feat(refactor): ready for manual QA after main sync (#274)
nyk +1: Claude Opus 4.6Unverified signature* fix: preserve gateway token query in websocket URLs * fix: classify secure-context device identity handshake errors * fix: normalize trailing dot in host allowlist checks * fix: support proxied gateway websocket paths and tailnet host normalization * fix: auto-connect startup to primary configured gateway * fix: keep gateway tokens server-side only * fix: allow authenticated viewers to resolve gateway connect credentials * fix: identify mission control as operator gateway client * fix: redirect remote http sessions to https for gateway auth * fix: support URL-style gateway hosts in health probes * fix: resolve primary gateway credentials from detected openclaw runtime * fix: hide duplicate gateway connection summary when managed * refactor: remove super admin and workspaces panels from UI navigation * fix: treat configured gateways as full-mode capability * refactor: move promo banner copy into subtle footer note * fix: stabilize gateway websocket connect protocol dete…b6ecafa
-
fix: add documents navigation and panel
Nyk0ae06ef -
fix: prevent Live Feed sidebar from sliding in on page navigation (#181)
Unverified signatureOnly apply the slide-in-right animation when the user actively re-expands the panel, not on initial mount. Also remove dead duplicate files src/live-feed.tsx and src/page.tsx.a288671
-
feat: add workspace discoverability and multi-project task support
Nyk64eac97 -
feat: add service CTA and update promo links
Nyk3440490 -
feat: add promo banner for nyk, DictX, and Flight Deck Pro
Nyk5c5ffba -
feat(#115): virtual office visualization for agents (#127)
Unverified signature- Create OfficePanel with Office floor plan and Org Chart view modes - Desk-style cards with status glow, emoji indicators, pulse animation for busy agents - Agent detail modal with task stats, activity, session info - Auto-refresh every 10 seconds for real-time updates - Status summary in header (working/idle/error/away counts) - Add OfficeIcon and office nav item in CORE group - Register office route in page.tsx Closes #115 Co-authored-by: bhavikprit <petrobhakti@gmail.com>6cc3161
-
feat: add Update Available banner with GitHub release check (#94)
nykUnverified signature* fix: migrate middleware.ts to proxy.ts for Next.js 16 (#88) Next.js 16 deprecated the `middleware` file convention in favor of `proxy`. The proxy runs on the Node.js runtime instead of Edge, so safeCompare now uses crypto.timingSafeEqual instead of manual XOR. All auth logic, CSRF validation, host matching, and security headers are preserved unchanged. * feat: add "Update Available" banner with GitHub release check Add a dismissible emerald banner that appears when a newer GitHub release exists, so self-hosting users know an update is available. The banner dismisses per-version (reappears for new releases). - Create src/lib/version.ts as single source of truth from package.json - Add /api/releases/check route with 1hr caching and graceful fallback - Add UpdateBanner component mirroring LocalModeBanner pattern - Add update state to Zustand store with localStorage persistence - Fix hardcoded v2.0 in header-bar.tsx and 2.0.0 in websocket.ts1b11b46 -
feat: sync side panel navigation with URL routes (#76) (#87)
nykUnverified signatureMove page.tsx to [[...panel]] optional catch-all route so each panel gets its own URL (e.g. /tasks, /agents, /settings). URL is the source of truth — synced into Zustand via usePathname on every navigation. Enables bookmarking, refresh persistence, deep-linking, and browser back/forward.5edec43 -
feat: add local mode auto-detection for no-gateway users (#83)
nykUnverified signatureWhen no OpenClaw gateway is detected, Mission Control now automatically switches to Local Mode — showing a clear info banner, greying out gateway-dependent panels, and surfacing Claude Code session stats, GitHub profile data, and subscription-aware cost display. Changes: - Add capabilities endpoint to detect gateway, Claude home, subscription - Add dashboardMode/gatewayAvailable/subscription state to Zustand store - Add dismissible LocalModeBanner component - Grey out Agents/Spawn/Config nav items when no gateway - Show blue "Local Mode" indicator instead of red "Disconnected" - Dashboard shows local metric cards (sessions, projects, tokens, cost) - Claude Code Stats panel with session/token/cost breakdown - GitHub panel with repo stats, languages, star/fork counts - Subscription detection from ~/.claude/.credentials.json - Show "Included (Max plan)" instead of dollar cost for subscribers - Fix token cost estimation (cache reads at 10%, not 100%) - Sessions API falls back to local Cla…bfb8731
-
fix: cherry-pick improvements from PR #57 (#71)
nyk +1: Doan Bac TamUnverified signatureCherry-picks three valuable fixes from @doanbactam's WebSocket refactor PR: 1. Feed item ID collision fix — prefix log IDs with 'log-' to avoid React key collisions with activity IDs in the combined feed 2. Jittered reconnect backoff — add random jitter (0-50% of base) to WebSocket exponential backoff to prevent thundering-herd reconnects when multiple tabs reconnect after a server restart 3. Cron job deduplication + async I/O — deduplicate jobs.json entries by name (keeps latest), prevent duplicates on add, and convert sync file reads/writes to async to avoid blocking the event loop Co-authored-by: Doan Bac Tam <24356000+doanbactam@users.noreply.github.com>56c873a -
feat: add GitHub Issues sync (Phase 1, Issue #58)
NykImport GitHub issues as Mission Control tasks with duplicate detection, priority mapping from labels, and bidirectional actions (comment/close). - Migration 017: github_syncs table for sync history tracking - GitHub API client (src/lib/github.ts) with fetch, comment, close ops - POST/GET /api/github route with sync, comment, close, status actions - GitHubSyncPanel UI: import form, issue preview, sync history, linked tasks - Nav rail + page router wiring - 6 E2E tests (all passing) - Validation schema + github.synced event type8dc7515 -
feat: add per-agent cost breakdown panel
Nyk- Add `agents` field to tokens action=stats response (groups by agent extracted from sessionId split on ':') - Add new action=agent-costs returning per-agent stats, model breakdown, session list, and daily cost/token timeline - New AgentCostPanel with summary cards, pie chart, trend lines, efficiency bars, and expandable ranking table - Add nav-rail entry in OBSERVE group after Tokens - Add ContentRouter case for agent-costs tab - Add 5 E2E tests for the new API endpoints473b701
-
feat: add Docker support, session controls, model catalog, API rate limiting
Nykb608851
-
feat: initial open-source release
NykOpenClaw Mission Control — agent orchestration dashboard. Built with Next.js 16, React 19, TypeScript, SQLite, and Tailwind CSS. MIT License.bbbc03f