Skip to content

chore: version packages#424

Merged
jan-kubica merged 1 commit into
mainfrom
changeset-release/main
Jul 19, 2026
Merged

chore: version packages#424
jan-kubica merged 1 commit into
mainfrom
changeset-release/main

Conversation

@stella-provenance-updater

@stella-provenance-updater stella-provenance-updater Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@stll/folio-agents@0.8.0

Minor Changes

  • #412 21274be Thanks @jan-kubica! - Add a first-class suggestion layer to tracked changes. AI-proposed edits can be
    applied with the new "suggested" apply mode: they render with the
    tracked-change grammar but a dotted stroke and a dedicated hue, and are always
    stripped from serialized DOCX output until accepted. Accepting a suggestion
    converts it into a normal tracked change authored by the accepting user (or, for
    a whole inserted table, applies it directly since OOXML has no tracked
    representation for it); rejecting inverse-applies it.

    Suggested mode covers inline text/format operations (replaceInBlock,
    replaceRange, formatRange) and block/table structural operations
    (insertAfterBlock, insertBeforeBlock, replaceBlock, deleteBlock,
    insertSignatureTable, insertTableRow, deleteTableRow, insertTableColumn,
    deleteTableColumn). Whole-node inserts are stripped entirely; suggested
    deletes serialize as though they never happened; the strip is the single
    fromProseDoc/extractBlocks boundary every serialization path funnels through.
    Cell merge/split and comment operations remain unsupportedMode.

    New core commands (getSuggestions, acceptSuggestion, acceptAllSuggestions,
    rejectSuggestion, rejectAllSuggestions, findSuggestionRange) and
    editor-ref methods (getSuggestions, acceptSuggestion returning
    { accepted, appliedAs }, rejectSuggestion, scrollToSuggestion) expose the
    layer to hosts; getSuggestions reports each suggestion's kinds and appliedAs
    ("tracked" vs "direct"). The React and Vue adapters expose the same ref
    surface (the Nuxt module re-exports it).

    Tracked changes also gain an optional initials field, carried through the
    model and the ProseMirror marks/node attrs for UI attribution (hover, accept
    authoring). It is intentionally NOT serialized onto w:ins/w:del/w:*PrChange
    or table row/cell markers — w:initials is not part of ECMA-376
    CT_TrackChange, so output stays schema-strict — but the parser remains tolerant
    of it if an external document supplies one.

Patch Changes

  • #420 a47ee19 Thanks @jan-kubica! - Harden agent operation integrity: read_document/read_section/find_text
    now return a per-block text hash and suggest_changes/add_comment accept a
    caller-supplied precondition, so a stale edit prepared against content the model
    read earlier is detected instead of being stamped from a fresh apply-time
    snapshot. Operation-mode and block-range lookups use own-property checks so
    prototype keys (__proto__, constructor) can no longer crash the API.

  • #420 a47ee19 Thanks @jan-kubica! - Bound version-comparison, agent, and validation paths against crafted-input
    resource exhaustion: a single aggregate LCS cell budget is now shared across all
    document stories; move detection dequeues in O(1) instead of Array.shift;
    diffWordSegments caps its DP matrix and falls back to a whole-string diff;
    ensureParaIds and docx-core's validateDocxPackage enforce entry-count and
    uncompressed-size limits before reading; note-paragraph patching builds a linear
    offset index instead of rescanning per id; agent whole-word search uses a bounded
    boundary window; suggest_changes enforces an aggregate operation-text budget;
    and tracked vertical cell split refuses a stored continuation whose gridSpan
    exceeds one column.

  • Updated dependencies [75842cf, ce930f4, 4b6e885, 75842cf, 64f0737, a47ee19, a47ee19, a47ee19, a47ee19, a47ee19, a47ee19, 3229068, a47ee19, 21274be]:

    • @stll/folio-core@0.13.0

@stll/folio-core@0.13.0

Minor Changes

  • #412 21274be Thanks @jan-kubica! - Add a first-class suggestion layer to tracked changes. AI-proposed edits can be
    applied with the new "suggested" apply mode: they render with the
    tracked-change grammar but a dotted stroke and a dedicated hue, and are always
    stripped from serialized DOCX output until accepted. Accepting a suggestion
    converts it into a normal tracked change authored by the accepting user (or, for
    a whole inserted table, applies it directly since OOXML has no tracked
    representation for it); rejecting inverse-applies it.

    Suggested mode covers inline text/format operations (replaceInBlock,
    replaceRange, formatRange) and block/table structural operations
    (insertAfterBlock, insertBeforeBlock, replaceBlock, deleteBlock,
    insertSignatureTable, insertTableRow, deleteTableRow, insertTableColumn,
    deleteTableColumn). Whole-node inserts are stripped entirely; suggested
    deletes serialize as though they never happened; the strip is the single
    fromProseDoc/extractBlocks boundary every serialization path funnels through.
    Cell merge/split and comment operations remain unsupportedMode.

    New core commands (getSuggestions, acceptSuggestion, acceptAllSuggestions,
    rejectSuggestion, rejectAllSuggestions, findSuggestionRange) and
    editor-ref methods (getSuggestions, acceptSuggestion returning
    { accepted, appliedAs }, rejectSuggestion, scrollToSuggestion) expose the
    layer to hosts; getSuggestions reports each suggestion's kinds and appliedAs
    ("tracked" vs "direct"). The React and Vue adapters expose the same ref
    surface (the Nuxt module re-exports it).

    Tracked changes also gain an optional initials field, carried through the
    model and the ProseMirror marks/node attrs for UI attribution (hover, accept
    authoring). It is intentionally NOT serialized onto w:ins/w:del/w:*PrChange
    or table row/cell markers — w:initials is not part of ECMA-376
    CT_TrackChange, so output stays schema-strict — but the parser remains tolerant
    of it if an external document supplies one.

Patch Changes

  • #422 75842cf Thanks @jan-kubica! - Match Word's final-line paragraph-mark spacing for visible lists.

  • #428 ce930f4 Thanks @jan-kubica! - Drop unresolvable comment range and reference markers during export, porting eigenpal #1090.

  • #429 4b6e885 Thanks @jan-kubica! - Port eigenpal/docx-editor#1096 image border rendering through layout painting.

  • #422 75842cf Thanks @jan-kubica! - Ignore cached table page boundaries when tracked row content can change pagination.

  • #427 64f0737 Thanks @jan-kubica! - Keep tracked-change revision ids within the range OOXML consumers accept. Suggestion-mode edits seeded their w:ins/w:del id counter from the clock, producing 13-digit w:id values that made exported documents fail to open. Ids now continue from the document's own highest revision id. Port of eigenpal/docx-editor#1093.

  • #420 a47ee19 Thanks @jan-kubica! - Harden agent operation integrity: read_document/read_section/find_text
    now return a per-block text hash and suggest_changes/add_comment accept a
    caller-supplied precondition, so a stale edit prepared against content the model
    read earlier is detected instead of being stamped from a fresh apply-time
    snapshot. Operation-mode and block-range lookups use own-property checks so
    prototype keys (__proto__, constructor) can no longer crash the API.

  • #420 a47ee19 Thanks @jan-kubica! - Bound version-comparison, agent, and validation paths against crafted-input
    resource exhaustion: a single aggregate LCS cell budget is now shared across all
    document stories; move detection dequeues in O(1) instead of Array.shift;
    diffWordSegments caps its DP matrix and falls back to a whole-string diff;
    ensureParaIds and docx-core's validateDocxPackage enforce entry-count and
    uncompressed-size limits before reading; note-paragraph patching builds a linear
    offset index instead of rescanning per id; agent whole-word search uses a bounded
    boundary window; suggest_changes enforces an aggregate operation-text budget;
    and tracked vertical cell split refuses a stored continuation whose gridSpan
    exceeds one column.

  • #420 a47ee19 Thanks @jan-kubica! - Prevent untrusted DOCX assets from affecting the host page. Embedded fonts are
    registered under per-document scoped family names (resolved through the font
    resolver) so a document embedding a face named after a host UI family can no
    longer shadow it page-wide, and watermark dialogs validate external image
    targets against an http/https allowlist (with a defensive guard before emitting
    an external relationship) so file:/UNC/other-scheme targets cannot be written
    into exported documents.

  • #420 a47ee19 Thanks @jan-kubica! - Stop hidden and active DOCX content from leaking through save and read paths.
    Selective save now bails to a full repack when the package contains
    non-preservable entries (e.g. word/vbaProject.bin, embedded binaries) instead
    of round-tripping them; hidden table-row text and w:vanish runs are excluded
    from the AI snapshot; footnotes referenced only from hidden rows are no longer
    painted; metadata-privacy scrubbing matches docProps/core.xml case-insensitively;
    server text extraction resolves referenced headers/footers via relationships
    instead of reading orphan parts; bound content-control clicks no longer throw;
    and text-box anchor markers are stripped from pasted HTML and salted with a
    per-load nonce.

  • #420 a47ee19 Thanks @jan-kubica! - Prevent CSS and OOXML injection from attacker-controlled document/collaboration
    values. Colors are validated to a strict hex/auto format at a single
    colorResolver choke point (closing themed table-fill and diagonal-border
    url() injection and the pasted data-bgcolor path); comment paraId/textId
    are validated to 8-hex at parse and XML-escaped on serialize; run/paragraph/
    table/style color and theme attributes are XML-escaped and hex-validated; inline
    and block SDT raw properties are replayed only when they are a single
    well-formed w:sdtPr/w:sdtEndPr element (otherwise synthesized); remote
    collaborator colors are validated before use and painted via backgroundColor
    (not the background shorthand); and controlled comments are sanitized before
    becoming editor state.

  • #420 a47ee19 Thanks @jan-kubica! - Bound DOCX parsing and layout against crafted-input resource exhaustion: clamp
    table gridSpan/column counts, section column count, and page dimensions;
    floor the default tab stop; cap kinsoku/line-break rule lists (stored as sets)
    and run language tags; add an iteration cap to cross-run hyphenation; replace
    the conformance root-tag regex with a linear, non-backtracking scanner; cap
    per-element xmlns declarations; enforce an incremental size budget while
    building grouped-drawing SVG previews; make style-numbered list resume O(1) per
    paragraph; and guard encrypted-DOCX parsing with DIFAT cycle detection plus a
    spinCount ceiling.

  • #426 3229068 Thanks @jan-kubica! - Harden untrusted clipboard HTML, image sources, and VML style parsing against XSS, remote fetch, ReDoS, and prototype pollution.

  • #420 a47ee19 Thanks @jan-kubica! - Sanitize hyperlink and image link URLs so pasted, programmatic, or DOCX-sourced
    javascript:/data:/file: targets can no longer reach the live DOM or be
    opened. Hyperlink marks are sanitized on parse (parseDOM), on render
    (toDOM), and when set/inserted/edited; image a:hlinkClick targets are
    sanitized at parse time; the Vue popup window.open path now mirrors React's
    sanitizer; and aux-click on link anchors no longer bypasses the guard. Internal
    bookmark anchors (#name) are preserved.

  • Updated dependencies [64f0737, a47ee19, 21274be]:

    • @stll/docx-core@0.5.0

@stll/docx-core@0.5.0

Minor Changes

  • #412 21274be Thanks @jan-kubica! - Add a first-class suggestion layer to tracked changes. AI-proposed edits can be
    applied with the new "suggested" apply mode: they render with the
    tracked-change grammar but a dotted stroke and a dedicated hue, and are always
    stripped from serialized DOCX output until accepted. Accepting a suggestion
    converts it into a normal tracked change authored by the accepting user (or, for
    a whole inserted table, applies it directly since OOXML has no tracked
    representation for it); rejecting inverse-applies it.

    Suggested mode covers inline text/format operations (replaceInBlock,
    replaceRange, formatRange) and block/table structural operations
    (insertAfterBlock, insertBeforeBlock, replaceBlock, deleteBlock,
    insertSignatureTable, insertTableRow, deleteTableRow, insertTableColumn,
    deleteTableColumn). Whole-node inserts are stripped entirely; suggested
    deletes serialize as though they never happened; the strip is the single
    fromProseDoc/extractBlocks boundary every serialization path funnels through.
    Cell merge/split and comment operations remain unsupportedMode.

    New core commands (getSuggestions, acceptSuggestion, acceptAllSuggestions,
    rejectSuggestion, rejectAllSuggestions, findSuggestionRange) and
    editor-ref methods (getSuggestions, acceptSuggestion returning
    { accepted, appliedAs }, rejectSuggestion, scrollToSuggestion) expose the
    layer to hosts; getSuggestions reports each suggestion's kinds and appliedAs
    ("tracked" vs "direct"). The React and Vue adapters expose the same ref
    surface (the Nuxt module re-exports it).

    Tracked changes also gain an optional initials field, carried through the
    model and the ProseMirror marks/node attrs for UI attribution (hover, accept
    authoring). It is intentionally NOT serialized onto w:ins/w:del/w:*PrChange
    or table row/cell markers — w:initials is not part of ECMA-376
    CT_TrackChange, so output stays schema-strict — but the parser remains tolerant
    of it if an external document supplies one.

Patch Changes

  • #427 64f0737 Thanks @jan-kubica! - Keep tracked-change revision ids within the range OOXML consumers accept. Suggestion-mode edits seeded their w:ins/w:del id counter from the clock, producing 13-digit w:id values that made exported documents fail to open. Ids now continue from the document's own highest revision id. Port of eigenpal/docx-editor#1093.

  • #420 a47ee19 Thanks @jan-kubica! - Bound version-comparison, agent, and validation paths against crafted-input
    resource exhaustion: a single aggregate LCS cell budget is now shared across all
    document stories; move detection dequeues in O(1) instead of Array.shift;
    diffWordSegments caps its DP matrix and falls back to a whole-string diff;
    ensureParaIds and docx-core's validateDocxPackage enforce entry-count and
    uncompressed-size limits before reading; note-paragraph patching builds a linear
    offset index instead of rescanning per id; agent whole-word search uses a bounded
    boundary window; suggest_changes enforces an aggregate operation-text budget;
    and tracked vertical cell split refuses a stored continuation whose gridSpan
    exceeds one column.

@stll/folio-react@0.12.0

Minor Changes

  • #412 21274be Thanks @jan-kubica! - Add a first-class suggestion layer to tracked changes. AI-proposed edits can be
    applied with the new "suggested" apply mode: they render with the
    tracked-change grammar but a dotted stroke and a dedicated hue, and are always
    stripped from serialized DOCX output until accepted. Accepting a suggestion
    converts it into a normal tracked change authored by the accepting user (or, for
    a whole inserted table, applies it directly since OOXML has no tracked
    representation for it); rejecting inverse-applies it.

    Suggested mode covers inline text/format operations (replaceInBlock,
    replaceRange, formatRange) and block/table structural operations
    (insertAfterBlock, insertBeforeBlock, replaceBlock, deleteBlock,
    insertSignatureTable, insertTableRow, deleteTableRow, insertTableColumn,
    deleteTableColumn). Whole-node inserts are stripped entirely; suggested
    deletes serialize as though they never happened; the strip is the single
    fromProseDoc/extractBlocks boundary every serialization path funnels through.
    Cell merge/split and comment operations remain unsupportedMode.

    New core commands (getSuggestions, acceptSuggestion, acceptAllSuggestions,
    rejectSuggestion, rejectAllSuggestions, findSuggestionRange) and
    editor-ref methods (getSuggestions, acceptSuggestion returning
    { accepted, appliedAs }, rejectSuggestion, scrollToSuggestion) expose the
    layer to hosts; getSuggestions reports each suggestion's kinds and appliedAs
    ("tracked" vs "direct"). The React and Vue adapters expose the same ref
    surface (the Nuxt module re-exports it).

    Tracked changes also gain an optional initials field, carried through the
    model and the ProseMirror marks/node attrs for UI attribution (hover, accept
    authoring). It is intentionally NOT serialized onto w:ins/w:del/w:*PrChange
    or table row/cell markers — w:initials is not part of ECMA-376
    CT_TrackChange, so output stays schema-strict — but the parser remains tolerant
    of it if an external document supplies one.

Patch Changes

  • #420 a47ee19 Thanks @jan-kubica! - Prevent untrusted DOCX assets from affecting the host page. Embedded fonts are
    registered under per-document scoped family names (resolved through the font
    resolver) so a document embedding a face named after a host UI family can no
    longer shadow it page-wide, and watermark dialogs validate external image
    targets against an http/https allowlist (with a defensive guard before emitting
    an external relationship) so file:/UNC/other-scheme targets cannot be written
    into exported documents.

  • #420 a47ee19 Thanks @jan-kubica! - Prevent CSS and OOXML injection from attacker-controlled document/collaboration
    values. Colors are validated to a strict hex/auto format at a single
    colorResolver choke point (closing themed table-fill and diagonal-border
    url() injection and the pasted data-bgcolor path); comment paraId/textId
    are validated to 8-hex at parse and XML-escaped on serialize; run/paragraph/
    table/style color and theme attributes are XML-escaped and hex-validated; inline
    and block SDT raw properties are replayed only when they are a single
    well-formed w:sdtPr/w:sdtEndPr element (otherwise synthesized); remote
    collaborator colors are validated before use and painted via backgroundColor
    (not the background shorthand); and controlled comments are sanitized before
    becoming editor state.

  • #420 a47ee19 Thanks @jan-kubica! - Scope review actions to their intended target. AI undoDocumentOperations
    always undoes the body operation instead of whatever story (header/footer)
    currently has focus; sidebar accept/reject applies only the selected revision
    rather than every tracked change in the resolved range (React and Vue); the Vue
    page-setup dialog respects read-only; Vue table properties target the active
    editor view; and Vue AI-authored comments use the requested operation author.

  • #420 a47ee19 Thanks @jan-kubica! - Sanitize hyperlink and image link URLs so pasted, programmatic, or DOCX-sourced
    javascript:/data:/file: targets can no longer reach the live DOM or be
    opened. Hyperlink marks are sanitized on parse (parseDOM), on render
    (toDOM), and when set/inserted/edited; image a:hlinkClick targets are
    sanitized at parse time; the Vue popup window.open path now mirrors React's
    sanitizer; and aux-click on link anchors no longer bypasses the guard. Internal
    bookmark anchors (#name) are preserved.

  • Updated dependencies [75842cf, ce930f4, 4b6e885, 75842cf, 64f0737, a47ee19, a47ee19, a47ee19, a47ee19, a47ee19, a47ee19, 3229068, a47ee19, 21274be]:

    • @stll/folio-core@0.13.0

@stll/folio-vue@0.11.0

Minor Changes

  • #412 21274be Thanks @jan-kubica! - Add a first-class suggestion layer to tracked changes. AI-proposed edits can be
    applied with the new "suggested" apply mode: they render with the
    tracked-change grammar but a dotted stroke and a dedicated hue, and are always
    stripped from serialized DOCX output until accepted. Accepting a suggestion
    converts it into a normal tracked change authored by the accepting user (or, for
    a whole inserted table, applies it directly since OOXML has no tracked
    representation for it); rejecting inverse-applies it.

    Suggested mode covers inline text/format operations (replaceInBlock,
    replaceRange, formatRange) and block/table structural operations
    (insertAfterBlock, insertBeforeBlock, replaceBlock, deleteBlock,
    insertSignatureTable, insertTableRow, deleteTableRow, insertTableColumn,
    deleteTableColumn). Whole-node inserts are stripped entirely; suggested
    deletes serialize as though they never happened; the strip is the single
    fromProseDoc/extractBlocks boundary every serialization path funnels through.
    Cell merge/split and comment operations remain unsupportedMode.

    New core commands (getSuggestions, acceptSuggestion, acceptAllSuggestions,
    rejectSuggestion, rejectAllSuggestions, findSuggestionRange) and
    editor-ref methods (getSuggestions, acceptSuggestion returning
    { accepted, appliedAs }, rejectSuggestion, scrollToSuggestion) expose the
    layer to hosts; getSuggestions reports each suggestion's kinds and appliedAs
    ("tracked" vs "direct"). The React and Vue adapters expose the same ref
    surface (the Nuxt module re-exports it).

    Tracked changes also gain an optional initials field, carried through the
    model and the ProseMirror marks/node attrs for UI attribution (hover, accept
    authoring). It is intentionally NOT serialized onto w:ins/w:del/w:*PrChange
    or table row/cell markers — w:initials is not part of ECMA-376
    CT_TrackChange, so output stays schema-strict — but the parser remains tolerant
    of it if an external document supplies one.

Patch Changes

  • #420 a47ee19 Thanks @jan-kubica! - Prevent untrusted DOCX assets from affecting the host page. Embedded fonts are
    registered under per-document scoped family names (resolved through the font
    resolver) so a document embedding a face named after a host UI family can no
    longer shadow it page-wide, and watermark dialogs validate external image
    targets against an http/https allowlist (with a defensive guard before emitting
    an external relationship) so file:/UNC/other-scheme targets cannot be written
    into exported documents.

  • #420 a47ee19 Thanks @jan-kubica! - Scope review actions to their intended target. AI undoDocumentOperations
    always undoes the body operation instead of whatever story (header/footer)
    currently has focus; sidebar accept/reject applies only the selected revision
    rather than every tracked change in the resolved range (React and Vue); the Vue
    page-setup dialog respects read-only; Vue table properties target the active
    editor view; and Vue AI-authored comments use the requested operation author.

  • #420 a47ee19 Thanks @jan-kubica! - Sanitize hyperlink and image link URLs so pasted, programmatic, or DOCX-sourced
    javascript:/data:/file: targets can no longer reach the live DOM or be
    opened. Hyperlink marks are sanitized on parse (parseDOM), on render
    (toDOM), and when set/inserted/edited; image a:hlinkClick targets are
    sanitized at parse time; the Vue popup window.open path now mirrors React's
    sanitizer; and aux-click on link anchors no longer bypasses the guard. Internal
    bookmark anchors (#name) are preserved.

  • Updated dependencies [75842cf, ce930f4, 4b6e885, 75842cf, 64f0737, a47ee19, a47ee19, a47ee19, a47ee19, a47ee19, a47ee19, 3229068, a47ee19, 21274be]:

    • @stll/folio-core@0.13.0

@stll/folio-nuxt@0.3.7

Patch Changes

  • #412 21274be Thanks @jan-kubica! - Add a first-class suggestion layer to tracked changes. AI-proposed edits can be
    applied with the new "suggested" apply mode: they render with the
    tracked-change grammar but a dotted stroke and a dedicated hue, and are always
    stripped from serialized DOCX output until accepted. Accepting a suggestion
    converts it into a normal tracked change authored by the accepting user (or, for
    a whole inserted table, applies it directly since OOXML has no tracked
    representation for it); rejecting inverse-applies it.

    Suggested mode covers inline text/format operations (replaceInBlock,
    replaceRange, formatRange) and block/table structural operations
    (insertAfterBlock, insertBeforeBlock, replaceBlock, deleteBlock,
    insertSignatureTable, insertTableRow, deleteTableRow, insertTableColumn,
    deleteTableColumn). Whole-node inserts are stripped entirely; suggested
    deletes serialize as though they never happened; the strip is the single
    fromProseDoc/extractBlocks boundary every serialization path funnels through.
    Cell merge/split and comment operations remain unsupportedMode.

    New core commands (getSuggestions, acceptSuggestion, acceptAllSuggestions,
    rejectSuggestion, rejectAllSuggestions, findSuggestionRange) and
    editor-ref methods (getSuggestions, acceptSuggestion returning
    { accepted, appliedAs }, rejectSuggestion, scrollToSuggestion) expose the
    layer to hosts; getSuggestions reports each suggestion's kinds and appliedAs
    ("tracked" vs "direct"). The React and Vue adapters expose the same ref
    surface (the Nuxt module re-exports it).

    Tracked changes also gain an optional initials field, carried through the
    model and the ProseMirror marks/node attrs for UI attribution (hover, accept
    authoring). It is intentionally NOT serialized onto w:ins/w:del/w:*PrChange
    or table row/cell markers — w:initials is not part of ECMA-376
    CT_TrackChange, so output stays schema-strict — but the parser remains tolerant
    of it if an external document supplies one.

  • Updated dependencies [a47ee19, a47ee19, a47ee19, 21274be]:

    • @stll/folio-vue@0.11.0

@stella-provenance-updater
stella-provenance-updater Bot force-pushed the changeset-release/main branch 5 times, most recently from 290951f to 4441ef6 Compare July 19, 2026 16:43
@jan-kubica
jan-kubica merged commit d8c76e3 into main Jul 19, 2026
7 checks passed
@jan-kubica
jan-kubica deleted the changeset-release/main branch July 19, 2026 16:53
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 19, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant