Repository navigation
Operationalise UC-03 through UC-06 - #293
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Operationalises capability slices UC-03 through UC-06 by tightening represented-workflow authority and evidence handling (arXiv, Gmail, Jira follow-ups, and a new lab status digest), while aligning deterministic runtime enforcement (schema coercion, access control, model selection/parameters, and workflow validation) with those represented contracts.
Changes:
- Adds governed arXiv identity handling + degraded-path contracts, plus clearer surfaced artefacts (e.g., arXiv IDs) and required-effects postcondition strategy support.
- Strengthens Gmail evidence convergence by adding opt-in bounded message-body extraction and improved evidence projection/contract metadata (including comma-separated list coercion for specific tool args).
- Adds a represented lab/project status digest workflow (seed, bootstrap service, and replay/tests) and improves multi-turn follow-up replay checks for completion-gate and selected-workflow action failures.
Reviewed changes
Copilot reviewed 83 out of 83 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/test_run_live_multi_turn_followup_replay.py | Adds oracle tests for completion-gate and selected-workflow failure checks, plus workflow-evidence handling. |
| tests/test_run_authenticated_browser_workflow_replay.py | Adds regression test for rejecting summarised workflow_id mappings. |
| tests/test_migrate_jvnautosci_2591_general_mail_profile_lookup.py | Tests mail-profile lookup migration rewrite to binary-only relations + idempotence. |
| tests/test_migrate_jvnautosci_2591_general_mail_followups.py | Tests mail follow-up rewrite for profile-status projection mapping + idempotence. |
| tests/test_migrate_jvnautosci_2591_failure_case_routing.py | Tests failure-case routing exemplar rewrite + idempotence. |
| tests/test_migrate_jvnautosci_2591_arxiv_identity_workflow.py | Tests arXiv canonical identity workflow rewrite + idempotence. |
| tests/test_migrate_jvnautosci_2591_arxiv_degraded_contract.py | Tests degraded-path contract rewrite and subworkflow ID normalisation + idempotence. |
| tests/backend/test_workflow_registry_factory_parity.py | Ensures supported durable actions include executor + MCP surfaces. |
| tests/backend/test_workflow_purity_report.py | Allows lab status digest workflow bootstrap in purity report. |
| tests/backend/test_workflow_metadata_validation.py | Validates nested tool-output mapping resolution from result envelope. |
| tests/backend/test_workflow_capability_service.py | Tightens invalidation assertions to include reset_backend_namespace. |
| tests/backend/test_workflow_authoring_service.py | Tests authoring preview materialises subworkflow contract + legacy serialiser recovery. |
| tests/backend/test_vontology_loader.py | Verifies on_failure transition ordering precedes authored always branch. |
| tests/backend/test_utils_flask_identity_resolution_bootstrap.py | Extends durable bootstrap summary + adds lab status digest bootstrap coverage. |
| tests/backend/test_turn_execution_selected_workflow_output_propagation.py | Ensures arXiv IDs surface in selected-workflow output propagation; adjusts prompt-evidence effects expectation. |
| tests/backend/test_turn_execution_required_effects_contract.py | Preserves postcondition_strategy through required-effects normalisation. |
| tests/backend/test_tool_target_contract_validation.py | Allows bounded profile lookup when authenticated actor is resolved and secondary targets remain unresolved. |
| tests/backend/test_tool_evidence_projection_service.py | Ensures Gmail projection includes body/body_truncated while omitting raw payload. |
| tests/backend/test_settings_openai_model_probe.py | Asserts probe reports API surface + fallback info; validates max_output_tokens for Responses. |
| tests/backend/test_schema_coercion.py | Adds coercion tests for empty optional fields + declared comma-separated list handling. |
| tests/backend/test_paper_representation_workflow_vontology_service.py | Verifies arXiv identity state insertion, degraded diagnostics contract, seed gate behaviour, and explicit repair semantics. |
| tests/backend/test_orchestrator_supervised_turn_reporting.py | Ensures arXiv IDs flow into supervised completion report prose. |
| tests/backend/test_orchestrator_model_fallback_execution.py | Verifies enabled Ollama candidate preserves scoped host to client factory. |
| tests/backend/test_llm_step_executor.py | Ensures active-only + tool_mode=none bypasses gateway runtime setup and honours max_output_tokens. |
| tests/backend/test_llm_openai_temperature_guards.py | Validates Responses output token budgeting + Luna defaults to Responses API. |
| tests/backend/test_llm_lazy_ollama_and_model_prefixes.py | Ensures actor-scoped model selection on init + explicit Ollama host reaches client factory. |
| tests/backend/test_lab_status_digest_workflow_vontology_service.py | New test suite for lab status digest workflow bootstrap, prompt safety/readback pins, and idempotent bootstrap behaviour. |
| tests/backend/test_internal_mcp_jira_tools.py | Verifies Jira tool schemas declare comma-separated list fields for fields/expand. |
| tests/backend/test_internal_mcp_catalogue_builds.py | Ensures gmail_get_message includes body only when explicitly requested. |
| tests/backend/test_internal_mcp_add_relationship_predicate_validation.py | Ensures predicate typing validation uses hard (bypassed) authority view. |
| tests/backend/test_grounded_read_tool_evidence_contract_vontology_service.py | Ensures safe runtime_profile_alias is preserved while sensitive attributes are excluded. |
| tests/backend/test_gmail_tool_evidence_contract_vontology_service.py | Extends Gmail evidence contract to include body/body_truncated fields. |
| tests/backend/test_gmail_message_body.py | New tests for bounded Gmail message body extraction and truncation behaviour. |
| tests/backend/test_email_source_representation_convergence_bootstrap.py | Ensures seed excludes mail-profile status queries from email-source convergence routing. |
| tests/backend/test_durable_workflow_executor_safety.py | Ensures durable executor inherits scoped active model parameters into environment + trace metadata. |
| tests/backend/test_conversation_turn_workflow_vontology_service.py | Updates turn prompt guidance and mail workflow spec (binary relations, include_body, profile_status branch, on_failure ordering, etc.). |
| tests/backend/test_conversation_turn_postcondition_critic_runtime.py | Ensures critic preserves nested jira_search fields in projected search evidence. |
| tests/backend/test_concept_search_instance_retrieval_workflow_vontology_service.py | Adds excluded cues/routing notes for yes/no existence queries to avoid over-broad profile retrieval routing. |
| tests/backend/test_concept_relation_service_uncertainty.py | Validates predicate filtering happens before per-target access checks to avoid deadline blowups. |
| tests/backend/test_access_control_identity_resolution.py | Adds batching tests for relationship sanitisation + cursor prewarming in bounded batches. |
| src/backend/workflows/workflow_studio_service.py | Validates authoring previews against full executable durable action surface (including MCP + llm.action). |
| src/backend/workflows/workflow_purity_report.py | Adds lab status digest workflow bootstrap service to purity allowlist. |
| src/backend/workflows/workflow_concept_authority_service.py | Enforces transition ordering so hard boundaries (failure/unknown/etc.) precede authored declarative conditions. |
| src/backend/workflows/workflow_authoring_service.py | Materialises subworkflow contracts during preview and improves legacy subworkflow_id serialisation. |
| src/backend/workflows/vontology_loader.py | Expands allowed LLM selection_policy values and reorders transition construction to keep hard boundaries deterministic. |
| src/backend/workflows/required_effects_contracts.py | Preserves postcondition_strategy in required-effects normalisation. |
| src/backend/workflows/repo_seed_bundles/prompt_turn_execution_expected_outcome_inference_seed.md | Tightens target-contract guidance (symbolic vs external handles) and mail/Jira/arXiv routing/evidence requirements. |
| src/backend/workflows/repo_seed_bundles/paper_representation_workflow_seed_bundle.json | Bumps seed_version; adds canonical arXiv identity ensure-state; adjusts degraded diagnostics contract; adds postcondition_strategy. |
| src/backend/workflows/repo_seed_bundles/lab_status_digest_prompt_seed.md | Adds represented prompt for evidence-backed, privacy-bounded lab status digest synthesis. |
| src/backend/workflows/repo_seed_bundles/email_source_representation_convergence_workflow_seed_bundle.json | Bumps seed_version; adds excluded_query_cues to avoid misrouting profile-status questions. |
| src/backend/workflows/repo_seed_bundles/concept_search_instance_retrieval_workflow_seed_bundle.json | Bumps seed_version; adds legacy authority hashes and excluded cues/routing notes for existence questions. |
| src/backend/workflows/llm_step_executor.py | Enforces per-step max_output_tokens ceilings, supports active-only policies, and propagates selected_candidate in envelopes. |
| src/backend/workflows/durable/turn_execution_runtime_support.py | Surfaces arXiv IDs as selected-workflow artefacts; improves surfaceable evidence insertion; increases critic search evidence projection bounds. |
| src/backend/workflows/durable/registry_factory.py | Adds get_supported_durable_workflow_action_ids to unify authoring validation with runtime executable surfaces. |
| src/backend/workflows/durable/paper_representation_workflow.py | Improves arXiv paper creation detection and predicate-typing recovery for topic relationship writes. |
| src/backend/workflows/durable/durable_executor.py | Inherits actor-scoped active model_parameters into durable environment + trace metadata. |
| src/backend/services/text_value_service.py | Ensures routing projection invalidation resets backend namespace to avoid stale manifest reload. |
| src/backend/services/relationship_write_service.py | Uses bypass_access_control when validating predicate typing (hard invariant) to avoid false predicate_concept_not_typed failures. |
| src/backend/services/lab_status_digest_workflow_vontology_service.py | New bootstrap service for lab status digest workflow + prompt support seeding. |
| src/backend/services/grounded_read_tool_evidence_contract_vontology_service.py | Adds safe runtime_profile_alias field mapping for represented concept reads. |
| src/backend/services/gmail_tool_evidence_contract_vontology_service.py | Adds include_body argument + body/body_truncated fields into Gmail evidence contract and redaction policy metadata. |
| src/backend/services/concept_relation_service.py | Applies predicate term filtering before access-control target checks for performance/deadline safety. |
| src/backend/services/arxiv_paper_link_service.py | Ensures predicate concepts are typed as #V#predicate when already present but untyped. |
| src/backend/server/utils_flask.py | Adds lab status digest workflow bootstrap to durable system startup and summary payload. |
| src/backend/server/routes/settings_routes.py | Improves OpenAI probe reporting (surface/fallback diagnostics) and uses bounded Responses max_output_tokens resolution. |
| src/backend/security/access_control.py | Adds relationship target prewarming to batch visibility checks and avoids per-target DB lookups during sanitisation. |
| src/backend/languagemodels/llm_interface.py | Adds actor-scope resolution for background contexts, Responses output-token budgeting, Responses defaulting for 5.6, and active model parameter retrieval. |
| src/backend/integrations/internal_mcp/schemas.py | Adds schema-level comma-separated list field metadata + coercion rules for empty optional fields and list splitting. |
| src/backend/integrations/internal_mcp/orchestrator.py | Renders arXiv IDs in workflow artefact lines and propagates comma-separated list schema metadata through JSON schema conversion. |
| src/backend/integrations/internal_mcp/gateway.py | Exposes comma_separated_list_fields in schema snapshots. |
| src/backend/integrations/internal_mcp/catalogue.py | Adds schema metadata for Jira fields/expand and search_concepts; adds gmail_get_message include_body support + bounded body extraction. |
| src/backend/integrations/google/gmail_message_body.py | New helper for bounded plain-text extraction from Gmail full payloads (prefers text/plain, HTML fallback, truncation). |
| src/backend/db/repositories/concepts_repository.py | Batches sanitisation and prewarms relationship visibility to reduce query fan-out. |
| scripts/run_live_multi_turn_followup_replay.py | Strengthens replay oracle checks (completion gate + selected workflow failure) and includes observed workflow IDs in evidence. |
| scripts/run_authenticated_browser_workflow_replay.py | Hardens observed workflow ID extraction against summarised/non-#V# workflow_id values. |
| scripts/migrate_jvnautosci_2591_general_mail_profile_lookup.py | New migration script to rewrite mail-profile lookups to binary relations via Workflow Studio. |
| scripts/migrate_jvnautosci_2591_failure_case_routing.py | New migration script to tighten failure-case discovery exemplars (required cues + routing notes). |
| scripts/migrate_jvnautosci_2591_arxiv_identity_workflow.py | New migration script to publish canonical arXiv identity state/transition into the represented workflow. |
| scripts/migrate_jvnautosci_2591_arxiv_degraded_contract.py | New migration script to publish degraded-path contract repairs + explicit subworkflow ID. |
| scripts/live_multi_turn_followup_prompt_bank.json | Adds Jira idempotent label write/readback case and lab status digest obligation watch case; tightens arXiv degraded success assertions. |
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
Operationalises the representative UC-03 through UC-06 capability slices for JVNAUTOSCI-2591:
Why
The previous implementation could report provider failures that were not genuine provider failures, select an over-broad concept-profile workflow for narrow existence questions, hide successful evidence behind bounded projections, or reject valid relationship writes after actor-scoped access filtering concealed predicate typing.
This slice keeps durable semantic authority in represented workflow/prompt artefacts while using deterministic code for validation, provider transport, safety and persistence boundaries.
User and developer impact
UC-03, UC-04, UC-05 and UC-06 now have passing representative real-path evidence. Jira multi-turn follow-ups preserve the correct issue referent without inheriting unrelated obligations, Gmail and arXiv paths produce honest evidence-bearing outcomes, and the lab status workflow is discoverable and executable.
Root causes addressed
Validation
Remaining certification work
This PR provides representative slice evidence. JVNAUTOSCI-2591 remains In Progress because its full five-reset-state trial campaign has not yet been completed.