0c2f49876d
- Users page: one Edit user form (display name, email, role, active, a new or generated password, workspaces given or taken back, sign out everywhere), validated as a whole before anything is written (PATCH /api/users/:id, GET /api/users/:id); users.display_name/email added migration-safe. - Settings → Account for every signed-in user: profile, own password (the current one required, this login kept), sign out other devices (/api/me/account, /api/me/password, /api/me/sign-out-others; login cookie only, never a pane token). - Display names wherever a person is named (sidebar, workspace owner groups, Users page and audit log); owner_display_name / reader_display additive. - Users page: admins add and remove Claude/Codex pool accounts. - Folder browser: an admin with their own Linux account opens in their home; the "Server folder" tick opens the host's (never remembered). - AI Proxy: "Config 9router" beside Add profile when 9router is installed, opened on the dashboard's own host (GET /api/ai-proxies/9router). - Terminal: a tmux selection reaches the clipboard over plain HTTP too (writeClipboard's textarea fallback, focus handed back). - Chat: a file the session touched outside the workspace previews (GET /api/sessions/:id/file). - install-system: `!requiretty` only when visudo accepts it (sudo-rs on Ubuntu 25.10+ rejects the setting). - openapi.yaml regenerated; docs (API, SERVER-MODE, LANES) updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.6 KiB
2.6 KiB
Codex Project Instructions
Project intent
- Keep this repository a stable, local-first Claude Code monitoring platform.
- Maintain correctness across hooks, API, DB, websocket, and UI.
Priorities
- Correctness over cleverness.
- Small, scoped, reversible diffs.
- Preserve existing behavior unless change is requested.
- Update docs whenever workflow or architecture changes — follow
skills/update-project-docs/automatically at the end of every change-set (README.md — Vietnamese, the default — and README.en.md; docs/OVERVIEW.md + OVERVIEW.vi.md, ARCHITECTURE, wiki + i18n + cache bump, server/client READMEs, docs/*). - Every applicable source file you create or update (
.js/.ts/.tsx/.cjs/.mjs/.py/.sh/.css) must start with the authorship header: a truthful file overview plus the exact line@author Nguyễn Ngọc Trí Vĩ <vinnt@smartgift.vn>. Seeskills/file-headers/and.claude/rules/file-headers.md; verify withbash skills/file-headers/scripts/check-headers.sh.
Workspace stage
AgentHub's codex workspaces — lanes in the API and CLI — (like every non-Claude AI tool workspace) carry no pipeline: the dashboard shows no stage for
them and never infers or advances one, so there is no agenthub stage call to
make while you work here as Codex.
Where to work
server/for API/routes/data processing.client/for React UI behavior.scripts/for hook/install/import/cleanup utilities.
Validation expectations
- Run only the tests the change touches, never a full suite by default (full suites take 5–6 minutes):
npm run test:server -- server/__tests__/<name>.test.js, and inclient/NODE_ENV=test npx vitest related <changed files> --run(orvitest run <test file>). Docs-only changes run no tests. - Run a full suite (
npm run test:server/npm run test:client) only when genuinely needed: the change touches something every screen uses (Layout,Sidebar,StatusBar,tailwind.config.js, global CSS, shared hooks/lib), a shared server core (server/db.js,server/index.js, auth/scope, middleware), a dependency or build/test config, or more than ~10 code files; or the user asks. The pre-commit hook already picks related vs. full tests per commit, so do not add an extra full run before committing. - If any check is skipped, report it explicitly.
Safety expectations
- Keep destructive capabilities behind explicit configuration gates.
- Never broaden destructive behavior without explicit user request.
- Treat hook execution path as fail-safe and non-blocking.
Useful commands
- Setup:
npm run setup - Dev:
npm run dev - Build/start:
npm run buildthennpm start