Skip to content

feat(diagnostics): integrate revision-safe actions into CwlEditor - #280

Draft
seonghobae wants to merge 36 commits into
feat/writing-diagnostics-uifrom
feat/writing-diagnostics-editor-actions
Draft

feat(diagnostics): integrate revision-safe actions into CwlEditor#280
seonghobae wants to merge 36 commits into
feat/writing-diagnostics-uifrom
feat/writing-diagnostics-editor-actions

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Stack boundary

This Draft is stacked on the current #266 branch feat/writing-diagnostics-ui@a77a1e9f1bb431034995c1f445ba085b1bce0110. Current exact head is a76919bdbcaf3896724854f75dc60c95264dbeda.

It owns the standalone CwlEditor integration slice for already-verified host writing diagnostics: public props, revision-safe imperative actions, plain-text replacement application, local Ignore/Dismiss/Explain events, accessible focus continuity, read-only abstention, and warning-free test assurance. Inkspan still performs no grammar, tone, clarity, pragmatics, technical-quality, or actionability inference and calls no model, provider, network, database, or persistence service.

Public behavior

CwlEditor accepts host diagnostics and exposes focusWritingDiagnostic, applyWritingDiagnostic, ignoreWritingDiagnostic, dismissWritingDiagnostic, and requestWritingDiagnosticExplanation through its imperative handle. Apply recalculates the exact current strong revision, rechecks controller generation/editor identity/editability/document equality immediately before dispatch, inserts replacement strictly as ordinary text, participates in ordinary undo/redo, and invalidates the prior diagnostic generation. Conflicts abstain rather than forcing a replacement onto moved content.

Action evidence is privacy-minimized and does not copy authored text, selected text, replacement text, explanations, cookies, secrets, model output, or recipient/thread content. With no host diagnostics, no guidance UI or semantic fallback exists.

Exact restack and RCA lineage

The earlier functional head e3d385b98f7a4d7ab30ba2519291efff57a76e48 is historical only. The lane was non-force restacked onto the live #266 head.

  • Restack head cd06daa383c609a9bbc6c01e02b6152491a0f8b7, run 31660357819, job 94323709468: focused behavior passed, then TypeScript correctly rejected the dismissal-focus test harness because its WritingDiagnosticsController double had not adopted the required applyDiagnostic capability. The production API was not weakened; the test double was repaired.
  • Head 70c79f059878e371815ebc5b1c288117a003049c, run 31660506026, job 94324150414: focused behavior, typecheck, complete production tests, exact 100% coverage, builds, package consumers, and demo reached success, but the fail-closed workflow rejected a React not wrapped in act warning from dismissal focus assurance.
  • Head 24239918c84991807c7483133b8124a0d58ec34c, run 31660859610, job 94325198488: wrapping the click alone was insufficient. Full logs showed the remaining warning originated when direct test focus invoked the diagnostic card's focus-state update outside act.
  • Current head a76919bdbcaf3896724854f75dc60c95264dbeda wraps both focus-triggered and click-triggered state transitions in act; no warning suppression or relaxed gate was introduced.

Exact-head proof

For unchanged exact head a76919bdbcaf3896724854f75dc60c95264dbeda:

  • Writing Diagnostics Editor Actions TDD run 31661100767, job 94325917730: success.
  • Checkout resolved to the exact contributor head with persist-credentials: false.
  • Focused integration: 4 test files / 11 tests passed.
  • TypeScript typecheck: success.
  • Complete production suite: 165 test files / 966 tests passed.
  • Owned-production statements, branches, functions, and lines: 100% / 100% / 100% / 100%.
  • The workflow's fail-closed React-act-warning checks remained enabled and emitted no warning failure.
  • All package entrypoint builds, isolated packed-package ESM/CommonJS/SSR/subpath/strict-TypeScript consumers, and the demonstration application build: success.
  • Formal submitted reviews: 0.
  • Valid unresolved inline review threads: 0.
  • CodeRabbit combined status: success/status-only, not treated as independent approval.

Any later head or base movement invalidates this proof.

Integration boundary

Keep Draft/unmerged while #266 remains the predecessor and release issue #118 owns the exact protected 0.6.0 source candidate. This PR does not publish npm, create a tag or GitHub Release, bypass branch protection, or claim collaborative parity. #281 owns the Yjs collaboration slice.

seonghobae and others added 27 commits August 12, 2026 20:46
@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 9641d0eb-7db6-4d95-a2d8-73b0752d28c0

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae seonghobae changed the title feat(diagnostics): integrate revision-safe editor actions feat(diagnostics): integrate revision-safe actions into CwlEditor Aug 12, 2026
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