Skip to content

🧹 Extend SessionDetailSnapshotProjection to include diff/plan/turn fields #67

@Robdel12

Description

@Robdel12

Context

Discovered in #62: SessionDetailSnapshotProjection is missing several fields that exist on ServerSessionStatecurrentDiff, currentPlan, turnDiffs, currentTurnId, and turnCount. The fix in #66 works around this by assigning them directly in handleConversationBootstrap, but the projection struct should own these fields for consistency with how all other bootstrap data flows through projections.

Task

Add the missing fields to SessionDetailSnapshotProjection and applySnapshotProjection, then remove the direct assignments added in #66.

Files

  • OrbitDockNative/OrbitDock/Services/Server/SessionStateProjection.swift
  • OrbitDockNative/OrbitDock/Services/Server/ServerTypeAdapters.swift
  • OrbitDockNative/OrbitDock/Services/Server/SessionStore+Events.swift

Acceptance Criteria

  • SessionDetailSnapshotProjection includes currentDiff, currentPlan, turnDiffs, currentTurnId, turnCount
  • applySnapshotProjection sets these on the observable
  • Direct assignments in handleConversationBootstrap removed
  • Existing tests updated, new test for diff/plan/turn hydration through the projection path

Follow-up from #62: I_kwDORFu4Vs71S6MD

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-readySmall task suitable for agent dispatch

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions