Commit graph

157 commits

Author SHA1 Message Date
Yiorgis Gozadinos
81ba248483
vb 2026-04-24 17:47:57 +03:00
Yiorgis Gozadinos
a4275acdce
Fix frontend selection collisions, stale fetches, and URL consistency 2026-04-24 17:17:28 +03:00
Yiorgis Gozadinos
2ad51f5dca
Serialize HaikuRAG singleton creation in backend get_client 2026-04-24 15:31:20 +03:00
Yiorgis Gozadinos
d99e48a9a3
Close HaikuRAG client on backend shutdown 2026-04-24 14:43:59 +03:00
Yiorgis Gozadinos
82fd10e0ee
Migrate LanceDB to native async API
Convert all LanceDB operations from sync calls wrapped in async
functions to the native async API (connect_async, AsyncConnection,
AsyncTable, AsyncQuery). Database I/O no longer blocks the event loop.

- Store and HaikuRAG use async context managers (async with). Store
  initialization is deferred to __aenter__; direct construction
  without async with is no longer supported.
- Index creation uses config objects (FTS, BTree, IvfPq) instead of
  string-based index_type parameter.
- Upgrade callbacks are async.
- HaikuRAG tracks background vacuum tasks and awaits them in __aexit__
  and before destructive rebuild operations to avoid races with
  concurrent table mutations.
- temp_db_path fixture uses pytest's tmp_path for reliable async
  cleanup.
2026-04-24 14:42:52 +03:00
Yiorgis Gozadinos
4f058bf484
vb 2026-04-22 17:00:03 +03:00
Yiorgis Gozadinos
ae2b8461be
flatten skill state citations from list[list[str]] to list[str] 2026-04-22 16:50:13 +03:00
Yiorgis Gozadinos
bb9e7b28ca
vb 2026-04-22 16:18:44 +03:00
Yiorgis Gozadinos
8a23108fbd
vb 2026-04-20 16:36:32 +03:00
Yiorgis Gozadinos
eb4e1721ce
remove dead code, add tool descriptions in frontend, update changelog 2026-04-20 15:38:17 +03:00
Yiorgis Gozadinos
fa87cf79c5
Docs & cl 2026-04-20 10:14:19 +03:00
Yiorgis Gozadinos
68a9f191d2
Remove documents from state, fix tests 2026-04-20 09:48:18 +03:00
Yiorgis Gozadinos
d52f453c44
flatten skill architecture: replace ask/analyze/research with direct tools 2026-04-17 18:35:17 +03:00
Yiorgis Gozadinos
1049586469
vb 2026-04-17 16:24:25 +03:00
Yiorgis Gozadinos
a1181ff52d
extract get_database_stats and share it across info, inspector, and backend 2026-04-17 15:33:30 +03:00
Yiorgis Gozadinos
b6113bf8ab
replace fixed-radius expansion with section-bounded algorithm
Context expansion is now automatic and structure-aware. For structured
documents, expands within the section containing the match. For sections
that exceed the budget or are too small, expands item-by-item outward
skipping noise labels. Unstructured documents use budget-based outward
expansion. Results sorted by relevance score.
2026-04-16 12:11:53 +03:00
Yiorgis Gozadinos
e16c819e83
Adapt to new haiku.skills 2026-04-16 11:50:55 +03:00
Yiorgis Gozadinos
0d6df472af
bump ag-ui protocol deps, fix duplicate React key in chat 2026-04-14 12:50:25 +03:00
Yiorgis Gozadinos
dcde86a5f1
vb 2026-04-09 15:33:19 +03:00
Yiorgis Gozadinos
62a436dd9d
vb 2026-04-08 14:04:32 +03:00
Yiorgis Gozadinos
3d30840e9d
vb 2026-04-07 16:36:27 +03:00
Yiorgis Gozadinos
5c4164d224
vb 2026-04-01 13:32:56 +03:00
Yiorgis Gozadinos
c4c90b3930
Propagate domain_preamble to skill instructions and main agent preamble 2026-04-01 13:13:36 +03:00
Yiorgis Gozadinos
127535bc56
vb 2026-03-28 10:05:50 +02:00
Yiorgis Gozadinos
13a71e34a7
vb 2026-03-27 16:39:22 +02:00
Yiorgis Gozadinos
f46b8195ed
vb 2026-03-26 14:15:09 +02:00
Yiorgis Gozadinos
f5014f39bf
vb 2026-03-24 17:46:51 +02:00
Yiorgis Gozadinos
8a5188aa01
vb 2026-03-24 14:23:29 +02:00
Yiorgis Gozadinos
83ea6347b6
Fix CI failures: update tests for pydantic-ai 1.70.0 and FastMCP API changes 2026-03-24 14:02:03 +02:00
Yiorgis Gozadinos
8f5b6c299d
Conform to ActivitySnapshot update using the same message_id 2026-03-24 13:30:42 +02:00
Yiorgis Gozadinos
9243f56e1c
vb 2026-03-16 14:30:08 +02:00
Yiorgis Gozadinos
f961f00f2c
vb 2026-03-13 13:24:31 +02:00
Yiorgis Gozadinos
6548f1f0aa
Update haiku.skills to 0.8.0 2026-03-13 13:12:55 +02:00
Yiorgis Gozadinos
1782e01922
chore: simplify frontend CSS and unify message rendering logic
Consolidate 4 CopilotKit max-width override rules into 1 scoped to
.chat-container. Remove dead pre-1.54.0 selectors and redundant
browser-default styles. Unify the two render paths in
MessageViewWithCitations into a single loop.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:45:58 +02:00
Yiorgis Gozadinos
9e29a7e849
handle ActivitySnapshotEvent in web frontend and fix CopilotKit 1.54.0 styling 2026-03-13 12:39:55 +02:00
Yiorgis Gozadinos
2566bf1a61
Adapt to haiku.skills streaming sub-agent ag-ui events 2026-03-03 11:16:44 +02:00
Yiorgis Gozadinos
52ef983e75
Fix default chat model, default to config.qa.model 2026-02-28 14:00:40 +02:00
Yiorgis Gozadinos
27a71c7e01
Adapt skill usage to haiku.skills prompt builder. Closes #289 2026-02-28 13:34:54 +02:00
Yiorgis Gozadinos
cb5935a6fa
Show in tui and nextjs app what is being requested from a skill 2026-02-20 18:14:44 +02:00
Yiorgis Gozadinos
69083c8cb4
Fix stale docs 2026-02-20 16:59:58 +02:00
Yiorgis Gozadinos
c55c68a96d
Fix frontend build: satisfy CopilotChatView messageView slot type. Closes #284 2026-02-20 16:36:51 +02:00
Yiorgis Gozadinos
eb9436eb2a
Remove unused conversational output mode from research graph 2026-02-20 16:36:50 +02:00
Yiorgis Gozadinos
972fb18d30
Wire AG-UI state round-tripping in app backend 2026-02-20 16:36:50 +02:00
Yiorgis Gozadinos
09e6324add
Adapt frontend 2026-02-20 16:36:49 +02:00
Yiorgis Gozadinos
a7850e2210
Assign stable index to citations. Use a strong prompt preamble for our app agents 2026-02-20 16:36:48 +02:00
Yiorgis Gozadinos
643ed20d6f
Rewrite chat TUI and app backend with haiku.skills 2026-02-20 16:36:48 +02:00
Yiorgis Gozadinos
8abcb5ce32
Update react dependencies 2026-02-17 13:34:28 +02:00
Yiorgis Gozadinos
8c76897af2
Update tui and app to use the toolkit 2026-02-16 12:54:44 +02:00
Yiorgis Gozadinos
5767158737
Paddings and ui fixes 2026-02-13 16:42:03 +02:00
Yiorgis Gozadinos
969c64d106
Add citations_history to SessionState for unified citation rendering between search and ask 2026-02-13 16:21:50 +02:00
Yiorgis Gozadinos
5f6d9e9812
handle state_key duplication between deps and ToolContext 2026-02-13 10:23:12 +02:00
Yiorgis Gozadinos
05ebd781d4
Move client and tool_context from toolset factories to RunContext.deps 2026-02-12 15:50:46 +02:00
Yiorgis Gozadinos
467bcff94d
Add frontend session management with localStorage persistence, deduplicate shared code 2026-02-12 15:16:47 +02:00
Yiorgis Gozadinos
58c2bd49ea
Clean up server vs client session setting priorities 2026-02-11 16:54:00 +02:00
Yiorgis Gozadinos
9e63ff1ff7
Remove session_id from state layer, remove module-level caches 2026-02-11 14:55:53 +02:00
Yiorgis Gozadinos
c916356a42
Clean up toolset exports, simplify update_session_context(), fix health check 2026-02-11 12:46:50 +02:00
Yiorgis Gozadinos
f85aaefed7
Extract shared snapshot helpers 2026-02-10 17:34:30 +02:00
Yiorgis Gozadinos
3ed9cbb7d3
Use the tools inside the chat agent. 2026-02-10 14:38:12 +02:00
Yiorgis Gozadinos
cbd94f6cc9
Always use state deltas instead of conditional snapshot/delta logic 2026-01-28 17:03:18 +02:00
Yiorgis Gozadinos
e325962fcc
Add logging to the backend 2026-01-28 14:08:24 +02:00
Yiorgis Gozadinos
b5aeefb10f
Fix state delta computation by avoiding mutation of original state 2026-01-28 14:06:29 +02:00
Yiorgis Gozadinos
c27dde2497
Send state deltas updates instead of full state snapshots 2026-01-28 14:06:29 +02:00
Yiorgis Gozadinos
614c34b98f
Add read-only initial context for chat sessions for TUI and web app 2026-01-27 13:59:00 +02:00
Yiorgis Gozadinos
ee3cb5bd87
Allow initial_context to be set for the chat agent 2026-01-27 10:38:18 +02:00
Yiorgis Gozadinos
0419c9a0ae
Filter documents in app 2026-01-26 16:42:40 +02:00
Yiorgis Gozadinos
5aabae4d06
Remove background_context & simplify 2026-01-26 16:42:39 +02:00
Yiorgis Gozadinos
9d71ccb213
Move session context to agent, make AGUI work 2026-01-26 16:42:39 +02:00
Yiorgis Gozadinos
3214160fe7
Show SessionContext in frontend 2026-01-26 16:42:38 +02:00
Yiorgis Gozadinos
aaddf4a5a9
Dynamic session context to be used in the conversational agent 2026-01-26 16:41:12 +02:00
Yiorgis Gozadinos
47d355ed0a
Update dependencies 2026-01-23 11:57:02 +02:00
Yiorgis Gozadinos
35ebdd67e2
vb 2026-01-22 17:48:39 +02:00
Yiorgis Gozadinos
32c64d3d11
vb 2026-01-22 12:59:32 +02:00
Yiorgis Gozadinos
ea7a4a9a8f
apply dotenv usecwd fix to remaining files
Apply the same find_dotenv(usecwd=True) fix from cli.py to:
- evaluations/evaluations/benchmark.py
- app/backend/main.py

Co-Authored-By: Tianyi Cui <contact@tianyicui.com>
2026-01-22 12:41:35 +02:00
Yiorgis Gozadinos
e7ce9694b5
vb 2026-01-20 15:47:37 +02:00
Yiorgis Gozadinos
5e55c0df54
replace pyright with ty type checker 2026-01-19 15:50:14 +02:00
Yiorgis Gozadinos
2c264f4afc
vb 2026-01-19 14:54:18 +02:00
Yiorgis Gozadinos
5f2f180960
vb 2026-01-16 15:27:55 +02:00
Yiorgis Gozadinos
bdfc6b87e7
Rename initial_context to background_context 2026-01-16 15:03:42 +02:00
Yiorgis Gozadinos
6c5c23b338
Use pnpm, not npm on CI, fix errors. 2026-01-16 15:03:42 +02:00
Yiorgis Gozadinos
c1163dc8ff
Use biome on the frontend for linting, add to CI 2026-01-16 15:03:41 +02:00
Yiorgis Gozadinos
609cbb78de
Background context component for frontend 2026-01-16 15:03:41 +02:00
Yiorgis Gozadinos
18362f01c2
Pass context for CLI/app 2026-01-16 15:03:06 +02:00
Yiorgis Gozadinos
12e5e9ebfb
vb 2026-01-15 16:24:03 +02:00
Yiorgis Gozadinos
7639c2915e
Add AGUI_STATE_KEY for namespaced AG-UI state emission 2026-01-15 15:46:37 +02:00
Yiorgis Gozadinos
157773ef15
vb 2026-01-15 11:47:49 +02:00
Yiorgis Gozadinos
2930679dc1
vb 2026-01-13 19:47:27 +02:00
Yiorgis Gozadinos
275b09c8c5
vb 2026-01-13 18:34:45 +02:00
Yiorgis Gozadinos
eb5d0b0622
Use tui as an optional group. vb 2026-01-13 12:30:19 +02:00
Yiorgis Gozadinos
f3b644a2a3
Update docs for app 2026-01-13 12:18:13 +02:00
Yiorgis Gozadinos
7cc561d1db
Refactor to make agents a top-level module. Bring in the conversational agent from the app 2026-01-12 12:37:08 +02:00
Yiorgis Gozadinos
baefbe9416
Tool calling in the frontend 2026-01-12 12:36:32 +02:00
Yiorgis Gozadinos
f2fb64cbca
Remove custom ag-ui from app backend. 2026-01-12 12:36:32 +02:00
Yiorgis Gozadinos
26bc02ef14
Build a "conversational" research graph 2026-01-12 12:36:31 +02:00
Yiorgis Gozadinos
df71e7a893
Adapt search to show complete results 2026-01-12 12:36:31 +02:00
Yiorgis Gozadinos
8579ded7bb
Natural language filtering 2026-01-12 12:36:31 +02:00
Yiorgis Gozadinos
36f964eaa9
get_document() 2026-01-12 12:36:31 +02:00
Yiorgis Gozadinos
a6a60963c0
Add SSE heartbeat to prevent connection timeouts
Sends SSE comment every 15 seconds during long LLM operations
to keep the connection alive and prevent body timeout errors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 12:36:30 +02:00
Yiorgis Gozadinos
8b7c679159
Add SearchAgent for internal query expansion
SearchAgent generates 2-4 diverse search queries internally,
runs them against the knowledge base, deduplicates by chunk_id,
and returns consolidated results. This prevents the outer chat
agent from making multiple search calls.

Also updates system prompt to enforce single tool calls per message.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 12:36:30 +02:00
Yiorgis Gozadinos
49f5c20757
Mount haiku.rag.yaml config in docker compose
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 12:36:30 +02:00
Yiorgis Gozadinos
18cec25fc9
Visual grounding; 2026-01-12 12:36:30 +02:00