Files
kandev/docs/plans/workflow-session-settings/task-02-original-session-initialization.md
2026-08-23 17:34:52 +00:00

3.3 KiB

id, title, status, wave, depends_on, plan, spec
id title status wave depends_on plan spec
02-original-session-initialization Capture the original session configuration before workflow overrides done 2
01-workflow-contract-and-validation
plan.md ../../specs/tasks/requirements/workflow-session-settings.md

Task 02: Capture the Original Session Configuration Before Workflow Overrides

Acceptance

  • The first task session receives immutable original-session provenance; later primary/session switches cannot change that identity.
  • A conservative legacy resolver identifies an original only when the earliest non-workflow-switch session is unambiguous.
  • The original effective model and every advertised select option are persisted once after profile settings settle and before any workflow/runtime override layer applies.
  • The new snapshot remains distinct from acp_config_baseline, runtime_config, runtime_config_overrides, and mutable AgentProfileSnapshot fields.
  • ACP initialization accepts separate profile and runtime/workflow layers, preserves existing override/resume behavior, records the original snapshot synchronously, and applies later layers before the first prompt.
  • Process recreation, reset, and backend restart never replace the snapshot.

TDD sequence

  1. Add failing metadata helper, executor provenance, legacy-resolution, and write-once tests.
  2. Add failing lifecycle tests that assert provider default -> profile -> original capture -> override -> prompt ordering.
  3. Split the initialization inputs into typed layers and add a narrow recorder callback/interface.
  4. Re-run existing model-selection, config-option, reset, and resume tests to catch ordering regressions.

Verification

cd apps/backend && go test ./internal/task/models ./internal/task/service ./internal/orchestrator/executor ./internal/agent/runtime/...

Files likely touched

  • apps/backend/internal/task/models/models.go
  • apps/backend/internal/task/models/models_test.go
  • apps/backend/internal/task/service/service_turns.go
  • apps/backend/internal/orchestrator/executor/executor_execute.go
  • apps/backend/internal/agent/runtime/lifecycle/manager_profile.go
  • apps/backend/internal/agent/runtime/lifecycle/session.go
  • apps/backend/internal/agent/runtime/lifecycle/event_types.go
  • apps/backend/internal/orchestrator/event_handlers_streaming.go
  • apps/backend/internal/backendapp/orchestrator.go
  • Related lifecycle, executor, service, and streaming tests

Dependencies

Task 01.

Inputs

  • ADR 2026-08-01-workflow-session-original-configuration.
  • Existing provider baseline and runtime override metadata helpers.
  • Existing PrepareSession, effectiveSessionRuntimeConfig, InitializeAndPrompt, and publishSettledConfigOptions flow.

Output contract

Implemented with origin=task_initial provenance and the write-once original_effective_config snapshot. The first task session is identified by creation order rather than mutable primary ownership; legacy sessions use the earliest unambiguous non-workflow-switch row. ACP initialization now applies profile settings, emits the profile-settled original snapshot, then applies runtime overrides before the first prompt. Snapshot persistence is compare-and-set and survives later provider events and restarts. Focused lifecycle, executor, streaming, and orchestrator tests passed.