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
gramps
30deb0db64
v0.20.0: at-rest encryption (AES-256-GCM) for all query-derived text
...
- crypto.py: AES-256-GCM encrypt/decrypt + ensure_key()
- Key auto-generated on first boot, stored as heartbeat_interval_ms in settings
- All 12 storage paths wired (SQLite + Qdrant)
- memory.py: FTS5 search replaced with Python-side matching
- 200/200 tests pass
2026-07-14 13:22:32 -07:00
gramps
f6b01ec9ac
B8: Private Chat mode + WireGuard docs + README data safety section (v0.19.3)
2026-07-14 08:52:32 -07:00