π€ *Clippy here β I'm an automated AI assistant for this repository.* ## Activity for April 2026 ## Suggested Actions for Maintainer * [ ] **Review PR** #234: fix: handle corrupt ZIP local file header in image/media parts β [Review](https://github.com/sergey-tihon/Clippit/pull/234) * [ ] **Review PR** #165: feat(excel): add ExcelAssembler for template-based xlsx document assembly β Closes #28 β [Review](https://github.com/sergey-tihon/Clippit/pull/165) * [ ] **Review PR** #163: feat: add RegisterCustomHandler extensibility API to DocumentAssembler β Closes #66 β [Review](https://github.com/sergey-tihon/Clippit/pull/163) * [ ] **Review PR** (new): chore(deps): update TUnit 1.37.36 β 1.39.0 β all 1699 tests pass * [ ] **Check comment** #47: Clippy explained RelationshipErrorRewriter not in SDK β [View](https://github.com/sergey-tihon/Clippit/issues/47) * [ ] **Check comment** #67: Clippy explained DocumentAssembler uses XPath 1.0 β [View](https://github.com/sergey-tihon/Clippit/issues/67) * [ ] **Check comment** #103: Clippy explained DocumentAssembler uses `<Content>` content controls, not bookmarks β [View](https://github.com/sergey-tihon/Clippit/issues/103) * [ ] **Check comment** #77: Clippy commented on "Updating references and table of contents using DocumentAssembler" β [View](https://github.com/sergey-tihon/Clippit/issues/77) * [ ] **Check comment** #54: Clippy commented on "ManageMediaCopy: improvement ideas" β [View](https://github.com/sergey-tihon/Clippit/issues/54) ## Future Work for Clippy - ExcelAssembler row-repetition (loop over data items): follow-up enhancement after #165 is reviewed ## Run History ### 2026-04-26 13:21 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24957628414) - π§ Created PR: chore(deps): update TUnit 1.37.36 β 1.39.0 (1699 tests pass) ### 2026-04-25 13:21 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24931831429) - π Updated PR #234: rebased onto master (UriFixer #237) - π Updated PR #165: rebased onto master (v3.4.1 + #235/#236/#237) - π Updated PR #163: rebased onto master (v3.4.1 + #235/#236/#237) ### 2026-04-24 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24891738357) - π Updated PR #234: rebased onto master (2 new commits from #235/#236) - π§ Created PR #237 (merged): refactor: modernize UriFixer β convenience overload, leaveOpen param, fix latent `TargetMode` trailing-space bug, eliminate ~60-line test duplication, add 6 unit tests ### 2026-04-23 13:23 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24837682344) - π§ Created PR #235 (merged): chore(deps): update TUnit 1.37.10 β 1.37.36 - π§ͺ Created PR #236 (merged): test(excel): add SmlDataRetriever unit tests (SDR001βSDR025) ### 2026-04-23 07:31 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24822778500) - π§ Created PR #234: fix: handle corrupt ZIP local file header in image/media parts β Closes #233 - π¬ Commented on #233: root cause analysis and fix summary ### 2026-04-22 13:20 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24780543422) - β‘ Implemented perf: MakeValidXml single-pass lazy-StringBuilder + AddIfMissing TryAdd (merged in #229) - π§ͺ Added 14 unit tests for Base64.ChunkBase64 and ConvertFromBase64 (merged in #229) ### 2026-04-22 13:23 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24780687838) - π§ Created PR #228 (merged): refactor: replace generic Exception with specific exception types - π Created PR #227 (merged): ci: add NuGet publish workflow triggered by version tags ### 2026-04-21 13:23 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24724757069) - π·οΈ Labelled PR #221 with `enhancement` - π§ Created PR #222 (merged): chore(deps): update TUnit 1.37.0 β 1.37.10 ### 2026-04-20 13:23 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24668939407) - π Created issue #220: ci: add NuGet publish workflow triggered by version tags ### 2026-04-18 13:21 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24605564128) - π§ͺ Created PR #213 (merged): test(word): add 6 new MarkupSimplifier tests (MS004βMS009) - π Updated PRs #163, #165, #166, #180: merged latest master ### 2026-04-17 13:22 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24567270306) - π Created PR #212 (merged): chore: prepare 3.4.0 release β CHANGELOG + TUnit 1.35.2 ### 2026-04-16 17:11 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24523654240) - π¨ Created PR #211 (merged): docs: switch to modern DocFX theme β Closes #210 ### 2026-04-16 13:23 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24512659578) - β‘ Created PR #209 (merged): perf: eliminate per-character heap allocations in base64 chunking ### 2026-04-15 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24474081299) - π Created PR #208 (merged): fix(word): guard out-of-range levelNumber in ListItemTextGetter_ru_RU - π§ Created PR #207 (merged): refactor: simplify LINQ patterns across Excel, Word, and Html modules ### 2026-04-15 14:03 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24458916009) - π§ Created PR #205 (merged): chore(deps): update TUnit 1.32.0 β 1.33.0 - π§ͺ Created PR #206 (merged): test(word): add 128 unit tests for fr_FR, sv_SE, zh_CN ListItemTextGetters ### 2026-04-14 13:23 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24401363870) - π Created PR #201 (merged): fix(word): guard cardinalText/ordinalText out-of-range in ListItemTextGetter_tr_TR ### 2026-04-13 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24345689068) - π§ Created PR #199 (merged): perf(comparer): reduce heap allocations in WmlComparerUtil SHA-1 hashing - π Created PR #200 (merged): fix(word): guard cardinalText/ordinalText against out-of-range levelNumber ### 2026-04-12 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24307679302) - π§ͺ Created PR #198 (merged): test: add unit tests for ListItemTextGetter_Default (84 tests) ### 2026-04-11 13:20 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24283303323) - π§ Created PR #197 (merged): chore(deps): update TUnit 1.30.8 β 1.32.0 ### 2026-04-11 12:41 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24282661394) - π§ Created PR #196 (merged): perf: convert Regex instances to source-generated [GeneratedRegex] ### 2026-04-08 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24131171245) - π§ͺ Created PR #185 (merged): test(excel): add unit tests for XlsxTables cell address utilities ### 2026-04-07 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24077183746) - π§ Created PR #184 (merged): perf: SHA1.HashData() + Convert.ToHexString() in WmlComparerUtil ### 2026-04-06 12:55 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24032541893) - π§ Created PR #183 (merged): docs: improve README.md ### 2026-04-06 10:42 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24028725322) - π§ Created PR #181 (merged): chore(deps): update TUnit 1.24.31 β 1.28.7 ### 2026-04-05 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/23999688674) - π§ Created PR #180 (merged): feat(html): render floating tables (w:tblpPr) with CSS float ### 2026-04-04 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/23977103089) - π§ Created PR #178 (merged): perf(pptx): avoid OuterXmlβParse roundtrip in SlidePartData - π§ Created PR #177 (merged): chore(deps): update TUnit 1.21.6 β 1.24.31 ### 2026-04-03 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/23943293139) - π§ Created PR #175 (merged): perf(pptx): single-pass dispatch in CopyRelatedPartsForContentParts ### 2026-04-01 13:16 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/23850557404) - π¬ Commented on #48: detailed analysis of 4 FluentPresentationBuilder memory optimizations ### 2026-04-01 10:41 UTC β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/23844542937) - π§ͺ Created PR #169 (merged): test(excel): add ParseFormula unit tests (PF001βPF020) - π Closed March 2026 activity issue #111 and created this April issue > Generated by π Clippy, see [workflow run](https://github.com/sergey-tihon/Clippit/actions/runs/24957628414). [Learn more](https://github.com/githubnext/agentics/blob/main/docs/repo-assist.md). > > To install this [agentic workflow](https://github.com/githubnext/agentics/blob/51c8f6ad4357d2ecc06e47120031b3d75e80227d/workflows/repo-assist.md), run > ``` > gh aw add githubnext/agentics/workflows/repo-assist.md@51c8f6ad4357d2ecc06e47120031b3d75e80227d > ``` > Generated by π Clippy, see [workflow run](https://github.com/sergey-tihon/Clippit/actions/runs/24957628414). [Learn more](https://github.com/githubnext/agentics/blob/main/docs/repo-assist.md). > > To install this [agentic workflow](https://github.com/githubnext/agentics/blob/3de4e604a36b5190a1c7dc4719c7341500ba8a95/workflows/repo-assist.md), run > ``` > gh aw add githubnext/agentics/workflows/repo-assist.md@3de4e604a36b5190a1c7dc4719c7341500ba8a95 > ``` <!-- gh-aw-agentic-workflow: Clippy, engine: copilot, model: auto, id: 24957628414, workflow_id: clippy, run: https://github.com/sergey-tihon/Clippit/actions/runs/24957628414 --> --- <!-- gh-aw-island-start:clippy --> ### 2026-04-27 β [Run](https://github.com/sergey-tihon/Clippit/actions/runs/24997601375) - π§ Created PR #243: Update TUnit 1.39.0 β 1.40.5 - π§ Created PR #244: Modernise random/guid usage, fix discarded Guid bug, remove dead code > Generated by π Clippy, see [workflow run](https://github.com/sergey-tihon/Clippit/actions/runs/24997601375). [Learn more](https://github.com/githubnext/agentics/blob/main/docs/repo-assist.md). > > To install this [agentic workflow](https://github.com/githubnext/agentics/blob/3de4e604a36b5190a1c7dc4719c7341500ba8a95/workflows/repo-assist.md), run > ``` > gh aw add githubnext/agentics/workflows/repo-assist.md@3de4e604a36b5190a1c7dc4719c7341500ba8a95 > ``` <!-- gh-aw-agentic-workflow: Clippy, engine: copilot, model: auto, id: 24997601375, workflow_id: clippy, run: https://github.com/sergey-tihon/Clippit/actions/runs/24997601375 --> <!-- gh-aw-island-end:clippy -->
π€ Clippy here β I'm an automated AI assistant for this repository.
Activity for April 2026
Suggested Actions for Maintainer
<Content>content controls, not bookmarks β ViewFuture Work for Clippy
Run History
2026-04-26 13:21 UTC β Run
2026-04-25 13:21 UTC β Run
2026-04-24 UTC β Run
TargetModetrailing-space bug, eliminate ~60-line test duplication, add 6 unit tests2026-04-23 13:23 UTC β Run
2026-04-23 07:31 UTC β Run
2026-04-22 13:20 UTC β Run
2026-04-22 13:23 UTC β Run
2026-04-21 13:23 UTC β Run
enhancement2026-04-20 13:23 UTC β Run
2026-04-18 13:21 UTC β Run
2026-04-17 13:22 UTC β Run
2026-04-16 17:11 UTC β Run
2026-04-16 13:23 UTC β Run
2026-04-15 UTC β Run
2026-04-15 14:03 UTC β Run
2026-04-14 13:23 UTC β Run
2026-04-13 UTC β Run
2026-04-12 UTC β Run
2026-04-11 13:20 UTC β Run
2026-04-11 12:41 UTC β Run
2026-04-08 UTC β Run
2026-04-07 UTC β Run
2026-04-06 12:55 UTC β Run
2026-04-06 10:42 UTC β Run
2026-04-05 UTC β Run
2026-04-04 UTC β Run
2026-04-03 UTC β Run
2026-04-01 13:16 UTC β Run
2026-04-01 10:41 UTC β Run
2026-04-27 β Run