Repository navigation
JVNAUTOSCI-2613: Carry shared conversation situations across turns - #327
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR introduces a bounded, revisioned “conversation situation” carrier (plus a small exact-observation projection) that is stored alongside canonical chat history and threaded through adaptive turns, shared-conversation ownership, reset, and late durable-effect reconciliation, with documentation updates to make the conversation-as-shared-situation-carrier principle explicit.
Changes:
- Added chat-history session APIs for reading/writing a revisioned conversation-situation descriptor and bounded exact conversation observations, including atomic reset semantics.
- Plumbed situation + observation projection through
/von/generate,/von/history, and/von/reset, including shared-conversation owner authority and fail-soft state reads/writes. - Extended durable workflow terminal reconciliation to project canonical late outcomes back into the owning conversation as exact observations (idempotently), without making reconciliation fail if projection fails.
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/backend/test_von_reset_route.py | Updates reset-route expectations and adds shared-owner reset authority test. |
| tests/backend/test_von_history_debug_endpoint.py | Verifies history endpoint returns conversation situation/observations without hydrating large debug payloads. |
| tests/backend/test_von_generate_conversation_session_override.py | Adds coverage that generate carries forward and CAS-updates situation text; validates shared owner behaviour. |
| tests/backend/test_turn_execution_record_service_execution_summary.py | Ensures durable terminal reconciliation projects a conversation observation and records a projection watermark. |
| tests/backend/test_turn_execution_record_projection.py | Validates turn projection preserves actor scope while recording history owner/namespace metadata. |
| tests/backend/test_set_chat_session_endpoint.py | Updates history endpoint tests to the new session-state retrieval shape and tail/debug controls. |
| tests/backend/test_chat_history_conversation_situation.py | New comprehensive suite covering session-state reads, CAS writes, malformed optional fields, bounded observations, and atomic reset. |
| tests/backend/test_adaptive_turn_service.py | Adds tests for sidecar situation protocol handling, elicitation behaviour, and bounded observation projection. |
| src/backend/services/turn_execution_record_service.py | Adds “conversation_projection” phase and projects late durable terminals into conversation observations. |
| src/backend/services/chat_history_service.py | Implements session-state read API, CAS situation writes/clears, bounded observation append/clear, and atomic reset. |
| src/backend/services/adaptive_turn_service.py | Implements private sidecar extraction, bounded observation projection, and threads situation/observations into the system scope message and result. |
| src/backend/server/routes/von_routes.py | Routes now load/persist conversation situation + observation state, enforce shared-owner reset authority, and expose these fields in /von/history. |
| docs/engineering/minimal_imposition_design_principle.md | Updates guidance to treat focused questioning as legitimate information acquisition (not permission theatre). |
| docs/engineering/contextual_knowledge_evolution.md | Documents conversation situations as lightweight theories and when stronger representations earn their place. |
| AGENTS.md | Updates the repository constitution to formalise conversation-as-shared-situation-carrier and minimal-imposition elicitation guidance. |
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.
What changed
Why
The live receipt replay exposed a systemic failure: Von preserved individual turns, workflows, and telemetry more successfully than it preserved the shared undertaking. Later turns reconstructed continuity forensically, treated the latest user input as a complete packet, and could inspect machinery instead of resolving the user's objective. This change makes the conversation a distinguished, revisable carrier of objectives, referents, commitments, unknowns, questions, effects, and outcome criteria while leaving canonical knowledge and effect stores authoritative.
Validation
80dc49c9.rufffatal-error checks, Python compilation,git diff --check, and an independent architecture review passed.Evidence boundary: scripted tests prove the carrier and causal plumbing; they do not by themselves establish a live model's elicitation rate. That remains an evaluation claim, not a reason to add another controller.
Jira: JVNAUTOSCI-2613