Commit Graph

72 Commits

Author SHA1 Message Date
gramps 779d606923 chore: re-version to v0.11.0 (pre-release until public release) 2026-07-03 12:49:31 -07:00
gramps 45363e8bd6 docs: liven up README opener 2026-07-03 12:46:59 -07:00
gramps 3f75dc30d6 docs: sync README version and feature list with v1.11.0 2026-07-03 12:39:55 -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 1ac21ad13f v1.10.0 -> v1.11.0: terminal command RAG hook (Roadmap I)
- POST /api/ingest with Bearer token auth, chunk_text, embed, Qdrant upsert
- docs/jc-ingest.sh — shell script for PROMPT_COMMAND hook on jarvis
- /api/ingest exempted from session middleware (self-authenticating)
- 5 tests: missing/wrong key, empty/missing content, success path
2026-07-03 12:35:21 -07:00
gramps 04fbe90f08 add python-multipart dependency for UploadFile support 2026-07-03 12:20:08 -07:00
gramps 81238c0d7f v1.9.0 -> v1.10.0: file upload UI + attachment management
- Paperclip icon left of text input, file preview pill (image thumb or file icon)
- Conversation list shows attachment icon right of trash, opens gallery overlay
- Gallery overlay: scrollable, close (X), delete attachment per item
- DELETE /api/upload/{id} removes from SQLite + Qdrant
- PATCH /api/upload/{id}/link ties upload to conversation
- GET /api/upload/by-conversation/{id} lists attachments
- Chat accepts upload_context_id, injects [ATTACHED DOCUMENT] into system prompt
- Conversation list includes attachment_count field
- 8 new tests: upload context injection, delete, link, by-conversation, image type, attachment count

Still missing (P3): drag-and-drop upload, global attachments page, file download, batch upload
2026-07-03 12:18:06 -07:00
gramps 4a891c8435 v1.8.9 -> v1.9.0: file upload backend (PDF/text, Qdrant ingest, SQLite context) 2026-07-01 18:15:23 -07:00
gramps 239a0d5fa9 add pypdf dependency for PDF upload support 2026-07-01 18:10:12 -07:00
gramps 1d1cb61264 add P2 item #17: bidirectional image I/O to backlog 2026-07-01 18:08:25 -07:00
gramps 8393497df5 add P2 item: HTTPS via Let's Encrypt to backlog 2026-07-01 18:02:41 -07:00
gramps 7651ea620c v1.8.8 -> v1.8.9: fix copy button with execCommand fallback for insecure context 2026-07-01 18:01:42 -07:00
gramps 04d885e9eb v1.8.7 -> v1.8.8: add TTR badge (time-to-respond) next to PPL 2026-07-01 17:56:28 -07:00
gramps 9ef306e133 v1.8.6 -> v1.8.7: add image paste guard with toast notification 2026-07-01 17:35:12 -07:00
gramps 6451f674bb v1.8.5 -> v1.8.6: bump patch for trash icon fix, model dropdown removal, preset default 2026-07-01 17:30:35 -07:00
gramps b52e120ba1 fix: restore trash icon, remove vestigial model dropdown, default preset to General Assistant 2026-07-01 17:28:38 -07:00
gramps cb8ceccbe0 docs: mark Task 2 dependency resolved — llama-server-coder.service created and verified on ultron 2026-07-01 17:13:37 -07:00
gramps cacb04b3de docs: clean up node references and branding consistency 2026-07-01 09:26:33 -07:00
gramps 2b7f51cdca docs: clarify Task 2 as dependency resolved — real model swap delivered by Roadmap N (Tasks 9-15) 2026-07-01 09:24:58 -07:00
gramps d2cc246e51 first commit - defining tasks file as a living doc for opencode 2026-07-01 09:04:06 -07:00
gramps b8405b8d76 fix: increase trash icon visibility (remove 0.5 opacity, bump to 15px) 2026-06-27 16:09:05 -07:00
gramps e3b1780292 feat: add trash-can icon to left of each conversation in sidebar
Replace the hover-reveal × on the right with an always-visible 🗑 icon
positioned to the left of the conversation title. Clicking it triggers
the existing deleteConversation() which shows a confirm dialog and
enforces admin-only access.
2026-06-27 16:07:18 -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 fcc0605a4a release: bump version to v1.8.5 2026-06-27 15:27:47 -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
gramps 41a8708c0d docs: add roadmap items M (MCP) and N (AMQP cluster nervous system), fix jarvis IP 2026-06-23 15:31:16 +00:00
gramps ec2f4c0332 feat: add OpenAI-compat /v1/chat/completions endpoint (TODO #22) v1.9.0 2026-06-20 14:34:47 -07:00
gramps f691787037 feat: add jarvisChat logo to static directory and update readme 2026-06-16 09:41:34 -07:00
gramps 56919965e1 update readme
embedded a screenshot (hopefully) into the text
2026-06-16 16:38:16 +00:00
gramps f1fbc24c94 feat: update logo to jarvisChat-logo-1024.png, update static reference in index.html 2026-06-16 09:22:22 -07:00
gramps 8d3cf5d478 Update README.md
bumped rev to 1.9.0 for the python refactoring
2026-06-16 15:20:02 +00:00
gramps d01dd3b761 refactor(arch): modular package structure — split monolithic app.py into config/db/auth/memory/search/rag/gpu + routers/
- config.py: all constants, env vars, limits, skill registry, profiles
- db.py: schema init, connection factory, skill state helpers
- security.py: PIN hashing, audit logging, rate limiting, CSRF, request helpers
- auth.py: session management, PIN verify, auth routes
- memory.py: FTS5 CRUD + remember/forget command processing
- search.py: SearXNG integration, perplexity scoring, refusal/hedge detection
- gpu.py: rocm-smi stats
- rag.py: Qdrant vector search + system prompt assembly
- routers/: conversations, memories, models, presets, profile, settings, skills, chat, search
- app.py: slim entry point, middleware, router registration only

Bumps to v1.9.0
2026-06-16 08:17:46 -07:00
gramps 5075a6bc55 feat: v1.8.0 — reposition as homelab developer platform, wire inference to ultron llama-server
- Bump version to 1.8.0
- Add LLAMA_SERVER_BASE constant, point all inference calls to ultron:8081
- Update startup log to include llama-server endpoint
- Rewrite README: four pillars, cluster architecture diagram, AMD+NVIDIA RPC setup,
  layer tuning progression (7→17→30-35 t/s), full API reference, complete roadmap A-L
- Reframe project identity: knowledge accumulation platform, not chat wrapper
2026-06-15 19:34:11 -07:00
gramps 970abc8957 chore: ignore .bak files 2026-06-14 21:35:02 -07:00
gramps dd475a6f2d chore: bump version to v1.8.0 2026-06-14 21:34:24 -07:00
gramps 6de3a1e154 feat: RAG pipeline + OpenAI SSE streaming, llama-server cluster integration 2026-06-14 21:34:24 -07:00
gramps 5a652c1b74 feat: switch from Ollama to llama-server OpenAI-compat API, fix streaming parser 2026-06-14 21:34:05 -07:00
gramps 18bca027de docs: replace README screenshot asset (v1.7.8) 2026-04-28 09:14:54 -07:00
gramps 36bca94840 docs(todo): add model/preset preflight validation item (v1.7.7) 2026-04-28 09:08:36 -07:00
gramps 71b48d940f docs: add v1.6/v1.7 release notes and developer wiki (v1.7.6) 2026-04-28 08:53:54 -07:00
gramps 58945a4324 feat(ui): add phase-1 skills toggles in settings (v1.7.5) 2026-04-28 08:49:19 -07:00
gramps 4d1541412b feat(skills): add phase-1 skill registry and toggles (v1.7.4) 2026-04-28 08:44:22 -07:00
gramps 250fec1f06 test(streaming): cover chat/search/memory paths (v1.7.3) 2026-04-28 08:31:01 -07:00
gramps 12188f3ad2 feat(errors): incident-key safe error envelopes (v1.7.2) 2026-04-27 16:56:17 -07:00
gramps 9589141521 feat(settings): allowlist /api/settings keys (v1.7.1) 2026-04-27 16:48:19 -07:00
gramps c88e52e0ef chore(release): bump version to v1.7.0 2026-04-27 16:44:33 -07:00
gramps 76e4461b38 feat(security): add LAN IP allowlist and ingress guardrails 2026-04-27 16:43:21 -07:00