Skip to content

refactor(desktop): key transcript diagram lifetimes - #865

Draft
tonyfettes wants to merge 1 commit into
mainfrom
codex/transcript-diagram-vals
Draft

refactor(desktop): key transcript diagram lifetimes#865
tonyfettes wants to merge 1 commit into
mainfrom
codex/transcript-diagram-vals

Conversation

@tonyfettes

Copy link
Copy Markdown
Contributor

Summary

  • project transcript content into channel/session-scoped keyed Rabbita blocks so unchanged historical Markdown is not reparsed on streaming updates
  • have Markdown report exact generated diagram wrappers and give each wrapper its own after-render viewport subscription
  • add a public exact-wrapper DiagramViewport lifetime while keeping the existing multi-diagram API for Editor hosts
  • leave the transcript root observer responsible only for mount, geometry, and local-image DOM signals

Stack

Validation

  • moon check --target native --deny-warn
  • moon check --target js --deny-warn
  • moon fmt --check
  • moon test --target native (3447 passed)
  • moon test --target js (2905 passed)
  • moon cram test tests/cram (27 passed)
  • moon test --target all (editor: 1372 wasm + 295 wasm-gc passed)
  • Playwright smoke + component suites (143 passed)
  • moon build --target native
  • moon build --target js

just is unavailable in this checkout environment, so the repository recipes were expanded and run directly.

@tonyfettes
tonyfettes force-pushed the codex/transcript-diagram-vals branch from 7570806 to d185295 Compare August 14, 2026 03:07
@tonyfettes
tonyfettes force-pushed the codex/transcript-diagram-vals branch from d185295 to f9a7c91 Compare August 14, 2026 04:56
Base automatically changed from codex/shared-diagram-viewports to main August 14, 2026 05:16
@tonyfettes
tonyfettes force-pushed the codex/transcript-diagram-vals branch from f9a7c91 to 0e08856 Compare August 14, 2026 05:16
@tonyfettes
tonyfettes marked this pull request as ready for review August 14, 2026 05:46

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0e0885636c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +494 to +497
guard active.val &&
@dom.document().get_element_by_id(dom_id).to_option()
is Some(wrapper) else {
return

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remount diagram lifetimes with the Chat DOM

When view replaces the Chat subtree with Skills, Settings, or the signed-out gate, the transcript component and these assoc_by subscriptions remain alive, so this one-shot lookup either keeps a controller attached to the removed wrapper or returns while no wrapper exists. Returning to Chat creates a new transcript DOM without reloading the unchanged subscription, leaving existing UML diagrams without interactive controls and retaining listeners for the detached wrapper. Tie the diagram lifetime to the transcript DOM mount generation or retry/dispose it from the root mount observer.

Useful? React with 👍 / 👎.

@tonyfettes
tonyfettes marked this pull request as draft August 15, 2026 05:34
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