Skip to content

WIN-012: Windows transcript sections and screenshot-marker linkage (deferred from WIN-011) #996

Description

@deffenda

Summary

Two macOS transcript.md blocks remain unimplemented on Windows after WIN-011 / #995 because
Windows has no data source for them. They were deliberately not faked.

Evidence

macOS Sources/BugNarrator/Models/TranscriptSession.swift markdownContent emits:

  1. ## Transcript Sections — one ### <title> per section with a - Time: <range> line and body
    text. Windows CompletedSession
    (windows/src/BugNarrator.Core/Models/CompletedSession.cs) has no transcript-sections field,
    and nothing in the Windows pipeline segments a transcript into sections.
  2. Screenshot → marker linkage: macOS renders linked to **<marker title>** using
    SessionScreenshot.associatedMarkerID. Windows ScreenshotArtifact
    (windows/src/BugNarrator.Core/Models/ScreenshotArtifact.cs) has no associated-marker id. The
    relationship exists only in the opposite direction — SessionTimelineMoment.RelatedScreenshotId.

Adding either field today would produce an always-empty model field (speculative churn), which is
why #995 scoped them out. This ticket tracks doing it properly.

Scope

NEW:

  • transcript-section shaping in BugNarrator.Core once a segmentation source exists

EDIT:

  • windows/src/BugNarrator.Core/Models/CompletedSession.cs
  • windows/src/BugNarrator.Core/Models/ScreenshotArtifact.cs
  • windows/src/BugNarrator.Core/Workflow/CompletedSessionMarkdownBuilder.cs

Non-goals: changing macOS Swift behavior; re-opening the summary.md split settled in #995.

done_when

  • Windows either produces real transcript sections and renders ## Transcript Sections matching the
    macOS shape, or this ticket records an explicit decision that Windows will not segment transcripts
    and the parity matrix says so.
  • Screenshot→marker linkage is derived from real recorded data (e.g. by inverting
    SessionTimelineMoment.RelatedScreenshotId) and rendered like macOS, or explicitly declined in
    the parity matrix.
  • No model field is added that nothing populates.

validation

  • dotnet build windows/BugNarrator.Windows.sln -c Debug
  • dotnet test windows/tests/BugNarrator.Core.Tests/BugNarrator.Core.Tests.csproj -c Debug
  • dotnet test windows/tests/BugNarrator.Windows.Tests/BugNarrator.Windows.Tests.csproj -c Debug

evidence

  • Golden-string test output for the extended transcript contract.

Split out of #995. Related drift context: #965.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ai/backlogCaptured work; not actively refined yetenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions