v0.1.0-rc6 - #787
Merged
Merged
v0.1.0-rc6#787
Conversation
Back-merge main into dev
Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: mayakid <29959320+mayakid@users.noreply.github.com> Co-authored-by: mayakid <29959320+mayakid@users.noreply.github.com>
* Keep eligible retrieval hits when applying the result limit Signed-off-by: mayakid <29959320+mayakid@users.noreply.github.com> * Quote the retrieval test command so CI parses correctly Signed-off-by: mayakid <29959320+mayakid@users.noreply.github.com> --------- Signed-off-by: mayakid <29959320+mayakid@users.noreply.github.com> Co-authored-by: mayakid <29959320+mayakid@users.noreply.github.com>
Signed-off-by: mayakid <29959320+mayakid@users.noreply.github.com> Co-authored-by: mayakid <29959320+mayakid@users.noreply.github.com>
Signed-off-by: mayakid <29959320+mayakid@users.noreply.github.com> Co-authored-by: mayakid <29959320+mayakid@users.noreply.github.com> Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
* Closing a fact clears it from the unconfirmed queue Signed-off-by: Qishang Zhong <zhongqishang@gmail.com> * Delete the test organization after each case Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: Qishang Zhong <zhongqishang@gmail.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com> Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
* A statement keeps the document's words Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A statement names its subject and object Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * Open extraction samples at temperature zero and does not unfold a bare belonging Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A value with nothing in it is no value Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * Open extraction is the default Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
A Databricks schema read on a wide catalog was cut at 201 rows silently. The same SQL Statement Execution API call goes through DatabricksEngine::run with row_limit = ROW_CAP + 1, intended as the chat-query safety valve. information_schema.columns returns one row per column, so any catalog with more than ~201 columns stops partway through a table and nothing says so. Snowflake has the same shape: the response includes partitionInfo with per-partition URLs that follow the first inline chunk, and the engine reads only that first chunk. Two fixes per engine, scoped to schema reads: - Schema reads do not send row_limit. fetch_schema calls run with None; chat-query execute() keeps Some(ROW_CAP + 1). Snowflake has no request-body row limit to begin with — it follows the existing LIMIT-clause path through wrap_limit — so this is a Databricks-only behavioural change. The row_limit is now an Option<usize> on run. - Both engines follow result chunks until exhausted. Databricks follows next_chunk_internal_link via repeated GET until the link is absent, then verifies rows.len() == manifest.total_row_count when no row_limit was set. Snowflake iterates partitionInfo from index 1 (the first partition is the inline data already in the response), GET each url, and verifies partition row counts sum to numRows. Any mismatch bails loudly instead of returning a partial schema. manifest.truncated on the Databricks side is now an explicit fail-fast: a chat query that actually gets truncated by the server returns an error rather than presenting fewer rows as a complete answer. The previous code returned the truncated set with no warning. Tests (all in wiremock, no live cluster needed): - a_schema_read_follows_chunks_until_exhausted — three chunks, all rows collected in order. - a_chat_query_bails_loudly_when_the_service_says_truncated — chat query with manifest.truncated=true errors instead of returning fewer rows. - a_schema_read_fails_when_total_row_count_does_not_match — schema read with a mismatch between manifest.total_row_count and the actual rows received errors. - a_schema_read_follows_partitions_until_exhausted — three partitions on the Snowflake side, all rows collected in order. Both new tests pass alongside the existing 9 (Databricks) and 3 (Snowflake) tests. utopia-server 304 passed, clippy -D warnings clean, cargo fmt clean. Integration test on a real Databricks / Snowflake warehouse is still required for end-to-end confirmation. Refs #703 Signed-off-by: rollroyces <rollroyces@users.noreply.github.com> Co-authored-by: rollroyces <rollroyces@users.noreply.github.com>
* A memory waits in its own words Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A nod cites the sentence, not the whole episode Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A qualifier pill keeps to the spacing scale Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* Extraction reads only the open graph Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A description becomes an entity only when a statement points at it Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* A time mention is resolved against its document Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * As of a period means its end, and a whole year is one bucket Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A relative period anchors to the document and a count inside a trial does not Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* A kind word binds to a class Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * One alignment run per base at a time Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* A table keeps its headings, its sections and its caption Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A table row takes its period from the header in the same chunk Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A change between periods is a phrase, not a time Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A dash stays in its cell and a continued table keeps its headings Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A phrase that repeats the value or the subject is counted, not dropped Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * rustfmt Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* 0044 proposes reading a document in stages Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * 0044 says which builds the model comparison ran on Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * 0044 keeps lexicons as governed data Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * 0044 makes the ontology a view over what documents say Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * 0044 reports judged precision and gold recall instead of F1 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * 0044 makes alignment produce bindings and implication rules on a workbench Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * 0044 says alignment reads the source Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* What prior work taught us Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The extraction design names the phrase rule and the term gate Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The design says how a table is read Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The table item is number 26 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * 0043 waits for alignment Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* A statement says its mood and a subjectless sentence takes the passage's subject Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A table row is not a subjectless sentence Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A table row is recognised by the line it sits on Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A mood is a requirement, a plan or a condition, never a report; the subject rule is withdrawn Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* The records say what is built Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The records say what is built Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* The quote comes first Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * Figures are counted before a second pass is built Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The design pages point at their pull request Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* A misworded verdict says which way it is wrong Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The design pages point at their pull request Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* A table is a table in every format Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The design pages point at their pull request Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A line break outside a cell is a match guard Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* A phrase binds to a property Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * An unbound end fits only an undeclared one, and a skipped run queues behind the running one Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * An alignment run looks for new work when it ends Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The ontology page says what phrase binding measured Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The design pages point at their pull request Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* A bound statement becomes a typed fact Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The ontology page says the typed graph is computed Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The design pages point at their pull request Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* One typed fact for many statements Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A superseded row hands its sources to the row that replaced it Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The design page points at its pull request Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* The aligner's open questions have a queue Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The governance page lists the alignment queue Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The design page points at its pull request Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* One statement draws one edge Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The design pages say one statement draws one edge Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The design pages point at their pull request Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
…756) Signed-off-by: Qishang Zhong <zhongqishang@gmail.com>
* A bulk ontology edit queues one alignment run Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A gateway failure is transient, not a rejection Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A name is not removed on one click Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A request that never arrived is worth sending again Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A passage that could not be extracted is a row Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A burst of ontology edits debounces into one run Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * Extraction listens to the model think Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A stream that stops mid-answer is not an answer Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
* A reasoning cap is measured and left alone Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A timeline closes on how a date was got Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * Format the timeline changes Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The merge simulation reads the grade too Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * A described observation is what holds a pair for a person Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
* Fix GBK-encoded PDF text extraction Signed-off-by: Floating-Y <118035379+Floating-Y@users.noreply.github.com> * An empty fallback is not a scan Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: Floating-Y <118035379+Floating-Y@users.noreply.github.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com> Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
* A table cell takes the period of its own column Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> * The tab strip starts where the rows do Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: dada-yan <BinjunYann@gmail.com> Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: dada-yan <BinjunYann@gmail.com> Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
* Reconsider negative bindings when existing definitions change Signed-off-by: dada-yan <BinjunYann@gmail.com> * Explain the model work an ontology edit reopens Signed-off-by: dada-yan <BinjunYann@gmail.com> --------- Signed-off-by: dada-yan <BinjunYann@gmail.com> Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
* Keep XML references from truncating WebDAV file paths Signed-off-by: dada-yan <BinjunYann@gmail.com> * An empty redeclaration does not clobber a property Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: dada-yan <BinjunYann@gmail.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com> Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
* Preserve Unicode when streamed model replies split a character Signed-off-by: dada-yan <BinjunYann@gmail.com> * Use Chinese comments for UTF-8 stream buffering Signed-off-by: dada-yan <BinjunYann@gmail.com> --------- Signed-off-by: dada-yan <BinjunYann@gmail.com> Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
* Keep indexed embedding responses paired with their input texts Signed-off-by: dada-yan <BinjunYann@gmail.com> * An index that is not a number is not an index Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: dada-yan <BinjunYann@gmail.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: dada-yan <BinjunYann@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
* Reject model streams that end before completing their turn Signed-off-by: dada-yan <BinjunYann@gmail.com> * Count interrupted stream content in Unicode characters Signed-off-by: dada-yan <BinjunYann@gmail.com> --------- Signed-off-by: dada-yan <BinjunYann@gmail.com> Co-authored-by: dada-yan <BinjunYann@gmail.com>
* The token ceiling is ours, and a cut reply says so Extraction never sent `max_tokens`, so where a long answer stopped was decided by the endpoint's own default: with reasoning off, a dense passage's answer stopped at exactly 4,096 completion tokens with `finish_reason: length`, and that JSON could not be parsed. Send an explicit 16,384 on the streamed calls — four times the longest answer measured on this path. This endpoint ignores the field with reasoning on, where a call capped at 4,096 returned 45,428 completion tokens and finished normally; it honours it with reasoning off, which is where the truncation was seen. The field costs nothing where it is not read. Carry `finish_reason` out with the answer rather than dropping it once the stream is known to have ended. A reply cut at the ceiling is a valid string and looks complete to the parser, so the drop row could only say the reply did not parse. It now says the reply hit the token ceiling, and the two causes stay apart: an answer that is too long is a number to change, a reply that does not fit the shape is not. Fixes #760 Signed-off-by: basil-k-aji-dev <70605804+basil-k-aji-dev@users.noreply.github.com> * The ceiling is measured against the completion, not the answer Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> --------- Signed-off-by: basil-k-aji-dev <70605804+basil-k-aji-dev@users.noreply.github.com> Signed-off-by: WaylandYang <wayland0916@gmail.com> Co-authored-by: basil-k-aji-dev <70605804+basil-k-aji-dev@users.noreply.github.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two weeks in which extraction stopped writing into a schema and started writing what documents say, and alignment learned to turn that back into typed facts. The ledger, the interface and the reading of files all moved with it.
A document is read in its own words
Extraction writes an open graph — the subject, the relation phrase as written, the object, the quote it came from — and nothing is bent to fit a class on the way in (0044, #710, #731, #736).
The ontology is a view over that, not a gate in front of it
Time
AUTO_CLOSE_MIN_CONFIDENCEis gone from the engine (A timeline closes on how a date was got #762)A file is read by something that says how it read it
What a call to the endpoint survives
Measured, and left alone
Capping the model's reasoning halves the thinking and costs a sixth of a filing's table figures, 885 statements against 729, and nearly double the misworded rate. The lever is documented and not pulled (#759). Two runs of the same four filings under one configuration differ by about 7% of their statements and half a point of misworded, which is the band any claim has to clear (#769).
Interface
Reads through MCP
Schema reads follow result chunks and are not truncated by the row cap (#737, thanks @rollroyces). Rule and document read failures are tool errors rather than empty successes, and the retrieval limit is applied after visibility filtering (#727, #728, #733, #734, thanks @Maya-Kid).
Thank you @Maya-Kid, @siu91, @rollroyces, @Floating-Y and @basil-k-aji-dev.