Conversation
- `CHANGELOG.md`: Document F083 interactive conversation mode breaking change - `docs/user-guide/agent-steps.md`: Update conversation step documentation - `docs/user-guide/conversation-steps.md`: Rewrite for interactive mode - `docs/user-guide/workflow-syntax.md`: Remove removed config fields from syntax reference - `internal/application/conversation_manager.go`: Simplify constructor, remove evaluator/tokenizer - `internal/application/conversation_manager_tdd_test.go`: Add TDD tests for interactive loop - `internal/application/conversation_manager_test.go`: Adapt tests for interactive mode - `internal/application/conversation_manager_helpers_test.go`: Update helper tests - `internal/application/execution_service.go`: Wire UserInputReader through execution paths - `internal/application/execution_service_conversation_step_test.go`: Update conversation step tests - `internal/application/execution_service_conversation_test.go`: Update conversation tests - `internal/application/test_helpers.go`: Add mock UserInputReader support - `internal/domain/ports/user_input.go`: Add UserInputReader port interface - `internal/domain/ports/user_input_test.go`: Add port interface tests - `internal/domain/workflow/agent_config.go`: Remove InitialPrompt and 5 ConversationConfig fields - `internal/domain/workflow/conversation.go`: Remove max_turns, strategy, stop_condition, inject_context - `internal/domain/workflow/context_window.go`: Delete ContextWindowStrategy type and logic - `internal/domain/workflow/context_window_test.go`: Delete obsolete tests - `internal/domain/workflow/context.go`: Remove context window references - `internal/infrastructure/repository/yaml_mapper.go`: Reject removed fields with actionable errors - `internal/infrastructure/repository/yaml_types.go`: Remove removed YAML fields from types - `internal/interfaces/cli/run.go`: Wire StdinInputReader via SetUserInputReader - `internal/interfaces/cli/run_wiring_conversation_test.go`: Update wiring tests - `internal/interfaces/cli/run_wiring_stdin_input_reader_test.go`: Add stdin reader wiring tests - `internal/interfaces/cli/ui/stdin_input_reader.go`: Add StdinInputReader adapter - `internal/interfaces/cli/ui/stdin_input_reader_test.go`: Add stdin reader unit tests - `internal/testutil/mocks/mocks.go`: Add MockUserInputReader - `internal/testutil/mocks/mocks_test.go`: Add mock tests - `tests/fixtures/workflows/conversation-*.yaml`: Update fixtures to remove removed fields - `tests/fixtures/workflows/conversation-invalid-summarize.yaml`: Delete obsolete fixture - `tests/fixtures/workflows/conversation-invalid-truncate-middle.yaml`: Delete obsolete fixture - `tests/integration/features/interactive_conversation_test.go`: Add interactive mode integration tests - `tests/integration/features/conversation_validation_test.go`: Update validation tests - `tests/integration/features/session_resume_test.go`: Update session resume tests - `tests/integration/agents/display_matrix_test.go`: Rename from f082_ prefix Closes #313
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
max_turns,max_context_tokens,strategy,stop_condition,inject_context, andinitial_promptare all removed; workflows using these fields must be updatedconversation:sub-struct is decoupled frommode: conversation— a plain single-mode agent step can now opt into session tracking viaconversation: {}, establishing a session that downstream steps resume withcontinue_fromUserInputReaderport +StdinInputReaderadapter handles interactive stdin/stdout prompting;ConversationManageris simplified (evaluator and tokenizer removed from constructor);context_window.goand its 1,000-line test file are deletedStopReasonUserExitreplacing the three removed stop-reason constantsChanges
Domain
internal/domain/ports/user_input.go: NewUserInputReaderport interface for interactive inputinternal/domain/ports/user_input_test.go: Tests forUserInputReaderportinternal/domain/workflow/agent_config.go: RemoveInitialPromptfield;promptnow serves as first user message in conversation modeinternal/domain/workflow/conversation.go: Removemax_turns,max_context_tokens,strategy,stop_condition,inject_contextfields; keep onlycontinue_frominternal/domain/workflow/context.go: RemoveContextWindowStrategytype and related constantsinternal/domain/workflow/doc.go: Update package-level documentation to reflect new modelinternal/domain/workflow/context_window.go: Deleted — context window management no longer existsinternal/domain/workflow/context_window_test.go: DeletedApplication
internal/application/conversation_manager.go: Simplify constructor to(logger, resolver, agentRegistry); replace automated loop withUserInputReader-driven interactive loop; addStopReasonUserExitinternal/application/execution_service.go: WireUserInputReaderthroughExecuteConversation; remove evaluator/tokenizer wiring pathsinternal/application/test_helpers.go: Update helper constructors for simplifiedConversationManagerinternal/application/conversation_manager_tdd_test.go: New TDD test file forConversationManagerinteractive behaviorinternal/application/conversation_manager_test.go: Heavily trimmed — remove all automated-loop test casesinternal/application/conversation_manager_helpers_test.go: Update helpers for new constructor signatureinternal/application/execution_service_conversation_step_test.go: Update for removed fields and new wiringinternal/application/execution_service_conversation_test.go: Update assertions to match interactive modelinternal/application/execution_service_helpers_test.go: Update helper setupinternal/application/execution_service_output_format_test.go: Update for signature changesinternal/application/dry_run_executor_output_format_test.go: Minor fixture alignmentInfrastructure
internal/infrastructure/repository/yaml_mapper.go: Reject removed conversation fields with actionable errors on parseinternal/infrastructure/repository/yaml_types.go: Remove removed fields from YAML struct definitionsinternal/infrastructure/repository/yaml_mapper_test.go: Update mapper tests; remove cases for deleted fieldsinternal/infrastructure/repository/yaml_mapper_agent_config_command_removal_test.go: Update for removedinitial_promptfieldinternal/infrastructure/repository/yaml_mapper_output_format_test.go: Minor fixture alignmentinternal/infrastructure/repository/yaml_mapper_prompt_file_test.go: Update prompt-file test fixturesInterfaces
internal/interfaces/cli/run.go: WireStdinInputReaderviaSetUserInputReader()internal/interfaces/cli/ui/stdin_input_reader.go: NewStdinInputReaderadapter implementingUserInputReaderoveros.Stdin/os.Stdoutinternal/interfaces/cli/ui/stdin_input_reader_test.go: Tests forStdinInputReaderinternal/interfaces/cli/run_wiring_conversation_test.go: Update wiring tests for new constructorinternal/interfaces/cli/run_wiring_stdin_input_reader_test.go: New wiring tests verifyingStdinInputReaderis setMocks & Test Utilities
internal/testutil/mocks/mocks.go: AddMockUserInputReadermockinternal/testutil/mocks/mocks_test.go: Tests for new mockTests & Fixtures
tests/fixtures/workflows/conversation-*.yaml(10 files): Remove all deleted fields; align fixtures to new schematests/fixtures/workflows/conversation-invalid-summarize.yaml: Deleted —summarizestrategy no longer existstests/fixtures/workflows/conversation-invalid-truncate-middle.yaml: Deleted —truncate_middlestrategy no longer existstests/integration/features/interactive_conversation_test.go: New integration tests for interactive conversation modetests/integration/features/conversation_validation_test.go: Remove validation tests for deleted fieldstests/integration/features/session_resume_test.go: Update for new session tracking modeltests/integration/agents/display_matrix_test.go: Renamed fromf082_display_matrix_test.gotests/integration/validation/validation_providers_test.go: Align with updated provider validationDocumentation
CHANGELOG.md: Document F083 breaking changes with migration instructionsdocs/user-guide/conversation-steps.md: Full rewrite — documents interactive mode vs cross-step session trackingdocs/user-guide/agent-steps.md: Update multi-turn conversation section with new three-approach overviewdocs/user-guide/workflow-syntax.md: Update conversation sub-struct referenceTest plan
make test— all unit tests pass with no references to removed fieldsmode: conversationin a terminal — agent replies after first prompt,>appears for subsequent input, empty line exits cleanlymax_turns: 5) — YAML parsing returns an actionable error, not a silent skipconversation: {}+continue_from— second step resumes the session and the agent recalls context from step oneCloses #313
Generated with awf commit workflow