Commit graph

39 commits

Author SHA1 Message Date
Yiorgis Gozadinos
e1dd8517f9
Refuse to compact evidence the host kept no record of
Both optional capabilities read what earlier questions retrieved and cited from
the capability's state, so a host that carries only the message history hands
every run an empty record. Compaction then replaced the earlier evidence with
receipts and retained nothing, and the loss was invisible: the citations the host
already displayed were still there. It now refuses when it finds evidence from an
earlier question and no record of what that question cited.

`state_carried` reaches the optional capabilities through discovery, so the
refusal distinguishes a host that never carries state from a question that simply
cited nothing.

The documentation taught the pattern that breaks: the compose example is now
stateful and the requirement is stated where each capability is introduced.

The app's browser storage was doing exactly this, keeping only the fields the UI
reads. It now persists the whole namespace map, so the citation policy's
violations survive a reload as well as the evidence record.
2026-08-13 15:46:23 +03:00
Yiorgis Gozadinos
53bbf52697
Round-trip the capability's whole state through the browser
The session store rebuilt the rag namespace from four known keys, so the
evidence record never survived a turn, let alone a reload from localStorage.
Compaction then ran with an empty ledger: earlier evidence was replaced by
receipts retaining nothing, while the citations already in citation_index kept
the UI looking correct.

The UI still names the fields it reads, but everything else in the namespace
passes through untouched, and seeding the namespace no longer replaces sibling
namespaces.
2026-08-13 15:20:02 +03:00
Yiorgis Gozadinos
9deb1f2bd4
replace haiku.skills with native Pydantic AI capabilities 2026-07-24 15:26:17 +03:00
Yiorgis Gozadinos
995d081aa1
Visualize the exact context the model saw via Citation.doc_item_refs
visualize_chunk re-expanded chunks from scratch to recover their refs,
which could not faithfully reproduce the original merge, scores, and
clip — so a visualization could highlight different pages than the
citation covered. Carry the cited items on Citation.doc_item_refs and
resolve bounding boxes from them directly; re-expansion remains only as
the fallback for callers with no stored context (CLI, inspector). Chat,
inspector, the app endpoint, and the frontend pass the refs through.
2026-07-09 11:51:37 +03:00
Yiorgis Gozadinos
494f774473
Visualize all constituent chunks of a merged citation 2026-07-09 11:05:41 +03:00
Yiorgis Gozadinos
1969c4528e
Fix example app 2026-06-26 13:12:53 +03:00
Yiorgis Gozadinos
a4275acdce
Fix frontend selection collisions, stale fetches, and URL consistency 2026-04-24 17:17:28 +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
d52f453c44
flatten skill architecture: replace ask/analyze/research with direct tools 2026-04-17 18:35:17 +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
8f5b6c299d
Conform to ActivitySnapshot update using the same message_id 2026-03-24 13:30:42 +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
cb5935a6fa
Show in tui and nextjs app what is being requested from a skill 2026-02-20 18:14:44 +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
09e6324add
Adapt frontend 2026-02-20 16:36:49 +02:00
Yiorgis Gozadinos
8abcb5ce32
Update react dependencies 2026-02-17 13:34:28 +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
467bcff94d
Add frontend session management with localStorage persistence, deduplicate shared code 2026-02-12 15:16:47 +02:00
Yiorgis Gozadinos
f85aaefed7
Extract shared snapshot helpers 2026-02-10 17:34:30 +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
614c34b98f
Add read-only initial context for chat sessions for TUI and web app 2026-01-27 13:59:00 +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
3214160fe7
Show SessionContext in frontend 2026-01-26 16:42:38 +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
7639c2915e
Add AGUI_STATE_KEY for namespaced AG-UI state emission 2026-01-15 15:46:37 +02:00
Yiorgis Gozadinos
baefbe9416
Tool calling in the frontend 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
18cec25fc9
Visual grounding; 2026-01-12 12:36:30 +02:00
Yiorgis Gozadinos
72b66dd3d8
Styling 2026-01-12 12:36:30 +02:00
Yiorgis Gozadinos
14873862f8
Q/A history 2026-01-12 12:36:29 +02:00
Yiorgis Gozadinos
9f1d82daa8
Citations 2026-01-12 12:36:29 +02:00
Yiorgis Gozadinos
f8964f6efc
Basic frontend 2026-01-12 12:36:28 +02:00