244 Commits

Author SHA1 Message Date
gramps e14ae2bd19 chore: jarvisChat → cAIc rename, single-node consolidation on jarvis, Qdrant UUID5 + chunk-size deploy fixes 2026-08-08 09:56:39 -07:00
gramps 44387919a8 v0.17.3: bug-fix maintenance pass — ingest origin exemption, FK safety, auto-search reset, deterministic ingest, WAL, config centralization, dead-code removal
- /api/ingest exempt from origin check for CLI/Bearer clients
- recreate deleted conversations on bogus conversation_id (chat + search)
- augmented auto-search emits reset:true; frontend clears first-pass text
- image uploads stored as placeholders, never text-ingested
- check_fact_conflicts requires shared subject keywords
- deterministic ingest point ids (md5 chunk hash)
- get_load() no longer crashes when rocm-smi yields no VRAM lines
- SQLite WAL + busy_timeout; timing-safe API key compares
- supervise fire-and-forget auto-ingest tasks; log missing logprobs
- centralize EMBED_URL/EMBED_MODEL/QDRANT_URL/NODE_NAME in config
- remove dead triage.py, select_node tests, is_state_changing, stray artifacts
- add regression tests + autouse global-reset conftest
2026-08-07 15:17:47 -07:00
gramps df405a156e Add TASK 2 (context-aware routing) and TASK 3 (RAM-based context store) 2026-08-04 08:31:47 -07:00
gramps aecd3330fd feat: image generation service — ComfyUI cluster integration
- POST /api/image/generate proxy endpoint (admin required)
- GET /api/image/status lists available image gen nodes
- Cluster AMQP protocol: cmd.image_generate, image_generated, image_failed
- Node agent auto-detects ComfyUI, registers image_gen capability
- ComfyUI workflow builder: CheckpointLoader → KSampler → VAEDecode → SaveImage
- Hardware probe checks ComfyUI reachability + checkpoint model list
- 27 tests covering cluster handlers, router, node agent, hardware, capabilities
- Config: CAIC_COMFYUI_BASE, CAIC_COMFYUI_TIMEOUT, comfyui_port in agent.ini
- Version bump to v1.1.0
- Documentation: ai.md, wiki/Developer-Architecture.md, current-wip.md, README.md, .env.example
2026-07-27 08:06:03 -07:00
gramps 576d9333b3 docs: migrate wiki links from Gitea to GitHub, add Default Model section 2026-07-19 17:25:31 -07:00
gramps 70014f8e3b fix: align ASCII architecture diagram box-drawing characters 2026-07-19 16:56:01 -07:00
gramps 5b5fbab206 README: add By the Numbers section — 237 commits, 4.5 months to v1.0 2026-07-19 16:53:25 -07:00
gramps 49f8a50c5b README rewrite: project pitch, condensed changelog, 108KB banner
- Rewrote README as a selling pitch for homelab AI cluster builders
- Highlighted differentiator: heterogeneous GPU query-routing vs layer-splitting
- Quick start Docker section, feature bullets, data safety table
- Condensed 600-line changelog into brief version entries
- Detailed docs linked to wiki (Installation, Architecture, Screenshots)
- Banner image: resized 1254x1254 PNG (3MB) → 600x600 JPEG (108KB)
2026-07-19 16:50:05 -07:00
gramps c14e3c19a9 v1.0.0: add v0.23.0 changelog entry for topbar redesign, teardown scripts, asyncio fix 2026-07-19 16:41:07 -07:00
gramps 056ebc399f v1.0.0: Docker containerization, docs, version bump
- config.py: VERSION → v1.0.0, DEFAULT_MODEL from CAIC_DEFAULT_MODEL env,
  HW_STATE_PATH from CAIC_HW_STATE_PATH env
- README.md: Docker install section (recommended), updated file structure,
  added What's New in v1.0.0, requirements note for Docker
- ai.md: Docker run path, work state updated, version to v1.0.0,
  external services table with Docker service names
- CLAUDE.md: Docker quick start, fixed dependencies note
- docker.md: checked off completed items in §10 checklist, updated §11
  file list with actual paths and status
- TASKS.md: struck through B3 [DONE]
2026-07-19 16:40:02 -07:00
gramps 55b9a2236d setup.sh: auto-download default model (Qwen2.5-7B Q4_K_M)
- Checks disk space before downloading
- Sets LLAMA_MODEL and CAIC_DEFAULT_MODEL in .env
- Prefers hf CLI, falls back to wget/curl
- Skippable prompt, manual fallback instructions
2026-07-19 16:30:01 -07:00
gramps 413f850e41 Make DEFAULT_MODEL env-var configurable (CAIC_DEFAULT_MODEL) 2026-07-19 16:28:19 -07:00
gramps 8fd6c99ccc Add Docker containerization stack
- Dockerfile: multi-stage Python 3.13-slim, healthcheck, uvicorn CMD
- docker-compose.yml: full stack (cAIc, SearXNG, Qdrant, RabbitMQ,
  llama-server, Ollama) with healthchecks, volumes, secrets
- .dockerignore: exclude venv, tests, .git, models, secrets
- .env.example: all variables documented with generation hints
- scripts/setup.sh: first-run scaffolding (generates .env, secrets,
  SearXNG config, directories)
- searxng-settings.yml.dist: SearXNG config template
- models/README.txt: instructions for placing .gguf files
- config.py: add HW_STATE_PATH env var (CAIC_HW_STATE_PATH)
- hardware.py: read state path from config instead of hardcoded CWD
- requirements.txt: add missing psutil and jinja2
2026-07-19 16:25:57 -07:00
gramps 54cca366a4 v0.22.1: dockerize defaults, harden error handling, fix test discovery
- config.py: defaults to localhost/localhost, AMQP to rabbitmq, secret
  path to /run/secrets, RAG_MAX_VECTORS from env
- rag.py: EMBED_URL default to localhost
- app.py: syslog handler wrapped in try/except
- routers/completions.py: db.close() in try/finally
- db.py: PRAGMA journal_mode = WAL
- amqp.py: subscription append before try for reconnect safety
- tests/conftest.py: add project root to sys.path for test discovery
2026-07-19 16:16:40 -07:00
gramps 666a237a8b docs: update Work State in ai.md with current session progress 2026-07-19 16:00:24 -07:00
gramps a99345edb6 chore: replace deprecated asyncio.ensure_future with create_task, add inline comments to db.py 2026-07-19 15:58:34 -07:00
gramps 2685a73897 fix: update README section text for consistency 2026-07-19 15:38:59 -07:00
gramps f5d020e39a feat: add uninstall/teardown scripts + uninstall section in README 2026-07-19 15:38:28 -07:00
gramps 6946619bc5 TASKS.md: mark B1, B2, B4 as done, B3 remains open 2026-07-14 15:40:55 -07:00
gramps 8202684df9 Restore deleted B4 spec text in TASKS.md 2026-07-14 15:39:23 -07:00
gramps 2a2de59344 TASKS.md: strike through completed B4 backlog entry 2026-07-14 15:37:37 -07:00
gramps c4a2bde8c1 Update TASKS.md with session 2026-07-14 entry 2026-07-14 15:35:21 -07:00
gramps 34cd87b810 Update work state docs for RAG bugfixes + topbar redesign 2026-07-14 15:33:59 -07:00
gramps b0554e69ec Move query bar back above chat, stats stays at bottom 2026-07-14 15:31:44 -07:00
gramps bb063204f0 Center stats bar 2026-07-14 15:31:18 -07:00
gramps 2609e4bd73 Topbar cleanup: move stats to bottom bar, toggles to hamburger menu, palette next to version, mobile-responsive 2026-07-14 15:30:10 -07:00
gramps 02d1b0432c Fix RAG admin: vectors_count->points_count, remove unindexed order_by, make RAG_COLLECTION env-configurable 2026-07-14 15:18:05 -07:00
gramps 0b4810ce31 RAG admin: clearer search label + hint explaining semantic vector search vs browse 2026-07-14 15:14:20 -07:00
gramps 13a00e544e RAG admin: better empty-state message for empty corpus vs no search match 2026-07-14 15:12:55 -07:00
gramps 065dc39c61 README: move architecture/docs content before changelog, keep all What's New entries sequential 2026-07-14 15:09:30 -07:00
gramps fe70314e83 Color theme system: 6 schemes with palette dropdown
- Palette icon in topbar-right opens dropdown: IBM Blue, Green Ln,
  Dark, Light, Amber, Trippin
- All CSS vars swapped dynamically via JS; persists in localStorage
- No CSS :root changes needed — existing variable architecture absorbs it
2026-07-14 15:03:15 -07:00
gramps 61f5a88673 B4 RAG Corpus Management UI + AGENTS.md → ai.md rename
- Backend: GET/DELETE/PATCH /api/rag/point/{id}, GET /api/rag/points
  (paginated, semantic search, source filter, sort)
- Frontend: admin-only RAG modal with stats bar, search, paginated table,
  per-row edit (re-embed) and delete, bulk flush with double confirm
- 14 new tests, 214 total passing
- AGENTS.md → ai.md (tool-agnostic), CLAUDE.md now references ai.md
- Bump v0.21.0 → v0.22.0
2026-07-14 14:57:57 -07:00
gramps 990b7c860d close B1 (context loss — test passed), deprecate B2 (Ctrl+Enter search), update backlog 2026-07-14 14:46:52 -07:00
gramps 7acea605ac v0.21.0 — perplexity persistence, env-overridable config, scroll/DOM fixes, single-node docs 2026-07-14 14:39:30 -07:00
gramps 3f64bed485 make QDRANT_URL, EMBED_URL, AMQP_SECRET_PATH env-overridable; document single-node/WSL deployment 2026-07-14 14:33:54 -07:00
gramps e584e4983c fix: capture appendMessage return value for correct assistant pairing 2026-07-14 14:24:02 -07:00
gramps 5c66a12b0f remove _userScrolledAway guard from oldes mode; keep rAF scroll 2026-07-14 14:21:29 -07:00
gramps 8ec4dae062 fix scroll: rAF for layout-safe scrollHeight, direction-aware _userScrolledAway 2026-07-14 14:17:57 -07:00
gramps 7d50d07249 persist perplexity per assistant message; display on loaded convos 2026-07-14 14:13:24 -07:00
gramps 65baeba1f1 scrollbar left of spool holes, widened to 10px 2026-07-14 14:03:47 -07:00
gramps 40495548e5 fix: chat-container z-index above .main::after barcode strip that hid scrollbar 2026-07-14 14:01:24 -07:00
gramps d79d8827c6 fix: scrollbar uses accent-dim blue thumb, visible on dark bg 2026-07-14 13:58:21 -07:00
gramps 01e2489846 fix: visible scrollbar (8px, track visible, Firefox compat) 2026-07-14 13:55:53 -07:00
gramps 3fccb0f2e7 rename NEW/OLD -> ↓SORT / ↑SORT for sort direction indicator 2026-07-14 13:49:20 -07:00
gramps af2f8fa90f fix: wider confidence scale + 80/15 thresholds (green/orange/red) 2026-07-14 13:47:19 -07:00
gramps 1f571f6284 fix: toggleDirection now reorders existing messages in DOM 2026-07-14 13:43:01 -07:00
gramps fbd734ccd4 fix: privacy badge reads PRIVACY ON / PRIVACY OFF (not bare PRIVACY) 2026-07-14 13:36:56 -07:00
gramps 8e800b57d1 fix: rename PRIVATE->PRIVACY, implement info popup overlay for privacy mode 2026-07-14 13:36:01 -07:00
gramps ac58531e8b fix: private badge initial text shows PRIVATE OFF (matches default state) 2026-07-14 13:32:25 -07:00
gramps c879c67e4c fix: always show WEB search button (enable/disable instead of hide/show) 2026-07-14 13:30:34 -07:00