Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,15 +61,15 @@ The full suite exercises real Visio COM calls with no mock/fake layer. CI runs o
- **Shell:** Windows host. Both Bash and PowerShell are available. Use Bash for git and Unix-style tooling; use PowerShell for `.ps1` parse checks (`[System.Management.Automation.PSParser]::Tokenize`) and Windows-specific operations.
- **GitHub access:** the `TheSevenPens` git identity has push access to all three repos in play (this repo, [`VisioAutomation_GitBook_Docs`](https://github.com/saveenr/VisioAutomation_GitBook_Docs), and [`VisioPowerShellDocs`](https://github.com/saveenr/VisioPowerShellDocs)). The user-facing docs live in those last two repos as siblings of this repo (cloned to `C:\Users\savee\Documents\GitHub\VisioAutomation_GitBook_Docs\` and `C:\Users\savee\Documents\GitHub\VisioPowerShellDocs\`). PS docs use a version-pinned branch (`visiops_v4_docs`), not master — see [repository/service map](docs/HANDOVER.md#repository-and-service-map).

## State as of 2026-10-01
## State as of 2026-10-01 (after the 3.2.0 / 4.8.0 release)

**Start here; the sections below this one that describe earlier sessions are historical.** For build and test setup use [docs/BUILDING.md](docs/BUILDING.md) and [docs/TESTING.md](docs/TESTING.md).

- **Releases:** NuGet `VisioAutomation2010` **3.1.0** (tag `VisioAutomation_3.1.0`) and Visio PowerShell module **4.7.3** (tag `VisioPS_4.7.3`) shipped on 2026-09-30. The Release-build change for the NuGet flow ([#181](https://github.com/saveenr/VisioAutomation/issues/181)) is done and closed.
- **Repo:** `master` at `92dec356` (PRs up to #227 merged), no open PRs, working trees clean. The older `claude/*` and `experiment/linq-shapesheet` branches are leftovers from earlier sessions.
- **Unreleased changes** (`NuGet/CHANGELOG.md` and the module's `CHANGELOG.md`, `[Unreleased]`; `Get-VisioPage -ID` is now a real page ID and `-Index` takes positions, [#232](https://github.com/saveenr/VisioAutomation/issues/232)): the first tier of [#225](https://github.com/saveenr/VisioAutomation/issues/225) is Added (more directed graph XML options: `<documentoptions>`, shape `width`/`height`, `<hyperlink>`, `<cells>`, typed `<customprop>`, and per-connector `connectortype`, `<cells>` and `<customprop>`); the rest is Fixed: `DrawDataTable` honors widths and heights, `DrawDataTableModel` draws on the target page, `DrawXmlModel` roots the tree at the document element and now has an undo scope, `DrawDirectedGraphDocument` honors its `DirectedGraphStyling`, and `DrawOrgChart` no longer resizes the page you pass it. The next version is not decided; these are fixes only, so a patch release is the likely fit.
- **Releases:** NuGet `VisioAutomation2010` **3.2.0** (tag `VisioAutomation_3.2.0`) and Visio PowerShell module **4.8.0** (tag `VisioPS_4.8.0`) shipped on 2026-10-01 through the full CI flow (release, then publish, each dry-run first); both are live on nuget.org and PSGallery. The previous releases were 3.1.0 / 4.7.3 on 2026-09-30.
- **Repo:** `master` at `6d2d504b` (the release prep, PR #237), working trees clean. The older `claude/*` and `experiment/linq-shapesheet` branches are leftovers from earlier sessions.
- **Unreleased changes:** none. Both `[Unreleased]` changelog sections read `_No consumer-visible changes yet._`. The next version is not decided.
- **Tests:** 344 tests across four projects (VTest 108, VTest.Models 104, VTest.Scripting 48, VTest.PowerShell 84). The last full Release run (256) was on 2026-09-30; the newest tests are the regression tests for [#197](https://github.com/saveenr/VisioAutomation/issues/197), [#222](https://github.com/saveenr/VisioAutomation/issues/222) and [#219](https://github.com/saveenr/VisioAutomation/issues/219), the 23 tests in `DirectedGraphXmlOptionsTests` for [#225](https://github.com/saveenr/VisioAutomation/issues/225), and the 46 cmdlet-binding tests of the second slice of [#173](https://github.com/saveenr/VisioAutomation/issues/173).
- **Docs:** the .NET GitBook's Diagram models section was reorganized on 2026-10-01 (docs repo PRs 8 and 9, live). Every model page now has a "Where the output goes" section; the DOM page has a render performance page beneath it. The 2026-09 entries on the docs-updates page record each change. The "Models docs follow-ups" entry in [`docs/futures/docs.md`](docs/futures/docs.md) lists which doc statements to revisit when each source issue below is decided, and the release-gated "unreleased" notes to turn into version statements at the next release. The [#219](https://github.com/saveenr/VisioAutomation/issues/219) fix and the new directed graph XML options ([#225](https://github.com/saveenr/VisioAutomation/issues/225)) are described in the docs as unreleased changes after 3.1.0; the fixes for [#197](https://github.com/saveenr/VisioAutomation/issues/197) and [#222](https://github.com/saveenr/VisioAutomation/issues/222) are not yet described.
- **Docs:** the .NET GitBook's Diagram models section was reorganized on 2026-10-01. Every model page has a "Where the output goes" section; the DOM page has a render performance page beneath it. The 3.2.0 / 4.8.0 release sweeps (the "unreleased" notes turned into version statements, new version-compatibility rows, release-history entries) are in [.NET docs PR 13](https://github.com/saveenr/VisioAutomation_GitBook_Docs/pull/13) and [PowerShell docs PR 8](https://github.com/saveenr/VisioPowerShellDocs/pull/8). The "Models docs follow-ups" entry in [`docs/futures/docs.md`](docs/futures/docs.md) lists which doc statements to revisit when each source issue is decided. How to preview unreleased docs before a release is an open question: [#238](https://github.com/saveenr/VisioAutomation/issues/238).
- **Docs conventions:** no em-dashes in either GitBook. The docs repos publish when a PR merges to `main`, and each PR gets a GitBook preview. Cite the issue number on any page that describes behavior an open issue may change.
- **Docs viewer:** the local GitBook viewer now lives in its own private repo, `TheSevenPens/LocalGitbookviewer` (cloned at `C:/Users/savee/Documents/GitHub/LocalGitbookviewer`). Run `view.cmd <docs folder>` from that checkout. Its backlog is in that repo's `BACKLOG.md`.
- **GitHub accounts:** the `gh` CLI is logged in as both `saveenr` and `TheSevenPens`, with `saveenr` active (this repo and the docs repos live under `saveenr`). Commits are authored as `TheSevenPens`. Switch with `gh auth switch --user TheSevenPens` before running `gh` against a `TheSevenPens` repo.
Expand Down Expand Up @@ -183,11 +183,11 @@ Issues closed: [#131](https://github.com/saveenr/VisioAutomation/issues/131), [#

## Next session priorities

Roughly in the order worth doing. Pick from the top. ([#219](https://github.com/saveenr/VisioAutomation/issues/219) was the first item and is now fixed.)
Roughly in the order worth doing. Pick from the top.

1. **Decide the three public types with no real caller, together:** [#218](https://github.com/saveenr/VisioAutomation/issues/218) Box layout, [#220](https://github.com/saveenr/VisioAutomation/issues/220) form page model, [#221](https://github.com/saveenr/VisioAutomation/issues/221) `ContainerLayout` (draws plain rectangles; the `ContainerMaster` option is never read). The options are in each issue; the docs side of each is listed in the "Models docs follow-ups" backlog entry.
2. **Cut the next release when ready.** Versions are not decided (fixes only, so likely 3.1.1 and a PS module patch). The flow is in [`docs/futures/releases.md`](docs/futures/releases.md). At release time also turn the "unreleased" notes in both GitBooks into version statements and add the new versions to both version-compatibility pages.
3. **Design discussions, not yet quick:** [#223](https://github.com/saveenr/VisioAutomation/issues/223) `client.Model` draw methods are inconsistent, [#225](https://github.com/saveenr/VisioAutomation/issues/225) the rest of the directed graph XML options (the first tier shipped in the unreleased changes; per-edge master and stencil, renderer and styling from XML, and an XSD remain), and [#198](https://github.com/saveenr/VisioAutomation/issues/198) / [#199](https://github.com/saveenr/VisioAutomation/issues/199) drawing a single directed graph onto the current page.
2. **Unreleased-docs question:** [#238](https://github.com/saveenr/VisioAutomation/issues/238) investigate a GitBook `next` variant so docs for unreleased changes can be reviewed before the library ships. Investigate and try it out before deciding.
3. **Design discussions, not yet quick:** [#223](https://github.com/saveenr/VisioAutomation/issues/223) `client.Model` draw methods are inconsistent, [#236](https://github.com/saveenr/VisioAutomation/issues/236) the rest of the directed graph XML options (the first tier of #225 shipped in 3.2.0 and the issue is closed; per-edge master and stencil, renderer and styling from XML, and an XSD remain), and [#198](https://github.com/saveenr/VisioAutomation/issues/198) / [#199](https://github.com/saveenr/VisioAutomation/issues/199) drawing a single directed graph onto the current page.
4. **Earlier backlog:** [#191](https://github.com/saveenr/VisioAutomation/issues/191) migrate cmdlets to `ThrowTerminatingError` (makes `InvokeScriptStrict` redundant), [#190](https://github.com/saveenr/VisioAutomation/issues/190) the `VTest.PowerShell` two-Client mismatch, [#183](https://github.com/saveenr/VisioAutomation/issues/183) VisioScripting dead-method removal (CY27Q1; re-verify zero callers first), [#173](https://github.com/saveenr/VisioAutomation/issues/173) more cmdlet-binding tests (the second slice covered 13 cmdlets; roughly 40 are still untested, see `docs/futures/test-coverage-gaps.md`), [#163](https://github.com/saveenr/VisioAutomation/issues/163) and [#164](https://github.com/saveenr/VisioAutomation/issues/164) (the `PSCmdlet` question; see the memory note on why cmdlets derive from `Cmdlet`).

**Calendar-bound**
Expand Down
9 changes: 3 additions & 6 deletions docs/futures/docs.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,19 +58,16 @@ Backlog of documentation items, both in-repo developer docs and the user-facing

### Models docs follow-ups
- **What:** Three open items on the Models documentation.
- **Turn the "unreleased" notes into version statements when the release containing [#206](https://github.com/saveenr/VisioAutomation/issues/206), [#207](https://github.com/saveenr/VisioAutomation/issues/207) and [#208](https://github.com/saveenr/VisioAutomation/issues/208) ships.** Those fixes (merged in [#215](https://github.com/saveenr/VisioAutomation/pull/215)) are documented as "an unreleased change after NuGet 3.1.0" on `models/data-table.md`, `models/xml-model.md` and `visio-scripting/model.md` in [`VisioAutomation_GitBook_Docs`](https://github.com/saveenr/VisioAutomation_GitBook_Docs), and as "releases after 4.7.3" on `automatic-diagrams/drawing-data-tables.md` and `drawing-xml-models.md` in [`VisioPowerShellDocs`](https://github.com/saveenr/VisioPowerShellDocs). At release time also add the new versions to both version-compatibility pages and mention the fixes in the bundled-library line of the module changelog.
- **Release sweep for 3.2.0 / 4.8.0 (done in [.NET docs PR 13](https://github.com/saveenr/VisioAutomation_GitBook_Docs/pull/13) and [PowerShell docs PR 8](https://github.com/saveenr/VisioPowerShellDocs/pull/8)).** The "unreleased" notes for [#206](https://github.com/saveenr/VisioAutomation/issues/206) to [#208](https://github.com/saveenr/VisioAutomation/issues/208), [#219](https://github.com/saveenr/VisioAutomation/issues/219), [#225](https://github.com/saveenr/VisioAutomation/issues/225), [#229](https://github.com/saveenr/VisioAutomation/issues/229) and [#232](https://github.com/saveenr/VisioAutomation/issues/232) became version statements, and both version-compatibility pages have the new rows. At the next release, repeat the sweep for whatever is documented as unreleased then; [#238](https://github.com/saveenr/VisioAutomation/issues/238) asks whether a `next` docs variant would make it unnecessary.
- **Decide whether `Models.Color`, `Models.Text` and `Models.Geometry` need pages** or are internal helpers. Only incidental mentions exist today. This one is not release-gated.
- **Revisit the model pages as the source issues raised by the 2026-10 reorganization are decided.** The reorganized Diagram models section (merged to the docs repo in PR 8) states current behavior that these issues may change, so each page needs a second look when its issue is resolved:
- [#218](https://github.com/saveenr/VisioAutomation/issues/218) Box layout: `models/box-geometry.md` (opening paragraph), the Box rows on `models/introduction.md`, and the Layout models overview. If Box is deprecated, removed or given a renderer, rewrite or remove the page.
- [#225](https://github.com/saveenr/VisioAutomation/issues/225) directed graph XML options (first tier done, unreleased): the XML format page marks each new element and attribute as an unreleased change after NuGet 3.1.0. Turn those notes into version statements at the next release, and revisit the "What's not supported in XML" list as the rest of the issue is done. The page's note on the `template` option was removed when [#229](https://github.com/saveenr/VisioAutomation/issues/229) was fixed.
- [#229](https://github.com/saveenr/VisioAutomation/issues/229) `NewDocumentFromTemplate` / `New-VisioDocument -Template` (fixed, unreleased): the XML format page's `template` note and the Visio PowerShell `new-visiodocument.md` page describe it as a change after NuGet 3.1.0 / module 4.7.3. Turn those notes into version statements at the next release.
- [#232](https://github.com/saveenr/VisioAutomation/issues/232) `Get-VisioPage -ID` / `-Index` (fixed, unreleased): the Visio PowerShell docs page `cmdlets/pages/get-visiopage.md` and the 2026-10 entry on its `documentation-changes.md` describe it as a change after 4.7.3. Turn those notes into version statements when the next module release ships.
- [#219](https://github.com/saveenr/VisioAutomation/issues/219) `DrawOrgChart` resized the wrong page (fixed, unreleased): the org chart page and the `DrawOrgChart` row on `visio-scripting/model.md` describe it as an unreleased change after NuGet 3.1.0. Turn those notes into version statements at the next release, together with the [#206](https://github.com/saveenr/VisioAutomation/issues/206) to [#208](https://github.com/saveenr/VisioAutomation/issues/208) notes above.
- [#225](https://github.com/saveenr/VisioAutomation/issues/225) directed graph XML options (first tier shipped in NuGet 3.2.0; follow-up [#236](https://github.com/saveenr/VisioAutomation/issues/236)): revisit the "What's not supported in XML" list as the rest of the issue is done. The page's note on the `template` option was removed when [#229](https://github.com/saveenr/VisioAutomation/issues/229) was fixed.
- [#220](https://github.com/saveenr/VisioAutomation/issues/220) Form page model: the developer-commands line on `models/forms.md` and the VisioScripting remark on `models/documents.md`. If the model is demoted or made internal, the Document models page and its table of contents entry change.
- [#221](https://github.com/saveenr/VisioAutomation/issues/221) `ContainerLayout` draws plain rectangles: the opening and options paragraphs on `models/layouts-container.md` and the Container row on `models/layouts.md`.
- [#222](https://github.com/saveenr/VisioAutomation/issues/222) `DrawXmlModel` has no undo scope: the sentence on `visio-scripting/model.md` that only the grid and table renderers wrap their writes in an undo scope.
- [#223](https://github.com/saveenr/VisioAutomation/issues/223) `client.Model` inconsistencies: the "Where the output goes" tables on every model page and the `client.Model` reference table, if any signature or naming changes.
- **Why:** The 3.1.0 / 4.7.3 sweep is done, and the data table and XML model pages now describe the fixed behavior. The notes that say "unreleased" will be wrong the moment the next release ships. The model pages also now state, plainly, behavior that is arguably a bug (a page being resized, a page argument that is ignored, a plain rectangle where a container is implied), so they go stale as soon as those are fixed.
- **Why:** The 3.2.0 / 4.8.0 sweep is done, and the pages describe the shipped behavior. The model pages also now state, plainly, behavior that is arguably a bug (a page being resized, a page argument that is ignored, a plain rectangle where a container is implied), so they go stale as soon as those are fixed.
- **How to apply:** When the release is cut (see [`releases.md`](releases.md)), search both gitbooks for "unreleased" and rewrite each note as plain behavior, as the 3.1.0 sweep did. Take the `Color` / `Text` / `Geometry` decision opportunistically when working in those namespaces. For the source issues, make the docs change in the same session as the code fix, and search the .NET gitbook for the issue number (the pages cite them).
- **Cross-refs:** Closed [#200](https://github.com/saveenr/VisioAutomation/issues/200) is the origin; its resolution is in [`COMPLETED.md`](../COMPLETED.md#fill-remaining-visioautomationmodels-documentation-gaps). The source issues are [#218](https://github.com/saveenr/VisioAutomation/issues/218), [#219](https://github.com/saveenr/VisioAutomation/issues/219), [#220](https://github.com/saveenr/VisioAutomation/issues/220), [#221](https://github.com/saveenr/VisioAutomation/issues/221), [#222](https://github.com/saveenr/VisioAutomation/issues/222), [#223](https://github.com/saveenr/VisioAutomation/issues/223).
- **Effort:** S per issue, plus the release-gated sweep.
Expand Down
Loading