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
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
4f16a9c078
B6: waterfall direction toggle (v0.19.2)
...
NEW/OLD button toggles between newest-first and oldest-first ordering.
scrollToTop() replaced by scrollToLatest() which checks direction.
appendMessage() uses prepend/append based on direction.
Preference persisted in localStorage.
2026-07-14 08:19:26 -07:00
gramps
b3746949a9
B5: default model auto-pull on first start (v0.19.1)
...
model_pull.py: ensure_model() checks llama-server availability at
startup, falls back to Ollama pull API if model not found.
Integrated into app.py lifespan after assess_hardware().
11 tests cover all paths: available/unreachable/pull success/fail.
2026-07-14 08:16:08 -07:00
gramps
790c81457a
B7: Apple Silicon worker support (v0.19.0)
...
gpu.py: darwin branch via system_profiler SPDisplaysDataType for GPU
model/VRAM on macOS, falls back to rocm-smi on Linux.
hardware.py: _get_vram_darwin() parses system_profiler output.
node_agent/agent.py: get_load() reports VRAM on darwin via
system_profiler.
tests: 5 new gpu tests (linux/darwin/absent), 3 new hardware tests
(darwin assessment + VRAM parsing).
2026-07-14 08:09:41 -07:00
gramps
8853a3761e
docs: add in-transit TLS note to B8
2026-07-13 16:28:58 -07:00
gramps
82beadf546
docs: prioritize Private Chat mode over encryption in B8
2026-07-13 16:27:34 -07:00
gramps
ba3df91db9
docs: add B8 encryption/PHI backlog item, update session work state
2026-07-13 16:24:45 -07:00
gramps
ebb613b68c
docs: update work state in AGENTS.md
2026-07-13 15:50:51 -07:00
gramps
fbacb1861d
docs: sync all docs through v0.17.0 — Roadmap N complete, cluster/AMQP fully documented
2026-07-09 09:15:08 -07:00
gramps
f0689ac12b
feat: Roadmap N — AMQP cluster nervous system complete
2026-07-09 09:09:22 -07:00
gramps
7fc7f7679c
docs: mark Task 14 done, add cluster.py/amqp.py/test_model_swap.py to docs tables
2026-07-09 09:05:23 -07:00
gramps
fb0ff576d3
Tasks 12 + 13: worker node agent + Phi-4-mini query triage
...
Task 12 — node_agent/agent.py: standalone AMQP worker agent
config reader, model discovery, registration publisher,
ping/pong handler, model swap with systemctl + health poll
(14 tests)
Task 13 — triage.py: query classification + cluster node selection
classify_query() routes to Phi-4-mini at :8083
select_node() picks best worker by model affinity
get_inference_url() replaces hardcoded LLAMA_SERVER_BASE
cluster.py stores node ip for URL construction
(6 tests + 5 existing chat tests mocked for triage)
168 tests passing (+20 new)
2026-07-07 07:30:30 -07:00
gramps
90d2cf8326
Rename: jarvisChat → cAIc (product name)
...
- jarvisChat/JarvisChat/jarvischat → cAIc/cAIc/caic (branded/lower)
- JARVISCHAT_ env vars → CAIC_
- jc- script/config prefix → caic-
- jarvis_rag → caic_rag
- jarvischat.db / volumes → caic.db / caic_*
- AMQP vhost/user jarvischat → caic
- Syslog, loggers, docstrings all updated
- 47 files, zero stale references, 148 tests pass
2026-07-06 19:56:32 -07:00
gramps
975e7579cf
feat: Task 10 — AMQP connection layer with aio-pika
...
amqp.py: connect/disconnect/get_channel/publish with auto-reconnect
- Graceful degradation when aio-pika not installed
- Lazy secret file reader via config.get_amqp_url()
- Fire-and-forget publish (logs error, never raises)
- Connection errors caught and logged (non-fatal)
config.py: AMQP_RECONNECT_DELAY, exchanges, get_amqp_url() helper
app.py: connect in lifespan after assess_hardware, disconnect on shutdown
requirements.txt: aio-pika>=9.0.0
tests/test_amqp.py: 3 mocked tests (publish success, publish disconnected
no-raise, get_channel reconnect)
135 tests pass (132 existing + 3 new)
Fixes: AGENTS.md test/run commands (venv was incomplete)
2026-07-06 08:51:36 -07:00
gramps
3fd8b01353
docs: update AGENTS.md, CLAUDE.md, TASKS.md for Tasks 4-6 completion
2026-07-03 12:38:48 -07:00
gramps
66b086c3f3
fix: restore EMBED_URL pointing to ollama on 192.168.50.210:11434
2026-06-27 16:03:19 -07:00
gramps
4b36fd315a
fix: replace hardcoded EMBED_URL with LLAMA_SERVER_BASE from config
...
EMBED_URL in rag.py hardcoded the IP and port instead of using
LLAMA_SERVER_BASE, so the env var JARVISCHAT_LLAMA_SERVER_BASE
was ignored for embedding requests.
2026-06-27 15:59:43 -07:00
gramps
091e2ad2e3
test: add unit tests for all 10 routers (92 total)
...
New test files:
- test_conversations.py — list/create/get/update/delete/delete-all, admin enforcement
- test_presets.py — list/create/update/delete, default preset protection
- test_profile.py — get/update/default, length validation
- test_models_router.py — list/ps/show/stats/search-status, connect errors
- test_completions.py — API key auth, FIM passthrough, streaming/blocking, errors
- test_search_route.py — explicit search flow, no results, stream errors
- test_memories.py — edit/search/stats endpoints, validation, admin enforcement
Update AGENTS.md with full test file coverage table and README.md
2026-06-27 15:27:13 -07:00
gramps
5986c4ad86
fix: close two CSRF origin-check security gaps
...
- Extend origin check to all /api/ requests (not just state-changing methods),
closing the GET/HEAD/OPTIONS bypass that allowed cross-origin reads
- origin_allowed() now returns False when both Origin and Referer headers
are absent, preventing script-initiated requests from bypassing the check
- Update AGENTS.md and README.md to document the changes
2026-06-27 15:20:02 -07:00
gramps
cc1efa7a21
fix: resolve all critical runtime errors and bugs from audit
...
- Add COMPLETIONS_API_KEY to config.py (env var + auto-generated fallback)
- Fix perplexity auto-search: upstream sends logprobs=true, parse_llama_stream_chunk
extracts per-token logprobs, all_logprobs populated during streaming
- Fix all /api/models endpoints to target LLAMA_SERVER_BASE (port 8081) not OLLAMA_BASE
- Fix RAG embedding endpoint URL from port 11434 (Ollama) to 8081 (llama-server)
- Correct misleading error messages: 'inference server' not 'Ollama'
- Remove raw_results leak from SSE event stream in /api/search
- Fix weather query extractor: pattern-match instead of unconditional suffix append
- Escape FTS5 operator keywords (AND/OR/NOT/NEAR) in memory search
- Move auth.py BODY_LIMIT_DEFAULT_BYTES imports to module level
- Change RAG injection log level from warning to info
- Fix all 8 test files after modular refactor (rewire imports from correct modules)
- Update AGENTS.md and README.md to reflect v1.8.0 changes
2026-06-27 15:12:18 -07:00