Skip to content

fix(markdown): persist conflict-safe updates - #2968

Draft
George Ng (GeorgeNgMsft) wants to merge 2 commits into
georgengmsft-markdown-safe-updatesfrom
georgengmsft-markdown-durable-updates
Draft

fix(markdown): persist conflict-safe updates#2968
George Ng (GeorgeNgMsft) wants to merge 2 commits into
georgengmsft-markdown-safe-updatesfrom
georgengmsft-markdown-durable-updates

Conversation

@GeorgeNgMsft

Copy link
Copy Markdown
Contributor

Stack

Layer 3 of the replacement stack for #2940.

Included

  • Persists headless Markdown updates directly to the authorized workspace file.
  • Makes streaming completion idempotent by recognizing the already-produced revision instead of applying operations twice.
  • Carries immutable binding identity and SHA-256 revision checks across read/apply.
  • Rejects stale tokens, rebound root/path/file identities, revision conflicts, and roots replaced by symlinks or junctions.
  • Adds request IDs to concurrent document read/apply IPC and correlates responses.
  • Keeps the view service server-authoritative for update persistence even when no browser/SSE client is connected.

Deferred to browser layer

  • Browser document-manager.ts rewrite and serializer/autosave behavior.
  • Primary/secondary SSE lifecycle, browser synchronization/promotion UX, and reopening the same file while preserving browser binding state.
  • Broader browser snapshot adoption and loopback binding behavior.

Validation

  • @typeagent/markdown-agent TypeScript and frontend build
  • Focused Jest suites: 44 tests passed across Markdown persistence, operation engine, path policy, creation path policy, and action handler coverage
  • Prettier changed-file check
  • Git diff check
  • Repo lint ratchet

Complete layer diff: 915 insertions, 580 deletions (1,495 changed lines).

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant