release: promote dev to main (pre-0.1.8rc13) - #235
Merged
Merged
Conversation
chore: sync main into `dev` (0.1.8rc11 / jvspatial 0.0.18)
Drop graph-repair edge_ids sync phases; pin jvspatial==0.0.19.
…turns _after_loop gated only on interaction.response while streaming latches emitted first, so model_unavailable compose could run twice. Unify delivery detection via _turn_delivered and skip commit_pending_adhoc when the settled text is already on the interaction. Co-authored-by: Cursor <cursoragent@cursor.com>
Hard-coded 200k for claude-sonnet-4-5 broke when LiteLLM bumped the model table to 1M; assert against litellm_capabilities() instead. Co-authored-by: Cursor <cursoragent@cursor.com>
LiteLLM now reports a 1M window; keep proving capabilities come from upstream. Co-authored-by: Cursor <cursoragent@cursor.com>
_after_loop already used _turn_delivered; _egress still checked has_emitted() only, so a turn with interaction.response set but no latch (model_error salvage path) queued a second ReplyAction publish. Also latch emitted when commit_pending_adhoc skips an already-settled replay. Co-authored-by: Cursor <cursoragent@cursor.com>
MagicMock interactions expose a truthy non-string response attribute; _turn_delivered must check isinstance(str) before skipping egress. Co-authored-by: Cursor <cursoragent@cursor.com>
…hunk Stops a second independent user publish from twinning assistant bubbles downstream; active stream may still finish. Covered by emitted-latch tests. Co-authored-by: Cursor <cursoragent@cursor.com>
… runtime Admit turns as (agent_id, user_id, session_id), key tool/skill caches by snapshot, and add a store-backed journal/ledger/outbox/lease surface so later HPs have a host-neutral substrate. Result reuse is opt-in via idempotency_class so the loop repeat-guard still re-executes undeclared tools. Co-authored-by: Cursor <cursoragent@cursor.com>
Checkpoint journals onto Interaction so resume can skip completed IDEMPOTENT calls; stage untrusted Claude skills only with an approved backend; mark mutating send/delete/bash tools NON_RETRYABLE.
Live host invoke, signed skill revoke, durable dump/leases, and CI/CUCS evidence so acceptance no longer sits on deferred stubs.
Host capabilities join the standard tool catalog, skill bodies are real materializations, recovery_required stops re-entry, and outbox replay carries the original response payload.
Non-stream publish during an open accumulator minted a second Object id, and finalize_interaction emitted another final under a fresh uuid. Integral splits bubbles on those ids.
Placeholder interaction ids like i1 leaked between cases and suppressed legitimate publishes in the governance suite.
Keep upstream-equality for Claude context_window; take origin/dev's defensive caps.source check.
feat(harness): freeze NativeCaller contracts and ship durable turn runtime
Co-authored-by: Cursor <cursoragent@cursor.com>
…ndling Introduced a new function to normalize LiteLLM model IDs by lowercasing the provider prefix. Updated the model assignment in DebugInteractions and buildQueryPayload to utilize this normalization function. Added tests to verify the behavior of the new function.
…t content Co-authored-by: Cursor <cursoragent@cursor.com>
… and event tracking - Introduced `_register_orchestrator_vocabulary` to declare vault tool results as trusted directive sources. - Added `DOCUMENT_CONTENT_CONDITION` and `DOCUMENT_SELECTION_RULES` to improve document selection logic. - Implemented event recording for saved documents and answered pending questions in `vault_events.py`. - Created `ready_message.py` to manage ready-notice and pending-question responses. - Updated `check_ingest_status` to utilize new event tracking and response generation. - Added tests for document selection rules and event recording functionality.
feat(jvchat): replay debug ticks with first-tick tool schemas
…-content fix(artifact_handler): answer pending questions from ingested document content
Harness turn_run/trace rows on observability_metrics were labeled "Interaction" at the end of every exchange. Keep them on the node for recovery; strip from SSE, INTERACTION logs, and Debug picker.
fix(interact): hide harness journal blobs from debug export
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.
Summary
Promotes
origin/devontomain. Tree is byte-identical todevatb6ac6c0f. Version stays 0.1.8rc12 — the rc13 bump is a follow-up (#234).What lands
harness.turn_run/harness.trace) from Debug export and INTERACTION logs.Test plan
Test jvagentgreen on this PRversion.py+ CHANGELOG vsmainjvagent/version.pylands onmainMade with Cursor