Commit graph

6989 commits

Author SHA1 Message Date
CREDO23
49d675c065 web-search: register results on the citation registry (Channel B -> A)
web_search now registers each result as a WEB_RESULT (locator {url}) and
renders a <web_results> block of <document view="excerpt"> [n] passages,
returning Command(update={messages, citation_registry}) like
search_knowledge_base. Collapse the duplicate research-subagent web_search
into the shared tool and teach the prompts to cite web hits with [n].
2026-06-25 15:26:51 +02:00
CREDO23
c98bdea5cf search-kb: on-demand KB tool on the [n] spine; drop kb_matched_chunk_ids
The main agent's search_knowledge_base tool runs the hybrid spine, renders
a <retrieved_context> of numbered [n] passages, and persists the registry.
KB subagent prompts teach citing [n] from <document view="full"> reads
(evidence.chunk_ids -> evidence.citations). Delete the now-unused
search->read highlighting hand-off: the kb_matched_chunk_ids state field,
its reducer default, the tool's _matched_chunk_ids writer, and the dead
KnowledgePriorityMiddleware writes.
2026-06-25 15:26:39 +02:00
CREDO23
04a76b163b citations: conversation-scoped registry with finalize-time [n] resolution
Add the checkpointed CitationRegistry (load/merge helpers + state field)
and a lightweight CitationStateMiddleware so subagents can register into
the same conversation registry. Resolve [n] -> [citation:<payload>] at
stream finalize from the registry, polymorphically by source type.
2026-06-25 15:26:25 +02:00
CREDO23
265888d21c document-render: unify KB/web rendering on numbered [n] passages
Add a shared document_render package that renders sources as
<document view="excerpt|full"> blocks with server-assigned [n] passage
labels (KB locator {document_id, chunk_id}, web locator {url}). Wire the
KB read backend (kb_postgres) and read_file to the new renderer and drop
the legacy per-document XML renderer (document_xml, retrieved_context) and
the old chunk_index / matched="true" / <chunk id> read format.
2026-06-25 15:26:16 +02:00
CREDO23
852ab3a576 retrieval: add hybrid search behavior tests 2026-06-25 09:15:59 +02:00
CREDO23
e72b17fbed retrieval: instrument hybrid search; note deferred citation markers 2026-06-25 09:00:23 +02:00
CREDO23
e12afa7c8f adr: note citation prompt cutover 2026-06-25 08:35:59 +02:00
CREDO23
e16a2af44e prompts: add ordinal citation contract 2026-06-25 08:35:59 +02:00
CREDO23
915ad80e19 retrieval: add unit tests for pure components 2026-06-25 08:23:30 +02:00
CREDO23
4fe208557a retrieval: add reranking wrapper and context service 2026-06-25 08:23:29 +02:00
CREDO23
407bfcd94f retrieval: add source label and retrieved-document adapter 2026-06-25 08:23:29 +02:00
CREDO23
608192057f retrieval: add search scope models and hybrid chunk search 2026-06-25 08:23:29 +02:00
CREDO23
26a1431e87 retrieved_context: drop document completeness concept 2026-06-25 08:23:29 +02:00
CREDO23
6bb20df510 citations: rewrite model [n] ordinals to frontend [citation:] markers 2026-06-25 06:48:25 +02:00
CREDO23
b043911325 references: route @chat through chat/ slice 2026-06-24 22:54:58 +02:00
CREDO23
e8a4239151 references: chat package surface 2026-06-24 22:54:58 +02:00
CREDO23
0179473f57 references: chat reference resolver 2026-06-24 22:54:58 +02:00
CREDO23
c0ebb9c26b references: chat access-checked thread lookup 2026-06-24 22:54:58 +02:00
CREDO23
db442b3961 retrieved_context: renderer tests 2026-06-24 22:38:47 +02:00
CREDO23
9ffbba8d8c retrieved_context: package surface 2026-06-24 22:38:47 +02:00
CREDO23
1f5da25ef5 retrieved_context: renderer 2026-06-24 22:38:47 +02:00
CREDO23
4d68fa8998 retrieved_context: models 2026-06-24 22:38:47 +02:00
CREDO23
939bfb2c18 references: discriminated per-kind reference types 2026-06-24 22:07:54 +02:00
CREDO23
efe9429133 references: connector field tests 2026-06-24 21:52:31 +02:00
CREDO23
bffe2491d6 references: resolve_references fan-out 2026-06-24 21:52:31 +02:00
CREDO23
9954a2d960 references: chat resolver 2026-06-24 21:52:31 +02:00
CREDO23
db9b32c72f references: connector resolver 2026-06-24 21:52:31 +02:00
CREDO23
5faf0da5bf references: folder path tests 2026-06-24 21:48:52 +02:00
CREDO23
b5a6e4c32a references: folder resolver 2026-06-24 21:48:52 +02:00
CREDO23
a5848f1d43 references: document resolver 2026-06-24 21:48:52 +02:00
CREDO23
5b8dbd0ccb adr: lock @chat on-demand read decision 2026-06-24 21:46:37 +02:00
CREDO23
f8a71581c0 adr: resolve @chat as non-indexed read reference 2026-06-24 21:44:25 +02:00
CREDO23
7e147137d6 references: pointer renderer tests 2026-06-24 21:42:17 +02:00
CREDO23
ce67c282b9 references: package surface 2026-06-24 21:42:17 +02:00
CREDO23
05b58b80ed chore: track references tests package 2026-06-24 21:42:17 +02:00
CREDO23
0afaf94ee9 references: pointer renderer 2026-06-24 21:41:27 +02:00
CREDO23
ee9b9af8d3 references: models 2026-06-24 21:41:27 +02:00
CREDO23
d0b2548019 chore: track references source package 2026-06-24 21:41:27 +02:00
CREDO23
ff5ea157bb test(chat): add citation registry tests 2026-06-24 21:35:19 +02:00
CREDO23
85b999a52d feat(chat): add citations package surface 2026-06-24 21:35:19 +02:00
CREDO23
61b8af0af4 feat(chat): add citation registry 2026-06-24 21:35:19 +02:00
CREDO23
98b164c2d3 feat(chat): add citation entry data shapes 2026-06-24 21:35:19 +02:00
CREDO23
7f09c8a290 docs: add RAG citation and context architecture ADR 2026-06-24 21:35:19 +02:00
CREDO23
303a69a933 build(web): add missing mermaid dependency
Mermaid diagram rendering was wired up upstream but the package was never
declared, breaking the dev build ("Module not found: Can't resolve
'mermaid'"). Add it to package.json and lock it.
2026-06-23 18:30:46 +02:00
CREDO23
2d1ccb468a fix(chat): capture mention chips at submit so they aren't dropped
The composer cleared the live mention atom synchronously on send (via the
editor reset), which raced the async onNew handler that read it — dropping
every @-mention (docs, folders, connectors, and the new chat references)
from the request.

handleSubmit now snapshots the chips before clearing, and onNew consumes
that snapshot (falling back to the live atom for the send-button path),
derives the payload via deriveMentionedPayload, and sends mentioned_thread_ids.
2026-06-23 18:30:39 +02:00
CREDO23
1d5c364e1d feat(chat): surface chat references in the @-mention UI
Add a Chats tab to the mention picker (excluding the current chat), carry
the "thread" kind through the inline editor's chip nodes, and render thread
chips on user messages with navigation to the referenced conversation.
2026-06-23 18:30:29 +02:00
CREDO23
1f6934b980 feat(chat): extend composer mention model for thread references
Add the "thread" mention kind (makeThreadMention + stable dedup key) so a
chat can be referenced like a document. Also introduce submittedMentionsAtom
and a pure deriveMentionedPayload() helper, the building blocks for capturing
chips at submit time and mapping them to backend payload buckets.
2026-06-23 18:30:22 +02:00
CREDO23
5d79f91352 fix(chat): let search-space owners reference legacy null-creator chats
Mirror search_threads visibility in the referenced-chat resolver: a
search-space owner can now @-mention legacy threads that predate creator
tracking (null created_by_id), instead of those being silently dropped.
2026-06-23 18:30:15 +02:00
CREDO23
208ad9a643 test(chat): cover referenced-chat resolver and transcript budgeting
Add unit tests for role-specific turn extraction in the resolver and for
the transcript renderer: full rendering within budget, dropping oldest
turns with a marker, partial-tail fill of an overflowing turn, and
multi-chat tagging.
2026-06-23 17:04:43 +02:00
CREDO23
0e5ce83ee5 feat(chat): persist referenced-chat mention chips on user turns
Recognise the "thread" chip kind when building stored user content so
referenced-chat mentions survive reloads and regeneration.
2026-06-23 17:04:43 +02:00