Skip to content

Present a semantic changelog - #9044

Closed
hweihwang wants to merge 2 commits into
nextcloud:mainfrom
hweihwang:review/structured-markdown-comparison-changes
Closed

Present a semantic changelog#9044
hweihwang wants to merge 2 commits into
nextcloud:mainfrom
hweihwang:review/structured-markdown-comparison-changes

Conversation

@hweihwang

@hweihwang hweihwang commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

In one sentence: the Changes view that makes the model's output readable, plus the public factory other apps can call.

What and why

The model from #9043 produces descriptors nobody can read. This PR turns them into a view people can actually use — and gives other apps a way in.

What's in this PR

  • The Changes view: records grouped under the section heading they occurred in, labelled by kind, each with its own before/after preview
  • A public factory, window.OCA.Text.createMarkdownContentComparison, so other apps can mount a comparison
  • Stable selection by descriptor ID, an explicit "no rendered differences" state, and a hide-formatting-only filter

The Changes view: 25 records grouped by section, each with its own before/after preview
The Changes view, shown through the Collectives dialog from nextcloud/collectives#2697 — Text ships no standalone host. Text owns the model and views; Collectives owns the dialog.

Design notes

  • The changelog is the default view — "what changed" is the usual question.
  • The factory is a capability, not a version: consumers check for the function, not a version string.
  • A group of three edits renders three previews. One merged preview lost two of the three.

Stack

Depends on: #9043. Followed by #9045. This draft is opened stacked — its diff narrows to its own commit once #9043 merges, and I'll rebase before review.

Verification

ts:check and lint pass; complete suite 1,820/1,820. Grouping, previews, filters and navigation are exercised by the live end-to-end suite recorded for the Collectives PRs.

AI assistance

Commits carry Assisted-by: Codex:gpt-5.6-sol; an independent review pass was run with Claude Opus 5. Description drafted with Hermes (deepseek-v4-pro) from my notes, then reviewed by me.

Related

Parse immutable documents, normalize their semantic structure, and emit bounded stable change descriptors. Support one shared schema for both parsed documents.

Assisted-by: Codex:gpt-5.6-sol
Signed-off-by: Hoang Pham <hoangmaths96@gmail.com>
Expose the Text comparison factory and render grouped changes by document section. Preserve every changed-only preview in multi-edit blocks with semantic deletion and insertion markup.

Assisted-by: Codex:gpt-5.6-sol
Signed-off-by: Hoang Pham <hoangmaths96@gmail.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