Skip to content

Commit 8570bde

Browse files
authored
Merge pull request #304 from ShaerWare/local/fix-claude-code-input-toggle
fix: show input position toggle in Claude Code mode
2 parents c507143 + ded8444 commit 8570bde

3 files changed

Lines changed: 23 additions & 4 deletions

File tree

CLAUDE.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,9 @@ When diagnosing production or demo issues, check in this order — **infrastruct
152152
```
153153
┌──────────────────────────────────────────────────────────────┐
154154
│ Orchestrator (port 8002) │
155-
│ orchestrator.py + app/routers/ (21 routers, ~390 endpoints) │
155+
│ orchestrator.py + app/routers/ (23 routers, ~400 endpoints) │
156156
│ ┌────────────────────────────────────────────────────────┐ │
157-
│ │ Vue 3 Admin Panel (20 views, PWA) │ │
157+
│ │ Vue 3 Admin Panel (21 views, PWA) │ │
158158
│ │ admin/dist/ │ │
159159
│ └────────────────────────────────────────────────────────┘ │
160160
└────────────┬──────────────┬──────────────┬───────────────────┘
@@ -181,7 +181,7 @@ Frontend: `auth.ts` store fetches deployment mode via `GET /admin/deployment-mod
181181

182182
### Key Architectural Decisions
183183

184-
**Global state in orchestrator.py** (~3670 lines, ~109 endpoints): This is the FastAPI entry point. It initializes all services as module-level globals, populates the `ServiceContainer`, and includes all routers. Legacy endpoints (OpenAI-compatible `/v1/*`) still live here alongside the modular router system.
184+
**Global state in orchestrator.py** (~3670 lines, ~100 legacy endpoints): This is the FastAPI entry point. It initializes all services as module-level globals, populates the `ServiceContainer`, and includes all routers. Legacy endpoints (OpenAI-compatible `/v1/*`) still live here alongside the modular router system.
185185

186186
**ServiceContainer (`app/dependencies.py`)**: Singleton holding references to all initialized services (TTS, LLM, STT, Wiki RAG). Routers get services via FastAPI `Depends`. Populated during app startup in `orchestrator.py`.
187187

@@ -258,6 +258,12 @@ Frontend: `auth.ts` store fetches deployment mode via `GET /admin/deployment-mod
258258

259259
**Anti-tool-call prompt injection**: `_finalize_prompt()` in `app/routers/chat.py` appends `_NO_TOOLS_SUFFIX` to every system prompt before sending to LLM. Prevents Claude bridge from hallucinating fake tool calls (`filesystem read_file`, `function_calls`) as text, which caused chat responses to hang. Applied to all 4 chat endpoints (send, stream, edit, regenerate).
260260

261+
**Kanban/Tasks** (`app/routers/kanban.py`): Project task management board with Gantt roadmap. `KanbanTask` model with status (`todo`/`in_progress`/`review`/`done`), assignee, dates, tags (JSON), `is_private`, `position` for drag-reorder. `KanbanTaskDependency` (blocker → dependent), `KanbanChecklistItem` (per-task checklists). `KanbanTaskStatus` enum. 10 endpoints: CRUD, reorder, dependency management, checklist items. Frontend: `KanbanView.vue` with `KanbanBoard.vue` (drag & drop columns), `KanbanCard.vue`, `KanbanCardDetail.vue` (side panel), `KanbanTaskForm.vue`, `KanbanRoadmap.vue` (Gantt-style timeline), `KanbanStatusBadge.vue`. Migration: `scripts/migrate_kanban.py`.
262+
263+
**Claude Code Web UI** (`app/routers/claude_code.py`): WebSocket-based terminal for Claude Code CLI. WebSocket at `/admin/claude-code/ws?token=<jwt>` streams structured events (text_delta, thinking_delta, tool_use_start, tool_result, turn_complete). REST endpoints for session management (list/get/delete). `ClaudeCodeSession` model tracks sessions in DB. One active WebSocket per user. Admin-only. Frontend: `useClaudeCode` composable.
264+
265+
**Chat session sharing**: `ChatSessionShare` model (`chat_session_shares` table) enables sharing chat sessions between users. `ChatShareDialog.vue` component in frontend.
266+
261267
**Other routers**: `audit.py` (audit log viewer/export/cleanup), `usage.py` (usage statistics/analytics), `legal.py` (legal compliance, migration: `scripts/migrate_legal_compliance.py`), `wiki_rag.py` (Wiki RAG stats/search/reload + Knowledge Base CRUD + collections management), `github_webhook.py` (GitHub CI/CD webhook handler).
262268

263269
## Code Patterns

admin/package-lock.json

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

admin/src/views/ChatView.vue

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1621,7 +1621,6 @@ watch(sessions, (newSessions) => {
16211621
</div>
16221622
<!-- Input position toggle (hidden on small screens) -->
16231623
<button
1624-
v-if="!cc.isActive.value"
16251624
class="hidden sm:inline-flex p-2 rounded-lg hover:bg-secondary transition-colors"
16261625
:title="inputPosition === 'top' ? 'Move input to bottom' : 'Move input to top'"
16271626
@click="toggleInputPosition"

0 commit comments

Comments
 (0)