15a16a8fe0
fix(agent): unambiguous document listing format for LLM parsing
ducoterra2026-09-01 12:44:53 -04:00
c738105932
feat(web): customizable placeholder, footer text, and color theme via BOR_* env vars
ducoterra2026-09-01 12:04:06 -04:00
baefcde668
fix(web): retire the stale homelab-era copy — neutral, accurate defaults on every page
ducoterra2026-09-01 10:54:50 -04:00
4971e2859d
chore(agent): track .agent/ planning tree in git
ducoterra2026-09-01 10:18:22 -04:00
5fa620fde5
fix(web): keep the navbar stuck to the top — drop the body height cap on the sticky range
ducoterra2026-09-01 04:20:26 -04:00
725af9fac1
feat(docs): save chat answers as docs — edit screen, commit + push to the .env docs branch
ducoterra2026-09-01 03:51:54 -04:00
7b7a834a1a
feat(web): 2x reading column on wide desktops — 92rem at >=1500px (chat, shared, document view)
ducoterra2026-09-01 00:39:19 -04:00
140b97ebf3
feat(kb): edit + re-embed document summaries from the viewer (admin)
ducoterra2026-08-31 23:52:22 -04:00
d94f3d5a52
feat(import): user-extensible BOR_IMPORT_EXTENSIONS — any well-formed extension, A9 family stays the default
ducoterra2026-08-31 22:42:41 -04:00
281f3555c3
remove .agent, it shouldn't be committed. Do not commit it again
ducoterra2026-08-31 08:08:16 -04:00
914097abcf
feat(chat): save by default + share anonymously — auto-saved chats, guest-facing Share, success toast, action row
ducoterra2026-08-31 05:20:25 -04:00
c564e317ed
fix(web): never 304 a rewritten page — pages drop conditional validators, assets keep them
ducoterra2026-08-31 01:35:28 -04:00
9518d9d5d1
chore(agent): phase 53 — record task 06 completion move to complete/
ducoterra2026-08-31 00:04:17 -04:00
32b7bfd4b3
feat(chat): invalidate saved chats on sources sync — versioned stamps, stale marker, Regenerate against the new index
ducoterra2026-08-30 23:39:15 -04:00
aba8615177
fix(chat): rest the composer at the viewport bottom — sticky alone left it mid-screen
ducoterra2026-08-30 16:14:18 -04:00
820753948e
feat(chat): pin the composer to the viewport bottom — Stop is always reachable while reading
ducoterra2026-08-30 14:59:40 -04:00
619bf2187a
chore(agent): phase roadmap from TODO.md — 2 phases (52 pinned composer, 53 stale saved chats)
ducoterra2026-08-30 09:33:50 -04:00
114b115034
feat(chat): share a chat by link — anonymous read-only /shared/<token> page, share/unshare
ducoterra2026-08-30 01:34:44 -04:00
ece93a7c8f
feat(chat): save and view chat history — admin-only saved_chats, History page, open-a-chat return
ducoterra2026-08-29 21:22:25 -04:00
6832957ab0
feat(chat): retry the last answer — redo-in-place Retry button on the latest brain bubble
ducoterra2026-08-29 18:32:15 -04:00
1a60ecbd8b
feat(chat): stop an in-flight answer — Send becomes Stop, the partial is kept and persisted, the model stream is torn down
ducoterra2026-08-29 17:27:04 -04:00
8fabb7efda
perf(ui): cache busting — HTML no-cache + versioned asset URLs (?v=) with immutable 1y asset caching
ducoterra2026-08-25 22:42:10 -04:00
52136fe307
feat(admin): one-click sources sync — admin-only button triggers git clone/pull + re-import + KB overview refresh with polled live status
ducoterra2026-08-25 21:38:36 -04:00
0654b304e1
feat(rag): lite-generated KB overview in the system prompt — stored single row, regenerated on import, <knowledge_base> section in HIGH+LOW prompts
ducoterra2026-08-25 20:22:51 -04:00
572a4190a6
feat(rag): lite-model document summaries — non-markdown docs summarized at import, summary chunk retrieves and resolves to the full source doc
ducoterra2026-08-25 17:48:37 -04:00
3841bd5a30
feat(ui): expose Global Tuning from Chat + Sources headers (admin-only Tuning nav link)
ducoterra2026-08-25 14:51:16 -04:00
3d044f33a1
feat(rag): git-based import sources — BOR_GIT_SOURCES repos cloned (first run, --depth 1) or pulled (--ff-only) into BOR_SOURCES_DIR/<repo>/ then indexed; --source still wins; a failed sync aborts before importing anything
ducoterra2026-08-25 14:23:02 -04:00
589e26dbe9
feat(rag): global tuning manager — /tuning.html + PUT /api/steering/{id}: create, edit, list, delete steering notes without a chat
ducoterra2026-08-25 13:46:32 -04:00
fcde1fd37b
feat(ui): documents open in an almost-fullscreen modal instead of a new page — same-page overlay on chat + Sources, /document.html kept as the no-JS/direct-link fallback
ducoterra2026-08-25 13:45:57 -04:00
476aa0e066
chore(agent): phase roadmap from TODO.md — 3 phases (document modal, global tuning, git-based sources)
ducoterra2026-08-25 10:15:42 -04:00
025f57beb5
fix(ui): background no longer moves — static grid, three glow spots fading in and out on their own slow cycles (owner 2026-08-25)
ducoterra2026-08-25 09:43:19 -04:00
1e6ae360e0
feat(rag): feed whole matched documents to the LLM — no context truncation (A7 revised)
ducoterra2026-08-24 23:37:44 -04:00
d7a4064616
fix(build): Containerfile builds again — relative module imports, all four pages and shared assets in the image
ducoterra2026-08-24 22:54:30 -04:00
0adc9b5801
fix(ui): animated background actually animates — grid drift and glow breathe per the phase-08 design
ducoterra2026-08-24 22:16:41 -04:00
22a6121411
fix(ui): thinking window no longer scrolls — live 320px view pinned to the stream tail
ducoterra2026-08-24 20:28:12 -04:00
986e704eb1
chore(agent): add phase 24 from TODO.md — whole-document context (no truncation, A7 revised); clear TODO.md
ducoterra2026-08-24 18:53:24 -04:00
04a7f4c05d
fix(ui): thinking window no longer scrolls — live 320px view pinned to the stream tail
ducoterra2026-08-24 18:24:57 -04:00
76c6a01199
fix(chat): keep the in-flight answer when navigating away mid-turn — partial answer restored on return
ducoterra2026-08-24 15:53:07 -04:00
824914ca3d
chore(agent): add phases 20-23 from TODO.md — four owner-confirmed bug fixes; clear TODO.md
ducoterra2026-08-24 15:23:49 -04:00
2afc77ee56
feat(ui): shared header — Sign in/Sign out and New Chat on every page; hide the Sources nav link from anonymous users
ducoterra2026-08-24 12:32:45 -04:00
bc0158f858
feat(ui): chat auto-scrolls only while pinned to the bottom — submitting reveals your message, scrolling up holds the viewport
ducoterra2026-08-24 10:53:04 -04:00
b16deb2b1d
feat(chat): stream model thinking over SSE and show it in a collapsible block
ducoterra2026-08-24 09:52:27 -04:00
fc0d9a2d5c
feat(rag): steering notes — tune how Brain answers, stored in Postgres and injected into every system prompt
ducoterra2026-08-22 16:44:42 -04:00
19df7df99d
feat(ui): persist the chat conversation in localStorage — survives refresh and navigation, with a New chat reset
ducoterra2026-08-22 15:52:53 -04:00
2485b50af0
fix(ui): document viewer back button returns to the page you came from (chat or sources)
ducoterra2026-08-22 15:26:43 -04:00
8ca564cd83
fix(ui): uniform header bar height on chat, sources, and the document viewer
ducoterra2026-08-22 15:14:31 -04:00
0da5275eeb
fix(rag): lift chat output cap to 32768 tokens — long answers no longer cut off
ducoterra2026-08-22 11:30:19 -04:00
6ec6181c7b
feat(ui): clickable document viewer — open any cited document in the browser from chat chips and the sources table
ducoterra2026-08-22 02:08:49 -04:00
7e8d14702e
feat(rag): hybrid FTS+vector retrieval and multi-format ingestion — name-your-tool questions find the right document
ducoterra2026-08-22 01:27:02 -04:00
2f738a7f19
feat(ui): dark tech theme — emoji-free chrome, subtle animated CSS background, WCAG AA dark palette
ducoterra2026-08-21 23:34:36 -04:00
1b29b1cf9d
feat(ui): responsive + WCAG AA polish pass across chat and sources — v1 feature complete
ducoterra2026-08-21 19:44:46 -04:00
e5810b0bcf
feat(ui): explicit chat state machine — typing indicator, streaming progress, timeout and error recovery
ducoterra2026-08-21 18:45:27 -04:00
2364e1ee7d
feat(ui): onboarding suggestion chips with one-tap submit, keyboard access, and mobile scroll row
ducoterra2026-08-21 18:18:47 -04:00
cbf8e39e63
feat(rag): honest deflection gate with amber UI state and alternative-question chips
ducoterra2026-08-21 17:50:33 -04:00
396e4d47fb
feat(rag): stream grounded RAG answers over SSE with source citations
ducoterra2026-08-21 17:17:02 -04:00