From 69ef904b09b80c494d5fde403ee8dfd76dc3d4f3 Mon Sep 17 00:00:00 2001 From: Jan De Dobbeleer Date: Wed, 29 Jul 2026 08:10:16 +0200 Subject: [PATCH] Checkpoint: ac8a4ddb1d7c Entire-Session: b72324bb-e53d-4d21-a232-8886bcf4cc77 Entire-Strategy: manual-commit Entire-Agent: Claude Code Ephemeral-branch: entire/7e39e35-e3b0c4 --- ac/8a4ddb1d7c/0/content_hash.txt | 1 + ac/8a4ddb1d7c/0/full.jsonl | 2595 ++++++++++++++++++++++++++++++ ac/8a4ddb1d7c/0/metadata.json | 104 ++ ac/8a4ddb1d7c/0/prompt.txt | 267 +++ ac/8a4ddb1d7c/0/transcript.jsonl | 851 ++++++++++ ac/8a4ddb1d7c/metadata.json | 26 + 6 files changed, 3844 insertions(+) create mode 100644 ac/8a4ddb1d7c/0/content_hash.txt create mode 100644 ac/8a4ddb1d7c/0/full.jsonl create mode 100644 ac/8a4ddb1d7c/0/metadata.json create mode 100644 ac/8a4ddb1d7c/0/prompt.txt create mode 100644 ac/8a4ddb1d7c/0/transcript.jsonl create mode 100644 ac/8a4ddb1d7c/metadata.json diff --git a/ac/8a4ddb1d7c/0/content_hash.txt b/ac/8a4ddb1d7c/0/content_hash.txt new file mode 100644 index 000000000..864911e20 --- /dev/null +++ b/ac/8a4ddb1d7c/0/content_hash.txt @@ -0,0 +1 @@ +sha256:bacd8b95bd062cf777a2bc576c7804c8b53b97cbb63635180e6e7716edf08d0d \ No newline at end of file diff --git a/ac/8a4ddb1d7c/0/full.jsonl b/ac/8a4ddb1d7c/0/full.jsonl new file mode 100644 index 000000000..46953a56d --- /dev/null +++ b/ac/8a4ddb1d7c/0/full.jsonl @@ -0,0 +1,2595 @@ +{"type":"custom-title","customTitle":"Website redesign proposals","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77"} +{"type":"mode","mode":"normal","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77"} +{"type":"queue-operation","operation":"enqueue","timestamp":"2026-07-28T12:23:06.442Z","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","content":"The standalone segment page is still visually very different from what we have in the rest of the website. The text seems smaller, especially compared to the sidebar. When you select a segment, you're immediately jumped back to the page with the whole sidebar, etc., which does not really work well.\n\nWhat I would do is move that segment's interface without the sidebar, so the search ability and the overview of all the segments are underneath the segments page in the sidebar itself. The sidebar currently has a flat list of all the segments. If we have the query ability there, that would be cool, because then you can use the current sidebar to quickly find the segment that you want instead.\n\nSame for Studio: we should still be able to see the sidebar so people can easily go back to segments, take what they want, copy it back and forth, and continue. That would be the best solution.\n\nAdditionally, for Overview, we can drop that page and just move straight to Getting Started, because Overview does not provide anything else that the sidebar does not already have. Next to that, there are two or a few things which are still annoying:\n\n* If you look at the sidebar, the collapsed sidebar chevron is just way too present on the page. It's too big, and it's not pretty. It's not nicely aligned.\n* Previous and next are also rather big. I don't know if it's because the footer is so large now, but something is visually off. I know we have this in the production side as well, but it just feels weird.\n\n I think we can do a better design for those elements as well.\n\nAnd on the studio page, if you look at a config block, it's nicely styled now, but the text is all the way to the left of the block. It needs a bit of spacing and, ideally, also line numbers so it's easy to follow along or take a screenshot and pinpoint something. It should feel maybe more like a lightweight editor-style window instead of this flat, \"Okay, here's a text box. You can add something.\" We can make the experience, the UX, a lot better there."} +{"type":"queue-operation","operation":"dequeue","timestamp":"2026-07-28T12:23:06.458Z","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77"} +{"parentUuid":null,"logicalParentUuid":"b0aee634-db1d-4eeb-ac12-3dd7056d45fc","isSidechain":false,"type":"system","subtype":"compact_boundary","content":"Conversation compacted","isMeta":false,"timestamp":"2026-07-27T16:11:22.093Z","uuid":"24e2d536-715f-48e5-b238-936d5325282b","level":"info","compactMetadata":{"trigger":"manual","preTokens":803871,"durationMs":155927,"preCompactDiscoveredTools":["SendMessage","WebFetch"],"preservedSegment":{"headUuid":"b0aee634-db1d-4eeb-ac12-3dd7056d45fc","anchorUuid":"397ff2bc-4275-4677-af2c-863e21fe75eb","tailUuid":"b0aee634-db1d-4eeb-ac12-3dd7056d45fc"},"preservedMessages":{"anchorUuid":"397ff2bc-4275-4677-af2c-863e21fe75eb","uuids":["b0aee634-db1d-4eeb-ac12-3dd7056d45fc"],"allUuids":["b0aee634-db1d-4eeb-ac12-3dd7056d45fc"]},"postTokens":12451,"cumulativeDroppedTokens":1071640},"userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"24e2d536-715f-48e5-b238-936d5325282b","isSidechain":false,"promptId":"5f8d2fd1-be4b-4441-88d1-28341517756d","type":"user","message":{"role":"user","content":"This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.\n\nSummary:\n## 1. Primary Request and Intent\n\n**Original (this session):** Implement Proposal B's faceted segment catalog, and fix homepage rhythm/card regressions from Phase 1.\n\n**Then, sequentially authorized phases:**\n- Phase 2.0 — golden-file harness + hermetic `--data` replay\n- Phase 2.1 — collapse three duplicated tokenizers in `terminal/writer.go`\n- Phase 2.2 — runs as an intermediate representation; SVG encoder\n- Gallery migration to inline SVG\n- PNG exporter deletion\n- SVG rendering defect fixes (4 defects the user found by inspecting output)\n\n**FINAL PIVOT (from compact instructions — this supersedes in-flight work):**\n> \"keep the website redesign guidelines, and I want to continue from there. Park all of the changes we did for SVG on a separate branch. Keep it there. Let's start fresh from a brand new main forked branch. What I want to do is understand if we can use the PNG functionality, put that behind an API endpoint, and return PNGs to create a studio in a way.\"\n\nSo: (a) preserve website redesign direction, (b) park all SVG work on a branch, (c) fork fresh from `main`, (d) investigate PNG-behind-an-API-endpoint to power a studio.\n\n## 2. Key Technical Concepts\n\n- **Docusaurus 3.10.2** (ESM config), Infima CSS, plugin `loadContent`/`contentLoaded`/`setGlobalData`, route-scoped data via static import + webpack per-route chunking, `usePluginData`, `useIsBrowser`, SSR via `` (pathname only, **no query string**)\n- **Go**: `src/terminal/writer.go` (prompt hot path, 28 package globals), `src/prompt/engine.go`, `src/config/segment.go`, `src/svg/`, deleted `src/cli/image/`\n- **Build posture**: `src/.goreleaser.yml` sets `CGO_ENABLED=0`, `-extldflags \"-static\"`, cross-compiles 4 OS × 3 arch from ONE job. **CGO is a non-starter.**\n- **Font metrics**: TTF `head` (unitsPerEm @+18), `hhea` (ascender/descender/lineGap @+4), `hmtx` (advances), `cmap` format 4/12, `glyf` bbox for ink width\n- **Azure Static Web Apps** deploy with `app_location: \"/website\"`; `website/api/` holds existing Azure Functions (`website/api/auth/index.js`, `website/api/mcp/index.js`)\n\n## 3. Files and Code Sections\n\n### Website redesign (KEEP — user explicitly wants these guidelines preserved)\n- **`website/src/pages/index.js`** + **`styles.module.css`** — hero left-aligned, `gap: 1.1rem`, `.heroTitle{max-width:20ch}`, `.subtitle{max-width:52ch}`, `.heroImageWrapper{background:#173448;border-radius:9px;overflow:hidden;padding:0;max-width:100%}`, feature `.card` with theme-split fill:\n ```css\n .card { background: var(--ifm-color-emphasis-100); border: 1px solid var(--ifm-color-emphasis-200); border-radius: 9px; padding: 1.15rem 1.25rem; height: 100%; }\n [data-theme='dark'] .card { background: var(--ifm-background-surface-color); }\n ```\n- **`website/src/components/SegmentCatalog/`** + **`website/src/pages/segments.js`** + **`website/plugins/segments/`** — faceted catalog, 117 segments, facets = Group (8) / Setup (4 auth tiers) / Display (Nerd Font, 28). URL state `?group=cli,cloud&auth=oauth&nerdfont=1&q=kube` via `history.replace`.\n- **`website/src/css/custom.css`** — hosts `VictorMono.ttf` which is **`VictorMono NF`**, a full Nerd Font (10,396 PUA codepoints, covers 245/246 theme glyphs; missing only `U+F8C5` in M365Princess):\n ```css\n @font-face { font-family: \"Victor Mono\"; src: url('/fonts/VictorMono.ttf') format(\"truetype\"); font-display: swap; }\n --ifm-font-family-monospace: \"Victor Mono\", \"Symbols Nerd Font Mono\", \"Symbols Nerd Font\", ui-monospace, ...;\n ```\n\n### SVG work (TO BE PARKED ON A BRANCH)\n- `src/svg/svg.go`, `colors.go`, `window.go`, `decorate.go`, `fit.go` + tests\n- `src/terminal/run.go` (Run type, RunMode, CaptureRuns), `src/prompt/runs.go`\n- `src/cli/config_export_svg.go`, `src/cli/config_export_image.go`\n- `website/plugins/themes/`, `website/src/components/ThemeGallery/`, `website/docs/themes.mdx`\n- `tools/svg-png-compare/` (compare.mjs, zip.mjs, package.json)\n\n### The deleted PNG renderer (CRITICAL for the pivot)\n**`src/cli/image/`** was deleted in commit `4bc8a9cc`. Recoverable from git history or the worktree at **`/tmp/omp-png`** (commit `eb421824`). Contents were:\n- `image.go` (920 lines) — `Renderer{AnsiString, Settings, Path}`, `Init(env)`, `SavePNG()`. Re-parses ANSI via `ansiSequenceRegexMap` (20 regexes, `image.go:185-208`), `processAnsiSequence` (`:767-820`), `buildLayout` (`:449-528`), `fitRow`/`wrapRow` (`:539-620`), `cleanContent` (`:374-401`, appends cursor + `\\n\\n` + bold `ohmyposh.dev` watermark)\n- Window chrome at `factor = 2.0`: `margin = factor*48` (96), `padding = factor*24` (48), titleOffset 80, corner radius 12, fill `#151515`, stroke `#404040` width 2, traffic lights r=18 spacing=50 colors `#ED655A`/`#E1C04C`/`#71BD47`, stackblur shadow radius 32 offset (32,32) color `#10101066`\n- `fontHeight() = regular.Metrics().Height >> 6`; `lineSpacing = 1.2`; `height = len(rows) * fontHeight() * lineSpacing`\n- Downloads Hack Nerd Font v3.2.1 from GitHub at runtime (`image.go:236-255`), caches to `cache.Path()/Hack.zip`\n- Dependencies (removed from go.mod in `4bc8a9cc`): `github.com/fogleman/gg v1.3.0`, `github.com/esimov/stackblur-go v1.1.1`, `golang.org/x/image v0.44.0`, `github.com/golang/freetype` (indirect). ~27,700 third-party lines.\n- **Known bugs**: no 256-colour (`38;5;N`) patterns at all; single `style` string so bold+italic can't coexist; drops hyperlink URLs; hand-maintained `doubleWidthRunes` table\n\n### Data/replay infrastructure (KEEP — needed for any endpoint)\n- **`src/cli/config_export_data.go`** — `config export data`, `--sanitize`, `--themes ` merge mode. Records post-`Enabled()` state.\n- **`src/config/data.go`** — `DataVersion`, `RecordedSegment{Enabled, Data}` envelope, `Data.Version`\n- **`src/config/segment.go`** — `restoreData()` at `:202` short-circuits before `writer.Enabled()` at `:242`; `overlayData()` at `:245`; `restoreCache()` at `:206` also calls `overlayData()`\n- **`src/cli/data.go`** — `--data-derive` flag, hand-written-file warning\n- **`src/prompt/testdata/fixtures/prompt.data.json`** — single 23.9 KB sanitized fixture for all 124 themes\n- **`src/prompt/golden_test.go`** — `TestMain` pins `time.Local = time.UTC`, unsets `TERM_PROGRAM`/`WT_SESSION`, temp cache dir; hash manifest + 12 representative goldens\n\n### SSRF constraint (MUST CARRY FORWARD)\n`src/segments/http.go:27` takes an arbitrary URL from config properties. So do `owm`, `nba`, `ipify`, `todoist`, `wakatime`. **Any render endpoint must be data-replay only, with live segment resolution hard-disabled by a compile-time or entrypoint guard, not a config option — plus size/depth/deadline caps and per-IP rate limiting.**\n\n## 4. Errors and Fixes\n\n1. **Nerd Font scan missed `\\uXXXX` escapes** — I claimed 0/117 docs had PUA codepoints and dropped the facet. Real: 112/117 docs, 28/117 segments need one in default `Template()`. Fixed by rescanning with the escape pattern.\n2. **Golden gate had 0% coverage of the gradient path** — `writeBodyGradient`, `writeVisibleRune`, `stampGradient` all 0.0% during a golden run (no bundled theme uses gradients). Proved by mutation: deleting `cellIndex += 4` left goldens green. Fixed by adding characterization tests first (commit `e279f6a8`).\n3. **Proposed cursor design was a 6.1x CPU pessimization** — `next()` too large to inline, destroying the fast path. All shapes were 0 allocs, so my allocation-only gate was blind. Fixed by sharing only `classifyAnchor` after `<`.\n4. **\"ignore ns/op\" was my bad methodology** — 200x benchtime gave 25% spread; 2s gives ±2%. Fixed by re-recording baselines at `-benchtime=2s`.\n5. **`--data` replay not hermetic** — recorder skipped disabled segments (`config_export_data.go:129`). `chips` replayed in 1.22s because `wakatime` made a live HTTP call. Fixed in `b8381b97` (record all segments with enabled flag).\n6. **Sanitizer scrubs were silent no-ops** — matched Go field names against JSON with lowercase tags. **Leaked the user's real email `jan.de.dobbeleer@gmail.com` into 8 fixtures at `segments.az.data.user.name`**, and it rendered into visible prompt output. Fixed by correcting keys AND replacing the field-name backstop with a structural shape-based one.\n7. **Merge rule picked most-common instead of richest** — git came from the 53 themes that don't fetch status, so goldens stopped exercising git status rendering entirely. Fixed to richest-variant.\n8. **`config export image` exited 0 on render failures** — font download failure published an empty themes page with a green build. Fixed in `5a8ee35d` (exit 0 → 154).\n9. **`isHyperlink` never reset** — one unbalanced `` corrupted every subsequent Write for the process lifetime. Fixed in `1e610dff`.\n10. **`countVisibleCells` had no `hyperLinkEnd` case** — `VisibleCells(\"abhiddentail\")` = 6 vs rendered 2. Plus leading-anchor divergence. 72 divergences → 0 (commit `4f658ca1`).\n11. **`Plain` mode leaked hyperlink URLs** — guarding only escape emitters left the URL as 26 visible chars with length 6. Fixed by also returning early in `write()` (commit `beaa7160`).\n12. **My `run.go` doc comments described pre-SGR-7-swap state** — the SVG encoder implemented the comment and painted transparency inverted. Fixed in `6e2377a9`.\n13. **Double-width table premise was false** — measured `hmtx`: every icon advances exactly 1.000 cells in BOTH Hack and Victor Mono. Ink overflows (up to 1.833 cells) by design. Reverted in `9d4fdd6f`.\n14. **Cell width \"fix\" 7/12 = 0.58333 encoded a truncation bug** — PNG's 28px came from `MeasureString >> 6`; Hack's true advance is 0.6021 em. Original 0.6 was accurate to 0.35%; my fix was 3.1% wrong. Reverted to true metrics.\n15. **Line height 1.4 was nearly right (1.397)** — my \"fitted to wrong font\" claim was itself wrong. The real vertical bug was a **missing blank row** (PNG emits two newlines before watermark, we emitted one).\n16. **The comparison harness's aggregate % is blind to horizontal layout** — stayed ~8.7% across three different fixes because it force-fits the SVG into the PNG's dimensions. A per-row ink profile found the real error immediately.\n17. **Repeated cwd drift** — a failed `cd` in an `&&` chain left later commands running elsewhere, producing false results (e.g. \"124 of 124 themes render empty\"). Fixed by always using absolute paths.\n18. **`git stash` while an agent was writing files** — pathspec scoped it so nothing was lost, but careless.\n\n**User feedback that redirected me:**\n- \"review the plans with Opus 5 instead\" (I had tried to use Fable for a plan review)\n- \"Ask me the questions again\" (after rejecting an AskUserQuestion)\n- \"If you look at the generated SVGs... it is not aligned with what we have or had previously\" — four concrete rendering defects\n- \"There is already a renderer for this because the config snippets in the segments documentation, I believe, already use this font\" — correcting my false tofu claim\n- \"We can just change the font, right?\" — leading to the discovery that VictorMono NF is metrics-mono\n- \"use the true metrics\"\n\n## 5. Problem Solving\n\n**Solved:** Faceted segment catalog; homepage rhythm; golden harness over 124 themes; hermetic replay; tokenizer collapse; run stream as IR; SVG encoder; gallery migration (8 MB → 421 KB); PNG exporter deletion (2,046 lines, 918 KB smaller binary); 3 of 4 SVG rendering defects.\n\n**Verification patterns that worked:** mutation testing (break the fix, confirm the test fails); alternating same-session A/B benchmarks; structural JSON-tree walks instead of field-name greps; row-ink profiles instead of aggregate diff percentages; reading TTF tables instead of inferring from rendered output.\n\n**Unresolved at pivot:** ~15–24px top offset in SVG vs PNG (baseline/ascent placement). I was writing `vprofile.py` to separate window chrome from text content when the pivot arrived.\n\n## 6. All User Messages\n\n1. \"Proposal B had some really great design for the segment catalog, and I really want that implemented first. There's the additional feedback that I have regarding the home page as well. If you now look at the flow on a desktop, it doesn't really feel right because it has a large header-like prompt that knows where you are, and then a subtext. It goes from white to small, back to white again. It just overall feels like there's so much white space here that makes it rather difficult or not really that pleasing to read. I don't know what we can do about it, maybe alignment or other things. Same as with the hero cards at the bottom initially, I think in design A it had a card design with rounded corners. That's all gone now, so there's a lot we can still do to improve and put a cherry on top. Here is the original readout for the segments section from the design document we created: [segment catalog readout]\"\n2. \"review the plans with Opus 5 instead\"\n3. \"go ahead with phase 1\" (earlier)\n4. \"Move to the next phase. For rewriting the renderer, you can always use configuration as well, which is located at my home folder, called .posh.omp.jsonc\"\n5. \"continue\"\n6. \"go ahead with phase 2.1\"\n7. \"continue with task B and C when A lands\"\n8. \"continue\"\n9. \"Why did we create data files for every team and not a single data file containing all of the relevant segments that are needed?\"\n10. \"If this is only meant as an intermediate state and we delete all of those files once we're done, then it's okay for me and we don't need to refactor this.\"\n11. \"Are we relying on the recorder to capture the output of the data? If the data currently is static, we can definitely use a single file with all of the relevant segments in there, because then the recorder serves no purpose anymore today. Or what am I missing?\"\n12. \"continue\"\n13. \"the Read Me has a PNG that's not an actual theme. It's the logo.\"\n14. \"delete the PNG exporter\"\n15. \"If you look at the generated SVGs, we can see that the glyphs are taking up a bigger place in height compared to the colored background, which makes a power line segment. For example, if you take the M365Princess, it is not aligned with what we have or had previously. Also, the SVG rendering does not have a terminal-like background, which the images did have, which makes it more clean because we have a fixed length, fixed height... Secondly, the dual code point glyphs, for which we initially had a map in the code base, that issue is still visible here because the glyphs are too large, so they start to overlap... Secondly, if we do an inverted coloring of a powerline glyph, we color the powerline and not the background, which is incorrect because that actively ruins the rendering. This happens, for example, in clean detailed, but also in cloud native azure. You can see this cobalt 2 as well... What I want to do is create a good list of these, pass that to fable, and have fable do the analysis of what we need to do to fix this. Can we have a PNG that was correct and an SVG that's rendered afterwards, and visually these two should be identical.\"\n16. \"Ask me the questions again.\"\n17. \"There is already a renderer for this because the config snippets in the segments documentation, I believe, already use this font, and they do render the icons correctly for JSON at least.\"\n18. \"What does subsetting the font mean?\"\n19. \"But that does mean that the font could be part of the website, right? That doesn't need to be part of the operating system or anywhere else.\"\n20. \"migrate the gallery to inline SVGs\"\n21. \"do that\"\n22. \"use the true metrics\"\n23. \"fix the top offset too\"\n24. **[Compact instruction]** \"keep the website redesign guidelines, and I want to continue from there. Park all of the changes we did for SVG on a separate branch. Keep it there. Let's start fresh from a brand new main forked branch. What I want to do is understand if we can use the PNG functionality, put that behind an API endpoint, and return PNGs to create a studio in a way.\"\n\n**AskUserQuestion answers:** catalog at standalone `/segments`; descriptions generated + hand-tuned; ship 2.0 alone first; \"Call Enabled() then overlay\"; \"Hermetic default + opt-in derive\"; \"Fix the recorder properly\"; \"Keep working, warn + auto-derive\"; runs as the real IR; \"Keep both, full parity\" (cursor + watermark); \"Replace PNG with resvg over the SVG\" then \"Drop PNG entirely after the gallery moves\"; \"Derive from font metrics\".\n\n## 7. Pending Tasks\n\n**Superseded by the pivot** — the SVG top-offset fix is no longer the active task.\n\n**New tasks from the compact instruction:**\n1. Park all SVG work on a separate branch, keep it there\n2. Create a fresh branch forked from `main`\n3. Preserve website redesign guidelines/direction\n4. Investigate: can PNG functionality go behind an API endpoint returning PNGs, to build a studio?\n\n## 8. Current Work\n\nImmediately before the summary request I was fixing the last SVG rendering defect — a ~15–24px vertical top offset between SVG and reference PNG. I had just written `C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\...\\scratchpad\\vprofile.py` to separate window chrome from text content, having realized my earlier `rowprofile.py` counts *any* non-background pixel and therefore measures the window frame rather than the text:\n\n> \"Before delegating — my row profile counts *any* non-background pixel, so it's measuring the window frame, not the text. Let me separate chrome from content.\"\n\nLatest commits on branch `next`:\n```\n9d4fdd6f fix(svg): take the grid from the font, not from the picture\n7303389d fix(svg): give wide glyphs the room they draw in\nd0a42809 feat(svg): draw the prompt in a terminal window\n6e2377a9 fix(svg): paint transparent runs as a cutout\n4bc8a9cc feat(cli)!: export images as SVG only\neb421824 feat(website): render the theme gallery as inline SVG\n368839ff feat(cli): export a config to SVG\n3e131fc7 feat(terminal): record the prompt as styled runs\n37a3e554 refactor(terminal): pass the colour state to the emitters\n3eb73054 refactor(color): keep the colour a segment asked for\ndd9bfc64 refactor(prompt): render the golden themes from one data file\n```\n\nA git worktree exists at `/tmp/omp-png` (commit `eb421824`) holding the last version with the PNG renderer intact.\n\n**However, the user's compact instruction supersedes this work entirely.**\n\n## 9. Optional Next Step\n\nPer the user's explicit instruction: *\"Park all of the changes we did for SVG on a separate branch. Keep it there. Let's start fresh from a brand new main forked branch. What I want to do is understand if we can use the PNG functionality, put that behind an API endpoint, and return PNGs to create a studio in a way.\"*\n\nNext steps, in order:\n1. Push/park the current `next` branch (all SVG work) under a descriptive name, and clean up the `/tmp/omp-png` worktree\n2. Create a fresh branch from `main`\n3. Analyze feasibility of a PNG render API endpoint for a studio — key constraints already established that must carry forward:\n - **SSRF**: `src/segments/http.go:27` and `owm`/`nba`/`ipify`/`todoist`/`wakatime` take arbitrary URLs from config. Any endpoint must be **data-replay only** with live segment resolution hard-disabled by a compile-time or entrypoint guard, not a config option, plus size/depth/deadline caps and per-IP rate limiting.\n - PNG renderer is recoverable from git history or `/tmp/omp-png`; it needs `gg`, `stackblur`, `x/image`, `freetype` restored to `go.mod`\n - It downloads Hack Nerd Font from GitHub at runtime and **exits 0 on failure** (that exit-code bug was fixed in `5a8ee35d`, which is on the parked branch — check whether it needs re-applying)\n - Existing Azure Functions precedent at `website/api/auth/index.js` and `website/api/mcp/index.js`; deploy is Azure Static Web Apps with `app_location: \"/website\"`\n - `CGO_ENABLED=0` static cross-compile posture rules out CGO dependencies\n\nBefore executing, confirm with the user whether the parked branch should be pushed to origin and what the new branch should be named.\n\nIf you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: C:\\Users\\jande\\.claude\\projects\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19.jsonl\nContinue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with \"I'll continue\" or similar. Pick up the last task as if the break never happened."},"isVisibleInTranscriptOnly":true,"isCompactSummary":true,"uuid":"397ff2bc-4275-4677-af2c-863e21fe75eb","timestamp":"2026-07-27T16:11:22.092Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"397ff2bc-4275-4677-af2c-863e21fe75eb","isSidechain":false,"promptId":"5f8d2fd1-be4b-4441-88d1-28341517756d","type":"user","message":{"role":"user","content":"Caveat: The messages below were generated by the user while running local commands. DO NOT respond to these messages or otherwise consider them in your response unless the user explicitly asks you to."},"isMeta":true,"uuid":"4a2def6b-b53d-4543-a44d-b7297e6e99e8","timestamp":"2026-07-27T16:08:46.166Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4a2def6b-b53d-4543-a44d-b7297e6e99e8","isSidechain":false,"promptId":"5f8d2fd1-be4b-4441-88d1-28341517756d","type":"user","message":{"role":"user","content":"/compact\n compact\n keep the website redesign guidelines, and I want to continue from there. Park all of the changes we did for SVG on a separate branch. Keep it there. Let's start fresh from a brand new main forked branch. What I want to do is understand if we can use the PNG functionality, put that behind an API endpoint, and return PNGs to create a studio in a way."},"uuid":"ca6c52d7-6133-4b59-bc97-ec245291976e","timestamp":"2026-07-27T16:08:46.166Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ca6c52d7-6133-4b59-bc97-ec245291976e","isSidechain":false,"promptId":"5f8d2fd1-be4b-4441-88d1-28341517756d","type":"user","message":{"role":"user","content":"Compacted "},"uuid":"9aaf1608-7165-4d94-ba75-54859c1f4f68","timestamp":"2026-07-27T16:11:23.688Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9aaf1608-7165-4d94-ba75-54859c1f4f68","isSidechain":false,"attachment":{"type":"file","filename":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\6c0a282a-886f-458d-a426-93d95104b4a6\\scratchpad\\vprofile.py","content":{"type":"text","file":{"filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\6c0a282a-886f-458d-a426-93d95104b4a6\\scratchpad\\vprofile.py","content":"import sys\n\nsys.path.insert(0, sys.argv[-1])\nfrom rowprofile import read_png # noqa: E402\n\n\ndef analyse(path):\n w, h, bpp, px = read_png(path)\n\n first_opaque = None\n first_colour = None\n last_colour = None\n\n for y in range(h):\n base = y * w * bpp\n opaque = 0\n colour = 0\n for x in range(0, w, 3):\n i = base + x * bpp\n r, g, b = px[i], px[i + 1], px[i + 2]\n a = px[i + 3] if bpp == 4 else 255\n if a < 40:\n continue\n opaque += 1\n mx, mn = max(r, g, b), min(r, g, b)\n # Saturated or bright => prompt content, not the dark window fill.\n if (mx - mn) > 45 or mx > 150:\n colour += 1\n if opaque > w // 20 and first_opaque is None:\n first_opaque = y\n if colour > 12:\n if first_colour is None:\n first_colour = y\n last_colour = y\n\n return {\n \"size\": f\"{w}x{h}\",\n \"window_top\": first_opaque,\n \"text_top\": first_colour,\n \"text_bottom\": last_colour,\n \"text_span\": (last_colour - first_colour) if first_colour is not None else None,\n }\n\n\nfor p in sys.argv[1:-1]:\n name = p.replace(\"\\\\\", \"/\").split(\"/\")[-1]\n r = analyse(p)\n print(\n f\"{name:28} {r['size']:10} window_top={r['window_top']} \"\n f\"text {r['text_top']}..{r['text_bottom']} (span {r['text_span']})\"\n )\n","numLines":52,"startLine":1,"totalLines":52}},"displayPath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\6c0a282a-886f-458d-a426-93d95104b4a6\\scratchpad\\vprofile.py"},"type":"attachment","uuid":"c54a1eb6-bf6d-471a-9127-6a0e23fa7aa9","timestamp":"2026-07-27T16:11:22.125Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c54a1eb6-bf6d-471a-9127-6a0e23fa7aa9","isSidechain":false,"attachment":{"type":"compact_file_reference","filename":"D:\\oh-my-posh\\website\\export_themes.mjs","displayPath":"website\\export_themes.mjs"},"type":"attachment","uuid":"ceaefcc4-26cd-4887-97a1-5f0b5feca351","timestamp":"2026-07-27T16:11:22.435Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ceaefcc4-26cd-4887-97a1-5f0b5feca351","isSidechain":false,"attachment":{"type":"file","filename":"D:\\oh-my-posh\\src\\cli\\config_export_image.go","content":{"type":"text","file":{"filePath":"D:\\oh-my-posh\\src\\cli\\config_export_image.go","content":"package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/prompt\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/shell\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/template\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n\n\t\"github.com/spf13/cobra\"\n)\n\nvar (\n\toutputImage string\n\tsvgFontFamily string\n\timageTerminalWidth int\n\tsvgCellWidth float64\n\tsvgLineHeight float64\n)\n\nvar imageCmd = &cobra.Command{\n\tUse: \"image\",\n\tShort: \"Export your config to an SVG image\",\n\tLong: `Export your config to an SVG image.\n\nThe image renders straight from the prompt's own Run stream, so it stays crisp at any zoom level\nand, unlike a rasterized image, faithfully reproduces every color and style the prompt itself can\nrender.\n\nYou can tweak the output by using additional flags:\n\n- terminal-width: number of columns the image canvas is rendered at; this\n is also the width the prompt is rendered with, so right-aligned blocks\n and rprompts line up with the image the same way they would in a real\n terminal of that width (default 120). Lines that still don't fit either\n collapse their alignment padding or wrap onto the next row\n- font-family: CSS font-family value the svg renders text with; defaults to\n a Nerd Font stack\n- cell-width: horizontal advance of one monospace cell, as a multiple of\n font-size (e.g. 0.6021, not a pixel count); defaults to Hack Nerd Font's\n own advance ratio, matching the default font-family stack. Set this\n explicitly when font-family names a font with a different advance ratio\n- line-height: vertical advance of one row, as a multiple of font-size;\n defaults to Hack Nerd Font's own line height. Set this explicitly\n alongside font-family/cell-width for the same reason\n\nExample usage:\n\n> oh-my-posh config export image --config ~/myconfig.omp.json\n\nExports the config to an image file called myconfig.svg in the current working directory.\n\n> oh-my-posh config export image --config ~/myconfig.omp.json --output ~/mytheme.svg\n\nExports the config to an image file ~/mytheme.svg.`,\n\tArgs: cobra.NoArgs,\n\tRun: func(cmd *cobra.Command, _ []string) {\n\t\tcache.Init(os.Getenv(\"POSH_SHELL\"))\n\n\t\terr := setConfigFlag()\n\t\tif err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t\treturn\n\t\t}\n\n\t\tcfg := config.Load(configFlag)\n\n\t\tflags := &runtime.Flags{\n\t\t\tConfigPath: cfg.Source,\n\t\t\tShell: shell.GENERIC,\n\t\t\tTerminalWidth: imageTerminalWidth,\n\t\t}\n\n\t\tif err := applyDataFile(flags, cmd.Flags().Changed); err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t\treturn\n\t\t}\n\n\t\tenv := &runtime.Terminal{}\n\t\tenv.Init(flags)\n\n\t\ttemplate.Init(env, cfg.Var, cfg.Maps)\n\n\t\tdefer func() {\n\t\t\ttemplate.SaveCache()\n\t\t\tcache.Close()\n\t\t}()\n\n\t\t// set sane defaults for things we don't print\n\t\tcfg.ConsoleTitleTemplate = \"\"\n\t\tcfg.PWD = \"\"\n\t\tcfg.ShellIntegration = false\n\n\t\tterminal.Init(shell.GENERIC)\n\t\tterminal.BackgroundColor = cfg.TerminalBackground.ResolveTemplate()\n\t\tterminal.Colors = cfg.MakeColors(env)\n\t\tterminal.CaptureRuns = true\n\n\t\teng := &prompt.Engine{\n\t\t\tConfig: cfg,\n\t\t\tEnv: env,\n\t\t}\n\n\t\t// Primary renders the prompt and, since CaptureRuns is set above, records\n\t\t// its structured Run stream for exportSVG to read back via CapturedRuns.\n\t\teng.Primary()\n\n\t\tif err := exportSVG(eng, cfg, outputImage, svgFontFamily, imageTerminalWidth, svgCellWidth, svgLineHeight); err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t}\n\t},\n}\n\nfunc init() {\n\timageCmd.Flags().StringVarP(&outputImage, \"output\", \"o\", \"\", \"image file (.svg) to export to\")\n\timageCmd.Flags().StringVar(&svgFontFamily, \"font-family\", \"\", \"CSS font-family for the exported svg\")\n\timageCmd.Flags().StringVar(&dataPath, \"data\", \"\", \"path to a template data file (json/yaml/toml) to render with\")\n\timageCmd.Flags().IntVar(&imageTerminalWidth, \"terminal-width\", 120, \"number of columns to render the prompt and image at\")\n\timageCmd.Flags().Float64Var(&svgCellWidth, \"cell-width\", 0, \"horizontal advance of one cell, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")\n\timageCmd.Flags().Float64Var(&svgLineHeight, \"line-height\", 0, \"vertical advance of one row, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")\n\n\texportCmd.AddCommand(imageCmd)\n}\n\nfunc setConfigFlag() error {\n\tif configFlag != \"\" {\n\t\treturn nil\n\t}\n\n\tconfigPath, OK := cache.Get[string](cache.Session, config.SourceKey)\n\tif !OK {\n\t\treturn fmt.Errorf(\"no config found in session cache, please provide a config using the --config flag\")\n\t}\n\n\tconfigFlag = configPath\n\treturn nil\n}\n","numLines":146,"startLine":1,"totalLines":146}},"displayPath":"src\\cli\\config_export_image.go"},"type":"attachment","uuid":"06c6566b-0515-4a56-989e-b2bbf0fc7c06","timestamp":"2026-07-27T16:11:22.129Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"06c6566b-0515-4a56-989e-b2bbf0fc7c06","isSidechain":false,"attachment":{"type":"file","filename":"C:\\Users\\jande\\.claude\\projects\\D--oh-my-posh\\memory\\omp-font-metrics-are-measurable.md","content":{"type":"text","file":{"filePath":"C:\\Users\\jande\\.claude\\projects\\D--oh-my-posh\\memory\\omp-font-metrics-are-measurable.md","content":"---\nname: omp-font-metrics-are-measurable\ndescription: Read TTF tables directly instead of inferring font geometry from rendered output — three wrong oh-my-posh SVG fixes came from inference\nmetadata: \n node_type: memory\n type: feedback\n originSessionId: 6c0a282a-886f-458d-a426-93d95104b4a6\n modified: 2026-07-27T14:45:42.082Z\n---\n\nWhile making the SVG prompt exporter match the retired PNG renderer, three fixes in a row\nwere wrong because font geometry was inferred from rendered images instead of read from the\nfont files. Each took a full implement-and-measure cycle to disprove.\n\n1. **\"Nerd Font icons are double-width.\"** Ported the old renderer's `doubleWidthRunes` table\n on that premise. Measured `hmtx`: every icon advances **exactly 1.000 cells** in both Hack\n Nerd Font and VictorMono NF. What actually overflows is the glyph *ink* (up to 1.83× the\n cell), by design — terminals let it bleed. `Run.Cells` was right all along.\n2. **\"The cell width is 28/48 = 0.5833 em.\"** Derived from the PNG canvas arithmetic. That 28\n came from `MeasureString(\" \") >> 6`, which **truncates**; Hack's real advance is 0.6021 em.\n The original 0.6 default was accurate to 0.35% and the \"fix\" made it 3.1% wrong.\n3. **\"Line height is 1.4 em.\"** Reverse-engineered from reference images. Real values:\n Hack **1.1641 em**, VictorMono NF **1.4091 em** (hhea ascender − descender + lineGap). The\n constant had been fitted to the wrong font by coincidence — the references were rendered\n in Hack.\n\nReading a TTF for this is ~60 lines of `struct.unpack`: table directory at offset 12,\n`head` for unitsPerEm at +18, `hhea` for ascender/descender/lineGap at +4, `hmtx` for\nadvances, `cmap` format 4/12 for codepoint→glyph. Scripts live in this session's scratchpad.\n\n**Why:** cell width and line height differ by 10% and 21% between two fonts both in active\nuse, so any single hardcoded constant is wrong for one of them. They belong in options,\nsupplied per font, not guessed.\n\n**How to apply:** before compensating for font behaviour, read the font. And note the\naggregate image-diff percentage was **blind** to all three — it sat at ~8.7% across every\nattempt, because the harness force-fits the SVG into the PNG's dimensions. A per-row ink\nprofile found the real (vertical) error immediately. Pick an instrument that can see the\nthing being changed; see [[omp-golden-harness-ambient-inputs]] for the same lesson about\ngreen gates that measure nothing.\n","numLines":41,"startLine":1,"totalLines":41}},"displayPath":"C:\\Users\\jande\\.claude\\projects\\D--oh-my-posh\\memory\\omp-font-metrics-are-measurable.md"},"type":"attachment","uuid":"b251cb12-8c5b-4a0f-8396-3a324206333c","timestamp":"2026-07-27T16:11:22.126Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b251cb12-8c5b-4a0f-8396-3a324206333c","isSidechain":false,"attachment":{"type":"file","filename":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\6c0a282a-886f-458d-a426-93d95104b4a6\\scratchpad\\metrics.py","content":{"type":"text","file":{"filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\6c0a282a-886f-458d-a426-93d95104b4a6\\scratchpad\\metrics.py","content":"import struct\nimport sys\n\n\ndef tables(data):\n n = struct.unpack(\">H\", data[4:6])[0]\n t = {}\n for i in range(n):\n off = 12 + i * 16\n tag = data[off:off + 4].decode(\"latin-1\")\n to, tl = struct.unpack(\">II\", data[off + 8:off + 16])\n t[tag] = (to, tl)\n return t\n\n\nfor path in sys.argv[1:]:\n data = open(path, \"rb\").read()\n t = tables(data)\n\n upem = struct.unpack(\">H\", data[t[\"head\"][0] + 18:t[\"head\"][0] + 20])[0]\n\n h = t[\"hhea\"][0]\n asc, desc, gap = struct.unpack(\">hhh\", data[h + 4:h + 10])\n\n name = path.replace(\"\\\\\", \"/\").split(\"/\")[-1]\n line = asc - desc + gap\n\n print(f\"{name}\")\n print(f\" units/em {upem}\")\n print(f\" hhea ascender {asc:6} ({asc / upem:.4f} em)\")\n print(f\" hhea descender {desc:6} ({desc / upem:.4f} em)\")\n print(f\" hhea lineGap {gap:6} ({gap / upem:.4f} em)\")\n print(f\" line height {line:6} ({line / upem:.4f} em) <- Metrics().Height\")\n\n if \"OS/2\" in t:\n o = t[\"OS/2\"][0]\n ta, td, tg = struct.unpack(\">hhh\", data[o + 68:o + 74])\n print(f\" OS/2 typo asc {ta} desc {td} gap {tg} -> {(ta - td + tg) / upem:.4f} em\")\n wa, wd = struct.unpack(\">HH\", data[o + 74:o + 78])\n print(f\" OS/2 win asc {wa} desc {wd} -> {(wa + wd) / upem:.4f} em\")\n print()\n","numLines":42,"startLine":1,"totalLines":42}},"displayPath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\6c0a282a-886f-458d-a426-93d95104b4a6\\scratchpad\\metrics.py"},"type":"attachment","uuid":"27b08b89-ea79-4205-be00-b2f1ab416d21","timestamp":"2026-07-27T16:11:22.125Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"27b08b89-ea79-4205-be00-b2f1ab416d21","isSidechain":false,"attachment":{"type":"deferred_tools_delta","addedNames":["CronCreate","CronDelete","CronList","DesignSync","EnterPlanMode","EnterWorktree","ExitPlanMode","ExitWorktree","ListMcpResourcesTool","Monitor","NotebookEdit","PushNotification","ReadMcpResourceDirTool","ReadMcpResourceTool","RemoteTrigger","SendMessage","TaskCreate","TaskGet","TaskList","TaskOutput","TaskStop","TaskUpdate","WebFetch","WebSearch","mcp__ccd_directory__request_directory","mcp__ccd_session_mgmt__archive_session","mcp__ccd_session_mgmt__get_session","mcp__ccd_session_mgmt__list_events","mcp__ccd_session_mgmt__list_sessions","mcp__ccd_session_mgmt__search_session_transcripts","mcp__ccd_session_mgmt__send_message","mcp__ccd_session_mgmt__set_session_title","mcp__context7__query-docs","mcp__context7__resolve-library-id","mcp__mcp-registry__list_connectors","mcp__mcp-registry__search_mcp_registry","mcp__mcp-registry__suggest_connectors","mcp__scheduled-tasks__create_scheduled_task","mcp__scheduled-tasks__delete_scheduled_task","mcp__scheduled-tasks__list_scheduled_tasks","mcp__scheduled-tasks__update_scheduled_task"],"addedLines":["CronCreate","CronDelete","CronList","DesignSync","EnterPlanMode","EnterWorktree","ExitPlanMode","ExitWorktree","ListMcpResourcesTool","Monitor","NotebookEdit","PushNotification","ReadMcpResourceDirTool","ReadMcpResourceTool","RemoteTrigger","SendMessage","TaskCreate","TaskGet","TaskList","TaskOutput","TaskStop","TaskUpdate","WebFetch","WebSearch","mcp__ccd_directory__request_directory","mcp__ccd_session_mgmt__archive_session","mcp__ccd_session_mgmt__get_session","mcp__ccd_session_mgmt__list_events","mcp__ccd_session_mgmt__list_sessions","mcp__ccd_session_mgmt__search_session_transcripts","mcp__ccd_session_mgmt__send_message","mcp__ccd_session_mgmt__set_session_title","mcp__context7__query-docs","mcp__context7__resolve-library-id","mcp__mcp-registry__list_connectors","mcp__mcp-registry__search_mcp_registry","mcp__mcp-registry__suggest_connectors","mcp__scheduled-tasks__create_scheduled_task","mcp__scheduled-tasks__delete_scheduled_task","mcp__scheduled-tasks__list_scheduled_tasks","mcp__scheduled-tasks__update_scheduled_task"],"removedNames":[],"readdedNames":[]},"type":"attachment","uuid":"f8c586ec-cf48-4848-9552-ba28eb9e6712","timestamp":"2026-07-27T16:11:22.442Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f8c586ec-cf48-4848-9552-ba28eb9e6712","isSidechain":false,"attachment":{"type":"agent_listing_delta","addedTypes":["caveman:cavecrew-builder","caveman:cavecrew-investigator","caveman:cavecrew-reviewer","claude","claude-code-guide","compound-engineering:design:design-implementation-reviewer","compound-engineering:design:design-iterator","compound-engineering:design:figma-design-sync","compound-engineering:docs:ankane-readme-writer","compound-engineering:research:best-practices-researcher","compound-engineering:research:framework-docs-researcher","compound-engineering:research:git-history-analyzer","compound-engineering:research:issue-intelligence-analyst","compound-engineering:research:learnings-researcher","compound-engineering:research:repo-research-analyst","compound-engineering:review:agent-native-reviewer","compound-engineering:review:architecture-strategist","compound-engineering:review:code-simplicity-reviewer","compound-engineering:review:data-integrity-guardian","compound-engineering:review:data-migration-expert","compound-engineering:review:deployment-verification-agent","compound-engineering:review:dhh-rails-reviewer","compound-engineering:review:julik-frontend-races-reviewer","compound-engineering:review:kieran-python-reviewer","compound-engineering:review:kieran-rails-reviewer","compound-engineering:review:kieran-typescript-reviewer","compound-engineering:review:pattern-recognition-specialist","compound-engineering:review:performance-oracle","compound-engineering:review:schema-drift-detector","compound-engineering:review:security-sentinel","compound-engineering:workflow:bug-reproduction-validator","compound-engineering:workflow:lint","compound-engineering:workflow:pr-comment-resolver","compound-engineering:workflow:spec-flow-analyzer","Explore","general-purpose","Plan","statusline-setup"],"addedLines":["- caveman:cavecrew-builder: Surgical 1-2 file edit. Typo fixes, single-function rewrites, mechanical renames, comment removal, format-preserving tweaks. Hard refuses 3+ file scope. Returns caveman diff receipt. Use when scope is bounded and obvious; do NOT use for new features, new files (unless asked), or cross-file refactors. (Tools: Read, Edit, Write, Grep, Glob)","- caveman:cavecrew-investigator: Read-only code locator. Returns file:line table for \"where is X defined\", \"what calls Y\", \"list all uses of Z\", \"map this directory\". Output is caveman-compressed so the main thread eats ~60% fewer tokens than vanilla Explore. Refuses to suggest fixes. (Tools: Read, Grep, Glob, Bash)","- caveman:cavecrew-reviewer: Diff/branch/file reviewer. One line per finding, severity-tagged, no praise, no scope creep. Output format `path:line: : . .` Use for \"review this PR\", \"review my diff\", \"audit this file\". Skips formatting nits unless they change meaning. (Tools: Read, Grep, Bash)","- claude: Catch-all for any task that doesn't fit a more specific agent. FleetView's default when no agent name is typed. (Tools: *)","- claude-code-guide: Use this agent when the user asks questions (\"Can Claude...\", \"Does Claude...\", \"How do I...\") about: (1) Claude Code (the CLI tool) - features, hooks, slash commands, MCP servers, settings, IDE integrations, keyboard shortcuts; (2) Claude Agent SDK - building custom agents; (3) Claude API (formerly Anthropic API) - Messages API for directly passing messages to Claude, Tool Runner (`client.beta.messages.tool_runner`) for running an agentic loop over your own tools, manual tool-use loops, Managed Agents for server-hosted agents with a managed sandbox, prompt caching, and general Anthropic SDK usage; (4) Claude Tag (Claude in Slack) - what it is, setting it up for a Slack workspace, `/install-slack-app`. **IMPORTANT:** Before spawning a new agent, check if there is already a running or recently completed claude-code-guide agent that you can continue via SendMessage. (Tools: Glob, Grep, Read, WebFetch, WebSearch)","- compound-engineering:design:design-implementation-reviewer: Visually compares live UI implementation against Figma designs and provides detailed feedback on discrepancies. Use after writing or modifying HTML/CSS/React components to verify design fidelity. (Tools: All tools)","- compound-engineering:design:design-iterator: Iteratively refines UI design through N screenshot-analyze-improve cycles. Use PROACTIVELY when design changes aren't coming together after 1-2 attempts, or when user requests iterative refinement. (Tools: All tools)","- compound-engineering:design:figma-design-sync: Detects and fixes visual differences between a web implementation and its Figma design. Use iteratively when syncing implementation to match Figma specs. (Tools: All tools)","- compound-engineering:docs:ankane-readme-writer: Creates or updates README files following Ankane-style template for Ruby gems. Use when writing gem documentation with imperative voice, concise prose, and standard section ordering. (Tools: All tools)","- compound-engineering:research:best-practices-researcher: Researches and synthesizes external best practices, documentation, and examples for any technology or framework. Use when you need industry standards, community conventions, or implementation guidance. (Tools: All tools)","- compound-engineering:research:framework-docs-researcher: Gathers comprehensive documentation and best practices for frameworks, libraries, or dependencies. Use when you need official docs, version-specific constraints, or implementation patterns. (Tools: All tools)","- compound-engineering:research:git-history-analyzer: Performs archaeological analysis of git history to trace code evolution, identify contributors, and understand why code patterns exist. Use when you need historical context for code changes. (Tools: All tools)","- compound-engineering:research:issue-intelligence-analyst: Fetches and analyzes GitHub issues to surface recurring themes, pain patterns, and severity trends. Use when understanding a project's issue landscape, analyzing bug patterns for ideation, or summarizing what users are reporting. (Tools: All tools)","- compound-engineering:research:learnings-researcher: Searches docs/solutions/ for relevant past solutions by frontmatter metadata. Use before implementing features or fixing problems to surface institutional knowledge and prevent repeated mistakes. (Tools: All tools)","- compound-engineering:research:repo-research-analyst: Conducts thorough research on repository structure, documentation, conventions, and implementation patterns. Use when onboarding to a new codebase or understanding project conventions. (Tools: All tools)","- compound-engineering:review:agent-native-reviewer: Reviews code to ensure agent-native parity — any action a user can take, an agent can also take. Use after adding UI features, agent tools, or system prompts. (Tools: All tools)","- compound-engineering:review:architecture-strategist: Analyzes code changes from an architectural perspective for pattern compliance and design integrity. Use when reviewing PRs, adding services, or evaluating structural refactors. (Tools: All tools)","- compound-engineering:review:code-simplicity-reviewer: Final review pass to ensure code is as simple and minimal as possible. Use after implementation is complete to identify YAGNI violations and simplification opportunities. (Tools: All tools)","- compound-engineering:review:data-integrity-guardian: Reviews database migrations, data models, and persistent data code for safety. Use when checking migration safety, data constraints, transaction boundaries, or privacy compliance. (Tools: All tools)","- compound-engineering:review:data-migration-expert: Validates data migrations, backfills, and production data transformations against reality. Use when PRs involve ID mappings, column renames, enum conversions, or schema changes. (Tools: All tools)","- compound-engineering:review:deployment-verification-agent: Produces Go/No-Go deployment checklists with SQL verification queries, rollback procedures, and monitoring plans. Use when PRs touch production data, migrations, or risky data changes. (Tools: All tools)","- compound-engineering:review:dhh-rails-reviewer: Brutally honest Rails code review from DHH's perspective. Use when reviewing Rails code for anti-patterns, JS framework contamination, or violations of Rails conventions. (Tools: All tools)","- compound-engineering:review:julik-frontend-races-reviewer: Reviews JavaScript and Stimulus code for race conditions, timing issues, and DOM lifecycle problems. Use after implementing or modifying frontend controllers or async UI code. (Tools: All tools)","- compound-engineering:review:kieran-python-reviewer: Reviews Python code with an extremely high quality bar for Pythonic patterns, type safety, and maintainability. Use after implementing features, modifying code, or creating new Python modules. (Tools: All tools)","- compound-engineering:review:kieran-rails-reviewer: Reviews Rails code with an extremely high quality bar for conventions, clarity, and maintainability. Use after implementing features, modifying code, or creating new Rails components. (Tools: All tools)","- compound-engineering:review:kieran-typescript-reviewer: Reviews TypeScript code with an extremely high quality bar for type safety, modern patterns, and maintainability. Use after implementing features, modifying code, or creating new TypeScript components. (Tools: All tools)","- compound-engineering:review:pattern-recognition-specialist: Analyzes code for design patterns, anti-patterns, naming conventions, and duplication. Use when checking codebase consistency or verifying new code follows established patterns. (Tools: All tools)","- compound-engineering:review:performance-oracle: Analyzes code for performance bottlenecks, algorithmic complexity, database queries, memory usage, and scalability. Use after implementing features or when performance concerns arise. (Tools: All tools)","- compound-engineering:review:schema-drift-detector: Detects unrelated schema.rb changes in PRs by cross-referencing against included migrations. Use when reviewing PRs with database schema changes. (Tools: All tools)","- compound-engineering:review:security-sentinel: Performs security audits for vulnerabilities, input validation, auth/authz, hardcoded secrets, and OWASP compliance. Use when reviewing code for security issues or before deployment. (Tools: All tools)","- compound-engineering:workflow:bug-reproduction-validator: Systematically reproduces and validates bug reports to confirm whether reported behavior is an actual bug. Use when you receive a bug report or issue that needs verification. (Tools: All tools)","- compound-engineering:workflow:lint: Use this agent when you need to run linting and code quality checks on Ruby and ERB files. Run before pushing to origin. (Tools: All tools)","- compound-engineering:workflow:pr-comment-resolver: Addresses PR review comments by implementing requested changes and reporting resolutions. Use when code review feedback needs to be resolved with code changes. (Tools: All tools)","- compound-engineering:workflow:spec-flow-analyzer: Analyzes specifications and feature descriptions for user flow completeness and gap identification. Use when a spec, plan, or feature description needs flow analysis, edge case discovery, or requirements validation. (Tools: All tools)","- Explore: Read-only search agent for broad fan-out searches — when answering means sweeping many files, directories, or naming conventions and you only need the conclusion, not the file dumps. It reads excerpts rather than whole files, so it locates code; it doesn't review or audit it. Specify search breadth: \"medium\" for moderate exploration, \"very thorough\" for multiple locations and naming conventions. (Tools: All tools except Agent, Artifact, ExitPlanMode, Edit, Write, NotebookEdit)","- general-purpose: General-purpose agent for researching complex questions, searching for code, and executing multi-step tasks. When you are searching for a keyword or file and are not confident that you will find the right match in the first few tries use this agent to perform the search for you. (Tools: *)","- Plan: Software architect agent for designing implementation plans. Use this when you need to plan the implementation strategy for a task. Returns step-by-step plans, identifies critical files, and considers architectural trade-offs. (Tools: All tools except Agent, Artifact, ExitPlanMode, Edit, Write, NotebookEdit)","- statusline-setup: Use this agent to configure the user's Claude Code status line setting. (Tools: Read, Edit)"],"removedTypes":[],"isInitial":true,"showConcurrencyNote":true},"type":"attachment","uuid":"e6c85adf-a4ab-451a-9b9c-40d01b193175","timestamp":"2026-07-27T16:11:22.442Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e6c85adf-a4ab-451a-9b9c-40d01b193175","isSidechain":false,"attachment":{"type":"mcp_instructions_delta","addedNames":["context7"],"addedBlocks":["## context7\nUse this server to fetch current documentation whenever the user asks about a library, framework, SDK, API, CLI tool, or cloud service — even well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot. This includes API syntax, configuration, version migration, library-specific debugging, setup instructions, and CLI tool usage. Use even when you think you know the answer — your training data may not reflect recent changes. Prefer this over web search for library docs.\n\nDo not use for: refactoring, writing scripts from scratch, debugging business logic, code review, or general programming concepts."],"removedNames":[]},"type":"attachment","uuid":"c36f70d8-c14f-4861-88b1-3e8759236ffd","timestamp":"2026-07-27T16:11:22.442Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c36f70d8-c14f-4861-88b1-3e8759236ffd","isSidechain":false,"attachment":{"type":"hook_success","hookName":"SessionStart:compact","toolUseID":"f4fc4c29-f0d7-4382-8955-aae3cda36ff8","hookEvent":"SessionStart","content":"CAVEMAN MODE ACTIVE — level: full\n\nRespond terse like smart caveman. All technical substance stay. Only fluff die.\r\n\r\n## Persistence\r\n\r\nACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure. Off only: \"stop caveman\" / \"normal mode\".\r\n\r\nDefault: **full**. Switch: `/caveman lite|full|ultra`.\r\n\r\n## Rules\r\n\r\nDrop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course/happy to), hedging. Fragments OK. Short synonyms (big not extensive, fix not \"implement a solution for\"). No tool-call narration, no decorative tables/emoji, no dumping long raw error logs unless asked — quote shortest decisive line. Standard well-known tech acronyms OK (DB/API/HTTP); never invent new abbreviations (cfg/impl/req/res/fn) — tokenizer split them same as full word: zero token saved, reader still decode. Full word cheaper AND clearer. No causal arrows (→) either — own token, save nothing. Technical terms exact. Code blocks unchanged. Errors quoted exact.\r\n\r\nPreserve user's dominant language. User write Portuguese → reply Portuguese caveman. User write Spanish → reply Spanish caveman. Compress the style, not the language. No forced English openings or status phrases. ALWAYS keep technical terms, code, API names, CLI commands, commit-type keywords (feat/fix/...), and exact error strings verbatim — unless user explicitly ask for translation.\r\n\r\nNo self-reference. Never name or announce the style. No \"caveman mode on\", \"me caveman think\", no third-person caveman tags. Output caveman-only — never normal answer plus \"Caveman:\" recap. Exception: user explicitly ask what the mode is.\r\n\r\nPattern: `[thing] [action] [reason]. [next step].`\r\n\r\nNot: \"Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by...\"\r\nYes: \"Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:\"\r\n\r\n## Intensity\r\n\r\n| Level | What change |\r\n|-------|------------|\r\n| **full** | Drop articles, fragments OK, short synonyms. Classic caveman. No tool-call narration, no decorative tables/emoji, no long raw error-log dumps unless asked. Standard acronyms OK; no invented abbreviations |\r\n\r\nExample — \"Why React component re-render?\"\r\n- full: \"New object ref each render. Inline object prop = new ref = re-render. Wrap in `useMemo`.\"\r\n\r\nExample — \"Explain database connection pooling.\"\r\n- full: \"Pool reuse open DB connections. No new connection per request. Skip handshake overhead.\"\r\n\r\n## Auto-Clarity\r\n\r\nDrop caveman when:\r\n- Security warnings\r\n- Irreversible action confirmations\r\n- Multi-step sequences where fragment order or omitted conjunctions risk misread\r\n- Compression itself creates technical ambiguity (e.g., `\"migrate table drop column backup first\"` — order unclear without articles/conjunctions)\r\n- User asks to clarify or repeats question\r\n\r\nResume caveman after clear part done.\r\n\r\nExample — destructive op:\r\n> **Warning:** This will permanently delete all rows in the `users` table and cannot be undone.\r\n> ```sql\r\n> DROP TABLE users;\r\n> ```\r\n> Caveman resume. Verify backup exist first.\r\n\r\n## Boundaries\r\n\r\nCode/commits/PRs: write normal. \"stop caveman\" or \"normal mode\": revert. Level persist until changed or session end.\n\nSTATUSLINE SETUP NEEDED: The caveman plugin includes a statusline badge showing active mode (e.g. [CAVEMAN], [CAVEMAN:ULTRA]). It is not configured yet. To enable, add this to C:\\Users\\jande\\.claude\\settings.json: \"statusLine\": { \"type\": \"command\", \"command\": \"powershell -ExecutionPolicy Bypass -File \\\"C:\\\\Users\\\\jande\\\\.claude\\\\plugins\\\\cache\\\\caveman\\\\caveman\\\\0d95a81d35a9\\\\src\\\\hooks\\\\caveman-statusline.ps1\\\"\" } Proactively offer to set this up for the user on first interaction.","stdout":"CAVEMAN MODE ACTIVE — level: full\n\nRespond terse like smart caveman. All technical substance stay. Only fluff die.\r\n\r\n## Persistence\r\n\r\nACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure. Off only: \"stop caveman\" / \"normal mode\".\r\n\r\nDefault: **full**. Switch: `/caveman lite|full|ultra`.\r\n\r\n## Rules\r\n\r\nDrop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course/happy to), hedging. Fragments OK. Short synonyms (big not extensive, fix not \"implement a solution for\"). No tool-call narration, no decorative tables/emoji, no dumping long raw error logs unless asked — quote shortest decisive line. Standard well-known tech acronyms OK (DB/API/HTTP); never invent new abbreviations (cfg/impl/req/res/fn) — tokenizer split them same as full word: zero token saved, reader still decode. Full word cheaper AND clearer. No causal arrows (→) either — own token, save nothing. Technical terms exact. Code blocks unchanged. Errors quoted exact.\r\n\r\nPreserve user's dominant language. User write Portuguese → reply Portuguese caveman. User write Spanish → reply Spanish caveman. Compress the style, not the language. No forced English openings or status phrases. ALWAYS keep technical terms, code, API names, CLI commands, commit-type keywords (feat/fix/...), and exact error strings verbatim — unless user explicitly ask for translation.\r\n\r\nNo self-reference. Never name or announce the style. No \"caveman mode on\", \"me caveman think\", no third-person caveman tags. Output caveman-only — never normal answer plus \"Caveman:\" recap. Exception: user explicitly ask what the mode is.\r\n\r\nPattern: `[thing] [action] [reason]. [next step].`\r\n\r\nNot: \"Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by...\"\r\nYes: \"Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:\"\r\n\r\n## Intensity\r\n\r\n| Level | What change |\r\n|-------|------------|\r\n| **full** | Drop articles, fragments OK, short synonyms. Classic caveman. No tool-call narration, no decorative tables/emoji, no long raw error-log dumps unless asked. Standard acronyms OK; no invented abbreviations |\r\n\r\nExample — \"Why React component re-render?\"\r\n- full: \"New object ref each render. Inline object prop = new ref = re-render. Wrap in `useMemo`.\"\r\n\r\nExample — \"Explain database connection pooling.\"\r\n- full: \"Pool reuse open DB connections. No new connection per request. Skip handshake overhead.\"\r\n\r\n## Auto-Clarity\r\n\r\nDrop caveman when:\r\n- Security warnings\r\n- Irreversible action confirmations\r\n- Multi-step sequences where fragment order or omitted conjunctions risk misread\r\n- Compression itself creates technical ambiguity (e.g., `\"migrate table drop column backup first\"` — order unclear without articles/conjunctions)\r\n- User asks to clarify or repeats question\r\n\r\nResume caveman after clear part done.\r\n\r\nExample — destructive op:\r\n> **Warning:** This will permanently delete all rows in the `users` table and cannot be undone.\r\n> ```sql\r\n> DROP TABLE users;\r\n> ```\r\n> Caveman resume. Verify backup exist first.\r\n\r\n## Boundaries\r\n\r\nCode/commits/PRs: write normal. \"stop caveman\" or \"normal mode\": revert. Level persist until changed or session end.\n\nSTATUSLINE SETUP NEEDED: The caveman plugin includes a statusline badge showing active mode (e.g. [CAVEMAN], [CAVEMAN:ULTRA]). It is not configured yet. To enable, add this to C:\\Users\\jande\\.claude\\settings.json: \"statusLine\": { \"type\": \"command\", \"command\": \"powershell -ExecutionPolicy Bypass -File \\\"C:\\\\Users\\\\jande\\\\.claude\\\\plugins\\\\cache\\\\caveman\\\\caveman\\\\0d95a81d35a9\\\\src\\\\hooks\\\\caveman-statusline.ps1\\\"\" } Proactively offer to set this up for the user on first interaction.","stderr":"","exitCode":0,"command":"Loading caveman mode...","durationMs":205},"type":"attachment","uuid":"ea1ea122-a6d1-4263-8bcd-7d034686176f","timestamp":"2026-07-27T16:11:22.652Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ea1ea122-a6d1-4263-8bcd-7d034686176f","isSidechain":false,"promptId":"9720599f-fc68-40f3-a23c-002260c76b0f","type":"user","message":{"role":"user","content":[{"type":"text","text":"Continue from where you left off."}]},"isMeta":true,"uuid":"f00bd9b0-cd8a-43c2-b040-593913b74b1e","timestamp":"2026-07-27T17:07:58.674Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f00bd9b0-cd8a-43c2-b040-593913b74b1e","isSidechain":false,"type":"assistant","uuid":"23fdd1c4-2f66-45b8-b139-16f063091b76","timestamp":"2026-07-27T17:07:58.674Z","message":{"id":"8df8d6b9-05bc-444c-b56e-1c77e6a42e12","container":null,"model":"","role":"assistant","stop_details":null,"stop_reason":"stop_sequence","stop_sequence":"","type":"message","usage":{"input_tokens":0,"output_tokens":0,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":null,"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"inference_geo":null,"iterations":null,"speed":null},"content":[{"type":"text","text":"No response requested."}],"context_management":null},"isApiErrorMessage":false,"userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"23fdd1c4-2f66-45b8-b139-16f063091b76","isSidechain":false,"promptId":"9720599f-fc68-40f3-a23c-002260c76b0f","type":"user","message":{"role":"user","content":"can we now rework the SVG to still create a PNG instead? We had the original functionality and want to reinstate that, the way we write the SVG. Architecturally, we keep it like we redesigned the SVG writer, but we write the PNG instead using the functionality we had before. Run me through it so we make sure we understand each other."},"uuid":"f3f61513-860e-425f-b347-50fe37b4d114","timestamp":"2026-07-27T17:08:43.788Z","permissionMode":"auto","origin":{"kind":"human"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f3f61513-860e-425f-b347-50fe37b4d114","isSidechain":false,"attachment":{"type":"skill_listing","content":"- context7-mcp: This skill should be used when the user asks about libraries, frameworks, API references, or needs code examples. Activates for setup questions, code generation involving libraries, or mentions of specific frameworks like React, Vue, Next.js, Prisma, Supabase, etc.\n- ast-grep: Guide for writing ast-grep rules to perform structural code search and analysis. Use when users need to search codebases using Abstract Syntax Tree (AST) patterns, find specific code structures, or perform complex code queries that go beyond simple text search. This skill should be used when users ask to search for code patterns, find specific language constructs, or locate code with particular structural characteristics.\n- code-changes: Orchestration workflow for any task that ends in code changes: issue analysis, pull request review, feature implementation, bug fixes, refactors, or fleshing out an idea. MUST be invoked at the start of such a task, before reading or writing any code. Defines how to analyze first, gate on user approval, plan, pick the right executor model, delegate and supervise subagents, verify, and deliver.\n- conventional-commit: Workflow for generating conventional commit messages following the Conventional Commits specification. MUST be invoked every time a commit is created. Guides construction of standardized commit messages with correct type, scope, description, body, and footer.\n- golang: Go coding standards and conventions for this project. Apply when writing, reviewing, or refactoring any Go source file.\n- markdown: Markdown formatting rules for this project. Apply when writing or editing any .md or .mdx file, including documentation and website content.\n- powershell: PowerShell cmdlet conventions for this project. Apply when writing or reviewing any .ps1 or module file.\n- writing-clearly-and-concisely: Apply whenever writing content a human will read — emails, documents, reports, documentation, messages, UI copy, commit messages, explanations, or any other prose. Applies Strunk's timeless rules for clearer, stronger, more professional writing.\n- caveman:caveman-commit: Generate terse caveman-style commit message\n- caveman:caveman-init: Drop the always-on caveman activation rule into the current repo for every IDE agent\n- caveman:caveman-review: One-line code review comments\n- caveman:caveman-stats: Real session token usage + lifetime savings + USD. Tweetable line via --share.\n- caveman:caveman: Switch caveman intensity level (lite/full/ultra/wenyan)\n- caveman:cavecrew: Decision guide for delegating to caveman-style subagents. Tells the main thread WHEN to spawn `cavecrew-investigator` (locate code), `cavecrew-builder` (1-2 file edit), or `cavecrew-reviewer` (diff review) instead of doing the work inline or using vanilla `Explore`. Subagent output is caveman-compressed so the tool-result injected back into main context is ~60% smaller — main context lasts longer across long sessions. Trigger: \"delegate to subagent\", \"use cavecrew\", \"spawn investigator/builder/reviewer\", \"save context\", \"compressed agent output\".\n- caveman:caveman-compress: Compress natural language memory files (CLAUDE.md, todos, preferences) into caveman format to save input tokens. Preserves all technical substance, code, URLs, and structure. Compressed version overwrites the original file. Human-readable backup saved as FILE.original.md. Trigger: /caveman-compress FILEPATH or \"compress memory file\"\n- caveman:caveman-help: Quick-reference card for all caveman modes, skills, and commands. One-shot display, not a persistent mode. Trigger: /caveman-help, \"caveman help\", \"what caveman commands\", \"how do I use caveman\".\n- compound-engineering:agent-browser: Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to \"open a website\", \"fill out a form\", \"click a button\", \"take a screenshot\", \"scrape data from a page\", \"test this web app\", \"login to a site\", \"automate browser actions\", or any task requiring programmatic web interaction.\n- compound-engineering:agent-native-architecture: Build applications where agents are first-class citizens. Use this skill when designing autonomous agents, creating MCP tools, implementing self-modifying systems, or building apps where features are outcomes achieved by agents operating in a loop.\n- compound-engineering:andrew-kane-gem-writer: This skill should be used when writing Ruby gems following Andrew Kane's proven patterns and philosophy. It applies when creating new Ruby gems, refactoring existing gems, designing gem APIs, or when clean, minimal, production-ready Ruby library code is needed. Triggers on requests like \"create a gem\", \"write a Ruby library\", \"design a gem API\", or mentions of Andrew Kane's style.\n- compound-engineering:ce-brainstorm: Explore requirements and approaches through collaborative dialogue before writing a right-sized requirements document and planning implementation. Use for feature ideas, problem framing, when the user says 'let's brainstorm', or when they want to think through options before deciding what to build. Also use when a user describes a vague or ambitious feature request, asks 'what should we build', 'help me think through X', presents a problem with multiple valid solutions, or seems unsure about scope or direction — even if they don't explicitly ask to brainstorm.\n- compound-engineering:ce-compound: Document a recently solved problem to compound your team's knowledge\n- compound-engineering:ce-ideate: Generate and critically evaluate grounded improvement ideas for the current project. Use when asking what to improve, requesting idea generation, exploring surprising improvements, or wanting the AI to proactively suggest strong project directions before brainstorming one in depth. Triggers on phrases like 'what should I improve', 'give me ideas', 'ideate on this project', 'surprise me with improvements', 'what would you change', or any request for AI-generated project improvement suggestions rather than refining the user's own idea.\n- compound-engineering:ce-plan: Transform feature descriptions into well-structured project plans following conventions\n- compound-engineering:ce-review: Perform exhaustive code reviews using multi-agent analysis, ultra-thinking, and worktrees\n- compound-engineering:ce-work: Execute work plans efficiently while maintaining quality and finishing features\n- compound-engineering:claude-permissions-optimizer: Optimize Claude Code permissions by finding safe Bash commands from session history and auto-applying them to settings.json. Can run from any coding agent but targets Claude Code specifically. Use when experiencing permission fatigue, too many permission prompts, wanting to optimize permissions, or needing to set up allowlists. Triggers on \"optimize permissions\", \"reduce permission prompts\", \"allowlist commands\", \"too many permission prompts\", \"permission fatigue\", \"permission setup\", or complaints about clicking approve too often.\n- compound-engineering:deepen-plan: Enhance a plan with parallel research agents for each section to add depth, best practices, and implementation details\n- compound-engineering:dhh-rails-style: This skill should be used when writing Ruby and Rails code in DHH's distinctive 37signals style. It applies when writing Ruby code, Rails applications, creating models, controllers, or any Ruby file. Triggers on Ruby/Rails code generation, refactoring requests, code review, or when the user mentions DHH, 37signals, Basecamp, HEY, or Campfire style. Embodies REST purity, fat models, thin controllers, Current attributes, Hotwire patterns, and the \"clarity over cleverness\" philosophy.\n- compound-engineering:document-review: This skill should be used to refine requirements or plan documents before proceeding to the next workflow step. It applies when a requirements document or plan document exists and the user wants to improve it.\n- compound-engineering:dspy-ruby: Build type-safe LLM applications with DSPy.rb — Ruby's programmatic prompt framework with signatures, modules, agents, and optimization. Use when implementing predictable AI features, creating LLM signatures and modules, configuring language model providers, building agent systems with tools, optimizing prompts, or testing LLM-powered functionality in Ruby applications.\n- compound-engineering:every-style-editor: This skill should be used when reviewing or editing copy to ensure adherence to Every's style guide. It provides a systematic line-by-line review process for grammar, punctuation, mechanics, and style guide compliance.\n- compound-engineering:feature-video: Record a video walkthrough of a feature and add it to the PR description. Use when a PR needs a visual demo for reviewers, when the user asks to demo a feature, create a PR video, record a walkthrough, show what changed visually, or add a video to a pull request.\n- compound-engineering:gemini-imagegen: This skill should be used when generating and editing images using the Gemini API (Nano Banana Pro). It applies when creating images from text prompts, editing existing images, applying style transfers, generating logos with text, creating stickers, product mockups, or any image generation/manipulation task. Supports text-to-image, image editing, multi-turn refinement, and composition from multiple reference images.\n- compound-engineering:git-worktree: This skill manages Git worktrees for isolated parallel development. It handles creating, listing, switching, and cleaning up worktrees with a simple interactive interface, following KISS principles.\n- compound-engineering:proof: Create, edit, comment on, and share markdown documents via Proof's web API and local bridge. Use when asked to \"proof\", \"share a doc\", \"create a proof doc\", \"comment on a document\", \"suggest edits\", \"review in proof\", or when given a proofeditor.ai URL.\n- compound-engineering:rclone: Upload, sync, and manage files across cloud storage providers using rclone. Use when uploading files (images, videos, documents) to S3, Cloudflare R2, Backblaze B2, Google Drive, Dropbox, or any S3-compatible storage. Triggers on \"upload to S3\", \"sync to cloud\", \"rclone\", \"backup files\", \"upload video/image to bucket\", or requests to transfer files to remote storage.\n- compound-engineering:reproduce-bug: Systematically reproduce and investigate a bug from a GitHub issue. Use when the user provides a GitHub issue number or URL for a bug they want reproduced or investigated.\n- compound-engineering:resolve-todo-parallel: Resolve all pending CLI todos using parallel processing, compound on lessons learned, then clean up completed todos.\n- compound-engineering:test-browser: Run browser tests on pages affected by current PR or branch\n- anthropic-skills:consolidate-memory: Reflective pass over your memory files — merge duplicates, fix stale facts, prune the index.\n- anthropic-skills:docx: Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', '.dotx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx or .dotx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.\n- anthropic-skills:frontend-slides: Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to build a presentation, convert a PPT/PPTX to web, or create slides for a talk/pitch. Helps non-designers discover their aesthetic through visual exploration rather than abstract choices.\n- anthropic-skills:itdepends-offering: Use this skill whenever Jan (IT depends) needs to create a professional offering, proposal, quote, or commercial document as a Word (.docx) file. This skill extends the base docx skill with IT depends brand styling: the company logo, clean sans-serif typography, minimal layout with light gray label rows, and structured sections (scope, pricing, timeline, terms). Trigger on phrases like \"create an offering\", \"make a proposal\", \"write a quote document\", \"draft a commercial proposal\", or \"create a Word offering for [client]\". Always use this skill (not the generic docx skill) when the output is an IT depends branded offering or proposal.\n- anthropic-skills:morning: Render the user's morning brief as a styled HTML artifact, or set it up as a recurring weekday task. Use only when the user explicitly asks to run, see, or set up their morning brief, or if they invoke /morning by name. A question about their day, schedule, or calendar is not by itself a request for the brief; answer it directly instead.\n- anthropic-skills:pdf: Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.\n- anthropic-skills:pptx: Use this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx or .potx filename, regardless of what they plan to do with the content afterward. If a .pptx or .potx file needs to be opened, created, or touched, use this skill.\n- anthropic-skills:proposal-iteration-agent: Use this skill to start an interactive proposal development session. The agent asks intelligent, context-aware questions to gather all necessary information for crafting a professional proposal: client details, scope of work, pricing strategy, timeline, deliverables, and terms. The agent iterates with you, refines content, and maintains a structured proposal framework that can be exported to the itdepends-offering skill once finalized. Trigger on: \"start a proposal\", \"help me build a proposal\", \"iterate on proposal content\", \"gather proposal requirements\", or \"let's develop a proposal together\".\n- anthropic-skills:schedule: Create or update a scheduled task that runs automatically. Use when the user says things like \"every day\", \"each morning\", \"remind me in an hour\", \"run this at noon\", or wants to reschedule an existing task.\n- anthropic-skills:setup-cowork: Guided Cowork setup — install role-matched plugins, connect your tools, try a skill.\n- anthropic-skills:skill-creator: Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.\n- anthropic-skills:spilberg-docs-style: Use this style guide whenever creating a Word document (.docx) for Spilberg — reports, technical documentation, assessments, proposals, or any client-facing deliverable that should look like it came from Spilberg (the IT Development & Testing staffing & consulting brand, part of Vibe Group). Trigger on phrases like \"Spilberg report\", \"Spilberg document\", \"make this look like Spilberg\", \"branded for Spilberg\", or whenever the user is producing a deliverable to share with Spilberg's clients or candidates. This skill defines Spilberg's brand colors, typography, logo usage, and full-page layout (including the signature green footer wordmark) so every document is instantly identifiable as Spilberg's own. Always combine with the base docx skill for the underlying docx-js mechanics.\n- anthropic-skills:vibe-group-docs-style: Use this style guide when the user asks to generate a document for Vibe Group.\n- anthropic-skills:writing-clearly-and-concisely: Apply whenever writing content a human will read — emails, documents, reports, documentation, messages, UI copy, commit messages, explanations, or any other prose. Applies Strunk's timeless rules for clearer, stronger, more professional writing.\n- anthropic-skills:xebia-docs-style: Use this style guide whenever creating a Word document (.docx) for Xebia — reports, technical assessments, proposals, or any client-facing deliverable that should look like it came from Xebia (the global, AI-first consulting, software engineering, and training company). Trigger on phrases like \"Xebia report\", \"Xebia document\", \"make this look like Xebia\", \"branded for Xebia\", or whenever the user is producing a deliverable to share with Xebia's clients, partners, or candidates. This skill defines Xebia's brand colors (deep velvet purple/magenta, plus the signature multi-color gradient), typography, logo usage, and full-page layout (including the footer wordmark and the gradient hero rule) so every document is instantly identifiable as Xebia's own. Always combine with the base docx skill for the underlying docx-js mechanics.\n- anthropic-skills:xlsx: Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .xltx, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like \"the xlsx in my downloads\") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.\n- dataviz: Use this skill whenever you are about to create ANY chart, graph, plot, dashboard, or data visualization, in ANY output medium — an HTML or React artifact, inline SVG, plotting code in any library (matplotlib, plotly, d3, Recharts, …), an image/PNG you will render and upload, or a chart shared into Slack. Read it BEFORE writing the first line of chart code, choosing chart colors, building a stat tile / meter / KPI row, or laying out a dashboard. Produces visualizations that read as one system — elegant, accessible, consistent in light and dark — using a brand-neutral placeholder palette you swap for your own. Teaches a design-system-agnostic method: a form heuristic, a color formula with a runnable validator, mark specs, and interaction rules. A validated default palette is documented in `references/palette.md` — swap that file's values for your brand's. Triggers on: \"chart\", \"graph\", \"plot\", \"data viz\", \"visualization\", \"dashboard\", \"analytics\", \"visualize data\", \"categorical colors\", \"sequential / diverging palette\", \"stat tile\", \"sparkline\", \"heatmap\", \"legend\", \"axis\", \"tooltip\", \"chart colors\", \"color by series\".\n- artifact-design: Design guidance and fundamentals for Artifacts.\n- artifact-capabilities: Runtime capabilities a published Artifact page can be granted — behavior static HTML cannot provide on its own, such as the page reading live or connected data, keeping state shared across viewers, or updating and republishing itself. Serves this user's live capability roster and the typed call definitions. Load it whenever the user asks for an artifact needing any such runtime behavior.\n- update-config: Use this skill to configure the Claude Code harness via settings.json. Automated behaviors (\"from now on when X\", \"each time X\", \"whenever X\", \"before/after X\") require hooks configured in settings.json - the harness executes these, not Claude, so memory/preferences cannot fulfill them. Also use for: permissions (\"allow X\", \"add permission\", \"move permission to\"), env vars (\"set X=Y\"), hook troubleshooting, or any changes to settings.json/settings.local.json files. Examples: \"allow npm commands\", \"add bq permission to global settings\", \"move permission to user settings\", \"set DEBUG=true\", \"when claude stops show X\". For simple settings like theme/model, suggest the /config command.\n- keybindings-help: Use when the user wants to customize keyboard shortcuts, rebind keys, add chord bindings, or modify ~/.claude/keybindings.json. Examples: \"rebind ctrl+s\", \"add a chord shortcut\", \"change the submit key\", \"customize keybindings\".\n- simplify: Review the changed code for reuse, simplification, efficiency, and altitude cleanups, then apply the fixes. Quality only — it does not hunt for bugs; use /code-review for that.\n- fewer-permission-prompts: Scan your transcripts for common read-only Bash and MCP tool calls, then add a prioritized allowlist to project .claude/settings.json to reduce permission prompts.\n- loop: Run a prompt or slash command on a recurring interval (e.g. /loop 5m /foo). Omit the interval to let the model self-pace. - When the user wants to set up a recurring task, poll for status, or run something repeatedly on an interval (e.g. \"check the deploy every 5 minutes\", \"keep running /babysit-prs\"). Do NOT invoke for one-off tasks.\n- schedule: Create, update, list, or run scheduled cloud agents (routines) that execute on a cron schedule. - When the user wants to schedule a recurring cloud agent, set up automated tasks, create a cron job for Claude Code, or manage their scheduled agents/routines. Also use when the user wants a one-time scheduled run (\"run this once at 3pm\", \"remind me to check X tomorrow\").\n- claude-api: Reference for the Claude API / Anthropic SDK — model ids, pricing, params, streaming, tool use, MCP, agents, caching, token counting, model migration.\nTRIGGER — read BEFORE opening the target file; don't skip because it \"looks like a one-liner\" — whenever: the prompt names Claude/Anthropic in any form (Claude, Anthropic, Fable, Opus, Sonnet, Haiku, `anthropic`, `@anthropic-ai`, `claude-*`, `us.anthropic.*`, `[1m]`); the user asks about an LLM (pricing/model choice/limits/caching) — never answer from memory; OR the task is LLM-shaped with provider unstated (agent/MCP/tool-definition/multi-agent/RAG/LLM-judge/computer-use; generate/summarize/extract/classify/rewrite/converse over NL; debugging refusals/cutoffs/streaming/tool-calls/tokens).\nSKIP only when another provider is being worked on (overrides all triggers): OpenAI/GPT/Gemini/Llama/Mistral/Cohere/Ollama named in the query; OR `grep -rE 'openai|langchain_openai|google.generativeai|genai|mistralai|cohere|ollama'` over the project hits (run this grep FIRST if no provider named — don't Read the file).\n- run: Launch and drive this project's app to see a change working. Use when asked to run, start, or screenshot the app, or to confirm a change works in the real app (not just tests). First looks for a project skill that already covers launching the app; otherwise falls back to built-in patterns per project type (CLI, server, TUI, Electron, browser-driven, library).\n- init: Initialize a new CLAUDE.md file with codebase documentation\n- review: Review a GitHub pull request; for your working diff use /code-review\n- security-review: Complete a security review of the pending changes on the current branch","skillCount":69,"isInitial":true,"names":["context7-mcp","ast-grep","code-changes","conventional-commit","golang","markdown","powershell","writing-clearly-and-concisely","caveman:caveman-commit","caveman:caveman-init","caveman:caveman-review","caveman:caveman-stats","caveman:caveman","caveman:cavecrew","caveman:caveman-compress","caveman:caveman-help","compound-engineering:agent-browser","compound-engineering:agent-native-architecture","compound-engineering:andrew-kane-gem-writer","compound-engineering:ce-brainstorm","compound-engineering:ce-compound","compound-engineering:ce-ideate","compound-engineering:ce-plan","compound-engineering:ce-review","compound-engineering:ce-work","compound-engineering:claude-permissions-optimizer","compound-engineering:deepen-plan","compound-engineering:dhh-rails-style","compound-engineering:document-review","compound-engineering:dspy-ruby","compound-engineering:every-style-editor","compound-engineering:feature-video","compound-engineering:gemini-imagegen","compound-engineering:git-worktree","compound-engineering:proof","compound-engineering:rclone","compound-engineering:reproduce-bug","compound-engineering:resolve-todo-parallel","compound-engineering:test-browser","anthropic-skills:consolidate-memory","anthropic-skills:docx","anthropic-skills:frontend-slides","anthropic-skills:itdepends-offering","anthropic-skills:morning","anthropic-skills:pdf","anthropic-skills:pptx","anthropic-skills:proposal-iteration-agent","anthropic-skills:schedule","anthropic-skills:setup-cowork","anthropic-skills:skill-creator","anthropic-skills:spilberg-docs-style","anthropic-skills:vibe-group-docs-style","anthropic-skills:writing-clearly-and-concisely","anthropic-skills:xebia-docs-style","anthropic-skills:xlsx","dataviz","artifact-design","artifact-capabilities","update-config","keybindings-help","simplify","fewer-permission-prompts","loop","schedule","claude-api","run","init","review","security-review"]},"type":"attachment","uuid":"7d44bc8f-0678-4fee-92a0-e00ddeaccc73","timestamp":"2026-07-27T17:08:43.788Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7d44bc8f-0678-4fee-92a0-e00ddeaccc73","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-ba4a8983-30c6-48ac-b689-dbd1b1c9dda3","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"2c6ab9aa-8f2b-4980-b105-bad32f217c59","timestamp":"2026-07-27T17:08:43.976Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2c6ab9aa-8f2b-4980-b105-bad32f217c59","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSvwhRJh9wMiWerujS1t","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The user wants to keep the new SVG architecture (stream IR → encoder) but adapt it to write PNG instead, reinstating the original PNG functionality through this redesigned approach. They're asking for a walkthrough to make sure we're aligned before implementing—so this is an analysis and explanation phase, not code changes yet.\n\nI need to check the current git state to see where we are (whether the SVG work is parked on a branch or still on main), and I should invoke the code-changes skill first since the rules require that before reading any code.","signature":"CAISmAsKhwEIEBgCKkAxV5FWDoUZYOub9XHkTCu1qKgWslcqDGStqEUdqfRt1VR2qN9ltK6M9gmNf5jo9YtUrW8LH4cm5XWQ7GfJXCtlMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDLtKSO2arCGrp2qdCxoM4oWeAZwzJCoxN7HQIjBATJUL7MFSXzQ+PfHPZFoIGyB0TUk2n2mhT5YZ2o6PSTsH72YlrlS7B2hKMvPm43gqvQkHE8ls/mDUgf2BF3tL1n8KO58pLzfVD2xzAhO8VTLFD/G1YoPwRQBdzBj6u8D8OvHNP1BmNrWAL3NKCGRX9y9d1jvYKzi1knlmMmgV9yQBJHs6gqpUvxFujiOjOsve/VZM4HinYyZPZCLE1R6/jS/9wHfs9hoOVbVWOuntVz7S8AGaTzBJVT9Vg0AmJXfib2/KibFvEdCkeYFidLeVz8W0NGrDXoJ6jGOaLlXeY9hOtaYXmNZPdsgwvMpdC21F9blp+z5cd1xT9tMpyGAoLeDvqQaLlRsqxATk1w839n+As2w4o5LBva1mVoqDVUEWEhUwvzmQKBzGWKQsNpxd1cNLtgc4Vh3cEgYHdbj+G7JL+DFM7dyrvRCXf90O0B/jFRYVPTlBD3rVAxYCi6f47JHB0fwX0pYLxmOlXJWsbOwVjP3ClWFjH14Bdi6o9njWYKctBUUR2LWAChyfmITVRnrGJ8HTHqy8FUPUn4KaWK4MfOpLp75Z5QAZOlOW5CqJWMozjN7dMrAI5J6otDlKTff8449TlOXbFEbebAk1cinahMPnZnJ4zLXr3GYWpaFPKwKy3LLFRX0n0vVZ58eW0EtEMKPUDgd3PRdOvImc/99Z0WSM2Ik0LNPe0WX53QAZZl6xzth/AClU7CAXPCXi9x4Ny9L0TxL3bOSHAPLbOSUt1OxUPd+Jqds20yQdTA/hbN8mm6m2x4z5cL7/MSqwUuw87H54YLUr25/IY+JqpoAOLFTlOYP8PNMP+JSiurzOQrt2wj92SbiRHLSunZTCr52W1zw1Yd5eshqg/nLWU/n61nuKJhySFB5SZTsg09XYFN+MBnV3kwiVHxwzkNG0ThWNb+caD1txbexESIX68s8XTUSeIAyp/QHIszEQe/NXljCdrQN08G7yfhtSrGyiPI1vaAZiZb7wPrB6eat/fxdcy0E6XTFrd5wg519UVJ+wRfKDXjDXSenc6LYozAlJl1wlZXPdKIiO6JTO2QkpQWRw0OEOOGbeDM7MYj9b9mA7jHLY9aG4+qBS8pLvwqvbG1cfDzcnmzZhq5N/BjP/wzVZ4EVbtc9De2W0LkIJQQHlsZvYsQ2X9zusgReadny7QhuYkA2NsfsZieEj//959s9DbAo6DNVJ3H8IYYtxWg9sxWTbZf2aRZ64AEwLr+SdY1XkMBn9qGTE9ZBFZ3iCl72X0QdsRVi8IJaztvRAV5jZ18C7wBN82nnnDY0DRQK7T87jFp6bIxntJPSmwPnFpYFqXa6PM4h+18r8eVJzYfp1LgJ2dOhFMugS4AFHxwQ35WHowR3bTpCR+4LOAvi5LtohJCBpFjMLXFl2ELASVyCR1vvsO5lYrCGMStKZeCvBJovWpZ2jsiEhEFFs85hMJFcDYoRpQkE4t5gAk+hnU9N72nfx7UyGgM0AyHbSaqqyPYuRA2QsP4g7O6kZOH6SYQUK++5yphXawPn+Kn4jAmWYXAgyVRG0Py0APAwJnEasKJtMjPO6NNjVsmSfUdBAS2e/7iCXpT9YMW2BEBwWGhp7MLeRfybi67a5WLdcZwR2kmz20drd5Rmsd9MxX/W1/lFtyQoaQT/4Ssf+SL/TbTp2G+BfcL3gln1n1BIcLCZJGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":35124,"cache_read_input_tokens":33510,"output_tokens":498,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":35124,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":498,"cache_read_input_tokens":33510,"cache_creation_input_tokens":35124,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":35124},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSvwfs3aMTrCk6NvaGmz","type":"assistant","uuid":"fa03866a-0f94-46ab-a4b6-6697fc751eaf","timestamp":"2026-07-27T17:08:52.670Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fa03866a-0f94-46ab-a4b6-6697fc751eaf","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSvwhRJh9wMiWerujS1t","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01UFQaDF6hCmpt3eV1QUk4gd","name":"Skill","input":{"skill":"code-changes","args":"Rework SVG writer architecture to emit PNG instead, reinstating the original PNG renderer's output behind the new run-stream encoder design"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":35124,"cache_read_input_tokens":33510,"output_tokens":498,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":35124,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":498,"cache_read_input_tokens":33510,"cache_creation_input_tokens":35124,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":35124},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSvwfs3aMTrCk6NvaGmz","type":"assistant","uuid":"8e721683-4da6-435e-863a-0135896121f5","timestamp":"2026-07-27T17:08:52.672Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8e721683-4da6-435e-863a-0135896121f5","isSidechain":false,"promptId":"9720599f-fc68-40f3-a23c-002260c76b0f","type":"user","message":{"role":"user","content":[{"type":"tool_result","tool_use_id":"toolu_01UFQaDF6hCmpt3eV1QUk4gd","content":"Launching skill: code-changes"}]},"uuid":"8576f859-0df9-4fdf-a4f8-cac4490655c3","timestamp":"2026-07-27T17:08:52.690Z","toolUseResult":{"success":true,"commandName":"code-changes"},"sourceToolAssistantUUID":"8e721683-4da6-435e-863a-0135896121f5","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8576f859-0df9-4fdf-a4f8-cac4490655c3","isSidechain":false,"promptId":"9720599f-fc68-40f3-a23c-002260c76b0f","type":"user","message":{"role":"user","content":[{"type":"text","text":"Base directory for this skill: D:\\oh-my-posh\\.claude\\skills\\code-changes\n\n# Code Changes\n\nThe workflow for going from an issue, pull request, idea, or feature request to shipped code.\nFollow the phases in order. Analysis always comes first; code comes last.\n\nEach phase has a reference file with the full instructions. **Read the reference file when you\nenter the phase** — not before, and never skip it because the phase \"looks obvious\".\n\n## Roles\n\nAssign work based on model capability. The coordinator is not the strongest model — it's the one\nthat stays resident, owns every phase by default, and knows when it's out of its depth.\n\n| Role | Capability tier | Owns |\n| ----------- | -------------------------------------------------------------- | ------------------------------------------------------------------------------ |\n| Coordinator | Capable mid-tier, resident for the whole task | Analysis, plan, delegation, supervision, verification, delivery — by default |\n| Escalation | Strongest reasoning model available; invoked only on trigger | The specific judgment call the coordinator flagged, then control returns |\n| Implementer | Same tier as coordinator, or smaller for trivial edits | Executing one pinned, self-contained task |\n\nConcrete model names per vendor (Anthropic, OpenAI, Google) and how to run the split in Claude\nCode, GitHub Copilot, Codex, or IDE agents: [references/model-tiers.md](references/model-tiers.md).\n\nWhen the current agent already runs at implementer tier, there's no separate delegation step for\nstandard work: plan and execute directly, still following every phase. Escalate to the strongest\nmodel only when a trigger fires — see [references/escalate.md](references/escalate.md) — never by\ndefault and never for a routine judgment call the coordinator is equipped to make itself.\n\n## The flow\n\n1. **Analyze** ([references/analyze.md](references/analyze.md)) — root cause and scope,\n validated against the code, never against the report alone.\n2. **Plan** ([references/plan.md](references/plan.md)) — pinned spec, task split, parallel vs\n sequential, workspace per task.\n3. **Delegate** ([references/delegate.md](references/delegate.md)) — match each task to the\n right executor, coordinator-tier by default.\n4. **Supervise** ([references/supervise.md](references/supervise.md)) — monitor, unblock, and\n critically review implementer output.\n5. **Verify** ([references/verify.md](references/verify.md)) — quality gates plus functional\n proof, never delegated downward.\n6. **Deliver** ([references/deliver.md](references/deliver.md)) — conventional commits and an\n outcome-first report.\n\nAnalyze, Supervise, and Verify each carry an escalation checkpoint — see\n[references/escalate.md](references/escalate.md) — for handing one specific judgment call to the\nstrongest available model without giving up ownership of the phase.\n\n**Stop gate:** Phase 1 ends with reporting the analysis and proposed approach to the user and\nwaiting for a go. Skip the gate only when the user already gave the go in the request itself\n(\"do it\", \"fix it and commit\", \"implement with Sonnet\").\n\n## Special cases\n\nThese entry points replace or extend Phase 1; the rest of the flow applies unchanged.\n\n- Pull request review comments →\n [references/pr-review-comments.md](references/pr-review-comments.md)\n- Issue triage → [references/issue-triage.md](references/issue-triage.md)\n\n\nARGUMENTS: Rework SVG writer architecture to emit PNG instead, reinstating the original PNG renderer's output behind the new run-stream encoder design"}]},"isMeta":true,"uuid":"12f7b5db-7c8a-48d0-b284-a738049b780a","timestamp":"2026-07-27T17:08:52.683Z","sourceToolUseID":"toolu_01UFQaDF6hCmpt3eV1QUk4gd","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"12f7b5db-7c8a-48d0-b284-a738049b780a","isSidechain":false,"attachment":{"type":"command_permissions","allowedTools":[]},"type":"attachment","uuid":"23c67424-1fb4-4dad-807b-26869dcbe590","timestamp":"2026-07-27T17:08:52.683Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"23c67424-1fb4-4dad-807b-26869dcbe590","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSvxHo2fKonnUWYZqvRV","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm checking the analyze.md file and reviewing the current git state.","signature":"CAISlQIKhwEIEBgCKkDsQaIxTRU4bMl19bCg9JNEIYM5JK6j1Ye0dXzpSwDwyyik6xJOYbpcNYMVRd+k/Ue6sQVl3XgwRwq+wHkLjHo7Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDC8DM7DZciL9kxZUOhoMYXPWciBUZ56jURzsIjDNlb2WMDOzaVttI533bytZvuFB7QqxiVMK/Igrn8lLJdZwDq3aiG0QI5dBJS4i1QwqOwqTli/TRwquIc2S6lkbQ60gBvCAqoN6hjEn5aqFbHgvXyszdumiRvkyo4zZYNcayFbEXrRdaJn03oU3GAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1740,"cache_read_input_tokens":68634,"output_tokens":251,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1740,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":251,"cache_read_input_tokens":68634,"cache_creation_input_tokens":1740,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1740},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSvxGY7rrAuP768B5pou","attributionSkill":"code-changes","type":"assistant","uuid":"3a88b382-d3c2-493a-b4c3-e6409e433f50","timestamp":"2026-07-27T17:08:55.055Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3a88b382-d3c2-493a-b4c3-e6409e433f50","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSvxHo2fKonnUWYZqvRV","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_011VVGda6kRacaEFGrczhuVU","name":"Read","input":{"file_path":"D:\\oh-my-posh\\.claude\\skills\\code-changes\\references\\analyze.md"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1740,"cache_read_input_tokens":68634,"output_tokens":251,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1740,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":251,"cache_read_input_tokens":68634,"cache_creation_input_tokens":1740,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1740},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSvxGY7rrAuP768B5pou","attributionSkill":"code-changes","type":"assistant","uuid":"dc8df1c3-0752-4091-ad5c-35a79491d4a0","timestamp":"2026-07-27T17:08:55.443Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dc8df1c3-0752-4091-ad5c-35a79491d4a0","isSidechain":false,"promptId":"9720599f-fc68-40f3-a23c-002260c76b0f","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_011VVGda6kRacaEFGrczhuVU","type":"tool_result","content":"1\t# Phase 1 — Analyze\n2\t\n3\tStart every task here, no matter how it arrived: issue link, PR number, verbal idea, bug report.\n4\tNo code gets written or edited during this phase.\n5\t\n6\t## Gather the full context\n7\t\n8\t- Issues and PRs: `gh issue view --comments` / `gh pr view --comments`, plus linked\n9\t issues, referenced discussions, and any code the report points at.\n10\t- Ideas and verbal requests: restate the goal and constraints in your own words. If the request\n11\t is ambiguous, resolve the ambiguity now — not halfway through implementation.\n12\t- Check for prior art: existing helpers, similar segments/modules, and past commits that touched\n13\t the same area (`git log -- `).\n14\t\n15\t## Reproduce before theorizing\n16\t\n17\tReproduce the problem when possible. A reproduction turns the analysis from a hypothesis into a\n18\tfact and gives Phase 5 its verification case for free. When reproduction is impossible (platform,\n19\thardware, credentials), say so explicitly in the report and mark the fix as unverified-by-repro.\n20\t\n21\t## Find the root cause in the code\n22\t\n23\t- Read the actual implementation. Never reason from the issue text, a review comment, or a stack\n24\t trace alone — reports and bot reviewers are frequently wrong.\n25\t- Distinguish the root cause from the symptom. Fixing where it crashes is not the same as fixing\n26\t why it crashes.\n27\t- State what the change should be, which files it touches, and what it deliberately leaves alone.\n28\t\n29\t## When to escalate\n30\t\n31\tIf root cause can't be pinned with confidence, or the fix looks architectural, security-sensitive,\n32\tor irreversible, hand the specific question to the strongest available model instead of guessing —\n33\tsee [references/escalate.md](references/escalate.md). Resume ownership of the phase once the\n34\tquestion is answered.\n35\t\n36\t## Output of this phase\n37\t\n38\tA short analysis report to the user containing:\n39\t\n40\t1. What is actually happening and why (root cause, with file references).\n41\t2. The proposed change and its scope.\n42\t3. What is intentionally out of scope.\n43\t4. Open questions, if any remain.\n44\t\n45\t## Stop gate\n46\t\n47\tReport the analysis and wait for a go before implementing. Skip the gate only when the user\n48\talready gave the go in the request itself (\"do it\", \"fix it and commit\", \"implement with\n49\tSonnet\"). A go given for analysis is not a go for implementation.\n50\t"}]},"uuid":"5ba81058-9c6a-4506-914d-fe761d4edb7f","timestamp":"2026-07-27T17:08:55.467Z","toolUseResult":{"type":"text","file":{"filePath":"D:\\oh-my-posh\\.claude\\skills\\code-changes\\references\\analyze.md","content":"# Phase 1 — Analyze\n\nStart every task here, no matter how it arrived: issue link, PR number, verbal idea, bug report.\nNo code gets written or edited during this phase.\n\n## Gather the full context\n\n- Issues and PRs: `gh issue view --comments` / `gh pr view --comments`, plus linked\n issues, referenced discussions, and any code the report points at.\n- Ideas and verbal requests: restate the goal and constraints in your own words. If the request\n is ambiguous, resolve the ambiguity now — not halfway through implementation.\n- Check for prior art: existing helpers, similar segments/modules, and past commits that touched\n the same area (`git log -- `).\n\n## Reproduce before theorizing\n\nReproduce the problem when possible. A reproduction turns the analysis from a hypothesis into a\nfact and gives Phase 5 its verification case for free. When reproduction is impossible (platform,\nhardware, credentials), say so explicitly in the report and mark the fix as unverified-by-repro.\n\n## Find the root cause in the code\n\n- Read the actual implementation. Never reason from the issue text, a review comment, or a stack\n trace alone — reports and bot reviewers are frequently wrong.\n- Distinguish the root cause from the symptom. Fixing where it crashes is not the same as fixing\n why it crashes.\n- State what the change should be, which files it touches, and what it deliberately leaves alone.\n\n## When to escalate\n\nIf root cause can't be pinned with confidence, or the fix looks architectural, security-sensitive,\nor irreversible, hand the specific question to the strongest available model instead of guessing —\nsee [references/escalate.md](references/escalate.md). Resume ownership of the phase once the\nquestion is answered.\n\n## Output of this phase\n\nA short analysis report to the user containing:\n\n1. What is actually happening and why (root cause, with file references).\n2. The proposed change and its scope.\n3. What is intentionally out of scope.\n4. Open questions, if any remain.\n\n## Stop gate\n\nReport the analysis and wait for a go before implementing. Skip the gate only when the user\nalready gave the go in the request itself (\"do it\", \"fix it and commit\", \"implement with\nSonnet\"). A go given for analysis is not a go for implementation.\n","numLines":50,"startLine":1,"totalLines":50}},"sourceToolAssistantUUID":"dc8df1c3-0752-4091-ad5c-35a79491d4a0","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5ba81058-9c6a-4506-914d-fe761d4edb7f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSvxHo2fKonnUWYZqvRV","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01EVG7wfHnDJ3FGkqavoLFJT","name":"Bash","input":{"command":"git branch -a --sort=-committerdate | head -20 && echo \"--- current ---\" && git rev-parse --abbrev-ref HEAD && git status --short && echo \"--- worktrees ---\" && git worktree list","description":"Check branch and worktree state"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1740,"cache_read_input_tokens":68634,"output_tokens":251,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1740,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":251,"cache_read_input_tokens":68634,"cache_creation_input_tokens":1740,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1740},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSvxGY7rrAuP768B5pou","attributionSkill":"code-changes","type":"assistant","uuid":"257f4f04-fc7e-4547-861f-85c8d2caa13a","timestamp":"2026-07-27T17:08:56.342Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"257f4f04-fc7e-4547-861f-85c8d2caa13a","isSidechain":false,"promptId":"9720599f-fc68-40f3-a23c-002260c76b0f","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01EVG7wfHnDJ3FGkqavoLFJT","type":"tool_result","content":" entire/checkpoints/v1\n entire/9d4fdd6-e3b0c4\n* next\n entire/7303389-e3b0c4\n entire/d0a4280-e3b0c4\n entire/6e2377a-e3b0c4\n entire/4bc8a9c-e3b0c4\n entire/eb42182-e3b0c4\n entire/368839f-e3b0c4\n entire/3e131fc-e3b0c4\n entire/37a3e55-e3b0c4\n entire/3eb7305-e3b0c4\n entire/dd9bfc6-e3b0c4\n entire/beaa716-e3b0c4\n entire/4f658ca-e3b0c4\n entire/c5ff0f7-e3b0c4\n entire/e279f6a-e3b0c4\n remotes/origin/HEAD -> origin/main\n remotes/origin/main\n entire/055ca50-e3b0c4\n--- current ---\nnext\n--- worktrees ---\nD:/oh-my-posh 9d4fdd6f [next]\nC:/Users/jande/AppData/Local/Temp/omp-png eb421824 (detached HEAD)\nD:/oh-my-posh/.claude/worktrees/heuristic-robinson-e44709 6f09a021 (detached HEAD)","is_error":false}]},"uuid":"a9325a52-4fa1-4b7d-9675-58b20fe7fdc3","timestamp":"2026-07-27T17:09:08.443Z","toolUseResult":{"stdout":" entire/checkpoints/v1\n entire/9d4fdd6-e3b0c4\n* next\n entire/7303389-e3b0c4\n entire/d0a4280-e3b0c4\n entire/6e2377a-e3b0c4\n entire/4bc8a9c-e3b0c4\n entire/eb42182-e3b0c4\n entire/368839f-e3b0c4\n entire/3e131fc-e3b0c4\n entire/37a3e55-e3b0c4\n entire/3eb7305-e3b0c4\n entire/dd9bfc6-e3b0c4\n entire/beaa716-e3b0c4\n entire/4f658ca-e3b0c4\n entire/c5ff0f7-e3b0c4\n entire/e279f6a-e3b0c4\n remotes/origin/HEAD -> origin/main\n remotes/origin/main\n entire/055ca50-e3b0c4\n--- current ---\nnext\n--- worktrees ---\nD:/oh-my-posh 9d4fdd6f [next]\nC:/Users/jande/AppData/Local/Temp/omp-png eb421824 (detached HEAD)\nD:/oh-my-posh/.claude/worktrees/heuristic-robinson-e44709 6f09a021 (detached HEAD)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"257f4f04-fc7e-4547-861f-85c8d2caa13a","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a9325a52-4fa1-4b7d-9675-58b20fe7fdc3","isSidechain":false,"attachment":{"type":"nested_memory","path":"D:\\oh-my-posh\\.claude\\rules\\markdown.md","content":{"path":"D:\\oh-my-posh\\.claude\\rules\\markdown.md","type":"Project","content":"Refer to `skills/markdown/SKILL.md` for the full Markdown formatting standards.\n","globs":["**/*.md","**/*.mdx"],"contentDiffersFromDisk":true,"rawContent":"---\npaths:\n - \"**/*.md\"\n - \"**/*.mdx\"\n---\n\nRefer to `skills/markdown/SKILL.md` for the full Markdown formatting standards.\n"},"displayPath":".claude\\rules\\markdown.md"},"type":"attachment","uuid":"8d293779-e33e-4109-9fc2-4c0fb620262f","timestamp":"2026-07-27T17:09:08.461Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8d293779-e33e-4109-9fc2-4c0fb620262f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSvyVEdZU1wHGoyvXu9F","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The user wants to pivot the approach: keep the new run-stream architecture and encoder layering we've built, but swap out the SVG backend for a PNG rasterizer using the old `gg` library instead.\n\nI need to examine the current SVG package structure to understand how the encoder layers work, then look at what the old PNG renderer was doing so I can adapt it to fit this new architecture.","signature":"CAIStQcKhwEIEBgCKkD/AhMjIzXomBGTbtRan7fbmcJeFFqyIYlMTliBaVKUA8hPHUedRUBmOcy4brHctGVU7I9zcYEboDkRYXzHVRkbMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDMNnCjN4X07YRGxIZxoMKG4QjYa2z9NBi9/sIjDMYuZt9KQkhVCpqYRlfp8AW68mX2t6IJzfoHoA10w4Arr//vRepVQgMD5PgHlOA2Eq2gWSRBQ2PSXiDCooHoAXZ1IbB7VyFrhKIgi3v8L2CQHNGXWB8NVZgK4CmuS6e1YhHPlq6hGurpjZAaFljnFrdDGJP3oUk1RtwOH5opBc3jCXuODy+wChA8dqAnAGSf66mUjO64aO1nFBIUtn+pFa+jMdDQRpIaGXGUYDNvEKuXCgg+O5LbS93Dn++ycj0I8eZ9f/3pwHEyWMYcsyzEGNpL3hEo9qCkxP+DXJxZsFmlIRUVccC+DEMYqEdGPODyuhoQTkwT37qSI279ad+idzBqxpIy/EQVbapJshIAN/1TnQ0/MCNuMmCCaWgF0eTNjSoU+vpEP3MaQ7qfiau/elRifpMZYIDG9++kAs+H7Aq+Oh22lkJgeD+PftEre+IljihXl1DF2E2Z5p89I5oNhnsxh9cTdbltIQ9J1XMYhnJ9FgYMLSJMRzzxOjbrSvJpgZWRFNhg776k1ScfGEkJxxt2slP71npXcIn/cm64/vN43Rs37X7TGfOUIOvi0xNtRZcuHGZiWAzD+cxdgzXmhQfI1AxSB46UGRGbQv8ZSNr5eI+aBqU4FtGf4iq89QJPshxdrLriPJlEbDc+tg9hdNCoDeLzgzOUtxxEX0tmmGcg/787KZv4fyPjHiCTISTRAo1V/Keec10y17eb6gGQEJ6nBOXFN9I6Y/D1tavDsEP2GIPRDXBnibF7hJ+TAqMy7UbmD8V1i/DGhz2C8YXleO1lYk3PzJze2yAp6zn6MQL8pHct+Aab+hDZMbzcd0+9gX2fxdLzwRm8kWVREy/Y73dD/oFyJIfa81r+DeFYsgO06uPZl983WuMnkIRjlCTtkccbEp+OeYeaP2KZurcyCiuxcXTucFWsIkDbPIYZAII5wkY7hUtJriXPjWhICBBjp1qouhpaeKzU6eE4CnZrgPzq6+sQR07qy201alIvSse++Xpxgi2BPzKovhHCP5lyV9BRz/P36bml1wJLxPGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1672,"cache_read_input_tokens":70374,"output_tokens":491,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1672,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":491,"cache_read_input_tokens":70374,"cache_creation_input_tokens":1672,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1672},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSvyS1R8QZNzZwjdU2eS","attributionSkill":"code-changes","type":"assistant","uuid":"410fe6f4-a675-48b2-abd4-8f39a2299e8f","timestamp":"2026-07-27T17:09:15.094Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"410fe6f4-a675-48b2-abd4-8f39a2299e8f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSvyVEdZU1wHGoyvXu9F","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Jwa1Aop2XrspJQXZZzk7ud","name":"Bash","input":{"command":"ls -la D:/oh-my-posh/src/svg/ && echo \"--- run.go ---\" && wc -l D:/oh-my-posh/src/terminal/run.go D:/oh-my-posh/src/prompt/runs.go D:/oh-my-posh/src/svg/*.go","description":"List svg package and line counts"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1672,"cache_read_input_tokens":70374,"output_tokens":491,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1672,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":491,"cache_read_input_tokens":70374,"cache_creation_input_tokens":1672,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1672},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSvyS1R8QZNzZwjdU2eS","attributionSkill":"code-changes","type":"assistant","uuid":"91b6063d-0971-44fa-8b42-c7a3c3558551","timestamp":"2026-07-27T17:09:16.088Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"91b6063d-0971-44fa-8b42-c7a3c3558551","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSvyVEdZU1wHGoyvXu9F","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Y2KqEkqPbWWC45S11MenEc","name":"Read","input":{"file_path":"D:\\oh-my-posh\\src\\terminal\\run.go"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1672,"cache_read_input_tokens":70374,"output_tokens":491,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1672,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":491,"cache_read_input_tokens":70374,"cache_creation_input_tokens":1672,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1672},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSvyS1R8QZNzZwjdU2eS","attributionSkill":"code-changes","type":"assistant","uuid":"cbc50e91-91b5-4087-8ce2-bb00f0fd258c","timestamp":"2026-07-27T17:09:16.105Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cbc50e91-91b5-4087-8ce2-bb00f0fd258c","isSidechain":false,"promptId":"9720599f-fc68-40f3-a23c-002260c76b0f","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Y2KqEkqPbWWC45S11MenEc","type":"tool_result","content":"1\tpackage terminal\n2\t\n3\timport (\n4\t\t\"strings\"\n5\t\n6\t\t\"github.com/jandedobbeleer/oh-my-posh/src/color\"\n7\t)\n8\t\n9\t// CaptureRuns turns on the parallel Run stream Write/String build alongside the ANSI\n10\t// bytes they already emit, for a later encoder (an SVG renderer, eventually) to draw the\n11\t// prompt without parsing escape sequences. Off by default, mirroring Plain/Interactive:\n12\t// with it off, every capture site below is a single `if CaptureRuns` check and nothing\n13\t// else runs, so the ANSI hot path's allocation profile is unchanged (see the exact\n14\t// allocs/B-per-op gates in bench_test.go). With it on, capture is allowed to allocate.\n15\tvar CaptureRuns bool\n16\t\n17\t// RunMode discriminates the three ways writeSegmentColors (and writeAnchorOverride's\n18\t// matching branches) can render a segment or override. All three print bytes that read\n19\t// back as the same ANSI token \"transparent\" once decoded, so a Run needs this field to\n20\t// tell them apart; see writeSegmentColors' switch for the three branches it names.\n21\ttype RunMode int\n22\t\n23\tconst (\n24\t\t// RunNormal is a run rendered with its own foreground/background: neither of the\n25\t\t// two transparent branches below applied.\n26\t\tRunNormal RunMode = iota\n27\t\n28\t\t// RunBackgroundPainted is the branch taken when the foreground is transparent and a\n29\t\t// terminal background color is known: the cell renders filled with the segment's own\n30\t\t// background color, and the glyph itself renders in the terminal's default background\n31\t\t// color, cutting its shape out of that fill — the SGR sequence sets the segment's\n32\t\t// background as a foreground code, resets the background to default, then SGR 7\n33\t\t// (reverse video) swaps the two, so what actually paints is the inverse of what the\n34\t\t// codes name.\n35\t\tRunBackgroundPainted\n36\t\n37\t\t// RunReverseVideo is the branch taken when the foreground is transparent and no\n38\t\t// terminal background is known: reverse video (SGR 7) still swaps foreground/\n39\t\t// background as described above, so the cell renders filled with the segment's own\n40\t\t// background color; the glyph itself renders in whatever the real terminal's default\n41\t\t// background turns out to be, which is unknown here (that's the \"no terminal\n42\t\t// background is known\" half of this branch's condition).\n43\t\tRunReverseVideo\n44\t)\n45\t\n46\t// runAttributeSlots mirrors len(knownStyles): one nesting-depth counter per style\n47\t// anchor. knownStyles is a var, not a const, so this can't be derived at compile time;\n48\t// TestRunAttributeSlotsMatchesKnownStyles pins the two in sync.\n49\tconst runAttributeSlots = 8\n50\t\n51\t// Run is one contiguous span of text rendered under a single, unchanging style: the\n52\t// exact SGR pair and its pre-ToAnsi source form (a #RRGGBB hex, a colour name, accent,\n53\t// transparent, or a gradient definition — see color.History.Add), a render-mode\n54\t// discriminator, per-style-anchor nesting depth, and — for a cell stamped from the\n55\t// segment's own gradient — the true RGB behind the printed escape.\n56\t//\n57\t// Cells is the run's rendered width, a length delta matching what write() counts toward\n58\t// String()'s returned length; it can be zero (e.g. a hyperlink's URL text, which Text\n59\t// includes but write() never counts toward length) even when Text is non-empty.\n60\ttype Run struct {\n61\t\tBackgroundRGB *color.RGB\n62\t\tForegroundRGB *color.RGB\n63\t\tText string\n64\t\tBackground color.Ansi\n65\t\tForeground color.Ansi\n66\t\tBackgroundSource color.Ansi\n67\t\tForegroundSource color.Ansi\n68\t\tMode RunMode\n69\t\tCells int\n70\t\tAttributes [runAttributeSlots]uint8\n71\t}\n72\t\n73\t// Runs returns the Run stream captured since the last String() call. Empty when\n74\t// CaptureRuns is false.\n75\tfunc Runs() []Run {\n76\t\treturn runsState.Runs\n77\t}\n78\t\n79\t// runState bundles the run-capture bookkeeping threaded alongside colorState through the\n80\t// same style-anchor and color-change events (see colorState's own doc comment), only\n81\t// touched when CaptureRuns is true. text accumulates the pending run's content exactly as\n82\t// write() sends it to builder — see write()'s mirrored calls. depth is the running\n83\t// nesting counter per knownStyles slot, mutated at the three style-anchor emission sites\n84\t// (Write's leading-anchor prologue, writeAnchorOverride's Start/End cases) and reset\n85\t// alongside the writer's own end-of-segment SGR reset and in String()'s defer; attributes\n86\t// is depth's last snapshot, copied into a Run at flushRun. background/foreground/\n87\t// backgroundSource/foregroundSource/mode/backgroundRGB/foregroundRGB are the pending\n88\t// run's style, refreshed by syncPendingStyle after every event that can change it.\n89\ttype runState struct {\n90\t\tbackgroundRGB *color.RGB\n91\t\tforegroundRGB *color.RGB\n92\t\tbackground color.Ansi\n93\t\tforeground color.Ansi\n94\t\tbackgroundSource color.Ansi\n95\t\tforegroundSource color.Ansi\n96\t\ttext strings.Builder\n97\t\tRuns []Run\n98\t\tmode RunMode\n99\t\tcellsAtFlush int\n100\t\tattributes [runAttributeSlots]uint8\n101\t\tdepth [runAttributeSlots]uint8\n102\t}\n103\t\n104\tvar runsState runState\n105\t\n106\t// flushRun cuts the text accumulated since the last flush into a Run using the pending\n107\t// style snapshot (background/foreground/source/mode/attributes/RGB), then resets the\n108\t// text accumulator. A call with nothing accumulated — no text, no cell delta — is a\n109\t// no-op: several call sites flush unconditionally on entry (writeSegmentColors,\n110\t// writeAnchorOverride, endColorOverride all flush before touching any state), and most of\n111\t// those calls land here with nothing pending, since the previous flush already cut it.\n112\tfunc flushRun() {\n113\t\tcells := length - runsState.cellsAtFlush\n114\t\ttext := runsState.text.String()\n115\t\n116\t\tif len(text) != 0 || cells != 0 {\n117\t\t\trunsState.Runs = append(runsState.Runs, Run{\n118\t\t\t\tText: text,\n119\t\t\t\tBackground: runsState.background,\n120\t\t\t\tForeground: runsState.foreground,\n121\t\t\t\tBackgroundSource: runsState.backgroundSource,\n122\t\t\t\tForegroundSource: runsState.foregroundSource,\n123\t\t\t\tBackgroundRGB: runsState.backgroundRGB,\n124\t\t\t\tForegroundRGB: runsState.foregroundRGB,\n125\t\t\t\tAttributes: runsState.attributes,\n126\t\t\t\tMode: runsState.mode,\n127\t\t\t\tCells: cells,\n128\t\t\t})\n129\t\t}\n130\t\n131\t\trunsState.text.Reset()\n132\t\trunsState.cellsAtFlush = length\n133\t}\n134\t\n135\t// syncPendingStyle snapshots cs's current active style — background/foreground/source,\n136\t// the render-mode discriminator, and the attribute nesting depth — as what governs\n137\t// whatever text comes next, and clears the gradient RGB (stampGradient sets it again,\n138\t// per cell, only for a channel it actually stamps). Called after every event that can\n139\t// change the active style: writeSegmentColors, writeAnchorOverride (including its\n140\t// style-anchor early returns, where only the attributes changed), and endColorOverride.\n141\tfunc syncPendingStyle(cs *colorState) {\n142\t\trunsState.background = activeBackground(cs)\n143\t\trunsState.foreground = activeForeground(cs)\n144\t\trunsState.backgroundSource = activeBackgroundSource(cs)\n145\t\trunsState.foregroundSource = activeForegroundSource(cs)\n146\t\trunsState.mode = deriveRunMode(cs)\n147\t\trunsState.attributes = runsState.depth\n148\t\trunsState.backgroundRGB = nil\n149\t\trunsState.foregroundRGB = nil\n150\t}\n151\t\n152\t// activeBackgroundSource/activeForegroundSource are activeBackground/activeForeground's\n153\t// source-form counterparts: the top of the override history's source, or the segment\n154\t// base's source when no override is active.\n155\tfunc activeBackgroundSource(cs *colorState) color.Ansi {\n156\t\tif bg := cs.currentColor.Background(); !bg.IsEmpty() {\n157\t\t\treturn cs.currentColor.BackgroundSource()\n158\t\t}\n159\t\n160\t\treturn cs.backgroundColorSource\n161\t}\n162\t\n163\tfunc activeForegroundSource(cs *colorState) color.Ansi {\n164\t\tif fg := cs.currentColor.Foreground(); !fg.IsEmpty() {\n165\t\t\treturn cs.currentColor.ForegroundSource()\n166\t\t}\n167\t\n168\t\treturn cs.foregroundColorSource\n169\t}\n170\t\n171\t// deriveRunMode mirrors writeSegmentColors' own switch (and writeAnchorOverride's\n172\t// matching branches) on cs's now-current active foreground and the package-level\n173\t// terminal background, so a single derivation covers all three call sites instead of\n174\t// each branch setting it inline (which would have to be threaded through every early\n175\t// return).\n176\tfunc deriveRunMode(cs *colorState) RunMode {\n177\t\tfg := activeForeground(cs)\n178\t\n179\t\tswitch {\n180\t\tcase fg.IsTransparent() && len(BackgroundColor) != 0:\n181\t\t\treturn RunBackgroundPainted\n182\t\tcase fg.IsTransparent():\n183\t\t\treturn RunReverseVideo\n184\t\tdefault:\n185\t\t\treturn RunNormal\n186\t\t}\n187\t}\n188\t"}]},"uuid":"c5e352ba-cede-4719-b1d9-d9da72d44825","timestamp":"2026-07-27T17:09:16.133Z","toolUseResult":{"type":"text","file":{"filePath":"D:\\oh-my-posh\\src\\terminal\\run.go","content":"package terminal\n\nimport (\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/color\"\n)\n\n// CaptureRuns turns on the parallel Run stream Write/String build alongside the ANSI\n// bytes they already emit, for a later encoder (an SVG renderer, eventually) to draw the\n// prompt without parsing escape sequences. Off by default, mirroring Plain/Interactive:\n// with it off, every capture site below is a single `if CaptureRuns` check and nothing\n// else runs, so the ANSI hot path's allocation profile is unchanged (see the exact\n// allocs/B-per-op gates in bench_test.go). With it on, capture is allowed to allocate.\nvar CaptureRuns bool\n\n// RunMode discriminates the three ways writeSegmentColors (and writeAnchorOverride's\n// matching branches) can render a segment or override. All three print bytes that read\n// back as the same ANSI token \"transparent\" once decoded, so a Run needs this field to\n// tell them apart; see writeSegmentColors' switch for the three branches it names.\ntype RunMode int\n\nconst (\n\t// RunNormal is a run rendered with its own foreground/background: neither of the\n\t// two transparent branches below applied.\n\tRunNormal RunMode = iota\n\n\t// RunBackgroundPainted is the branch taken when the foreground is transparent and a\n\t// terminal background color is known: the cell renders filled with the segment's own\n\t// background color, and the glyph itself renders in the terminal's default background\n\t// color, cutting its shape out of that fill — the SGR sequence sets the segment's\n\t// background as a foreground code, resets the background to default, then SGR 7\n\t// (reverse video) swaps the two, so what actually paints is the inverse of what the\n\t// codes name.\n\tRunBackgroundPainted\n\n\t// RunReverseVideo is the branch taken when the foreground is transparent and no\n\t// terminal background is known: reverse video (SGR 7) still swaps foreground/\n\t// background as described above, so the cell renders filled with the segment's own\n\t// background color; the glyph itself renders in whatever the real terminal's default\n\t// background turns out to be, which is unknown here (that's the \"no terminal\n\t// background is known\" half of this branch's condition).\n\tRunReverseVideo\n)\n\n// runAttributeSlots mirrors len(knownStyles): one nesting-depth counter per style\n// anchor. knownStyles is a var, not a const, so this can't be derived at compile time;\n// TestRunAttributeSlotsMatchesKnownStyles pins the two in sync.\nconst runAttributeSlots = 8\n\n// Run is one contiguous span of text rendered under a single, unchanging style: the\n// exact SGR pair and its pre-ToAnsi source form (a #RRGGBB hex, a colour name, accent,\n// transparent, or a gradient definition — see color.History.Add), a render-mode\n// discriminator, per-style-anchor nesting depth, and — for a cell stamped from the\n// segment's own gradient — the true RGB behind the printed escape.\n//\n// Cells is the run's rendered width, a length delta matching what write() counts toward\n// String()'s returned length; it can be zero (e.g. a hyperlink's URL text, which Text\n// includes but write() never counts toward length) even when Text is non-empty.\ntype Run struct {\n\tBackgroundRGB *color.RGB\n\tForegroundRGB *color.RGB\n\tText string\n\tBackground color.Ansi\n\tForeground color.Ansi\n\tBackgroundSource color.Ansi\n\tForegroundSource color.Ansi\n\tMode RunMode\n\tCells int\n\tAttributes [runAttributeSlots]uint8\n}\n\n// Runs returns the Run stream captured since the last String() call. Empty when\n// CaptureRuns is false.\nfunc Runs() []Run {\n\treturn runsState.Runs\n}\n\n// runState bundles the run-capture bookkeeping threaded alongside colorState through the\n// same style-anchor and color-change events (see colorState's own doc comment), only\n// touched when CaptureRuns is true. text accumulates the pending run's content exactly as\n// write() sends it to builder — see write()'s mirrored calls. depth is the running\n// nesting counter per knownStyles slot, mutated at the three style-anchor emission sites\n// (Write's leading-anchor prologue, writeAnchorOverride's Start/End cases) and reset\n// alongside the writer's own end-of-segment SGR reset and in String()'s defer; attributes\n// is depth's last snapshot, copied into a Run at flushRun. background/foreground/\n// backgroundSource/foregroundSource/mode/backgroundRGB/foregroundRGB are the pending\n// run's style, refreshed by syncPendingStyle after every event that can change it.\ntype runState struct {\n\tbackgroundRGB *color.RGB\n\tforegroundRGB *color.RGB\n\tbackground color.Ansi\n\tforeground color.Ansi\n\tbackgroundSource color.Ansi\n\tforegroundSource color.Ansi\n\ttext strings.Builder\n\tRuns []Run\n\tmode RunMode\n\tcellsAtFlush int\n\tattributes [runAttributeSlots]uint8\n\tdepth [runAttributeSlots]uint8\n}\n\nvar runsState runState\n\n// flushRun cuts the text accumulated since the last flush into a Run using the pending\n// style snapshot (background/foreground/source/mode/attributes/RGB), then resets the\n// text accumulator. A call with nothing accumulated — no text, no cell delta — is a\n// no-op: several call sites flush unconditionally on entry (writeSegmentColors,\n// writeAnchorOverride, endColorOverride all flush before touching any state), and most of\n// those calls land here with nothing pending, since the previous flush already cut it.\nfunc flushRun() {\n\tcells := length - runsState.cellsAtFlush\n\ttext := runsState.text.String()\n\n\tif len(text) != 0 || cells != 0 {\n\t\trunsState.Runs = append(runsState.Runs, Run{\n\t\t\tText: text,\n\t\t\tBackground: runsState.background,\n\t\t\tForeground: runsState.foreground,\n\t\t\tBackgroundSource: runsState.backgroundSource,\n\t\t\tForegroundSource: runsState.foregroundSource,\n\t\t\tBackgroundRGB: runsState.backgroundRGB,\n\t\t\tForegroundRGB: runsState.foregroundRGB,\n\t\t\tAttributes: runsState.attributes,\n\t\t\tMode: runsState.mode,\n\t\t\tCells: cells,\n\t\t})\n\t}\n\n\trunsState.text.Reset()\n\trunsState.cellsAtFlush = length\n}\n\n// syncPendingStyle snapshots cs's current active style — background/foreground/source,\n// the render-mode discriminator, and the attribute nesting depth — as what governs\n// whatever text comes next, and clears the gradient RGB (stampGradient sets it again,\n// per cell, only for a channel it actually stamps). Called after every event that can\n// change the active style: writeSegmentColors, writeAnchorOverride (including its\n// style-anchor early returns, where only the attributes changed), and endColorOverride.\nfunc syncPendingStyle(cs *colorState) {\n\trunsState.background = activeBackground(cs)\n\trunsState.foreground = activeForeground(cs)\n\trunsState.backgroundSource = activeBackgroundSource(cs)\n\trunsState.foregroundSource = activeForegroundSource(cs)\n\trunsState.mode = deriveRunMode(cs)\n\trunsState.attributes = runsState.depth\n\trunsState.backgroundRGB = nil\n\trunsState.foregroundRGB = nil\n}\n\n// activeBackgroundSource/activeForegroundSource are activeBackground/activeForeground's\n// source-form counterparts: the top of the override history's source, or the segment\n// base's source when no override is active.\nfunc activeBackgroundSource(cs *colorState) color.Ansi {\n\tif bg := cs.currentColor.Background(); !bg.IsEmpty() {\n\t\treturn cs.currentColor.BackgroundSource()\n\t}\n\n\treturn cs.backgroundColorSource\n}\n\nfunc activeForegroundSource(cs *colorState) color.Ansi {\n\tif fg := cs.currentColor.Foreground(); !fg.IsEmpty() {\n\t\treturn cs.currentColor.ForegroundSource()\n\t}\n\n\treturn cs.foregroundColorSource\n}\n\n// deriveRunMode mirrors writeSegmentColors' own switch (and writeAnchorOverride's\n// matching branches) on cs's now-current active foreground and the package-level\n// terminal background, so a single derivation covers all three call sites instead of\n// each branch setting it inline (which would have to be threaded through every early\n// return).\nfunc deriveRunMode(cs *colorState) RunMode {\n\tfg := activeForeground(cs)\n\n\tswitch {\n\tcase fg.IsTransparent() && len(BackgroundColor) != 0:\n\t\treturn RunBackgroundPainted\n\tcase fg.IsTransparent():\n\t\treturn RunReverseVideo\n\tdefault:\n\t\treturn RunNormal\n\t}\n}\n","numLines":188,"startLine":1,"totalLines":188}},"sourceToolAssistantUUID":"cbc50e91-91b5-4087-8ce2-bb00f0fd258c","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"91b6063d-0971-44fa-8b42-c7a3c3558551","isSidechain":false,"promptId":"9720599f-fc68-40f3-a23c-002260c76b0f","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Jwa1Aop2XrspJQXZZzk7ud","type":"tool_result","content":"total 96\ndrwxr-xr-x 1 jande 197609 0 Jul 27 17:07 .\ndrwxr-xr-x 1 jande 197609 0 Jul 27 16:24 ..\n-rw-r--r-- 1 jande 197609 7544 Jul 27 14:39 colors.go\n-rw-r--r-- 1 jande 197609 5340 Jul 27 14:36 colors_test.go\n-rw-r--r-- 1 jande 197609 2698 Jul 27 17:06 decorate.go\n-rw-r--r-- 1 jande 197609 7444 Jul 27 17:06 fit.go\n-rw-r--r-- 1 jande 197609 8199 Jul 27 17:06 fit_test.go\n-rw-r--r-- 1 jande 197609 21836 Jul 27 17:07 svg.go\n-rw-r--r-- 1 jande 197609 14527 Jul 27 17:06 svg_test.go\n-rw-r--r-- 1 jande 197609 5996 Jul 27 15:01 window.go\n-rw-r--r-- 1 jande 197609 7441 Jul 27 15:04 window_test.go\n--- run.go ---\n 187 D:/oh-my-posh/src/terminal/run.go\n 123 D:/oh-my-posh/src/prompt/runs.go\n 229 D:/oh-my-posh/src/svg/colors.go\n 135 D:/oh-my-posh/src/svg/colors_test.go\n 66 D:/oh-my-posh/src/svg/decorate.go\n 259 D:/oh-my-posh/src/svg/fit.go\n 236 D:/oh-my-posh/src/svg/fit_test.go\n 558 D:/oh-my-posh/src/svg/svg.go\n 399 D:/oh-my-posh/src/svg/svg_test.go\n 155 D:/oh-my-posh/src/svg/window.go\n 203 D:/oh-my-posh/src/svg/window_test.go\n 2550 total","is_error":false}]},"uuid":"27da1585-c4a8-449f-b042-b590bde9413d","timestamp":"2026-07-27T17:09:17.113Z","toolUseResult":{"stdout":"total 96\ndrwxr-xr-x 1 jande 197609 0 Jul 27 17:07 .\ndrwxr-xr-x 1 jande 197609 0 Jul 27 16:24 ..\n-rw-r--r-- 1 jande 197609 7544 Jul 27 14:39 colors.go\n-rw-r--r-- 1 jande 197609 5340 Jul 27 14:36 colors_test.go\n-rw-r--r-- 1 jande 197609 2698 Jul 27 17:06 decorate.go\n-rw-r--r-- 1 jande 197609 7444 Jul 27 17:06 fit.go\n-rw-r--r-- 1 jande 197609 8199 Jul 27 17:06 fit_test.go\n-rw-r--r-- 1 jande 197609 21836 Jul 27 17:07 svg.go\n-rw-r--r-- 1 jande 197609 14527 Jul 27 17:06 svg_test.go\n-rw-r--r-- 1 jande 197609 5996 Jul 27 15:01 window.go\n-rw-r--r-- 1 jande 197609 7441 Jul 27 15:04 window_test.go\n--- run.go ---\n 187 D:/oh-my-posh/src/terminal/run.go\n 123 D:/oh-my-posh/src/prompt/runs.go\n 229 D:/oh-my-posh/src/svg/colors.go\n 135 D:/oh-my-posh/src/svg/colors_test.go\n 66 D:/oh-my-posh/src/svg/decorate.go\n 259 D:/oh-my-posh/src/svg/fit.go\n 236 D:/oh-my-posh/src/svg/fit_test.go\n 558 D:/oh-my-posh/src/svg/svg.go\n 399 D:/oh-my-posh/src/svg/svg_test.go\n 155 D:/oh-my-posh/src/svg/window.go\n 203 D:/oh-my-posh/src/svg/window_test.go\n 2550 total","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"91b6063d-0971-44fa-8b42-c7a3c3558551","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"27da1585-c4a8-449f-b042-b590bde9413d","isSidechain":false,"attachment":{"type":"nested_memory","path":"D:\\oh-my-posh\\.claude\\rules\\golang.md","content":{"path":"D:\\oh-my-posh\\.claude\\rules\\golang.md","type":"Project","content":"Refer to `skills/golang/SKILL.md` for the full Go coding standards.\n","globs":["**/*.go"],"contentDiffersFromDisk":true,"rawContent":"---\npaths:\n - \"**/*.go\"\n---\n\nRefer to `skills/golang/SKILL.md` for the full Go coding standards.\n"},"displayPath":".claude\\rules\\golang.md"},"type":"attachment","uuid":"b467ce0f-e33e-4686-b5d8-99d808bcc13c","timestamp":"2026-07-27T17:09:17.124Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b467ce0f-e33e-4686-b5d8-99d808bcc13c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSvz5m2hNZFy56GDrAHM","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm diving into the svg package structure to understand how the layering works across the core files like svg.go, fit.go, window.go, decorate.go, and colors.go.","signature":"CAISrQMKhwEIEBgCKkBkE5mkxuViMrGs2rS2L8a69Ul+yIrRAPQnkKCgJaCrCp8zgQRVzdYfF63sQd1aBSs6Z7r7IMt5ASxYXnTE0nvzMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDGd6EdcLZjd8AG94UxoM/yxAqFqmtrjY7UY1IjCmd5Sy6QirUwmgEAKkkP3XYUwReAcjIOzNhX+Yqama2dq5WbL9p5dCUEb1w1G7T98q0gEzUp0KUPFn16+tH7vgFrtN8rAjRR1iJjnARSIahcVdoLB3VpAnk1ywleOPien5k+0hXxV2hw7XqXjhq/p+XzoxV2JNBa3VYBlaKKo3xESIKfJj+4lXMJ2TFtl8Nunz+FZepNm+em2vdILTZu1gHFsp4m6uXvJx+VwDPJOj8UTk8vBI64/m4bZN2wD6Y879R3vGG9V1AiPf576dYft/To/fFiO5Ah8U+T5kDzyZA0ZqaTcPQGzTUcqed2DVzxhIIbpTa9BareeBpI+ixfbN0akdeHkYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":4683,"cache_read_input_tokens":72046,"output_tokens":145,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":4683,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":145,"cache_read_input_tokens":72046,"cache_creation_input_tokens":4683,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":4683},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSvz4bLHTKVRH7sZKGUo","attributionSkill":"code-changes","type":"assistant","uuid":"bc72f5cc-a549-40a9-8005-5444cf3a1ee9","timestamp":"2026-07-27T17:09:19.973Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bc72f5cc-a549-40a9-8005-5444cf3a1ee9","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSvz5m2hNZFy56GDrAHM","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01TnJutXKkyxnPwg7VjLsA5k","name":"Read","input":{"file_path":"D:\\oh-my-posh\\src\\svg\\svg.go"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":4683,"cache_read_input_tokens":72046,"output_tokens":145,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":4683,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":145,"cache_read_input_tokens":72046,"cache_creation_input_tokens":4683,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":4683},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSvz4bLHTKVRH7sZKGUo","attributionSkill":"code-changes","type":"assistant","uuid":"3e3a8fb3-45b0-4cb9-b7eb-fea51897df05","timestamp":"2026-07-27T17:09:20.043Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3e3a8fb3-45b0-4cb9-b7eb-fea51897df05","isSidechain":false,"promptId":"9720599f-fc68-40f3-a23c-002260c76b0f","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01TnJutXKkyxnPwg7VjLsA5k","type":"tool_result","content":"1\t// Package svg renders a captured terminal.Run stream to a self-contained SVG\n2\t// document. It is a sibling encoder to the ANSI writer (see\n3\t// terminal.CaptureRuns): both start from the same Run stream, one emitting\n4\t// escape sequences, the other emitting markup, so neither has to parse the\n5\t// other's output.\n6\tpackage svg\n7\t\n8\timport (\n9\t\t\"hash/fnv\"\n10\t\t\"math\"\n11\t\t\"strconv\"\n12\t\t\"strings\"\n13\t\n14\t\t\"github.com/jandedobbeleer/oh-my-posh/src/color\"\n15\t\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n16\t)\n17\t\n18\t// Options configures the SVG canvas: font metrics, plus the two colors a Run\n19\t// stream cannot carry itself. BackgroundSource/ForegroundSource can hold\n20\t// \"accent\" or the ansiColorCodes name \"default\", both of which resolve\n21\t// against live package state in the ANSI writer (color.Defaults' accent,\n22\t// the real terminal background) rather than anything in the Run itself.\n23\t// Taking them as explicit fields — instead of Encode reaching for that\n24\t// package state — is what makes color resolution unit-testable.\n25\ttype Options struct {\n26\t\tTerminalBackground *color.RGB\n27\t\tAccentForeground *color.RGB\n28\t\tAccentBackground *color.RGB\n29\t\t// CanvasBackground serves two roles that must stay the same color for a\n30\t\t// reverse-video cutout to read as a hole punched through to the window\n31\t\t// behind it, rather than a mismatched patch: it is both the glyph color\n32\t\t// painted for a transparent-foreground run whose real terminal\n33\t\t// background is unknown (terminal.RunReverseVideo — see paintRun) and,\n34\t\t// since 6e2377a9, the fill of the terminal window Encode now draws\n35\t\t// behind every row (see window.go). A real terminal shows its own\n36\t\t// default background in both places; absent one to match, withDefaults\n37\t\t// falls back to the retired PNG renderer's own fixed #151515 for both.\n38\t\tCanvasBackground *color.RGB\n39\t\tFontFamily string\n40\t\tFontSize float64\n41\t\t// CellWidth is the horizontal advance of one monospace cell, in the same\n42\t\t// unit FontSize is (an absolute value, not a ratio of it — a caller sets\n43\t\t// both explicitly, e.g. testOptions' FontSize:10/CellWidth:10 pairing).\n44\t\t// Zero falls back to FontSize*defaultCellWidth (~0.6021em), Hack Nerd\n45\t\t// Font's own advance ratio read straight from its hmtx table (ASCII 'M':\n46\t\t// 1233 font units / 2048 units-per-em — see defaultCellWidth's doc\n47\t\t// comment). That default matches the bundled font stack (see\n48\t\t// defaultFontFamily), but the website renders these in Victor Mono,\n49\t\t// whose advance ratio is measurably different (0.5455em) — a caller\n50\t\t// with a different font should set CellWidth explicitly rather than\n51\t\t// assume this default (see cli/config_export_svg.go's svgOptions for\n52\t\t// how the CLI's --cell-width, quoted as a font-size ratio, converts to\n53\t\t// this field's absolute unit).\n54\t\tCellWidth float64\n55\t\t// LineHeight is the vertical advance of one row, in the same absolute\n56\t\t// unit as CellWidth. Zero falls back to FontSize*defaultLineHeight\n57\t\t// (~1.397em), Hack Nerd Font's own hhea-derived line height times the\n58\t\t// retired PNG renderer's lineSpacing constant (see defaultLineHeight's\n59\t\t// doc comment). Like CellWidth, this is font-specific — Victor Mono's\n60\t\t// is ~1.691em — and a caller rendering in a different font should set\n61\t\t// it explicitly.\n62\t\tLineHeight float64\n63\t\t// Padding is the gap between the window's rounded edge and the content\n64\t\t// grid on all four sides (the title bar reserves additional space of\n65\t\t// its own above the top padding — see windowGeometry). It defaults to\n66\t\t// FontSize, which is exactly the retired PNG renderer's own padding\n67\t\t// constant (48px) scaled by FontSize/48 at this package's default\n68\t\t// 16px FontSize — see newWindowGeometry's doc comment.\n69\t\tPadding float64\n70\t\t// Columns fixes the canvas' content width at Columns*CellWidth,\n71\t\t// independent of any row's actual content: the terminal-window\n72\t\t// presentation this package restores needs a stable frame size\n73\t\t// regardless of what a theme renders, exactly like every reference PNG\n74\t\t// the old renderer produced was a fixed-width window rather than one\n75\t\t// that shrink-wrapped to content. Zero falls back to defaultColumns\n76\t\t// (120), matching both the retired renderer's own default and the\n77\t\t// image-export CLI command's --terminal-width flag default, so a\n78\t\t// caller that doesn't set this still gets the terminal-shaped canvas\n79\t\t// the reference PNGs always had.\n80\t\tColumns int\n81\t}\n82\t\n83\tconst (\n84\t\tdefaultFontFamily = `\"CaskaydiaCove Nerd Font\", \"FiraCode Nerd Font\", \"Hack Nerd Font\", ui-monospace, monospace`\n85\t\tdefaultFontSize = 16.0\n86\t\t// defaultColumns matches the retired PNG renderer's own defaultColumns\n87\t\t// and the image-export CLI command's --terminal-width flag default: a\n88\t\t// caller that never sets Options.Columns still gets a 120-column window.\n89\t\tdefaultColumns = 120\n90\t\n91\t\t// defaultCellWidth is Hack Nerd Font's true advance ratio for an ASCII\n92\t\t// glyph, read directly from the font's own hmtx table rather than\n93\t\t// reverse-engineered from a rendered reference: HackNerdFont-Regular.ttf\n94\t\t// reports unitsPerEm 2048 and an 'M' advance of 1233 units, 1233/2048 =\n95\t\t// 0.60205...em. Every Nerd Font Private Use Area icon measured\n96\t\t// alongside it (E0B0, F408, F044, E62A, E725, F489) also advances\n97\t\t// exactly 1.000 cell, in both Hack and Victor Mono — the icons overflow\n98\t\t// their own cell's ink, sometimes past 1.8 cells wide, but that is by\n99\t\t// design (a terminal renders the next glyph a full cell over\n100\t\t// regardless, letting the ink spill) and not something to budget extra\n101\t\t// cell width for; see the now-removed doublewidth.go this package used\n102\t\t// to carry for exactly that mistake.\n103\t\t//\n104\t\t// A prior version of this default used 7.0/12.0 (0.58333em), backed out\n105\t\t// from the retired PNG renderer's own reference canvas arithmetic. That\n106\t\t// number encodes a bug, not a font property: the PNG renderer computed\n107\t\t// its advance via `font.Drawer.MeasureString(\" \") >> 6`, a 26.6\n108\t\t// fixed-point shift that truncates the fractional pixel rather than\n109\t\t// rounding it (image.go's fontHeight/spaceAdvance). At its 48px\n110\t\t// reference em, Hack's true advance is 48*0.60205 = 28.9px, which the\n111\t\t// PNG renderer truncated down to 28px — 0.9px lost per column, 3.2% of\n112\t\t// the true advance. Reproducing that truncation here would bake a\n113\t\t// rounding defect specific to one em size into a vector format that has\n114\t\t// no rounding to do at all, and it would be flatly wrong for any other\n115\t\t// font or FontSize. See defaultLineHeight for the matching line-height\n116\t\t// derivation and the residual drift this choice leaves against the old\n117\t\t// PNG references.\n118\t\tdefaultCellWidth = 1233.0 / 2048.0\n119\t\n120\t\t// defaultLineHeight is Hack Nerd Font's own line height — hhea's\n121\t\t// Ascender - Descender + LineGap, 2384 units at unitsPerEm 2048 =\n122\t\t// 1.1641em — times 1.2, the retired PNG renderer's own lineSpacing\n123\t\t// constant (image.go: `ir.lineSpacing = 1.2`, applied as\n124\t\t// `regular.Metrics().Height * lineSpacing`, image.go ~:310-312,\n125\t\t// ~:727-761). 1.1641 * 1.2 = 1.397em.\n126\t\t//\n127\t\t// A prior version of this default was a flat 1.4, backed out from the\n128\t\t// PNG reference renders' pixel dimensions (48px em, 66px content rows,\n129\t\t// 66/48 ≈ 1.375) rather than font metrics. That number is close to\n130\t\t// Victor Mono's own ratio (1.4091 * 1.2 = 1.691em) but every reference\n131\t\t// PNG was actually rendered in Hack (1.397em) — a coincidence of\n132\t\t// fitting the wrong font, not a derivation. See defaultCellWidth's doc\n133\t\t// comment for why a metric derived from the font, not from the old\n134\t\t// renderer's rounded pixels, is the correct default here too.\n135\t\tdefaultLineHeight = (2384.0 / 2048.0) * 1.2\n136\t)\n137\t\n138\t// defaultCanvasBackground is the retired PNG renderer's own fixed fallback\n139\t// (image.go's defaultBackgroundColor, #151515) for the glyph color a\n140\t// transparent-foreground run paints when no real terminal background is\n141\t// known; see Options.CanvasBackground.\n142\tvar defaultCanvasBackground = color.RGB{R: 0x15, G: 0x15, B: 0x15}\n143\t\n144\t// withDefaults fills every zero-value metric with a sensible default, so a\n145\t// caller only has to set the fields it cares about — typically just the two\n146\t// colors — and still gets a fully specified canvas.\n147\tfunc (o *Options) withDefaults() Options {\n148\t\tout := *o\n149\t\n150\t\tif out.FontFamily == \"\" {\n151\t\t\tout.FontFamily = defaultFontFamily\n152\t\t}\n153\t\n154\t\tif out.FontSize == 0 {\n155\t\t\tout.FontSize = defaultFontSize\n156\t\t}\n157\t\n158\t\tif out.CellWidth == 0 {\n159\t\t\tout.CellWidth = out.FontSize * defaultCellWidth\n160\t\t}\n161\t\n162\t\tif out.LineHeight == 0 {\n163\t\t\tout.LineHeight = out.FontSize * defaultLineHeight\n164\t\t}\n165\t\n166\t\tif out.Padding == 0 {\n167\t\t\tout.Padding = out.FontSize\n168\t\t}\n169\t\n170\t\tif out.CanvasBackground == nil {\n171\t\t\tout.CanvasBackground = &defaultCanvasBackground\n172\t\t}\n173\t\n174\t\tif out.Columns <= 0 {\n175\t\t\tout.Columns = defaultColumns\n176\t\t}\n177\t\n178\t\treturn out\n179\t}\n180\t\n181\t// Encode renders rows of runs — one []terminal.Run per output row, as\n182\t// prompt.Engine.CapturedRuns returns — into a self-contained SVG document.\n183\t//\n184\t// Layout is a monospace cell grid: every run advances the running column by\n185\t// its own Cells, never by measuring glyphs. Each element also carries\n186\t// textLength/lengthAdjust pinning it to exactly Cells*CellWidth, so it lands\n187\t// on the grid regardless of the browser's own font metrics. A Nerd Font\n188\t// icon's ink commonly overflows that one-cell box (see defaultCellWidth's\n189\t// doc comment on measured ink-vs-advance ratios) — that overflow is left\n190\t// alone, exactly like a real terminal lets a wide glyph draw over the\n191\t// following cell's left edge, rather than compensated for with extra grid\n192\t// width.\n193\t//\n194\t// A run with Cells == 0 (e.g. a hyperlink's URL text — see terminal.Run's\n195\t// doc comment) is skipped entirely: no rect, no text, no column advance.\n196\t//\n197\t// font-family/font-size/white-space are written as presentation attributes\n198\t// on the root element rather than a
SVG (new)
PNG (reference)
' > \"$SP/preview/index.html\" && ls \"$SP/preview\"","description":"Build side-by-side preview page"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":499,"cache_read_input_tokens":128515,"output_tokens":2232,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":499,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2232,"cache_read_input_tokens":128515,"cache_creation_input_tokens":499,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":499},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzHrZstmPEAya9du4zg","type":"assistant","uuid":"23c1d7ae-c8f0-4e4f-bf30-21f8f7604e2c","timestamp":"2026-07-27T17:53:10.501Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"23c1d7ae-c8f0-4e4f-bf30-21f8f7604e2c","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01NBhYaTLHx6FVsfsvYrDUuF","type":"tool_result","content":"glowsticks.svg\nglowsticks-old.png\nindex.html","is_error":false}]},"uuid":"10b2c833-a263-4b71-ae3b-dc7faaf2440e","timestamp":"2026-07-27T17:53:13.357Z","toolUseResult":{"stdout":"glowsticks.svg\nglowsticks-old.png\nindex.html","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"23c1d7ae-c8f0-4e4f-bf30-21f8f7604e2c","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"10b2c833-a263-4b71-ae3b-dc7faaf2440e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzLWRW8bDMHxjZmgGjc","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01XoWKzxBY5R4rky5EiEk3dc","name":"mcp__Claude_Browser__preview_start","input":{"url":"file:///C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/preview/index.html"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2259,"cache_read_input_tokens":129014,"output_tokens":136,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2259,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":136,"cache_read_input_tokens":129014,"cache_creation_input_tokens":2259,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2259},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzLQSbAMY6gViiE3kia","type":"assistant","uuid":"1b852f5a-cce7-4dd8-aca0-254135760def","timestamp":"2026-07-27T17:53:17.771Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1b852f5a-cce7-4dd8-aca0-254135760def","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"type":"tool_result","content":"preview_start timed out after 300s. The underlying operation (browser extension, CDP, Apple Events) may be stuck or unresponsive.","is_error":true,"tool_use_id":"toolu_01XoWKzxBY5R4rky5EiEk3dc"}]},"uuid":"eddc1628-5f29-46b2-a60f-8327dc9ac741","timestamp":"2026-07-27T17:58:20.343Z","toolUseResult":"Error: preview_start timed out after 300s. The underlying operation (browser extension, CDP, Apple Events) may be stuck or unresponsive.","sourceToolAssistantUUID":"1b852f5a-cce7-4dd8-aca0-254135760def","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"eddc1628-5f29-46b2-a60f-8327dc9ac741","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"fcac62e4-c5ce-4593-baab-687926b5e60a","timestamp":"2026-07-27T17:58:20.355Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fcac62e4-c5ce-4593-baab-687926b5e60a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzj6HLQjxQdxrgHyFjQ","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The browser preview timed out, so I'm considering headless rasterization instead. I could reason through the whitespace bug without visual verification, but I want to check what tools are available—maybe resvg or another Node-based SVG renderer that I've used before.","signature":"CAISiAgKhwEIEBgCKkALITnEJnB+ii2lMIqxwiX9PJWmcoPoPQ/WjeJR37KmExa3CxLRHyO78Fl30ZzVdSEwRzSyCN7dLX9TrYkz2qerMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDMLup4DuyZIR8yAPjRoMMXOvqyLPRSfZI9QDIjAmVZOv6z3DHOtHKHc/kRaP7eDQ64EHcNK6rN8EAHwH1bhy8NAFxmWZbfl/9s5XBLUqrQbO3cFC010fazwvdwnrx8Rn0U3qqsmxQIEQmyug9TGJRit4d1pZ0/0V2EEBQRMCZbh5fN8Fjh4Mk6er58DOJI1wtzyoLvzPsweIn7HJDRP/wH0jJ+bC6dHGyUfr8jPT1RHT25Jg7jooG906DzfkD6WNWs6ArP5PAIVFQrmTshuDl+/ojRDSnhDml4t7Z9bKaHm01Igu0fCEt1LJ/4Qad7exv9c3lEX0rzXqaacF+Xc4OuM8eGJ8P/wDL7a9lAJ0pHRJIWYrk+J6IRsBH6VhbfiUdxgQuqjOtFirZpFJGTLWwxnuFFa9R1/0gBCr2coulZR+wSiYbJv/UINlf9ekThhGHm4iFUSzUsDxgBYNu5Dkm3dCiXQdJmJ9NBeDQvM0rBoFd2IJDH0DjQKHDZeUKqjcl1CupMq073ew5xMcJY82Ha7xIeH8u4wmrGdxuGNfWr2t4LW4Gj7RHabaINuCs3PCwlJi3PVkU/sL+jM/0ezSgoW3UsA/+vbRq5zVVIoxWPfEhRWzuv4QB2UrcMBjtRQ3G/tdfZZ9WDF9ZNYmML4SjXLcD6DDVj3BipO6hZ/4fu7/VQnalW0d9LjKMiQY0aINMESKhKB9wkjxUdKHZj8lhNpJcuItsM1xhDBfxlDGg8e8IN7Z5oa449Ez9NzTx0ZowJlQcJNd98h15NSsJbe3BNIwX4faVy+49J6KHpMZW0lGPMQU1im9idDERUBBSCXRPUrCkYhceXQ4BWAmTX9DOsrzvrR1AcvYMaQkuLsB5D+tI3LzjF4SW831XMgO6eCDm5ohTvJSPCSYaHDf37tV+VyBzLGri5dXSqEQgu4AAtIo/b4Wzzyv1MFzor9tz2xj46+ntBilPeSau0+ZSNdjIJS683U/Z06CyhwfPq58cWrOdM6+dkZ3/LTFm9bv7auW6FktXfTaMbjQ+20ATegD3w3Pvmzso/kFAinXzIWU6kDutzwawiyfsqzwJSjFqmlcq3Sz8EaXs4LBsKlsW4ZhuNlHcJohT4PPP1ixZDzdo0J4la24icC5bCoua+zZlxEfJBXMAyQCQN467ntitSrgCQ6Ttblmkqp7/A4DXhAYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":323,"cache_read_input_tokens":131273,"output_tokens":414,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":323,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":414,"cache_read_input_tokens":131273,"cache_creation_input_tokens":323,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":323},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzj2bL1Kn1bXzCWxHZ5","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"2bfa4ca3-8fa6-4109-97bd-2caca1c1003b","timestamp":"2026-07-27T17:58:26.969Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2bfa4ca3-8fa6-4109-97bd-2caca1c1003b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzj6HLQjxQdxrgHyFjQ","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01EBWnpeyzEA7fkfhx9FwZek","name":"Bash","input":{"command":"ls tools/ 2>/dev/null; node -v 2>/dev/null; ls tools/svg-png-compare 2>/dev/null","description":"Check tooling"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":323,"cache_read_input_tokens":131273,"output_tokens":414,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":323,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":414,"cache_read_input_tokens":131273,"cache_creation_input_tokens":323,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":323},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzj2bL1Kn1bXzCWxHZ5","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"f5678e9d-5614-47a8-a5c9-ece52316131c","timestamp":"2026-07-27T17:58:27.387Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f5678e9d-5614-47a8-a5c9-ece52316131c","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01EBWnpeyzEA7fkfhx9FwZek","type":"tool_result","content":"svg-png-compare\nv26.3.0\r\nbin\ncompare.mjs\nfonts\nnode_modules\nout\npackage.json\npackage-lock.json\nzip.mjs","is_error":false}]},"uuid":"d16e7810-77c6-43e4-b6a6-765db56f2041","timestamp":"2026-07-27T17:58:28.688Z","toolUseResult":{"stdout":"svg-png-compare\nv26.3.0\r\nbin\ncompare.mjs\nfonts\nnode_modules\nout\npackage.json\npackage-lock.json\nzip.mjs","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"f5678e9d-5614-47a8-a5c9-ece52316131c","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d16e7810-77c6-43e4-b6a6-765db56f2041","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzjiXuwtz3w2MCgz3MU","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_018PKjg8SE1gGmcDx4PfykoH","name":"Bash","input":{"command":"cd tools/svg-png-compare && cat package.json && ls node_modules | head -20 && ls bin fonts 2>/dev/null | head","description":"Inspect compare tool"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":471,"cache_read_input_tokens":131596,"output_tokens":122,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":471,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":122,"cache_read_input_tokens":131596,"cache_creation_input_tokens":471,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":471},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzjdz4kodXyFNwuJMYR","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"7c313946-d98b-45b9-8add-2a552368b425","timestamp":"2026-07-27T17:58:32.319Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7c313946-d98b-45b9-8add-2a552368b425","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_018PKjg8SE1gGmcDx4PfykoH","type":"tool_result","content":"{\n \"name\": \"svg-png-compare\",\n \"version\": \"0.0.0\",\n \"private\": true,\n \"type\": \"module\",\n \"description\": \"Developer-only acceptance harness: rasterizes the SVG prompt exporter and diffs it against the retired PNG renderer for human review. Not wired into CI or npm run build.\",\n \"scripts\": {\n \"compare\": \"node compare.mjs\"\n },\n \"devDependencies\": {\n \"pixelmatch\": \"^7.2.0\",\n \"playwright\": \"1.59.1\",\n \"pngjs\": \"^7.0.0\"\n }\n}\npixelmatch\nplaywright\nplaywright-core\npngjs\nbin:\nomp-png.exe\nomp-svg.exe\n\nfonts:\nHackNerdFont-Regular.ttf","is_error":false}]},"uuid":"9354de60-2852-4967-ab56-1a6afca87d9b","timestamp":"2026-07-27T17:58:33.524Z","toolUseResult":{"stdout":"{\n \"name\": \"svg-png-compare\",\n \"version\": \"0.0.0\",\n \"private\": true,\n \"type\": \"module\",\n \"description\": \"Developer-only acceptance harness: rasterizes the SVG prompt exporter and diffs it against the retired PNG renderer for human review. Not wired into CI or npm run build.\",\n \"scripts\": {\n \"compare\": \"node compare.mjs\"\n },\n \"devDependencies\": {\n \"pixelmatch\": \"^7.2.0\",\n \"playwright\": \"1.59.1\",\n \"pngjs\": \"^7.0.0\"\n }\n}\npixelmatch\nplaywright\nplaywright-core\npngjs\nbin:\nomp-png.exe\nomp-svg.exe\n\nfonts:\nHackNerdFont-Regular.ttf","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"7c313946-d98b-45b9-8add-2a552368b425","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9354de60-2852-4967-ab56-1a6afca87d9b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzk3NEyANHM68VmGM2Q","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Playwright gives me access to a real browser, which is perfect for debugging this rendering issue. I'll create a screenshot script that loads the SVG in Chromium with the Hack font properly registered, then check how compare.mjs handles font injection to reuse that approach.","signature":"CAIS9wMKhwEIEBgCKkBcwitGOzjU4KSl9fNvejQM/1nYpDJENueMR9fFZsFJYJlCBjIzH7II0OxY+BKntZEZbIioIxqnHAgri52zVLVJMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDFvS8VkL2X2BiMnFphoMnP1tE16ZwpzvYnonIjC0mffg8qtWTDJ0hEEg3THBYJDoHMmKVzmd8+x2oXmAu7EdYSBTkTlb3NRAkE52iVEqnAJco6OYtu2a7dyCm8VsCKGfCXtobQv8yJf2Tc7TCn/DZ8/za8TFU6oWbyV7I2tfdsFWN1mGErkhq4xMPB8zHCcxhCH9+GHPqEgV8tGfNo9Fv0fSkdGnTuvi5DuSDoZy/Te1WfaTqOQCDnf1ZsgZmfRpx0UAuhcUeIhdEaU2s9g7PKG1q9sPOjaRDQ2T0/uzAt+dOvPNm0ZWpHzdNBJBSRQ5Lh23F/c2s0TRWi0Kb9IUnQlqz0A+pRSoJHkU/baSmZcZ+uHWuMxakws4eJD7Y510n0JKmoZFVUXboW8N4wkLH4bobgGzrsnF5akeb5l7yblMSuZQ6GKsfbsTGeCEBoCbXecJ3VD0zuWzLiuvcHHLaOtqaFu0C89UX9iemRgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":388,"cache_read_input_tokens":132067,"output_tokens":167,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":388,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":167,"cache_read_input_tokens":132067,"cache_creation_input_tokens":388,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":388},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzjzhztr6YSQLyVYhP1","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"36d8fed2-1458-4f8e-b997-efb0f2b4befc","timestamp":"2026-07-27T17:58:37.613Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"36d8fed2-1458-4f8e-b997-efb0f2b4befc","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzk3NEyANHM68VmGM2Q","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_018eJJ5pN66f5MCkdesZbU35","name":"Read","input":{"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\compare.mjs"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":388,"cache_read_input_tokens":132067,"output_tokens":167,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":388,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":167,"cache_read_input_tokens":132067,"cache_creation_input_tokens":388,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":388},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzjzhztr6YSQLyVYhP1","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"363f3eaf-432f-4c06-a81f-4e97665a27b1","timestamp":"2026-07-27T17:58:37.615Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"363f3eaf-432f-4c06-a81f-4e97665a27b1","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_018eJJ5pN66f5MCkdesZbU35","type":"tool_result","content":"1\t#!/usr/bin/env node\n2\t// SVG-vs-PNG acceptance harness — a developer tool, not a CI gate.\n3\t//\n4\t// Builds the retired PNG renderer (from a worktree pinned to the last commit\n5\t// before PNG support was removed) and the current SVG-only renderer, exports\n6\t// the same themes from both against the same deterministic --data fixture,\n7\t// rasterizes each SVG headlessly in the *same font* the PNG renderer used\n8\t// (Hack Nerd Font) at a matched scale, diffs the raster against the\n9\t// reference PNG with pixelmatch, and writes an index.html contact sheet so a\n10\t// human can eyeball whether they still read as the same prompt.\n11\t//\n12\t// Usage (run from this directory, after `npm install` once):\n13\t//\n14\t// node compare.mjs six default themes\n15\t// node compare.mjs cobalt2 atomic only the named themes\n16\t// node compare.mjs --all every theme in ../../themes\n17\t// node compare.mjs --skip-build reuse bin/*.exe from a prior run\n18\t// node compare.mjs --png-worktree override the old renderer's worktree\n19\t//\n20\t// Output lands in ./out/: .png (reference), .svg (exported),\n21\t// .raster.png (headless SVG raster), .diff.png, and\n22\t// index.html.\n23\timport { spawnSync } from \"node:child_process\";\n24\timport fs from \"node:fs\";\n25\timport path from \"node:path\";\n26\timport { fileURLToPath } from \"node:url\";\n27\t\n28\timport { PNG } from \"pngjs\";\n29\timport pixelmatch from \"pixelmatch\";\n30\timport { chromium } from \"playwright\";\n31\t\n32\timport { extractZipEntry } from \"./zip.mjs\";\n33\t\n34\tconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n35\tconst REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");\n36\tconst THEMES_DIR = path.join(REPO_ROOT, \"themes\");\n37\tconst DATA_FIXTURE = path.join(REPO_ROOT, \"src\", \"prompt\", \"testdata\", \"fixtures\", \"prompt.data.json\");\n38\t\n39\tconst BIN_DIR = path.join(__dirname, \"bin\");\n40\tconst FONT_DIR = path.join(__dirname, \"fonts\");\n41\tconst OUT_DIR = path.join(__dirname, \"out\");\n42\tconst FONT_PATH = path.join(FONT_DIR, \"HackNerdFont-Regular.ttf\");\n43\tconst FONT_FAMILY = \"Hack Nerd Font\";\n44\t\n45\tconst EXE = process.platform === \"win32\" ? \".exe\" : \"\";\n46\tconst OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);\n47\tconst NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);\n48\t\n49\tconst DEFAULT_THEMES = [\n50\t \"M365Princess\",\n51\t \"clean-detailed\",\n52\t \"cloud-native-azure\",\n53\t \"cobalt2\",\n54\t \"jandedobbeleer\",\n55\t \"atomic\",\n56\t];\n57\t\n58\t// The PNG renderer's reference em size was 48px (see src/svg/window.go's\n59\t// newWindowGeometry doc comment); the SVG exporter has no --font-size flag\n60\t// and always renders at a 16px em (src/svg/svg.go's defaultFontSize). 48/16\n61\t// = 3, so rasterizing the SVG's own natural geometry at 3x device scale\n62\t// reproduces the PNG's reference resolution exactly, without needing a flag\n63\t// that doesn't exist. Every window-chrome constant in svg/window.go is\n64\t// already derived as `constant * (FontSize / 48)`, so this 3x upscale is\n65\t// mathematically the same shape the SVG package would produce if it *could*\n66\t// be asked for FontSize 48 directly.\n67\tconst DEVICE_SCALE_FACTOR = 3;\n68\t\n69\t// pixelmatch match sensitivity. 0.1 is pixelmatch's own documented default\n70\t// and already tolerant of the antialiasing/subpixel noise a font rasterizer\n71\t// introduces; see parseArgs' --threshold for overriding it.\n72\tconst DEFAULT_THRESHOLD = 0.1;\n73\t\n74\tfunction parseArgs(argv) {\n75\t const opts = {\n76\t themes: null,\n77\t all: false,\n78\t skipBuild: false,\n79\t pngWorktree: process.env.OMP_PNG_WORKTREE || path.join(os_tmpdir(), \"omp-png\"),\n80\t threshold: DEFAULT_THRESHOLD,\n81\t };\n82\t\n83\t const positional = [];\n84\t\n85\t for (let i = 0; i < argv.length; i++) {\n86\t const arg = argv[i];\n87\t\n88\t switch (arg) {\n89\t case \"--all\":\n90\t opts.all = true;\n91\t break;\n92\t case \"--skip-build\":\n93\t opts.skipBuild = true;\n94\t break;\n95\t case \"--png-worktree\":\n96\t opts.pngWorktree = argv[++i];\n97\t break;\n98\t case \"--threshold\":\n99\t opts.threshold = Number.parseFloat(argv[++i]);\n100\t break;\n101\t default:\n102\t if (arg.startsWith(\"--\")) {\n103\t throw new Error(`unknown flag: ${arg}`);\n104\t }\n105\t\n106\t positional.push(arg);\n107\t }\n108\t }\n109\t\n110\t if (positional.length > 0) {\n111\t opts.themes = positional;\n112\t }\n113\t\n114\t return opts;\n115\t}\n116\t\n117\tfunction os_tmpdir() {\n118\t return process.env.TEMP || process.env.TMP || \"/tmp\";\n119\t}\n120\t\n121\tfunction resolveThemeList(opts) {\n122\t if (opts.all) {\n123\t return fs\n124\t .readdirSync(THEMES_DIR)\n125\t .filter((f) => f.endsWith(\".omp.json\"))\n126\t .map((f) => f.slice(0, -\".omp.json\".length))\n127\t .sort();\n128\t }\n129\t\n130\t return opts.themes ?? DEFAULT_THEMES;\n131\t}\n132\t\n133\tfunction run(cmd, args, cwd) {\n134\t console.log(`+ ${cmd} ${args.join(\" \")}${cwd ? ` (in ${cwd})` : \"\"}`);\n135\t const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n136\t\n137\t if (res.error) {\n138\t throw res.error;\n139\t }\n140\t\n141\t if (res.status !== 0) {\n142\t throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n143\t }\n144\t}\n145\t\n146\tfunction buildBinaries(opts) {\n147\t fs.mkdirSync(BIN_DIR, { recursive: true });\n148\t\n149\t const oldSrc = path.join(opts.pngWorktree, \"src\");\n150\t\n151\t if (!fs.existsSync(oldSrc)) {\n152\t throw new Error(\n153\t `retired PNG renderer worktree not found at ${opts.pngWorktree} (expected a Go module at ${oldSrc}). ` +\n154\t \"Pass --png-worktree to point at the worktree checked out at the last commit before PNG \" +\n155\t \"support was removed.\",\n156\t );\n157\t }\n158\t\n159\t console.log(\"\\nBuilding retired PNG renderer...\");\n160\t run(\"go\", [\"build\", \"-o\", OLD_BIN, \".\"], oldSrc);\n161\t\n162\t console.log(\"\\nBuilding current SVG renderer...\");\n163\t run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n164\t}\n165\t\n166\t// The PNG renderer downloads and caches Hack.zip itself (see\n167\t// cli/image/image.go's loadDefaultFonts); reuse that same cache instead of\n168\t// fetching it twice. Falls back to downloading it fresh if no cache is\n169\t// found anywhere.\n170\tfunction ensureFont() {\n171\t if (fs.existsSync(FONT_PATH)) {\n172\t return;\n173\t }\n174\t\n175\t fs.mkdirSync(FONT_DIR, { recursive: true });\n176\t\n177\t const candidateCaches = [\n178\t process.env.OMP_CACHE_DIR,\n179\t process.platform === \"win32\" ? path.join(process.env.LOCALAPPDATA ?? \"\", \"oh-my-posh\") : null,\n180\t process.env.XDG_CACHE_HOME ? path.join(process.env.XDG_CACHE_HOME, \"oh-my-posh\") : null,\n181\t path.join(os_home(), \".cache\", \"oh-my-posh\"),\n182\t ].filter(Boolean);\n183\t\n184\t for (const dir of candidateCaches) {\n185\t const zipPath = path.join(dir, \"Hack.zip\");\n186\t\n187\t if (fs.existsSync(zipPath)) {\n188\t console.log(`Extracting HackNerdFont-Regular.ttf from cached ${zipPath}`);\n189\t const zipBuf = fs.readFileSync(zipPath);\n190\t const ttf = extractZipEntry(zipBuf, \"HackNerdFont-Regular.ttf\");\n191\t fs.writeFileSync(FONT_PATH, ttf);\n192\t return;\n193\t }\n194\t }\n195\t\n196\t console.log(\"No cached Hack.zip found; downloading it (same URL the retired PNG renderer used)...\");\n197\t downloadAndExtractFont();\n198\t}\n199\t\n200\tfunction os_home() {\n201\t return process.env.USERPROFILE || process.env.HOME || os_tmpdir();\n202\t}\n203\t\n204\tasync function downloadAndExtractFont() {\n205\t const url = \"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip\";\n206\t const res = await fetch(url);\n207\t\n208\t if (!res.ok) {\n209\t throw new Error(`failed to download ${url}: ${res.status} ${res.statusText}`);\n210\t }\n211\t\n212\t const zipBuf = Buffer.from(await res.arrayBuffer());\n213\t const ttf = extractZipEntry(zipBuf, \"HackNerdFont-Regular.ttf\");\n214\t fs.writeFileSync(FONT_PATH, ttf);\n215\t}\n216\t\n217\tfunction readPngDimensions(pngPath) {\n218\t const buf = fs.readFileSync(pngPath);\n219\t // IHDR is the first chunk in a well-formed PNG: 8-byte signature, 4-byte\n220\t // length, 4-byte \"IHDR\", then width/height as big-endian uint32s.\n221\t return { width: buf.readUInt32BE(16), height: buf.readUInt32BE(20) };\n222\t}\n223\t\n224\t// Renders svgMarkup inside a headless page whose viewport (at\n225\t// DEVICE_SCALE_FACTOR) targets targetWidth x targetHeight device pixels —\n226\t// the reference PNG's own dimensions — so the SVG's vector content is\n227\t// rescaled by the browser itself (crisp) rather than by resampling a raster\n228\t// afterwards. The SVG keeps its own viewBox, so content scales\n229\t// proportionally to fill the forced box.\n230\tasync function rasterizeSVG(browser, svgMarkup, fontBase64, targetWidth, targetHeight) {\n231\t const cssWidth = Math.max(1, Math.round(targetWidth / DEVICE_SCALE_FACTOR));\n232\t const cssHeight = Math.max(1, Math.round(targetHeight / DEVICE_SCALE_FACTOR));\n233\t\n234\t // The exporter's carries no preserveAspectRatio, so it defaults to\n235\t // \"xMidYMid meet\": the browser would scale the viewBox uniformly to fit\n236\t // inside the CSS box forced below and letterbox/center it, rather than\n237\t // filling that box — which silently reintroduces a spatial offset between\n238\t // the two rasters (content shifted down/right by the letterboxing gap)\n239\t // that swamped the diff with edge noise before this fix. \"none\" makes the\n240\t // two axes scale independently, actually filling cssWidth x cssHeight.\n241\t svgMarkup = svgMarkup.replace(\"\n251\t\n252\t\n253\t\n254\t\n267\t\n268\t${svgMarkup}\n269\t`;\n270\t\n271\t await page.setContent(html, { waitUntil: \"networkidle\" });\n272\t await page.evaluate(() => document.fonts.ready);\n273\t // One extra frame so the webfont swap (FOUT) has actually repainted\n274\t // before the screenshot — document.fonts.ready resolves once the font is\n275\t // *loaded*, not once the page has repainted with it.\n276\t await page.waitForTimeout(50);\n277\t\n278\t // omitBackground: true keeps the page's transparent regions transparent\n279\t // in the captured PNG (alpha 0) instead of flattening them onto opaque\n280\t // white. The reference PNG's own canvas outside the window+shadow is\n281\t // genuinely transparent (image.go's gg context starts fully transparent\n282\t // and is never filled) — matching that, rather than defaulting to white,\n283\t // is what makes the outer margin diff meaningfully instead of reporting\n284\t // \"100% different\" on every pixel of it.\n285\t const buf = await page.screenshot({ omitBackground: true });\n286\t await context.close();\n287\t\n288\t return buf;\n289\t}\n290\t\n291\t// Pads the smaller of two RGBA buffers (top-left anchored) so both share the\n292\t// same width/height. The two rasters only ever differ by a few px of\n293\t// rounding slop (see rasterizeSVG's cssWidth/cssHeight rounding) once the\n294\t// SVG has already been forced to the PNG's own target dimensions, so a\n295\t// transparent-black pad — rather than scaling either image again, or\n296\t// cropping content away — is the least lossy way to reconcile that residual\n297\t// slop before a pixel-for-pixel diff.\n298\tfunction padToCommonSize(a, b) {\n299\t const width = Math.max(a.width, b.width);\n300\t const height = Math.max(a.height, b.height);\n301\t\n302\t const pad = (img) => {\n303\t if (img.width === width && img.height === height) {\n304\t return img.data;\n305\t }\n306\t\n307\t const buf = Buffer.alloc(width * height * 4, 0);\n308\t\n309\t for (let y = 0; y < img.height; y++) {\n310\t img.data.copy(buf, y * width * 4, y * img.width * 4, (y * img.width + img.width) * 4);\n311\t }\n312\t\n313\t return buf;\n314\t };\n315\t\n316\t return { aData: pad(a), bData: pad(b), width, height };\n317\t}\n318\t\n319\tasync function processTheme(theme, ctx) {\n320\t const configPath = path.join(THEMES_DIR, `${theme}.omp.json`);\n321\t\n322\t if (!fs.existsSync(configPath)) {\n323\t throw new Error(`theme not found: ${configPath}`);\n324\t }\n325\t\n326\t const pngPath = path.join(OUT_DIR, `${theme}.png`);\n327\t const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n328\t const rasterPath = path.join(OUT_DIR, `${theme}.raster.png`);\n329\t const diffPath = path.join(OUT_DIR, `${theme}.diff.png`);\n330\t\n331\t run(ctx.oldBin, [\n332\t \"config\",\n333\t \"export\",\n334\t \"image\",\n335\t \"--config\",\n336\t configPath,\n337\t \"--data\",\n338\t DATA_FIXTURE,\n339\t \"--format\",\n340\t \"png\",\n341\t \"-o\",\n342\t pngPath,\n343\t ]);\n344\t\n345\t run(ctx.newBin, [\n346\t \"config\",\n347\t \"export\",\n348\t \"image\",\n349\t \"--config\",\n350\t configPath,\n351\t \"--data\",\n352\t DATA_FIXTURE,\n353\t \"--font-family\",\n354\t FONT_FAMILY,\n355\t \"-o\",\n356\t svgPath,\n357\t ]);\n358\t\n359\t const { width: pngWidth, height: pngHeight } = readPngDimensions(pngPath);\n360\t const svgMarkup = fs.readFileSync(svgPath, \"utf8\");\n361\t\n362\t const rasterBuf = await rasterizeSVG(ctx.browser, svgMarkup, ctx.fontBase64, pngWidth, pngHeight);\n363\t fs.writeFileSync(rasterPath, rasterBuf);\n364\t\n365\t const png = PNG.sync.read(fs.readFileSync(pngPath));\n366\t const raster = PNG.sync.read(rasterBuf);\n367\t\n368\t const dimensionsMatched = png.width === raster.width && png.height === raster.height;\n369\t const { aData, bData, width, height } = padToCommonSize(png, raster);\n370\t\n371\t const diff = new PNG({ width, height });\n372\t // includeAA: false marks antialiasing-only pixels (font hinting, shadow\n373\t // falloff, the feDropShadow-vs-stackblur gap the task brief calls out as\n374\t // expected and uninteresting) in the diff image without counting them —\n375\t // this is the \"structural\" number, meant to track real content\n376\t // differences (missing glyphs, wrong colors, misaligned icons) rather\n377\t // than rasterizer noise. A second includeAA: true pass over the same\n378\t // buffers (no image, just a count) reports how much of the raw pixel\n379\t // difference that AA/blur noise actually was, for context.\n380\t const structuralDiffPixels = pixelmatch(aData, bData, diff.data, width, height, {\n381\t threshold: ctx.threshold,\n382\t includeAA: false,\n383\t });\n384\t const rawDiffPixels = pixelmatch(aData, bData, null, width, height, {\n385\t threshold: ctx.threshold,\n386\t includeAA: true,\n387\t });\n388\t\n389\t fs.writeFileSync(diffPath, PNG.sync.write(diff));\n390\t\n391\t const totalPixels = width * height;\n392\t\n393\t return {\n394\t theme,\n395\t pngDims: `${png.width}x${png.height}`,\n396\t rasterDims: `${raster.width}x${raster.height}`,\n397\t dimensionsMatched,\n398\t structuralPct: (structuralDiffPixels / totalPixels) * 100,\n399\t rawPct: (rawDiffPixels / totalPixels) * 100,\n400\t files: {\n401\t png: `${theme}.png`,\n402\t raster: `${theme}.raster.png`,\n403\t diff: `${theme}.diff.png`,\n404\t },\n405\t };\n406\t}\n407\t\n408\tfunction writeIndexHtml(results) {\n409\t const rows = results\n410\t .map(\n411\t (r) => `\n412\t
\n413\t

${escapeHtml(r.theme)}

\n414\t

\n415\t structural diff: ${r.structuralPct.toFixed(2)}%\n416\t  ·  raw diff (incl. antialiasing): ${r.rawPct.toFixed(2)}%\n417\t  ·  PNG ${r.pngDims} vs raster ${r.rasterDims}${r.dimensionsMatched ? \"\" : \" (padded to compare)\"}\n418\t

\n419\t
\n420\t
\n421\t
PNG (retired renderer)
\n422\t
\"${escapeHtml(r.theme)}
\n423\t
\n424\t
\n425\t
SVG raster (current renderer, Hack Nerd Font, ${DEVICE_SCALE_FACTOR}x)
\n426\t
\"${escapeHtml(r.theme)}
\n427\t
\n428\t
\n429\t
diff (red = structural, yellow = antialiasing-only)
\n430\t
\"${escapeHtml(r.theme)}
\n431\t
\n432\t
\n433\t
`,\n434\t )\n435\t .join(\"\\n\");\n436\t\n437\t const html = `\n438\t\n439\t\n440\t\n441\tSVG vs PNG acceptance harness\n442\t\n477\t\n478\t\n479\t

SVG exporter vs retired PNG renderer

\n480\t

\n481\t Developer acceptance harness, not a CI gate. Each theme is exported from the retired PNG\n482\t renderer and the current SVG renderer against the same deterministic --data fixture, both in\n483\t Hack Nerd Font. The SVG is rasterized headlessly at ${DEVICE_SCALE_FACTOR}x scale (matching the\n484\t PNG renderer's 48px reference em against the SVG's 16px default) before diffing with\n485\t pixelmatch. Scroll each box independently; images are shown at native pixel size.\n486\t

\n487\t ${rows}\n488\t\n489\t`;\n490\t\n491\t fs.writeFileSync(path.join(OUT_DIR, \"index.html\"), html);\n492\t}\n493\t\n494\tfunction escapeHtml(s) {\n495\t return s.replace(/[&<>\"']/g, (c) => ({ \"&\": \"&\", \"<\": \"<\", \">\": \">\", '\"': \""\", \"'\": \"'\" })[c]);\n496\t}\n497\t\n498\tasync function main() {\n499\t const opts = parseArgs(process.argv.slice(2));\n500\t const themes = resolveThemeList(opts);\n501\t\n502\t if (!fs.existsSync(DATA_FIXTURE)) {\n503\t throw new Error(`data fixture not found: ${DATA_FIXTURE}`);\n504\t }\n505\t\n506\t fs.mkdirSync(OUT_DIR, { recursive: true });\n507\t\n508\t if (!opts.skipBuild) {\n509\t buildBinaries(opts);\n510\t } else if (!fs.existsSync(OLD_BIN) || !fs.existsSync(NEW_BIN)) {\n511\t throw new Error(\"--skip-build was passed but bin/omp-png.exe / bin/omp-svg.exe are missing; run once without it first\");\n512\t }\n513\t\n514\t ensureFont();\n515\t const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");\n516\t\n517\t console.log(`\\nComparing ${themes.length} theme(s): ${themes.join(\", \")}\\n`);\n518\t\n519\t const browser = await chromium.launch();\n520\t const ctx = { oldBin: OLD_BIN, newBin: NEW_BIN, browser, fontBase64, threshold: opts.threshold };\n521\t\n522\t const results = [];\n523\t\n524\t try {\n525\t for (const theme of themes) {\n526\t console.log(`\\n=== ${theme} ===`);\n527\t const result = await processTheme(theme, ctx);\n528\t results.push(result);\n529\t console.log(\n530\t ` structural diff: ${result.structuralPct.toFixed(2)}% raw diff: ${result.rawPct.toFixed(2)}% ` +\n531\t `(PNG ${result.pngDims} vs raster ${result.rasterDims})`,\n532\t );\n533\t }\n534\t } finally {\n535\t await browser.close();\n536\t }\n537\t\n538\t writeIndexHtml(results);\n539\t\n540\t console.log(\"\\n--- Summary ---\");\n541\t for (const r of results) {\n542\t console.log(`${r.theme.padEnd(24)} structural ${r.structuralPct.toFixed(2).padStart(6)}% raw ${r.rawPct.toFixed(2).padStart(6)}%`);\n543\t }\n544\t\n545\t console.log(`\\nContact sheet: ${path.join(OUT_DIR, \"index.html\")}`);\n546\t}\n547\t\n548\tmain().catch((err) => {\n549\t console.error(err);\n550\t process.exitCode = 1;\n551\t});\n552\t"}]},"uuid":"136ac7d7-c68b-4b45-bf08-fae9da95900f","timestamp":"2026-07-27T17:58:37.649Z","toolUseResult":{"type":"text","file":{"filePath":"D:\\oh-my-posh\\tools\\svg-png-compare\\compare.mjs","content":"#!/usr/bin/env node\n// SVG-vs-PNG acceptance harness — a developer tool, not a CI gate.\n//\n// Builds the retired PNG renderer (from a worktree pinned to the last commit\n// before PNG support was removed) and the current SVG-only renderer, exports\n// the same themes from both against the same deterministic --data fixture,\n// rasterizes each SVG headlessly in the *same font* the PNG renderer used\n// (Hack Nerd Font) at a matched scale, diffs the raster against the\n// reference PNG with pixelmatch, and writes an index.html contact sheet so a\n// human can eyeball whether they still read as the same prompt.\n//\n// Usage (run from this directory, after `npm install` once):\n//\n// node compare.mjs six default themes\n// node compare.mjs cobalt2 atomic only the named themes\n// node compare.mjs --all every theme in ../../themes\n// node compare.mjs --skip-build reuse bin/*.exe from a prior run\n// node compare.mjs --png-worktree override the old renderer's worktree\n//\n// Output lands in ./out/: .png (reference), .svg (exported),\n// .raster.png (headless SVG raster), .diff.png, and\n// index.html.\nimport { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { PNG } from \"pngjs\";\nimport pixelmatch from \"pixelmatch\";\nimport { chromium } from \"playwright\";\n\nimport { extractZipEntry } from \"./zip.mjs\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");\nconst THEMES_DIR = path.join(REPO_ROOT, \"themes\");\nconst DATA_FIXTURE = path.join(REPO_ROOT, \"src\", \"prompt\", \"testdata\", \"fixtures\", \"prompt.data.json\");\n\nconst BIN_DIR = path.join(__dirname, \"bin\");\nconst FONT_DIR = path.join(__dirname, \"fonts\");\nconst OUT_DIR = path.join(__dirname, \"out\");\nconst FONT_PATH = path.join(FONT_DIR, \"HackNerdFont-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font\";\n\nconst EXE = process.platform === \"win32\" ? \".exe\" : \"\";\nconst OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);\nconst NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);\n\nconst DEFAULT_THEMES = [\n \"M365Princess\",\n \"clean-detailed\",\n \"cloud-native-azure\",\n \"cobalt2\",\n \"jandedobbeleer\",\n \"atomic\",\n];\n\n// The PNG renderer's reference em size was 48px (see src/svg/window.go's\n// newWindowGeometry doc comment); the SVG exporter has no --font-size flag\n// and always renders at a 16px em (src/svg/svg.go's defaultFontSize). 48/16\n// = 3, so rasterizing the SVG's own natural geometry at 3x device scale\n// reproduces the PNG's reference resolution exactly, without needing a flag\n// that doesn't exist. Every window-chrome constant in svg/window.go is\n// already derived as `constant * (FontSize / 48)`, so this 3x upscale is\n// mathematically the same shape the SVG package would produce if it *could*\n// be asked for FontSize 48 directly.\nconst DEVICE_SCALE_FACTOR = 3;\n\n// pixelmatch match sensitivity. 0.1 is pixelmatch's own documented default\n// and already tolerant of the antialiasing/subpixel noise a font rasterizer\n// introduces; see parseArgs' --threshold for overriding it.\nconst DEFAULT_THRESHOLD = 0.1;\n\nfunction parseArgs(argv) {\n const opts = {\n themes: null,\n all: false,\n skipBuild: false,\n pngWorktree: process.env.OMP_PNG_WORKTREE || path.join(os_tmpdir(), \"omp-png\"),\n threshold: DEFAULT_THRESHOLD,\n };\n\n const positional = [];\n\n for (let i = 0; i < argv.length; i++) {\n const arg = argv[i];\n\n switch (arg) {\n case \"--all\":\n opts.all = true;\n break;\n case \"--skip-build\":\n opts.skipBuild = true;\n break;\n case \"--png-worktree\":\n opts.pngWorktree = argv[++i];\n break;\n case \"--threshold\":\n opts.threshold = Number.parseFloat(argv[++i]);\n break;\n default:\n if (arg.startsWith(\"--\")) {\n throw new Error(`unknown flag: ${arg}`);\n }\n\n positional.push(arg);\n }\n }\n\n if (positional.length > 0) {\n opts.themes = positional;\n }\n\n return opts;\n}\n\nfunction os_tmpdir() {\n return process.env.TEMP || process.env.TMP || \"/tmp\";\n}\n\nfunction resolveThemeList(opts) {\n if (opts.all) {\n return fs\n .readdirSync(THEMES_DIR)\n .filter((f) => f.endsWith(\".omp.json\"))\n .map((f) => f.slice(0, -\".omp.json\".length))\n .sort();\n }\n\n return opts.themes ?? DEFAULT_THEMES;\n}\n\nfunction run(cmd, args, cwd) {\n console.log(`+ ${cmd} ${args.join(\" \")}${cwd ? ` (in ${cwd})` : \"\"}`);\n const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n\n if (res.error) {\n throw res.error;\n }\n\n if (res.status !== 0) {\n throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n }\n}\n\nfunction buildBinaries(opts) {\n fs.mkdirSync(BIN_DIR, { recursive: true });\n\n const oldSrc = path.join(opts.pngWorktree, \"src\");\n\n if (!fs.existsSync(oldSrc)) {\n throw new Error(\n `retired PNG renderer worktree not found at ${opts.pngWorktree} (expected a Go module at ${oldSrc}). ` +\n \"Pass --png-worktree to point at the worktree checked out at the last commit before PNG \" +\n \"support was removed.\",\n );\n }\n\n console.log(\"\\nBuilding retired PNG renderer...\");\n run(\"go\", [\"build\", \"-o\", OLD_BIN, \".\"], oldSrc);\n\n console.log(\"\\nBuilding current SVG renderer...\");\n run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n}\n\n// The PNG renderer downloads and caches Hack.zip itself (see\n// cli/image/image.go's loadDefaultFonts); reuse that same cache instead of\n// fetching it twice. Falls back to downloading it fresh if no cache is\n// found anywhere.\nfunction ensureFont() {\n if (fs.existsSync(FONT_PATH)) {\n return;\n }\n\n fs.mkdirSync(FONT_DIR, { recursive: true });\n\n const candidateCaches = [\n process.env.OMP_CACHE_DIR,\n process.platform === \"win32\" ? path.join(process.env.LOCALAPPDATA ?? \"\", \"oh-my-posh\") : null,\n process.env.XDG_CACHE_HOME ? path.join(process.env.XDG_CACHE_HOME, \"oh-my-posh\") : null,\n path.join(os_home(), \".cache\", \"oh-my-posh\"),\n ].filter(Boolean);\n\n for (const dir of candidateCaches) {\n const zipPath = path.join(dir, \"Hack.zip\");\n\n if (fs.existsSync(zipPath)) {\n console.log(`Extracting HackNerdFont-Regular.ttf from cached ${zipPath}`);\n const zipBuf = fs.readFileSync(zipPath);\n const ttf = extractZipEntry(zipBuf, \"HackNerdFont-Regular.ttf\");\n fs.writeFileSync(FONT_PATH, ttf);\n return;\n }\n }\n\n console.log(\"No cached Hack.zip found; downloading it (same URL the retired PNG renderer used)...\");\n downloadAndExtractFont();\n}\n\nfunction os_home() {\n return process.env.USERPROFILE || process.env.HOME || os_tmpdir();\n}\n\nasync function downloadAndExtractFont() {\n const url = \"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip\";\n const res = await fetch(url);\n\n if (!res.ok) {\n throw new Error(`failed to download ${url}: ${res.status} ${res.statusText}`);\n }\n\n const zipBuf = Buffer.from(await res.arrayBuffer());\n const ttf = extractZipEntry(zipBuf, \"HackNerdFont-Regular.ttf\");\n fs.writeFileSync(FONT_PATH, ttf);\n}\n\nfunction readPngDimensions(pngPath) {\n const buf = fs.readFileSync(pngPath);\n // IHDR is the first chunk in a well-formed PNG: 8-byte signature, 4-byte\n // length, 4-byte \"IHDR\", then width/height as big-endian uint32s.\n return { width: buf.readUInt32BE(16), height: buf.readUInt32BE(20) };\n}\n\n// Renders svgMarkup inside a headless page whose viewport (at\n// DEVICE_SCALE_FACTOR) targets targetWidth x targetHeight device pixels —\n// the reference PNG's own dimensions — so the SVG's vector content is\n// rescaled by the browser itself (crisp) rather than by resampling a raster\n// afterwards. The SVG keeps its own viewBox, so content scales\n// proportionally to fill the forced box.\nasync function rasterizeSVG(browser, svgMarkup, fontBase64, targetWidth, targetHeight) {\n const cssWidth = Math.max(1, Math.round(targetWidth / DEVICE_SCALE_FACTOR));\n const cssHeight = Math.max(1, Math.round(targetHeight / DEVICE_SCALE_FACTOR));\n\n // The exporter's carries no preserveAspectRatio, so it defaults to\n // \"xMidYMid meet\": the browser would scale the viewBox uniformly to fit\n // inside the CSS box forced below and letterbox/center it, rather than\n // filling that box — which silently reintroduces a spatial offset between\n // the two rasters (content shifted down/right by the letterboxing gap)\n // that swamped the diff with edge noise before this fix. \"none\" makes the\n // two axes scale independently, actually filling cssWidth x cssHeight.\n svgMarkup = svgMarkup.replace(\"\n\n\n\n\n\n${svgMarkup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n // One extra frame so the webfont swap (FOUT) has actually repainted\n // before the screenshot — document.fonts.ready resolves once the font is\n // *loaded*, not once the page has repainted with it.\n await page.waitForTimeout(50);\n\n // omitBackground: true keeps the page's transparent regions transparent\n // in the captured PNG (alpha 0) instead of flattening them onto opaque\n // white. The reference PNG's own canvas outside the window+shadow is\n // genuinely transparent (image.go's gg context starts fully transparent\n // and is never filled) — matching that, rather than defaulting to white,\n // is what makes the outer margin diff meaningfully instead of reporting\n // \"100% different\" on every pixel of it.\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\n// Pads the smaller of two RGBA buffers (top-left anchored) so both share the\n// same width/height. The two rasters only ever differ by a few px of\n// rounding slop (see rasterizeSVG's cssWidth/cssHeight rounding) once the\n// SVG has already been forced to the PNG's own target dimensions, so a\n// transparent-black pad — rather than scaling either image again, or\n// cropping content away — is the least lossy way to reconcile that residual\n// slop before a pixel-for-pixel diff.\nfunction padToCommonSize(a, b) {\n const width = Math.max(a.width, b.width);\n const height = Math.max(a.height, b.height);\n\n const pad = (img) => {\n if (img.width === width && img.height === height) {\n return img.data;\n }\n\n const buf = Buffer.alloc(width * height * 4, 0);\n\n for (let y = 0; y < img.height; y++) {\n img.data.copy(buf, y * width * 4, y * img.width * 4, (y * img.width + img.width) * 4);\n }\n\n return buf;\n };\n\n return { aData: pad(a), bData: pad(b), width, height };\n}\n\nasync function processTheme(theme, ctx) {\n const configPath = path.join(THEMES_DIR, `${theme}.omp.json`);\n\n if (!fs.existsSync(configPath)) {\n throw new Error(`theme not found: ${configPath}`);\n }\n\n const pngPath = path.join(OUT_DIR, `${theme}.png`);\n const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n const rasterPath = path.join(OUT_DIR, `${theme}.raster.png`);\n const diffPath = path.join(OUT_DIR, `${theme}.diff.png`);\n\n run(ctx.oldBin, [\n \"config\",\n \"export\",\n \"image\",\n \"--config\",\n configPath,\n \"--data\",\n DATA_FIXTURE,\n \"--format\",\n \"png\",\n \"-o\",\n pngPath,\n ]);\n\n run(ctx.newBin, [\n \"config\",\n \"export\",\n \"image\",\n \"--config\",\n configPath,\n \"--data\",\n DATA_FIXTURE,\n \"--font-family\",\n FONT_FAMILY,\n \"-o\",\n svgPath,\n ]);\n\n const { width: pngWidth, height: pngHeight } = readPngDimensions(pngPath);\n const svgMarkup = fs.readFileSync(svgPath, \"utf8\");\n\n const rasterBuf = await rasterizeSVG(ctx.browser, svgMarkup, ctx.fontBase64, pngWidth, pngHeight);\n fs.writeFileSync(rasterPath, rasterBuf);\n\n const png = PNG.sync.read(fs.readFileSync(pngPath));\n const raster = PNG.sync.read(rasterBuf);\n\n const dimensionsMatched = png.width === raster.width && png.height === raster.height;\n const { aData, bData, width, height } = padToCommonSize(png, raster);\n\n const diff = new PNG({ width, height });\n // includeAA: false marks antialiasing-only pixels (font hinting, shadow\n // falloff, the feDropShadow-vs-stackblur gap the task brief calls out as\n // expected and uninteresting) in the diff image without counting them —\n // this is the \"structural\" number, meant to track real content\n // differences (missing glyphs, wrong colors, misaligned icons) rather\n // than rasterizer noise. A second includeAA: true pass over the same\n // buffers (no image, just a count) reports how much of the raw pixel\n // difference that AA/blur noise actually was, for context.\n const structuralDiffPixels = pixelmatch(aData, bData, diff.data, width, height, {\n threshold: ctx.threshold,\n includeAA: false,\n });\n const rawDiffPixels = pixelmatch(aData, bData, null, width, height, {\n threshold: ctx.threshold,\n includeAA: true,\n });\n\n fs.writeFileSync(diffPath, PNG.sync.write(diff));\n\n const totalPixels = width * height;\n\n return {\n theme,\n pngDims: `${png.width}x${png.height}`,\n rasterDims: `${raster.width}x${raster.height}`,\n dimensionsMatched,\n structuralPct: (structuralDiffPixels / totalPixels) * 100,\n rawPct: (rawDiffPixels / totalPixels) * 100,\n files: {\n png: `${theme}.png`,\n raster: `${theme}.raster.png`,\n diff: `${theme}.diff.png`,\n },\n };\n}\n\nfunction writeIndexHtml(results) {\n const rows = results\n .map(\n (r) => `\n
\n

${escapeHtml(r.theme)}

\n

\n structural diff: ${r.structuralPct.toFixed(2)}%\n  ·  raw diff (incl. antialiasing): ${r.rawPct.toFixed(2)}%\n  ·  PNG ${r.pngDims} vs raster ${r.rasterDims}${r.dimensionsMatched ? \"\" : \" (padded to compare)\"}\n

\n
\n
\n
PNG (retired renderer)
\n
\"${escapeHtml(r.theme)}
\n
\n
\n
SVG raster (current renderer, Hack Nerd Font, ${DEVICE_SCALE_FACTOR}x)
\n
\"${escapeHtml(r.theme)}
\n
\n
\n
diff (red = structural, yellow = antialiasing-only)
\n
\"${escapeHtml(r.theme)}
\n
\n
\n
`,\n )\n .join(\"\\n\");\n\n const html = `\n\n\n\nSVG vs PNG acceptance harness\n\n\n\n

SVG exporter vs retired PNG renderer

\n

\n Developer acceptance harness, not a CI gate. Each theme is exported from the retired PNG\n renderer and the current SVG renderer against the same deterministic --data fixture, both in\n Hack Nerd Font. The SVG is rasterized headlessly at ${DEVICE_SCALE_FACTOR}x scale (matching the\n PNG renderer's 48px reference em against the SVG's 16px default) before diffing with\n pixelmatch. Scroll each box independently; images are shown at native pixel size.\n

\n ${rows}\n\n`;\n\n fs.writeFileSync(path.join(OUT_DIR, \"index.html\"), html);\n}\n\nfunction escapeHtml(s) {\n return s.replace(/[&<>\"']/g, (c) => ({ \"&\": \"&\", \"<\": \"<\", \">\": \">\", '\"': \""\", \"'\": \"'\" })[c]);\n}\n\nasync function main() {\n const opts = parseArgs(process.argv.slice(2));\n const themes = resolveThemeList(opts);\n\n if (!fs.existsSync(DATA_FIXTURE)) {\n throw new Error(`data fixture not found: ${DATA_FIXTURE}`);\n }\n\n fs.mkdirSync(OUT_DIR, { recursive: true });\n\n if (!opts.skipBuild) {\n buildBinaries(opts);\n } else if (!fs.existsSync(OLD_BIN) || !fs.existsSync(NEW_BIN)) {\n throw new Error(\"--skip-build was passed but bin/omp-png.exe / bin/omp-svg.exe are missing; run once without it first\");\n }\n\n ensureFont();\n const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");\n\n console.log(`\\nComparing ${themes.length} theme(s): ${themes.join(\", \")}\\n`);\n\n const browser = await chromium.launch();\n const ctx = { oldBin: OLD_BIN, newBin: NEW_BIN, browser, fontBase64, threshold: opts.threshold };\n\n const results = [];\n\n try {\n for (const theme of themes) {\n console.log(`\\n=== ${theme} ===`);\n const result = await processTheme(theme, ctx);\n results.push(result);\n console.log(\n ` structural diff: ${result.structuralPct.toFixed(2)}% raw diff: ${result.rawPct.toFixed(2)}% ` +\n `(PNG ${result.pngDims} vs raster ${result.rasterDims})`,\n );\n }\n } finally {\n await browser.close();\n }\n\n writeIndexHtml(results);\n\n console.log(\"\\n--- Summary ---\");\n for (const r of results) {\n console.log(`${r.theme.padEnd(24)} structural ${r.structuralPct.toFixed(2).padStart(6)}% raw ${r.rawPct.toFixed(2).padStart(6)}%`);\n }\n\n console.log(`\\nContact sheet: ${path.join(OUT_DIR, \"index.html\")}`);\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exitCode = 1;\n});\n","numLines":552,"startLine":1,"totalLines":552}},"sourceToolAssistantUUID":"363f3eaf-432f-4c06-a81f-4e97665a27b1","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"136ac7d7-c68b-4b45-bf08-fae9da95900f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzkLBGwTMzyzAFvM541","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The existing harness uses `.omp.json` themes and distorts the aspect ratio, which isn't what I need. I'm going to create a simple script that takes theme names, generates SVG with the new binary using Hack Nerd Font, and rasterizes it at natural size with 3x device scaling for a clean side-by-side comparison.\n\nI need to handle both `.omp.yaml` and `.omp.json` theme file extensions since the themes here use `.omp.yaml`. I'll place the script in `tools/svg-png-compare/` as a dev harness directory — it's already set up for this kind of tooling, and I can decide later whether to commit it.\n\nWriting shot.mjs...","signature":"CAISpAsKhwEIEBgCKkAZ0UX2PLIjQDASwe/hvme36u/Vbz/T+KoS88ds1uZeAyvVYOp+tMdhm56tH+E+USoWHgXERPVtbg/+S2v1TwPoMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDFlAn0Mt8/YEXXlH7RoMvTXF/b/O/P4EpBTDIjCHR5eN7S5wtV8JLKrsM977/mGspn0Jsl+1KoztRFEVNc9d0DSIPVZiIpTZV7Ds0lwqyQne74uBrRqdJoT9n2Ecv2uDQblEWSzpU2gmbMvyQwxK9bdFNzji5zR6YamuW2NOvYulSpoK+E6TqeSy9T8Gu6FT6dMHPlSMq1/76MhHlY7WIce+Jf4J2nL7+jNobzXLDxbcK63NLSzvJ1oTKpl/dK63Ob9eovfgMshaSXE0qcuNhaXW5sicraPNBbHkhBtTJNKo4yR+hExKvo4ROI4Y5vJQs4BKJ1oEJr4I6Tjv7mcTLc5mqPD8SAlrif0x78ZKFtKFJR4FStw7HBFHEZOS7UQHiY6ATeqqc+nOjdq3yBhYwWDQaSprS+19dQcZczrc7g1+vC9tJ9iSBKe8BlvdggRJPUx4HgSgnr1rkIcuHgksmFI5OKgiceZWG9fCE6Wnr+5qIPg3DaEWy+QatnQVx5NGeoWRTC0UcVJsbk4Gk9/eXC9cq6Tb++zpiCVyGu1RY/++P07itY1j9IqqGwt95mRGcvvJnLUViRFzo6ZTeFndS3uIKxb6mDZcWQKqRnCcHmzyrc1HUZUk66M5WtkZWj5j1pfe08H+4eJPP0kIieQoYiRiaRYnhYydzii2AccSBtFYjewnSPOYTxiqXQFF6iS+bPTTxyjmNziBOKBpJvQUgFQTdKld6IYLC7PAykt3VThJQlieMtI1J08Zdj7kAg5KIB0OfGCRGwyCec7t37lYMC44JjkEIM4LvMt1me3mIW7+QOfiSaxohCWFP7O86p/XBmKX7q/+bao5BDx1aW+CWd534HgynvbBY4y4NmzFf0DP6IoxrRqgTj/LVqSkpVtHa4j3Y88nXUhe2OvVP7mrsB4Dwm6y3U2aQYcgVzydmXyhai0tIh85X67NaQ8xX99+XpGEjHqyjiRBSOGSOwg5gZZkaMqIDVChth3NdxfcLG3TgtOm7fC/4Vq6zU75ydXuiNbGzejtTXoECNdJs6fhuumhR32829pMcf/GpHzOTkcl9EzYoeYRYucVlZPmARhBMiHLG3zDzgZVVl5oTMeS7BnB3QvZqNhjfVtbcVymXm6ekIhtpOC86cwNtlczscKsFzRCKArXPdL1o6zETQhkAzL7UVTgBmgYD4eaz0XovM/+/kV3gr+YCr+2Ccd5FTdj1DXcvTK4EkP+bifHdo3/rOopM08+ccDVIsdxq9g38xh0yB1XIi7DKPAPVEISlVyC+yun9AjGAJtutuu/DK3qHV6ZFKYBKcA3ZgZdOZ27l9oxZw+DH4ALFPsv2BKwawJ/K5JMuiHiXTq7d/xOS+xkfd855emMtMVDcG5SPNuS9cZK/rKjQi2tW8359hVcXe4AZqXZDCmgdsQ4d3h6gDzBBp6B86nOmTkSc/iHKsgPQCJYfhRraKcIxtpTsODJUGYZRQwFuenspoIbDw/0v0Z/30F2OXTkO8D/ury/vYsXDLlZQtTYMIW6a19dV8s2qqewIxv1jynPqh5VZTbobl2tlNedzi+xPXT1gVRg0eRqCUZR94i+2ORMe5z5bEZYFdVQEMWl5mImpE2FQ0aaKwzprSzmpMbNYkBeP+VGn8m634cOdhK9RPgAl+9VF8JLsK6/WLBSznLt20uMtkDjjn1q6qa/x3YoXR+vH9ZGcpjOaPwq3w5JciVSeP6t/EyNEu+6WYGba4zPMoXqGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":9800,"cache_read_input_tokens":132455,"output_tokens":2845,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":9800,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2845,"cache_read_input_tokens":132455,"cache_creation_input_tokens":9800,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":9800},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzkHypPrNcGZhd2Z7bt","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"69fa5fb6-2464-4b22-a3b5-5ee6111f5e1e","timestamp":"2026-07-27T17:58:47.059Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"69fa5fb6-2464-4b22-a3b5-5ee6111f5e1e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzkLBGwTMzyzAFvM541","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_0126oWwd7cdJZE5RynemvqZ3","name":"Write","input":{"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","content":"#!/usr/bin/env node\n// Side-by-side renderer for eyeballing the SVG exporter against the retired\n// PNG renderer. Unlike compare.mjs this does NOT force the SVG into the PNG's\n// box (no preserveAspectRatio override, no rescale): each side is rasterized\n// at its own natural geometry, so layout differences — whitespace collapse,\n// baseline drift, misplaced decorations — stay visible instead of being\n// squeezed away by the fit.\n//\n// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks\n//\n// Output lands in ./out/: .svg, .raster.png, and — unless\n// --svg-only — .png from the retired renderer.\nimport { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { chromium } from \"playwright\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");\nconst THEMES_DIR = path.join(REPO_ROOT, \"themes\");\nconst DATA_FIXTURE = path.join(REPO_ROOT, \"src\", \"prompt\", \"testdata\", \"fixtures\", \"prompt.data.json\");\n\nconst BIN_DIR = path.join(__dirname, \"bin\");\nconst OUT_DIR = path.join(__dirname, \"out\");\nconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFont-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font\";\n\nconst EXE = process.platform === \"win32\" ? \".exe\" : \"\";\nconst OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);\nconst NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);\n\n// The exporter renders at a 16px em; the retired PNG renderer's reference em\n// was 48px. Rasterizing at 3x device scale puts both at the same resolution\n// without touching the SVG's own geometry.\nconst DEVICE_SCALE_FACTOR = 3;\n\nfunction themeConfig(theme) {\n for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n const candidate = path.join(THEMES_DIR, theme + ext);\n\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(`theme not found: ${theme}`);\n}\n\nfunction run(cmd, args, cwd) {\n const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n\n if (res.error) {\n throw res.error;\n }\n\n if (res.status !== 0) {\n throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n }\n}\n\n// Reads width/height off the root element so the page can give it a box\n// of exactly that size — the SVG then renders 1:1 with no scaling at all.\nfunction svgSize(markup) {\n const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n\n if (!width || !height) {\n throw new Error(\"could not read width/height off the root \");\n }\n\n return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n}\n\nasync function rasterize(browser, markup, fontBase64) {\n const { width, height } = svgSize(markup);\n\n const context = await browser.newContext({\n viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n deviceScaleFactor: DEVICE_SCALE_FACTOR,\n });\n\n const page = await context.newPage();\n\n const html = `\n\n\n\n\n\n${markup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForTimeout(50);\n\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const svgOnly = args.includes(\"--svg-only\");\n const themes = args.filter((a) => !a.startsWith(\"--\"));\n\n if (themes.length === 0) {\n throw new Error(\"pass at least one theme name\");\n }\n\n fs.mkdirSync(OUT_DIR, { recursive: true });\n\n run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");\n const browser = await chromium.launch();\n\n try {\n for (const theme of themes) {\n const config = themeConfig(theme);\n const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n\n run(NEW_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", FONT_FAMILY,\n \"-o\", svgPath,\n ]);\n\n const markup = fs.readFileSync(svgPath, \"utf8\");\n fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64));\n\n if (!svgOnly && fs.existsSync(OLD_BIN)) {\n run(OLD_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--format\", \"png\",\n \"-o\", path.join(OUT_DIR, `${theme}.png`),\n ]);\n }\n\n console.log(`${theme}: ${svgPath}`);\n }\n } finally {\n await browser.close();\n }\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exitCode = 1;\n});\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":9800,"cache_read_input_tokens":132455,"output_tokens":2845,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":9800,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2845,"cache_read_input_tokens":132455,"cache_creation_input_tokens":9800,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":9800},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzkHypPrNcGZhd2Z7bt","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"bf06d633-0c5a-43a9-96f1-751e055026b8","timestamp":"2026-07-27T17:59:07.794Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bf06d633-0c5a-43a9-96f1-751e055026b8","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_0126oWwd7cdJZE5RynemvqZ3","type":"tool_result","content":"File created successfully at: D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs (file state is current in your context — no need to Read it back)"}]},"uuid":"273c6978-097b-48e9-997f-2009eb2e6f25","timestamp":"2026-07-27T17:59:07.860Z","toolUseResult":{"type":"create","filePath":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","content":"#!/usr/bin/env node\n// Side-by-side renderer for eyeballing the SVG exporter against the retired\n// PNG renderer. Unlike compare.mjs this does NOT force the SVG into the PNG's\n// box (no preserveAspectRatio override, no rescale): each side is rasterized\n// at its own natural geometry, so layout differences — whitespace collapse,\n// baseline drift, misplaced decorations — stay visible instead of being\n// squeezed away by the fit.\n//\n// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks\n//\n// Output lands in ./out/: .svg, .raster.png, and — unless\n// --svg-only — .png from the retired renderer.\nimport { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { chromium } from \"playwright\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");\nconst THEMES_DIR = path.join(REPO_ROOT, \"themes\");\nconst DATA_FIXTURE = path.join(REPO_ROOT, \"src\", \"prompt\", \"testdata\", \"fixtures\", \"prompt.data.json\");\n\nconst BIN_DIR = path.join(__dirname, \"bin\");\nconst OUT_DIR = path.join(__dirname, \"out\");\nconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFont-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font\";\n\nconst EXE = process.platform === \"win32\" ? \".exe\" : \"\";\nconst OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);\nconst NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);\n\n// The exporter renders at a 16px em; the retired PNG renderer's reference em\n// was 48px. Rasterizing at 3x device scale puts both at the same resolution\n// without touching the SVG's own geometry.\nconst DEVICE_SCALE_FACTOR = 3;\n\nfunction themeConfig(theme) {\n for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n const candidate = path.join(THEMES_DIR, theme + ext);\n\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(`theme not found: ${theme}`);\n}\n\nfunction run(cmd, args, cwd) {\n const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n\n if (res.error) {\n throw res.error;\n }\n\n if (res.status !== 0) {\n throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n }\n}\n\n// Reads width/height off the root element so the page can give it a box\n// of exactly that size — the SVG then renders 1:1 with no scaling at all.\nfunction svgSize(markup) {\n const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n\n if (!width || !height) {\n throw new Error(\"could not read width/height off the root \");\n }\n\n return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n}\n\nasync function rasterize(browser, markup, fontBase64) {\n const { width, height } = svgSize(markup);\n\n const context = await browser.newContext({\n viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n deviceScaleFactor: DEVICE_SCALE_FACTOR,\n });\n\n const page = await context.newPage();\n\n const html = `\n\n\n\n\n\n${markup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForTimeout(50);\n\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const svgOnly = args.includes(\"--svg-only\");\n const themes = args.filter((a) => !a.startsWith(\"--\"));\n\n if (themes.length === 0) {\n throw new Error(\"pass at least one theme name\");\n }\n\n fs.mkdirSync(OUT_DIR, { recursive: true });\n\n run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");\n const browser = await chromium.launch();\n\n try {\n for (const theme of themes) {\n const config = themeConfig(theme);\n const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n\n run(NEW_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", FONT_FAMILY,\n \"-o\", svgPath,\n ]);\n\n const markup = fs.readFileSync(svgPath, \"utf8\");\n fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64));\n\n if (!svgOnly && fs.existsSync(OLD_BIN)) {\n run(OLD_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--format\", \"png\",\n \"-o\", path.join(OUT_DIR, `${theme}.png`),\n ]);\n }\n\n console.log(`${theme}: ${svgPath}`);\n }\n } finally {\n await browser.close();\n }\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exitCode = 1;\n});\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"bf06d633-0c5a-43a9-96f1-751e055026b8","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"273c6978-097b-48e9-997f-2009eb2e6f25","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSznamvU9oto1BRiLcB4","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01XmZ7VbbJ62TzBHMns4azk1","name":"Bash","input":{"command":"cd tools/svg-png-compare && cp \"$TMPDIR/omp-old.exe\" bin/omp-png.exe 2>/dev/null; node shot.mjs glowsticks 2>&1 | tail -10","description":"Rasterize glowsticks SVG in a browser"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2902,"cache_read_input_tokens":142255,"output_tokens":157,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2902,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":157,"cache_read_input_tokens":142255,"cache_creation_input_tokens":2902,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2902},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSznXXTMif4zCK5598XU","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"d89fa62d-68d2-4597-bd8f-2c9da064df02","timestamp":"2026-07-27T17:59:11.046Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d89fa62d-68d2-4597-bd8f-2c9da064df02","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01XmZ7VbbJ62TzBHMns4azk1","type":"tool_result","content":"/usr/bin/bash: line 1: cd: tools/svg-png-compare: No such file or directory\nglowsticks: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\glowsticks.svg","is_error":false}]},"uuid":"1287bab0-d044-4691-a1f9-15acaed0a2c2","timestamp":"2026-07-27T17:59:18.014Z","toolUseResult":{"stdout":"/usr/bin/bash: line 1: cd: tools/svg-png-compare: No such file or directory\nglowsticks: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\glowsticks.svg","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"d89fa62d-68d2-4597-bd8f-2c9da064df02","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1287bab0-d044-4691-a1f9-15acaed0a2c2","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzoJc7K6J2f9BSZeRTY","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The `cd` command failed but the script continued anyway because of the semicolon, so node still found and ran shot.mjs in whatever directory it was in — that's confusing. I should switch to absolute paths to avoid this kind of directory drift issue. Let me check what's actually in the output directory.","signature":"CAIS5wMKhwEIEBgCKkBoNFzS/ALT3tkm+dKSaMVJojIa+dHEzvq22T9hHsa2cIwX7zIsSET+7ukbuzClo5tgtMhKmnvWQirOoILhop9kMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDPnT/CDPq/DBqvuQvxoM2kVyHoZ7dGr0ADzIIjBncgtQPN/YkDnb5KDdkzBfzSjsUNlfMejhck5SJZYqSLITggO5MAGy6TwHy+JKo3YqjAIyOfwVgaK7mcl/BS365TJW38Ih2O8Bs10EciiTldd7dwL6tQO5dBigmsaWfu6SQeSk8IY2KVwJ1I4MOxI3MtfWPBg2gsmXkyZxFRoet/rjFpwEQWT48D014L7mTmdd1zJZda+pHys7ZZeYIfYjjkYbcr9zFa8S7XR+QZM1biA04Zk5LALOcHas2E0BhylgFDpn+zaqHqZXlXs/7rA8JRxMqYXYr/n2PiOOpfD2Mh8fBgX3Q8UujQIN0hMpARWQ/i9ikOqDaYs+phRNAhafFq2L9WdE2pV/F4/xfPsld/7pq0t/DpK59LMgkrFaXtt7p9P7uf41F5mAzroux5CZ2qLd2DCgeyUgGu1DhH6EGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":235,"cache_read_input_tokens":145157,"output_tokens":210,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":235,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":210,"cache_read_input_tokens":145157,"cache_creation_input_tokens":235,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":235},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzoGKw4cCRiJnK14We3","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"e89ab209-fb5d-4a62-83de-58f98320b64b","timestamp":"2026-07-27T17:59:23.500Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e89ab209-fb5d-4a62-83de-58f98320b64b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzoJc7K6J2f9BSZeRTY","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017qupdjfi6Gz9MnzMsaPWkN","name":"Bash","input":{"command":"ls -la /d/oh-my-posh/tools/svg-png-compare/out/glowsticks* && pwd","description":"Check rasterizer output"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":235,"cache_read_input_tokens":145157,"output_tokens":210,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":235,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":210,"cache_read_input_tokens":145157,"cache_creation_input_tokens":235,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":235},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzoGKw4cCRiJnK14We3","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"1ab7699d-afbd-45e1-9674-732a3e4e2621","timestamp":"2026-07-27T17:59:23.504Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1ab7699d-afbd-45e1-9674-732a3e4e2621","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017qupdjfi6Gz9MnzMsaPWkN","type":"tool_result","content":"-rw-r--r-- 1 jande 197609 58920 Jul 27 19:59 /d/oh-my-posh/tools/svg-png-compare/out/glowsticks.png\n-rw-r--r-- 1 jande 197609 71209 Jul 27 19:59 /d/oh-my-posh/tools/svg-png-compare/out/glowsticks.raster.png\n-rw-r--r-- 1 jande 197609 3381 Jul 27 19:59 /d/oh-my-posh/tools/svg-png-compare/out/glowsticks.svg\n/d/oh-my-posh/tools/svg-png-compare","is_error":false}]},"uuid":"29ab7cef-aae5-45fa-875b-aa47b256a482","timestamp":"2026-07-27T17:59:24.512Z","toolUseResult":{"stdout":"-rw-r--r-- 1 jande 197609 58920 Jul 27 19:59 /d/oh-my-posh/tools/svg-png-compare/out/glowsticks.png\n-rw-r--r-- 1 jande 197609 71209 Jul 27 19:59 /d/oh-my-posh/tools/svg-png-compare/out/glowsticks.raster.png\n-rw-r--r-- 1 jande 197609 3381 Jul 27 19:59 /d/oh-my-posh/tools/svg-png-compare/out/glowsticks.svg\n/d/oh-my-posh/tools/svg-png-compare","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"1ab7699d-afbd-45e1-9674-732a3e4e2621","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"29ab7cef-aae5-45fa-875b-aa47b256a482","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzomsCQrLd5PvT5mJg1","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01GDvAKXjvD9cdRKwUu6AtrD","name":"Read","input":{"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\out\\glowsticks.raster.png"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":429,"cache_read_input_tokens":145392,"output_tokens":81,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":429,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":81,"cache_read_input_tokens":145392,"cache_creation_input_tokens":429,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":429},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzokBFKSRTaNLoJqF7R","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"b4cc718f-72c3-4cf6-813b-f025b5318c46","timestamp":"2026-07-27T17:59:26.437Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b4cc718f-72c3-4cf6-813b-f025b5318c46","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01GDvAKXjvD9cdRKwUu6AtrD","type":"tool_result","content":[{"type":"image","source":{"type":"base64","data":"iVBORw0KGgoAAAANSUhEUgAAB84AAAFUCAYAAABFrhbWAAEglklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1S+46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv+/CK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrq/y+Cq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvr/i+Cqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/v8iuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/vwiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666v8vgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676/4vgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/7/Irjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqq/78Irrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuur/L4Krrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+v+L4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+/yK46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv+/CK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrq/y+Cq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvr/i+Cqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/v8iuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/vwiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666v8vgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676/4vgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/7/Irjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqq/78Irrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuur/L4Krrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+v+L4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+/yK46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv+/CK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrq/y+Cq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvr/i+Cqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/v8iuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/vwiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666v8vKlf9ZxFXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf83mf87EFf9a4mrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteFOZ/PsRVL4i46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqP4P5nwNx1QOJ/xoCzFVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/0wCzH8d898H8f+X+M8jrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+bzP/ecx/HcT/L+LfT1x11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiMP9+5j8X4v8H8W8jrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+o9k/m3Mfw7E/23iX0/8xxFXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf+3mP845l/P/MdC/N8k/nXEv4349xFXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf+zmH8f829nXnTmPwbi/xbxohH/euJfJq666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/n8x/zLzr2NedObfB/F/h/iXiRedeOHEv48Ac9VVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131P4u4wvz7mOfP/OuYf5n5t0P87yf+ZeJFJ56X+LcRL5y46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvqfxbxw5t/GPC/zojH/MvNvg/jfTfzLxL9MPH/iXyael7jCgLjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+r/BgLjCPC/zLzPPn/mXmX+Z+ddB/O8l/mXiBRPPn3jBxPMn/nXEVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/bOZfzzwv84KZ52X+ZeaFMy86xP9O4oUTL5x4TuIFE89JvHDihRNXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf87mBfOvHDmOZkXzDwn88KZF868aBD/+4gXTrxg4jmJ5088J/H8ieck/nXEVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/LOZfxzwn8/yZ52SeP/OczAtmXjjzL0P87yJeOPH8iecknj/xbOJ5iecknj/xgomrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv8dzAtmnj/znMzzMs9mnj/zbOYFMy+ceeEQ/3uIF048f+I5ieclrhDPSzybeF7iOYkXTvzriKuuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqfz/zr2deOPOczPMyz2aek3k287zMczLPn3nhzAtG5f8G8XxIKkBwhQAB5gpxhXhO4tnEcxLPJp5NgLlCPCfxryOuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/5rmH+ZgbRtwLzozBXieZkrxPMyzyauMFcIMM9LgPm3QfzvIJ4/8XxIKrYNTFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfXv1QELSdhOns08J/OczBXmeRkwz8k8m3lO5jmZ52VeMPP8If7nEy+YeF4VGGazGddff/3L2n4ZSceB4Arx/InnJV4w8fyJf5m46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvqfy4CAZvvCNE1/ec899/x1ay0kbdhuPJt5NvNs5jmZK8xzMmCek7nCPCfznMzzMi+YeV6I/9nECyaei6Rie7zpppte5pGPfOQXZ+brrVar0lrjqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqf71aK7PZbGit/cJTnvKUz7r77rsfL2nbduMK82zmOZkrzLOZK8xzMmCek7nCPJt5TuZ5mefPPC/E/2zi+RPPqwDjS73US73byZMnv+euu+4qFy9epLXWMjO56qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqX0ullCilxOnTp7n++uv3H//4x7/7nXfe+YuSdmw3rjDPZp7NPJsB82zmCvNs5grzbOYK82zmOZnnZZ4/85wQ/3OJ5088F0nF9njjjTe+1qMf/ejfftrTnsalS5fGWmsFJImrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+9Wxj26216dSpU92DH/zgw7/7u7973XvuuefvJS1sN64wz2auMFeYZzNgns1cYa4wV5hnM1eYZzPPZp4/8/yZZ6PwP5N4/sTzEuCu6/zSL/3SP3zffffddO7cuanrug4QV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/btIUimlHB4ejqWU+bXXXnv97bff/qPAjGcTVwgQV4grxBXiCvFsAsSzCRDPSVwhnk08m3j+xL+M4H85SQG066+//uWBVzh37hyllGKbq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/mPYJiLq2bNnqbW+9smTJx8OjJICCEBAAAIECBAgQIAAAQIECAhAXCFAgLhCgHg2cYV4NvFs4kUnno3gfw/xvAQEQEQ8drlclmmaUpK46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqP5QkxnEkM7d2dnYeBYxAAQIIQEAAAgIQEIAAAQIECBBXCBBXCBAgrhAgQFwhrhDPJp5NPC/xwhH8zyNeNOI5nWytkZkpiauuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/7DKTNzmiZsnwYMFEBAAAEICEBAAAIEBCBAgAABAQgQEIC4QoC4QlwhrhBXiGcT/3riCir/O4gXTFxRJHHVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddV/LttERAUEBBCAuUKAeU4CzBUCzPMyIK4wIK4wIMCAAAMCDAgwVwgwIMA8JwHm+aPyv5O46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqv41tAQEIECDAXGHAgAEB5kVjQFxhQFxhQIB5NgHm+RNgXjRU/mcRz0u8YOKqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/DgICCCAAAwLMFQIMmGcTYF44A+IKA+IKA+IKc4W4wlwhwDx/AsxzEuDK/2zieYkrxFVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9dBAQQQADmCgMGzLMJMGCeTYB5XgISEFcYEFcYEFeYZxNgnpMA8y9T5X8X8bzEFeKqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/KgEEEEAABswVAgwYMGBAQAICDJjnz0AACYgrDIgrDIgrDAgwIMCAAPP8CTDPyZX/OcSLTlx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfXfSUAAAgQIMGDAXCHAgAEDAZh/mYEAEhBXmH89AeaFU+V/BvFvJ6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvqvJiCAAAIwIMCAAQPm386AAAMCDIgrDIgrDAgwzybAPH8CzLNR+Z/BgHhO4jmJK8Sziauuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/47BBBAAAEYMCDAgAEDBgwYMJD86xkQYEBcYZ6XAHOFAAMCzAtG5X8vcdVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111X8XAQEEEIABA+aFC8CAAQPJv455NnGFAQHmX4/K/0zi+RPPSTyb+E8kICTMFcYIACHAQNr8R5AgJGxjnk0SAtLG5j+EQlxm8xwkAJzmqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuq52RYQQAABGDBgwIABAwYMJM9fAMkLZkCAAQEGxBXmeQkwz0mAef6o/M8gXjjx36hITDb740ggQiCEAWNami6CjVpIG/NvI0FI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ddVVV1111VVXXXXVVVddddVVV1111VUvOvNsAgQIEM9LPJt4TuIK8WziXyaeTfzbiGcj+N9JXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9d9BXCGelwAB4goBAsQVAsSziSvEswkQzyZAXCGel3hO4l+H4H8ucdVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111f9kAgQIEM9JPCfxbALEcxLPSTwn8ZzEFebZxL9MPCeCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvq3Ec8mQIAA8WwCxBXieYlnE89JgHnhxL8Pwf984qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv+pBIjnJUA8LwHiCgEGxLOJ5yT+ZeJfJp4/gv/5DIirrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+JxEgnpd4NgHiCvH8iX898ZzMCydeMIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+rcTIECAuEJcYZ6TeDYB4vkTV4jnJV504l9GcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/NuIFEyCuECCelwFxhXhe5goBAsR/PIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+lewDSD+bQSIf5m4QvzriRcdwf9uAsRVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/EwgQIJ5NvGDiOYl/GwHi34bgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/7tBAgQz0u8YOLZxH8fgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676jyfAXCGuEP/zEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVv434zyX+81G56qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv85xH8tKlddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131X0c8J/G8xH8dgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676jyOeLXg28T8TwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9xxD/+xBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111f9fBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131/xfBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3/RXDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/38RXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/XwRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9f8XwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9/0Xlqv9i4qqrrrrq/zcD4t9KMuKqq6666n83m6v+F7EEiH8bA+J/H4PNVVddddVVV1111VVXXXXVVS+MuOr/A/PvIv7tzFX/dahc9V/KboC56qqrrvr/S4D5txHrSaS56qqrrvpfrRQRBTBX/U8niHGNnIAA868jwPzvIcCggmrHVVddddVVV1111VVXXXXVVc+fnYC56v8+qfBvlsZp/k0EKsFV/2WoXPVfRlG45vqXJ6LDNlddddVV/99I4Dag6DDiRSXAEuTIZ73q7bzUtRNHowiZq6666qr/TdIwnwe/+jsH/PXvHDHrhc2LxEAAS4GAuSEBcdV/BgOS8Ljm797zs9h7+MtQVodYwYvO5PKA2NgBm/8VnGi2wfIJf8jFn/8qiAoYbK666qqrrrrqqquuuuqqq64CECY5de1LMpvvkNkAcdX/TBJkNgAiCjb/KpI4e/dfM42HSMGLTMLridlLXMPiZa4nVxMKXjQGStAurTj89aeDzVX/Jahc9Z9ISGAbu4GDfnacUjpsg7jqqquu+n/FFsv1wMasEhJpQPyLBBhBDrz49ffy8FsEg0BcddVVV/3vksBG8JQ/D+4aYaOD1kD8ywwU4EAgYMOQgLjqP4MFkmBKnnr9I1k/+KUpywMcwYvMph1eom6fwDb/K2QjNnaYzt1Brpeom6HSoajYCTZgrrrqqquuuuqqq6666qqr/n8REtgGEmejn20zm58kcwSJq/4HMkii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gGxcddVVV1111VVXXXXVVVf9/2YwzyQgGIdDFAVnA8RV/0MJ3BoIFAXMv47AmYAA8yIzIJFHE9N9h3g1QYgXiY1K0C6twFz1X4fKVf9FhHPi3jv+hKuuuuqqq/7t3veHwOaqq6666n+1EHBcmBedAAPiCgMCzFX/GQQYo8UMfvyzwfz/IqEIsLnqqquuuuqqq6666qqrrrrqgYwkzt3zN1z1/4MkpOBfxUZ9YXj8WdaPOwviX8cgARKIq/5rULnqv5Qkrrrqqquu+rcTgLjqqquu+j9B/OsIAAEgrhBX/WcRz6QAcdVVV1111VVXXXXVVVddddVVzyKJq676F0lI/OuJq/7rEVx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/18EV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfX/F8FVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/f9FcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/fxFcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111f9fBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131/xfBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3/RXDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/38RXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/XwRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9f8XwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9/0Vw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9/EVx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/18EV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfX/F8FVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/f9FcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/fxFcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111f9fBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131/xfBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3/RXDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/38RXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/XwRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9f8XwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9/0Vw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9/EVx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/18EV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfX/F8FVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/f9FcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/fxFcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111f9fBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131/xfBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3/RXDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/38RXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/XwRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9f8XwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9/0Vw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9/EVx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/18EV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfX/F8FVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/f9FcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/fxFcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111f9fBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131/xfBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3/RXDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/38RXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/XwRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9f8XwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9/0Vw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9/EVx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/18EV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfX/F8FVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/f9FcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/fxFcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111f9fBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131/xfBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3/RXDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/38RXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/XwRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9f8XwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9/0Vw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9/EVx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/18EV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfX/F8FVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/f9FcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/fxFcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111f9fBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131/xfBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3/RXDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/38RXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/XwRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9f8XwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9/0Vw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9/EVx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/19UrvovJ4mI4H62yUyu+s8hiYgAQBKZSWbyP4EkIgIASWQmmclVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131X4bKVf+lJDGOI4eHh9xvPp8zn8+xzVX/8VprXLp0CdvYZjabsbGxgW3+u03TxOHhIbaxzWw2Y7FYcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/2XoXLVfxlJjOPIjTfeyGu8xmsgiYjgr/7qr3jc4x5H13XY5qr/GJKYponjx4/z1m/91sznc0opPPGJT+TP/uzPqLVim/8OkpimiZMnT/K2b/u2zGYzSik84QlP4M///M+ptWKbq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666j8dlav+y0hiGAZe8iVfkm/4hm/gfl/yJV/CX//1X9P3Pba56j+GJMZx5IYbbuDrv/7rmc1mAPzoj/4of/iHf0jXddjm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VVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9R/DgHk28z8flauuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676z2GezVxhnpP570Xlqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/7nMGD+61C56qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv+ZzH8+gquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676tzEvmAHxnMz/PFSuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666j+XeV7mfwYq//uZq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/rsYMGDAgAFzhQHzgpkrzL+PAfNvQ+V/N3PVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddV/KUkA5t/OPH/meZn/XFSuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666j+fucI8J/P8mWczYF505kVH5aqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+bQwYMGCekwFzhbnCvGDmeYnnZMD8xyL4n09cddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131v4EBA+YKAeb5My+YucI8f+ZFY64wLxiV//nMFeKqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/KQyYF848m3k284KZ52T+Y5jnj+Cqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/u0MGDBgwIAB82zm2cyzmSvMFeZ5if9cVK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrq38a8cAbMs5nnZa4wz8v85yP4n8tcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131P5kBAwYMmGczz2bAPJsB84IZMM/JPCfzvMy/zDwngv+dzFVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf+dzBUGzLMZMFcYMM9mwDybAQPm2cxzMmCuMGCezYB5TuZfh8r/EZKwzVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf8lDJhnM2DAgAED5goD5tkMmOdkwDwn85/DPBuV/13MFeIKAwawvZKEJHHVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddV/CklIwvbIFQYMGDDPyzybAfNsBgyY52X+fcyLhsr/HffMZjNKKWGbq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/uOVUtR1ncdxPAcEkIABc4UBAwYMGDBgrjBXmOdlwIB5NgPmOZn/OAT/M4h/mXlO5ooGLC5duvRHs9ns3GKxUGZaElddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3HkERrLbe3twHuvvfee58M9LYTMFcYMGDAgAEDBgyYK8wVBswV5oUzYJ7NXGHAgHn+zAtH8D+D+TeybUn9xYsXbz1//vy33HjjjQBTZiKJq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/n0kkZkupfiGG27gnnvu+anM3JcUgAEDBgwYMGCekwEDBgyYZzNXGDBgwID5z4f47yOel7hCXCGeLbhCgAABAgQEYEnl1V/91X/+8PDw1W+77bbJtiRJEoD4b2abq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/DSRhGwDbLqX4YQ97WMnM3/+TP/mTLwQKYCCBBAwkkICBBBJIIIEEEkgggQYkkEACCSSQQAIJJJCAgQQSSMBAAgkYMGDAgAEDBswVybMZMM9m8d9HPC9xhbhCPFtwhQABAgQIkKRiezhz5sw1L/ESL/GdwzC87rlz51gul0zTxL+HJGwDIImrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv8vaq1sbm5y5swZDg8Pf/cf/uEfvvro6GgtKWw3wEACBhJIwEACCSSQQAIJJJBAAgkkkEADDDQggQQSMJBAAgkYSMCAgQQMGDCQXGHAXJE8mwHzbBb/fcTzEleIK8QV4goBAgQIECBAgCRV28PGxkb/0Ic+9M23trbeoeu6l+q6rs/MAJCEbQDxvARgmwcQz594Jts8gCRhmxeRuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqq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ddVVV1111VVXXXXVVf+9zIvGPH/mOZnnZK4wz8s8m3lO5jmZ58+8YOYFo/C/i3jBxAsmnk08L/Fs4nmZZxPPyzwvcdVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131v4d50ZnnZJ4/82zmeZlnM8/LPJt5wcwLZl44Cv+7iBdOvGDiOYnnJZ6T+JeJ58+A+ZeJq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/GcwLZ8C8YOY5medlns08f+Y5mRfM/Psg/vcRL5x44cRzEs+feE7i+RPPn/iPIa666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/mOY/xjm+TPPn3lO5vkzz8m8cOaFM/8yCv87iX+ZeOHEcxIvmHhO4l9m/nXEVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddV/D/OiMy8a85zMC2aek3nhzAtnXnSI/93ECyf+ZeJ5iRdOPH/iP4646qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvrPYf7jmOfPvHDm+TMvnHnhzL8Ohf/9xL9M/MvE8ydeNOJ5iedkQFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/e9gQDybef7Mi8Y8f+ZFY14486+H+L9BvGjEi0a8YOLfTvz7iKuuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqfx3z72OekwDzojEvmHnRmX+Z+bdB/N8hXnTiRSdeOPGfRzybueqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676txHPZv7zmBfO/OuYF435t6Pwf4940Yl/PfGiEVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/zeZF435tzEvGvPvR+H/LvGvI/59xFVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/1/m387865j/OBT+7xP/euI/h7jqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+t/F/Ocw/3rmPx6F/z/Ev5246qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrq38P825n/PBT+/xH/ccRVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VUPZP7jmP98iKv+I4mrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv9fzP9uiKuuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676/4t/BLjgNi8IPHNCAAAAAElFTkSuQmCC","media_type":"image/png"}}]}]},"uuid":"811a23c0-933d-409e-9308-5cc00dd384c9","timestamp":"2026-07-27T17:59:26.589Z","toolUseResult":{"type":"image","file":{"base64":"iVBORw0KGgoAAAANSUhEUgAAB84AAAFUCAYAAABFrhbWAAEglklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1S+46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv+/CK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrq/y+Cq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvr/i+Cqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/v8iuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/vwiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666v8vgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676/4vgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/7/Irjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqq/78Irrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuur/L4Krrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+v+L4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+/yK46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv+/CK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrq/y+Cq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvr/i+Cqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/v8iuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/vwiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666v8vgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676/4vgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/7/Irjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqq/78Irrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuur/L4Krrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+v+L4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+/yK46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv+/CK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrq/y+Cq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvr/i+Cqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/v8iuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/vwiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666v8vKlf9ZxFXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf83mf87EFf9a4mrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteFOZ/PsRVL4i46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqP4P5nwNx1QOJ/xoCzFVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/0wCzH8d898H8f+X+M8jrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+bzP/ecx/HcT/L+LfT1x11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiMP9+5j8X4v8H8W8jrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+o9k/m3Mfw7E/23iX0/8xxFXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf+3mP845l/P/MdC/N8k/nXEv4349xFXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf+zmH8f829nXnTmPwbi/xbxohH/euJfJq666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/n8x/zLzr2NedObfB/F/h/iXiRedeOHEv48Ac9VVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131P4u4wvz7mOfP/OuYf5n5t0P87yf+ZeJFJ56X+LcRL5y46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvqfxbxw5t/GPC/zojH/MvNvg/jfTfzLxL9MPH/iXyael7jCgLjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+r/BgLjCPC/zLzPPn/mXmX+Z+ddB/O8l/mXiBRPPn3jBxPMn/nXEVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/bOZfzzwv84KZ52X+ZeaFMy86xP9O4oUTL5x4TuIFE89JvHDihRNXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf87mBfOvHDmOZkXzDwn88KZF868aBD/+4gXTrxg4jmJ5088J/H8ieck/nXEVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/LOZfxzwn8/yZ52SeP/OczAtmXjjzL0P87yJeOPH8iecknj/xbOJ5iecknj/xgomrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv8dzAtmnj/znMzzMs9mnj/zbOYFMy+ceeEQ/3uIF048f+I5ieclrhDPSzybeF7iOYkXTvzriKuuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqfz/zr2deOPOczPMyz2aek3k287zMczLPn3nhzAtG5f8G8XxIKkBwhQAB5gpxhXhO4tnEcxLPJp5NgLlCPCfxryOuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/5rmH+ZgbRtwLzozBXieZkrxPMyzyauMFcIMM9LgPm3QfzvIJ4/8XxIKrYNTFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfXv1QELSdhOns08J/OczBXmeRkwz8k8m3lO5jmZ52VeMPP8If7nEy+YeF4VGGazGddff/3L2n4ZSceB4Arx/InnJV4w8fyJf5m46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvqfy4CAZvvCNE1/ec899/x1ay0kbdhuPJt5NvNs5jmZK8xzMmCek7nCPCfznMzzMi+YeV6I/9nECyaei6Rie7zpppte5pGPfOQXZ+brrVar0lrjqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqf71aK7PZbGit/cJTnvKUz7r77rsfL2nbduMK82zmOZkrzLOZK8xzMmCek7nCPJt5TuZ5mefPPC/E/2zi+RPPqwDjS73US73byZMnv+euu+4qFy9epLXWMjO56qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqX0ullCilxOnTp7n++uv3H//4x7/7nXfe+YuSdmw3rjDPZp7NPJsB82zmCvNs5grzbOYK82zmOZnnZZ4/85wQ/3OJ5088F0nF9njjjTe+1qMf/ejfftrTnsalS5fGWmsFJImrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+9Wxj26216dSpU92DH/zgw7/7u7973XvuuefvJS1sN64wz2auMFeYZzNgns1cYa4wV5hnM1eYZzPPZp4/8/yZZ6PwP5N4/sTzEuCu6/zSL/3SP3zffffddO7cuanrug4QV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/btIUimlHB4ejqWU+bXXXnv97bff/qPAjGcTVwgQV4grxBXiCvFsAsSzCRDPSVwhnk08m3j+xL+M4H85SQG066+//uWBVzh37hyllGKbq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/mPYJiLq2bNnqbW+9smTJx8OjJICCEBAAAIECBAgQIAAAQIECAhAXCFAgLhCgHg2cYV4NvFs4kUnno3gfw/xvAQEQEQ8drlclmmaUpK46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqP5QkxnEkM7d2dnYeBYxAAQIIQEAAAgIQEIAAAQIECBBXCBBXCBAgrhAgQFwhrhDPJp5NPC/xwhH8zyNeNOI5nWytkZkpiauuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/7DKTNzmiZsnwYMFEBAAAEICEBAAAIEBCBAgAABAQgQEIC4QoC4QlwhrhBXiGcT/3riCir/O4gXTFxRJHHVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddV/LttERAUEBBCAuUKAeU4CzBUCzPMyIK4wIK4wIMCAAAMCDAgwVwgwIMA8JwHm+aPyv5O46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqv41tAQEIECDAXGHAgAEB5kVjQFxhQFxhQIB5NgHm+RNgXjRU/mcRz0u8YOKqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/DgICCCAAAwLMFQIMmGcTYF44A+IKA+IKA+IKc4W4wlwhwDx/AsxzEuDK/2zieYkrxFVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9dBAQQQADmCgMGzLMJMGCeTYB5XgISEFcYEFcYEFeYZxNgnpMA8y9T5X8X8bzEFeKqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/KgEEEEAABswVAgwYMGBAQAICDJjnz0AACYgrDIgrDIgrDAgwIMCAAPP8CTDPyZX/OcSLTlx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfXfSUAAAgQIMGDAXCHAgAEDAZh/mYEAEhBXmH89AeaFU+V/BvFvJ6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvqvJiCAAAIwIMCAAQPm386AAAMCDIgrDIgrDAgwzybAPH8CzLNR+Z/BgHhO4jmJK8Sziauuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/47BBBAAAEYMCDAgAEDBgwYMJD86xkQYEBcYZ6XAHOFAAMCzAtG5X8vcdVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111X8XAQEEEIABA+aFC8CAAQPJv455NnGFAQHmX4/K/0zi+RPPSTyb+E8kICTMFcYIACHAQNr8R5AgJGxjnk0SAtLG5j+EQlxm8xwkAJzmqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuq52RYQQAABGDBgwIABAwYMJM9fAMkLZkCAAQEGxBXmeQkwz0mAef6o/M8gXjjx36hITDb740ggQiCEAWNami6CjVpIG/NvI0FI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ddVVV1111VVXXXXVVVddddVVV1111VUvOvNsAgQIEM9LPJt4TuIK8WziXyaeTfzbiGcj+N9JXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9d9BXCGelwAB4goBAsQVAsSziSvEswkQzyZAXCGel3hO4l+H4H8ucdVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111f9kAgQIEM9JPCfxbALEcxLPSTwn8ZzEFebZxL9MPCeCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvq3Ec8mQIAA8WwCxBXieYlnE89JgHnhxL8Pwf984qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv+pBIjnJUA8LwHiCgEGxLOJ5yT+ZeJfJp4/gv/5DIirrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+JxEgnpd4NgHiCvH8iX898ZzMCydeMIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+rcTIECAuEJcYZ6TeDYB4vkTV4jnJV504l9GcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/NuIFEyCuECCelwFxhXhe5goBAsR/PIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+lewDSD+bQSIf5m4QvzriRcdwf9uAsRVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/EwgQIJ5NvGDiOYl/GwHi34bgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/7tBAgQz0u8YOLZxH8fgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676jyfAXCGuEP/zEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVv434zyX+81G56qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv85xH8tKlddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131X0c8J/G8xH8dgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676jyOeLXg28T8TwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9xxD/+xBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111f9fBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131/xfBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3/RXDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/38RXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/XwRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9f8XwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9/0Xlqv9i4qqrrrrq/zcD4t9KMuKqq6666n83m6v+F7EEiH8bA+J/H4PNVVddddVVV1111VVXXXXVVS+MuOr/A/PvIv7tzFX/dahc9V/KboC56qqrrvr/S4D5txHrSaS56qqrrvpfrRQRBTBX/U8niHGNnIAA868jwPzvIcCggmrHVVddddVVV1111VVXXXXVVc+fnYC56v8+qfBvlsZp/k0EKsFV/2WoXPVfRlG45vqXJ6LDNlddddVV/99I4Dag6DDiRSXAEuTIZ73q7bzUtRNHowiZq6666qr/TdIwnwe/+jsH/PXvHDHrhc2LxEAAS4GAuSEBcdV/BgOS8Ljm797zs9h7+MtQVodYwYvO5PKA2NgBm/8VnGi2wfIJf8jFn/8qiAoYbK666qqrrrrqqquuuuqqq64CECY5de1LMpvvkNkAcdX/TBJkNgAiCjb/KpI4e/dfM42HSMGLTMLridlLXMPiZa4nVxMKXjQGStAurTj89aeDzVX/Jahc9Z9ISGAbu4GDfnacUjpsg7jqqquu+n/FFsv1wMasEhJpQPyLBBhBDrz49ffy8FsEg0BcddVVV/3vksBG8JQ/D+4aYaOD1kD8ywwU4EAgYMOQgLjqP4MFkmBKnnr9I1k/+KUpywMcwYvMph1eom6fwDb/K2QjNnaYzt1Brpeom6HSoajYCTZgrrrqqquuuuqqq6666qqr/n8REtgGEmejn20zm58kcwSJq/4HMkii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gGxcddVVV1111VVXXXXVVVf9/2YwzyQgGIdDFAVnA8RV/0MJ3BoIFAXMv47AmYAA8yIzIJFHE9N9h3g1QYgXiY1K0C6twFz1X4fKVf9FhHPi3jv+hKuuuuqqq/7t3veHwOaqq6666n+1EHBcmBedAAPiCgMCzFX/GQQYo8UMfvyzwfz/IqEIsLnqqquuuuqqq6666qqrrrrqgYwkzt3zN1z1/4MkpOBfxUZ9YXj8WdaPOwviX8cgARKIq/5rULnqv5Qkrrrqqquu+rcTgLjqqquu+j9B/OsIAAEgrhBX/WcRz6QAcdVVV1111VVXXXXVVVddddVVzyKJq676F0lI/OuJq/7rEVx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/18EV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfX/F8FVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/f9FcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/fxFcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111f9fBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131/xfBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3/RXDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/38RXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/XwRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9f8XwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9/0Vw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9/EVx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/18EV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfX/F8FVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/f9FcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/fxFcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111f9fBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131/xfBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3/RXDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/38RXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/XwRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9f8XwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9/0Vw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9/EVx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/18EV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfX/F8FVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/f9FcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/fxFcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111f9fBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131/xfBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3/RXDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/38RXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/XwRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9f8XwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9/0Vw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9/EVx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/18EV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfX/F8FVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/f9FcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/fxFcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111f9fBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131/xfBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3/RXDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/38RXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/XwRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9f8XwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9/0Vw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9/EVx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/18EV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfX/F8FVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/f9FcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/fxFcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111f9fBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131/xfBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3/RXDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/38RXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/XwRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9f8XwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9/0Vw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9/EVx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/18EV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfX/F8FVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/f9FcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/fxFcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111f9fBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131/xfBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3/RXDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/38RXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddX/XwRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9f8XwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9/0Vw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9/EVx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/19UrvovJ4mI4H62yUyu+s8hiYgAQBKZSWbyP4EkIgIASWQmmclVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131X4bKVf+lJDGOI4eHh9xvPp8zn8+xzVX/8VprXLp0CdvYZjabsbGxgW3+u03TxOHhIbaxzWw2Y7FYcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/2XoXLVfxlJjOPIjTfeyGu8xmsgiYjgr/7qr3jc4x5H13XY5qr/GJKYponjx4/z1m/91sznc0opPPGJT+TP/uzPqLVim/8OkpimiZMnT/K2b/u2zGYzSik84QlP4M///M+ptWKbq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666j8dlav+y0hiGAZe8iVfkm/4hm/gfl/yJV/CX//1X9P3Pba56j+GJMZx5IYbbuDrv/7rmc1mAPzoj/4of/iHf0jXddjm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VVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9R/DgHk28z8flauuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676z2GezVxhnpP570Xlqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/7nMGD+61C56qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv+ZzH8+gquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676tzEvmAHxnMz/PFSuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666j+XeV7mfwYq//uZq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/rsYMGDAgAFzhQHzgpkrzL+PAfNvQ+V/N3PVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddV/KUkA5t/OPH/meZn/XFSuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666j+fucI8J/P8mWczYF505kVH5aqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+bQwYMGCekwFzhbnCvGDmeYnnZMD8xyL4n09cddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131v4EBA+YKAeb5My+YucI8f+ZFY64wLxiV//nMFeKqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/KQyYF848m3k284KZ52T+Y5jnj+Cqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/u0MGDBgwIAB82zm2cyzmSvMFeZ5if9cVK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrq38a8cAbMs5nnZa4wz8v85yP4n8tcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131P5kBAwYMmGczz2bAPJsB84IZMM/JPCfzvMy/zDwngv+dzFVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf+dzBUGzLMZMFcYMM9mwDybAQPm2cxzMmCuMGCezYB5TuZfh8r/EZKwzVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf8lDJhnM2DAgAED5goD5tkMmOdkwDwn85/DPBuV/13MFeIKAwawvZKEJHHVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddV/CklIwvbIFQYMGDDPyzybAfNsBgyY52X+fcyLhsr/HffMZjNKKWGbq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/uOVUtR1ncdxPAcEkIABc4UBAwYMGDBgrjBXmOdlwIB5NgPmOZn/OAT/M4h/mXlO5ooGLC5duvRHs9ns3GKxUGZaElddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3HkERrLbe3twHuvvfee58M9LYTMFcYMGDAgAEDBgyYK8wVBswV5oUzYJ7NXGHAgHn+zAtH8D+D+TeybUn9xYsXbz1//vy33HjjjQBTZiKJq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/n0kkZkupfiGG27gnnvu+anM3JcUgAEDBgwYMGCekwEDBgyYZzNXGDBgwID5z4f47yOel7hCXCGeLbhCgAABAgQEYEnl1V/91X/+8PDw1W+77bbJtiRJEoD4b2abq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/DSRhGwDbLqX4YQ97WMnM3/+TP/mTLwQKYCCBBAwkkICBBBJIIIEEEkgggQYkkEACCSSQQAIJJJCAgQQSSMBAAgkYMGDAgAEDBswVybMZMM9m8d9HPC9xhbhCPFtwhQABAgQIkKRiezhz5sw1L/ESL/GdwzC87rlz51gul0zTxL+HJGwDIImrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv8vaq1sbm5y5swZDg8Pf/cf/uEfvvro6GgtKWw3wEACBhJIwEACCSSQQAIJJJBAAgkkkEADDDQggQQSMJBAAgkYSMCAgQQMGDCQXGHAXJE8mwHzbBb/fcTzEleIK8QV4goBAgQIECBAgCRV28PGxkb/0Ic+9M23trbeoeu6l+q6rs/MAJCEbQDxvARgmwcQz594Jts8gCRhmxeRuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqq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ddVVV1111VVXXXXVVf+9zIvGPH/mOZnnZK4wz8s8m3lO5jmZ58+8YOYFo/C/i3jBxAsmnk08L/Fs4nmZZxPPyzwvcdVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131v4d50ZnnZJ4/82zmeZlnM8/LPJt5wcwLZl44Cv+7iBdOvGDiOYnnJZ6T+JeJ58+A+ZeJq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/GcwLZ8C8YOY5medlns08f+Y5mRfM/Psg/vcRL5x44cRzEs+feE7i+RPPn/iPIa666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/mOY/xjm+TPPn3lO5vkzz8m8cOaFM/8yCv87iX+ZeOHEcxIvmHhO4l9m/nXEVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddV/D/OiMy8a85zMC2aek3nhzAtnXnSI/93ECyf+ZeJ5iRdOPH/iP4646qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvrPYf7jmOfPvHDm+TMvnHnhzL8Ohf/9xL9M/MvE8ydeNOJ5iedkQFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/e9gQDybef7Mi8Y8f+ZFY14486+H+L9BvGjEi0a8YOLfTvz7iKuuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqfx3z72OekwDzojEvmHnRmX+Z+bdB/N8hXnTiRSdeOPGfRzybueqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676txHPZv7zmBfO/OuYF435t6Pwf4940Yl/PfGiEVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/zeZF435tzEvGvPvR+H/LvGvI/59xFVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXV/1/m387865j/OBT+7xP/euI/h7jqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+t/F/Ocw/3rmPx6F/z/Ev5246qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrq38P825n/PBT+/xH/ccRVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VUPZP7jmP98iKv+I4mrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv9fzP9uiKuuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676/4t/BLjgNi8IPHNCAAAAAElFTkSuQmCC","type":"image/png","originalSize":71209,"dimensions":{"originalWidth":3756,"originalHeight":639,"displayWidth":2000,"displayHeight":340}}},"sourceToolAssistantUUID":"b4cc718f-72c3-4cf6-813b-f025b5318c46","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"811a23c0-933d-409e-9308-5cc00dd384c9","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":"[Image: original 3756x639, displayed at 2000x340. Multiply coordinates by 1.88 to map to original image.]"},"isMeta":true,"uuid":"5f30b67b-6eda-40c0-a433-4e921b995ba4","timestamp":"2026-07-27T17:59:26.585Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5f30b67b-6eda-40c0-a433-4e921b995ba4","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzozMXhc4BWmkQoib2R","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm identifying the specific rendering issues in the browser. The whitespace is definitely collapsing around the text elements—the session name, path, and timing all have their padding stripped away and are getting jammed right up against the separators, which doesn't match the reference image where everything has proper spacing. There's also something off with the Powerline separator between the session and path segments; the SVG shows the right colors and triangle shape, but the overall appearance suffers from that whitespace problem. For the cursor placement, I'm having trouble pinpointing exactly where the underscore should be in the SVG raster—it's faint or possibly obscured—whereas the reference PNG clearly shows it right after the blue check diamond. I'm also noticing some visual artifacts in the status segment, like a stray glyph or checkmark rendering oddly around x=925.\n\nNow I'm zooming in on specific regions to get precise measurements. I'm cropping the left area and the cursor region separately, accounting for the display scaling—the raster is 3756×639 pixels but displays at 2000 wide, so I need to multiply coordinates by about 1.88 to map back to the actual pixel positions. I'm focusing on the area around the blue check and the cursor to see exactly what's rendering differently.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1080,"cache_read_input_tokens":145821,"output_tokens":977,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1080,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":977,"cache_read_input_tokens":145821,"cache_creation_input_tokens":1080,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1080},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzouhUpX1PLn6kpw97S","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"36046c20-4e80-4992-aa50-e3fa3a59bfe4","timestamp":"2026-07-27T17:59:42.214Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"36046c20-4e80-4992-aa50-e3fa3a59bfe4","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzozMXhc4BWmkQoib2R","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01LYyZYB3V1FyeD6qjqhjCqv","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; O=/d/oh-my-posh/tools/svg-png-compare/out; python \"$SP/crop.py\" \"$O/glowsticks.raster.png\" \"$TMPDIR/z-new.png\" 130 210 1700 100 2 && python \"$SP/crop.py\" \"$O/glowsticks.png\" \"$TMPDIR/z-old.png\" 130 275 1700 100 2","description":"Crop matching regions from both renders"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1080,"cache_read_input_tokens":145821,"output_tokens":977,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1080,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":977,"cache_read_input_tokens":145821,"cache_creation_input_tokens":1080,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1080},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzouhUpX1PLn6kpw97S","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"39803160-da8d-4810-b532-1d3ef82317fd","timestamp":"2026-07-27T17:59:44.014Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"39803160-da8d-4810-b532-1d3ef82317fd","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01LYyZYB3V1FyeD6qjqhjCqv","type":"tool_result","content":"(3756, 639) -> crop (3400, 200) saved C:/Users/jande/AppData/Local/Temp/z-new.png\r\n(3648, 632) -> crop (3400, 200) saved C:/Users/jande/AppData/Local/Temp/z-old.png","is_error":false}]},"uuid":"eb27393f-ec6f-431d-bfa7-a2e1388c9159","timestamp":"2026-07-27T17:59:49.386Z","toolUseResult":{"stdout":"(3756, 639) -> crop (3400, 200) saved C:/Users/jande/AppData/Local/Temp/z-new.png\r\n(3648, 632) -> crop (3400, 200) saved C:/Users/jande/AppData/Local/Temp/z-old.png","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"39803160-da8d-4810-b532-1d3ef82317fd","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"eb27393f-ec6f-431d-bfa7-a2e1388c9159","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzqfHNNXbiHvEoXHP9g","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_018jmpHauGkRsMyf2RGzsagG","name":"Read","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\z-new.png"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1073,"cache_read_input_tokens":146901,"output_tokens":72,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1073,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":72,"cache_read_input_tokens":146901,"cache_creation_input_tokens":1073,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1073},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzqakX1dxdrF8x2gJSY","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"fd0476c2-10f6-4d86-b507-a6005870b06c","timestamp":"2026-07-27T17:59:52.344Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fd0476c2-10f6-4d86-b507-a6005870b06c","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_018jmpHauGkRsMyf2RGzsagG","type":"tool_result","content":[{"type":"image","source":{"type":"base64","data":"iVBORw0KGgoAAAANSUhEUgAAB8UAAAB1CAIAAABYq6dRAAEx9ElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a9ec801XHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvVHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/UuCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupfElx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/5Lgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvqXBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvyS46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/4lwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131Lwmuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqn9JcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9S4Krrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666l8SXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/kuCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+pcEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/pPI/lCSuuuqqq6666qqr/s0MgPhPFyJkm6uuuuqqq6666v8YCZtMrrrqfztHRfwnMsaSuOpFYxsnNlf9b1P5HylztFNcddVVV1111VVX/VtJGDD/mZpjOcXQEFddddVVV1111f81hq6o76WCQfynMAQACeKqq/7jyVkPzstpBOY/mMBCRDgTzFX/AmGrFHVz1Z6r/rep/I8jux078bB+fsxuXHXVVVddddVVV/3rCU1tLaKUzpj/BAKjU93eGz/s4MWvacuJEFddddVVV1111f8ZNn3V0+4e/+7vVqt7GwHmP54IcyASdkwKzFVX/ccQGIuj+c4z3uWT2mxD2SzxH8uWwm1oR3tl6yQSV71wtko3Xbzr6PG/PzzjbykVm6v+96j8DyOR6cXWNZvbN2QbkLjqqquuuuqqq676VzFSDMNBKGq3YSfiP5wgiRsXd7/li+slHzWwEsFVV1111VVXXfV/R5p53Pr3y/5p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ajbrASnA2OM43X33uSc86elPf8Yd+wfLWsrWxsYjHnHLox754DNnTtRSwJIi4qEPufE93+0tvu07f/LJT3nGYjHLNACapvERD3/QIx/xoPli5kzbh4erP/7jvz1/frfru7S5TBJQIl71lV/qrd/ydR/xsJtrV0PB/a655tQjHv6gN37DV/vTP/uHn/rZ37y0e8AVou+74ye2a63DMEbIBpBk++Ybr337t369136tV+i73nZE2DYO6Wi5vv32e5769Nufduud4zhm5mIxv/GGax71iAc9+JYb5vMZWEIhIV4wiWM7W2/0Bq/yGq/2MrO+ByvCtm3b95278LjHPfXJT7ltuVrV0j3qkQ968Rd72LXXnIoIICJsl1Jf49Ve5uDg8Id//FcOj5Y2LyInL/uyj7nx+jPz+Szt1TA+9am3/d0/POXc+Yvr9XD69MmXeLGHP/pRD9lczKWQBK6lPuwhN736q73sX//dEyOC5+ZhnM5f2L3r7rMRwiCusD2f9Ts7W4vF3DaX7e7uHR6tnEY8N6PQMIwXd/cyU+IF6fvuUY948Du83Rtce82pUgKQsA2s1qunPPX2f/iHp9537kJrec3pky/5ko98+MNums/mEhECBNdde/od3+4Nzp27+KSn3jZOk3j+bPdd94qv8OKv+zqvePrUcdulBGA70/fcc+6pT7v9SU+97eLupVIKsL258aAH3fCgW2644foz21sbgI1A4oUzlIhXf5WXefM3fs1bbrrOdikB2JZYrlZPeert//D4p959z7lSdPLk8Zd5iUc/9CE3bmzMAUmSMn3jjde8yzu+yXo9/umf//3m5iIz+W8lKe1XeZWXeu3XeoWNjYXtiLCNWQ/jbXfc8/d//+Tbbr/Hzvls9uKPffhjH/PQEyd2hOaz7mVf5tGzvudFZnsxn73MSz36rd/ydY7tbEmSZBvb9qVL+096ym1PeMLTL17am1qbz2c3XH/Nox/54Ic+5MZZ34MiZPvUyWNv9PqvevHi/m/97p8eLdcR4n62S4nHP+HpT3rSMx718AfP570NcOrk8Vd+hZe4774Ld91ztqvVNi9YRNx007UPftANTnPZNOWTnvKMu+4+23edbV4wQUtfd+2pa86ccKaE8V13n/27xz3l6c+46+hwOZt1j3j4g176JR555vTJWgsgqRQt5rPXfo2Xf+pTb7+0dzAMI8+P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zGOz10wMRmDzn6FABwkz07jqqv84QibFSor5lhbbMY1I/IdTEFWzw1hsc9W/xM7oFjHboFQwV/1vU/kfxgYxrveWpcucQFx11VVXXXXVVVf9K0maxqUU03hkm/8EErZ2c/9v71otYjocFOKqq6666qqrrvo/I+15H4+7e7xt8FGFAPEfzlDgkjAMpoG46qr/SIbDHI6e/pfTYlutIf7jKTyup4OLuXcvCMxVL4St2g/33ZoHF6Tgqv9tdM011/A/j21jrrrqqquuuuqqq/6thMDmP5u46qqrrrrqqqv+j7IJIZHmP5UwYMRVV/0nkG3EfyKDBOaqF5ElAZK46n+byv9IUoirrrrqqquuuuqqfy/xn0tCWOKqq6666qqrrvo/ycamiP9k4qqr/vNIjgCB+U8hMEYCBOaqf4Gwwdhc9b9N5X8oc9VVV1111VVXXfU/no0Bc9VVV1111VVXXXXVVf9zZfJfwFx11f95wVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131Lwmuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqn9JcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9S4Krrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666l8SXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/kuCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+pcEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/JLjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/iXBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfUvCa666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqf0lw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1Lgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqXxJcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf+S4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676lwRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8kuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+JcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9S8Jrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qp/SXDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/Uv+Efn1ZKy/tUl9AAAAAElFTkSuQmCC","media_type":"image/png"}}]}]},"uuid":"37b87f84-a69b-4dad-a838-e431951341bd","timestamp":"2026-07-27T17:59:52.461Z","toolUseResult":{"type":"image","file":{"base64":"iVBORw0KGgoAAAANSUhEUgAAB8UAAAB1CAIAAABYq6dRAAEx9ElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a9ec801XHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvVHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/UuCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupfElx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/5Lgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvqXBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvyS46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/4lwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131Lwmuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqn9JcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9S4Krrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666l8SXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/kuCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+pcEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/pPI/lCSuuuqqq6666qqr/s0MgPhPFyJkm6uuuuqqq6666v8YCZtMrrrqfztHRfwnMsaSuOpFYxsnNlf9b1P5HylztFNcddVVV1111VVX/VtJGDD/mZpjOcXQEFddddVVV1111f81hq6o76WCQfynMAQACeKqq/7jyVkPzstpBOY/mMBCRDgTzFX/AmGrFHVz1Z6r/rep/I8jux078bB+fsxuXHXVVVddddVVV/3rCU1tLaKUzpj/BAKjU93eGz/s4MWvacuJEFddddVVV1111f8ZNn3V0+4e/+7vVqt7GwHmP54IcyASdkwKzFVX/ccQGIuj+c4z3uWT2mxD2SzxH8uWwm1oR3tl6yQSV71wtko3Xbzr6PG/PzzjbykVm6v+96j8DyOR6cXWNZvbN2QbkLjqqquuuuqqq676VzFSDMNBKGq3YSfiP5wgiRsXd7/li+slHzWwEsFVV1111VVXXfV/R5p53Pr3y/5p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ajbrASnA2OM43X33uSc86elPf8Yd+wfLWsrWxsYjHnHLox754DNnTtRSwJIi4qEPufE93+0tvu07f/LJT3nGYjHLNACapvERD3/QIx/xoPli5kzbh4erP/7jvz1/frfru7S5TBJQIl71lV/qrd/ydR/xsJtrV0PB/a655tQjHv6gN37DV/vTP/uHn/rZ37y0e8AVou+74ye2a63DMEbIBpBk++Ybr337t369136tV+i73nZE2DYO6Wi5vv32e5769Nufduud4zhm5mIxv/GGax71iAc9+JYb5vMZWEIhIV4wiWM7W2/0Bq/yGq/2MrO+ByvCtm3b95278LjHPfXJT7ltuVrV0j3qkQ968Rd72LXXnIoIICJsl1Jf49Ve5uDg8Id//FcOj5Y2LyInL/uyj7nx+jPz+Szt1TA+9am3/d0/POXc+Yvr9XD69MmXeLGHP/pRD9lczKWQBK6lPuwhN736q73sX//dEyOC5+ZhnM5f2L3r7rMRwiCusD2f9Ts7W4vF3DaX7e7uHR6tnEY8N6PQMIwXd/cyU+IF6fvuUY948Du83Rtce82pUgKQsA2s1qunPPX2f/iHp9537kJrec3pky/5ko98+MNums/mEhECBNdde/od3+4Nzp27+KSn3jZOk3j+bPdd94qv8OKv+zqvePrUcdulBGA70/fcc+6pT7v9SU+97eLupVIKsL258aAH3fCgW2644foz21sbgI1A4oUzlIhXf5WXefM3fs1bbrrOdikB2JZYrlZPeert//D4p959z7lSdPLk8Zd5iUc/9CE3bmzMAUmSMn3jjde8yzu+yXo9/umf//3m5iIz+W8lKe1XeZWXeu3XeoWNjYXtiLCNWQ/jbXfc8/d//+Tbbr/Hzvls9uKPffhjH/PQEyd2hOaz7mVf5tGzvudFZnsxn73MSz36rd/ydY7tbEmSZBvb9qVL+096ym1PeMLTL17am1qbz2c3XH/Nox/54Ic+5MZZ34MiZPvUyWNv9PqvevHi/m/97p8eLdcR4n62S4nHP+HpT3rSMx718AfP570NcOrk8Vd+hZe4774Ld91ztqvVNi9YRNx007UPftANTnPZNOWTnvKMu+4+23edbV4wQUtfd+2pa86ccKaE8V13n/27xz3l6c+46+hwOZt1j3j4g176JR555vTJWgsgqRQt5rPXfo2Xf+pTb7+0dzAMI8+P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zGOz10wMRmDzn6FABwkz07jqqv84QibFSor5lhbbMY1I/IdTEFWzw1hsc9W/xM7oFjHboFQwV/1vU/kfxgYxrveWpcucQFx11VVXXXXVVVf9K0maxqUU03hkm/8EErZ2c/9v71otYjocFOKqq6666qqrrvo/I+15H4+7e7xt8FGFAPEfzlDgkjAMpoG46qr/SIbDHI6e/pfTYlutIf7jKTyup4OLuXcvCMxVL4St2g/33ZoHF6Tgqv9tdM011/A/j21jrrrqqquuuuqqq/6thMDmP5u46qqrrrrqqqv+j7IJIZHmP5UwYMRVV/0nkG3EfyKDBOaqF5ElAZK46n+byv9IUoirrrrqqquuuuqqfy/xn0tCWOKqq6666qqrrvo/ycamiP9k4qqr/vNIjgCB+U8hMEYCBOaqf4Gwwdhc9b9N5X8oc9VVV1111VVXXfU/no0Bc9VVV1111VVXXXXVVf9zZfJfwFx11f95wVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131Lwmuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqn9JcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9S4Krrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666l8SXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/kuCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+pcEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/JLjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/iXBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfUvCa666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqf0lw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1Lgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqXxJcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf+S4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676lwRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8kuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+JcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9S8Jrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qp/SXDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/Uv+Efn1ZKy/tUl9AAAAAElFTkSuQmCC","type":"image/png","originalSize":38728,"dimensions":{"originalWidth":3400,"originalHeight":200,"displayWidth":2000,"displayHeight":118}}},"sourceToolAssistantUUID":"fd0476c2-10f6-4d86-b507-a6005870b06c","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"37b87f84-a69b-4dad-a838-e431951341bd","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":"[Image: original 3400x200, displayed at 2000x118. Multiply coordinates by 1.70 to map to original image.]"},"isMeta":true,"uuid":"c35de469-348a-434f-86f9-3130dd8c8d69","timestamp":"2026-07-27T17:59:52.428Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c35de469-348a-434f-86f9-3130dd8c8d69","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzqrZXJj983hAcNMec7","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I see the root cause now — the missing padding spaces are causing the text to jam together, and the checkmark is getting distorted because `textLength` with `lengthAdjust=\"spacingAndGlyphs\"` is stretching the remaining glyphs across the full width, turning the single-cell checkmark into a mangled swoosh.\n\nThe cursor underscore is also affected — there's a tiny mark at the far right edge of the blue segment, which suggests it's being stretched or misplaced by the same whitespace collapse issue. Let me check the SVG source to see how the cursor run is actually being rendered.","signature":"CAISsgkKhwEIEBgCKkD8Wz/tlqyhfH3EBE8LsnOG7q2tYN82Tk9nRRysEL36gdm0+XaNhxHb7ydoM3nXHdUE5MF4BT4lN3M+A/ULFAN3Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDAfwF33Kr8I2VuISDxoMxOh+sbyGaifhuHAAIjDIAFBfpHP9gX+qWFTUQBs/nF/X1ziSfncTYY+FwVC9XTiwOW2W/RJEwdQiYhRdsBoq1we3dirQ3q/HHxEVVDeEGL9MJKpc490MpBEh7KRhx+TjrfWL/glGI7iGH5fgpaaUp1TTaROLKEEqXdSYkXZK4IgeO+NuhJytoI5wYtyV/gdoFN2uRPrpWJD0b34TS01vlX8k5KGP4nBuPf/8Zo6UvOXvgKOcUy9cDClXGNevgAT0IchM9+9XJVQxGtDulAjYMfTSUsLjYXn6jx6PgQ4XBwHWkE0+LAKvvziCmvh4iggw5Em6FLTquEmqBm6IcD9S3F7Fwn8AwvOiIVmLjQ9WNP/fQQ3/DAT3DBMbRuxHxnooWtL8ZNATe9Hx0ADpDocEphyb5il1p4TI+F9ghls1zLCBZmXU+6QDCuKldHl1PdNrQ5jNAGBCOez8pp78quDGwLHOY+uYJ7bAvhM6SAjbUPonrIU+U55YuyeD3s2kL366xKe2ooxCUvUbQBhtjX71156faTfrdHYsP5rMycxufHsLB1ILwABocFpEBa1bcxmWj9pxj7o6wtVdSdx1vf31xsmjM6KlGc50Zw6BYkKLzTxmIQgXlAVuK+/w6nNiwXgyzGzX7PfT3ntMbHwbbS39TpJl7JAf98CUsJkYePbMDhc9y43dMIFxOrTy28X28TrVcrszDUhnVxoWhgoNJX9ea8L9Gm5O2EB6XgA8HJsT+VaAipkzcm1BU381BinhbbNfNV/0qDMVUpQVjHhFTBb7XJUuJ801wgYlDgQTCiizjCVSG/JV5T+8yCWgfSPelglBSNaTv4NTcCGwOvRbggkhHcYzY83Ht330KDt3BHGfETIwHcjQslWs6J7EK0Ah4b/qdo4sI5yX6GsRBdpfMJ1cEg8fN9Pjhrr0Zrzfyqmymnk+qytwK8t1w5bvDH7RAC2F8ZyQxHC+j8wcueGIzIbTYXcm/qvrqdTCc1vRlAzlcODgC6sUnTDBQTLudlThyi2mPPwPAvI3+RkB68DjYYb+tCsaG7bN1C9JGwesHhF26UOgP0QSXU/2cAwn5XjazCA+RQOcs/zWbwmjTe43zsuqKCXKgWqt9XyWj98OMsK/LDKexqLWJ+49PXbtxjbiycDkQf76qEc7gPCLIyqZ9N+xH7dDnzSOcsiEFFUci9IoU/IqiKApQYtRurxiRyfjkEYJcnGi0n/P3tWgR/79RBUu67QVXskcQw5zQqw3zV+LEZDhYV3qIs+hmqHAnCuzZWJ69k0u1mrfEYgqS15+0suZ9wDGrd9N/i5FXqtjFDMzIe+aZo1gEBcGyAhVPVD2JSgOzQFkgEg484VIr5+yYb9ptG6l86N4hZdj1h6qRQGa8DgHtuDn1gwPjBgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":495,"cache_read_input_tokens":147974,"output_tokens":505,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":495,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":505,"cache_read_input_tokens":147974,"cache_creation_input_tokens":495,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":495},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzqoidCvqWmaCXiJWz4","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"c1f834c8-a0b9-48f3-b85e-24d1519b5265","timestamp":"2026-07-27T18:00:01.443Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c1f834c8-a0b9-48f3-b85e-24d1519b5265","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzqrZXJj983hAcNMec7","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_014vtHgfBgXV2PH99jZuXBTs","name":"Bash","input":{"command":"tail -c 1400 /d/oh-my-posh/tools/svg-png-compare/out/glowsticks.svg","description":"Read SVG tail"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":495,"cache_read_input_tokens":147974,"output_tokens":505,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":495,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":505,"cache_read_input_tokens":147974,"cache_creation_input_tokens":495,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":495},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzqoidCvqWmaCXiJWz4","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"59d01681-8962-4a5d-85a4-c26e45947f74","timestamp":"2026-07-27T18:00:01.498Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"59d01681-8962-4a5d-85a4-c26e45947f74","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_014vtHgfBgXV2PH99jZuXBTs","type":"tool_result","content":"\"74.67\" width=\"28.9\" height=\"22.35\" fill=\"#359ddd\"/>\n\n\n \n\n\n shell\n\n\n\n\n󰂊\n_\nohmyposh.dev\n","is_error":false}]},"uuid":"f54859df-46a4-4ca8-834a-e8c5799efa2a","timestamp":"2026-07-27T18:00:02.627Z","toolUseResult":{"stdout":"\"74.67\" width=\"28.9\" height=\"22.35\" fill=\"#359ddd\"/>\n\n\n \n\n\n shell\n\n\n\n\n󰂊\n_\nohmyposh.dev\n","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"59d01681-8962-4a5d-85a4-c26e45947f74","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f54859df-46a4-4ca8-834a-e8c5799efa2a","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"8d3b8c5d-47e1-4b8e-a696-5b8b38169404","timestamp":"2026-07-27T18:00:02.631Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8d3b8c5d-47e1-4b8e-a696-5b8b38169404","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzrbvz6xni5gnzAYfaG","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I've found another cursor positioning bug—it's appearing at the very end of the row after the right prompt when it should be positioned right after the primary prompt's content. I'm also noticing that the gap run is inheriting the last text color, which is harmless but shouldn't have any fill color applied since the gap itself has no colors.\n\nThe whitespace collapse behavior is actually working correctly here—when the 53-space gap collapses to nothing, the right prompt stays in place because both elements use absolute positioning, so the collapse only affects how the gap appears visually, not the layout. Now I'm looking at bug 3 about missing foreground text in one of the themes. I need to figure out which theme they were examining—possibly cloud-native-azure from the compare harness, or maybe they were looking at the website gallery. Let me scan through the themes to find which one has no visible foreground text.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1360,"cache_read_input_tokens":148469,"output_tokens":1621,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1360,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":1621,"cache_read_input_tokens":148469,"cache_creation_input_tokens":1360,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1360},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzrZmkkYtK3YvQkDiPA","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"920da4ea-391b-4a76-8e6e-753bd3e7b97a","timestamp":"2026-07-27T18:00:15.829Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"920da4ea-391b-4a76-8e6e-753bd3e7b97a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzrbvz6xni5gnzAYfaG","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Vj1kLGUrq4kM29YssG6eew","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\scan_invisible.py","content":"\"\"\"Flag exported SVGs whose prompt text is invisible: every alphanumeric run\neither carries no fill or paints the same colour as the rect underneath it.\"\"\"\nimport glob\nimport os\nimport re\nimport sys\n\nRECT = re.compile(r'')\nTEXT = re.compile(r']*?(?:fill=\"(#[0-9a-f]{6})\")?[^>]*>(.*?)')\nWORD = re.compile(r\"[0-9A-Za-z]\")\n\n\ndef scan(path):\n markup = open(path, encoding=\"utf-8\").read()\n rects = [(float(m[0]), float(m[1]), float(m[2]), m[4]) for m in RECT.findall(markup)]\n\n words = 0\n invisible = 0\n\n for x, y, _, fill, body in TEXT.findall(markup):\n if not WORD.search(body):\n continue\n\n words += 1\n x, y = float(x), float(y)\n\n under = None\n for rx, ry, rw, rfill in rects:\n if rx <= x < rx + rw and ry <= y <= ry + 40:\n under = rfill\n\n if fill == \"\" or (under is not None and fill == under):\n invisible += 1\n\n return words, invisible\n\n\nrows = []\nfor path in sorted(glob.glob(os.path.join(sys.argv[1], \"*.svg\"))):\n words, invisible = scan(path)\n if words == 0 or invisible == words:\n rows.append((os.path.basename(path), words, invisible, \"ALL INVISIBLE\"))\n elif invisible:\n rows.append((os.path.basename(path), words, invisible, \"\"))\n\nfor name, words, invisible, tag in rows:\n print(f\"{name:40} words={words:4} invisible={invisible:4} {tag}\")\n\nprint(f\"\\n{len(rows)} theme(s) with at least one invisible text run\")\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1360,"cache_read_input_tokens":148469,"output_tokens":1621,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1360,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":1621,"cache_read_input_tokens":148469,"cache_creation_input_tokens":1360,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1360},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzrZmkkYtK3YvQkDiPA","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"4acbf1f3-3872-440b-a65b-69d9ea7b4309","timestamp":"2026-07-27T18:00:24.483Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4acbf1f3-3872-440b-a65b-69d9ea7b4309","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Vj1kLGUrq4kM29YssG6eew","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\scan_invisible.py (file state is current in your context — no need to Read it back)"}]},"uuid":"eeb4f8c2-e6f1-464a-a8a9-20ee20a8014b","timestamp":"2026-07-27T18:00:24.573Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\scan_invisible.py","content":"\"\"\"Flag exported SVGs whose prompt text is invisible: every alphanumeric run\neither carries no fill or paints the same colour as the rect underneath it.\"\"\"\nimport glob\nimport os\nimport re\nimport sys\n\nRECT = re.compile(r'')\nTEXT = re.compile(r']*?(?:fill=\"(#[0-9a-f]{6})\")?[^>]*>(.*?)')\nWORD = re.compile(r\"[0-9A-Za-z]\")\n\n\ndef scan(path):\n markup = open(path, encoding=\"utf-8\").read()\n rects = [(float(m[0]), float(m[1]), float(m[2]), m[4]) for m in RECT.findall(markup)]\n\n words = 0\n invisible = 0\n\n for x, y, _, fill, body in TEXT.findall(markup):\n if not WORD.search(body):\n continue\n\n words += 1\n x, y = float(x), float(y)\n\n under = None\n for rx, ry, rw, rfill in rects:\n if rx <= x < rx + rw and ry <= y <= ry + 40:\n under = rfill\n\n if fill == \"\" or (under is not None and fill == under):\n invisible += 1\n\n return words, invisible\n\n\nrows = []\nfor path in sorted(glob.glob(os.path.join(sys.argv[1], \"*.svg\"))):\n words, invisible = scan(path)\n if words == 0 or invisible == words:\n rows.append((os.path.basename(path), words, invisible, \"ALL INVISIBLE\"))\n elif invisible:\n rows.append((os.path.basename(path), words, invisible, \"\"))\n\nfor name, words, invisible, tag in rows:\n print(f\"{name:40} words={words:4} invisible={invisible:4} {tag}\")\n\nprint(f\"\\n{len(rows)} theme(s) with at least one invisible text run\")\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"4acbf1f3-3872-440b-a65b-69d9ea7b4309","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"eeb4f8c2-e6f1-464a-a8a9-20ee20a8014b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSztEVCAbXGjVyZUGz1Y","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_019brAw4EUFWSgd9oXH7XEhP","name":"Bash","input":{"command":"cd /d/oh-my-posh && mkdir -p \"$TMPDIR/allsvg\" && n=0; for f in themes/*.omp.yaml themes/*.omp.json; do [ -e \"$f\" ] || continue; b=$(basename \"$f\"); b=${b%%.omp.*}; \"$TMPDIR/omp.exe\" config export image --config \"$f\" --data src/prompt/testdata/fixtures/prompt.data.json --font-family \"Hack Nerd Font\" -o \"$TMPDIR/allsvg/$b.svg\" >/dev/null 2>&1 || echo \"FAIL $b\"; n=$((n+1)); done; echo \"exported $n\"; ls \"$TMPDIR/allsvg\" | wc -l","description":"Export all themes to SVG"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1725,"cache_read_input_tokens":149829,"output_tokens":326,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1725,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":326,"cache_read_input_tokens":149829,"cache_creation_input_tokens":1725,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1725},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSztBfHR5mtZbWM4SDcY","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"6eb75848-d282-4ccc-a828-0292d00ffaf6","timestamp":"2026-07-27T18:00:29.287Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6eb75848-d282-4ccc-a828-0292d00ffaf6","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_019brAw4EUFWSgd9oXH7XEhP","type":"tool_result","content":"exported 124\n124","is_error":false}]},"uuid":"1f1b4cee-da90-470b-a635-8e7fb6a97196","timestamp":"2026-07-27T18:00:51.692Z","toolUseResult":{"stdout":"exported 124\n124","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"6eb75848-d282-4ccc-a828-0292d00ffaf6","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1f1b4cee-da90-470b-a635-8e7fb6a97196","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzvDP2SMssAdpojPhsA","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_0116qwdQG1mY8tyB5HDRn5Bs","name":"Bash","input":{"command":"python \"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/scan_invisible.py\" \"$TMPDIR/allsvg\"","description":"Scan for invisible prompt text"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":337,"cache_read_input_tokens":151554,"output_tokens":170,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":337,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":170,"cache_read_input_tokens":151554,"cache_creation_input_tokens":337,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":337},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzvBMz1FwrTjkdkz5YN","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"ef204667-c194-4654-838a-a223b5403f54","timestamp":"2026-07-27T18:00:59.149Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ef204667-c194-4654-838a-a223b5403f54","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_0116qwdQG1mY8tyB5HDRn5Bs","type":"tool_result","content":"1_shell.svg words= 11 invisible= 11 ALL INVISIBLE\r\nM365Princess.svg words= 7 invisible= 7 ALL INVISIBLE\r\nagnoster.minimal.svg words= 5 invisible= 5 ALL INVISIBLE\r\nagnoster.svg words= 5 invisible= 5 ALL INVISIBLE\r\nagnosterplus.svg words= 7 invisible= 7 ALL INVISIBLE\r\naliens.svg words= 4 invisible= 4 ALL INVISIBLE\r\namro.svg words= 4 invisible= 4 ALL INVISIBLE\r\natomic.svg words= 10 invisible= 10 ALL INVISIBLE\r\natomicBit.svg words= 11 invisible= 11 ALL INVISIBLE\r\navit.svg words= 4 invisible= 4 ALL INVISIBLE\r\nblue-owl.svg words= 10 invisible= 10 ALL INVISIBLE\r\nblueish.svg words= 5 invisible= 5 ALL INVISIBLE\r\nbubbles.svg words= 7 invisible= 7 ALL INVISIBLE\r\nbubblesextra.svg words= 7 invisible= 7 ALL INVISIBLE\r\nbubblesline.svg words= 6 invisible= 6 ALL INVISIBLE\r\ncapr4n.svg words= 8 invisible= 8 ALL INVISIBLE\r\ncatppuccin.svg words= 4 invisible= 4 ALL INVISIBLE\r\ncatppuccin_frappe.svg words= 4 invisible= 4 ALL INVISIBLE\r\ncatppuccin_latte.svg words= 4 invisible= 4 ALL INVISIBLE\r\ncatppuccin_macchiato.svg words= 4 invisible= 4 ALL INVISIBLE\r\ncatppuccin_mocha.svg words= 4 invisible= 4 ALL INVISIBLE\r\ncert.svg words= 7 invisible= 7 ALL INVISIBLE\r\nchips.svg words= 8 invisible= 8 ALL INVISIBLE\r\ncinnamon.svg words= 4 invisible= 4 ALL INVISIBLE\r\nclean-detailed.svg words= 9 invisible= 9 ALL INVISIBLE\r\ncloud-context.svg words= 13 invisible= 13 ALL INVISIBLE\r\ncloud-native-azure.svg words= 10 invisible= 10 ALL INVISIBLE\r\ncobalt2.svg words= 3 invisible= 3 ALL INVISIBLE\r\ncraver.svg words= 7 invisible= 7 ALL INVISIBLE\r\ndarkblood.svg words= 7 invisible= 7 ALL INVISIBLE\r\ndevious-diamonds.svg words= 12 invisible= 12 ALL INVISIBLE\r\ndi4am0nd.svg words= 7 invisible= 7 ALL INVISIBLE\r\ndracula.svg words= 7 invisible= 7 ALL INVISIBLE\r\neasy-term.svg words= 9 invisible= 9 ALL INVISIBLE\r\nemodipt-extend.svg words= 9 invisible= 9 ALL INVISIBLE\r\nemodipt.svg words= 7 invisible= 7 ALL INVISIBLE\r\nfish.svg words= 5 invisible= 5 ALL INVISIBLE\r\nfree-ukraine.svg words= 10 invisible= 10 ALL INVISIBLE\r\nfroczh.svg words= 9 invisible= 9 ALL INVISIBLE\r\nglowsticks.svg words= 5 invisible= 5 ALL INVISIBLE\r\ngmay.svg words= 7 invisible= 7 ALL INVISIBLE\r\ngrandpa-style.svg words= 9 invisible= 9 ALL INVISIBLE\r\ngruvbox.svg words= 4 invisible= 4 ALL INVISIBLE\r\nhalf-life.svg words= 7 invisible= 7 ALL INVISIBLE\r\nhonukai.svg words= 11 invisible= 11 ALL INVISIBLE\r\nhotstick.minimal.svg words= 3 invisible= 3 ALL INVISIBLE\r\nhul10.svg words= 9 invisible= 9 ALL INVISIBLE\r\nhunk.svg words= 6 invisible= 6 ALL INVISIBLE\r\nhuvix.svg words= 8 invisible= 8 ALL INVISIBLE\r\nif_tea.svg words= 10 invisible= 10 ALL INVISIBLE\r\nillusi0n.svg words= 7 invisible= 7 ALL INVISIBLE\r\niterm2.svg words= 8 invisible= 8 ALL INVISIBLE\r\njandedobbeleer.svg words= 6 invisible= 6 ALL INVISIBLE\r\njblab_2021.svg words= 8 invisible= 8 ALL INVISIBLE\r\njonnychipz.svg words= 6 invisible= 6 ALL INVISIBLE\r\njson.svg words= 4 invisible= 4 ALL INVISIBLE\r\njtracey93.svg words= 9 invisible= 9 ALL INVISIBLE\r\njv_sitecorian.svg words= 9 invisible= 9 ALL INVISIBLE\r\nkali.svg words= 5 invisible= 5 ALL INVISIBLE\r\nkushal.svg words= 10 invisible= 10 ALL INVISIBLE\r\nlambda.svg words= 4 invisible= 4 ALL INVISIBLE\r\nlambdageneration.svg words= 9 invisible= 9 ALL INVISIBLE\r\nlarserikfinholt.svg words= 5 invisible= 5 ALL INVISIBLE\r\nlightgreen.svg words= 10 invisible= 10 ALL INVISIBLE\r\nmarcduiker.svg words= 3 invisible= 3 ALL INVISIBLE\r\nmarkbull.svg words= 7 invisible= 7 ALL INVISIBLE\r\nmaterial.svg words= 7 invisible= 7 ALL INVISIBLE\r\nmicroverse-power.svg words= 7 invisible= 7 ALL INVISIBLE\r\nmojada.svg words= 5 invisible= 5 ALL INVISIBLE\r\nmontys.svg words= 9 invisible= 9 ALL INVISIBLE\r\nmt.svg words= 7 invisible= 7 ALL INVISIBLE\r\nmultiverse-neon.svg words= 4 invisible= 4 ALL INVISIBLE\r\nnegligible.svg words= 7 invisible= 7 ALL INVISIBLE\r\nneko.svg words= 8 invisible= 8 ALL INVISIBLE\r\nnight-owl.svg words= 11 invisible= 11 ALL INVISIBLE\r\nnordtron.svg words= 6 invisible= 6 ALL INVISIBLE\r\nnu4a.svg words= 5 invisible= 5 ALL INVISIBLE\r\nonehalf.minimal.svg words= 9 invisible= 9 ALL INVISIBLE\r\nparadox.svg words= 4 invisible= 4 ALL INVISIBLE\r\npararussel.svg words= 4 invisible= 4 ALL INVISIBLE\r\npatriksvensson.svg words= 7 invisible= 7 ALL INVISIBLE\r\nperu.svg words= 8 invisible= 8 ALL INVISIBLE\r\npixelrobots.svg words= 6 invisible= 6 ALL INVISIBLE\r\nplague.svg words= 5 invisible= 5 ALL INVISIBLE\r\nposhmon.svg words= 8 invisible= 8 ALL INVISIBLE\r\npowerlevel10k_classic.svg words= 7 invisible= 7 ALL INVISIBLE\r\npowerlevel10k_lean.svg words= 6 invisible= 6 ALL INVISIBLE\r\npowerlevel10k_modern.svg words= 7 invisible= 7 ALL INVISIBLE\r\npowerlevel10k_rainbow.svg words= 8 invisible= 8 ALL INVISIBLE\r\npowerline.svg words= 4 invisible= 4 ALL INVISIBLE\r\nprobua.minimal.svg words= 7 invisible= 7 ALL INVISIBLE\r\npure.svg words= 6 invisible= 6 ALL INVISIBLE\r\nquick-term.svg words= 9 invisible= 9 ALL INVISIBLE\r\nremk.svg words= 7 invisible= 7 ALL INVISIBLE\r\nrobbyrussell.svg words= 5 invisible= 5 ALL INVISIBLE\r\nrudolfs-dark.svg words= 4 invisible= 4 ALL INVISIBLE\r\nrudolfs-light.svg words= 5 invisible= 5 ALL INVISIBLE\r\nsim-web.svg words= 4 invisible= 4 ALL INVISIBLE\r\nslim.svg words= 10 invisible= 10 ALL INVISIBLE\r\nslimfat.svg words= 10 invisible= 10 ALL INVISIBLE\r\nsmoothie.svg words= 7 invisible= 7 ALL INVISIBLE\r\nsonicboom_dark.svg words= 9 invisible= 9 ALL INVISIBLE\r\nsonicboom_light.svg words= 9 invisible= 9 ALL INVISIBLE\r\nsorin.svg words= 6 invisible= 6 ALL INVISIBLE\r\nspace.svg words= 6 invisible= 6 ALL INVISIBLE\r\nspaceship.svg words= 6 invisible= 6 ALL INVISIBLE\r\nstar.svg words= 5 invisible= 5 ALL INVISIBLE\r\nstelbent-compact.minimal.svg words= 7 invisible= 7 ALL INVISIBLE\r\nstelbent.minimal.svg words= 9 invisible= 9 ALL INVISIBLE\r\ntakuya.svg words= 7 invisible= 7 ALL INVISIBLE\r\nthe-unnamed.svg words= 4 invisible= 4 ALL INVISIBLE\r\nthecyberden.svg words= 8 invisible= 8 ALL INVISIBLE\r\ntiwahu.svg words= 7 invisible= 7 ALL INVISIBLE\r\ntokyo.svg words= 16 invisible= 16 ALL INVISIBLE\r\ntokyonight_storm.svg words= 4 invisible= 4 ALL INVISIBLE\r\ntonybaloney.svg words= 3 invisible= 3 ALL INVISIBLE\r\nuew.svg words= 9 invisible= 9 ALL INVISIBLE\r\nunicorn.svg words= 7 invisible= 7 ALL INVISIBLE\r\nvelvet.svg words= 8 invisible= 8 ALL INVISIBLE\r\nwholespace.svg words= 9 invisible= 9 ALL INVISIBLE\r\nwopian.svg words= 7 invisible= 7 ALL INVISIBLE\r\nxtoys.svg words= 4 invisible= 4 ALL INVISIBLE\r\nys.svg words= 13 invisible= 13 ALL INVISIBLE\r\nzash.svg words= 5 invisible= 5 ALL INVISIBLE\r\n\r\n124 theme(s) with at least one invisible text run","is_error":false}]},"uuid":"82dec701-0c32-43c2-be5c-bcb441a4462d","timestamp":"2026-07-27T18:01:03.215Z","toolUseResult":{"stdout":"1_shell.svg words= 11 invisible= 11 ALL INVISIBLE\r\nM365Princess.svg words= 7 invisible= 7 ALL INVISIBLE\r\nagnoster.minimal.svg words= 5 invisible= 5 ALL INVISIBLE\r\nagnoster.svg words= 5 invisible= 5 ALL INVISIBLE\r\nagnosterplus.svg words= 7 invisible= 7 ALL INVISIBLE\r\naliens.svg words= 4 invisible= 4 ALL INVISIBLE\r\namro.svg words= 4 invisible= 4 ALL INVISIBLE\r\natomic.svg words= 10 invisible= 10 ALL INVISIBLE\r\natomicBit.svg words= 11 invisible= 11 ALL INVISIBLE\r\navit.svg words= 4 invisible= 4 ALL INVISIBLE\r\nblue-owl.svg words= 10 invisible= 10 ALL INVISIBLE\r\nblueish.svg words= 5 invisible= 5 ALL INVISIBLE\r\nbubbles.svg words= 7 invisible= 7 ALL INVISIBLE\r\nbubblesextra.svg words= 7 invisible= 7 ALL INVISIBLE\r\nbubblesline.svg words= 6 invisible= 6 ALL INVISIBLE\r\ncapr4n.svg words= 8 invisible= 8 ALL INVISIBLE\r\ncatppuccin.svg words= 4 invisible= 4 ALL INVISIBLE\r\ncatppuccin_frappe.svg words= 4 invisible= 4 ALL INVISIBLE\r\ncatppuccin_latte.svg words= 4 invisible= 4 ALL INVISIBLE\r\ncatppuccin_macchiato.svg words= 4 invisible= 4 ALL INVISIBLE\r\ncatppuccin_mocha.svg words= 4 invisible= 4 ALL INVISIBLE\r\ncert.svg words= 7 invisible= 7 ALL INVISIBLE\r\nchips.svg words= 8 invisible= 8 ALL INVISIBLE\r\ncinnamon.svg words= 4 invisible= 4 ALL INVISIBLE\r\nclean-detailed.svg words= 9 invisible= 9 ALL INVISIBLE\r\ncloud-context.svg words= 13 invisible= 13 ALL INVISIBLE\r\ncloud-native-azure.svg words= 10 invisible= 10 ALL INVISIBLE\r\ncobalt2.svg words= 3 invisible= 3 ALL INVISIBLE\r\ncraver.svg words= 7 invisible= 7 ALL INVISIBLE\r\ndarkblood.svg words= 7 invisible= 7 ALL INVISIBLE\r\ndevious-diamonds.svg words= 12 invisible= 12 ALL INVISIBLE\r\ndi4am0nd.svg words= 7 invisible= 7 ALL INVISIBLE\r\ndracula.svg words= 7 invisible= 7 ALL INVISIBLE\r\neasy-term.svg words= 9 invisible= 9 ALL INVISIBLE\r\nemodipt-extend.svg words= 9 invisible= 9 ALL INVISIBLE\r\nemodipt.svg words= 7 invisible= 7 ALL INVISIBLE\r\nfish.svg words= 5 invisible= 5 ALL INVISIBLE\r\nfree-ukraine.svg words= 10 invisible= 10 ALL INVISIBLE\r\nfroczh.svg words= 9 invisible= 9 ALL INVISIBLE\r\nglowsticks.svg words= 5 invisible= 5 ALL INVISIBLE\r\ngmay.svg words= 7 invisible= 7 ALL INVISIBLE\r\ngrandpa-style.svg words= 9 invisible= 9 ALL INVISIBLE\r\ngruvbox.svg words= 4 invisible= 4 ALL INVISIBLE\r\nhalf-life.svg words= 7 invisible= 7 ALL INVISIBLE\r\nhonukai.svg words= 11 invisible= 11 ALL INVISIBLE\r\nhotstick.minimal.svg words= 3 invisible= 3 ALL INVISIBLE\r\nhul10.svg words= 9 invisible= 9 ALL INVISIBLE\r\nhunk.svg words= 6 invisible= 6 ALL INVISIBLE\r\nhuvix.svg words= 8 invisible= 8 ALL INVISIBLE\r\nif_tea.svg words= 10 invisible= 10 ALL INVISIBLE\r\nillusi0n.svg words= 7 invisible= 7 ALL INVISIBLE\r\niterm2.svg words= 8 invisible= 8 ALL INVISIBLE\r\njandedobbeleer.svg words= 6 invisible= 6 ALL INVISIBLE\r\njblab_2021.svg words= 8 invisible= 8 ALL INVISIBLE\r\njonnychipz.svg words= 6 invisible= 6 ALL INVISIBLE\r\njson.svg words= 4 invisible= 4 ALL INVISIBLE\r\njtracey93.svg words= 9 invisible= 9 ALL INVISIBLE\r\njv_sitecorian.svg words= 9 invisible= 9 ALL INVISIBLE\r\nkali.svg words= 5 invisible= 5 ALL INVISIBLE\r\nkushal.svg words= 10 invisible= 10 ALL INVISIBLE\r\nlambda.svg words= 4 invisible= 4 ALL INVISIBLE\r\nlambdageneration.svg words= 9 invisible= 9 ALL INVISIBLE\r\nlarserikfinholt.svg words= 5 invisible= 5 ALL INVISIBLE\r\nlightgreen.svg words= 10 invisible= 10 ALL INVISIBLE\r\nmarcduiker.svg words= 3 invisible= 3 ALL INVISIBLE\r\nmarkbull.svg words= 7 invisible= 7 ALL INVISIBLE\r\nmaterial.svg words= 7 invisible= 7 ALL INVISIBLE\r\nmicroverse-power.svg words= 7 invisible= 7 ALL INVISIBLE\r\nmojada.svg words= 5 invisible= 5 ALL INVISIBLE\r\nmontys.svg words= 9 invisible= 9 ALL INVISIBLE\r\nmt.svg words= 7 invisible= 7 ALL INVISIBLE\r\nmultiverse-neon.svg words= 4 invisible= 4 ALL INVISIBLE\r\nnegligible.svg words= 7 invisible= 7 ALL INVISIBLE\r\nneko.svg words= 8 invisible= 8 ALL INVISIBLE\r\nnight-owl.svg words= 11 invisible= 11 ALL INVISIBLE\r\nnordtron.svg words= 6 invisible= 6 ALL INVISIBLE\r\nnu4a.svg words= 5 invisible= 5 ALL INVISIBLE\r\nonehalf.minimal.svg words= 9 invisible= 9 ALL INVISIBLE\r\nparadox.svg words= 4 invisible= 4 ALL INVISIBLE\r\npararussel.svg words= 4 invisible= 4 ALL INVISIBLE\r\npatriksvensson.svg words= 7 invisible= 7 ALL INVISIBLE\r\nperu.svg words= 8 invisible= 8 ALL INVISIBLE\r\npixelrobots.svg words= 6 invisible= 6 ALL INVISIBLE\r\nplague.svg words= 5 invisible= 5 ALL INVISIBLE\r\nposhmon.svg words= 8 invisible= 8 ALL INVISIBLE\r\npowerlevel10k_classic.svg words= 7 invisible= 7 ALL INVISIBLE\r\npowerlevel10k_lean.svg words= 6 invisible= 6 ALL INVISIBLE\r\npowerlevel10k_modern.svg words= 7 invisible= 7 ALL INVISIBLE\r\npowerlevel10k_rainbow.svg words= 8 invisible= 8 ALL INVISIBLE\r\npowerline.svg words= 4 invisible= 4 ALL INVISIBLE\r\nprobua.minimal.svg words= 7 invisible= 7 ALL INVISIBLE\r\npure.svg words= 6 invisible= 6 ALL INVISIBLE\r\nquick-term.svg words= 9 invisible= 9 ALL INVISIBLE\r\nremk.svg words= 7 invisible= 7 ALL INVISIBLE\r\nrobbyrussell.svg words= 5 invisible= 5 ALL INVISIBLE\r\nrudolfs-dark.svg words= 4 invisible= 4 ALL INVISIBLE\r\nrudolfs-light.svg words= 5 invisible= 5 ALL INVISIBLE\r\nsim-web.svg words= 4 invisible= 4 ALL INVISIBLE\r\nslim.svg words= 10 invisible= 10 ALL INVISIBLE\r\nslimfat.svg words= 10 invisible= 10 ALL INVISIBLE\r\nsmoothie.svg words= 7 invisible= 7 ALL INVISIBLE\r\nsonicboom_dark.svg words= 9 invisible= 9 ALL INVISIBLE\r\nsonicboom_light.svg words= 9 invisible= 9 ALL INVISIBLE\r\nsorin.svg words= 6 invisible= 6 ALL INVISIBLE\r\nspace.svg words= 6 invisible= 6 ALL INVISIBLE\r\nspaceship.svg words= 6 invisible= 6 ALL INVISIBLE\r\nstar.svg words= 5 invisible= 5 ALL INVISIBLE\r\nstelbent-compact.minimal.svg words= 7 invisible= 7 ALL INVISIBLE\r\nstelbent.minimal.svg words= 9 invisible= 9 ALL INVISIBLE\r\ntakuya.svg words= 7 invisible= 7 ALL INVISIBLE\r\nthe-unnamed.svg words= 4 invisible= 4 ALL INVISIBLE\r\nthecyberden.svg words= 8 invisible= 8 ALL INVISIBLE\r\ntiwahu.svg words= 7 invisible= 7 ALL INVISIBLE\r\ntokyo.svg words= 16 invisible= 16 ALL INVISIBLE\r\ntokyonight_storm.svg words= 4 invisible= 4 ALL INVISIBLE\r\ntonybaloney.svg words= 3 invisible= 3 ALL INVISIBLE\r\nuew.svg words= 9 invisible= 9 ALL INVISIBLE\r\nunicorn.svg words= 7 invisible= 7 ALL INVISIBLE\r\nvelvet.svg words= 8 invisible= 8 ALL INVISIBLE\r\nwholespace.svg words= 9 invisible= 9 ALL INVISIBLE\r\nwopian.svg words= 7 invisible= 7 ALL INVISIBLE\r\nxtoys.svg words= 4 invisible= 4 ALL INVISIBLE\r\nys.svg words= 13 invisible= 13 ALL INVISIBLE\r\nzash.svg words= 5 invisible= 5 ALL INVISIBLE\r\n\r\n124 theme(s) with at least one invisible text run","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"ef204667-c194-4654-838a-a223b5403f54","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"82dec701-0c32-43c2-be5c-bcb441a4462d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzw5M782i79mKiuNbJV","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"My regex for extracting the fill attribute from text elements isn't working — the lazy quantifier combined with the optional group is causing it to match too early and skip over the fill value. I need to rethink the pattern to ensure it actually captures the fill attribute before the closing bracket.","signature":"CAISggYKhwEIEBgCKkAJdcE5dYX18GPKFFxh61e9CmuCyL9eTPn4LydbcHzpeJ4bOAMHDGHa4ThFDfU8QBE+CEeRljx7t7B+5lwtbwOXMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDP8hVYn9JGEgtvwRghoMW6+Cc5g6kyca7APIIjDU+a1fKGyfbqRdxRKKIH65XkzAUY8NnBhfJUWz5PHn9jWLW5ODyefHt75DZHPG47sqpwTBfYzoTNG2WPV2At75Ld8821NtvgCAI7qx8LyQV/ilh4ApETYyV+aNOGY1Sm9Asj3z9tuxI/NniEmHjjMhEnWg7Drs6/3fF0WtFoNjlpA+R8TuSuxndrRn6+KBe2Y1ho74+j+HhoKqoC78DuJy4tT8kad7Uk3tVFFZy0XDJ17g7EFWnKZZCqRgdN67M8CKtTSR+W87+5yicNdRh9sM4TCpo3hdRj8+SI9oOqhoAv5CFgQvrT9zaDTuSi0ahfgEbs5DXph3lsD1oMJJSWdI2A7aTESfwRdgqtHuoYuE8gyDnElmZmYPSQp3b9gf8vatbPvmBuobULUOcgbeYr00jisnVa0rnbi0KwVVY8J0AaiCO0q+JUuGrxb7VifgKZ8pwx7HMNoX1Xd7dmV38kCEdxGRJmnUfJuq0O3Wf6mwBZNi8A+lCDHMzRNAGDoKg6REqMNOohOF7ewvua5ozehFbiTiIS5lAaupK3bAbdi337o+bli0E5csGvqwU60O2Rkx4fYSN1f66vnvMTla289GuSLMeTMTGMDrcmFZNqeryGSqJbZwv5/bcQO2ORdmiQItbimidJg1Y7BFgT0/eJYB/0FeSutmeCXIhyYUyu9B2oABLq9PetQtZHGIHN+ggeRhBP9MNdoRWPeVVThFJfwJAWslH3jv3mPVwOHjjOSmpwug3eyVrA6iWR6EX0WFOesiuopxhFB0zQkIygjKbuspGUD2P6kaTeB6DxgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":4263,"cache_read_input_tokens":151891,"output_tokens":1130,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":4263,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1130,"cache_read_input_tokens":151891,"cache_creation_input_tokens":4263,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":4263},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzw2mLLJuB64mnD9cLk","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"41bb7215-f9cc-4b3b-b21b-1c018300da73","timestamp":"2026-07-27T18:01:10.427Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"41bb7215-f9cc-4b3b-b21b-1c018300da73","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzw5M782i79mKiuNbJV","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017gRS7Cnt34mEDesv8LpSt7","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\scan_invisible.py","content":"\"\"\"Flag exported SVGs whose prompt text is invisible: alphanumeric runs that\ncarry no fill, or paint the same colour as the rect underneath them.\"\"\"\nimport glob\nimport os\nimport re\nimport sys\n\nRECT = re.compile(r'')\nTEXT = re.compile(r']*)>(.*?)')\nATTR = re.compile(r'(\\w[\\w:-]*)=\"([^\"]*)\"')\nWORD = re.compile(r\"[0-9A-Za-z]\")\n\n\ndef scan(path):\n markup = open(path, encoding=\"utf-8\").read()\n rects = [(float(m[0]), float(m[1]), float(m[2]), m[4]) for m in RECT.findall(markup)]\n\n words = 0\n invisible = []\n\n for attrs, body in TEXT.findall(markup):\n if not WORD.search(body):\n continue\n\n words += 1\n a = dict(ATTR.findall(attrs))\n x, y = float(a[\"x\"]), float(a[\"y\"])\n fill = a.get(\"fill\", \"\")\n\n under = None\n for rx, ry, rw, rfill in rects:\n if rx - 0.01 <= x < rx + rw and ry <= y <= ry + 40:\n under = rfill\n\n if fill == \"\" or (under is not None and fill == under):\n invisible.append((body[:24], fill, under))\n\n return words, invisible\n\n\nhits = 0\nfor path in sorted(glob.glob(os.path.join(sys.argv[1], \"*.svg\"))):\n words, invisible = scan(path)\n\n if not invisible:\n continue\n\n hits += 1\n tag = \"ALL INVISIBLE\" if len(invisible) == words else \"\"\n print(f\"{os.path.basename(path):34} words={words:3} invisible={len(invisible):3} {tag}\")\n\n if len(sys.argv) > 2:\n for body, fill, under in invisible[:6]:\n print(f\" {body!r:28} fill={fill or '(none)'} under={under}\")\n\nprint(f\"\\n{hits} theme(s) with at least one invisible text run\")\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":4263,"cache_read_input_tokens":151891,"output_tokens":1130,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":4263,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1130,"cache_read_input_tokens":151891,"cache_creation_input_tokens":4263,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":4263},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzw2mLLJuB64mnD9cLk","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"dd31013e-2086-4144-9317-a3337658987b","timestamp":"2026-07-27T18:01:18.046Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dd31013e-2086-4144-9317-a3337658987b","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017gRS7Cnt34mEDesv8LpSt7","type":"tool_result","content":"The file C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\scan_invisible.py has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"664dd8a2-58e2-40ff-8e16-c744dd0ffa81","timestamp":"2026-07-27T18:01:18.192Z","toolUseResult":{"type":"update","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\scan_invisible.py","content":"\"\"\"Flag exported SVGs whose prompt text is invisible: alphanumeric runs that\ncarry no fill, or paint the same colour as the rect underneath them.\"\"\"\nimport glob\nimport os\nimport re\nimport sys\n\nRECT = re.compile(r'')\nTEXT = re.compile(r']*)>(.*?)')\nATTR = re.compile(r'(\\w[\\w:-]*)=\"([^\"]*)\"')\nWORD = re.compile(r\"[0-9A-Za-z]\")\n\n\ndef scan(path):\n markup = open(path, encoding=\"utf-8\").read()\n rects = [(float(m[0]), float(m[1]), float(m[2]), m[4]) for m in RECT.findall(markup)]\n\n words = 0\n invisible = []\n\n for attrs, body in TEXT.findall(markup):\n if not WORD.search(body):\n continue\n\n words += 1\n a = dict(ATTR.findall(attrs))\n x, y = float(a[\"x\"]), float(a[\"y\"])\n fill = a.get(\"fill\", \"\")\n\n under = None\n for rx, ry, rw, rfill in rects:\n if rx - 0.01 <= x < rx + rw and ry <= y <= ry + 40:\n under = rfill\n\n if fill == \"\" or (under is not None and fill == under):\n invisible.append((body[:24], fill, under))\n\n return words, invisible\n\n\nhits = 0\nfor path in sorted(glob.glob(os.path.join(sys.argv[1], \"*.svg\"))):\n words, invisible = scan(path)\n\n if not invisible:\n continue\n\n hits += 1\n tag = \"ALL INVISIBLE\" if len(invisible) == words else \"\"\n print(f\"{os.path.basename(path):34} words={words:3} invisible={len(invisible):3} {tag}\")\n\n if len(sys.argv) > 2:\n for body, fill, under in invisible[:6]:\n print(f\" {body!r:28} fill={fill or '(none)'} under={under}\")\n\nprint(f\"\\n{hits} theme(s) with at least one invisible text run\")\n","structuredPatch":[{"oldStart":1,"oldLines":12,"newStart":1,"newLines":13,"lines":["-\"\"\"Flag exported SVGs whose prompt text is invisible: every alphanumeric run","-either carries no fill or paints the same colour as the rect underneath it.\"\"\"","+\"\"\"Flag exported SVGs whose prompt text is invisible: alphanumeric runs that","+carry no fill, or paint the same colour as the rect underneath them.\"\"\""," import glob"," import os"," import re"," import sys"," "," RECT = re.compile(r'')","-TEXT = re.compile(r']*?(?:fill=\"(#[0-9a-f]{6})\")?[^>]*>(.*?)')","+TEXT = re.compile(r']*)>(.*?)')","+ATTR = re.compile(r'(\\w[\\w:-]*)=\"([^\"]*)\"')"," WORD = re.compile(r\"[0-9A-Za-z]\")"," "," "]},{"oldStart":15,"oldLines":35,"newStart":16,"newLines":41,"lines":[" rects = [(float(m[0]), float(m[1]), float(m[2]), m[4]) for m in RECT.findall(markup)]"," "," words = 0","- invisible = 0","+ invisible = []"," ","- for x, y, _, fill, body in TEXT.findall(markup):","+ for attrs, body in TEXT.findall(markup):"," if not WORD.search(body):"," continue"," "," words += 1","- x, y = float(x), float(y)","+ a = dict(ATTR.findall(attrs))","+ x, y = float(a[\"x\"]), float(a[\"y\"])","+ fill = a.get(\"fill\", \"\")"," "," under = None"," for rx, ry, rw, rfill in rects:","- if rx <= x < rx + rw and ry <= y <= ry + 40:","+ if rx - 0.01 <= x < rx + rw and ry <= y <= ry + 40:"," under = rfill"," "," if fill == \"\" or (under is not None and fill == under):","- invisible += 1","+ invisible.append((body[:24], fill, under))"," "," return words, invisible"," "," ","-rows = []","+hits = 0"," for path in sorted(glob.glob(os.path.join(sys.argv[1], \"*.svg\"))):"," words, invisible = scan(path)","- if words == 0 or invisible == words:","- rows.append((os.path.basename(path), words, invisible, \"ALL INVISIBLE\"))","- elif invisible:","- rows.append((os.path.basename(path), words, invisible, \"\"))"," ","-for name, words, invisible, tag in rows:","- print(f\"{name:40} words={words:4} invisible={invisible:4} {tag}\")","+ if not invisible:","+ continue"," ","-print(f\"\\n{len(rows)} theme(s) with at least one invisible text run\")","+ hits += 1","+ tag = \"ALL INVISIBLE\" if len(invisible) == words else \"\"","+ print(f\"{os.path.basename(path):34} words={words:3} invisible={len(invisible):3} {tag}\")","+","+ if len(sys.argv) > 2:","+ for body, fill, under in invisible[:6]:","+ print(f\" {body!r:28} fill={fill or '(none)'} under={under}\")","+","+print(f\"\\n{hits} theme(s) with at least one invisible text run\")"]}],"originalFile":"\"\"\"Flag exported SVGs whose prompt text is invisible: every alphanumeric run\neither carries no fill or paints the same colour as the rect underneath it.\"\"\"\nimport glob\nimport os\nimport re\nimport sys\n\nRECT = re.compile(r'')\nTEXT = re.compile(r']*?(?:fill=\"(#[0-9a-f]{6})\")?[^>]*>(.*?)')\nWORD = re.compile(r\"[0-9A-Za-z]\")\n\n\ndef scan(path):\n markup = open(path, encoding=\"utf-8\").read()\n rects = [(float(m[0]), float(m[1]), float(m[2]), m[4]) for m in RECT.findall(markup)]\n\n words = 0\n invisible = 0\n\n for x, y, _, fill, body in TEXT.findall(markup):\n if not WORD.search(body):\n continue\n\n words += 1\n x, y = float(x), float(y)\n\n under = None\n for rx, ry, rw, rfill in rects:\n if rx <= x < rx + rw and ry <= y <= ry + 40:\n under = rfill\n\n if fill == \"\" or (under is not None and fill == under):\n invisible += 1\n\n return words, invisible\n\n\nrows = []\nfor path in sorted(glob.glob(os.path.join(sys.argv[1], \"*.svg\"))):\n words, invisible = scan(path)\n if words == 0 or invisible == words:\n rows.append((os.path.basename(path), words, invisible, \"ALL INVISIBLE\"))\n elif invisible:\n rows.append((os.path.basename(path), words, invisible, \"\"))\n\nfor name, words, invisible, tag in rows:\n print(f\"{name:40} words={words:4} invisible={invisible:4} {tag}\")\n\nprint(f\"\\n{len(rows)} theme(s) with at least one invisible text run\")\n","userModified":false},"sourceToolAssistantUUID":"dd31013e-2086-4144-9317-a3337658987b","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"664dd8a2-58e2-40ff-8e16-c744dd0ffa81","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzxCJqs3gnytLnYFe6Z","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01CXHvHoYpir2f91rbgaCiNs","name":"Bash","input":{"command":"python \"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/scan_invisible.py\" \"$TMPDIR/allsvg\" -v","description":"Rescan for invisible text with fixed regex"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1238,"cache_read_input_tokens":156154,"output_tokens":176,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1238,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":176,"cache_read_input_tokens":156154,"cache_creation_input_tokens":1238,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1238},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzx8i3eab46m22ZAWro","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"e858afc9-cc0d-411b-8265-af7be734369b","timestamp":"2026-07-27T18:01:21.821Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e858afc9-cc0d-411b-8265-af7be734369b","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01CXHvHoYpir2f91rbgaCiNs","type":"tool_result","content":"cert.svg words= 7 invisible= 6 \r\n 'alice ' fill=#e36464 under=#e36464\r\n ' ~/dev/oh-my-posh ' fill=#39b54a under=#39b54a\r\n ' git(\\ue0a0next) ' fill=#65c2cd under=#65c2cd\r\n ' Monday ' fill=#ff00ff under=#ff00ff\r\n 'at' fill=#ff00ff under=#ff00ff\r\n ' 8:08 AM ' fill=#ff00ff under=#ff00ff\r\niterm2.svg words= 8 invisible= 1 \r\n 'Monday ' fill=#003543 under=#003543\r\nposhmon.svg words= 8 invisible= 3 \r\n ' \\uf073 Monday ' fill=#2e9599 under=#2e9599\r\n 'at' fill=#2e9599 under=#2e9599\r\n ' 8:08 AM ' fill=#2e9599 under=#2e9599\r\npowerlevel10k_modern.svg words= 7 invisible= 1 \r\n 'at' fill=#ffffff under=#ffffff\r\n\r\n4 theme(s) with at least one invisible text run","is_error":false}]},"uuid":"7ab4107a-4282-4e73-8470-e277c3dc24b3","timestamp":"2026-07-27T18:01:26.573Z","toolUseResult":{"stdout":"cert.svg words= 7 invisible= 6 \r\n 'alice ' fill=#e36464 under=#e36464\r\n ' ~/dev/oh-my-posh ' fill=#39b54a under=#39b54a\r\n ' git(\\ue0a0next) ' fill=#65c2cd under=#65c2cd\r\n ' Monday ' fill=#ff00ff under=#ff00ff\r\n 'at' fill=#ff00ff under=#ff00ff\r\n ' 8:08 AM ' fill=#ff00ff under=#ff00ff\r\niterm2.svg words= 8 invisible= 1 \r\n 'Monday ' fill=#003543 under=#003543\r\nposhmon.svg words= 8 invisible= 3 \r\n ' \\uf073 Monday ' fill=#2e9599 under=#2e9599\r\n 'at' fill=#2e9599 under=#2e9599\r\n ' 8:08 AM ' fill=#2e9599 under=#2e9599\r\npowerlevel10k_modern.svg words= 7 invisible= 1 \r\n 'at' fill=#ffffff under=#ffffff\r\n\r\n4 theme(s) with at least one invisible text run","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"e858afc9-cc0d-411b-8265-af7be734369b","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7ab4107a-4282-4e73-8470-e277c3dc24b3","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzxoqGHNUWmQuRq9jRw","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Found it — the `cert.svg` file has nearly all its text invisible because the foreground color matches the background. That's the bug the user was describing. They can only see the segments and their background colors with separators, but the text is completely hidden. Let me pull up the cert theme configuration and compare it against the reference image to confirm.","signature":"CAISzQYKhwEIEBgCKkBxlyBNjiVSrJgQZWCpxwRR9qXbFgEJGjTrFCQBMenrOKBA/ZUAiSB77z2AJgyX9Dj3wp8HvHffR/SuzlWSNE3aMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDA+CE0ajX0hAZv6PBRoMUpSUXDZRneLsWEDUIjCiUQUGtOIZfiXpAZOC98mtPE2GAdmuqHL2QJ5sO5fRmNlq1bQ88fmzfNmKblvlzZ4q8gRuAtVRBlqbRHA5WnyEQgx5JGAsTm2fpIprFh9kJi8Md3pQ7poWfznXXyh/jvGeLL7CfeCs8LpCIg4q5JLoctb+1ypN3SejHws3WAUp/erskYXPWcNdZCfHUo0CPOaqGHrHKf6mWIskMYej9ml96iq3sfIfUF30iLUMUHRQKBOkAOVRveUBaXjew1tgAaY9ajhRVs1G+fbDvYlQkonyFawZ0tGrBZ85NOw0zC6ydFCFJHCNCJMUfedZpR+2tyFpP8KdmDpsU4FwgzPQB4adNxEw1uwHfN+50dMZvdBCeHYx4+Y+jX1nJMcc6ZYHOvdtECNiAXXF07RKMw6bsV6UGz457KR3mR8m1iB3kN8/f4NPKzWesM+agD2CiHv+iHXqjF7gQj5gFXDGnDRy8wzKx7Pzt7bQFopKne3Fq7CBqUxOy4VHvDYLnttX82Ihz0EErq+tpEos3hUxOrg//WBsPLraI+jiM3U1Z7x20jJHztWWQwwggptVwguBEB028lMd4SB8i0OdyJ6stVK+kFH4cQCRJHEdjvvASaDjEQHEmj1cvsjmgeSvvdaxXg6kYKOHNColm8jSxIIYvPMQ75BQwzzqf1tDtP/8EhafyIEwVhqfSstHjytCchoGEcIBpmQOzK9pc5Wv9mfdy/u6kzXyJwPYrlgxYwtZTeuwcQszijpe4hqWnm0/LyoMlBEuPhj2A9Hi9GX34VF9M79+GOykypS0FQ7IYUvwroRaQ4afKpM1QE1iBKeyir3z+V61TpnAaWCLV5YkcaUWZxyJIAPBmHFFL20krd163b7HlLhQNxcwbdCBS91ceKZ1gwwtMZN7wKzMDBgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":585,"cache_read_input_tokens":157392,"output_tokens":352,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":585,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":352,"cache_read_input_tokens":157392,"cache_creation_input_tokens":585,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":585},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzxkAkXy7mSuqPZsUFs","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"2bdd19fc-6c5d-4b8b-b45c-573f60924dba","timestamp":"2026-07-27T18:01:35.031Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2bdd19fc-6c5d-4b8b-b45c-573f60924dba","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzxoqGHNUWmQuRq9jRw","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01PUGBfcYiWrifxCBeqNLTEh","name":"Bash","input":{"command":"sed -n '1,45p' themes/cert.omp.yaml 2>/dev/null || sed -n '1,60p' themes/cert.omp.json","description":"Read cert theme config"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":585,"cache_read_input_tokens":157392,"output_tokens":352,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":585,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":352,"cache_read_input_tokens":157392,"cache_creation_input_tokens":585,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":585},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzxkAkXy7mSuqPZsUFs","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"c76f6856-2941-439b-9682-8e5ef28d0a74","timestamp":"2026-07-27T18:01:35.035Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c76f6856-2941-439b-9682-8e5ef28d0a74","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01PUGBfcYiWrifxCBeqNLTEh","type":"tool_result","content":"{\n \"$schema\": \"https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json\",\n \"blocks\": [\n {\n \"alignment\": \"left\",\n \"segments\": [\n {\n \"background\": \"#E36464\",\n \"foreground\": \"#fff\",\n \"leading_diamond\": \"\\ue0b6\",\n \"style\": \"diamond\",\n \"template\": \"{{ .UserName }} \",\n \"trailing_diamond\": \"\\ue0c6\",\n \"type\": \"session\"\n },\n {\n \"background\": \"green\",\n \"foreground\": \"#fff\",\n \"leading_diamond\": \"\\ue0c7\",\n \"options\": {\n \"style\": \"folder\"\n },\n \"style\": \"diamond\",\n \"template\": \" {{ .Path }} \",\n \"trailing_diamond\": \"\\ue0c6\",\n \"type\": \"path\"\n },\n {\n \"background\": \"lightCyan\",\n \"foreground\": \"#fff\",\n \"leading_diamond\": \"\\ue0c7\",\n \"options\": {\n \"branch_icon\": \"\"\n },\n \"style\": \"diamond\",\n \"template\": \" git({{ .HEAD }}) \",\n \"trailing_diamond\": \"\\ue0c6\",\n \"type\": \"git\"\n },\n {\n \"background\": \"lightMagenta\",\n \"foreground\": \"#fff\",\n \"leading_diamond\": \"\\ue0c7\",\n \"options\": {\n \"time_format\": \"15:04\"\n },\n \"style\": \"diamond\",\n \"template\": \" {{ .CurrentDate | date .Format }} \",\n \"trailing_diamond\": \"\\ue0c6\",\n \"type\": \"time\"\n }\n ],\n \"type\": \"prompt\"\n }\n ],\n \"final_space\": true,\n \"version\": 4\n}","is_error":false}]},"uuid":"cb984fef-6d37-4963-88f8-9acbf3e285eb","timestamp":"2026-07-27T18:01:36.145Z","toolUseResult":{"stdout":"{\n \"$schema\": \"https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json\",\n \"blocks\": [\n {\n \"alignment\": \"left\",\n \"segments\": [\n {\n \"background\": \"#E36464\",\n \"foreground\": \"#fff\",\n \"leading_diamond\": \"\\ue0b6\",\n \"style\": \"diamond\",\n \"template\": \"{{ .UserName }} \",\n \"trailing_diamond\": \"\\ue0c6\",\n \"type\": \"session\"\n },\n {\n \"background\": \"green\",\n \"foreground\": \"#fff\",\n \"leading_diamond\": \"\\ue0c7\",\n \"options\": {\n \"style\": \"folder\"\n },\n \"style\": \"diamond\",\n \"template\": \" {{ .Path }} \",\n \"trailing_diamond\": \"\\ue0c6\",\n \"type\": \"path\"\n },\n {\n \"background\": \"lightCyan\",\n \"foreground\": \"#fff\",\n \"leading_diamond\": \"\\ue0c7\",\n \"options\": {\n \"branch_icon\": \"\"\n },\n \"style\": \"diamond\",\n \"template\": \" git({{ .HEAD }}) \",\n \"trailing_diamond\": \"\\ue0c6\",\n \"type\": \"git\"\n },\n {\n \"background\": \"lightMagenta\",\n \"foreground\": \"#fff\",\n \"leading_diamond\": \"\\ue0c7\",\n \"options\": {\n \"time_format\": \"15:04\"\n },\n \"style\": \"diamond\",\n \"template\": \" {{ .CurrentDate | date .Format }} \",\n \"trailing_diamond\": \"\\ue0c6\",\n \"type\": \"time\"\n }\n ],\n \"type\": \"prompt\"\n }\n ],\n \"final_space\": true,\n \"version\": 4\n}","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"c76f6856-2941-439b-9682-8e5ef28d0a74","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cb984fef-6d37-4963-88f8-9acbf3e285eb","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzyWV1JsYfCUPgT9CjZ","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm noticing the foreground color is set to a 3-digit hex shorthand `#fff`, but the SVG is rendering with the background color `#e36464` for the text instead. This suggests the shorthand hex isn't being resolved properly — `resolveChannel` is returning unresolved, so the foreground value stays at whatever it was before. I should check the `hexToRGB` function in colors.go to see if it only handles 6-digit hex values and doesn't support the 3-digit shorthand format.","signature":"CAIS7wQKhwEIEBgCKkAwDYPT/99TXnlHCb3GL7j8F35rLQd1cy+6LA7J0CVjPqXxdrSpqQEJKFvpGWxaDidSHEpyp5SOPM3lV+N77pzoMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDB147eweUYijAFFueBoMj8Ob9vkTDhbdQo74IjBQRwEtLUTPHt/FS6Is1kRsPWTvVuY8I8kdPDXqkSc6NyhB62+29CGlzi2fSItNYcEqlAPTFE13SLPQ03VFm6g8XHD21QQwXxEm44Pc5dS9dRbQ/NsIegNcRLI8l38xYZatR0QPTsrCh+RxQVOrKg9AxpEQnQ1GnMD/uFUNiiwZ3ZcHqjyX0LQOMMegPdGEufZGMpW9v/0z8pND+ubAIWza6I0BZYd7t25o5CTa9RCQeU0kK4Xhk7h5/Grq7Llm33BNX7laM4CKA3KqtJ3gMqmIhiW0NVnjNy49s76Nvh5nPE+t5Vkqkf6L8STHWKKdfmw2TwtViFhIaxPhfCaRBVqVNk+TPurio+FVFp8SG8vCZkfeVlcKKRpsFVF8Jpd1Y2W2rjzClRnEDpaLl/Hctyl+u+J2ei2jC9t/CWLS1onmp7EAmSfB7aY8Urfk73X3rYIIdjibtbl3nPDqHbXCISwocPrnHmhDBsj1NWY3DZDo8dALR1oj3MiGEdVPVdRQAohbNnmMhOQX6KrMjKwpciPPOkkh2347vNRAprXkJg0h3hYxMTsfVPtv4l3Kjkz8TJf1jHrHOfd3NE4UfumfDRSst1w43HsRQhgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":949,"cache_read_input_tokens":157977,"output_tokens":264,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":949,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":264,"cache_read_input_tokens":157977,"cache_creation_input_tokens":949,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":949},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzyT8bcpvVUqUs2DcVU","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"0a92401f-ac7b-4fa5-ac7e-9c041df42be9","timestamp":"2026-07-27T18:01:41.738Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0a92401f-ac7b-4fa5-ac7e-9c041df42be9","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzyWV1JsYfCUPgT9CjZ","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Gt8FiEVTANWP5y5W9hA7rd","name":"Read","input":{"file_path":"D:\\oh-my-posh\\src\\svg\\colors.go","offset":1,"limit":160},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":949,"cache_read_input_tokens":157977,"output_tokens":264,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":949,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":264,"cache_read_input_tokens":157977,"cache_creation_input_tokens":949,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":949},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzyT8bcpvVUqUs2DcVU","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"75cb5717-de04-4043-a7ef-76f1d45541bc","timestamp":"2026-07-27T18:01:41.741Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"75cb5717-de04-4043-a7ef-76f1d45541bc","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Gt8FiEVTANWP5y5W9hA7rd","type":"tool_result","content":"1\tpackage svg\n2\t\n3\timport (\n4\t\t\"strconv\"\n5\t\t\"strings\"\n6\t\n7\t\t\"github.com/jandedobbeleer/oh-my-posh/src/color\"\n8\t)\n9\t\n10\t// resolveChannel resolves one channel (background or foreground) of a Run to\n11\t// an RGB value, given the run's own captured RGB (set only for a gradient\n12\t// cell — see terminal.Run's doc comment, populated from color.GradientCellsRGB\n13\t// rather than inverted from an SGR escape) and the run's pre-ToAnsi source\n14\t// form (a #RRGGBB hex, an ansiColorCodes name, \"accent\", a 0-255 palette\n15\t// index, \"transparent\", or empty).\n16\t//\n17\t// The bool return reports whether the source actually resolved to something.\n18\t// False means color.Defaults.ToAnsi's failure path: nothing was emitted (an\n19\t// unresolved palette key, a malformed hex, ...), so the caller must keep\n20\t// whatever color was already active on that channel, exactly like a real\n21\t// terminal that never received an SGR code for it. True with a nil RGB means\n22\t// the source resolved to \"paint nothing here\" (transparent, or an unset\n23\t// accent/terminal background) — also a real resolution, just not a color,\n24\t// and it must override whatever was active before it.\n25\tfunc resolveChannel(source color.Ansi, rgb *color.RGB, isBackground bool, opts *Options) (*color.RGB, bool) {\n26\t\tif rgb != nil {\n27\t\t\treturn rgb, true\n28\t\t}\n29\t\n30\t\tif source.IsEmpty() {\n31\t\t\treturn nil, false\n32\t\t}\n33\t\n34\t\tif source.IsTransparent() {\n35\t\t\treturn nil, true\n36\t\t}\n37\t\n38\t\tif source == color.Accent {\n39\t\t\treturn resolveAccent(isBackground, opts)\n40\t\t}\n41\t\n42\t\tvalue := source.String()\n43\t\n44\t\tif strings.HasPrefix(value, \"#\") {\n45\t\t\treturn hexToRGB(value)\n46\t\t}\n47\t\n48\t\tif rgb, ok := namedRGB(value, isBackground, opts); ok {\n49\t\t\treturn rgb, true\n50\t\t}\n51\t\n52\t\tif index, err := strconv.ParseUint(value, 10, 8); err == nil {\n53\t\t\trgb := palette256(uint8(index))\n54\t\t\treturn &rgb, true\n55\t\t}\n56\t\n57\t\treturn nil, false\n58\t}\n59\t\n60\t// resolveAccent resolves the \"accent\" keyword against Options' pre-resolved\n61\t// accent RGB. An unset accent (opts.Accent* nil) mirrors color.Defaults.ToAnsi\n62\t// returning its own empty-string failure value for an unresolved accent: no\n63\t// SGR code would be emitted, so the previous color must stay active.\n64\tfunc resolveAccent(isBackground bool, opts *Options) (*color.RGB, bool) {\n65\t\taccent := opts.AccentForeground\n66\t\tif isBackground {\n67\t\t\taccent = opts.AccentBackground\n68\t\t}\n69\t\n70\t\tif accent == nil {\n71\t\t\treturn nil, false\n72\t\t}\n73\t\n74\t\treturn accent, true\n75\t}\n76\t\n77\t// ResolveStaticRGB resolves a single, non-gradient color source — such as\n78\t// terminal.BackgroundColor, resolved once up front rather than carried per\n79\t// Run — to RGB. \"accent\"/\"default\" resolve against opts exactly like a Run's\n80\t// source would through Encode.\n81\tfunc ResolveStaticRGB(source color.Ansi, isBackground bool, opts *Options) (*color.RGB, bool) {\n82\t\treturn resolveChannel(source, nil, isBackground, opts)\n83\t}\n84\t\n85\t// ParseTrueColorSGR parses a 24-bit SGR payload (\"38;2;r;g;b\" or\n86\t// \"48;2;r;g;b\") into RGB. It exists for the one color a Run's source form\n87\t// can't carry as a hex string: \"accent\" is a keyword whose actual RGB only\n88\t// exists behind color.Defaults' private accent field, reachable through\n89\t// color.String.ToAnsi(color.Accent, ...) — which always answers in full\n90\t// truecolor for an accent regardless of color.TrueColor (see\n91\t// color.Defaults.SetAccentColor building it via gookit's color.RGB) — so a\n92\t// caller resolves it once through that and hands the result here, rather\n93\t// than Options resolving \"accent\" itself from package state.\n94\tfunc ParseTrueColorSGR(ansi color.Ansi) (*color.RGB, bool) {\n95\t\tparts := strings.Split(ansi.String(), \";\")\n96\t\tif len(parts) != 5 {\n97\t\t\treturn nil, false\n98\t\t}\n99\t\n100\t\tif parts[0] != \"38\" && parts[0] != \"48\" {\n101\t\t\treturn nil, false\n102\t\t}\n103\t\n104\t\tif parts[1] != \"2\" {\n105\t\t\treturn nil, false\n106\t\t}\n107\t\n108\t\tr, err := strconv.ParseUint(parts[2], 10, 8)\n109\t\tif err != nil {\n110\t\t\treturn nil, false\n111\t\t}\n112\t\n113\t\tg, err := strconv.ParseUint(parts[3], 10, 8)\n114\t\tif err != nil {\n115\t\t\treturn nil, false\n116\t\t}\n117\t\n118\t\tbl, err := strconv.ParseUint(parts[4], 10, 8)\n119\t\tif err != nil {\n120\t\t\treturn nil, false\n121\t\t}\n122\t\n123\t\treturn &color.RGB{R: uint8(r), G: uint8(g), B: uint8(bl)}, true\n124\t}\n125\t\n126\tfunc hexToRGB(value string) (*color.RGB, bool) {\n127\t\thex := strings.TrimPrefix(value, \"#\")\n128\t\tif len(hex) != 6 {\n129\t\t\treturn nil, false\n130\t\t}\n131\t\n132\t\tr, err := strconv.ParseUint(hex[0:2], 16, 8)\n133\t\tif err != nil {\n134\t\t\treturn nil, false\n135\t\t}\n136\t\n137\t\tg, err := strconv.ParseUint(hex[2:4], 16, 8)\n138\t\tif err != nil {\n139\t\t\treturn nil, false\n140\t\t}\n141\t\n142\t\tbl, err := strconv.ParseUint(hex[4:6], 16, 8)\n143\t\tif err != nil {\n144\t\t\treturn nil, false\n145\t\t}\n146\t\n147\t\treturn &color.RGB{R: uint8(r), G: uint8(g), B: uint8(bl)}, true\n148\t}\n149\t\n150\t// namedRGB resolves an ansiColorCodes name (see color/colors.go's\n151\t// ansiColorCodes map) to RGB. \"default\" is context-dependent rather than a\n152\t// fixed color: its background channel is the real terminal background\n153\t// (Options.TerminalBackground, possibly unknown), and its foreground channel\n154\t// has no equivalent explicit input (see Options' doc comment), so it falls\n155\t// back to a fixed approximation.\n156\tfunc namedRGB(name string, isBackground bool, opts *Options) (*color.RGB, bool) {\n157\t\tif name == \"default\" {\n158\t\t\tif isBackground {\n159\t\t\t\treturn opts.TerminalBackground, true\n160\t\t\t}"}]},"uuid":"4678ba74-5584-487d-bfc1-bd29774289fb","timestamp":"2026-07-27T18:01:41.779Z","toolUseResult":{"type":"text","file":{"filePath":"D:\\oh-my-posh\\src\\svg\\colors.go","content":"package svg\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/color\"\n)\n\n// resolveChannel resolves one channel (background or foreground) of a Run to\n// an RGB value, given the run's own captured RGB (set only for a gradient\n// cell — see terminal.Run's doc comment, populated from color.GradientCellsRGB\n// rather than inverted from an SGR escape) and the run's pre-ToAnsi source\n// form (a #RRGGBB hex, an ansiColorCodes name, \"accent\", a 0-255 palette\n// index, \"transparent\", or empty).\n//\n// The bool return reports whether the source actually resolved to something.\n// False means color.Defaults.ToAnsi's failure path: nothing was emitted (an\n// unresolved palette key, a malformed hex, ...), so the caller must keep\n// whatever color was already active on that channel, exactly like a real\n// terminal that never received an SGR code for it. True with a nil RGB means\n// the source resolved to \"paint nothing here\" (transparent, or an unset\n// accent/terminal background) — also a real resolution, just not a color,\n// and it must override whatever was active before it.\nfunc resolveChannel(source color.Ansi, rgb *color.RGB, isBackground bool, opts *Options) (*color.RGB, bool) {\n\tif rgb != nil {\n\t\treturn rgb, true\n\t}\n\n\tif source.IsEmpty() {\n\t\treturn nil, false\n\t}\n\n\tif source.IsTransparent() {\n\t\treturn nil, true\n\t}\n\n\tif source == color.Accent {\n\t\treturn resolveAccent(isBackground, opts)\n\t}\n\n\tvalue := source.String()\n\n\tif strings.HasPrefix(value, \"#\") {\n\t\treturn hexToRGB(value)\n\t}\n\n\tif rgb, ok := namedRGB(value, isBackground, opts); ok {\n\t\treturn rgb, true\n\t}\n\n\tif index, err := strconv.ParseUint(value, 10, 8); err == nil {\n\t\trgb := palette256(uint8(index))\n\t\treturn &rgb, true\n\t}\n\n\treturn nil, false\n}\n\n// resolveAccent resolves the \"accent\" keyword against Options' pre-resolved\n// accent RGB. An unset accent (opts.Accent* nil) mirrors color.Defaults.ToAnsi\n// returning its own empty-string failure value for an unresolved accent: no\n// SGR code would be emitted, so the previous color must stay active.\nfunc resolveAccent(isBackground bool, opts *Options) (*color.RGB, bool) {\n\taccent := opts.AccentForeground\n\tif isBackground {\n\t\taccent = opts.AccentBackground\n\t}\n\n\tif accent == nil {\n\t\treturn nil, false\n\t}\n\n\treturn accent, true\n}\n\n// ResolveStaticRGB resolves a single, non-gradient color source — such as\n// terminal.BackgroundColor, resolved once up front rather than carried per\n// Run — to RGB. \"accent\"/\"default\" resolve against opts exactly like a Run's\n// source would through Encode.\nfunc ResolveStaticRGB(source color.Ansi, isBackground bool, opts *Options) (*color.RGB, bool) {\n\treturn resolveChannel(source, nil, isBackground, opts)\n}\n\n// ParseTrueColorSGR parses a 24-bit SGR payload (\"38;2;r;g;b\" or\n// \"48;2;r;g;b\") into RGB. It exists for the one color a Run's source form\n// can't carry as a hex string: \"accent\" is a keyword whose actual RGB only\n// exists behind color.Defaults' private accent field, reachable through\n// color.String.ToAnsi(color.Accent, ...) — which always answers in full\n// truecolor for an accent regardless of color.TrueColor (see\n// color.Defaults.SetAccentColor building it via gookit's color.RGB) — so a\n// caller resolves it once through that and hands the result here, rather\n// than Options resolving \"accent\" itself from package state.\nfunc ParseTrueColorSGR(ansi color.Ansi) (*color.RGB, bool) {\n\tparts := strings.Split(ansi.String(), \";\")\n\tif len(parts) != 5 {\n\t\treturn nil, false\n\t}\n\n\tif parts[0] != \"38\" && parts[0] != \"48\" {\n\t\treturn nil, false\n\t}\n\n\tif parts[1] != \"2\" {\n\t\treturn nil, false\n\t}\n\n\tr, err := strconv.ParseUint(parts[2], 10, 8)\n\tif err != nil {\n\t\treturn nil, false\n\t}\n\n\tg, err := strconv.ParseUint(parts[3], 10, 8)\n\tif err != nil {\n\t\treturn nil, false\n\t}\n\n\tbl, err := strconv.ParseUint(parts[4], 10, 8)\n\tif err != nil {\n\t\treturn nil, false\n\t}\n\n\treturn &color.RGB{R: uint8(r), G: uint8(g), B: uint8(bl)}, true\n}\n\nfunc hexToRGB(value string) (*color.RGB, bool) {\n\thex := strings.TrimPrefix(value, \"#\")\n\tif len(hex) != 6 {\n\t\treturn nil, false\n\t}\n\n\tr, err := strconv.ParseUint(hex[0:2], 16, 8)\n\tif err != nil {\n\t\treturn nil, false\n\t}\n\n\tg, err := strconv.ParseUint(hex[2:4], 16, 8)\n\tif err != nil {\n\t\treturn nil, false\n\t}\n\n\tbl, err := strconv.ParseUint(hex[4:6], 16, 8)\n\tif err != nil {\n\t\treturn nil, false\n\t}\n\n\treturn &color.RGB{R: uint8(r), G: uint8(g), B: uint8(bl)}, true\n}\n\n// namedRGB resolves an ansiColorCodes name (see color/colors.go's\n// ansiColorCodes map) to RGB. \"default\" is context-dependent rather than a\n// fixed color: its background channel is the real terminal background\n// (Options.TerminalBackground, possibly unknown), and its foreground channel\n// has no equivalent explicit input (see Options' doc comment), so it falls\n// back to a fixed approximation.\nfunc namedRGB(name string, isBackground bool, opts *Options) (*color.RGB, bool) {\n\tif name == \"default\" {\n\t\tif isBackground {\n\t\t\treturn opts.TerminalBackground, true\n\t\t}","numLines":160,"startLine":1,"totalLines":230}},"sourceToolAssistantUUID":"75cb5717-de04-4043-a7ef-76f1d45541bc","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4678ba74-5584-487d-bfc1-bd29774289fb","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzywVfTHFxQJeUQmsGi","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"So `hexToRGB` needs exactly 6 hex digits, meaning the 3-digit shorthand like `#fff` fails and returns nil—which leaves the foreground color unchanged. In this case, the background gets resolved to `#e36464` while the foreground stays as whatever it was initially, which appears to be nil at the start.\n\nThe leading diamond character gets written with the background color as the foreground, so `state.fg` becomes `#e36464`. Then when the segment text tries to use `#fff`, it can't resolve it and keeps the current foreground color—painting text in `#e36464` on a `#e36464` background, making it invisible.\n\nThe real issue is that `hexToRGB` doesn't support 3-digit hex shorthand (or 4/8-digit alpha variants), while gookit presumably handles these formats. I should verify whether omp accepts these shorter hex forms and check how the color resolution actually works.","signature":"CAISiAsKhwEIEBgCKkCYqqTtZBIQg2RiDf60qH6cpY6NL9ZwkSqrI4ZnUaYZ7TAOpH1+7+Qxy9zdAAoSu3LFLM8KGQ/2BjxHa1nRF7kMMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDFJkUJjyA4j2nvHjYBoMe9iW+NDVkZV6DUEPIjABJ47isejvmG6Hgq/clYvz+2hbl1gl4Znbxc4JfVviQch2STd1USfkNxej1FAwuroqrQkMp8ehWrKYXKO0zd5aOYXFfa9F1Tlt0nUgJZvZOKPjx1GpYqF1LMnjnv9D6OoI3lKdssc6Z9sKIdagOxpdqYY163rFyeFkp9XDmTiMCcTVLBg2Uf0FKw/fVl2PIilyx8RIiTZHyhnzh2qEhbRHWkdwXXCAFMY48xjaf86mHqXbCHrLkxMBr43SQUBVDxlyXyR6KR1JNDZ+L4sFGufGukFvSPlGifgNEyXbgsV1IR4MaOUvu4KMYhONBaGK2waXA8XcDzuCGxIKznqAEh6tDWevVWO48mV7jo4WET2PEhnkcQsH7z3Xz3MKK9oT0as7ChyI6mln4t4+viovkrNeUiS4gqOBCvXlQNBpQ63bCyiJRKVeb+xa36piqC6qmAO4T3H91n6eEX/HdqSwAixPLv7QQzMDQyTKqPHugge4J/+91mo4zQP9Q9Djd17kio3cPu2vLx6HFo5ztMp0EnjDZC0hLWlwG79FSLIMOEXFHt+E0eRaX3oSCbnuARBaQqbrx99b7f92UJmbKnxyn1LvVSK30yohYYncVtkIw9juomH3cGuhCvEzx9PJ0lFu6jHaim9cklsppun5t4tpNTbI7ABkm5tcDiGHTVF2jDEsND6KfqHHV4a64g/dOs+z+iMY4lbd5EQHxoruVsnDneZFUdmk6htn2Rm8AeAe/fMZD13yppLZemPD514sXaVqkd5DaJTsfTC5R5jsb264TPsUtFyLieLHhnL1+Tt6ljg/aIWbwSE0tqlqMJn/K8IvrLnGDn6FGlWcvjfij3p+64ey5bKg8k7ex+Z811Ju1NRWjT2j32QZkTpsDO8xpn9TF7TYV3Z5GRW+NUStBQ+u0K0U6md221BCra+Sj60z3HQGGzKvvbZ/haBZepSuCNAk5ulpimsLpr6UohbCw5OFxFeQ8Hq0FkJrjb4EjNhH5AgnTCh69CYh4zt3lpwuGJrMK7L4YXeOC+jCJ2/eu0qQzkKH3G6zSfyxl1P/HSDbytFTNKt3c1zHMsQVp5P6Z+nypu0xeITcHQUKMsP6e5evCYUDomhPJ7r7TWGgrAqoNgJvlm8WahH5fsxu/PR9v+3kfDhNa4DNpmgK0gI9sCHb/CzWepkEb/tiVwE3r8JjAPp6ALDBxUIO6Iw+3drZ8K2o6lhWWnmSOzGlfJ4iEqoI/iodFx3e4sM3gxRHXsBuwhIavhsDPQDwfN9PTt4F6odIG8qeETYeTd+efmeCQPBWoQzVj/B61UOYVAEvxDm5Wqmfom7UQeriFaZFkr+zyB3x3OaG7A3q0qBRL1qdBtrTtM/sHBPSLYdsBoDCDzT33ZqmB3I2EJkfDaLlyechmjbYVcC2naWRgbK0Euzfko6+lZ39hNdFVnD2jUlFfpLapBTSx7rNAsaSl8GHabnCHIr5cHu/SvSkbBylhmFqPTmZTwYnbjVn5EiBfURo8SYcmBbQIJNT8uP8P/bv/eSFCrr5F5CMvuZKe9wLgNgEDcHSwcvwJgiJYkPhlFKokHVL26X3A+NOFgfxUzD7waK92VfP/DHluMQFPiKxG2xJIWyscU7ngAJ4z9BMbwNY79M+ZahxVZ5gCZOaO5vAeZWc0vWcdf4YAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2639,"cache_read_input_tokens":158926,"output_tokens":723,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2639,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":723,"cache_read_input_tokens":158926,"cache_creation_input_tokens":2639,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2639},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzysR6GUPhszuDw36s2","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"1532e165-e545-45d3-995e-f95fa2cce48a","timestamp":"2026-07-27T18:01:52.998Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1532e165-e545-45d3-995e-f95fa2cce48a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdSzywVfTHFxQJeUQmsGi","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_014AMwaA4mTqif6bmsYC35w2","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; \"$TMPDIR/omp.exe\" print primary --config themes/cert.omp.json --data src/prompt/testdata/fixtures/prompt.data.json --shell generic > \"$SP/cert.ansi\" 2>/dev/null; python \"$SP/ansidump.py\" \"$SP/cert.ansi\" 400","description":"Dump cert ANSI output"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2639,"cache_read_input_tokens":158926,"output_tokens":723,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2639,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":723,"cache_read_input_tokens":158926,"cache_creation_input_tokens":2639,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2639},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdSzysR6GUPhszuDw36s2","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"21370360-a19d-4a90-9a15-b46b67ce1a49","timestamp":"2026-07-27T18:01:54.147Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"21370360-a19d-4a90-9a15-b46b67ce1a49","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_014AMwaA4mTqif6bmsYC35w2","type":"tool_result","content":"ESC[38;2;227;100;100mESC[0mESC[48;2;227;100;100mESC[38;2;255;255;255malice ESC[0mESC[38;2;227;100;100mESC[0mESC[32mESC[0mESC[42mESC[38;2;255;255;255m ~/dev/oh-my-posh ESC[0mESC[32mESC[0mESC[96mESC[0mESC[106mESC[38;2;255;255;255m git(next) ESC[0mESC[96mESC[0mESC[95mESC[0mESC[105mESC[38;2;255;255;255m Monday at 8:08 AM ESC[0mESC[95mESC[0m","is_error":false}]},"uuid":"5f1806f0-4888-49c8-9396-f44d0e77a6aa","timestamp":"2026-07-27T18:01:58.214Z","toolUseResult":{"stdout":"ESC[38;2;227;100;100mESC[0mESC[48;2;227;100;100mESC[38;2;255;255;255malice ESC[0mESC[38;2;227;100;100mESC[0mESC[32mESC[0mESC[42mESC[38;2;255;255;255m ~/dev/oh-my-posh ESC[0mESC[32mESC[0mESC[96mESC[0mESC[106mESC[38;2;255;255;255m git(next) ESC[0mESC[96mESC[0mESC[95mESC[0mESC[105mESC[38;2;255;255;255m Monday at 8:08 AM ESC[0mESC[95mESC[0m","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"21370360-a19d-4a90-9a15-b46b67ce1a49","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5f1806f0-4888-49c8-9396-f44d0e77a6aa","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT117ukyt4LadBm3MpH5","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"So the terminal's outputting the correct RGB values for white, but the SVG is rendering it as the background instead — that's a clear SVG bug affecting all shorthand hex color themes like `#fff` and `#000`. I need to dig into how omp parses hex colors to see what formats it accepts, and I'm also noticing the 16-color SGR codes for named colors like green and light cyan.","signature":"CAISpAYKhwEIEBgCKkAijd5sZV8dYL5HdRLS/5uwTrimnQwOeniwZs9E8pb4/ge6hXPqmvMbsnK1x38yueaN0qjk4xn75RtZy5kJ23MTMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDNG0WwAv8QpWb69ukBoMwc7vjkna3W4Aww61IjAZkUFUnRvC61gw/vxMdsCB2pbe3byNbABdHchjjbrIYMIVb6/Rt/DutEpbxWcs8ZkqyQTYYT0LN3WGuYOJ6/gfdyic3Iv1d5u/RprqbffNvO+jMjddBQTjR+q6xf9l/9UD0HQK12vEV6E1UZTznh4JkQOifHdk7HeabGb3Gd/HuKAUhsOZNT5/txxh3wCFvzz1kcqGbN3tj6jMy+2ORnoFfgRf24d7RXTvTnHNamcAOQAsIlTRGdgt/JqJKJY5cloo4FGaIFDHtcBYM9918uc6j3L5NrZ0WQPhzUNSQDm8hVLKPhPyCq5+6n4n4ZqeKGuHQBh3Ep5NKSTd7U8Jvk3Z/PCCsyD+X9V7jJYyuYg5HOEbXLMuz/6qN0yhvfTG72dVU5T34SBHzgheXdUBOPrujeT3GRX0YvDCaicqsRF9vaEPAcsMAfVEZOphL3D0rNsxpKS0jcx8kLCu91rgsWq2JxnJXf4N+LgxSV2RKz31apTHdXIpuwBiH+kd02mVKi3B/0tKA48Gg8nf7tL5TzIRfNqBbWJoLPajnh9WCDhmpgCK8dwAqNYXJ7UnhdzI2UEqQ7dfnB8AwMoJjj4KCunVixO+UB3xbE+LhaKUbqqPnNo0yMiXQXIgtpfyCzyf5tWLDCa5fXGpcvrp4tHwtLjs1dgL6NMTqHvWLWuXNZiGO3qWNAxBGw5MSqjKH50le9xU8wb8WpVkq00q4lIEPUPWEUXMu/z/r0Ndt5tSU5wxOdHnVzfZbUWu3LUWpMctPOgZ8yCZ63c6BZtokho9mkxzj8dtIa1JoJvr/jloh1nsmMISeuFmZShFEXDqhj684DqD2XYo3mh9f6TajqYYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":958,"cache_read_input_tokens":161565,"output_tokens":358,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":958,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":358,"cache_read_input_tokens":161565,"cache_creation_input_tokens":958,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":958},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT115TRL92mKuAxjgVKu","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"e91ae57d-5b08-4d5a-ad0f-43ed4c601fbc","timestamp":"2026-07-27T18:02:04.515Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e91ae57d-5b08-4d5a-ad0f-43ed4c601fbc","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT117ukyt4LadBm3MpH5","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Qj9GUovZwjJr9vqbEmUU2M","name":"Bash","input":{"command":"grep -rn \"HEX\\|Hex\\|hex\" src/color/*.go | grep -v _test | head -25","description":"Find hex parsing in color package"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":958,"cache_read_input_tokens":161565,"output_tokens":358,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":958,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":358,"cache_read_input_tokens":161565,"cache_creation_input_tokens":958,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":958},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT115TRL92mKuAxjgVKu","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"e195eb71-cba9-4981-88a6-ee8f63283ad2","timestamp":"2026-07-27T18:02:04.517Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e195eb71-cba9-4981-88a6-ee8f63283ad2","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Qj9GUovZwjJr9vqbEmUU2M","type":"tool_result","content":"src/color/colors.go:32:// String converts a color string — a hex color like `#FFFFFF`, or one of the\nsrc/color/colors.go:44:\t// form (a #RRGGBB hex, a colour name, accent, transparent, ...) alongside\nsrc/color/colors.go:316:\t// and renders it per cell, so it must never be mangled into hex/256 parsing here.\nsrc/color/colors.go:350:\tstyle := color.HEX(colorString, isBackground)\nsrc/color/gradient.go:153:\t\tif clr, err := colorful.Hex(last.String()); err == nil {\nsrc/color/gradient.go:154:\t\t\treturn Ansi(autoShade(clr, dir, cells).Hex())\nsrc/color/gradient.go:162:// current/parents, palette references through resolver — parses the result as a hex color, and\nsrc/color/gradient.go:193:\t\t// rather than hex; parseTrueColor recovers the RGB triplet from it.\nsrc/color/gradient.go:198:\t\tclr, err := colorful.Hex(resolved.String())\nsrc/color/gradient.go:202:\t\t\t\tlog.Errorf(\"gradient %s: stop %s does not resolve to a color, only hex colors, palette references, and keywords resolving to a color can be interpolated\", c, stop)\nsrc/color/gradient.go:296:\t\tclr, err := colorful.Hex(resolved.String())\nsrc/color/gradient.go:454:// a colorful.Color. The OS accent color resolves to this form instead of hex.","is_error":false}]},"uuid":"110b6c30-9f28-43af-9a24-55b2a9ad25ca","timestamp":"2026-07-27T18:02:05.763Z","toolUseResult":{"stdout":"src/color/colors.go:32:// String converts a color string — a hex color like `#FFFFFF`, or one of the\nsrc/color/colors.go:44:\t// form (a #RRGGBB hex, a colour name, accent, transparent, ...) alongside\nsrc/color/colors.go:316:\t// and renders it per cell, so it must never be mangled into hex/256 parsing here.\nsrc/color/colors.go:350:\tstyle := color.HEX(colorString, isBackground)\nsrc/color/gradient.go:153:\t\tif clr, err := colorful.Hex(last.String()); err == nil {\nsrc/color/gradient.go:154:\t\t\treturn Ansi(autoShade(clr, dir, cells).Hex())\nsrc/color/gradient.go:162:// current/parents, palette references through resolver — parses the result as a hex color, and\nsrc/color/gradient.go:193:\t\t// rather than hex; parseTrueColor recovers the RGB triplet from it.\nsrc/color/gradient.go:198:\t\tclr, err := colorful.Hex(resolved.String())\nsrc/color/gradient.go:202:\t\t\t\tlog.Errorf(\"gradient %s: stop %s does not resolve to a color, only hex colors, palette references, and keywords resolving to a color can be interpolated\", c, stop)\nsrc/color/gradient.go:296:\t\tclr, err := colorful.Hex(resolved.String())\nsrc/color/gradient.go:454:// a colorful.Color. The OS accent color resolves to this form instead of hex.","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"e195eb71-cba9-4981-88a6-ee8f63283ad2","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"110b6c30-9f28-43af-9a24-55b2a9ad25ca","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT11hXas1CoJC7NfZCcS","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017kV8Qq8GZwKYkCg6Kcoemw","name":"Bash","input":{"command":"sed -n '340,360p' src/color/colors.go","description":"Read ToAnsi hex handling"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":850,"cache_read_input_tokens":162523,"output_tokens":96,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":850,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":96,"cache_read_input_tokens":162523,"cache_creation_input_tokens":850,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":850},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT11dmruQDbABVTEBbRH","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"cf3dd26d-9848-4153-bb2b-37f2c7c2d517","timestamp":"2026-07-27T18:02:08.611Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cf3dd26d-9848-4153-bb2b-37f2c7c2d517","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017kV8Qq8GZwKYkCg6Kcoemw","type":"tool_result","content":"\tif !strings.HasPrefix(colorString, \"#\") {\n\t\tval, err := strconv.ParseUint(colorString, 10, 64)\n\t\tif err != nil || val > 255 {\n\t\t\treturn emptyColor\n\t\t}\n\n\t\tc256 := color.C256(uint8(val), isBackground)\n\t\treturn Ansi(c256.String())\n\t}\n\n\tstyle := color.HEX(colorString, isBackground)\n\tif !style.IsEmpty() {\n\t\tif TrueColor {\n\t\t\treturn Ansi(style.String())\n\t\t}\n\n\t\treturn Ansi(style.C256().String())\n\t}\n\n\tif colorInt, err := strconv.ParseInt(colorString, 10, 8); err == nil {\n\t\tc := color.C256(uint8(colorInt), isBackground)","is_error":false}]},"uuid":"8ec21970-3b58-4910-96ac-f7e9974f32db","timestamp":"2026-07-27T18:02:09.798Z","toolUseResult":{"stdout":"\tif !strings.HasPrefix(colorString, \"#\") {\n\t\tval, err := strconv.ParseUint(colorString, 10, 64)\n\t\tif err != nil || val > 255 {\n\t\t\treturn emptyColor\n\t\t}\n\n\t\tc256 := color.C256(uint8(val), isBackground)\n\t\treturn Ansi(c256.String())\n\t}\n\n\tstyle := color.HEX(colorString, isBackground)\n\tif !style.IsEmpty() {\n\t\tif TrueColor {\n\t\t\treturn Ansi(style.String())\n\t\t}\n\n\t\treturn Ansi(style.C256().String())\n\t}\n\n\tif colorInt, err := strconv.ParseInt(colorString, 10, 8); err == nil {\n\t\tc := color.C256(uint8(colorInt), isBackground)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"cf3dd26d-9848-4153-bb2b-37f2c7c2d517","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8ec21970-3b58-4910-96ac-f7e9974f32db","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"3f3aef94-4990-4010-aed6-5ff5f0ca48bb","timestamp":"2026-07-27T18:02:09.804Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3f3aef94-4990-4010-aed6-5ff5f0ca48bb","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT121dm5CK58BL9D4e2f","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I need to align the SVG's hex parsing with gookit's `HEX` function, which accepts 3 or 6 digit hex codes. Rather than duplicating that logic, I should either use gookit directly or match its exact parsing rules.\n\nNow I'm checking the gookit source to understand the exact behavior, and then I need to look at those three themes—`iterm2`, `poshmon`, and `powerlevel10k_modern`—where \"Monday\"/\"at\" text is invisible. That could be intentional (foreground matching background color) or another bug. Let me examine their time segment configurations to figure out what's happening.","signature":"CAISjAgKhwEIEBgCKkCMhyn2vH/kwmk9qC/vp85v1kpLbjoPOdRBkDVPZfyoyxjnzuDoBXZcYdm0VHiZHyARUoDYz2Uyl2YdHFnJ75MbMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDD0WPy7svgbLJ1YprBoMC5DIgx1B7Lx4XKBpIjDSRhpJrr3f+26TDBukHXFc8hK2gV6PAdXHsJSr1UmYijnrTWOtqZQwA1MqiTxXfugqsQZoVFl/FEIwpAfRObp0DzmM8hpzVQkI1gT68WnPFFMnYkgagVTO7ZcLbLUJfvuH9YL0Af9HAM02HDGmZpGtSL8pyqmj8YWyNyRMX2YCZqUxnT20LJvtAvHDetGEOCjAA2rj2XyGBbWSwYtDRB1EWYFavmUSn6Nzan41/7dHTi+40K6mTHE5E4JhLRboj1g/72QWcC2S1UaDJH1pfshVJ1UkWLi9nP73HHGLcOELC7nuTSgbXm9o1eFOx5C9iaJFHJhmiPMUR9qlW766/slXDGSvZ2BzgNINrxel7LoSSkNv+D3H+mrknScAIfOVAUtDIjDXn/I3ONup49/WmzDQKqnWmVLwt79WS9ePzyY9ikYqn6O4k5AYgS3NhGMgsSBZEIhebYTgtFJ62p3ecnWMj0X5DXg6h0zx5h+hfbFvf6KuhD0LiiXHFkM133RH8pMxv3WfNWDkIXegNXzymnkJqxBSs0DFAqcAN4hZxV0F+cFCIrfiXmHuAc3QXfmrUva2RZhJL1ocq69wbHXjyLxu9BrZp1eXth2ZxinkdFVPpmtUifUuvT3ihhSyEdrqKry0/c6gWZJgZClIi+sR6IXWB7ACBdwXO9nFToBfAHA5a7X+EFwUWXxZA7MexotPJIClAPYTcOxgyRUfk2NbAiV8y1Yj1MSdta3WZk6iO9BRBhOHCn9ZqnHUHzEgpINTh3nsfCUq1/W3j5G9cFkkUKS9OQ8vsteMOkhViNITI0yt7XzLvvu5dp65g3ilrHRd/5if13UHSiem1r6dIHH/hinKsiQkiL+HyLDOelq8n4cvJtcPLUTqxNQs5SFcmRpS4DbywG3p0hAFAB2SKoppycDkXRSh3nbjtXrkTgHGYvWj7x6SVwZ6isIi8Ta4WCadmEVNFMcwuM5yFW9uoY6zPZnsTA2er54fq5kVegkR4MU7d55GYLD3keRmPysTJYfV9hy4NBUdGM0S8V9EGVV7OZVnbJanK7wYeGPhCOGdYQDdHxs65DKjIMS4Yo/aOpTgA3lAFFopAdo2TzZnBcRE9NqMMPTua1Lxsnj/Hx9dgYn7bix3zsS78DCOc9ptdxOt07zTy9QPGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":474,"cache_read_input_tokens":163373,"output_tokens":518,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":474,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":518,"cache_read_input_tokens":163373,"cache_creation_input_tokens":474,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":474},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT11wQWjNqXrNLyQwGa1","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"87de719d-bb79-4337-aba2-131bee1906bb","timestamp":"2026-07-27T18:02:19.021Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"87de719d-bb79-4337-aba2-131bee1906bb","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT121dm5CK58BL9D4e2f","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01S15YN5prCv85E71hQgvoLh","name":"Bash","input":{"command":"grep -n -A12 '\"type\": \"time\"\\|type: time' themes/poshmon.omp.json themes/iterm2.omp.json themes/powerlevel10k_modern.omp.json 2>/dev/null | grep -i \"foreground\\|background\\|type\\|template\" | head -30","description":"Inspect time segments in three themes"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":474,"cache_read_input_tokens":163373,"output_tokens":518,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":474,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":518,"cache_read_input_tokens":163373,"cache_creation_input_tokens":474,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":474},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT11wQWjNqXrNLyQwGa1","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"0d5cee27-991d-42b8-8f4b-60f95d77f568","timestamp":"2026-07-27T18:02:19.148Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0d5cee27-991d-42b8-8f4b-60f95d77f568","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01S15YN5prCv85E71hQgvoLh","type":"tool_result","content":"themes/poshmon.omp.json:99: \"type\": \"time\"\nthemes/poshmon.omp.json-102- \"type\": \"prompt\"\nthemes/poshmon.omp.json-109- \"foreground\": \"#FFF\",\nthemes/poshmon.omp.json-110- \"foreground_templates\": [\nthemes/iterm2.omp.json:109: \"type\": \"time\"\nthemes/iterm2.omp.json-112- \"type\": \"prompt\"\nthemes/iterm2.omp.json-119- \"foreground\": \"#FFD700\",\nthemes/iterm2.omp.json-121- \"template\": \" \\u26a1 \",\nthemes/powerlevel10k_modern.omp.json:78: \"type\": \"time\"\nthemes/powerlevel10k_modern.omp.json-81- \"type\": \"prompt\"\nthemes/powerlevel10k_modern.omp.json-88- \"foreground\": \"#D4E157\",\nthemes/powerlevel10k_modern.omp.json-89- \"foreground_templates\": [","is_error":false}]},"uuid":"9be9487e-69ee-448c-98d2-e378b8dce55e","timestamp":"2026-07-27T18:02:20.247Z","toolUseResult":{"stdout":"themes/poshmon.omp.json:99: \"type\": \"time\"\nthemes/poshmon.omp.json-102- \"type\": \"prompt\"\nthemes/poshmon.omp.json-109- \"foreground\": \"#FFF\",\nthemes/poshmon.omp.json-110- \"foreground_templates\": [\nthemes/iterm2.omp.json:109: \"type\": \"time\"\nthemes/iterm2.omp.json-112- \"type\": \"prompt\"\nthemes/iterm2.omp.json-119- \"foreground\": \"#FFD700\",\nthemes/iterm2.omp.json-121- \"template\": \" \\u26a1 \",\nthemes/powerlevel10k_modern.omp.json:78: \"type\": \"time\"\nthemes/powerlevel10k_modern.omp.json-81- \"type\": \"prompt\"\nthemes/powerlevel10k_modern.omp.json-88- \"foreground\": \"#D4E157\",\nthemes/powerlevel10k_modern.omp.json-89- \"foreground_templates\": [","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"0d5cee27-991d-42b8-8f4b-60f95d77f568","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9be9487e-69ee-448c-98d2-e378b8dce55e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT12mH5v19hkP33eWF8N","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Qsgt5srsrmAFJQTiMcq72U","name":"Bash","input":{"command":"sed -n '88,100p' themes/poshmon.omp.json; echo \"--- iterm2 ---\"; sed -n '98,110p' themes/iterm2.omp.json; echo \"--- p10k modern ---\"; sed -n '68,80p' themes/powerlevel10k_modern.omp.json","description":"Read time segment definitions"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":856,"cache_read_input_tokens":163847,"output_tokens":176,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":856,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":176,"cache_read_input_tokens":163847,"cache_creation_input_tokens":856,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":856},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT12hd4wYqXC4ssYPiPn","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"de9d0999-0960-4629-955f-6ad387ff8630","timestamp":"2026-07-27T18:02:23.591Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"de9d0999-0960-4629-955f-6ad387ff8630","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Qsgt5srsrmAFJQTiMcq72U","type":"tool_result","content":" \"foreground\": \"#fff\",\n \"background_templates\": [\n \"{{ if gt .Code 0 }}#D51111{{ end }}\"\n ],\n \"leading_diamond\": \"\\ue0b6\",\n \"options\": {\n \"time_format\": \"_2, 15:04:05\"\n },\n \"style\": \"diamond\",\n \"template\": \" \\uf073 {{ .CurrentDate | date .Format }} \",\n \"trailing_diamond\": \"\\ue0b4\",\n \"type\": \"time\"\n }\n--- iterm2 ---\n \"style\": \"powerline\",\n \"template\": \" \\ue235 {{ .Venv }} \",\n \"type\": \"python\"\n },\n {\n \"background\": \"#003543\",\n \"foreground\": \"#fff\",\n \"invert_powerline\": true,\n \"powerline_symbol\": \"\\ue0b2\",\n \"style\": \"powerline\",\n \"template\": \"<#fff> \\ue641 {{ .CurrentDate | date .Format }} \",\n \"type\": \"time\"\n }\n--- p10k modern ---\n {\n \"background\": \"#ffffff\",\n \"foreground\": \"#000000\",\n \"leading_diamond\": \"\\ue0b6\",\n \"options\": {\n \"time_format\": \"15:04:05\"\n },\n \"style\": \"diamond\",\n \"template\": \" {{ .CurrentDate | date .Format }} \",\n \"trailing_diamond\": \"\\ue0b4\",\n \"type\": \"time\"\n }\n ],","is_error":false}]},"uuid":"b3769c57-f37d-4be0-8327-b83793e8cc23","timestamp":"2026-07-27T18:02:24.940Z","toolUseResult":{"stdout":" \"foreground\": \"#fff\",\n \"background_templates\": [\n \"{{ if gt .Code 0 }}#D51111{{ end }}\"\n ],\n \"leading_diamond\": \"\\ue0b6\",\n \"options\": {\n \"time_format\": \"_2, 15:04:05\"\n },\n \"style\": \"diamond\",\n \"template\": \" \\uf073 {{ .CurrentDate | date .Format }} \",\n \"trailing_diamond\": \"\\ue0b4\",\n \"type\": \"time\"\n }\n--- iterm2 ---\n \"style\": \"powerline\",\n \"template\": \" \\ue235 {{ .Venv }} \",\n \"type\": \"python\"\n },\n {\n \"background\": \"#003543\",\n \"foreground\": \"#fff\",\n \"invert_powerline\": true,\n \"powerline_symbol\": \"\\ue0b2\",\n \"style\": \"powerline\",\n \"template\": \"<#fff> \\ue641 {{ .CurrentDate | date .Format }} \",\n \"type\": \"time\"\n }\n--- p10k modern ---\n {\n \"background\": \"#ffffff\",\n \"foreground\": \"#000000\",\n \"leading_diamond\": \"\\ue0b6\",\n \"options\": {\n \"time_format\": \"15:04:05\"\n },\n \"style\": \"diamond\",\n \"template\": \" {{ .CurrentDate | date .Format }} \",\n \"trailing_diamond\": \"\\ue0b4\",\n \"type\": \"time\"\n }\n ],","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"de9d0999-0960-4629-955f-6ad387ff8630","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b3769c57-f37d-4be0-8327-b83793e8cc23","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT136qa6NEBz3CaDwWnX","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Looking at the color format issues across these tools — poshmon and iterm2 both have the same 3-digit hex bug, while powerlevel10k_modern uses proper 6-digit values but the scan is picking up something odd with the \"at\" fragment that seems to be part of a date formatting template rather than an actual color value.","signature":"CAISowgKhwEIEBgCKkCo9OwvUGMJQy2ht2nzQiBnUqog2+AkIJpea1UQx0XGCzn9VAWfL3P26XwnC2iNHYUmZUd/jPgQUdYCqlUMaaDUMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDA91drY1d6rgqKi5WhoMUc68l3xG5cO7f8coIjAhHvJYD5HG6D65iVppqKdd1hmSwp8HRcyBUNnI7wRUTVAZA8CW6eFpVbp/gAeEQ1sqyAZM0FWh7ajnPBV+17kgd9efhlND8kVD/yXvCucVYennO6TjFd3dcY1gfXo+NdSIuHSNv+uY/FEILJkR+V3kP0GZS/8IbKE01fH6JA9mji38CCVdX85GrwoAnBBcRKbnKluQ3bGAp2gISemkiRTXhF4tTYXKSutzGBHhm3x+OLjNe7cBBnn2JWSo/kT25DJcD3/wM/cFWlhpOAj/Ey8x7Jpww05JcvjaUeaL0NpUleiQ/xeLuTks9qLnSKeSX4xUl27x1HSuFLwL3QPvde9haMik9umxyO56Ej2cphG4HPhM38JhkN7+fBDd6y+pTsI1qjS33VPqfRcklxY8CUo1ZaMCAojL+i4mrSEBGHGpUUkwVIRsOGvUN4T4ijH3AW0FPY0tXlKdqZp6aN3okQyQM3IKiIedESRWdWVIkHNdifa/yvvgjeal3WsOw2TwCbZA8/N6Y8UGLFiX+k0c0Wik6Nn2bDDeHGHDv01A2Tn1VUyT231xyW3AxTuymgjGheH12AQGJk8tajSHqwfXQnt/UvslWLDJVL7+BsrrvMKVXqFAeID8MsJl5WKNgnEWe3v+Nm0Rnork0TivpoOIjkkle7bmifPc0Fq47Tk/SfRuVL7EOPbs5O9+16kGlqEHhLOXahDRNePGlvjAb6Ey8qHLTEW9JfzRqam1YD/N5HXNDpzeNIwyHNRth10TjNGbiE81x0iOeb2Zv5mIKikAkUo3Cpcv/I6QhTtoSjzCsSV2Q68yCc0LjIVeTGaebFhve0Hvh8zwxBDNo780e54GGkt1WTiWvkXKZMrL2BMrGZJEhxutVCWE72p8irpQs0xrN3M/tkF4OBgIsn2Yzyljh2zQN37h2GmfS/3wddWL92w6jhksTjMQdGY6Yd+QcbGFpBFA6QC6lZZy/sPSZ7QGzZ6lxGsGthxNlAXo70X7XeQX3OYUpkIl3YfLJDjR2pD6AmlXkgVs8Uj3R0qvq6M4W6LZBNbBfYafrNOOHvfEVZaO6DOr5XygIiRk75HwxPW562eRLmQAV+9Z0yUcMJ1gGhSP096zymOvQb6DvGBAIP9HyQWar9FB2zfkRwY73kf7DjprNw/lp1GsU5twdCes1xd2qIpGavepi4Me/FIYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":662,"cache_read_input_tokens":164703,"output_tokens":490,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":662,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":490,"cache_read_input_tokens":164703,"cache_creation_input_tokens":662,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":662},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT133nWuUgXV4QWa9HdW","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"0f5cb2e2-dad9-4614-aa06-b650179dc856","timestamp":"2026-07-27T18:02:31.895Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0f5cb2e2-dad9-4614-aa06-b650179dc856","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT136qa6NEBz3CaDwWnX","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Uvg98BtUu1c14vzeLM4Z1r","name":"Bash","input":{"command":"grep -n \">at<\\|Monday\\|8:08\" \"$TMPDIR/allsvg/powerlevel10k_modern.svg\"","description":"Inspect p10k modern time runs"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":662,"cache_read_input_tokens":164703,"output_tokens":490,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":662,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":490,"cache_read_input_tokens":164703,"cache_creation_input_tokens":662,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":662},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT133nWuUgXV4QWa9HdW","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"39b6c864-c6b1-44c8-82ed-bc3241f34c97","timestamp":"2026-07-27T18:02:32.299Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"39b6c864-c6b1-44c8-82ed-bc3241f34c97","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Uvg98BtUu1c14vzeLM4Z1r","type":"tool_result","content":"29: Monday \n31:at\n33: 8:08 AM ","is_error":false}]},"uuid":"dd29434e-f1e5-47b8-b6e1-4da09efe3379","timestamp":"2026-07-27T18:02:37.864Z","toolUseResult":{"stdout":"29: Monday \n31:at\n33: 8:08 AM ","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"39b6c864-c6b1-44c8-82ed-bc3241f34c97","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dd29434e-f1e5-47b8-b6e1-4da09efe3379","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT145M4FJK4mYL8c6kHp","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm noticing the \"at\" text is rendered in white while the surrounding date parts are black, which suggests an SGR color change happened around that word. The fixture must be providing a pre-rendered date string rather than using the template format, so I'm trying to figure out why that specific word would get a different color treatment.","signature":"CAISgwgKhwEIEBgCKkBUhwRkq1e3iw4f+QlSL4+1axUfjFeq1RN+QM/HYeOzr5UyI6kinunGmMrCTYXuZbhtXA44pB8tMmPMWfaV4N62Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDH0k1eOSwfCknAkO3BoMCVxEY5Uf5OT3WglNIjCGQyHYR0yNoU5plGHzQEkUQKe5mZptw2zTaId+Q6vRbS11ioWFuMkuuql9Yf/Mo0MqqAacbByDaG/zTTFl1WejyjT+l1avMsPgw67zcIYOolbJ60kNurIXZmQsB4nXhvHm18oCG9cPFYvSYrDc7tdnSakm934/JCrAhrfy5tMPqgxuik3UBdjW331tGxE4GiRPAtj9N0l9n2Sp0gXUGM8WzkfAnlM3VxlGWb2GwqTCOU9BsrY9xwrIKoxzWr1ibrqmBmuQ0JdGqDsJlM4DtUAV2ifGSjz2HK4RrLXIU5mA2qKVX+wswuRckH+hqpbHTiXYNRiMnSQ0rLoH32m5Z4FPjs1UosO+INwpzEROpoIMhIKrvyKi23gDmPAsnpEQl+eRshokawXaQRtGBtCjsYmH0itkuzVE8Wrea79eq6+pdMc+Cas+Ei8fDJ3x9rWd4AG4Zn6xNPY5HM+7nfot7cMDmMHGpsnk30pMdizxwv0O8pRlmgr5stw73ke2HWwwf2m4blRvM2FUsiNiUUvJ1iPl2XJdFh3HqgJ5XCVSn5n1GUcsNOkrTo8tGALP2G4H7Xzt/A+O/df9Ry6Q9gFMyQ4+ZaP1USdHNrZlMW3+csNWXg6Ah0BOhoz9mdlBlta911UZyDh2j4rIXpBptHrgDI8ow141LdArv0L01WbJds4ZMm7RcRb0PquL3leiGqcFgxybJP1/d37ebwLV3Jqkoid6KmJajttcPZTkchnwDEwsyLzqRibJL9L8DoySUb/zLymiUWVuf0OTkae2Yyw7uFWKXHKerfNSKlfS9bQC8T2dYEJV2x3Hx5coxaVXRUidDnxbyeW8ujQv4nclzI9b77SnlfkmmbL6aZXN8aD7GImjnwGY71b8x8UHbAkWuuegS0PocaDof72AoELBg7pgBE5ooh7NWEnJ66a7PztJZS7BRwhgTa9zEaE6dz3n+cQiPO+WY9jxMYeKm1lHIkI6BH8PXKL6r+UjrMBkvFNO1LokKyfBeuxGN41Wb4psjsDRg/p7TsiaZs/UVoeeOk6naoGiMp06XcTcHWr1dMlfN5wyYTeZQLdBXc6LbaAI7Ql2h4PEa6iUIKwezZInk/ochmLlOjaYze/VlwtxjO/snjOGlbR2xPFPJSpBWZaPGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":674,"cache_read_input_tokens":165365,"output_tokens":603,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":674,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":603,"cache_read_input_tokens":165365,"cache_creation_input_tokens":674,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":674},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT141pUUTaGqw5TcDSDs","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"7c7d34bc-f379-4fe1-8fee-70a386c065ca","timestamp":"2026-07-27T18:02:45.890Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7c7d34bc-f379-4fe1-8fee-70a386c065ca","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT145M4FJK4mYL8c6kHp","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_015LonfcHkKbkpYKqPWV6wmj","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; \"$TMPDIR/omp.exe\" print primary --config themes/powerlevel10k_modern.omp.json --data src/prompt/testdata/fixtures/prompt.data.json --shell generic > \"$SP/p10k.ansi\" 2>/dev/null; python \"$SP/ansidump.py\" \"$SP/p10k.ansi\" 2000 | tr -d '\\n' | grep -o \"Monday.\\{0,90\\}\"","description":"Inspect p10k modern ANSI around the time segment"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":674,"cache_read_input_tokens":165365,"output_tokens":603,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":674,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":603,"cache_read_input_tokens":165365,"cache_creation_input_tokens":674,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":674},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT141pUUTaGqw5TcDSDs","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"9b1842dd-22bb-4834-83aa-95a9db872b21","timestamp":"2026-07-27T18:02:49.454Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9b1842dd-22bb-4834-83aa-95a9db872b21","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_015LonfcHkKbkpYKqPWV6wmj","type":"tool_result","content":"Monday ESC[38;2;255;255;255matESC[38;2;0;0;0m 8:08 AM ESC[0mESC[38;2;255;255;255mESC[0m\rESC[38;","is_error":false}]},"uuid":"b42c0180-f8f3-45be-9228-9a3ada029222","timestamp":"2026-07-27T18:02:55.778Z","toolUseResult":{"stdout":"Monday ESC[38;2;255;255;255matESC[38;2;0;0;0m 8:08 AM ESC[0mESC[38;2;255;255;255mESC[0m\rESC[38;","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"9b1842dd-22bb-4834-83aa-95a9db872b21","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b42c0180-f8f3-45be-9228-9a3ada029222","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT15NsXs6KGpr1RByeBV","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The white text rendering issue isn't actually an SVG problem—it's coming from the fixture data itself. The recorded date string must contain embedded color codes, so when the template renders \"at\" with a white color anchor, it becomes invisible against the white background. I need to check how the `CurrentDate` value is being stored and formatted in the fixture.\n\nFor the cert and other themes, though, there's a real SVG bug: they're using 3-digit hex codes like `#fff` instead of the proper 6-digit format, which is causing the background to render incorrectly. Let me scan through all the theme configs to find any other instances of malformed hex colors.","signature":"CAIStQkKhwEIEBgCKkBjY4n8wop6pwIcBDhfcThtMS1343x/HSwJ3PZZsExpVVbhiRqsGPZbCFVm5xMXNxvcVzWy9bTzvIz5aeAhYUstMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDOnI85P5IlSqlEtmsRoMoG2ZvGf2XNNGVauHIjBml0xo/DzMhsPnlg+Vy7zEDMp8rX7ZqbHw8/22oQsYgOTSV8+1GE3W/UtiBqAez0cq2gcmC0uArlLQsIb1SGUshkvK4vEMntYHOI4rq8k8rzLVK+6n+3TbkRwKD8TZtq2Rg2HOZn+YYJD75tom7/+Ryir1cV2AXdocEaWgrnbcvzdENvsnNWf5cBCk7yJwFrZmZiuhmM4DvOxW6zbhotQl6Vu2Z0nBZLmU9fdKqVCBFvZScma8H/dSt6TGlKaH8jV943DYvj3tCnCuaZy4EM1iUhFM5iP2nYEk11b6pMIHj50qAuLQdm5J+dhe/0p32K6d0iUyuQEa9JB5r8IzW4QpqMCy7ogGFzJsYMTjpC0Jxmqy9OKtlYiNdtfl8h+k1uenEi4NwEOj6Gcjdhm20Crgn7hrCJvZ5zw7u7aT3fDO5Tk3cVw8LiVNsX/l/FWukfXxNeeXBpVnCFU8O/LGTa1bDn4lLm0OFvpuLExbwf4XJiVnIQEVli54z7Ds5oTJVpDuTpkSPG996JNuZ15w/eaQ4bSHEhsc7PH9afe67in0zerUJjlQao2SLRGASEHWSFGzYpNFN6CF+jYmBWAB9erKyjNwFWa4KIGiBGGCDutNFIjUCQs7riBjGzeuIxIr2rPFc316P4W2w/fT4r2U9UmvS0bbLJ7WABA8y/68Ykcb4DreOv8VTv2vdF8PaEtX34nx0P+BoOfv3cVSJGZr/nJGjTTgSCwdDGKOyKwF/isZYW6E300yGsZ4b1ExuPVCFfiVTtMsEDdp2KCp5Yl2VcgQ3BINHUKj96a7r6AYqA9pONdVlSVvaWYTbNkFOhAWJBfZVR6rOOl5VghmuMuCyI7dWJxFJxks/PYZPNxiuiNE+upmrx74xyY863YLtZoxr1gtrz4Wn6H9D4bqvP5sryTd1oMhQwAZT4hkBJ7kCIp8RQMyIxkqxw5Vv+vcKoOp5e08cPfQwCMymLmwLTbUjLajjRXfL0dWXAP/UtN/qgp/bOdiLWgbxInst/zyrMCeglKPlErZ0Hw3frE+pW2tlWG3BSLr48auVOL1h8g9PFU0pLgkkMPE18pzQ5mJ3dDeL8CoUTjmjOw2fg4FYgPAt2Im7wICBvhT4u891hbLbfRrM7d7zWb5N7nMIyQsicTdbzWZG+zY19twETFod655z8ntmgpCKI1PzwwxRXJH+kehXffctXOyJ+YX27Zz8L1xYtWYMqg+rjQHvU1Pe7ByjKKTfXa72uGxIOXkAir5/wNGjeyfayTHmhJFnCiOur1BXS6WkUWsBsiqutStzpKUEqrJzMUStlUHKf8xPABQHuk/j3OR01j3Refzmwy1BpnEd89bpaLhA9jNydkfStp6URKhtZpgHTKY1z2lCf9QPBgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":674,"cache_read_input_tokens":166039,"output_tokens":879,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":674,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":879,"cache_read_input_tokens":166039,"cache_creation_input_tokens":674,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":674},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT15KdKYC8veos9XzLjX","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"7f882a3b-a38e-41b7-9708-80ac10bae6b7","timestamp":"2026-07-27T18:03:05.011Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7f882a3b-a38e-41b7-9708-80ac10bae6b7","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT15NsXs6KGpr1RByeBV","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01B2aMjCpXJcS9UGchRbKaBw","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\hexforms.py","content":"\"\"\"Inventory every #hex colour literal used across the bundled themes, grouped\nby digit count, so the SVG hex parser can be held to the same set the ANSI\nwriter already accepts.\"\"\"\nimport collections\nimport glob\nimport os\nimport re\nimport sys\n\nHEX = re.compile(r\"#([0-9A-Fa-f]{1,8})\\b\")\n\nforms = collections.defaultdict(set)\nfiles = collections.defaultdict(set)\n\nfor path in glob.glob(os.path.join(sys.argv[1], \"*.omp.*\")):\n text = open(path, encoding=\"utf-8\").read()\n\n for value in HEX.findall(text):\n forms[len(value)].add(\"#\" + value)\n files[len(value)].add(os.path.basename(path))\n\nfor length in sorted(forms):\n print(f\"{length}-digit: {len(forms[length])} distinct, {len(files[length])} theme(s)\")\n\n if length != 6:\n print(\" values:\", \", \".join(sorted(forms[length])))\n print(\" themes:\", \", \".join(sorted(files[length])))\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":674,"cache_read_input_tokens":166039,"output_tokens":879,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":674,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":879,"cache_read_input_tokens":166039,"cache_creation_input_tokens":674,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":674},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT15KdKYC8veos9XzLjX","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"f0ac10f7-1d21-4afa-b3b1-2eef75080841","timestamp":"2026-07-27T18:03:08.727Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f0ac10f7-1d21-4afa-b3b1-2eef75080841","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01B2aMjCpXJcS9UGchRbKaBw","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\hexforms.py (file state is current in your context — no need to Read it back)"}]},"uuid":"1fe67402-5550-4cb4-821b-5fa3bcbfb298","timestamp":"2026-07-27T18:03:08.914Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\hexforms.py","content":"\"\"\"Inventory every #hex colour literal used across the bundled themes, grouped\nby digit count, so the SVG hex parser can be held to the same set the ANSI\nwriter already accepts.\"\"\"\nimport collections\nimport glob\nimport os\nimport re\nimport sys\n\nHEX = re.compile(r\"#([0-9A-Fa-f]{1,8})\\b\")\n\nforms = collections.defaultdict(set)\nfiles = collections.defaultdict(set)\n\nfor path in glob.glob(os.path.join(sys.argv[1], \"*.omp.*\")):\n text = open(path, encoding=\"utf-8\").read()\n\n for value in HEX.findall(text):\n forms[len(value)].add(\"#\" + value)\n files[len(value)].add(os.path.basename(path))\n\nfor length in sorted(forms):\n print(f\"{length}-digit: {len(forms[length])} distinct, {len(files[length])} theme(s)\")\n\n if length != 6:\n print(\" values:\", \", \".join(sorted(forms[length])))\n print(\" themes:\", \", \".join(sorted(files[length])))\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"f0ac10f7-1d21-4afa-b3b1-2eef75080841","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1fe67402-5550-4cb4-821b-5fa3bcbfb298","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT16L77nw1ZjjN3pMw5F","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01NBNjFqWGTEgwuAe4qY36YR","name":"Bash","input":{"command":"python \"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/hexforms.py\" /d/oh-my-posh/themes","description":"Inventory hex colour forms across themes"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":982,"cache_read_input_tokens":166713,"output_tokens":169,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":982,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":169,"cache_read_input_tokens":166713,"cache_creation_input_tokens":982,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":982},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT16HpD2spnu6P6kfmm3","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"1222bd9e-eeea-4bce-9c2e-40a7d253b326","timestamp":"2026-07-27T18:03:11.979Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1222bd9e-eeea-4bce-9c2e-40a7d253b326","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01NBNjFqWGTEgwuAe4qY36YR","type":"tool_result","content":"3-digit: 3 distinct, 6 theme(s)\r\n values: #000, #FFF, #fff\r\n themes: cert.omp.json, iterm2.omp.json, montys.omp.json, poshmon.omp.json, uew.omp.json, unicorn.omp.json\r\n6-digit: 651 distinct, 121 theme(s)","is_error":false}]},"uuid":"001b88f5-708a-4643-a70b-10589c1150c5","timestamp":"2026-07-27T18:03:16.289Z","toolUseResult":{"stdout":"3-digit: 3 distinct, 6 theme(s)\r\n values: #000, #FFF, #fff\r\n themes: cert.omp.json, iterm2.omp.json, montys.omp.json, poshmon.omp.json, uew.omp.json, unicorn.omp.json\r\n6-digit: 651 distinct, 121 theme(s)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"1222bd9e-eeea-4bce-9c2e-40a7d253b326","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"001b88f5-708a-4643-a70b-10589c1150c5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT16sKLXXx2Qoeb3vDZf","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I found that six themes are using 3-digit hex codes, and my scanner only caught three invisible color issues because the shorthand notation can coincidentally render correctly when foreground and background differ, or when used as a background itself. I need to verify whether gookit's HEX parser accepts 3-digit hex and other formats like `0x` prefixes by checking the module cache. Now I'm working through the root causes systematically, starting with how spaces collapse in the parsing logic.\n\nThe SVG `white-space=\"pre\"` attribute isn't being honored by Chrome or Firefox when applied to SVG text elements, even though it's technically an SVG 2 presentation attribute. This causes XML whitespace processing to collapse consecutive spaces and strip leading/trailing whitespace from each text run. When combined with `textLength` and `lengthAdjust=\"spacingAndGlyphs\"`, the remaining glyphs stretch across the full width, which also distorts the checkmark and separator glyphs. I should verify this mechanism directly with a quick Playwright test to measure rendered text with and without `xml:space=\"preserve\"` to confirm the behavior.\n\nThe second bug with `invert_powerline` separator isn't an SVG issue — it's that the ANSI writer emits background as previous color and foreground as next color, while the old PNG renderer handled this differently.\n\nFor the third bug, `hexToRGB` in `svg/colors.go` requires exactly 6 hex digits, so shorthand colors like `#fff` and `#000` fail to parse and the renderer keeps the previously active color, leaving text invisible in diamond themes.\n\nThe fourth bug places the cursor after the right-aligned block instead of after the primary prompt content. The gap run that pads to the right block is just spaces with no colors, so I can detect where the primary prompt ends by finding the first trailing gap region and inserting the cursor before it.\n\nBut that's heuristic — the cleaner approach is to have the Engine itself record where the primary prompt boundary is, since it knows the semantics: the cursor should sit right after the last left-aligned content on the final row, matching how a real terminal renders the rprompt first then returns the cursor to after the primary prompt.\n\nOption (b) seems right: have the Engine capture the cursor position as `promptEndCells` — the cell column immediately after the primary prompt — and pass that to decorate so it can insert at the correct spot. I need to trace through `engine.go` to find where the primary prompt and right-block paths converge, and check how `appendCapturedRuns` is called to see where this hook would fit naturally.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":288,"cache_read_input_tokens":167695,"output_tokens":1540,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":288,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1540,"cache_read_input_tokens":167695,"cache_creation_input_tokens":288,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":288},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT16qSDutBgtT34JtppL","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"f772fd7a-d1ea-4504-9bcb-33aded02e8f1","timestamp":"2026-07-27T18:03:41.140Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f772fd7a-d1ea-4504-9bcb-33aded02e8f1","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT16sKLXXx2Qoeb3vDZf","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01G3PtG9F4YWb4bcrQMT3mjA","name":"Bash","input":{"command":"grep -n \"appendCapturedRuns\\|newCapturedRow\\|captureBlockRuns\\|captureFillerRuns\\|fillerCaptureRuns\\|startRunCapture\" src/prompt/*.go | grep -v runs.go","description":"Find run capture call sites"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":288,"cache_read_input_tokens":167695,"output_tokens":1540,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":288,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1540,"cache_read_input_tokens":167695,"cache_creation_input_tokens":288,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":288},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT16qSDutBgtT34JtppL","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"7c08600f-c85c-4513-b32c-8ce14fcf89fb","timestamp":"2026-07-27T18:03:41.145Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7c08600f-c85c-4513-b32c-8ce14fcf89fb","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01G3PtG9F4YWb4bcrQMT3mjA","type":"tool_result","content":"src/prompt/engine.go:179:\te.newCapturedRow()\nsrc/prompt/engine.go:224:\t// captureFillerRuns must run before terminal.String(): see\nsrc/prompt/engine.go:227:\te.captureFillerRuns()\nsrc/prompt/engine.go:285:\t\t\te.appendCapturedRuns(nil, e.pendingBlockRuns)\nsrc/prompt/engine.go:307:\t\t\t\t\te.appendCapturedRuns(e.fillerCaptureRuns(fillLength), nil)\nsrc/prompt/engine.go:324:\t\t\te.appendCapturedRuns(e.fillerCaptureRuns(space), e.pendingBlockRuns)\nsrc/prompt/engine.go:333:\t\te.appendCapturedRuns(gapRun(space), e.pendingBlockRuns)\nsrc/prompt/engine.go:383:\t// captureBlockRuns must run before terminal.String(): see\nsrc/prompt/engine.go:386:\te.captureBlockRuns()\nsrc/prompt/primary.go:18:\te.startRunCapture()\nsrc/prompt/primary.go:187:\te.appendCapturedRuns(gapRun(space), e.rpromptRuns)\nsrc/prompt/runs_test.go:56:\te.startRunCapture()\nsrc/prompt/runs_test.go:59:\te.captureBlockRuns()\nsrc/prompt/runs_test.go:62:\te.appendCapturedRuns(gapRun(2), []terminal.Run{{Text: \"x\", Cells: 1}})\nsrc/prompt/runs_test.go:65:\te.newCapturedRow()\nsrc/prompt/runs_test.go:70:// directly (startRunCapture/appendCapturedRuns/newCapturedRow), independent\nsrc/prompt/runs_test.go:73:// row, and newCapturedRow starts a fresh one.\nsrc/prompt/runs_test.go:79:\te.startRunCapture()\nsrc/prompt/runs_test.go:82:\te.appendCapturedRuns(nil, []terminal.Run{{Text: \"AB\", Cells: 2}})\nsrc/prompt/runs_test.go:83:\te.appendCapturedRuns(gapRun(3), []terminal.Run{{Text: \"R\", Cells: 1}})\nsrc/prompt/runs_test.go:92:\te.newCapturedRow()\nsrc/prompt/runs_test.go:93:\te.appendCapturedRuns(nil, []terminal.Run{{Text: \"CD\", Cells: 2}})\nsrc/prompt/runs_test.go:99:// TestFillerCaptureRuns pins fillerCaptureRuns' repeat math against\nsrc/prompt/runs_test.go:135:\t\t\truns := e.fillerCaptureRuns(tc.PadLength)\nsrc/prompt/segments.go:82:\t// captureBlockRuns must run before terminal.String(): String's own defer\nsrc/prompt/segments.go:86:\te.captureBlockRuns()","is_error":false}]},"uuid":"d8954cad-3d0f-4409-afc1-06467ff308d3","timestamp":"2026-07-27T18:03:42.416Z","toolUseResult":{"stdout":"src/prompt/engine.go:179:\te.newCapturedRow()\nsrc/prompt/engine.go:224:\t// captureFillerRuns must run before terminal.String(): see\nsrc/prompt/engine.go:227:\te.captureFillerRuns()\nsrc/prompt/engine.go:285:\t\t\te.appendCapturedRuns(nil, e.pendingBlockRuns)\nsrc/prompt/engine.go:307:\t\t\t\t\te.appendCapturedRuns(e.fillerCaptureRuns(fillLength), nil)\nsrc/prompt/engine.go:324:\t\t\te.appendCapturedRuns(e.fillerCaptureRuns(space), e.pendingBlockRuns)\nsrc/prompt/engine.go:333:\t\te.appendCapturedRuns(gapRun(space), e.pendingBlockRuns)\nsrc/prompt/engine.go:383:\t// captureBlockRuns must run before terminal.String(): see\nsrc/prompt/engine.go:386:\te.captureBlockRuns()\nsrc/prompt/primary.go:18:\te.startRunCapture()\nsrc/prompt/primary.go:187:\te.appendCapturedRuns(gapRun(space), e.rpromptRuns)\nsrc/prompt/runs_test.go:56:\te.startRunCapture()\nsrc/prompt/runs_test.go:59:\te.captureBlockRuns()\nsrc/prompt/runs_test.go:62:\te.appendCapturedRuns(gapRun(2), []terminal.Run{{Text: \"x\", Cells: 1}})\nsrc/prompt/runs_test.go:65:\te.newCapturedRow()\nsrc/prompt/runs_test.go:70:// directly (startRunCapture/appendCapturedRuns/newCapturedRow), independent\nsrc/prompt/runs_test.go:73:// row, and newCapturedRow starts a fresh one.\nsrc/prompt/runs_test.go:79:\te.startRunCapture()\nsrc/prompt/runs_test.go:82:\te.appendCapturedRuns(nil, []terminal.Run{{Text: \"AB\", Cells: 2}})\nsrc/prompt/runs_test.go:83:\te.appendCapturedRuns(gapRun(3), []terminal.Run{{Text: \"R\", Cells: 1}})\nsrc/prompt/runs_test.go:92:\te.newCapturedRow()\nsrc/prompt/runs_test.go:93:\te.appendCapturedRuns(nil, []terminal.Run{{Text: \"CD\", Cells: 2}})\nsrc/prompt/runs_test.go:99:// TestFillerCaptureRuns pins fillerCaptureRuns' repeat math against\nsrc/prompt/runs_test.go:135:\t\t\truns := e.fillerCaptureRuns(tc.PadLength)\nsrc/prompt/segments.go:82:\t// captureBlockRuns must run before terminal.String(): String's own defer\nsrc/prompt/segments.go:86:\te.captureBlockRuns()","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"7c08600f-c85c-4513-b32c-8ce14fcf89fb","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d8954cad-3d0f-4409-afc1-06467ff308d3","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT18qEPBCfiR3UtRZg72","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01RpyDVfHSZGvNgFStv8b3cz","name":"Bash","input":{"command":"sed -n '160,200p' src/prompt/primary.go","description":"Read rprompt append in primary.go"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2548,"cache_read_input_tokens":167983,"output_tokens":98,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2548,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":98,"cache_read_input_tokens":167983,"cache_creation_input_tokens":2548,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2548},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT18mb6pcRK8FV6vHehY","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"66e39857-058e-4b64-940c-9ab8481d42ab","timestamp":"2026-07-27T18:03:45.454Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"66e39857-058e-4b64-940c-9ab8481d42ab","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01RpyDVfHSZGvNgFStv8b3cz","type":"tool_result","content":"\te.pwd()\n}\n\nfunc (e *Engine) needsPrimaryRightPrompt() bool {\n\tif e.Env.Flags().Debug {\n\t\treturn true\n\t}\n\n\tswitch e.Env.Shell() {\n\tcase shell.PWSH, shell.GENERIC, shell.ZSH:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (e *Engine) writePrimaryRightPrompt() {\n\tspace, OK := e.canWriteRightBlock(e.rpromptLength, true)\n\tif !OK {\n\t\treturn\n\t}\n\n\te.write(terminal.SaveCursorPosition())\n\te.write(strings.Repeat(\" \", space))\n\te.write(e.rprompt)\n\te.write(terminal.RestoreCursorPosition())\n\te.appendCapturedRuns(gapRun(space), e.rpromptRuns)\n}","is_error":false}]},"uuid":"40b03ebd-dcbc-4752-b5f0-f2870f03e79b","timestamp":"2026-07-27T18:03:46.489Z","toolUseResult":{"stdout":"\te.pwd()\n}\n\nfunc (e *Engine) needsPrimaryRightPrompt() bool {\n\tif e.Env.Flags().Debug {\n\t\treturn true\n\t}\n\n\tswitch e.Env.Shell() {\n\tcase shell.PWSH, shell.GENERIC, shell.ZSH:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (e *Engine) writePrimaryRightPrompt() {\n\tspace, OK := e.canWriteRightBlock(e.rpromptLength, true)\n\tif !OK {\n\t\treturn\n\t}\n\n\te.write(terminal.SaveCursorPosition())\n\te.write(strings.Repeat(\" \", space))\n\te.write(e.rprompt)\n\te.write(terminal.RestoreCursorPosition())\n\te.appendCapturedRuns(gapRun(space), e.rpromptRuns)\n}","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"66e39857-058e-4b64-940c-9ab8481d42ab","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"40b03ebd-dcbc-4752-b5f0-f2870f03e79b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1986Pupv9RsTbf6xVg","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I found the issue — `writePrimaryRightPrompt` is where the cursor position gets saved and restored around the right prompt. The fix is to capture the cursor row and column in `appendCapturedRuns` before the gap and right prompt are added, so the Run stream records the actual cursor position at that point.\n\nThen I can export this as a method like `Engine.CursorPosition()` that returns the row and column, and have `svg.decorate` insert the cursor run at that exact position instead of just appending it to the end. The tricky part is that inserting mid-row means either splitting runs or overwriting cells in the gap, and the row's run slice gets mutated later by `fitRow` during the encoding phase, which could invalidate any recorded index. The cleanest approach is probably to have the engine itself place the cursor as an actual Run in the stream at the right location, but that blurs the line since the cursor is really an exporter decoration, not part of the prompt itself.\n\nThe most robust solution is to do the decoration *before* fitting — so `fitRows(decorate(rows), columns)` instead of the other way around. This way the cursor gets inserted at a known run index right after the primary block's runs, and fitting treats it like any other content. Inserting the cursor at the end of the primary prompt grows the row by one cell, which could push it over the column limit and trigger gap collapse — which is actually the right behavior since a real terminal would do the same thing. So the engine records the cursor row and the run-index boundary where the captured runs end, and decoration happens before fitting takes over.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":392,"cache_read_input_tokens":170531,"output_tokens":1298,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":392,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1298,"cache_read_input_tokens":170531,"cache_creation_input_tokens":392,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":392},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT194Lv54db19c7YTWr2","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"b60720c6-e9f1-4457-ba3a-12f306ca9bc9","timestamp":"2026-07-27T18:04:06.112Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b60720c6-e9f1-4457-ba3a-12f306ca9bc9","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1986Pupv9RsTbf6xVg","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01NuAscqCuADqoZTbit87AeJ","name":"Read","input":{"file_path":"D:\\oh-my-posh\\src\\prompt\\primary.go","offset":1,"limit":120},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":392,"cache_read_input_tokens":170531,"output_tokens":1298,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":392,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1298,"cache_read_input_tokens":170531,"cache_creation_input_tokens":392,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":392},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT194Lv54db19c7YTWr2","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"e92128ca-3dcc-4ee1-a6e9-32f2386f68ae","timestamp":"2026-07-27T18:04:06.796Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e92128ca-3dcc-4ee1-a6e9-32f2386f68ae","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01NuAscqCuADqoZTbit87AeJ","type":"tool_result","content":"1\tpackage prompt\n2\t\n3\timport (\n4\t\t\"fmt\"\n5\t\t\"strings\"\n6\t\n7\t\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n8\t\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n9\t\t\"github.com/jandedobbeleer/oh-my-posh/src/shell\"\n10\t\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n11\t)\n12\t\n13\tfunc (e *Engine) Primary() string {\n14\t\treturn e.primaryInternal(false)\n15\t}\n16\t\n17\tfunc (e *Engine) primaryInternal(fromCache bool) string {\n18\t\te.startRunCapture()\n19\t\n20\t\tneedsPrimaryRightPrompt := e.needsPrimaryRightPrompt()\n21\t\n22\t\te.writePrimaryPromptInternal(needsPrimaryRightPrompt, fromCache)\n23\t\n24\t\tswitch e.Env.Shell() {\n25\t\tcase shell.ZSH:\n26\t\t\tif !e.Env.Flags().Eval {\n27\t\t\t\tbreak\n28\t\t\t}\n29\t\n30\t\t\t// Warp doesn't support RPROMPT so we need to write it manually\n31\t\t\tif e.isWarp() {\n32\t\t\t\te.writePrimaryRightPrompt()\n33\t\t\t\tprompt := fmt.Sprintf(\"PS1=%s\", shell.QuotePosixStr(e.string()))\n34\t\t\t\treturn prompt\n35\t\t\t}\n36\t\n37\t\t\tprompt := fmt.Sprintf(\"PS1=%s\", shell.QuotePosixStr(e.string()))\n38\t\t\tprompt += fmt.Sprintf(\"\\nRPROMPT=%s\", shell.QuotePosixStr(e.rprompt))\n39\t\n40\t\t\treturn prompt\n41\t\tdefault:\n42\t\t\tif !needsPrimaryRightPrompt {\n43\t\t\t\tbreak\n44\t\t\t}\n45\t\n46\t\t\te.writePrimaryRightPrompt()\n47\t\t}\n48\t\n49\t\treturn e.string()\n50\t}\n51\t\n52\tfunc (e *Engine) writePrimaryPrompt(needsPrimaryRPrompt bool) {\n53\t\te.writePrimaryPromptInternal(needsPrimaryRPrompt, false)\n54\t}\n55\t\n56\tfunc (e *Engine) writePrimaryPromptInternal(needsPrimaryRPrompt, fromCache bool) {\n57\t\tif e.Config.ShellIntegration {\n58\t\t\texitCode, _ := e.Env.StatusCodes()\n59\t\t\te.write(terminal.CommandFinished(exitCode, e.Env.Flags().NoExitCode))\n60\t\t\te.write(terminal.PromptStart())\n61\t\t}\n62\t\n63\t\t// cache a pointer to the color cycle\n64\t\tcycle = &e.Config.Cycle\n65\t\tvar cancelNewline, didRender bool\n66\t\n67\t\t// Choose block source based on whether we're rendering from cache\n68\t\tblocks := e.Config.Blocks\n69\t\tif fromCache {\n70\t\t\tblocks = e.allBlocks\n71\t\t}\n72\t\n73\t\t// Launch execution for every segment of every block up front so they all\n74\t\t// run concurrently; blocks are still rendered sequentially afterward, in\n75\t\t// order, so wall-clock latency becomes max(slowest segment) instead of\n76\t\t// sum(slowest segment per block). The cache path re-renders segment data\n77\t\t// that was already executed, so there's nothing to launch there.\n78\t\tvar launched []chan result\n79\t\tif !fromCache {\n80\t\t\tlaunched = make([]chan result, len(blocks))\n81\t\t\tfor i, block := range blocks {\n82\t\t\t\tif block.Type == config.RPrompt && !needsPrimaryRPrompt {\n83\t\t\t\t\tcontinue\n84\t\t\t\t}\n85\t\n86\t\t\t\tlaunched[i] = e.launchBlockSegments(block)\n87\t\t\t}\n88\t\t}\n89\t\n90\t\t// Drain every block's channel before rendering any block so that executed\n91\t\t// is fully populated up front. This allows cross-block .Segments.X\n92\t\t// dependencies to resolve in both directions — an earlier block can\n93\t\t// reference a segment from a later block and vice versa.\n94\t\texecuted := make(map[string]bool)\n95\t\tallResults := make([][]*config.Segment, len(blocks))\n96\t\n97\t\tif !fromCache {\n98\t\t\tfor i, block := range blocks {\n99\t\t\t\tif launched[i] == nil {\n100\t\t\t\t\tcontinue\n101\t\t\t\t}\n102\t\n103\t\t\t\tallResults[i] = drainBlockResults(launched[i], len(block.Segments), executed)\n104\t\t\t}\n105\t\t}\n106\t\n107\t\tfor i, block := range blocks {\n108\t\t\t// do not print a leading newline when we're at the first row and the prompt is cleared\n109\t\t\tif i == 0 {\n110\t\t\t\tcancelNewline = e.cancelNewline()\n111\t\t\t}\n112\t\n113\t\t\t// skip setting a newline when we didn't print anything yet\n114\t\t\tif i != 0 {\n115\t\t\t\tcancelNewline = !didRender\n116\t\t\t}\n117\t\n118\t\t\tif block.Type == config.RPrompt && !needsPrimaryRPrompt {\n119\t\t\t\tcontinue\n120\t\t\t}"}]},"uuid":"a52b6dd1-b18d-4b96-9388-ed1efc92098f","timestamp":"2026-07-27T18:04:06.854Z","toolUseResult":{"type":"text","file":{"filePath":"D:\\oh-my-posh\\src\\prompt\\primary.go","content":"package prompt\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/shell\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n)\n\nfunc (e *Engine) Primary() string {\n\treturn e.primaryInternal(false)\n}\n\nfunc (e *Engine) primaryInternal(fromCache bool) string {\n\te.startRunCapture()\n\n\tneedsPrimaryRightPrompt := e.needsPrimaryRightPrompt()\n\n\te.writePrimaryPromptInternal(needsPrimaryRightPrompt, fromCache)\n\n\tswitch e.Env.Shell() {\n\tcase shell.ZSH:\n\t\tif !e.Env.Flags().Eval {\n\t\t\tbreak\n\t\t}\n\n\t\t// Warp doesn't support RPROMPT so we need to write it manually\n\t\tif e.isWarp() {\n\t\t\te.writePrimaryRightPrompt()\n\t\t\tprompt := fmt.Sprintf(\"PS1=%s\", shell.QuotePosixStr(e.string()))\n\t\t\treturn prompt\n\t\t}\n\n\t\tprompt := fmt.Sprintf(\"PS1=%s\", shell.QuotePosixStr(e.string()))\n\t\tprompt += fmt.Sprintf(\"\\nRPROMPT=%s\", shell.QuotePosixStr(e.rprompt))\n\n\t\treturn prompt\n\tdefault:\n\t\tif !needsPrimaryRightPrompt {\n\t\t\tbreak\n\t\t}\n\n\t\te.writePrimaryRightPrompt()\n\t}\n\n\treturn e.string()\n}\n\nfunc (e *Engine) writePrimaryPrompt(needsPrimaryRPrompt bool) {\n\te.writePrimaryPromptInternal(needsPrimaryRPrompt, false)\n}\n\nfunc (e *Engine) writePrimaryPromptInternal(needsPrimaryRPrompt, fromCache bool) {\n\tif e.Config.ShellIntegration {\n\t\texitCode, _ := e.Env.StatusCodes()\n\t\te.write(terminal.CommandFinished(exitCode, e.Env.Flags().NoExitCode))\n\t\te.write(terminal.PromptStart())\n\t}\n\n\t// cache a pointer to the color cycle\n\tcycle = &e.Config.Cycle\n\tvar cancelNewline, didRender bool\n\n\t// Choose block source based on whether we're rendering from cache\n\tblocks := e.Config.Blocks\n\tif fromCache {\n\t\tblocks = e.allBlocks\n\t}\n\n\t// Launch execution for every segment of every block up front so they all\n\t// run concurrently; blocks are still rendered sequentially afterward, in\n\t// order, so wall-clock latency becomes max(slowest segment) instead of\n\t// sum(slowest segment per block). The cache path re-renders segment data\n\t// that was already executed, so there's nothing to launch there.\n\tvar launched []chan result\n\tif !fromCache {\n\t\tlaunched = make([]chan result, len(blocks))\n\t\tfor i, block := range blocks {\n\t\t\tif block.Type == config.RPrompt && !needsPrimaryRPrompt {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tlaunched[i] = e.launchBlockSegments(block)\n\t\t}\n\t}\n\n\t// Drain every block's channel before rendering any block so that executed\n\t// is fully populated up front. This allows cross-block .Segments.X\n\t// dependencies to resolve in both directions — an earlier block can\n\t// reference a segment from a later block and vice versa.\n\texecuted := make(map[string]bool)\n\tallResults := make([][]*config.Segment, len(blocks))\n\n\tif !fromCache {\n\t\tfor i, block := range blocks {\n\t\t\tif launched[i] == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tallResults[i] = drainBlockResults(launched[i], len(block.Segments), executed)\n\t\t}\n\t}\n\n\tfor i, block := range blocks {\n\t\t// do not print a leading newline when we're at the first row and the prompt is cleared\n\t\tif i == 0 {\n\t\t\tcancelNewline = e.cancelNewline()\n\t\t}\n\n\t\t// skip setting a newline when we didn't print anything yet\n\t\tif i != 0 {\n\t\t\tcancelNewline = !didRender\n\t\t}\n\n\t\tif block.Type == config.RPrompt && !needsPrimaryRPrompt {\n\t\t\tcontinue\n\t\t}","numLines":120,"startLine":1,"totalLines":189}},"sourceToolAssistantUUID":"e92128ca-3dcc-4ee1-a6e9-32f2386f68ae","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a52b6dd1-b18d-4b96-9388-ed1efc92098f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1AcTjJijiccQ5P9pXm","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I need to add a cursor marking mechanism in the primary hook—right after the primary prompt writes, I'll call `e.markCursor()` to capture the current row and run position. Then I'll expose this through a `CursorAnchor()` method alongside `CapturedRuns()`, and pass it to the SVG encoder via the Options struct so it knows where to render the cursor.\n\nThe tricky part is the order of operations: I need to decorate the rows with the cursor *before* fitting them, since fitting could otherwise shift the cursor position. I also need to account for the final space—the cursor should appear after any trailing space that gets added, based on what the reference PNG shows.\n\nBefore implementing, I should write a quick Playwright test to verify how SVG handles whitespace preservation with different attributes like `white-space=\"pre\"` and `xml:space=\"preserve\"` on both the SVG and text elements, then measure the actual text length to confirm the cursor lands in the right spot.\n\nWriting test probe...","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2949,"cache_read_input_tokens":170923,"output_tokens":1854,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2949,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1854,"cache_read_input_tokens":170923,"cache_creation_input_tokens":2949,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2949},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT1AZyf6UKM7phCrBKxD","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"14aa461e-7274-45be-9219-21adf5f11170","timestamp":"2026-07-27T18:04:20.066Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"14aa461e-7274-45be-9219-21adf5f11170","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1AcTjJijiccQ5P9pXm","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01VUfScubGgqfWty6hdjteG1","name":"Write","input":{"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\probe-whitespace.mjs","content":"// Probe: which whitespace declaration actually makes a headless Chromium keep\n// the leading/trailing spaces inside an SVG ? The exporter writes\n// white-space=\"pre\" on the root ; this measures whether that survives.\nimport { chromium } from \"playwright\";\n\nconst TEXT = \" ab \"; // 6 cells; collapses to \"ab\" (2) if whitespace is processed\n\nconst CASES = {\n 'root white-space=\"pre\"': `${TEXT}`,\n 'root xml:space=\"preserve\"': `${TEXT}`,\n 'text xml:space=\"preserve\"': `${TEXT}`,\n 'root style=\"white-space:pre\"': `${TEXT}`,\n \"no declaration (baseline)\": `${TEXT}`,\n};\n\nconst browser = await chromium.launch();\nconst page = await browser.newPage();\n\n// Reference width of the same string with every space forced to a visible\n// glyph, so \"preserved\" vs \"collapsed\" is a ratio, not an absolute px guess.\nawait page.setContent(\n `__ab__ab`,\n);\n\nconst { six, two } = await page.evaluate(() => ({\n six: document.getElementById(\"t\").getComputedTextLength(),\n two: document.getElementById(\"u\").getComputedTextLength(),\n}));\n\nconsole.log(`reference: 6 cells = ${six.toFixed(2)}px, 2 cells = ${two.toFixed(2)}px\\n`);\n\nfor (const [label, markup] of Object.entries(CASES)) {\n await page.setContent(`${markup}`);\n\n const width = await page.evaluate(() => document.getElementById(\"t\").getComputedTextLength());\n const cells = width / (six / 6);\n\n console.log(`${label.padEnd(30)} ${width.toFixed(2)}px ≈ ${cells.toFixed(2)} cells ${cells > 4 ? \"PRESERVED\" : \"COLLAPSED\"}`);\n}\n\nawait browser.close();\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2949,"cache_read_input_tokens":170923,"output_tokens":1854,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2949,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1854,"cache_read_input_tokens":170923,"cache_creation_input_tokens":2949,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2949},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT1AZyf6UKM7phCrBKxD","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"770bea29-6397-4f6f-923a-c635fa91e398","timestamp":"2026-07-27T18:04:29.329Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"770bea29-6397-4f6f-923a-c635fa91e398","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01VUfScubGgqfWty6hdjteG1","type":"tool_result","content":"File created successfully at: D:\\oh-my-posh\\tools\\svg-png-compare\\probe-whitespace.mjs (file state is current in your context — no need to Read it back)"}]},"uuid":"8ec28079-f3aa-4189-a6ec-e9867ce0279f","timestamp":"2026-07-27T18:04:29.382Z","toolUseResult":{"type":"create","filePath":"D:\\oh-my-posh\\tools\\svg-png-compare\\probe-whitespace.mjs","content":"// Probe: which whitespace declaration actually makes a headless Chromium keep\n// the leading/trailing spaces inside an SVG ? The exporter writes\n// white-space=\"pre\" on the root ; this measures whether that survives.\nimport { chromium } from \"playwright\";\n\nconst TEXT = \" ab \"; // 6 cells; collapses to \"ab\" (2) if whitespace is processed\n\nconst CASES = {\n 'root white-space=\"pre\"': `${TEXT}`,\n 'root xml:space=\"preserve\"': `${TEXT}`,\n 'text xml:space=\"preserve\"': `${TEXT}`,\n 'root style=\"white-space:pre\"': `${TEXT}`,\n \"no declaration (baseline)\": `${TEXT}`,\n};\n\nconst browser = await chromium.launch();\nconst page = await browser.newPage();\n\n// Reference width of the same string with every space forced to a visible\n// glyph, so \"preserved\" vs \"collapsed\" is a ratio, not an absolute px guess.\nawait page.setContent(\n `__ab__ab`,\n);\n\nconst { six, two } = await page.evaluate(() => ({\n six: document.getElementById(\"t\").getComputedTextLength(),\n two: document.getElementById(\"u\").getComputedTextLength(),\n}));\n\nconsole.log(`reference: 6 cells = ${six.toFixed(2)}px, 2 cells = ${two.toFixed(2)}px\\n`);\n\nfor (const [label, markup] of Object.entries(CASES)) {\n await page.setContent(`${markup}`);\n\n const width = await page.evaluate(() => document.getElementById(\"t\").getComputedTextLength());\n const cells = width / (six / 6);\n\n console.log(`${label.padEnd(30)} ${width.toFixed(2)}px ≈ ${cells.toFixed(2)} cells ${cells > 4 ? \"PRESERVED\" : \"COLLAPSED\"}`);\n}\n\nawait browser.close();\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"770bea29-6397-4f6f-923a-c635fa91e398","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8ec28079-f3aa-4189-a6ec-e9867ce0279f","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"db9d2b81-feaa-4f1f-a7f9-c2cd7ad90cb5","timestamp":"2026-07-27T18:04:29.387Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"db9d2b81-feaa-4f1f-a7f9-c2cd7ad90cb5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1CGSmmf5JeMFhSURGF","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_014kCdTLMpKRQBAoiXxMAfjb","name":"Bash","input":{"command":"cd /d/oh-my-posh/tools/svg-png-compare && node probe-whitespace.mjs","description":"Probe SVG whitespace handling in Chromium"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":2046,"cache_read_input_tokens":173872,"output_tokens":119,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2046,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":119,"cache_read_input_tokens":173872,"cache_creation_input_tokens":2046,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2046},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT1CEBqqeNmd59MR7yrE","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"a8b9a72b-70cc-4cb3-a03c-812a256ea22d","timestamp":"2026-07-27T18:04:31.825Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a8b9a72b-70cc-4cb3-a03c-812a256ea22d","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_014kCdTLMpKRQBAoiXxMAfjb","type":"tool_result","content":"reference: 6 cells = 52.78px, 2 cells = 17.59px\n\nroot white-space=\"pre\" 17.59px ≈ 2.00 cells COLLAPSED\nroot xml:space=\"preserve\" 17.59px ≈ 2.00 cells COLLAPSED\ntext xml:space=\"preserve\" 52.78px ≈ 6.00 cells PRESERVED\nroot style=\"white-space:pre\" 17.59px ≈ 2.00 cells COLLAPSED\nno declaration (baseline) 17.59px ≈ 2.00 cells COLLAPSED","is_error":false}]},"uuid":"2e5bd7fc-1062-4d69-9925-2726bdc2a8e5","timestamp":"2026-07-27T18:04:36.186Z","toolUseResult":{"stdout":"reference: 6 cells = 52.78px, 2 cells = 17.59px\n\nroot white-space=\"pre\" 17.59px ≈ 2.00 cells COLLAPSED\nroot xml:space=\"preserve\" 17.59px ≈ 2.00 cells COLLAPSED\ntext xml:space=\"preserve\" 52.78px ≈ 6.00 cells PRESERVED\nroot style=\"white-space:pre\" 17.59px ≈ 2.00 cells COLLAPSED\nno declaration (baseline) 17.59px ≈ 2.00 cells COLLAPSED","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"a8b9a72b-70cc-4cb3-a03c-812a256ea22d","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2e5bd7fc-1062-4d69-9925-2726bdc2a8e5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1Cp15GbfWL4bXGfLd2","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The key insight is that `xml:space=\"preserve\"` needs to be applied directly to the `` element itself—it won't work when inherited from the root in HTML-parsed inline SVG, and CSS `white-space` properties on the SVG root also fail to affect text layout in Chromium.\n\nSo the fix is straightforward: add `xml:space=\"preserve\"` to every `` element and remove the ineffective `white-space` styling from the root. This attribute preserves all spaces without collapsing them, which is exactly what we need since our text doesn't contain newlines or tabs anyway.\n\nI should verify this works across Firefox and Safari too since the website serves all browsers, though Chromium is the primary target and `xml:space` is the standard SVG 1.1 mechanism that's supported everywhere.\n\nLet me check if playwright has those browsers available, then report back with the findings and flag bug 2 as needing your decision before I proceed with fixes 1, 3, and 4.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":325,"cache_read_input_tokens":175918,"output_tokens":825,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":325,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":825,"cache_read_input_tokens":175918,"cache_creation_input_tokens":325,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":325},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT1CiwUEwaJ1xLiyGyLQ","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"520e3445-7bb5-42c5-99e7-6c2b69934100","timestamp":"2026-07-27T18:04:51.072Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"520e3445-7bb5-42c5-99e7-6c2b69934100","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1Cp15GbfWL4bXGfLd2","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01BpD8rj9z8SAjd1XMHuxBgR","name":"Bash","input":{"command":"ls ~/AppData/Local/ms-playwright/ 2>/dev/null | head","description":"Check installed playwright browsers"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":325,"cache_read_input_tokens":175918,"output_tokens":825,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":325,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":825,"cache_read_input_tokens":175918,"cache_creation_input_tokens":325,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":325},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT1CiwUEwaJ1xLiyGyLQ","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"09d75eaa-a690-4f08-a8e4-608883fb7d6c","timestamp":"2026-07-27T18:04:51.137Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"09d75eaa-a690-4f08-a8e4-608883fb7d6c","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01BpD8rj9z8SAjd1XMHuxBgR","type":"tool_result","content":"chromium_headless_shell-1217\nchromium_headless_shell-1228\nchromium-1217\nchromium-1228\nffmpeg-1011\nwinldd-1007","is_error":false}]},"uuid":"31e5f0be-6241-459b-8792-6e5d1efd7311","timestamp":"2026-07-27T18:04:54.549Z","toolUseResult":{"stdout":"chromium_headless_shell-1217\nchromium_headless_shell-1228\nchromium-1217\nchromium-1228\nffmpeg-1011\nwinldd-1007","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"09d75eaa-a690-4f08-a8e4-608883fb7d6c","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"31e5f0be-6241-459b-8792-6e5d1efd7311","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1E77VghEev1rLEK6ot","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Sticking with chromium since `xml:space=\"preserve\"` is well-supported in SVG 1.1. Now I'm putting together the report for phase 1, and I want to be clear about bug 2 by showing the reference PNG renders it the same way. I'm thinking about creating a side-by-side crop comparison to include, though I'll need to use SendUserFile since markdown doesn't handle inline images easily.","signature":"CAIS/gUKhwEIEBgCKkCf+2Jskzo+2RHfFmB/Hn65wW/snsOQPP7lciycqX36gtMfGtB3FsG81WRPHNPE1Crpf1g8y48yM12L8BLdr98qMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDLOMCHAfI6l576EgVRoMM+dk1iy2Ytatoe89IjBFvcnm7Sh7s14R59EatNcIbH8urCEnvBlvc5w795dqp+CdLJSr2iyEZAbi+OAsAg4qowSI4legwETTTe4KkXS4wE1pkzvGZocCegwDBenKL7KgL6dIAaifmC7baFN5EJ9PeqLEDqoiF+Xx9o4z/WIZg3Au56iiUwRCoIKzM2GvGk5Rhfk5MjryUaAFgqzMM1gyaMUXnDRrZO3Jz833ADNK1/r3ZJgyIllV1V9BEnDa4WYBBkTogTjmL5w3bN9jTY55VbxtKAgr/pBhOw4O7MMrtUZlOB56Vsw60DnrSFNnVY1cV8XlISBYdkKwg/j3uCklMsRu8MJq+wFXytcNxOKrZBJ0IoGxRmwndk3vFIuJLh/Qg810BE++UZgWcjWl4dVRo25TZ5m4k69nGuuAKmqM3IQwuNtZgK+EsqSQcSJi4zLGhg+pMoowK/XvsL2LhqDultOSG6LhCw2FcAlG8RCXVxhGu3xMP7R/P5hOSfut38nwMpqqak8R51PgLjzeai9Tm7kCY00nBF1m0NZ+gcm+usyXTwkLSTk5LDHc/0WFQ9Sa5zX4HWrrbJI6ZvyHgj0T5SWL6oHG5uMjKdNRk6AnBukDSzgawKZYmZKuxBOq/Olf0qbCswVIwa7gRCNPa1PaZ7tJDINSqI3SX6MEHdezVAoZ8kEMlHPiht5owkhAj7X7zsvuTlqVLlCVqz9ZPw56M8+5ERwPzRxNJ7U4ZC2bRN6QCTlwsr0fyINGAVe3MP77KvEKGzblvW0ne0Rko0sm7qLvHV3dabh8iUWjZAbANGFuWrB2GAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":862,"cache_read_input_tokens":176243,"output_tokens":695,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":862,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":695,"cache_read_input_tokens":176243,"cache_creation_input_tokens":862,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":862},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT1E5HrcsSVY6va5RWHC","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"e3c7470f-2972-40b6-90ea-85878a392dcb","timestamp":"2026-07-27T18:05:01.281Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e3c7470f-2972-40b6-90ea-85878a392dcb","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1E77VghEev1rLEK6ot","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Jjz9dudNfvvtv287uSoG3r","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\stack.py","content":"\"\"\"Stack labelled crops vertically for side-by-side review.\"\"\"\nimport sys\n\nfrom PIL import Image, ImageDraw\n\npairs = sys.argv[2:]\ndst = sys.argv[1]\n\ntiles = []\nfor i in range(0, len(pairs), 6):\n label, path, x, y, w, h = pairs[i], pairs[i + 1], *map(int, pairs[i + 2:i + 6])\n im = Image.open(path).convert(\"RGB\").crop((x, y, x + w, y + h))\n tiles.append((label, im))\n\npad = 28\nwidth = max(t.width for _, t in tiles)\nheight = sum(t.height + pad for _, t in tiles)\n\nout = Image.new(\"RGB\", (width, height), (18, 18, 20))\ndraw = ImageDraw.Draw(out)\n\ntop = 0\nfor label, tile in tiles:\n draw.text((6, top + 8), label, fill=(200, 210, 225))\n out.paste(tile, (0, top + pad))\n top += tile.height + pad\n\nout.save(dst)\nprint(f\"{dst} {out.size}\")\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":862,"cache_read_input_tokens":176243,"output_tokens":695,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":862,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":695,"cache_read_input_tokens":176243,"cache_creation_input_tokens":862,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":862},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT1E5HrcsSVY6va5RWHC","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"5ef24afc-24bf-46a2-bf0d-c3565fa4550d","timestamp":"2026-07-27T18:05:05.720Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5ef24afc-24bf-46a2-bf0d-c3565fa4550d","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Jjz9dudNfvvtv287uSoG3r","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\stack.py (file state is current in your context — no need to Read it back)"}]},"uuid":"ffd312fa-dda8-4aa4-a31f-ca9978032a35","timestamp":"2026-07-27T18:05:05.804Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\stack.py","content":"\"\"\"Stack labelled crops vertically for side-by-side review.\"\"\"\nimport sys\n\nfrom PIL import Image, ImageDraw\n\npairs = sys.argv[2:]\ndst = sys.argv[1]\n\ntiles = []\nfor i in range(0, len(pairs), 6):\n label, path, x, y, w, h = pairs[i], pairs[i + 1], *map(int, pairs[i + 2:i + 6])\n im = Image.open(path).convert(\"RGB\").crop((x, y, x + w, y + h))\n tiles.append((label, im))\n\npad = 28\nwidth = max(t.width for _, t in tiles)\nheight = sum(t.height + pad for _, t in tiles)\n\nout = Image.new(\"RGB\", (width, height), (18, 18, 20))\ndraw = ImageDraw.Draw(out)\n\ntop = 0\nfor label, tile in tiles:\n draw.text((6, top + 8), label, fill=(200, 210, 225))\n out.paste(tile, (0, top + pad))\n top += tile.height + pad\n\nout.save(dst)\nprint(f\"{dst} {out.size}\")\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"5ef24afc-24bf-46a2-bf0d-c3565fa4550d","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ffd312fa-dda8-4aa4-a31f-ca9978032a35","isSidechain":false,"attachment":{"type":"queued_command","prompt":"Answer me this: did we remove more code than we added in the golang excutable?","source_uuid":"3f947a49-ca69-4e3a-9ac5-f4a6f75d9608","commandMode":"prompt","origin":{"kind":"human"},"timestamp":"2026-07-27T18:05:05.728Z"},"type":"attachment","uuid":"a7cb77a2-0bcf-4b82-8220-dea0e6972278","timestamp":"2026-07-27T18:05:05.728Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a7cb77a2-0bcf-4b82-8220-dea0e6972278","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1ExJwj3fLh1cr7j2jb","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I need to check the diff stats for the `src/` directory between main and the current branch to see if we removed more code than we added during the SVG work.","signature":"CAISsgMKhwEIEBgCKkDCAV/Oqu4JBvTOzbdnpmdngtgHK2L9hoJX9ucT/HJ+Oun2vuw5w2pb3rPfV83mEQD8AC1scjncwN8Dwb3CXqotMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDAGrFR5XTBQjN+SCPhoMoOM4cqCtMO6t4Ob9IjCTmqb0nCbxsWoDIKuIjnizPMIFpUhYR/QnnXRSkZbkE0bdo/H0l3Lm6ZTxPfWD58Yq1wGr5EynPAgHqCyr2N8TRUxcEq8m6nn7w6+mAvBLu+0VlWvya9rRmFJL+Y2XBN7ZyzG9yDSHYyBaI+lttsu5lqToee/TlCs3T5dDxMaMPylEBWFpO9Rvm3dUmhqNjieoxspycT3245VshNxCqJKvAGA4kMVYbd8hwRax0vBC0kSc4t8lImxnZaxpSaa27FtQXP1X0zEAkwniML/JhKpcb8D3jncJ/d0qmndyXZeIxtZoIcSS59yphwNdoZwnwOBtqkAjPRARIq5VXzVBxehJijJLXw0gF8MKyBgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":901,"cache_read_input_tokens":177105,"output_tokens":382,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":901,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":382,"cache_read_input_tokens":177105,"cache_creation_input_tokens":901,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":901},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT1EusMRLEZ41yJzzKKz","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"d04dc420-1621-41d6-9bcf-9dab947a87ff","timestamp":"2026-07-27T18:05:09.573Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d04dc420-1621-41d6-9bcf-9dab947a87ff","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1ExJwj3fLh1cr7j2jb","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01AE16GynxZPF8BmfBDvrP5p","name":"Bash","input":{"command":"cd /d/oh-my-posh && git diff --shortstat origin/main...next -- src/ && echo \"--- non-test only ---\" && git diff --numstat origin/main...next -- src/ | awk '$3 !~ /_test\\.go$/ && $3 !~ /testdata/ {a+=$1; d+=$2} END {printf \"added %d removed %d net %+d\\n\", a, d, a-d}' && echo \"--- tests + testdata ---\" && git diff --numstat origin/main...next -- src/ | awk '$3 ~ /_test\\.go$|testdata/ {a+=$1; d+=$2} END {printf \"added %d removed %d net %+d\\n\", a, d, a-d}'","description":"Compute net line change in src"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":901,"cache_read_input_tokens":177105,"output_tokens":382,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":901,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":382,"cache_read_input_tokens":177105,"cache_creation_input_tokens":901,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":901},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT1EusMRLEZ41yJzzKKz","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"aaf64376-babd-44f3-817c-a3beea64497d","timestamp":"2026-07-27T18:05:11.124Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"aaf64376-babd-44f3-817c-a3beea64497d","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01AE16GynxZPF8BmfBDvrP5p","type":"tool_result","content":" 200 files changed, 9175 insertions(+), 3394 deletions(-)\n--- non-test only ---\nadded 3883 removed 2509 net +1374\n--- tests + testdata ---\nadded 5292 removed 885 net +4407","is_error":false}]},"uuid":"7cd0330b-0201-4e96-9f51-46a98c796699","timestamp":"2026-07-27T18:05:14.228Z","toolUseResult":{"stdout":" 200 files changed, 9175 insertions(+), 3394 deletions(-)\n--- non-test only ---\nadded 3883 removed 2509 net +1374\n--- tests + testdata ---\nadded 5292 removed 885 net +4407","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"aaf64376-babd-44f3-817c-a3beea64497d","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7cd0330b-0201-4e96-9f51-46a98c796699","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1FaNN1B9X3YunDEZfF","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I should provide both metrics to give them a complete picture—the current binary is 23.3 MB, and I need to check what main's binary size is for comparison. I'm also recalling that the PNG exporter removal alone saved 918 KB, though this branch adds other packages like SVG that affect the overall size, and a significant portion of the line count increase comes from documentation comments.\n\nLet me create a temporary worktree of origin/main to build and measure its binary size directly.","signature":"CAIS5AcKhwEIEBgCKkC0dbxqZhLbr4Rj3Vg8uwmoz34f5VJF++MpeA7vQZFfYLK9460IiQvyhH+U651Eb5N12v/4E+Q8d38U/oJU33o9Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDETtRDXmw6+2PBsvqxoMqQ3LgFZyAUPPri1AIjDaaOzoxXMUvrEluEXdYgrYsP5a6DQquz7UBchLsCJf4Mvu34UXNm7YO9JsPLCy8RwqiQZpEzTHScR/4rlP+6H3AmnKTxHT11XUu4MBQthabECha8zH4eJ0M3y/kVa9lTXPSFgWgS2Jm1FKjpSseq3UM7BWmH3km+X7TmfWu7c7DpYawIua7CTetKpCC/tU3+b9rbIBsoO/HHZ7KdJFr5uADf98/rT3pYesD6309EknxkycmzSM1wmirCZ9BT7WCEw+GOha27Z37gWMa21Ztcw+fOVMhPXt3dwUM0fdKivnJlQogoxcf31i0pkGiL+lluGyuhKyzlpTu1Y9djZdyPQIVE9dVW+WZEf5p9SvVeLKk0JA9chtROGiaiE9B5rvj09azO3GsZeV5wSntV8jJqY53UUroIXZ2nfZIddnwXUH4DJGAZXKIoHWfF4DiybDGlqh6MY1ZImPrgd3ubKpRHAMr0z1fIBLxfSYa20D+jbcNR4XUeabQFXxSNmVecCanCebgqMM6WyB3zs+0c9EQdkMiBiWmgowDAU8uOc/I62myyPmoX1RrUKTt4Gbya7hJPBmTHWsMiuSLeHP/r27iYAOywE0ooNphJwzJs2/ucgI2cjWwBrwQA1VLOhmgQshb8yssdQ5yAHikhuiUCsG63b3KS1WxCuHija5VBE/DCc7Xidzz0+Iw9rqWW/exkTZz23sV2pElVA5rFCjoESKaYmIPps31HhAi4yTEtKNrd3WZpQT7wXDF19LwiNdi+cKaseA3H5EN0k7z0seUQsiIAhHKSyjqC+p9a6vHhpx2Ix7Z5uQKvbHLpMfbPzimvGMZChrsL7DC8bmLN8j/wxC7cRd3uNWG6Y3LgFzvB3awzTSLs7m2zhaJM0p027PMTM2x8LrS1GXWEZb31qYlGr16tGymqa8gVc8R23QJXNvBuCv0jeOjeSj/Y899Zp6Irwjaw9tvUWqDwQf0M2DX8l906RkHz58TjGihLKvjtY6zNbCxjDddV5XlY3/wRtJsbhIw/qCb13wXr/ztKqOErqhUY5Vpplb9PSu5/E3gW2hlzFM8zwfsFugRMcLy1ITMJM5bDmSbIUJ0vvhSm06+AYYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":465,"cache_read_input_tokens":178006,"output_tokens":537,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":465,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":537,"cache_read_input_tokens":178006,"cache_creation_input_tokens":465,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":465},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT1FXN32WEaYcQSumJQ9","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"7170f456-7f92-4744-a942-5f1fa243ac69","timestamp":"2026-07-27T18:05:21.458Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7170f456-7f92-4744-a942-5f1fa243ac69","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1FaNN1B9X3YunDEZfF","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01TAoSVn7bubtszEdSfi7JTx","name":"Bash","input":{"command":"git worktree add --detach \"$TMPDIR/omp-main\" origin/main >/dev/null 2>&1; cd \"$TMPDIR/omp-main/src\" && go build -o \"$TMPDIR/omp-main.exe\" . 2>&1 | tail -3; ls -la \"$TMPDIR/omp-main.exe\" \"$TMPDIR/omp.exe\" | awk '{printf \"%-40s %.2f MB\\n\", $9, $5/1048576}'","description":"Build main binary and compare sizes"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":465,"cache_read_input_tokens":178006,"output_tokens":537,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":465,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":537,"cache_read_input_tokens":178006,"cache_creation_input_tokens":465,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":465},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT1FXN32WEaYcQSumJQ9","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"9a4db7c7-21b5-4d02-9803-d1f3a5545a1f","timestamp":"2026-07-27T18:05:22.914Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9a4db7c7-21b5-4d02-9803-d1f3a5545a1f","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01TAoSVn7bubtszEdSfi7JTx","type":"tool_result","content":"go: downloading github.com/mattn/go-runewidth v0.0.27\ngo: downloading go.yaml.in/yaml/v3 v3.0.5\n/tmp/omp.exe 23.27 MB\n/tmp/omp-main.exe 24.02 MB","is_error":false}]},"uuid":"3545cb8e-794c-44ba-a436-fef3da2230ed","timestamp":"2026-07-27T18:05:39.303Z","toolUseResult":{"stdout":"go: downloading github.com/mattn/go-runewidth v0.0.27\ngo: downloading go.yaml.in/yaml/v3 v3.0.5\n/tmp/omp.exe 23.27 MB\n/tmp/omp-main.exe 24.02 MB","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"9a4db7c7-21b5-4d02-9803-d1f3a5545a1f","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3545cb8e-794c-44ba-a436-fef3da2230ed","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1HRZLzYhtWGtAHkQfb","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The binary shrunk by 750 KB despite adding 1.4k lines of our own code, which means we removed more dependency code than we added. Now I'm breaking down what changed across different areas to get a clearer sense of where the growth and reduction happened.","signature":"CAISjgUKhwEIEBgCKkCquNnYxSxcbFgoGzIZCseKwYfu0TBgyRqcIkhUIBX4sNgcVGAhu4/RXo6JbKXW3/Vq5D9NuX0xYzGAStIZaMlmMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDNLNHFIS1Lkj++hvqRoM6OOeZk/1CybkuyXPIjAiks/MuM8hMVzsZJ9VyIwZI82C774wxuCPmBrR1K0pCDiAryka6EtkG9yoFcjcwnwqswPa//js1oc56FLpgSNYli8m1w7JesajsIs9k4Buwgr9dtMgFBpZ7bE26jn2kquuOhdIjvSeYh1Va7Nn4gWtpp98ZGciYTcFuYs8TGro1EPYFAbPgl+hDe7NTzLAzLChz6ISGt5ZQf6qaAgWZjPynVfFWYdyQDZmQzg1sAnSXkc9k8b4710GEDOiJE9zAxTxab+Rdf8ADMl7IKrwWZnJq79d8erLFfrsp2yr2V4DxwkHRthjlwpLDOqKORd/QWf4tTa1LtTSXtAax/TvfNzgFMLdEXs34VDQhvFQWlAHX1+VM8lVppXrRPERgaKlrac1wbeuGym0cbj6z+BFbbS6KjI+Eq46TO30g4PtHmuvyhDwCzTUavVGLV7TT8ReioSz9OHzkpK6LUItnW80Hfi1GA7RSmR7FZ87jMg5CRG6Yml2oiEUMLxbhTLXjbZan1j7hX8dSBmmGVHWGwFK/CML7eVlw5gnuSV7tU7IshslWN98ikx+AUAl+05dzEJAXEiY7xl6zhGvAMXZIdKChGgqQbMSnyqSVhMZjTHqua7A8agyVxEEbKGT0d/q0ZW4+H9SjCHKUmIYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":621,"cache_read_input_tokens":178471,"output_tokens":408,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":621,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":408,"cache_read_input_tokens":178471,"cache_creation_input_tokens":621,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":621},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT1HP4XSqoqFDUCPRoVc","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"830ef5b2-0588-4f97-b6d4-c92f2647e510","timestamp":"2026-07-27T18:05:44.697Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"830ef5b2-0588-4f97-b6d4-c92f2647e510","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1HRZLzYhtWGtAHkQfb","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_015vrWdCuHY2Xp59QRFtR4Jf","name":"Bash","input":{"command":"git diff --numstat origin/main...next -- src/ | awk '$3 !~ /_test\\.go$/ && $3 !~ /testdata/ {split($3,p,\"/\"); k=p[2]; a[k]+=$1; d[k]+=$2} END {for (i in a) printf \"%-14s +%-6d -%-6d net %+d\\n\", i, a[i], d[i], a[i]-d[i]}' | sort -k5 -n","description":"Break down net line change by package"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":621,"cache_read_input_tokens":178471,"output_tokens":408,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":621,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":408,"cache_read_input_tokens":178471,"cache_creation_input_tokens":621,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":621},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT1HP4XSqoqFDUCPRoVc","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"75be7e0d-3490-48df-b238-a21293378260","timestamp":"2026-07-27T18:05:45.596Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"75be7e0d-3490-48df-b238-a21293378260","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_015vrWdCuHY2Xp59QRFtR4Jf","type":"tool_result","content":"cli +851 -1270 net -419\nsegments +159 -414 net -255\nshell +60 -222 net -162\nruntime +16 -57 net -41\ntemplate +19 -38 net -19\ncache +61 -78 net -17\ntext +6 -23 net -17\ngo.sum +0 -8 net -8\ngo.mod +0 -4 net -4\ngenerics +0 -2 net -2\nmaps +0 -2 net -2\nlog +2 -3 net -1\ncolor +318 -46 net +272\nconfig +168 -74 net +94\nprompt +239 -36 net +203\nregex +3 -3 net +0\nsvg +1267 -0 net +1267\nterminal +714 -229 net +485","is_error":false}]},"uuid":"35c9a3ca-cbaa-47d7-8937-f28995652e48","timestamp":"2026-07-27T18:05:51.743Z","toolUseResult":{"stdout":"cli +851 -1270 net -419\nsegments +159 -414 net -255\nshell +60 -222 net -162\nruntime +16 -57 net -41\ntemplate +19 -38 net -19\ncache +61 -78 net -17\ntext +6 -23 net -17\ngo.sum +0 -8 net -8\ngo.mod +0 -4 net -4\ngenerics +0 -2 net -2\nmaps +0 -2 net -2\nlog +2 -3 net -1\ncolor +318 -46 net +272\nconfig +168 -74 net +94\nprompt +239 -36 net +203\nregex +3 -3 net +0\nsvg +1267 -0 net +1267\nterminal +714 -229 net +485","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"75be7e0d-3490-48df-b238-a21293378260","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"35c9a3ca-cbaa-47d7-8937-f28995652e48","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1JPxdRWYZziD85noXM","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm going to analyze the actual code-to-comment ratio in the SVG source files to get a clearer picture of what's really there versus what's just documentation.","signature":"CAISygMKhwEIEBgCKkCwa3l2VPrdXzAL6sI49stE0FjXFir3XwsoAQ9foJ92tYtRzJlo3wBDY3rpSGfrdeD8jMZXS+DuGff/Szoe4de5Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDJ3BBuYffIpWJ9YrsRoMBZNSdH+fQLV+sj4aIjAZbUDCKXDEKE0HuyVaQRfPUQ/+pb5RiauJ8/PV2vr61dWuCwfE0iU9bVWcQgKoiIgq7wELJdwnEgvZAwy6FhE3l9D7jVaraei3cf1StbOm8YpJJ/ZV/8HuUcERNpHHJrr+TXPMJUVJ7NONIvMYiMWvEro7XaxXCgNDrSELJuhF0+5+n47jn7KxIFIVrrLQkW5i0clud9UjSfjMhlixC2TR+lGyb7qdDS6cngHmw76MUSX946qZHJb4+2eDx6th7RaKeVMxKg/fjMXu0sIFgt1OCDKwfL30qj1Z9RAAfIUU9jy3CblbCiCG9JtjStdsoBNvFSEiJOWgIZjOR4tz5XoNicYGLFoQpgjJ/wT0pPih/zDPxaj9U4sJj7whxkvvrNtKrxgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":638,"cache_read_input_tokens":179092,"output_tokens":401,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":638,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":401,"cache_read_input_tokens":179092,"cache_creation_input_tokens":638,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":638},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT1JJAdCVVLXCpx8vqRZ","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"e92bb2e9-7463-40bf-b18b-170ae68421f9","timestamp":"2026-07-27T18:05:56.957Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e92bb2e9-7463-40bf-b18b-170ae68421f9","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1JPxdRWYZziD85noXM","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_016mRJn2nHQUV9rHi48gX9YB","name":"Bash","input":{"command":"awk '!/_test/' /dev/null; for f in src/svg/svg.go src/svg/colors.go src/svg/fit.go src/svg/window.go src/svg/decorate.go; do total=$(wc -l < \"$f\"); code=$(grep -cvE '^\\s*(//|$)' \"$f\"); echo \"$f total=$total code=$code\"; done | awk '{print} /total/ {split($2,a,\"=\"); split($3,b,\"=\"); t+=a[2]; c+=b[2]} END {printf \"\\nsvg package: %d lines, %d code, %d comment/blank (%.0f%%)\\n\", t, c, t-c, (t-c)*100/t}'","description":"Measure comment share in svg package"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":638,"cache_read_input_tokens":179092,"output_tokens":401,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":638,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":401,"cache_read_input_tokens":179092,"cache_creation_input_tokens":638,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":638},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT1JJAdCVVLXCpx8vqRZ","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"14ef31f4-f4c3-442b-b42d-3a5b6eb76511","timestamp":"2026-07-27T18:05:59.048Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"14ef31f4-f4c3-442b-b42d-3a5b6eb76511","isSidechain":false,"promptId":"6ce2d588-10a1-4f99-978a-628213f132d1","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_016mRJn2nHQUV9rHi48gX9YB","type":"tool_result","content":"src/svg/svg.go total=558 code=266\nsrc/svg/colors.go total=229 code=139\nsrc/svg/fit.go total=259 code=145\nsrc/svg/window.go total=155 code=97\nsrc/svg/decorate.go total=66 code=32\n\nsvg package: 1267 lines, 679 code, 588 comment/blank (46%)","is_error":false}]},"uuid":"2e12e868-0b9f-4a31-b505-b701e361d7ca","timestamp":"2026-07-27T18:06:02.938Z","toolUseResult":{"stdout":"src/svg/svg.go total=558 code=266\nsrc/svg/colors.go total=229 code=139\nsrc/svg/fit.go total=259 code=145\nsrc/svg/window.go total=155 code=97\nsrc/svg/decorate.go total=66 code=32\n\nsvg package: 1267 lines, 679 code, 588 comment/blank (46%)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"14ef31f4-f4c3-442b-b42d-3a5b6eb76511","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2e12e868-0b9f-4a31-b505-b701e361d7ca","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdT1KDkjm3zLHauk1psGy","type":"message","role":"assistant","content":[{"type":"text","text":"**Answer on the size question:** binary shrank, hand-written source grew.\n\n| | main | next | delta |\n|---|---|---|---|\n| binary (`go build`, win/amd64) | 24.02 MB | 23.27 MB | **−750 KB** |\n| non-test Go source | — | — | +3883 / −2509 = **+1374** |\n| tests + testdata | — | — | +5292 / −885 = **+4407** |\n\nNet source is up because the deletions were mostly third-party (`gg`, `stackblur`, `x/image`, `freetype` — ~27.7k lines of dependency, which is what the binary saving comes from), while the additions are ours. By package:\n\n```\nsvg +1267 (new — 679 code, 588 comment/blank, 46% docs)\nterminal +485 (run capture + tokenizer collapse)\ncolor +272\nprompt +203\nconfig +94\ncli -419 (PNG renderer gone)\nsegments -255\nshell -162\n```\n\nSo: removed more *dependency* code than added, added more *own* code than removed.\n\n---\n\nNow, the four bugs. All four reproduced against the retired renderer's own output.\n\n## 1. Spaces collapse — confirmed, SVG bug\n\nProbed Chromium directly (`tools/svg-png-compare/probe-whitespace.mjs`), string `\" ab \"` = 6 cells:\n\n```\nroot white-space=\"pre\" 2.00 cells COLLAPSED\nroot xml:space=\"preserve\" 2.00 cells COLLAPSED\nroot style=\"white-space:pre\" 2.00 cells COLLAPSED\ntext xml:space=\"preserve\" 6.00 cells PRESERVED\nno declaration (baseline) 2.00 cells COLLAPSED\n```\n\n`white-space` on the root `` ([svg.go:265](src/svg/svg.go:265)) does nothing. Only `xml:space=\"preserve\"` **on each ``** works — root doesn't inherit it.\n\nSecond-order damage: `textLength` + `lengthAdjust=\"spacingAndGlyphs\"` then stretches the surviving glyphs across the full run width. That's why glowsticks' `✓` renders as a wide swoosh — template ` ✓ ` is 3 cells, collapses to 1 glyph, stretched 3×.\n\n## 2. Powerline/diamond inversion — **not** an SVG bug\n\nThe ANSI writer itself emits it that way:\n\n```\nESC[48;2;51;57;91m ESC[38;2;255;151;46m bg = session, fg = path\n```\n\nand the retired PNG renderer draws the same picture — I rendered it to check. Root cause is [engine.go:702](src/prompt/engine.go:702):\n\n```go\nif e.activeSegment.InvertPowerline || (e.previousActiveSegment != nil && e.previousActiveSegment.InvertPowerline) {\n```\n\n`invert_powerline` on the session segment is needed for its own leading `` cap, but the `previousActiveSegment` clause leaks the inversion onto the *next* separator too. Fixing it changes real terminal output for every theme using `invert_powerline` — glowsticks, iterm2, others. Your call, and it's an engine commit, not an SVG one.\n\n## 3. Invisible text — confirmed, SVG bug\n\n`cert` renders 6 of 7 text runs in exactly the background colour. Cause: [colors.go:128](src/svg/colors.go:128) `hexToRGB` requires exactly 6 digits, so `#fff` fails to resolve; `paintRun` then keeps the previously active colour, which after a leading diamond *is* the segment background. The terminal emits `38;2;255;255;255` correctly.\n\nSix bundled themes use 3-digit hex: `cert`, `iterm2`, `montys`, `poshmon`, `uew`, `unicorn`. Fix is to match `gookit/color.HEX`'s accepted forms.\n\n(`powerlevel10k_modern`'s invisible `at` is *not* this — the ANSI genuinely emits white-on-white there. Faithful.)\n\n## 4. Cursor after the rprompt — confirmed, SVG bug\n\n```\n_ ← after the battery glyph, far right\n```\n\n[decorate.go:42](src/svg/decorate.go:42) appends to the last row's tail. The right anchor already exists in the engine: [primary.go:183-187](src/prompt/primary.go:183) wraps the rprompt in `SaveCursorPosition`/`RestoreCursorPosition` — that save point *is* where the cursor belongs. Plan: record the anchor there, pass it into `Encode`, and flip `Encode` to `fitRows(decorate(rows), columns)` so the inserted cursor gets fitted like real content instead of being bolted on after fitting.\n\n---\n\nProceeding with 1, 3 and 4. Bug 2 I'm leaving alone until you say — it's a deliberate engine behaviour with terminal-visible blast radius, not something to quietly change under an SVG fix."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":506,"cache_read_input_tokens":179730,"output_tokens":1710,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":506,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1710,"cache_read_input_tokens":179730,"cache_creation_input_tokens":506,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":506},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdT1K7fNhbxoraQzK54RJ","attributionMcpServer":"Claude Browser","attributionMcpTool":"preview_start","type":"assistant","uuid":"86785587-b981-4a2c-8afa-bae6c73cb73e","timestamp":"2026-07-27T18:06:27.687Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"86785587-b981-4a2c-8afa-bae6c73cb73e","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":5790},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-27T18:06:35.298Z","uuid":"579056bc-c419-4bec-bf44-2a2391dec763","toolUseID":"a1bc3653-f0c9-47b6-b0da-49baee6cf575","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"579056bc-c419-4bec-bf44-2a2391dec763","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":"continue"},"uuid":"65d0deaf-97fe-411d-87ab-d58f2c4c434c","timestamp":"2026-07-27T20:12:47.226Z","permissionMode":"auto","origin":{"kind":"human"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"65d0deaf-97fe-411d-87ab-d58f2c4c434c","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-e75e50a9-f451-4980-bb5e-4d5ce116c4af","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"9d0dbf10-6777-4e72-b695-14b1fe871262","timestamp":"2026-07-27T20:12:47.417Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9d0dbf10-6777-4e72-b695-14b1fe871262","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTAykub8a61CpZynvEmH","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm planning three independent fixes for phase 2: removing the whitespace preservation attribute from the SVG root and adding it to individual text elements instead, updating the hex color parser to handle 3-digit shorthand notation, and I need to check how gookit handles this for consistency.\n\nFor the cursor anchor feature, I'm adding fields to track the cursor position across the engine and SVG layers — storing the row and run indices, then marking the anchor after the primary prompt is written. The key insight is that flipping the encode order so decoration happens before fitting actually makes the anchor references consistent, since they'll refer to the raw captured rows rather than post-fitted rows.\n\nI need to verify where `markCursorAnchor` should be called — right after `writePrimaryPromptInternal` in `primaryInternal` seems right, though I'm checking whether the final space is included in that call and how it affects the anchor position.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":148514,"cache_read_input_tokens":33510,"output_tokens":1289,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":148514,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1289,"cache_read_input_tokens":33510,"cache_creation_input_tokens":148514,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":148514},"type":"message"}],"speed":"standard"},"diagnostics":{"cache_miss_reason":{"type":"previous_message_not_found"}}},"requestId":"req_011CdTAyhr3NsvmuHn57w9PE","type":"assistant","uuid":"0292d9d4-976f-46d1-afab-64b317cf38e3","timestamp":"2026-07-27T20:13:06.456Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0292d9d4-976f-46d1-afab-64b317cf38e3","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTAykub8a61CpZynvEmH","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01CY1WhSNVdJoZG6Z8LiwAJ8","name":"Bash","input":{"command":"sed -n '120,160p' src/prompt/primary.go; echo \"=== gookit HEX ===\"; find ~/go/pkg/mod/github.com/gookit -name \"*.go\" -path \"*color*\" 2>/dev/null | head -3","description":"Read final space handling and locate gookit"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":148514,"cache_read_input_tokens":33510,"output_tokens":1289,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":148514,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1289,"cache_read_input_tokens":33510,"cache_creation_input_tokens":148514,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":148514},"type":"message"}],"speed":"standard"},"diagnostics":{"cache_miss_reason":{"type":"previous_message_not_found"}}},"requestId":"req_011CdTAyhr3NsvmuHn57w9PE","type":"assistant","uuid":"3432abe7-0f2f-43fd-8ecb-3ce5c42fede5","timestamp":"2026-07-27T20:13:06.934Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3432abe7-0f2f-43fd-8ecb-3ce5c42fede5","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01CY1WhSNVdJoZG6Z8LiwAJ8","type":"tool_result","content":"\t\t}\n\n\t\t// Choose render method based on whether we're rendering from cache\n\t\tvar rendered bool\n\t\tif fromCache {\n\t\t\trendered = e.renderBlockFromCache(block, cancelNewline)\n\t\t} else {\n\t\t\trendered = e.renderLaunchedBlock(block, allResults[i], executed, cancelNewline)\n\t\t}\n\n\t\tif rendered {\n\t\t\tdidRender = true\n\t\t}\n\t}\n\n\t// Only handle tooltip caching in regular (non-cached) rendering, once per\n\t// prompt rather than once per block.\n\tif !fromCache && !e.Config.ToolTipsAction.IsDefault() {\n\t\tcache.Set(cache.Session, RPromptKey, e.rprompt, cache.INFINITE)\n\t\tcache.Set(cache.Session, RPromptLengthKey, e.rpromptLength, cache.INFINITE)\n\t}\n\n\tif len(e.Config.ConsoleTitleTemplate) > 0 && !e.Env.Flags().Plain {\n\t\ttitle := e.getTitleTemplateText()\n\t\te.write(terminal.FormatTitle(title))\n\t}\n\n\tif e.Config.FinalSpace {\n\t\te.write(\" \")\n\t\te.currentLineLength++\n\t}\n\n\tif e.Config.ITermFeatures != nil && e.isIterm() {\n\t\thost, _ := e.Env.Host()\n\t\te.write(terminal.RenderItermFeatures(e.Config.ITermFeatures, e.Env.Shell(), e.Env.Pwd(), e.Env.User(), host))\n\t}\n\n\tif e.Config.ShellIntegration {\n\t\te.write(terminal.CommandStart())\n\t}\n\n=== gookit HEX ===\n/c/Users/jande/go/pkg/mod/github.com/gookit/color@v1.5.4/any.go\n/c/Users/jande/go/pkg/mod/github.com/gookit/color@v1.5.4/color.go\n/c/Users/jande/go/pkg/mod/github.com/gookit/color@v1.5.4/colorp/any.go","is_error":false}]},"uuid":"ceb90361-8c00-4554-bada-aaef55b8ee38","timestamp":"2026-07-27T20:13:10.944Z","toolUseResult":{"stdout":"\t\t}\n\n\t\t// Choose render method based on whether we're rendering from cache\n\t\tvar rendered bool\n\t\tif fromCache {\n\t\t\trendered = e.renderBlockFromCache(block, cancelNewline)\n\t\t} else {\n\t\t\trendered = e.renderLaunchedBlock(block, allResults[i], executed, cancelNewline)\n\t\t}\n\n\t\tif rendered {\n\t\t\tdidRender = true\n\t\t}\n\t}\n\n\t// Only handle tooltip caching in regular (non-cached) rendering, once per\n\t// prompt rather than once per block.\n\tif !fromCache && !e.Config.ToolTipsAction.IsDefault() {\n\t\tcache.Set(cache.Session, RPromptKey, e.rprompt, cache.INFINITE)\n\t\tcache.Set(cache.Session, RPromptLengthKey, e.rpromptLength, cache.INFINITE)\n\t}\n\n\tif len(e.Config.ConsoleTitleTemplate) > 0 && !e.Env.Flags().Plain {\n\t\ttitle := e.getTitleTemplateText()\n\t\te.write(terminal.FormatTitle(title))\n\t}\n\n\tif e.Config.FinalSpace {\n\t\te.write(\" \")\n\t\te.currentLineLength++\n\t}\n\n\tif e.Config.ITermFeatures != nil && e.isIterm() {\n\t\thost, _ := e.Env.Host()\n\t\te.write(terminal.RenderItermFeatures(e.Config.ITermFeatures, e.Env.Shell(), e.Env.Pwd(), e.Env.User(), host))\n\t}\n\n\tif e.Config.ShellIntegration {\n\t\te.write(terminal.CommandStart())\n\t}\n\n=== gookit HEX ===\n/c/Users/jande/go/pkg/mod/github.com/gookit/color@v1.5.4/any.go\n/c/Users/jande/go/pkg/mod/github.com/gookit/color@v1.5.4/color.go\n/c/Users/jande/go/pkg/mod/github.com/gookit/color@v1.5.4/colorp/any.go","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"3432abe7-0f2f-43fd-8ecb-3ce5c42fede5","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ceb90361-8c00-4554-bada-aaef55b8ee38","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTB1Sg2iAeo5fs9yVsnt","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm noticing that `FinalSpace` writes a space directly through the engine's builder rather than through the terminal's Write method, which means it doesn't generate a Run in the stream—so that final space gets lost. This affects the cursor positioning since the gap calculation relies on currentLineLength, and the cursor anchor ends up one cell too early.\n\nLooking at the glowsticks SVG, the gap run starts at 577.8 with 53 cells, and if final_space is enabled, those 53 cells already account for the space—so visually it's correct, but the run stream shows 53 blank cells instead of splitting it into 1 space plus 52 gap cells. The cursor anchor lands right where the reference PNG shows the underscore, so that checks out.\n\nNow moving on to gookit's HEX parsing.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1972,"cache_read_input_tokens":182024,"output_tokens":676,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1972,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":676,"cache_read_input_tokens":182024,"cache_creation_input_tokens":1972,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1972},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTB1PU3u7pBFSeRkUMXB","type":"assistant","uuid":"eff25e5b-499e-4085-83d7-eef568fbfb23","timestamp":"2026-07-27T20:13:22.640Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"eff25e5b-499e-4085-83d7-eef568fbfb23","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTB1Sg2iAeo5fs9yVsnt","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017jkkZBk81pooaeHR8uH5wY","name":"Bash","input":{"command":"grep -rn \"func HEX\\|func Hex2rgb\\|func HexToRGB\\|func HEXStyle\" ~/go/pkg/mod/github.com/gookit/color@v1.5.4/*.go","description":"Locate gookit HEX implementation"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1972,"cache_read_input_tokens":182024,"output_tokens":676,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1972,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":676,"cache_read_input_tokens":182024,"cache_creation_input_tokens":1972,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1972},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTB1PU3u7pBFSeRkUMXB","type":"assistant","uuid":"175ba832-1424-438d-8ddb-8ca9339aa84b","timestamp":"2026-07-27T20:13:22.671Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"175ba832-1424-438d-8ddb-8ca9339aa84b","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017jkkZBk81pooaeHR8uH5wY","type":"tool_result","content":"/c/Users/jande/go/pkg/mod/github.com/gookit/color@v1.5.4/color_rgb.go:104:func HEX(hex string, isBg ...bool) RGBColor {\n/c/Users/jande/go/pkg/mod/github.com/gookit/color@v1.5.4/color_rgb.go:328:func HEXStyle(fg string, bg ...string) *RGBStyle {\n/c/Users/jande/go/pkg/mod/github.com/gookit/color@v1.5.4/convert.go:424:func Hex2rgb(hex string) []int { return HexToRgb(hex) }\n/c/Users/jande/go/pkg/mod/github.com/gookit/color@v1.5.4/convert.go:427:func HexToRGB(hex string) []int { return HexToRgb(hex) }","is_error":false}]},"uuid":"421c6de7-4a35-42bc-9848-2f71763e2a0d","timestamp":"2026-07-27T20:13:25.892Z","toolUseResult":{"stdout":"/c/Users/jande/go/pkg/mod/github.com/gookit/color@v1.5.4/color_rgb.go:104:func HEX(hex string, isBg ...bool) RGBColor {\n/c/Users/jande/go/pkg/mod/github.com/gookit/color@v1.5.4/color_rgb.go:328:func HEXStyle(fg string, bg ...string) *RGBStyle {\n/c/Users/jande/go/pkg/mod/github.com/gookit/color@v1.5.4/convert.go:424:func Hex2rgb(hex string) []int { return HexToRgb(hex) }\n/c/Users/jande/go/pkg/mod/github.com/gookit/color@v1.5.4/convert.go:427:func HexToRGB(hex string) []int { return HexToRgb(hex) }","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"175ba832-1424-438d-8ddb-8ca9339aa84b","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"421c6de7-4a35-42bc-9848-2f71763e2a0d","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"c5bdee23-9136-48ef-b033-2bf66709c239","timestamp":"2026-07-27T20:13:25.894Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c5bdee23-9136-48ef-b033-2bf66709c239","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTB2YXHvYkoEr3RXmoFN","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01PiuHzCr7fYzzMHdrap7Gnq","name":"Bash","input":{"command":"sed -n '425,470p' ~/go/pkg/mod/github.com/gookit/color@v1.5.4/convert.go","description":"Read gookit HexToRgb"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1092,"cache_read_input_tokens":183996,"output_tokens":120,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1092,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":120,"cache_read_input_tokens":183996,"cache_creation_input_tokens":1092,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1092},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTB2WXVJnb6iTFguu4nE","type":"assistant","uuid":"210dbe19-d7c7-4447-8e1b-39fe0240759d","timestamp":"2026-07-27T20:13:28.358Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"210dbe19-d7c7-4447-8e1b-39fe0240759d","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01PiuHzCr7fYzzMHdrap7Gnq","type":"tool_result","content":"// HexToRGB alias of the HexToRgb()\nfunc HexToRGB(hex string) []int { return HexToRgb(hex) }\n\n// HexToRgb convert hex color string to RGB numbers\n//\n// Usage:\n//\n//\trgb := HexToRgb(\"ccc\") // rgb: [204 204 204]\n//\trgb := HexToRgb(\"aabbcc\") // rgb: [170 187 204]\n//\trgb := HexToRgb(\"#aabbcc\") // rgb: [170 187 204]\n//\trgb := HexToRgb(\"0xad99c0\") // rgb: [170 187 204]\nfunc HexToRgb(hex string) (rgb []int) {\n\thex = strings.TrimSpace(hex)\n\tif hex == \"\" {\n\t\treturn\n\t}\n\n\t// like from css. eg \"#ccc\" \"#ad99c0\"\n\tif hex[0] == '#' {\n\t\thex = hex[1:]\n\t}\n\n\thex = strings.ToLower(hex)\n\tswitch len(hex) {\n\tcase 3: // \"ccc\"\n\t\thex = string([]byte{hex[0], hex[0], hex[1], hex[1], hex[2], hex[2]})\n\tcase 8: // \"0xad99c0\"\n\t\thex = strings.TrimPrefix(hex, \"0x\")\n\t}\n\n\t// recheck\n\tif len(hex) != 6 {\n\t\treturn\n\t}\n\n\t// convert string to int64\n\tif i64, err := strconv.ParseInt(hex, 16, 32); err == nil {\n\t\tcolor := int(i64)\n\t\t// parse int\n\t\trgb = make([]int, 3)\n\t\trgb[0] = color >> 16\n\t\trgb[1] = (color & 0x00FF00) >> 8\n\t\trgb[2] = color & 0x0000FF\n\t}\n\treturn","is_error":false}]},"uuid":"a9c4bd0d-9723-4381-a655-dfda92ff4b31","timestamp":"2026-07-27T20:13:31.418Z","toolUseResult":{"stdout":"// HexToRGB alias of the HexToRgb()\nfunc HexToRGB(hex string) []int { return HexToRgb(hex) }\n\n// HexToRgb convert hex color string to RGB numbers\n//\n// Usage:\n//\n//\trgb := HexToRgb(\"ccc\") // rgb: [204 204 204]\n//\trgb := HexToRgb(\"aabbcc\") // rgb: [170 187 204]\n//\trgb := HexToRgb(\"#aabbcc\") // rgb: [170 187 204]\n//\trgb := HexToRgb(\"0xad99c0\") // rgb: [170 187 204]\nfunc HexToRgb(hex string) (rgb []int) {\n\thex = strings.TrimSpace(hex)\n\tif hex == \"\" {\n\t\treturn\n\t}\n\n\t// like from css. eg \"#ccc\" \"#ad99c0\"\n\tif hex[0] == '#' {\n\t\thex = hex[1:]\n\t}\n\n\thex = strings.ToLower(hex)\n\tswitch len(hex) {\n\tcase 3: // \"ccc\"\n\t\thex = string([]byte{hex[0], hex[0], hex[1], hex[1], hex[2], hex[2]})\n\tcase 8: // \"0xad99c0\"\n\t\thex = strings.TrimPrefix(hex, \"0x\")\n\t}\n\n\t// recheck\n\tif len(hex) != 6 {\n\t\treturn\n\t}\n\n\t// convert string to int64\n\tif i64, err := strconv.ParseInt(hex, 16, 32); err == nil {\n\t\tcolor := int(i64)\n\t\t// parse int\n\t\trgb = make([]int, 3)\n\t\trgb[0] = color >> 16\n\t\trgb[1] = (color & 0x00FF00) >> 8\n\t\trgb[2] = color & 0x0000FF\n\t}\n\treturn","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"210dbe19-d7c7-4447-8e1b-39fe0240759d","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a9c4bd0d-9723-4381-a655-dfda92ff4b31","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTB2x87UFdoJ2cHrEnfP","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Gookit handles various hex color formats—3-digit codes that get expanded, 6-digit, and 8-digit with `0x` prefix—all case-insensitive with optional leading `#`. The issue is that our `resolveChannel` function only routes to `hexToRGB` when input starts with `#`, so formats like `0xad99c0` would fail the earlier checks and fall through to a base-10 ParseUint, ultimately returning nil.\n\nLooking at how omp's ToAnsi handles this: it rejects non-`#` prefixed strings outright, but gookit's preprocessing strips the `#` first, then handles the `0x` prefix by trimming it from 8-character strings. So `#0xad99c0` becomes valid in omp's pipeline through gookit's normalization.\n\nTo match gookit's behavior exactly, I need to implement hexToRGB with the same rules: strip `#`, lowercase, expand 3-digit codes, trim `0x` from 8-digit strings, and validate the final result is 6 digits. Then I'll tackle the whitespace handling in the SVG output—removing the `white-space` CSS property since `xml:space=\"preserve\"` handles it more universally for tools like resvg.\n\nNow I need to locate the Engine struct in prompt/runs.go to add the cursor anchor fields.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":711,"cache_read_input_tokens":185088,"output_tokens":841,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":711,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":841,"cache_read_input_tokens":185088,"cache_creation_input_tokens":711,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":711},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTB2tsuJHfLMZmYgGyTo","type":"assistant","uuid":"7dbb4e42-dc17-4a12-a23f-e8ece022ac54","timestamp":"2026-07-27T20:13:46.275Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7dbb4e42-dc17-4a12-a23f-e8ece022ac54","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTB2x87UFdoJ2cHrEnfP","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01KmS7bBHaawyiuVhC3CdmA6","name":"Bash","input":{"command":"grep -n \"capturedRows\\|pendingBlockRuns\\|pendingFillerRuns\\|rpromptRuns\" src/prompt/engine.go | head","description":"Locate Engine run-capture fields"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":711,"cache_read_input_tokens":185088,"output_tokens":841,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":711,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":841,"cache_read_input_tokens":185088,"cache_creation_input_tokens":711,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":711},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTB2tsuJHfLMZmYgGyTo","type":"assistant","uuid":"dd19fee0-129e-4d31-9f10-01aab5a3346a","timestamp":"2026-07-27T20:13:46.304Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dd19fee0-129e-4d31-9f10-01aab5a3346a","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01KmS7bBHaawyiuVhC3CdmA6","type":"tool_result","content":"51:\t// capturedRows/pendingBlockRuns/pendingFillerRuns/rpromptRuns are the Run\n57:\tcapturedRows [][]terminal.Run\n58:\tpendingBlockRuns []terminal.Run\n59:\tpendingFillerRuns []terminal.Run\n60:\trpromptRuns []terminal.Run\n285:\t\t\te.appendCapturedRuns(nil, e.pendingBlockRuns)\n324:\t\t\te.appendCapturedRuns(e.fillerCaptureRuns(space), e.pendingBlockRuns)\n333:\t\te.appendCapturedRuns(gapRun(space), e.pendingBlockRuns)\n337:\t\te.rpromptRuns = e.pendingBlockRuns","is_error":false}]},"uuid":"afc8fdbe-9d92-4f33-843b-0468ee76c7dc","timestamp":"2026-07-27T20:13:47.321Z","toolUseResult":{"stdout":"51:\t// capturedRows/pendingBlockRuns/pendingFillerRuns/rpromptRuns are the Run\n57:\tcapturedRows [][]terminal.Run\n58:\tpendingBlockRuns []terminal.Run\n59:\tpendingFillerRuns []terminal.Run\n60:\trpromptRuns []terminal.Run\n285:\t\t\te.appendCapturedRuns(nil, e.pendingBlockRuns)\n324:\t\t\te.appendCapturedRuns(e.fillerCaptureRuns(space), e.pendingBlockRuns)\n333:\t\te.appendCapturedRuns(gapRun(space), e.pendingBlockRuns)\n337:\t\te.rpromptRuns = e.pendingBlockRuns","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"dd19fee0-129e-4d31-9f10-01aab5a3346a","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"afc8fdbe-9d92-4f33-843b-0468ee76c7dc","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTB47cPzpzxjgiqVPFX8","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01LaaAWCLvfgY6ecYva3Boka","name":"Read","input":{"file_path":"D:\\oh-my-posh\\src\\prompt\\engine.go","offset":40,"limit":30},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1100,"cache_read_input_tokens":185799,"output_tokens":112,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1100,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":112,"cache_read_input_tokens":185799,"cache_creation_input_tokens":1100,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1100},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTB45Ni65n1JS3iVeU5z","type":"assistant","uuid":"e08074f2-442b-4bc2-8040-72d86fca49be","timestamp":"2026-07-27T20:13:50.025Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e08074f2-442b-4bc2-8040-72d86fca49be","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01LaaAWCLvfgY6ecYva3Boka","type":"tool_result","content":"40\t\tpendingSegments sync.Map\n41\t\trprompt string\n42\t\tOverflow config.Overflow\n43\t\tprompt strings.Builder\n44\t\tallBlocks []*config.Block\n45\t\tcurrentLineLength int\n46\t\tPadding int\n47\t\trpromptLength int\n48\t\tPlain bool\n49\t\tforceRender bool\n50\t\n51\t\t// capturedRows/pendingBlockRuns/pendingFillerRuns/rpromptRuns are the Run\n52\t\t// stream's engine-side counterpart to prompt/rprompt/blockText/length\n53\t\t// above, populated only when terminal.CaptureRuns is set (see runs.go).\n54\t\t// A []terminal.Run mirroring blockText would need its own field per\n55\t\t// intermediate string, so this rides alongside instead of replacing any\n56\t\t// of them.\n57\t\tcapturedRows [][]terminal.Run\n58\t\tpendingBlockRuns []terminal.Run\n59\t\tpendingFillerRuns []terminal.Run\n60\t\trpromptRuns []terminal.Run\n61\t}\n62\t\n63\tconst (\n64\t\tPRIMARY = \"primary\"\n65\t\tTRANSIENT = \"transient\"\n66\t\tTRANSIENT_RIGHT = \"transient-right\"\n67\t\tDEBUG = \"debug\"\n68\t\tSECONDARY = \"secondary\"\n69\t\tRIGHT = \"right\""}]},"uuid":"a457dcc9-13eb-4e1e-8ac8-c94d780d7b94","timestamp":"2026-07-27T20:13:50.058Z","toolUseResult":{"type":"text","file":{"filePath":"D:\\oh-my-posh\\src\\prompt\\engine.go","content":"\tpendingSegments sync.Map\n\trprompt string\n\tOverflow config.Overflow\n\tprompt strings.Builder\n\tallBlocks []*config.Block\n\tcurrentLineLength int\n\tPadding int\n\trpromptLength int\n\tPlain bool\n\tforceRender bool\n\n\t// capturedRows/pendingBlockRuns/pendingFillerRuns/rpromptRuns are the Run\n\t// stream's engine-side counterpart to prompt/rprompt/blockText/length\n\t// above, populated only when terminal.CaptureRuns is set (see runs.go).\n\t// A []terminal.Run mirroring blockText would need its own field per\n\t// intermediate string, so this rides alongside instead of replacing any\n\t// of them.\n\tcapturedRows [][]terminal.Run\n\tpendingBlockRuns []terminal.Run\n\tpendingFillerRuns []terminal.Run\n\trpromptRuns []terminal.Run\n}\n\nconst (\n\tPRIMARY = \"primary\"\n\tTRANSIENT = \"transient\"\n\tTRANSIENT_RIGHT = \"transient-right\"\n\tDEBUG = \"debug\"\n\tSECONDARY = \"secondary\"\n\tRIGHT = \"right\"","numLines":30,"startLine":40,"totalLines":906}},"sourceToolAssistantUUID":"e08074f2-442b-4bc2-8040-72d86fca49be","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a457dcc9-13eb-4e1e-8ac8-c94d780d7b94","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTB4KhRPvxn2BjPzLMDT","type":"message","role":"assistant","content":[{"type":"text","text":"Now the three fixes. Starting with whitespace and hex parsing:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":574,"cache_read_input_tokens":186899,"output_tokens":273,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":574,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":273,"cache_read_input_tokens":186899,"cache_creation_input_tokens":574,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":574},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTB4Gi692vkarDkU32TQ","type":"assistant","uuid":"e5cdaefa-5308-4845-80c3-9bb34ce7e805","timestamp":"2026-07-27T20:13:52.609Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e5cdaefa-5308-4845-80c3-9bb34ce7e805","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTB4KhRPvxn2BjPzLMDT","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01YSAUKNfmjNdEiK7xm8497E","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\svg\\svg.go","old_string":"\tb.WriteString(`\" font-size=\"`)\n\tb.WriteString(formatFloat(opts.FontSize))\n\tb.WriteString(`px\" white-space=\"pre\">`)\n\tb.WriteString(\"\\n\")","new_string":"\tb.WriteString(`\" font-size=\"`)\n\tb.WriteString(formatFloat(opts.FontSize))\n\tb.WriteString(`px\">`)\n\tb.WriteString(\"\\n\")"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":574,"cache_read_input_tokens":186899,"output_tokens":273,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":574,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":273,"cache_read_input_tokens":186899,"cache_creation_input_tokens":574,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":574},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTB4Gi692vkarDkU32TQ","type":"assistant","uuid":"4fc3acf3-2fd1-4400-b454-36073513696b","timestamp":"2026-07-27T20:13:54.659Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4fc3acf3-2fd1-4400-b454-36073513696b","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01YSAUKNfmjNdEiK7xm8497E","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\svg\\svg.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"3fe746d0-1934-477e-96a6-5af89adf6709","timestamp":"2026-07-27T20:13:54.721Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\svg\\svg.go","oldString":"\tb.WriteString(`\" font-size=\"`)\n\tb.WriteString(formatFloat(opts.FontSize))\n\tb.WriteString(`px\" white-space=\"pre\">`)\n\tb.WriteString(\"\\n\")","newString":"\tb.WriteString(`\" font-size=\"`)\n\tb.WriteString(formatFloat(opts.FontSize))\n\tb.WriteString(`px\">`)\n\tb.WriteString(\"\\n\")","originalFile":null,"structuredPatch":[{"oldStart":262,"oldLines":7,"newStart":262,"newLines":7,"lines":[" b.WriteString(escapeAttr(opts.FontFamily))"," b.WriteString(`\" font-size=\"`)"," b.WriteString(formatFloat(opts.FontSize))","- b.WriteString(`px\" white-space=\"pre\">`)","+ b.WriteString(`px\">`)"," b.WriteString(\"\\n\")"," "," if blinkClass != \"\" {"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"4fc3acf3-2fd1-4400-b454-36073513696b","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3fe746d0-1934-477e-96a6-5af89adf6709","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTB4gECMR8SHAvmvuHZX","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01EwvsyKZEskJZmDbLFWXhVR","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\svg\\svg.go","old_string":"// font-family/font-size/white-space are written as presentation attributes\n// on the root element rather than a \", s):\n attrs, body = m.group(1), m.group(2)\n\n if not body:\n continue\n\n tl = re.search(r'textLength=\"([\\d.]+)\"', attrs)\n x = re.search(r'x=\"([\\d.]+)\"', attrs)\n tl = tl.group(1) if tl else \"?\"\n x = x.group(1) if x else \"?\"\n\n print(f\"x={x:>9} textLength={tl:>8} chars={len(body):3} {body!r}\")\n\n if any(ord(c) > 0xE000 for c in body):\n print(\" \", \" \".join(\"U+%04X\" % ord(c) for c in body))\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"6e92dfb5-2fb7-4747-8e46-9393d5002d4d","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8b0c3a5d-e920-4c56-8553-ec9ffefcedde","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBV6qTR8aDQH4fxtKdA","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01JRKaHz6UmRnxPSXAL7PLQf","name":"Bash","input":{"command":"python \"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/runs.py\" /d/oh-my-posh/tools/svg-png-compare/out/glowsticks.svg","description":"Dump glowsticks SVG runs"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":516,"cache_read_input_tokens":224934,"output_tokens":186,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":516,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":186,"cache_read_input_tokens":224934,"cache_creation_input_tokens":516,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":516},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBV18uoNjw2PpkFYyby","type":"assistant","uuid":"d9aa9860-27a7-420b-ac38-e06c487841b8","timestamp":"2026-07-27T20:19:31.018Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d9aa9860-27a7-420b-ac38-e06c487841b8","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01JRKaHz6UmRnxPSXAL7PLQf","type":"tool_result","content":"x= 48 textLength= 9.63 chars= 1 '\\ue0b6'\r\n U+E0B6\r\nx= 57.63 textLength= 202.29 chars= 21 'alice@contoso-devbox '\r\nx= 259.92 textLength= 9.63 chars= 1 '\\ue0b0'\r\n U+E0B0\r\nx= 269.55 textLength= 192.66 chars= 20 ' \\uf07b ~/dev/oh-my-posh '\r\n U+0020 U+F07B U+0020 U+007E U+002F U+0064 U+0065 U+0076 U+002F U+006F U+0068 U+002D U+006D U+0079 U+002D U+0070 U+006F U+0073 U+0068 U+0020\r\nx= 462.21 textLength= 9.63 chars= 1 '\\ue0b0'\r\n U+E0B0\r\nx= 471.84 textLength= 57.8 chars= 6 ' \\U000f051f0ms '\r\n U+0020 U+F051F U+0030 U+006D U+0073 U+0020\r\nx= 529.64 textLength= 9.63 chars= 1 '\\ue0b0'\r\n U+E0B0\r\nx= 539.27 textLength= 28.9 chars= 3 ' \\uf00c '\r\n U+0020 U+F00C U+0020\r\nx= 568.17 textLength= 9.63 chars= 1 '\\ue0b4'\r\n U+E0B4\r\nx= 577.8 textLength= 9.63 chars= 1 '_'\r\nx= 587.44 textLength= 500.91 chars= 52 ' '\r\nx= 1088.34 textLength= 9.63 chars= 1 '\\ue0b6'\r\n U+E0B6\r\nx= 1097.98 textLength= 67.43 chars= 7 '\\uf120 shell'\r\n U+F120 U+0020 U+0073 U+0068 U+0065 U+006C U+006C\r\nx= 1165.41 textLength= 9.63 chars= 1 '\\ue0b2'\r\n U+E0B2\r\nx= 1175.04 textLength= 9.63 chars= 1 '\\ue0b2'\r\n U+E0B2\r\nx= 1184.67 textLength= 9.63 chars= 1 '\\U000f008a'\r\n U+F008A\r\nx= 48 textLength= 115.59 chars= 12 'ohmyposh.dev'","is_error":false}]},"uuid":"2320bc36-dc0a-4c3c-ab7a-93d8a0f810c3","timestamp":"2026-07-27T20:19:35.343Z","toolUseResult":{"stdout":"x= 48 textLength= 9.63 chars= 1 '\\ue0b6'\r\n U+E0B6\r\nx= 57.63 textLength= 202.29 chars= 21 'alice@contoso-devbox '\r\nx= 259.92 textLength= 9.63 chars= 1 '\\ue0b0'\r\n U+E0B0\r\nx= 269.55 textLength= 192.66 chars= 20 ' \\uf07b ~/dev/oh-my-posh '\r\n U+0020 U+F07B U+0020 U+007E U+002F U+0064 U+0065 U+0076 U+002F U+006F U+0068 U+002D U+006D U+0079 U+002D U+0070 U+006F U+0073 U+0068 U+0020\r\nx= 462.21 textLength= 9.63 chars= 1 '\\ue0b0'\r\n U+E0B0\r\nx= 471.84 textLength= 57.8 chars= 6 ' \\U000f051f0ms '\r\n U+0020 U+F051F U+0030 U+006D U+0073 U+0020\r\nx= 529.64 textLength= 9.63 chars= 1 '\\ue0b0'\r\n U+E0B0\r\nx= 539.27 textLength= 28.9 chars= 3 ' \\uf00c '\r\n U+0020 U+F00C U+0020\r\nx= 568.17 textLength= 9.63 chars= 1 '\\ue0b4'\r\n U+E0B4\r\nx= 577.8 textLength= 9.63 chars= 1 '_'\r\nx= 587.44 textLength= 500.91 chars= 52 ' '\r\nx= 1088.34 textLength= 9.63 chars= 1 '\\ue0b6'\r\n U+E0B6\r\nx= 1097.98 textLength= 67.43 chars= 7 '\\uf120 shell'\r\n U+F120 U+0020 U+0073 U+0068 U+0065 U+006C U+006C\r\nx= 1165.41 textLength= 9.63 chars= 1 '\\ue0b2'\r\n U+E0B2\r\nx= 1175.04 textLength= 9.63 chars= 1 '\\ue0b2'\r\n U+E0B2\r\nx= 1184.67 textLength= 9.63 chars= 1 '\\U000f008a'\r\n U+F008A\r\nx= 48 textLength= 115.59 chars= 12 'ohmyposh.dev'","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"d9aa9860-27a7-420b-ac38-e06c487841b8","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2320bc36-dc0a-4c3c-ab7a-93d8a0f810c3","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBVnY9tTdspvHhNXmxz","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm verifying the character widths in the markup — the folder icon and timestamp are rendering correctly with proper cell alignment, each character taking up exactly one cell width in the SVG text layout.\n\nBut the folder icon's visual ink is wider than its single-cell advance width (up to 1.83 cells), so it overflows and covers the trailing space — which matches how terminals handle it. Yet the reference PNG shows a clear gap around the icon, suggesting the old renderer allocated 2 cells of advance for Nerd Font glyphs using a `doubleWidthRunes` table. That's the trade-off: the font metrics say 1 cell, but the visual result looks better with 2 cells of space, and my earlier commit removed that special handling in favor of trusting the font data directly.\n\nThe real issue is that `HackNerdFont-Regular.ttf` (the non-Mono variant) actually has double-width icons, while `HackNerdFontMono-Regular.ttf` squeezes them to 1 cell — and the old renderer was using the non-Mono variant, so `doubleWidthRunes` was correct for that font. I need to measure the actual advance widths in both font files for the specific glyphs in use to decide whether to use the Mono variant or keep the 2-cell allocation.\n\nWriting metrics script... The real question is whether the terminal rendering is what matters, or if I should match the reference PNG exactly — but the terminal is what users actually see. Let me extract both font files and measure the glyph advances directly to settle this.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":981,"cache_read_input_tokens":225450,"output_tokens":2984,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":981,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2984,"cache_read_input_tokens":225450,"cache_creation_input_tokens":981,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":981},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBViqQZGBKiAoLVysnB","type":"assistant","uuid":"009f91be-dab1-4a2f-9bd1-9513d34cc41b","timestamp":"2026-07-27T20:19:56.944Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"009f91be-dab1-4a2f-9bd1-9513d34cc41b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBVnY9tTdspvHhNXmxz","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017LfZFLPyeg92Q6x8qJxzvY","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\advances.py","content":"\"\"\"Report the horizontal advance, in cells, of specific codepoints in one or\nmore TTFs. A cell is the advance of ASCII 'M'.\"\"\"\nimport struct\nimport sys\n\n\ndef tables(data):\n n = struct.unpack(\">H\", data[4:6])[0]\n out = {}\n for i in range(n):\n off = 12 + i * 16\n tag = data[off:off + 4].decode(\"latin-1\")\n to, tl = struct.unpack(\">II\", data[off + 8:off + 16])\n out[tag] = (to, tl)\n return out\n\n\ndef cmap_lookup(data, t):\n base = t[\"cmap\"][0]\n count = struct.unpack(\">H\", data[base + 2:base + 4])[0]\n best = None\n for i in range(count):\n pid, eid, off = struct.unpack(\">HHI\", data[base + 4 + i * 8:base + 12 + i * 8])\n fmt = struct.unpack(\">H\", data[base + off:base + off + 2])[0]\n if fmt in (4, 12):\n best = (fmt, base + off) if (best is None or fmt == 12) else best\n fmt, sub = best\n\n mapping = {}\n if fmt == 4:\n segx2 = struct.unpack(\">H\", data[sub + 6:sub + 8])[0]\n seg = segx2 // 2\n ends = struct.unpack(\">%dH\" % seg, data[sub + 14:sub + 14 + segx2])\n starts_off = sub + 16 + segx2\n starts = struct.unpack(\">%dH\" % seg, data[starts_off:starts_off + segx2])\n deltas = struct.unpack(\">%dh\" % seg, data[starts_off + segx2:starts_off + 2 * segx2])\n range_off_base = starts_off + 2 * segx2\n ranges = struct.unpack(\">%dH\" % seg, data[range_off_base:range_off_base + segx2])\n for i in range(seg):\n for c in range(starts[i], min(ends[i], 0xFFFF) + 1):\n if ranges[i] == 0:\n g = (c + deltas[i]) & 0xFFFF\n else:\n addr = range_off_base + i * 2 + ranges[i] + (c - starts[i]) * 2\n g = struct.unpack(\">H\", data[addr:addr + 2])[0]\n if g:\n g = (g + deltas[i]) & 0xFFFF\n if g:\n mapping[c] = g\n else:\n ngroups = struct.unpack(\">I\", data[sub + 12:sub + 16])[0]\n for i in range(ngroups):\n s, e, gid = struct.unpack(\">III\", data[sub + 16 + i * 12:sub + 28 + i * 12])\n for c in range(s, e + 1):\n mapping[c] = gid + (c - s)\n return mapping\n\n\ndef advances(data, t):\n upem = struct.unpack(\">H\", data[t[\"head\"][0] + 18:t[\"head\"][0] + 20])[0]\n num_h = struct.unpack(\">H\", data[t[\"hhea\"][0] + 34:t[\"hhea\"][0] + 36])[0]\n hmtx = t[\"hmtx\"][0]\n\n def adv(gid):\n i = min(gid, num_h - 1)\n return struct.unpack(\">H\", data[hmtx + i * 4:hmtx + i * 4 + 2])[0]\n\n return upem, adv\n\n\nCODEPOINTS = [\n (\"M\", 0x4D), (\"space\", 0x20),\n (\"E0B0 powerline\", 0xE0B0), (\"E0B6 halfcircle\", 0xE0B6),\n (\"F07B folder\", 0xF07B), (\"F00C check\", 0xF00C),\n (\"F120 terminal\", 0xF120), (\"F051F hourglass\", 0xF051F),\n]\n\nfor path in sys.argv[1:]:\n data = open(path, \"rb\").read()\n t = tables(data)\n cmap = cmap_lookup(data, t)\n upem, adv = advances(data, t)\n cell = adv(cmap[0x4D])\n\n print(path.replace(\"\\\\\", \"/\").split(\"/\")[-1])\n for name, cp in CODEPOINTS:\n gid = cmap.get(cp)\n if gid is None:\n print(f\" {name:18} U+{cp:04X} MISSING\")\n continue\n print(f\" {name:18} U+{cp:04X} advance {adv(gid):5} units = {adv(gid)/cell:.3f} cells ({adv(gid)/upem:.4f} em)\")\n print()\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":981,"cache_read_input_tokens":225450,"output_tokens":2984,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":981,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2984,"cache_read_input_tokens":225450,"cache_creation_input_tokens":981,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":981},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBViqQZGBKiAoLVysnB","type":"assistant","uuid":"48ef2b80-4823-4a2e-983f-6c72405b4b39","timestamp":"2026-07-27T20:20:10.275Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"48ef2b80-4823-4a2e-983f-6c72405b4b39","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017LfZFLPyeg92Q6x8qJxzvY","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\advances.py (file state is current in your context — no need to Read it back)"}]},"uuid":"7edf9abc-6324-4b0f-b9eb-c588d2423817","timestamp":"2026-07-27T20:20:10.361Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\advances.py","content":"\"\"\"Report the horizontal advance, in cells, of specific codepoints in one or\nmore TTFs. A cell is the advance of ASCII 'M'.\"\"\"\nimport struct\nimport sys\n\n\ndef tables(data):\n n = struct.unpack(\">H\", data[4:6])[0]\n out = {}\n for i in range(n):\n off = 12 + i * 16\n tag = data[off:off + 4].decode(\"latin-1\")\n to, tl = struct.unpack(\">II\", data[off + 8:off + 16])\n out[tag] = (to, tl)\n return out\n\n\ndef cmap_lookup(data, t):\n base = t[\"cmap\"][0]\n count = struct.unpack(\">H\", data[base + 2:base + 4])[0]\n best = None\n for i in range(count):\n pid, eid, off = struct.unpack(\">HHI\", data[base + 4 + i * 8:base + 12 + i * 8])\n fmt = struct.unpack(\">H\", data[base + off:base + off + 2])[0]\n if fmt in (4, 12):\n best = (fmt, base + off) if (best is None or fmt == 12) else best\n fmt, sub = best\n\n mapping = {}\n if fmt == 4:\n segx2 = struct.unpack(\">H\", data[sub + 6:sub + 8])[0]\n seg = segx2 // 2\n ends = struct.unpack(\">%dH\" % seg, data[sub + 14:sub + 14 + segx2])\n starts_off = sub + 16 + segx2\n starts = struct.unpack(\">%dH\" % seg, data[starts_off:starts_off + segx2])\n deltas = struct.unpack(\">%dh\" % seg, data[starts_off + segx2:starts_off + 2 * segx2])\n range_off_base = starts_off + 2 * segx2\n ranges = struct.unpack(\">%dH\" % seg, data[range_off_base:range_off_base + segx2])\n for i in range(seg):\n for c in range(starts[i], min(ends[i], 0xFFFF) + 1):\n if ranges[i] == 0:\n g = (c + deltas[i]) & 0xFFFF\n else:\n addr = range_off_base + i * 2 + ranges[i] + (c - starts[i]) * 2\n g = struct.unpack(\">H\", data[addr:addr + 2])[0]\n if g:\n g = (g + deltas[i]) & 0xFFFF\n if g:\n mapping[c] = g\n else:\n ngroups = struct.unpack(\">I\", data[sub + 12:sub + 16])[0]\n for i in range(ngroups):\n s, e, gid = struct.unpack(\">III\", data[sub + 16 + i * 12:sub + 28 + i * 12])\n for c in range(s, e + 1):\n mapping[c] = gid + (c - s)\n return mapping\n\n\ndef advances(data, t):\n upem = struct.unpack(\">H\", data[t[\"head\"][0] + 18:t[\"head\"][0] + 20])[0]\n num_h = struct.unpack(\">H\", data[t[\"hhea\"][0] + 34:t[\"hhea\"][0] + 36])[0]\n hmtx = t[\"hmtx\"][0]\n\n def adv(gid):\n i = min(gid, num_h - 1)\n return struct.unpack(\">H\", data[hmtx + i * 4:hmtx + i * 4 + 2])[0]\n\n return upem, adv\n\n\nCODEPOINTS = [\n (\"M\", 0x4D), (\"space\", 0x20),\n (\"E0B0 powerline\", 0xE0B0), (\"E0B6 halfcircle\", 0xE0B6),\n (\"F07B folder\", 0xF07B), (\"F00C check\", 0xF00C),\n (\"F120 terminal\", 0xF120), (\"F051F hourglass\", 0xF051F),\n]\n\nfor path in sys.argv[1:]:\n data = open(path, \"rb\").read()\n t = tables(data)\n cmap = cmap_lookup(data, t)\n upem, adv = advances(data, t)\n cell = adv(cmap[0x4D])\n\n print(path.replace(\"\\\\\", \"/\").split(\"/\")[-1])\n for name, cp in CODEPOINTS:\n gid = cmap.get(cp)\n if gid is None:\n print(f\" {name:18} U+{cp:04X} MISSING\")\n continue\n print(f\" {name:18} U+{cp:04X} advance {adv(gid):5} units = {adv(gid)/cell:.3f} cells ({adv(gid)/upem:.4f} em)\")\n print()\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"48ef2b80-4823-4a2e-983f-6c72405b4b39","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7edf9abc-6324-4b0f-b9eb-c588d2423817","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBYMydF67j82Pwn2k8y","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01NHS6EAhHSsBRawgsKsDKWS","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\extract.py","content":"import os\nimport sys\nimport zipfile\n\nsrc, dest = sys.argv[1], sys.argv[2]\nos.makedirs(dest, exist_ok=True)\n\nz = zipfile.ZipFile(src)\nfor name in sys.argv[3:]:\n with open(os.path.join(dest, name), \"wb\") as fh:\n fh.write(z.read(name))\n print(\"extracted\", name)\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":3085,"cache_read_input_tokens":226431,"output_tokens":270,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":3085,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":270,"cache_read_input_tokens":226431,"cache_creation_input_tokens":3085,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":3085},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBYK22JGq3AEVdfHuRA","type":"assistant","uuid":"e127b682-34c6-4ada-a545-3efa234fb57f","timestamp":"2026-07-27T20:20:15.197Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e127b682-34c6-4ada-a545-3efa234fb57f","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01NHS6EAhHSsBRawgsKsDKWS","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\extract.py (file state is current in your context — no need to Read it back)"}]},"uuid":"8d954726-52a1-4512-b56c-8f3985561892","timestamp":"2026-07-27T20:20:15.267Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\extract.py","content":"import os\nimport sys\nimport zipfile\n\nsrc, dest = sys.argv[1], sys.argv[2]\nos.makedirs(dest, exist_ok=True)\n\nz = zipfile.ZipFile(src)\nfor name in sys.argv[3:]:\n with open(os.path.join(dest, name), \"wb\") as fh:\n fh.write(z.read(name))\n print(\"extracted\", name)\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"e127b682-34c6-4ada-a545-3efa234fb57f","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8d954726-52a1-4512-b56c-8f3985561892","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBYhmVgwSunSxqepBiN","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017zKEzy2a5L5wMRNvtRDzRv","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/extract.py\" \"C:/Users/jande/AppData/Local/oh-my-posh/Hack.zip\" \"$TMPDIR/fonts\" HackNerdFont-Regular.ttf HackNerdFontMono-Regular.ttf && python \"$SP/advances.py\" \"$TMPDIR/fonts/HackNerdFont-Regular.ttf\" \"$TMPDIR/fonts/HackNerdFontMono-Regular.ttf\"","description":"Measure glyph advances in both Hack variants"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":371,"cache_read_input_tokens":229516,"output_tokens":313,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":371,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":313,"cache_read_input_tokens":229516,"cache_creation_input_tokens":371,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":371},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBYfCDctHgWSdb8PYcb","type":"assistant","uuid":"4cf8ff8c-9627-42fc-ad4c-cf1ed45f406c","timestamp":"2026-07-27T20:20:21.614Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4cf8ff8c-9627-42fc-ad4c-cf1ed45f406c","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017zKEzy2a5L5wMRNvtRDzRv","type":"tool_result","content":"extracted HackNerdFont-Regular.ttf\r\nextracted HackNerdFontMono-Regular.ttf\r\nHackNerdFont-Regular.ttf\r\n M U+004D advance 1233 units = 1.000 cells (0.6021 em)\r\n space U+0020 advance 1233 units = 1.000 cells (0.6021 em)\r\n E0B0 powerline U+E0B0 advance 1233 units = 1.000 cells (0.6021 em)\r\n E0B6 halfcircle U+E0B6 advance 1233 units = 1.000 cells (0.6021 em)\r\n F07B folder U+F07B advance 1233 units = 1.000 cells (0.6021 em)\r\n F00C check U+F00C advance 1233 units = 1.000 cells (0.6021 em)\r\n F120 terminal U+F120 advance 1233 units = 1.000 cells (0.6021 em)\r\n F051F hourglass U+F051F advance 1233 units = 1.000 cells (0.6021 em)\r\n\r\nHackNerdFontMono-Regular.ttf\r\n M U+004D advance 1233 units = 1.000 cells (0.6021 em)\r\n space U+0020 advance 1233 units = 1.000 cells (0.6021 em)\r\n E0B0 powerline U+E0B0 advance 1233 units = 1.000 cells (0.6021 em)\r\n E0B6 halfcircle U+E0B6 advance 1233 units = 1.000 cells (0.6021 em)\r\n F07B folder U+F07B advance 1233 units = 1.000 cells (0.6021 em)\r\n F00C check U+F00C advance 1233 units = 1.000 cells (0.6021 em)\r\n F120 terminal U+F120 advance 1233 units = 1.000 cells (0.6021 em)\r\n F051F hourglass U+F051F advance 1233 units = 1.000 cells (0.6021 em)","is_error":false}]},"uuid":"c0a57556-7e4b-4df1-a625-08b2b0ce9a97","timestamp":"2026-07-27T20:20:27.964Z","toolUseResult":{"stdout":"extracted HackNerdFont-Regular.ttf\r\nextracted HackNerdFontMono-Regular.ttf\r\nHackNerdFont-Regular.ttf\r\n M U+004D advance 1233 units = 1.000 cells (0.6021 em)\r\n space U+0020 advance 1233 units = 1.000 cells (0.6021 em)\r\n E0B0 powerline U+E0B0 advance 1233 units = 1.000 cells (0.6021 em)\r\n E0B6 halfcircle U+E0B6 advance 1233 units = 1.000 cells (0.6021 em)\r\n F07B folder U+F07B advance 1233 units = 1.000 cells (0.6021 em)\r\n F00C check U+F00C advance 1233 units = 1.000 cells (0.6021 em)\r\n F120 terminal U+F120 advance 1233 units = 1.000 cells (0.6021 em)\r\n F051F hourglass U+F051F advance 1233 units = 1.000 cells (0.6021 em)\r\n\r\nHackNerdFontMono-Regular.ttf\r\n M U+004D advance 1233 units = 1.000 cells (0.6021 em)\r\n space U+0020 advance 1233 units = 1.000 cells (0.6021 em)\r\n E0B0 powerline U+E0B0 advance 1233 units = 1.000 cells (0.6021 em)\r\n E0B6 halfcircle U+E0B6 advance 1233 units = 1.000 cells (0.6021 em)\r\n F07B folder U+F07B advance 1233 units = 1.000 cells (0.6021 em)\r\n F00C check U+F00C advance 1233 units = 1.000 cells (0.6021 em)\r\n F120 terminal U+F120 advance 1233 units = 1.000 cells (0.6021 em)\r\n F051F hourglass U+F051F advance 1233 units = 1.000 cells (0.6021 em)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"4cf8ff8c-9627-42fc-ad4c-cf1ed45f406c","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c0a57556-7e4b-4df1-a625-08b2b0ce9a97","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"0e7ae814-a848-4051-8a86-4b143762aa47","timestamp":"2026-07-27T20:20:27.968Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0e7ae814-a848-4051-8a86-4b143762aa47","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBZfqSKyiEES2QQubRX","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Both variants advance glyphs by exactly 1 cell, so the font itself isn't responsible for the extra spacing in the reference. The old renderer was actually using `doubleWidthRunes` to allocate 2 cells of layout space for these icons as a deliberate workaround, then drawing the glyph at its natural 1-cell width inside that larger box to give it breathing room. Now I'm trying to figure out whether that reference approach was the right design choice or not.\n\nIn a real terminal running Hack Nerd Font, the folder icon takes up one cell but its ink bleeds into the adjacent cell since it's wider than the advance width. So a real terminal would show that same overlap. The reference PNG looks different from what you'd actually see. I need to check the glyph's ink bounding box for U+F07B to see if the overlap is expected or if something else is going on. Let me measure the actual ink width from the font tables rather than keep speculating.\n\nActually, I'm getting sidetracked here — the user reported 4 specific bugs and I should stay focused on those instead of diving into font metrics.\n\nLooking back at bug 1, the spaces are now in the markup and rendering, but the visual gap around icons is tighter than the reference because the reference assumed 2 cells per Nerd Font icon while the terminal and my encoder use 1. I should report this distinction clearly rather than trying to force a double-width layout that I already know is wrong. Let me measure the ink bbox for F07B in Hack Nerd Font to state this precisely.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1117,"cache_read_input_tokens":229887,"output_tokens":1694,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1117,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":1694,"cache_read_input_tokens":229887,"cache_creation_input_tokens":1117,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1117},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBZcFdvXuFtbu1aZMLm","type":"assistant","uuid":"f95ebdf3-43c5-4082-9bf2-875aff5b062f","timestamp":"2026-07-27T20:20:43.944Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f95ebdf3-43c5-4082-9bf2-875aff5b062f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBZfqSKyiEES2QQubRX","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01RHGq9ggGiotp9okLjegvLW","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\ink.py","content":"\"\"\"Report glyph ink width (glyf xMin..xMax) relative to the advance cell.\"\"\"\nimport struct\nimport sys\n\nsys.path.insert(0, sys.argv[-1])\nfrom advances import advances, cmap_lookup, tables # noqa: E402\n\nCODEPOINTS = [(\"M\", 0x4D), (\"E0B0\", 0xE0B0), (\"E0B6\", 0xE0B6), (\"F07B folder\", 0xF07B),\n (\"F00C check\", 0xF00C), (\"F120 terminal\", 0xF120), (\"F051F hourglass\", 0xF051F)]\n\npath = sys.argv[1]\ndata = open(path, \"rb\").read()\nt = tables(data)\ncmap = cmap_lookup(data, t)\nupem, adv = advances(data, t)\ncell = adv(cmap[0x4D])\n\nhead = t[\"head\"][0]\nlong_loca = struct.unpack(\">h\", data[head + 50:head + 52])[0]\nloca, glyf = t[\"loca\"][0], t[\"glyf\"][0]\n\n\ndef bbox(gid):\n if long_loca:\n start, end = struct.unpack(\">II\", data[loca + gid * 4:loca + gid * 4 + 8])\n else:\n a, b = struct.unpack(\">HH\", data[loca + gid * 2:loca + gid * 2 + 4])\n start, end = a * 2, b * 2\n\n if start == end:\n return None\n\n x_min, _, x_max, _ = struct.unpack(\">hhhh\", data[glyf + start + 2:glyf + start + 10])\n return x_min, x_max\n\n\nprint(path.replace(\"\\\\\", \"/\").split(\"/\")[-1], f\"(cell = {cell} units)\")\n\nfor name, cp in CODEPOINTS:\n gid = cmap.get(cp)\n box = bbox(gid) if gid is not None else None\n\n if box is None:\n print(f\" {name:16} no outline\")\n continue\n\n x_min, x_max = box\n print(f\" {name:16} ink {x_min:5}..{x_max:5} = {(x_max - x_min)/cell:.3f} cells, \"\n f\"right edge at {x_max/cell:.3f} cells (advance 1.000)\")\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1117,"cache_read_input_tokens":229887,"output_tokens":1694,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1117,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":1694,"cache_read_input_tokens":229887,"cache_creation_input_tokens":1117,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1117},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBZcFdvXuFtbu1aZMLm","type":"assistant","uuid":"6c177abd-d166-4514-925e-5c029f5c9245","timestamp":"2026-07-27T20:20:51.769Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6c177abd-d166-4514-925e-5c029f5c9245","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01RHGq9ggGiotp9okLjegvLW","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\ink.py (file state is current in your context — no need to Read it back)"}]},"uuid":"79132547-5d18-421c-aca0-ba0ff8054b5a","timestamp":"2026-07-27T20:20:51.787Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\ink.py","content":"\"\"\"Report glyph ink width (glyf xMin..xMax) relative to the advance cell.\"\"\"\nimport struct\nimport sys\n\nsys.path.insert(0, sys.argv[-1])\nfrom advances import advances, cmap_lookup, tables # noqa: E402\n\nCODEPOINTS = [(\"M\", 0x4D), (\"E0B0\", 0xE0B0), (\"E0B6\", 0xE0B6), (\"F07B folder\", 0xF07B),\n (\"F00C check\", 0xF00C), (\"F120 terminal\", 0xF120), (\"F051F hourglass\", 0xF051F)]\n\npath = sys.argv[1]\ndata = open(path, \"rb\").read()\nt = tables(data)\ncmap = cmap_lookup(data, t)\nupem, adv = advances(data, t)\ncell = adv(cmap[0x4D])\n\nhead = t[\"head\"][0]\nlong_loca = struct.unpack(\">h\", data[head + 50:head + 52])[0]\nloca, glyf = t[\"loca\"][0], t[\"glyf\"][0]\n\n\ndef bbox(gid):\n if long_loca:\n start, end = struct.unpack(\">II\", data[loca + gid * 4:loca + gid * 4 + 8])\n else:\n a, b = struct.unpack(\">HH\", data[loca + gid * 2:loca + gid * 2 + 4])\n start, end = a * 2, b * 2\n\n if start == end:\n return None\n\n x_min, _, x_max, _ = struct.unpack(\">hhhh\", data[glyf + start + 2:glyf + start + 10])\n return x_min, x_max\n\n\nprint(path.replace(\"\\\\\", \"/\").split(\"/\")[-1], f\"(cell = {cell} units)\")\n\nfor name, cp in CODEPOINTS:\n gid = cmap.get(cp)\n box = bbox(gid) if gid is not None else None\n\n if box is None:\n print(f\" {name:16} no outline\")\n continue\n\n x_min, x_max = box\n print(f\" {name:16} ink {x_min:5}..{x_max:5} = {(x_max - x_min)/cell:.3f} cells, \"\n f\"right edge at {x_max/cell:.3f} cells (advance 1.000)\")\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"6c177abd-d166-4514-925e-5c029f5c9245","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"79132547-5d18-421c-aca0-ba0ff8054b5a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBbQiuY7N1wD1qyYc9i","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01MtPSoXZCepFeoRLUmFDZWu","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/ink.py\" \"$TMPDIR/fonts/HackNerdFont-Regular.ttf\" \"$SP\"; echo; python \"$SP/ink.py\" \"$TMPDIR/fonts/HackNerdFontMono-Regular.ttf\" \"$SP\"","description":"Measure glyph ink widths"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1794,"cache_read_input_tokens":231004,"output_tokens":244,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1794,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":244,"cache_read_input_tokens":231004,"cache_creation_input_tokens":1794,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1794},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBbNRVeiyzyebxjr92f","type":"assistant","uuid":"f180be55-3167-4413-af51-3deb9f6e0154","timestamp":"2026-07-27T20:20:55.803Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f180be55-3167-4413-af51-3deb9f6e0154","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"type":"tool_result","content":"Exit code 1\nHackNerdFont-Regular.ttf\r\n M U+004D advance 1233 units = 1.000 cells (0.6021 em)\r\n space U+0020 advance 1233 units = 1.000 cells (0.6021 em)\r\n E0B0 powerline U+E0B0 advance 1233 units = 1.000 cells (0.6021 em)\r\n E0B6 halfcircle U+E0B6 advance 1233 units = 1.000 cells (0.6021 em)\r\n F07B folder U+F07B advance 1233 units = 1.000 cells (0.6021 em)\r\n F00C check U+F00C advance 1233 units = 1.000 cells (0.6021 em)\r\n F120 terminal U+F120 advance 1233 units = 1.000 cells (0.6021 em)\r\n F051F hourglass U+F051F advance 1233 units = 1.000 cells (0.6021 em)\r\n\r\nTraceback (most recent call last):\r\n File \"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\ink.py\", line 6, in \r\n from advances import advances, cmap_lookup, tables # noqa: E402\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n File \"C:\\Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\\advances.py\", line 79, in \r\n data = open(path, \"rb\").read()\r\n ~~~~^^^^^^^^^^^^\r\nPermissionError: [Errno 13] Permission denied: 'C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad'\r\n\nHackNerdFontMono-Regular.ttf\r\n M U+004D advance 1233 units = 1.000 cells (0.6021 em)\r\n space U+0020 advance 1233 units = 1.000 cells (0.6021 em)\r\n E0B0 powerline U+E0B0 advance 1233 units = 1.000 cells (0.6021 em)\r\n E0B6 halfcircle U+E0B6 advance 1233 units = 1.000 cells (0.6021 em)\r\n F07B folder U+F07B advance 1233 units = 1.000 cells (0.6021 em)\r\n F00C check U+F00C advance 1233 units = 1.000 cells (0.6021 em)\r\n F120 terminal U+F120 advance 1233 units = 1.000 cells (0.6021 em)\r\n F051F hourglass U+F051F advance 1233 units = 1.000 cells (0.6021 em)\r\n\r\nTraceback (most recent call last):\r\n File \"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\ink.py\", line 6, in \r\n from advances import advances, cmap_lookup, tables # noqa: E402\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n File \"C:\\Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\\advances.py\", line 79, in \r\n data = open(path, \"rb\").read()\r\n ~~~~^^^^^^^^^^^^\r\nPermissionError: [Errno 13] Permission denied: 'C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad'","is_error":true,"tool_use_id":"toolu_01MtPSoXZCepFeoRLUmFDZWu"}]},"uuid":"095a0a38-b741-4aed-8e2e-66e7758e0e2e","timestamp":"2026-07-27T20:21:01.713Z","toolUseResult":"Error: Exit code 1\nHackNerdFont-Regular.ttf\r\n M U+004D advance 1233 units = 1.000 cells (0.6021 em)\r\n space U+0020 advance 1233 units = 1.000 cells (0.6021 em)\r\n E0B0 powerline U+E0B0 advance 1233 units = 1.000 cells (0.6021 em)\r\n E0B6 halfcircle U+E0B6 advance 1233 units = 1.000 cells (0.6021 em)\r\n F07B folder U+F07B advance 1233 units = 1.000 cells (0.6021 em)\r\n F00C check U+F00C advance 1233 units = 1.000 cells (0.6021 em)\r\n F120 terminal U+F120 advance 1233 units = 1.000 cells (0.6021 em)\r\n F051F hourglass U+F051F advance 1233 units = 1.000 cells (0.6021 em)\r\n\r\nTraceback (most recent call last):\r\n File \"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\ink.py\", line 6, in \r\n from advances import advances, cmap_lookup, tables # noqa: E402\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n File \"C:\\Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\\advances.py\", line 79, in \r\n data = open(path, \"rb\").read()\r\n ~~~~^^^^^^^^^^^^\r\nPermissionError: [Errno 13] Permission denied: 'C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad'\r\n\nHackNerdFontMono-Regular.ttf\r\n M U+004D advance 1233 units = 1.000 cells (0.6021 em)\r\n space U+0020 advance 1233 units = 1.000 cells (0.6021 em)\r\n E0B0 powerline U+E0B0 advance 1233 units = 1.000 cells (0.6021 em)\r\n E0B6 halfcircle U+E0B6 advance 1233 units = 1.000 cells (0.6021 em)\r\n F07B folder U+F07B advance 1233 units = 1.000 cells (0.6021 em)\r\n F00C check U+F00C advance 1233 units = 1.000 cells (0.6021 em)\r\n F120 terminal U+F120 advance 1233 units = 1.000 cells (0.6021 em)\r\n F051F hourglass U+F051F advance 1233 units = 1.000 cells (0.6021 em)\r\n\r\nTraceback (most recent call last):\r\n File \"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\ink.py\", line 6, in \r\n from advances import advances, cmap_lookup, tables # noqa: E402\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n File \"C:\\Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\\advances.py\", line 79, in \r\n data = open(path, \"rb\").read()\r\n ~~~~^^^^^^^^^^^^\r\nPermissionError: [Errno 13] Permission denied: 'C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad'","sourceToolAssistantUUID":"f180be55-3167-4413-af51-3deb9f6e0154","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"095a0a38-b741-4aed-8e2e-66e7758e0e2e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBcBAratRKmYrNPoEZ1","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I need to add a guard clause to advances.py so the module-level loop only runs when the script is executed directly, not when it's imported.","signature":"CAIS2AIKhwEIEBgCKkAW8melmwpfNso5lUPpFW3xwOlPSt92ebJR7eeFu8ymt7mqtnwHjI6mfxgzgpsOCzk2ifixXaYIN9f7QMLrl2y+Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDP6x5/CAh2OeYoG9YxoM0QqaTGTAv6nHk3n/IjAflJv2GBmvmts0weXqaJGxz0GkVLUdknDV07i/Z/Be3Zg22c4h56BO6/3ufP2EzDcqfoBStWUp8DkW4+QeX1XFZBjpASYZdkJY2ajbeavClSQ4pzy7COXl0IEjYYl/elrehYm4LZWZBVSWEUMSDh0hlPCYmtY2X6ufjPtig5qJvgsVod0djmv152Tlj0j4M0X4D7l12jZoD6LZ+gtgctMNR0JeXPGf/BEr7Jw1AvNbkhgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1661,"cache_read_input_tokens":232798,"output_tokens":301,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1661,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":301,"cache_read_input_tokens":232798,"cache_creation_input_tokens":1661,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1661},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBc6x6kB1hRNkbUTBHM","type":"assistant","uuid":"8f2d1bae-409a-4024-9ec8-31871d0c751e","timestamp":"2026-07-27T20:21:05.891Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8f2d1bae-409a-4024-9ec8-31871d0c751e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBcBAratRKmYrNPoEZ1","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01UgFdGmFVRXnfYZw6YB78KU","name":"Edit","input":{"replace_all":false,"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\advances.py","old_string":"for path in sys.argv[1:]:\n data = open(path, \"rb\").read()","new_string":"for path in (sys.argv[1:] if __name__ == \"__main__\" else []):\n data = open(path, \"rb\").read()"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1661,"cache_read_input_tokens":232798,"output_tokens":301,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1661,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":301,"cache_read_input_tokens":232798,"cache_creation_input_tokens":1661,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1661},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBc6x6kB1hRNkbUTBHM","type":"assistant","uuid":"47c91c0b-79c6-4fe7-a5b2-5a7777ced5bb","timestamp":"2026-07-27T20:21:06.903Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"47c91c0b-79c6-4fe7-a5b2-5a7777ced5bb","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01UgFdGmFVRXnfYZw6YB78KU","type":"tool_result","content":"The file C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\advances.py has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"9a4bccc9-6011-493a-8a70-66c16b3a8cc2","timestamp":"2026-07-27T20:21:06.950Z","toolUseResult":{"filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\advances.py","oldString":"for path in sys.argv[1:]:\n data = open(path, \"rb\").read()","newString":"for path in (sys.argv[1:] if __name__ == \"__main__\" else []):\n data = open(path, \"rb\").read()","originalFile":"\"\"\"Report the horizontal advance, in cells, of specific codepoints in one or\nmore TTFs. A cell is the advance of ASCII 'M'.\"\"\"\nimport struct\nimport sys\n\n\ndef tables(data):\n n = struct.unpack(\">H\", data[4:6])[0]\n out = {}\n for i in range(n):\n off = 12 + i * 16\n tag = data[off:off + 4].decode(\"latin-1\")\n to, tl = struct.unpack(\">II\", data[off + 8:off + 16])\n out[tag] = (to, tl)\n return out\n\n\ndef cmap_lookup(data, t):\n base = t[\"cmap\"][0]\n count = struct.unpack(\">H\", data[base + 2:base + 4])[0]\n best = None\n for i in range(count):\n pid, eid, off = struct.unpack(\">HHI\", data[base + 4 + i * 8:base + 12 + i * 8])\n fmt = struct.unpack(\">H\", data[base + off:base + off + 2])[0]\n if fmt in (4, 12):\n best = (fmt, base + off) if (best is None or fmt == 12) else best\n fmt, sub = best\n\n mapping = {}\n if fmt == 4:\n segx2 = struct.unpack(\">H\", data[sub + 6:sub + 8])[0]\n seg = segx2 // 2\n ends = struct.unpack(\">%dH\" % seg, data[sub + 14:sub + 14 + segx2])\n starts_off = sub + 16 + segx2\n starts = struct.unpack(\">%dH\" % seg, data[starts_off:starts_off + segx2])\n deltas = struct.unpack(\">%dh\" % seg, data[starts_off + segx2:starts_off + 2 * segx2])\n range_off_base = starts_off + 2 * segx2\n ranges = struct.unpack(\">%dH\" % seg, data[range_off_base:range_off_base + segx2])\n for i in range(seg):\n for c in range(starts[i], min(ends[i], 0xFFFF) + 1):\n if ranges[i] == 0:\n g = (c + deltas[i]) & 0xFFFF\n else:\n addr = range_off_base + i * 2 + ranges[i] + (c - starts[i]) * 2\n g = struct.unpack(\">H\", data[addr:addr + 2])[0]\n if g:\n g = (g + deltas[i]) & 0xFFFF\n if g:\n mapping[c] = g\n else:\n ngroups = struct.unpack(\">I\", data[sub + 12:sub + 16])[0]\n for i in range(ngroups):\n s, e, gid = struct.unpack(\">III\", data[sub + 16 + i * 12:sub + 28 + i * 12])\n for c in range(s, e + 1):\n mapping[c] = gid + (c - s)\n return mapping\n\n\ndef advances(data, t):\n upem = struct.unpack(\">H\", data[t[\"head\"][0] + 18:t[\"head\"][0] + 20])[0]\n num_h = struct.unpack(\">H\", data[t[\"hhea\"][0] + 34:t[\"hhea\"][0] + 36])[0]\n hmtx = t[\"hmtx\"][0]\n\n def adv(gid):\n i = min(gid, num_h - 1)\n return struct.unpack(\">H\", data[hmtx + i * 4:hmtx + i * 4 + 2])[0]\n\n return upem, adv\n\n\nCODEPOINTS = [\n (\"M\", 0x4D), (\"space\", 0x20),\n (\"E0B0 powerline\", 0xE0B0), (\"E0B6 halfcircle\", 0xE0B6),\n (\"F07B folder\", 0xF07B), (\"F00C check\", 0xF00C),\n (\"F120 terminal\", 0xF120), (\"F051F hourglass\", 0xF051F),\n]\n\nfor path in sys.argv[1:]:\n data = open(path, \"rb\").read()\n t = tables(data)\n cmap = cmap_lookup(data, t)\n upem, adv = advances(data, t)\n cell = adv(cmap[0x4D])\n\n print(path.replace(\"\\\\\", \"/\").split(\"/\")[-1])\n for name, cp in CODEPOINTS:\n gid = cmap.get(cp)\n if gid is None:\n print(f\" {name:18} U+{cp:04X} MISSING\")\n continue\n print(f\" {name:18} U+{cp:04X} advance {adv(gid):5} units = {adv(gid)/cell:.3f} cells ({adv(gid)/upem:.4f} em)\")\n print()\n","structuredPatch":[{"oldStart":75,"oldLines":7,"newStart":75,"newLines":7,"lines":[" (\"F120 terminal\", 0xF120), (\"F051F hourglass\", 0xF051F),"," ]"," ","-for path in sys.argv[1:]:","+for path in (sys.argv[1:] if __name__ == \"__main__\" else []):"," data = open(path, \"rb\").read()"," t = tables(data)"," cmap = cmap_lookup(data, t)"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"47c91c0b-79c6-4fe7-a5b2-5a7777ced5bb","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9a4bccc9-6011-493a-8a70-66c16b3a8cc2","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBcXxW7H8neMdi7wamR","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01EByc27p3gb7q1UrE6HowJe","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/ink.py\" \"$TMPDIR/fonts/HackNerdFont-Regular.ttf\" \"$SP\"; echo; python \"$SP/ink.py\" \"$TMPDIR/fonts/HackNerdFontMono-Regular.ttf\" \"$SP\"","description":"Measure glyph ink widths"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":405,"cache_read_input_tokens":234459,"output_tokens":244,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":405,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":244,"cache_read_input_tokens":234459,"cache_creation_input_tokens":405,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":405},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBcUSB1bNZ8h84feLA1","type":"assistant","uuid":"c0fd17a9-5a2d-4873-85a8-38a7a3aec475","timestamp":"2026-07-27T20:21:10.637Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c0fd17a9-5a2d-4873-85a8-38a7a3aec475","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01EByc27p3gb7q1UrE6HowJe","type":"tool_result","content":"HackNerdFont-Regular.ttf (cell = 1233 units)\r\n M ink 86.. 1145 = 0.859 cells, right edge at 0.929 cells (advance 1.000)\r\n E0B0 ink -74.. 1233 = 1.060 cells, right edge at 1.000 cells (advance 1.000)\r\n E0B6 ink 0.. 1307 = 1.060 cells, right edge at 1.060 cells (advance 1.000)\r\n F07B folder ink 0.. 2048 = 1.661 cells, right edge at 1.661 cells (advance 1.000)\r\n F00C check ink 0.. 1792 = 1.453 cells, right edge at 1.453 cells (advance 1.000)\r\n F120 terminal ink 0.. 2304 = 1.869 cells, right edge at 1.869 cells (advance 1.000)\r\n F051F hourglass ink 104.. 1129 = 0.831 cells, right edge at 0.916 cells (advance 1.000)\r\n\nHackNerdFontMono-Regular.ttf (cell = 1233 units)\r\n M ink 86.. 1145 = 0.859 cells, right edge at 0.929 cells (advance 1.000)\r\n E0B0 ink -74.. 1233 = 1.060 cells, right edge at 1.000 cells (advance 1.000)\r\n E0B6 ink 0.. 1307 = 1.060 cells, right edge at 1.060 cells (advance 1.000)\r\n F07B folder ink 0.. 1233 = 1.000 cells, right edge at 1.000 cells (advance 1.000)\r\n F00C check ink 0.. 1233 = 1.000 cells, right edge at 1.000 cells (advance 1.000)\r\n F120 terminal ink 0.. 1233 = 1.000 cells, right edge at 1.000 cells (advance 1.000)\r\n F051F hourglass ink 78.. 1155 = 0.873 cells, right edge at 0.937 cells (advance 1.000)","is_error":false}]},"uuid":"dcd32da7-be31-4011-93dd-948f16e1f272","timestamp":"2026-07-27T20:21:17.011Z","toolUseResult":{"stdout":"HackNerdFont-Regular.ttf (cell = 1233 units)\r\n M ink 86.. 1145 = 0.859 cells, right edge at 0.929 cells (advance 1.000)\r\n E0B0 ink -74.. 1233 = 1.060 cells, right edge at 1.000 cells (advance 1.000)\r\n E0B6 ink 0.. 1307 = 1.060 cells, right edge at 1.060 cells (advance 1.000)\r\n F07B folder ink 0.. 2048 = 1.661 cells, right edge at 1.661 cells (advance 1.000)\r\n F00C check ink 0.. 1792 = 1.453 cells, right edge at 1.453 cells (advance 1.000)\r\n F120 terminal ink 0.. 2304 = 1.869 cells, right edge at 1.869 cells (advance 1.000)\r\n F051F hourglass ink 104.. 1129 = 0.831 cells, right edge at 0.916 cells (advance 1.000)\r\n\nHackNerdFontMono-Regular.ttf (cell = 1233 units)\r\n M ink 86.. 1145 = 0.859 cells, right edge at 0.929 cells (advance 1.000)\r\n E0B0 ink -74.. 1233 = 1.060 cells, right edge at 1.000 cells (advance 1.000)\r\n E0B6 ink 0.. 1307 = 1.060 cells, right edge at 1.060 cells (advance 1.000)\r\n F07B folder ink 0.. 1233 = 1.000 cells, right edge at 1.000 cells (advance 1.000)\r\n F00C check ink 0.. 1233 = 1.000 cells, right edge at 1.000 cells (advance 1.000)\r\n F120 terminal ink 0.. 1233 = 1.000 cells, right edge at 1.000 cells (advance 1.000)\r\n F051F hourglass ink 78.. 1155 = 0.873 cells, right edge at 0.937 cells (advance 1.000)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"c0fd17a9-5a2d-4873-85a8-38a7a3aec475","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dcd32da7-be31-4011-93dd-948f16e1f272","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBdKnYeMHx9vUW8YpjD","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The key distinction is how the ink behaves relative to the advance width: Mono variants compress the ink to fit exactly within one cell, while non-Mono variants allow the ink to overflow beyond that boundary—up to about 1.87 cells—while maintaining the same one-cell advance. Both share the same advance width, but the overflow handling is what sets them apart.\n\nThe PNG renderer I was using loaded the non-Mono face and compensated with `doubleWidthRunes` to give that overflow room, which is why the reference looked spacious. But in actual terminals, users run the Mono-patched variants, so there's no overflow to worry about. The real fix is to update the default font-family stack to explicitly list the Mono variants—`\"CaskaydiaCove Nerd Font Mono\"`, `\"FiraCode Nerd Font Mono\"`, `\"Hack Nerd Font Mono\"`—instead of the non-Mono family names currently there. I also need to make sure the test harness registers the Mono face, and I'm checking whether Victor Mono's Nerd Font patch is metrics-mono and covers the full glyph set.","signature":"CAIS7A4KhwEIEBgCKkDYHt6Estb5rMAZ6x4xjsKbHwA3u3zz5Otoj7Co68eAQykZkI9SxGF2UFst8xCHiBfGJW3AvMsCgkh3I5NLj39rMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDC10Y6G31b0jzqv2UhoM9X/AP1/+QgGgNZosIjAUE/iMbZ2f7mdCcBTnI3s33CkFH/m76UZWQHhYTIPboCsGdlDMqZknWm/4oZcdScQqkQ1W8gGfllVuzKrhurshLp6dmazs5e2hUTy6zUbDsWYFR/88kP/vDf7Wl4JLFtAHmTmvPQ05wdF32EONQau0lSRszERD9g2uNWRToD/0zdIYvndbjSueIp37V19j9SjftIXG6fm3dK1Ub2aA4oLfWN8EZwdCCC2JsSfD/+wtLoBIXkk+bcWTn2/oCn8fQVYzALs4KW+kYNFrW1T6QCHLDNmuG6nm7LVoFdCiS02CJuBi/mqKg6oB/lU1WxMph68a/AxNUgq8OmiHRc3+hgMcu8g9qupTN1HXPGweF/KwHYZ+lGXJsc5cxGsX66jI/ZUQThl2/doY8HhNy3YFwnHRUeNuAA9oiUnGOMTSCkCqGhXHrbWTyyVDA3heW/Q2jDgFSsHpiOgcYO+EZj9Qu0ufU3BMEHm3+jcM51NS4fUdyXYQ3aXebdLx5FSPa5IyW7F7Dah1rLxDYp/FdH1oIXIBogxbkd2X3PM5WkMjjs7QsZVffYuaRY+74kEgIdWXYKDBv7BJIqYUGCjetDPNAXKiYqFKw/oGiFOB3nfZ0swxS9+RvjlzVfTRbssExTXxu4/CSWtYk2cpa4E0usQKUMRJKr5LmJUYIlnvgng3Lts6h6gnS4kMZbBqYvq9WlNGRMoQoTIURUH4aqijqm8+/0vSNdTiXETfw3cg6w77YtFZofi9ylY76tTK6wETWC5oo50cPqJ17xfPVcl6Vi5JGZiifW2ckNsA6rPpWpQqCfhiKcmDb1h7ch4c0sqM18JVGxWZB3BG378k8kA8LbCDWVrkoeGWq2S+fyL52mk6uuEZ0+n787ifvVwc1d4o6XDn3lXJC9+0QpkehdNcchNErCzalcUkPsKeVeGWdaM8kdQ5K/0uWsBtkzWGOnPPvaRghX+ZV21ti7+gKyhB49S5tcjiVvCBUdY3HaNaH3O/eGrLSZxJeO6VEhEjLtDkkqbpFjdhbjjB5ZCN7kJlgxD0Cs7XsGJ7GG3KbqIOUIqeHqXqsiLPS8TP8EyQT427zmmAVik+HU4k8zJZ9SB7wZVFtsa8hS2EOTi+sFNBbgWrxeq1Z4sYeool+/gA0z/C4Ep/AHVcX0Kffrfx5RNSavKBhEW5hb5pvFEbC6iKENGOLV+YtlGNOV9+YdNVeOdo8432q508yEFozZjBoWYxmJXLmvaJo7VD0CqyuybNRseJPPtRxuyHXoyRFsOjrBnzsg55Kp9UYX+SQJQz2pvtM3npvLg6W6TJ6C5OaNZm/KG2vhNWtf37BDz+YwOwu00zeyHZIjxrtLNDZdP+4VOeNWGxVfOFm+AmKfNUokm8yfqIvLqIO08ATojcZVfy5kOQqvl4gkzc1fOBsh60aM7dE8/AtEn0ptRMrMiBhGG2I0Mw8S8/fTlHZVYgS9P3peUQjEJktiyyS7T2kIAd2BYmRlA7iOpblH11FOwaBnDdihJeriP/JOYEYSzuIm4nHT9bZ1bBb5hCRpkJBj2CCMfZyk2F+FpxE01yH9nG+qqhWsltxWQOwGeFcNaEr5tVL6qi/a7mZpnooWQvv4Eu9fTJm8JPxC98+xUlOgMWMMkcFJFfy4NSPRle9vExugNEfwc2sxnBfQfo4l6AVFXtmyQuYeKnORoBRmK7bABBx1hJ4zSpMJTrUQnLPrqvt4JxcM7cMVfwv34ZMVW7YF1r10M2krlsdx5isFNdO22T3vtuc8YsAvNM4sNc5wU77QJp3g8BRgeQgjKPFZ+WlY0M3v5fPnZq2DTQC10AW2HICUkFQk8epRuGmvOQ7YFKg0DiK/vaP2xeO2RRTB32k0bJ+KAgYbt8cj+vWxIs7b/YwXLQGgXhxsLPHQHLK7Kf/8ChP8CGqdtEDyejg/m5DYrzon0MXs+Z2JyMh2UbpfmRLeYivj8ypBXhoWVQfubvcBZw9KR1higYqjsJCvxTgq1Ouc+yfW3TVKCH+IZGmpONxyqaDqAuNslN1xUuOc8xNH5etxE2a/2MPxDQgqjgKZtiqFUF7fKSYZy+0JvTEyul2OM8ztJEaQuv7LMxE0zurAuh9W6yF1TGN+GXReEUhaNgrVd9W404KCGvjxsfzoZYnGTxtYz2wlrLB7RLcWngjN8V8yZRtgxHbchKykzFoJCMyoC6zuruwIT70Wh/2dNmPAg+5AXF8BSv+u5zUcmybs5nR6DYQqZ2qJHNBZhezvMbxyFKLkZbz0DEb+VkSQx87LkuthzuUOwLnos8GtPXno0bHwsgYKACnMcDRbnXGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":940,"cache_read_input_tokens":234864,"output_tokens":891,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":940,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":891,"cache_read_input_tokens":234864,"cache_creation_input_tokens":940,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":940},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBdE2mujEngrGT2Txic","type":"assistant","uuid":"73120b6d-ee8b-4399-a15a-35d51399c975","timestamp":"2026-07-27T20:21:31.297Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"73120b6d-ee8b-4399-a15a-35d51399c975","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBdKnYeMHx9vUW8YpjD","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Hnvq1js7tpeh8ERSRxWesg","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; ls /d/oh-my-posh/website/static/fonts/ && python \"$SP/ink.py\" /d/oh-my-posh/website/static/fonts/VictorMono.ttf \"$SP\"","description":"Measure website font ink widths"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":940,"cache_read_input_tokens":234864,"output_tokens":891,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":940,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":891,"cache_read_input_tokens":234864,"cache_creation_input_tokens":940,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":940},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBdE2mujEngrGT2Txic","type":"assistant","uuid":"add0a0a3-5c75-42b8-8729-347a0ee7fe92","timestamp":"2026-07-27T20:21:31.379Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"add0a0a3-5c75-42b8-8729-347a0ee7fe92","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Hnvq1js7tpeh8ERSRxWesg","type":"tool_result","content":"fonts.zip\nVictorMono.ttf\nVictorMono.ttf (cell = 600 units)\r\n M ink 51.. 550 = 0.832 cells, right edge at 0.917 cells (advance 1.000)\r\n E0B0 ink -36.. 600 = 1.060 cells, right edge at 1.000 cells (advance 1.000)\r\n E0B6 ink 1.. 636 = 1.058 cells, right edge at 1.060 cells (advance 1.000)\r\n F07B folder ink 0.. 1016 = 1.693 cells, right edge at 1.693 cells (advance 1.000)\r\n F00C check ink 0.. 890 = 1.483 cells, right edge at 1.483 cells (advance 1.000)\r\n F120 terminal ink 0.. 1142 = 1.903 cells, right edge at 1.903 cells (advance 1.000)\r\n F051F hourglass ink 25.. 575 = 0.917 cells, right edge at 0.958 cells (advance 1.000)","is_error":false}]},"uuid":"770a3c61-0454-443d-a168-29879c0c755b","timestamp":"2026-07-27T20:21:38.333Z","toolUseResult":{"stdout":"fonts.zip\nVictorMono.ttf\nVictorMono.ttf (cell = 600 units)\r\n M ink 51.. 550 = 0.832 cells, right edge at 0.917 cells (advance 1.000)\r\n E0B0 ink -36.. 600 = 1.060 cells, right edge at 1.000 cells (advance 1.000)\r\n E0B6 ink 1.. 636 = 1.058 cells, right edge at 1.060 cells (advance 1.000)\r\n F07B folder ink 0.. 1016 = 1.693 cells, right edge at 1.693 cells (advance 1.000)\r\n F00C check ink 0.. 890 = 1.483 cells, right edge at 1.483 cells (advance 1.000)\r\n F120 terminal ink 0.. 1142 = 1.903 cells, right edge at 1.903 cells (advance 1.000)\r\n F051F hourglass ink 25.. 575 = 0.917 cells, right edge at 0.958 cells (advance 1.000)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"add0a0a3-5c75-42b8-8729-347a0ee7fe92","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"770a3c61-0454-443d-a168-29879c0c755b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBeqM5YXX72V1Q2y8Ho","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The issue is that the website is using the non-Mono variant of the Nerd Font patch, which causes icon overflow at 1.90 cells and creates the same jamming problem in the gallery. I need to fix this in two ways: first, update the default font-family stack to specify the Mono variants so viewers with the recommended terminal font see properly-sized 1-cell icons, and second, ensure the website actually serves the Mono-patched version of Victor Mono instead.\n\nThe second part involves swapping out the font asset, which means fetching the Mono TTF and committing it as a binary. While the user's original request was about SVG rendering bugs, the gallery is the direct consumer of this font issue, so it seems in scope. Let me check if the fonts.zip already contains a Mono variant.","signature":"CAIS4QcKhwEIEBgCKkA7/YUbCUmvJrJEXFhZs29jsnQn3RipIHWDtO8eOdJayS8/kCz8wb9JszOv5PxEJZwnMRp9s4skSJkrOCbAJKNLMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDCHPk853JySZAs+OGxoMmaMX/T4lmba/PlK9IjBHBmmnXWXcdsIrbzqZLJd8V9KeCaZZh7vJRRvwxYHUhjBWWonf9n4OVHzPvu8KbfYqhgb/otiqiptmQ1x2kqVVq70FlWzaCOZrc50HySZgLi6lzn2CgLaDJPj0YRccOaGi2LUfcmQVfb86tpyWUkKzIp91x+S0dBamAcLZ6Or89pxKyOo3EG2170aVa5udbuh70YTi9KwByN+ws6hZGUD+V1++au+ujYL7k8GyBPUaB6Zl1v0iCqT02nDkaxZgBj/7OjjB666Xq8ELT8qvJGGHhilj6AfHmPhsYEi2bZb1ZKNfRFlHnePceBrT6b6qbElx2jDxfLp8AS5AFCKEVyAsmYhR1u4/Hxa2kvjndIkCAwu6hH3ntshTWT2RPaRU1LLq+4LvGTyPgTasWzdEf/Y3e7wn+RkdXfArHpXSYyTiDBg7BaBsc4W9gu6csgGHKTclp7tqlB/eJw0RiNhdAtcQ1POUKsSsyfqlavhyRGbcbXHYpZooF9mZZq2irkc7anRWggp7T3U3JI0HUxPX7tFQASuZwOkw2rnG0mxryPYrXL2Okpls+etBa/prQK6T1xFDPpvYkoTHOdlNDvcO5Issxv+nbypg3hFibuoexMFbPtE+NHHP9VLX1QxaWB4onn0FPCrmGf391+BIbJAHKwBNWDbSg5xz1Ei0xIzMOmWHcZ/Yr3mRkKZoyQKuJyMKGF/SRKH67aILpAzCQnnKW6to84q+T3vyaeCk8NN8SaxZr7/iVVaCUzTjZfwP+gQUz11JdpKEzfCaLiaLaz6QqN8TBIkc0J3PuutQKDIC8NW6sFFlFvvH4vP51okh0sHAMxKGOSqvXrFOBJnI57FU/7Ntbto5NrjNJNd8C3QmYt2TIfY0fVubPXoyOHAhS6+0uFLrzkXKxZf6X6lwma7fgV5AIZl8Y3BOWIRxtCP03JOHfHRGkXCXnpLZO/hjNGlvt98i/iGecZkoNN4waI7XY9eOyYz9x+9MQ9aCAG2dtmUnHMdMayedE3k34s7dHvL1vCRwV/9ALvfcSSlezXAkQF1BwSoRoZ6raKpZOJuUvYrq6Q8hbb9zRrgAiZru9APtBHNGTl92Xu5bewwYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1240,"cache_read_input_tokens":235804,"output_tokens":477,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1240,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":477,"cache_read_input_tokens":235804,"cache_creation_input_tokens":1240,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1240},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBeoM29cZGQ3TpWLm3a","type":"assistant","uuid":"0dbdc5c3-2b9a-445a-a5de-2ecfa8336e70","timestamp":"2026-07-27T20:21:46.686Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0dbdc5c3-2b9a-445a-a5de-2ecfa8336e70","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBeqM5YXX72V1Q2y8Ho","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01MEVDwqsfgMaCmecQmE15Ea","name":"Bash","input":{"command":"python -c \"import zipfile,sys;[print(i.filename, round(i.file_size/1048576,2),'MB') for i in zipfile.ZipFile(sys.argv[1]).infolist()]\" /d/oh-my-posh/website/static/fonts/fonts.zip 2>/dev/null | head -20","description":"List website fonts.zip contents"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1240,"cache_read_input_tokens":235804,"output_tokens":477,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1240,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":477,"cache_read_input_tokens":235804,"cache_creation_input_tokens":1240,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1240},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBeoM29cZGQ3TpWLm3a","type":"assistant","uuid":"ded2913f-852b-4c12-a430-0fe49cd548de","timestamp":"2026-07-27T20:21:46.781Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ded2913f-852b-4c12-a430-0fe49cd548de","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01MEVDwqsfgMaCmecQmE15Ea","type":"tool_result","content":"emoji.ttf 0.84 MB\r\n__MACOSX/._emoji.ttf 0.0 MB\r\nitalic.ttf 2.05 MB\r\nregular.ttf 2.11 MB\r\nbold.ttf 2.12 MB","is_error":false}]},"uuid":"88a5430e-4c93-48dc-a790-2bc26da1caff","timestamp":"2026-07-27T20:21:51.246Z","toolUseResult":{"stdout":"emoji.ttf 0.84 MB\r\n__MACOSX/._emoji.ttf 0.0 MB\r\nitalic.ttf 2.05 MB\r\nregular.ttf 2.11 MB\r\nbold.ttf 2.12 MB","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"ded2913f-852b-4c12-a430-0fe49cd548de","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"88a5430e-4c93-48dc-a790-2bc26da1caff","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBfoXDoWwZLTEYwmXhh","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm reconsidering the font-family ordering — listing \"Hack Nerd Font Mono\" first might not be ideal since many users only have the non-Mono variant installed, and CSS font fallback only works when a family is completely absent, not on a per-glyph basis. I should think through whether the Mono variant should come first or if I need a different approach here.\n\nActually, wait — per-glyph fallback does happen for missing codepoints, but both the Mono and non-Mono families have the glyphs we need. So prioritizing Mono first means users with it installed get the better rendering, while others fall back to non-Mono without any loss. That's strictly better.\n\nI'll update the default font family to prefer the Mono variants with non-Mono as fallbacks, register the Mono face in the harness so my tests reflect the actual target, then re-render and compare the results.","signature":"CAISzgkKhwEIEBgCKkBljOGQVL9nbY5pVaUyezJausMmxo73kGI0CqNZ37yX6qAj2C2m6RcK3mwCK/wEsOvGqhjz+l3U5CwVl7/46XtIMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDCCzbHtpvfSKSDOuZBoMy9wE/uLG1EwdcS8VIjCtjWDOrojeyyWeFFbqT1l5F1bifhWM2uwCyirvKPYTHGvVCYoUb0axzeoDxXo6bRUq8wfLOzzYU99dM/USdeflq/8r1sL/incZX37MrpdnQR+H77S9p323k7eW5kl1ni9Ojnlcs333HaE8fgr5u9b2HtdWiJp8Xb8RrHu3GH9hXV9W4AWzOrOFdy3YrfEpvEgKcj4HzB9HxvmPZp6BbTEDxKoxbM+2LZnkSWP4k5mfS8IbxXYXkuRGK77VRySACaKzjKKsX7Fdc/NPFmBi8i3/YZTTipKDB1HfMN9X8tIv+84Cw0zV6um10PDl/4HontbowhoKBOKJhd8vzv2M8P18tWQNR1U65nBmKU/4HeujwRSHTBo11Q1zAkbIcX06NMv1WuJoCBLbrsO0NFhb4I03+tINQZZTyWi6cmeSGvAQ9W+/AHSe9sGpUQjBquYE3VEiuF/0lGmdL1tlriwUzfVNcEvZV0Bq/ECORvDSWIaUZHdxT4xXY1hQTWhmLDfK90BEqIdnH6OP9Nm4fY8ixVn1DXs3gvD5DWQzg1FDNuIDEwoh6n7LPVrLWrUfAqba2JCAPanHPo3gt0jU7hU9KL+vcL2QVz7xQX51s9mPWEv4sbvqR9BSBGmaNJ+v3FGDzb2Rdrk/FWq3l9aIxBHvDBQr7Px44L3Xx5QKibILakQKCmXuFqD3j3UN3r/G9KSOlj8Oc2kzQ5dDYe9NRFsvqenB8aial2iC9Yc+ntQRNP7tTyh9ie99xY5uSVVHpEoKmf/T2s+WLzSRKolM9oTU/4PBOO/EKTXm6AUVZlY2PbvJsZs3PEEfVVdRMcq2foBGnoqi/kByTch8go11xyjDfLYwOqudJ8eCpG3sGIfayxejy/WAseuqBIwb6DtOsfDqnbrr+QhpmcHy8kouX0MrLIqa242Ndh0RGs7JvFvUHaPjQX/prUwQoJUbnUmjiLlXEQ21hnpcX5q+wKZvaSy4okH0+7T26eYCOf29fH7QPLntBSSZFT2kMRJlPR0H3fDLl5HuRGoK8abDrXB7cS/xfRc14mPoIzNvew3EbTpHnmz401FDVQJAl277heuIuFCPN0wTAT1dXDsmI8MglWNzPg4pN8bAtafPXpFS8Wgda8iNzpxZiI3HQt4Y5rIlqOsmvZqwqFQ6FeYnwL1Wr+lhxR6Fc7Fye6ziKy0kjft8i+D2j8Kz4UgIOxJ7F5B6IAxnjpB46dhk6cugxFeIsXGbr/EeCxsyu0P1GW8tsib6kUXIT8Uz2ea1LEdKMZEMScFoT4gMacRJiALM9RgCOH4SKmsC+vhoB4fwyi7exk/TInP877dzGiJ+8vYaxH2cDHkSy6hsRp2MmBjAYIErgdVUfZfPXUyhN+DDQpC16oCZTB1IM+T3xKvn8Pohq2tPiAcyvp5/M6fhb2EYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":561,"cache_read_input_tokens":237044,"output_tokens":1319,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":561,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1319,"cache_read_input_tokens":237044,"cache_creation_input_tokens":561,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":561},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBfkbbxhQkPRbSmJ7hz","type":"assistant","uuid":"5c309b0c-73b0-4b75-992b-9821e5ecfbb6","timestamp":"2026-07-27T20:22:02.911Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5c309b0c-73b0-4b75-992b-9821e5ecfbb6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBfoXDoWwZLTEYwmXhh","type":"message","role":"assistant","content":[{"type":"text","text":"Real cause of the icon jamming, measured from the fonts:\n\n| glyph | advance | ink width (non-Mono) | ink width (Mono) |\n|---|---|---|---|\n| `F07B` folder | 1.000 cell | **1.661** | 1.000 |\n| `F00C` check | 1.000 cell | **1.453** | 1.000 |\n| `F120` terminal | 1.000 cell | **1.869** | 1.000 |\n\nAdvance is 1 cell in every variant — my earlier finding holds. What differs is the *ink*: the `Mono` patched variant scales icons to fit the cell, the plain one lets them bleed nearly two cells wide over whatever follows. The exporter's default stack names the plain families, and `website/static/fonts/VictorMono.ttf` is a plain patch too (folder ink 1.693 cells)."}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":561,"cache_read_input_tokens":237044,"output_tokens":1319,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":561,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1319,"cache_read_input_tokens":237044,"cache_creation_input_tokens":561,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":561},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBfkbbxhQkPRbSmJ7hz","type":"assistant","uuid":"5e7df805-d178-4347-ab73-a363081b3a80","timestamp":"2026-07-27T20:22:02.918Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5e7df805-d178-4347-ab73-a363081b3a80","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBfoXDoWwZLTEYwmXhh","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01SmssrYP8P2DVW5fBo2cisZ","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\svg\\svg.go","old_string":"\tdefaultFontFamily = `\"CaskaydiaCove Nerd Font\", \"FiraCode Nerd Font\", \"Hack Nerd Font\", ui-monospace, monospace`\n\tdefaultFontSize = 16.0","new_string":"\t// defaultFontFamily prefers the \"Mono\" patched Nerd Font variants, and\n\t// only falls back to the plain ones. Both patch the same codepoints at\n\t// the same 1-cell advance, so the choice does not move a single glyph on\n\t// this package's grid — but the plain variants leave an icon's *ink* at\n\t// its natural width while advancing one cell, and Nerd Font icons are\n\t// far wider than a cell: measured in HackNerdFont-Regular.ttf, U+F07B\n\t// (folder) inks 1.661 cells, U+F00C (check) 1.453, U+F120 (terminal)\n\t// 1.869. That ink overruns the following cell, which for nearly every\n\t// theme is the space its own template writes after the icon — so the\n\t// prompt reads as though the padding were missing. The Mono variants\n\t// scale each icon down to exactly one cell of ink, which is also what a\n\t// terminal shows, since a Mono patch is the variant Nerd Fonts ships for\n\t// terminal use.\n\tdefaultFontFamily = `\"CaskaydiaCove Nerd Font Mono\", \"FiraCode Nerd Font Mono\", \"Hack Nerd Font Mono\", ` +\n\t\t`\"CaskaydiaCove Nerd Font\", \"FiraCode Nerd Font\", \"Hack Nerd Font\", ui-monospace, monospace`\n\tdefaultFontSize = 16.0"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":561,"cache_read_input_tokens":237044,"output_tokens":1319,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":561,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1319,"cache_read_input_tokens":237044,"cache_creation_input_tokens":561,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":561},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBfkbbxhQkPRbSmJ7hz","type":"assistant","uuid":"c091af84-0e74-414e-b780-e4aa7451df25","timestamp":"2026-07-27T20:22:10.075Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c091af84-0e74-414e-b780-e4aa7451df25","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01SmssrYP8P2DVW5fBo2cisZ","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\svg\\svg.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"831a9704-a318-4b35-9c22-8e3870183f53","timestamp":"2026-07-27T20:22:10.153Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\svg\\svg.go","oldString":"\tdefaultFontFamily = `\"CaskaydiaCove Nerd Font\", \"FiraCode Nerd Font\", \"Hack Nerd Font\", ui-monospace, monospace`\n\tdefaultFontSize = 16.0","newString":"\t// defaultFontFamily prefers the \"Mono\" patched Nerd Font variants, and\n\t// only falls back to the plain ones. Both patch the same codepoints at\n\t// the same 1-cell advance, so the choice does not move a single glyph on\n\t// this package's grid — but the plain variants leave an icon's *ink* at\n\t// its natural width while advancing one cell, and Nerd Font icons are\n\t// far wider than a cell: measured in HackNerdFont-Regular.ttf, U+F07B\n\t// (folder) inks 1.661 cells, U+F00C (check) 1.453, U+F120 (terminal)\n\t// 1.869. That ink overruns the following cell, which for nearly every\n\t// theme is the space its own template writes after the icon — so the\n\t// prompt reads as though the padding were missing. The Mono variants\n\t// scale each icon down to exactly one cell of ink, which is also what a\n\t// terminal shows, since a Mono patch is the variant Nerd Fonts ships for\n\t// terminal use.\n\tdefaultFontFamily = `\"CaskaydiaCove Nerd Font Mono\", \"FiraCode Nerd Font Mono\", \"Hack Nerd Font Mono\", ` +\n\t\t`\"CaskaydiaCove Nerd Font\", \"FiraCode Nerd Font\", \"Hack Nerd Font\", ui-monospace, monospace`\n\tdefaultFontSize = 16.0","originalFile":null,"structuredPatch":[{"oldStart":86,"oldLines":8,"newStart":86,"newLines":22,"lines":[" }"," "," const (","- defaultFontFamily = `\"CaskaydiaCove Nerd Font\", \"FiraCode Nerd Font\", \"Hack Nerd Font\", ui-monospace, monospace`","- defaultFontSize = 16.0","+ // defaultFontFamily prefers the \"Mono\" patched Nerd Font variants, and","+ // only falls back to the plain ones. Both patch the same codepoints at","+ // the same 1-cell advance, so the choice does not move a single glyph on","+ // this package's grid — but the plain variants leave an icon's *ink* at","+ // its natural width while advancing one cell, and Nerd Font icons are","+ // far wider than a cell: measured in HackNerdFont-Regular.ttf, U+F07B","+ // (folder) inks 1.661 cells, U+F00C (check) 1.453, U+F120 (terminal)","+ // 1.869. That ink overruns the following cell, which for nearly every","+ // theme is the space its own template writes after the icon — so the","+ // prompt reads as though the padding were missing. The Mono variants","+ // scale each icon down to exactly one cell of ink, which is also what a","+ // terminal shows, since a Mono patch is the variant Nerd Fonts ships for","+ // terminal use.","+ defaultFontFamily = `\"CaskaydiaCove Nerd Font Mono\", \"FiraCode Nerd Font Mono\", \"Hack Nerd Font Mono\", ` +","+ `\"CaskaydiaCove Nerd Font\", \"FiraCode Nerd Font\", \"Hack Nerd Font\", ui-monospace, monospace`","+ defaultFontSize = 16.0"," // defaultColumns matches the retired PNG renderer's own defaultColumns"," // and the image-export CLI command's --terminal-width flag default: a"," // caller that never sets Options.Columns still gets a 120-column window."]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"c091af84-0e74-414e-b780-e4aa7451df25","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"831a9704-a318-4b35-9c22-8e3870183f53","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBhBqRn6yaKmzW1rWsQ","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01RSCoAjVLqY2TArAid9jr1E","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; cp \"$TMPDIR/fonts/HackNerdFontMono-Regular.ttf\" /d/oh-my-posh/tools/svg-png-compare/fonts/ && sed -i 's|HackNerdFont-Regular.ttf\", *$|HackNerdFontMono-Regular.ttf\");|' /dev/null; grep -n \"FONT_PATH\\|FONT_FAMILY\" shot.mjs","description":"Copy Mono face into harness"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1371,"cache_read_input_tokens":237605,"output_tokens":315,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1371,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":315,"cache_read_input_tokens":237605,"cache_creation_input_tokens":1371,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1371},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBh9DR8e7ZMnkfBJAZC","type":"assistant","uuid":"2649f525-682e-4eb6-a02b-7c268b5c23b3","timestamp":"2026-07-27T20:22:16.547Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2649f525-682e-4eb6-a02b-7c268b5c23b3","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01RSCoAjVLqY2TArAid9jr1E","type":"tool_result","content":"sed: couldn't edit /dev/null: not a regular file\n28:const FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFont-Regular.ttf\");\n29:const FONT_FAMILY = \"Hack Nerd Font\";\n93: font-family: \"${FONT_FAMILY}\";\n128: const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");\n140: \"--font-family\", FONT_FAMILY,","is_error":false}]},"uuid":"83e0edc4-b430-4da7-9ed2-4d726c60ec9d","timestamp":"2026-07-27T20:22:19.558Z","toolUseResult":{"stdout":"sed: couldn't edit /dev/null: not a regular file\n28:const FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFont-Regular.ttf\");\n29:const FONT_FAMILY = \"Hack Nerd Font\";\n93: font-family: \"${FONT_FAMILY}\";\n128: const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");\n140: \"--font-family\", FONT_FAMILY,","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"2649f525-682e-4eb6-a02b-7c268b5c23b3","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"83e0edc4-b430-4da7-9ed2-4d726c60ec9d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBhtdc7DbbW53anQ3Yk","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_013jMdkkompNssft5aYKbP4A","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","old_string":"const FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFont-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font\";","new_string":"// The Mono patched variant, which is what the exporter's default font stack\n// asks for first and what a terminal actually runs: it scales Nerd Font icon\n// ink down to one cell, where the plain variant lets it bleed up to ~1.9\n// cells over the next character. The retired PNG renderer loaded the plain\n// variant and compensated with a hand-maintained double-width table, so its\n// reference renders show icons in a two-cell box; that is the one place the\n// two renderers are expected to differ.\nconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":460,"cache_read_input_tokens":238976,"output_tokens":438,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":460,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":438,"cache_read_input_tokens":238976,"cache_creation_input_tokens":460,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":460},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBhqycJxYZeS52jWZXf","type":"assistant","uuid":"a6eb9a92-ceab-4264-8284-a7c798161519","timestamp":"2026-07-27T20:22:28.881Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a6eb9a92-ceab-4264-8284-a7c798161519","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_013jMdkkompNssft5aYKbP4A","type":"tool_result","content":"The file D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"8522ff54-4edb-48fd-ab95-c8934ff7f2a4","timestamp":"2026-07-27T20:22:28.969Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","oldString":"const FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFont-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font\";","newString":"// The Mono patched variant, which is what the exporter's default font stack\n// asks for first and what a terminal actually runs: it scales Nerd Font icon\n// ink down to one cell, where the plain variant lets it bleed up to ~1.9\n// cells over the next character. The retired PNG renderer loaded the plain\n// variant and compensated with a hand-maintained double-width table, so its\n// reference renders show icons in a two-cell box; that is the one place the\n// two renderers are expected to differ.\nconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";","originalFile":"#!/usr/bin/env node\n// Side-by-side renderer for eyeballing the SVG exporter against the retired\n// PNG renderer. Unlike compare.mjs this does NOT force the SVG into the PNG's\n// box (no preserveAspectRatio override, no rescale): each side is rasterized\n// at its own natural geometry, so layout differences — whitespace collapse,\n// baseline drift, misplaced decorations — stay visible instead of being\n// squeezed away by the fit.\n//\n// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks\n//\n// Output lands in ./out/: .svg, .raster.png, and — unless\n// --svg-only — .png from the retired renderer.\nimport { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { chromium } from \"playwright\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");\nconst THEMES_DIR = path.join(REPO_ROOT, \"themes\");\nconst DATA_FIXTURE = path.join(REPO_ROOT, \"src\", \"prompt\", \"testdata\", \"fixtures\", \"prompt.data.json\");\n\nconst BIN_DIR = path.join(__dirname, \"bin\");\nconst OUT_DIR = path.join(__dirname, \"out\");\nconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFont-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font\";\n\nconst EXE = process.platform === \"win32\" ? \".exe\" : \"\";\nconst OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);\nconst NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);\n\n// The exporter renders at a 16px em; the retired PNG renderer's reference em\n// was 48px. Rasterizing at 3x device scale puts both at the same resolution\n// without touching the SVG's own geometry.\nconst DEVICE_SCALE_FACTOR = 3;\n\nfunction themeConfig(theme) {\n for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n const candidate = path.join(THEMES_DIR, theme + ext);\n\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(`theme not found: ${theme}`);\n}\n\nfunction run(cmd, args, cwd) {\n const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n\n if (res.error) {\n throw res.error;\n }\n\n if (res.status !== 0) {\n throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n }\n}\n\n// Reads width/height off the root element so the page can give it a box\n// of exactly that size — the SVG then renders 1:1 with no scaling at all.\nfunction svgSize(markup) {\n const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n\n if (!width || !height) {\n throw new Error(\"could not read width/height off the root \");\n }\n\n return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n}\n\nasync function rasterize(browser, markup, fontBase64) {\n const { width, height } = svgSize(markup);\n\n const context = await browser.newContext({\n viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n deviceScaleFactor: DEVICE_SCALE_FACTOR,\n });\n\n const page = await context.newPage();\n\n const html = `\n\n\n\n\n\n${markup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForTimeout(50);\n\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const svgOnly = args.includes(\"--svg-only\");\n const themes = args.filter((a) => !a.startsWith(\"--\"));\n\n if (themes.length === 0) {\n throw new Error(\"pass at least one theme name\");\n }\n\n fs.mkdirSync(OUT_DIR, { recursive: true });\n\n run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");\n const browser = await chromium.launch();\n\n try {\n for (const theme of themes) {\n const config = themeConfig(theme);\n const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n\n run(NEW_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", FONT_FAMILY,\n \"-o\", svgPath,\n ]);\n\n const markup = fs.readFileSync(svgPath, \"utf8\");\n fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64));\n\n if (!svgOnly && fs.existsSync(OLD_BIN)) {\n run(OLD_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--format\", \"png\",\n \"-o\", path.join(OUT_DIR, `${theme}.png`),\n ]);\n }\n\n console.log(`${theme}: ${svgPath}`);\n }\n } finally {\n await browser.close();\n }\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exitCode = 1;\n});\n","structuredPatch":[{"oldStart":25,"oldLines":8,"newStart":25,"newLines":15,"lines":[" "," const BIN_DIR = path.join(__dirname, \"bin\");"," const OUT_DIR = path.join(__dirname, \"out\");","-const FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFont-Regular.ttf\");","-const FONT_FAMILY = \"Hack Nerd Font\";","+// The Mono patched variant, which is what the exporter's default font stack","+// asks for first and what a terminal actually runs: it scales Nerd Font icon","+// ink down to one cell, where the plain variant lets it bleed up to ~1.9","+// cells over the next character. The retired PNG renderer loaded the plain","+// variant and compensated with a hand-maintained double-width table, so its","+// reference renders show icons in a two-cell box; that is the one place the","+// two renderers are expected to differ.","+const FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");","+const FONT_FAMILY = \"Hack Nerd Font Mono\";"," "," const EXE = process.platform === \"win32\" ? \".exe\" : \"\";"," const OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"a6eb9a92-ceab-4264-8284-a7c798161519","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8522ff54-4edb-48fd-ab95-c8934ff7f2a4","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"b298ed3b-efcc-40f3-b004-d0360b1fac94","timestamp":"2026-07-27T20:22:28.978Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b298ed3b-efcc-40f3-b004-d0360b1fac94","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBiav2Nyb6r2bDRHRJQ","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01FjVEeRxEDsQs4cesZWamNt","name":"Bash","input":{"command":"node shot.mjs glowsticks cert 2>&1 | tail -3 && SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\" && python \"$SP/stack.py\" \"$TMPDIR/cmp2.png\" \"PNG reference\" out/glowsticks.png 100 250 2100 130 \"SVG raster (Mono variant)\" out/glowsticks.raster.png 100 185 2100 130","description":"Re-render with Mono font and compare"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":628,"cache_read_input_tokens":239436,"output_tokens":289,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":628,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":289,"cache_read_input_tokens":239436,"cache_creation_input_tokens":628,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":628},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBiXg4H61Uudt2MRBHU","type":"assistant","uuid":"f5b64703-2956-4ce6-81b0-2a0b05469749","timestamp":"2026-07-27T20:22:33.782Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f5b64703-2956-4ce6-81b0-2a0b05469749","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01FjVEeRxEDsQs4cesZWamNt","type":"tool_result","content":"glowsticks: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\glowsticks.svg\ncert: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\cert.svg\nC:/Users/jande/AppData/Local/Temp/cmp2.png (2100, 316)","is_error":false}]},"uuid":"dc164cf1-d578-49fa-8495-0ac4b53b17d6","timestamp":"2026-07-27T20:22:45.228Z","toolUseResult":{"stdout":"glowsticks: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\glowsticks.svg\ncert: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\cert.svg\nC:/Users/jande/AppData/Local/Temp/cmp2.png (2100, 316)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"f5b64703-2956-4ce6-81b0-2a0b05469749","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dc164cf1-d578-49fa-8495-0ac4b53b17d6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBjoNQHQ6opLA15hCPi","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Qj5xTorV6e2TGAomjpRiSo","name":"Read","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\cmp2.png"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":374,"cache_read_input_tokens":240064,"output_tokens":73,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":374,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":73,"cache_read_input_tokens":240064,"cache_creation_input_tokens":374,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":374},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBjiRzBAWufAsm6St3z","type":"assistant","uuid":"cc8035f6-5422-419f-b82a-ca7bc50faeb5","timestamp":"2026-07-27T20:22:48.176Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cc8035f6-5422-419f-b82a-ca7bc50faeb5","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Qj5xTorV6e2TGAomjpRiSo","type":"tool_result","content":[{"type":"image","source":{"type":"base64","data":"iVBORw0KGgoAAAANSUhEUgAAB8oAAAEsCAIAAAAkVq5XAAHru0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a+ePHmaq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFAgAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4L+cpIjgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/vcBAILnERG160optdaIApRSatdJ4rJaOy6LiFprrbWUwoss7aPDQ2Ouuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqfxkAoCwWGzxARKyWy4sXzy+Pjg4PD2zPF4vdixf29y/N5/OIkHT+3H3z+aKUsjw62t29cHh40KY2n88zUxIvlO1a6yMf/WKXdi/a5qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/43AQAqDyDF0dHRIx/12Nd/4zc/f/7s1tbO3/zln/7B7/3WW77NO117/Y0/95M/fHCwh3m/D/non/vJH14eHT3mxV/yVV7jdaZxfMoTH/8Hv/ubG5tbmc12rTUiMjMzFRESKLO11mrXvef7fagzb7/1aVkMOJ3ZMrPWGhGZmZlSRAiU2TIT6LouM6UAWptsK6JEgDIzs0VERIAyW2Zy1VVXXXXVVVddddVVV1111VVXXXXVVVddddVV//EAgOABInR0dPDiL/Uyb/imb3Xn7beN4/Cmb/X2tzzoIa/6mq/7MZ/8WQ95+CMljeP4Ph/4EbXrbrz5Qe/yHu9/8fw54M3f5h1f83Xe8OjoICJKKft7e/fee/fuxQvOPNjfu+++e+677+5xHIH1avWGb/KWP/S93za16ey999x3790XL54HSikH+/v33nv37sULmXl4uH/ffffcd9/dwzBIAu699+69S7v33Xf3fffd3VqLiGkc7rvvnvvuu/vo8KDruqPDg/vuu+e+++5er1eSuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv94AEBZLDa4X0Qsj45e7CVeepqmb/vGr/zzP/3D13/jtxiG9fbOsac95YnXXnvdM2592oXzZ9/srd/hl3/+J9/hXd77CY/7ux/4nm/96z//k2uvu/5VX+N1fv5nfuzY8RO7F86/wZu85Vu/w7tff8ONd955+6u9xuu+w7u81+u8/pve/oynXbp08TVe+w1e+/Xf+GB/7xm3Pu19P+gj3+jN3vqWBz3kSU/4h8OD/dd6vTd6h3d57+tvuPGeu+58+Vd6tXd69/d93Td4s7vuuG334oWI+KhP/MzjJ06+47u898u/4qve+vSnXNq9eNMtD3mv9//Q13n9N22t/cPf//Vrvd4bv+O7vc8bvPFbXjh39ux990YEV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9R8MAAiek3FEKaUCs37edf3+3t7Jk6d+/Zd//sTJ04989IspopRaSn2pl32FX/ulnztz5lpJP/S93/7NX/dlx46dyMxhHF72FV7lVV7ttZ7yxMe/4iu/+s6xE7/167/0u7/1q+/63h+4ubV99113rFere++5+43e9K2f8Li/+/mf/tHZYv527/Qeq/XqZV7+lV7jtV//KU96wku//Cudueba3/71X/6tX/+ld3qP9z1+4uQ0jm/3ju/+iEc+5k//+PcV8a7v9YGbm1tv9XbvfOHc2dtufeprvd4bvu8HfuSpU2f+4Hd/85d/4aff/G3f6cabH7ReryVx1VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/5EAgMpzioijw4NXeKVX/cRP+/wbb37Q05/6pD/43d94x3d7n1LKT/7I977ze37An/3JH4zjIGm+WKzXq82trfd8vw997Eu81J/9yR/+9I9+/8bmJmDnH//h7/7lX/zJW739u9zy4Ic9/h/+JiJe83Xe8Nu/8auf8qQn7O/v/eHv/db3/fgv/fmf/MHepd2XeYVXPn/2LCDpz/749//iz/7oU9/0rR794i/593/zl7Zf63Xf6Pu/81ts71688Es//1P/8Hd/de7svR/58Z9xw403P+wRj/riz/2UEydOnrnm+nd/nw988MMe8Q9/+9fDsH7t13+TX/yZn8g2cdVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf/BAIDKc3K6n81uffpTf/JHv/+6G266647bhmEdERubm7/6Sz/z/h/2cY96zItHRGbuXrx4zbXXHezv/c5v/upsPn/zt3qHH/6+by9RACnWqyVw7XU3/uHv/eaf/8kf9rPZ3/3NXx0dHm5sbiri9JlrbH7yR77v2PGTf/WXf5atAdnaer0Crr3+pj/9w9/7vd/+9fli8bi//9u9S7u1q621O29/xubmVil1WK/62QwDbG7tPOmJ/7B36dJTnvj4X/jpH93cPvakJzzu7rvu6Gcz21x11VVXXXXVVVddddVVV1111VVXXXXVVVddddV/JAAgeB6llLP33fuUJz/hb/7yzy5d2gWytWwN+KHv/fY3f+t33NreWa9Xf/h7v/ke7/vB99xz11133Hbd9TfuXboIGIDMZgzcftvTnf6rv/iTe+6881Vf43W6vsvWsNer1d133b48Wv7+7/7GDdff9OIv+TIAkm3gzjtuzZZ/+1d/dsczbn3VV3/t+XzeWk7TFBGZCSji0u5uOq+//qaQ3uU9P+D6m26+eP78k57w+Kc84R9e6VVeY+fYsWmaJHHVVVddddVVV1111VVXXXXVVVddddVVV1111VX/kQCAynMyLqVubm0Bm1tbGGA2nyui7/o//cPffau3fadTp884/XM/9SMf8bGf+v0//stPevw/2J7NF4AA6PtZKIAf/J5vfa/3/7Bv+e4fq6X7sR/+7qPDw/l8sbW9c+H8uR/9/u/85M/6otbavffc9QPf861AKQUE/Mj3f9d7vO8Hf/N3/3it9ad+7AcuXdqttc4XCxBG4uSp0098wt///u/8xhd+5TeNw/Cnf/z7X/b5n/6u7/n+3/AdP1RK+eVf+Kl77rqz72e2ueqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv9IAIBOnjzNA9ju+1mt9fDwICKAzNzc2hqHcRwH8Hyx0Xf9/v5eZs7ni82trWEYxmFdand0sB+ltNYWGxu216uVnYuNzflsnvbepV0gIjY2tw729yRtb+9EKavV8ujwMCLm8wWwWi3tXCw2ZvOF7b1Lu4Ckza3tw4N926XWxXyxt3ep6/qt7W3g6PBguVxubm7NFwtg79KunVJw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/8EAAJ08eZrnlJm2a622AUnTNEaEFEBrzc5aOyCzZaYUErZL7bAltWlCigggW0sbKKVIAqZpqrXabq0BIUUpQGYDIgqQ2TINlFIkAdM01VoB2621rusys7UGREQppbWWmUApRRJXXXXVVVddddVVV1111VVXXXXVVVddddVVV131Hw8A0MmTp7nqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXiQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVAFAlrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXDQBQI8RVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9SIBAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICACr/C4irrrrqqquu+r8iZK666qqrrrrqv4/NVVf9d7EEAnPVfz/h5Kqrrrrqqn8jAKDyP5ttSK666qqrrrrq/4p1k0FcddVVV1111X8DQ4QiwFx11X89TSOYq/5nUOm46qqrrrrq3wgAqPzPJbttHbuplN42V1111VVXXfW/nGBKvdNjzs1LpsVVV1111VVX/dfK9HwRj/u71Z23jf1MNldd9V/GKNp422u9Y+vncnLVfz/t/cGPkA2Jq6666qqr/tUAgMr/VJKytZ0TD+n7bWdDXHXVVVddddX/aiGOxvjU1x+PzVtLiauuuuqqq676LzVN7k+Vn7gvf+8J405RNq666r+MI+pqWr7BB653TsU0Iq76b6bY/6Mfd04grrrqqquu+lcDACr/s4mQwkoQV1111VVXXfVfSzJgi/8YRqohgsJVV1111VVX/VerIYqKCAhz1VX/lQxhFEWl4ARx1X8nSwVx1VVXXXXVvxUAUPmfyBiTdoKNATBXXXXVVVdd9V/IZmgS1OIA8x/BpMFgrrrqqquuuuq/WNphWpKAZMxVV/1XMRgywpmywVz138qkp8HTSBRJICKQMGCuuuqqq676FwAAlf8x7ASDFEWSogAgzFVXXXXVVVf9FzN0xScXk83uuk5WDdtcddVVV1111f9u6dlcgkxL2Fx11X8dqR7tr4+dZhqRuOq/W9m5xsMSp7ORLYcVbaIURSUCwOaqq6666qrnDwAom5ub/HeSbZxSlNLXOptvnNzcvn5j6/rNnRt2jj2o9hsgrrrqqquuuuq/UJH3x/ry1x187es94+0fdeH8sv7D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tthyJv9DKMq4uu6vf3v3IS9+eM0tkROI/w0E6+ZrN8pHv8zO698y311nFwLS9IX90Z/3J7t/cs+6D/G/moRbWRybzt529Pe/FfNtnFx11VVX/d8HAFT+49gupa/9liT+o0nY7O8fnj51fGtz49Lewb33nd8/ONrd3d+9dDAMw7GdrRPHd44f3775pusER0erG2+45nM//UM//GO/6M677pPEfzIbSbffcc8/PP6paQta5sZifsvN162HMRQK8a8REavV+tGPesinf9IHPPpRDzl3YXc+6xeL+bnzu/fe+4z9g6Pz53fHse0c27zm9MlTJ49dc+ZkS/b3DyMCzHMqJdbr4Y3f8NU/8WPeq9Z6cLTcXMwPj1a33X73ufO7587vAtecPnH69Ikbb7im1npxd//d3+XNailf840/tF4PXVdtA6BXecWXvO6aU7ZXq/Uv/PLv337HPceObU1TAyRAR0ervu+uuebk5sai1jJN7eDg6Nz5i+v1+PgnPL21Jqnvu5Mnjz3jtrtrrWCglLJcrl7/dV/pkz72fba2NnYv7c/ns1ri7nvOnTu/u7d/eP7CrtDJk8dOnzp+5vSJY8e2SJbLVYmweS62j21vfd5nfuhjH/Owvb3Dritd191z77m77z5379kLtq+75uR115257tpT09QuXtx7tVd5me3tzU/+jK/d3d0vJXgOBhQqEZJms/7VX+WlX/mVXvLUqZ277j5/330XLu0drFbDiRPbJ47v3HzTdcvVerlcnT51/EM/8J0+7lO+cr0eJNkGbHe13Hb7PX/3d09brdYSgE2EHvLgmyIkaRyn2++4Z7lcSwJzv6nlse3N3d09STwnSev18GKPfdjnfeaHHj++s3tpf2Njnpm3PuPOe+67cN99FzYWs2uuOXnTDdeePLGzWg9HR6t3fvs33tpYfOGXfUeJrmXynGotu5f23+c93vrt3vr1xnFqrS0W8/vOXrj77rP3ndu9dGm/RFx33emdnc35bHbmzImTx3fWw9haSpjnIzPPnDnx+Z/1YQ99yE2XLh30fVdruevus3ffc+7e+y6U0LXXnLz++muuPXNynKaLl/Ze/7VfaXtr89M+6+uWq7Uk/jNJGobxZV/6MZ/76R/c9904TrNZt1oNT3nq7ffed+7S3uGJ49vXXXf6phuuXQ/TO739G2Xm4dFSIQCJ5yFpHKfrrj31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FQAgocJV/1UyiQ39w58sf/bH9/b2Wt/L5qqr/mtYKuPwuHf8+Ge8zjs7QtlAXPXfSNr7ox9ve/e1vfPt4MJ08Z7p/O1uI5l2CogirjBXXXXVVVc9NwCg8j+CJK6w2zgejOMBRGvr7WM3lzrHjauuuuqqq676r5JmXvPWvdkX/8kNgGBe0+aqq6666n8HFcT/XBKqXPXfIdMxL098/Prec9Ox7cjGVVf915HUprte+c2y9jENXPXfTxd+9is8rhXBswlJKlx11VVXXfUvAAAq/+OIyyQJARgwiKuuuuqqq676LySQ+A9lMJfZIK666qqrrrrqv5INRkJcddV/k0yc2Iir/jsZZCmIQMFVV1111VX/agBA5X84SQoIEFddddVVV131v5lkKboCRZK46qqrrrrqqv9anaFSRUCxwFx11X8VQwGVTrUTgLjqv5OJwlVXXXXVVf92AEDlfy4D2cbW1nYDcdVVV1111VX/m1nOFucP83hrU4qrrrrqqquu+q/VJk7MtDd5Bb3cxFVX/VcaRTvcbSU8jVz13y4CzFVXXXXVVf9GAIDOnDnD/1Cy28bmNYoK5qqrrrrqqqv+lxNM1uvecqkvTiOuuuqqq6666r9Umr7XrU8bzt03dZ1srrrqv4ylaNO9L/Xa2c3k5Kr/dtLh3/0WbiCuuuqqq676VwMAdObMGf4HsxPMVVddddVVV/1fsZ7CXHXVVVddddV/m1JUCjZXXfVfTZRhDQZx1X8/q5tz1VVXXXXVvxEAUPmfTSqIq6666qqrrvo/wmzOzFVXXXXVVVf9NxGksbnqqv96Mp5tmKv+x8jGVVddddVV/0YAQOV/OmOuuuqqq6666v+Mllx11VVXXXXVVVf9P2QgG1ddddVVV131fwEAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAGpr5qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656kQAAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx1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1VVXXXXVVVddddVVV1111VVX/Z8CAOjkydM8j8zMTCAiIgKw3dpUSpUEZGZmkySFM0utACiz2a61ZmZrTcKmlAK01oASoYjWJlApMU0NiFBEQWrTJCmigLnMdtd1rTXb0zTVWp3ZstXaZabtWmtrLTOBUkpETOMYpUgCpmmqtQJtmgySSincr7UGlFJst9YkbEopkqZpqrUCtrO1UmtrzTYQUql1miZJEQG0aYpSJLXWgNlsNo6jJK666qqrrrrqqquuuuqqq6666qqrrrrqqquu+r8GANDJk6f5n81OKfjfw04puOqqq6666qqrrrrqqquuuuqqq6666qqrrrrq/yAAoPI/nhT8ryIFV1111VVXXXXVVVddddVVV1111VVXXXXVVVf93wQABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgBohrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXCQBQI8RVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9SIBAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQBU/q+RxFVXXXXVVVf9L2IAxH8Yg6DIXHXVVVddddV/pjSY/1gGcdX/C0YuRTaI/wjGAhD/z9iJk6uuuuqqq/5LAQCV/1OUOdoNxFVXXXXVVVf9LyEAGfMfRNAce+toRlx11VVXXXXVf5b5TLUX/3EEQIK46v88RU7d7jlL/AeRwhib/2eiX6hfcNVVV1111X8pAKDyf4fstrF5be0WdgNx1VVXXXXVVf8b2GlnROU/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+X9E7dK97dK9XHXVVVdd9V8KANA111zD/yF22uaqq6666qqr/vcQAOY/jCDR0GRz1VVXXXXVVf95akUh/uMIAHPV/wtylnFtBOY/giSMMf/PqHQqlauuuuqqq/5LAQCV/1ukkLjqqquuuuqq/3XEf6QCG4Wrrrrqqquu+s9lzFVX/VspmG2I/2Di/x+bq6666qqr/qsBAJWrrrrqqquuuur/Ipurrrrqqquuuuqq/9Fsrrrqqquuuup/JQAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQD/CDiyskmhur9LAAAAAElFTkSuQmCC","media_type":"image/png"}}]}]},"uuid":"0061c198-2595-44b6-b15f-d15a77be32e9","timestamp":"2026-07-27T20:22:48.260Z","toolUseResult":{"type":"image","file":{"base64":"iVBORw0KGgoAAAANSUhEUgAAB8oAAAEsCAIAAAAkVq5XAAHru0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a+ePHmaq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFAgAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4L+cpIjgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/vcBAILnERG160optdaIApRSatdJ4rJaOy6LiFprrbWUwoss7aPDQ2Ouuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqfxkAoCwWGzxARKyWy4sXzy+Pjg4PD2zPF4vdixf29y/N5/OIkHT+3H3z+aKUsjw62t29cHh40KY2n88zUxIvlO1a6yMf/WKXdi/a5qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/43AQAqDyDF0dHRIx/12Nd/4zc/f/7s1tbO3/zln/7B7/3WW77NO117/Y0/95M/fHCwh3m/D/non/vJH14eHT3mxV/yVV7jdaZxfMoTH/8Hv/ubG5tbmc12rTUiMjMzFRESKLO11mrXvef7fagzb7/1aVkMOJ3ZMrPWGhGZmZlSRAiU2TIT6LouM6UAWptsK6JEgDIzs0VERIAyW2Zy1VVXXXXVVVddddVVV1111VVXXXXVVVddddVV//EAgOABInR0dPDiL/Uyb/imb3Xn7beN4/Cmb/X2tzzoIa/6mq/7MZ/8WQ95+CMljeP4Ph/4EbXrbrz5Qe/yHu9/8fw54M3f5h1f83Xe8OjoICJKKft7e/fee/fuxQvOPNjfu+++e+677+5xHIH1avWGb/KWP/S93za16ey999x3790XL54HSikH+/v33nv37sULmXl4uH/ffffcd9/dwzBIAu699+69S7v33Xf3fffd3VqLiGkc7rvvnvvuu/vo8KDruqPDg/vuu+e+++5er1eSuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv94AEBZLDa4X0Qsj45e7CVeepqmb/vGr/zzP/3D13/jtxiG9fbOsac95YnXXnvdM2592oXzZ9/srd/hl3/+J9/hXd77CY/7ux/4nm/96z//k2uvu/5VX+N1fv5nfuzY8RO7F86/wZu85Vu/w7tff8ONd955+6u9xuu+w7u81+u8/pve/oynXbp08TVe+w1e+/Xf+GB/7xm3Pu19P+gj3+jN3vqWBz3kSU/4h8OD/dd6vTd6h3d57+tvuPGeu+58+Vd6tXd69/d93Td4s7vuuG334oWI+KhP/MzjJ06+47u898u/4qve+vSnXNq9eNMtD3mv9//Q13n9N22t/cPf//Vrvd4bv+O7vc8bvPFbXjh39ux990YEV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9R8MAAiek3FEKaUCs37edf3+3t7Jk6d+/Zd//sTJ04989IspopRaSn2pl32FX/ulnztz5lpJP/S93/7NX/dlx46dyMxhHF72FV7lVV7ttZ7yxMe/4iu/+s6xE7/167/0u7/1q+/63h+4ubV99113rFere++5+43e9K2f8Li/+/mf/tHZYv527/Qeq/XqZV7+lV7jtV//KU96wku//Cudueba3/71X/6tX/+ld3qP9z1+4uQ0jm/3ju/+iEc+5k//+PcV8a7v9YGbm1tv9XbvfOHc2dtufeprvd4bvu8HfuSpU2f+4Hd/85d/4aff/G3f6cabH7ReryVx1VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/5EAgMpzioijw4NXeKVX/cRP+/wbb37Q05/6pD/43d94x3d7n1LKT/7I977ze37An/3JH4zjIGm+WKzXq82trfd8vw997Eu81J/9yR/+9I9+/8bmJmDnH//h7/7lX/zJW739u9zy4Ic9/h/+JiJe83Xe8Nu/8auf8qQn7O/v/eHv/db3/fgv/fmf/MHepd2XeYVXPn/2LCDpz/749//iz/7oU9/0rR794i/593/zl7Zf63Xf6Pu/81ts71688Es//1P/8Hd/de7svR/58Z9xw403P+wRj/riz/2UEydOnrnm+nd/nw988MMe8Q9/+9fDsH7t13+TX/yZn8g2cdVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf/BAIDKc3K6n81uffpTf/JHv/+6G266647bhmEdERubm7/6Sz/z/h/2cY96zItHRGbuXrx4zbXXHezv/c5v/upsPn/zt3qHH/6+by9RACnWqyVw7XU3/uHv/eaf/8kf9rPZ3/3NXx0dHm5sbiri9JlrbH7yR77v2PGTf/WXf5atAdnaer0Crr3+pj/9w9/7vd/+9fli8bi//9u9S7u1q621O29/xubmVil1WK/62QwDbG7tPOmJ/7B36dJTnvj4X/jpH93cPvakJzzu7rvu6Gcz21x11VVXXXXVVVddddVVV1111VVXXXXVVVddddV/JAAgeB6llLP33fuUJz/hb/7yzy5d2gWytWwN+KHv/fY3f+t33NreWa9Xf/h7v/ke7/vB99xz11133Hbd9TfuXboIGIDMZgzcftvTnf6rv/iTe+6881Vf43W6vsvWsNer1d133b48Wv7+7/7GDdff9OIv+TIAkm3gzjtuzZZ/+1d/dsczbn3VV3/t+XzeWk7TFBGZCSji0u5uOq+//qaQ3uU9P+D6m26+eP78k57w+Kc84R9e6VVeY+fYsWmaJHHVVVddddVVV1111VVXXXXVVVddddVVV1111VX/kQCAynMyLqVubm0Bm1tbGGA2nyui7/o//cPffau3fadTp884/XM/9SMf8bGf+v0//stPevw/2J7NF4AA6PtZKIAf/J5vfa/3/7Bv+e4fq6X7sR/+7qPDw/l8sbW9c+H8uR/9/u/85M/6otbavffc9QPf861AKQUE/Mj3f9d7vO8Hf/N3/3it9ad+7AcuXdqttc4XCxBG4uSp0098wt///u/8xhd+5TeNw/Cnf/z7X/b5n/6u7/n+3/AdP1RK+eVf+Kl77rqz72e2ueqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv9IAIBOnjzNA9ju+1mt9fDwICKAzNzc2hqHcRwH8Hyx0Xf9/v5eZs7ni82trWEYxmFdand0sB+ltNYWGxu216uVnYuNzflsnvbepV0gIjY2tw729yRtb+9EKavV8ujwMCLm8wWwWi3tXCw2ZvOF7b1Lu4Ckza3tw4N926XWxXyxt3ep6/qt7W3g6PBguVxubm7NFwtg79KunVJw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/8EAAJ08eZrnlJm2a622AUnTNEaEFEBrzc5aOyCzZaYUErZL7bAltWlCigggW0sbKKVIAqZpqrXabq0BIUUpQGYDIgqQ2TINlFIkAdM01VoB2621rusys7UGREQppbWWmUApRRJXXXXVVVddddVVV1111VVXXXXVVVddddVVV131Hw8A0MmTp7nqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXiQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVAFAlrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXDQBQI8RVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9SIBAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICACr/C4irrrrqqquu+r8iZK666qqrrrrqv4/NVVf9d7EEAnPVfz/h5Kqrrrrqqn8jAKDyP5ttSK666qqrrrrq/4p1k0FcddVVV1111X8DQ4QiwFx11X89TSOYq/5nUOm46qqrrrrq3wgAqPzPJbttHbuplN42V1111VVXXfW/nGBKvdNjzs1LpsVVV1111VVX/dfK9HwRj/u71Z23jf1MNldd9V/GKNp422u9Y+vncnLVfz/t/cGPkA2Jq6666qqr/tUAgMr/VJKytZ0TD+n7bWdDXHXVVVddddX/aiGOxvjU1x+PzVtLiauuuuqqq676LzVN7k+Vn7gvf+8J405RNq666r+MI+pqWr7BB653TsU0Iq76b6bY/6Mfd04grrrqqquu+lcDACr/s4mQwkoQV1111VVXXfVfSzJgi/8YRqohgsJVV1111VVX/VerIYqKCAhz1VX/lQxhFEWl4ARx1X8nSwVx1VVXXXXVvxUAUPmfyBiTdoKNATBXXXXVVVdd9V/IZmgS1OIA8x/BpMFgrrrqqquuuuq/WNphWpKAZMxVV/1XMRgywpmywVz138qkp8HTSBRJICKQMGCuuuqqq676FwAAlf8x7ASDFEWSogAgzFVXXXXVVVf9FzN0xScXk83uuk5WDdtcddVVV1111f9u6dlcgkxL2Fx11X8dqR7tr4+dZhqRuOq/W9m5xsMSp7ORLYcVbaIURSUCwOaqq6666qrnDwAom5ub/HeSbZxSlNLXOptvnNzcvn5j6/rNnRt2jj2o9hsgrrrqqquuuuq/UJH3x/ry1x187es94+0fdeH8sv7D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tthyJv9DKMq4uu6vf3v3IS9+eM0tkROI/w0E6+ZrN8pHv8zO698y311nFwLS9IX90Z/3J7t/cs+6D/G/moRbWRybzt529Pe/FfNtnFx11VVX/d8HAFT+49gupa/9liT+o0nY7O8fnj51fGtz49Lewb33nd8/ONrd3d+9dDAMw7GdrRPHd44f3775pusER0erG2+45nM//UM//GO/6M677pPEfzIbSbffcc8/PP6paQta5sZifsvN162HMRQK8a8REavV+tGPesinf9IHPPpRDzl3YXc+6xeL+bnzu/fe+4z9g6Pz53fHse0c27zm9MlTJ49dc+ZkS/b3DyMCzHMqJdbr4Y3f8NU/8WPeq9Z6cLTcXMwPj1a33X73ufO7587vAtecPnH69Ikbb7im1npxd//d3+XNailf840/tF4PXVdtA6BXecWXvO6aU7ZXq/Uv/PLv337HPceObU1TAyRAR0ervu+uuebk5sai1jJN7eDg6Nz5i+v1+PgnPL21Jqnvu5Mnjz3jtrtrrWCglLJcrl7/dV/pkz72fba2NnYv7c/ns1ri7nvOnTu/u7d/eP7CrtDJk8dOnzp+5vSJY8e2SJbLVYmweS62j21vfd5nfuhjH/Owvb3Dritd191z77m77z5379kLtq+75uR115257tpT09QuXtx7tVd5me3tzU/+jK/d3d0vJXgOBhQqEZJms/7VX+WlX/mVXvLUqZ277j5/330XLu0drFbDiRPbJ47v3HzTdcvVerlcnT51/EM/8J0+7lO+cr0eJNkGbHe13Hb7PX/3d09brdYSgE2EHvLgmyIkaRyn2++4Z7lcSwJzv6nlse3N3d09STwnSev18GKPfdjnfeaHHj++s3tpf2Njnpm3PuPOe+67cN99FzYWs2uuOXnTDdeePLGzWg9HR6t3fvs33tpYfOGXfUeJrmXynGotu5f23+c93vrt3vr1xnFqrS0W8/vOXrj77rP3ndu9dGm/RFx33emdnc35bHbmzImTx3fWw9haSpjnIzPPnDnx+Z/1YQ99yE2XLh30fVdruevus3ffc+7e+y6U0LXXnLz++muuPXNynKaLl/Ze/7VfaXtr89M+6+uWq7Uk/jNJGobxZV/6MZ/76R/c9904TrNZt1oNT3nq7ffed+7S3uGJ49vXXXf6phuuXQ/TO739G2Xm4dFSIQCJ5yFpHKfrrj31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FQAgocJV/1UyiQ39w58sf/bH9/b2Wt/L5qqr/mtYKuPwuHf8+Ge8zjs7QtlAXPXfSNr7ox9ve/e1vfPt4MJ08Z7p/O1uI5l2CogirjBXXXXVVVc9NwCg8j+CJK6w2zgejOMBRGvr7WM3lzrHjauuuuqqq676r5JmXvPWvdkX/8kNgGBe0+aqq6666n8HFcT/XBKqXPXfIdMxL098/Prec9Ox7cjGVVf915HUprte+c2y9jENXPXfTxd+9is8rhXBswlJKlx11VVXXfUvAAAq/+OIyyQJARgwiKuuuuqqq676LySQ+A9lMJfZIK666qqrrrrqv5INRkJcddV/k0yc2Iir/jsZZCmIQMFVV1111VX/agBA5X84SQoIEFddddVVV131v5lkKboCRZK46qqrrrrqqv9anaFSRUCxwFx11X8VQwGVTrUTgLjqv5OJwlVXXXXVVf92AEDlfy4D2cbW1nYDcdVVV1111VX/m1nOFucP83hrU4qrrrrqqquu+q/VJk7MtDd5Bb3cxFVX/VcaRTvcbSU8jVz13y4CzFVXXXXVVf9GAIDOnDnD/1Cy28bmNYoK5qqrrrrqqqv+lxNM1uvecqkvTiOuuuqqq6666r9Umr7XrU8bzt03dZ1srrrqv4ylaNO9L/Xa2c3k5Kr/dtLh3/0WbiCuuuqqq676VwMAdObMGf4HsxPMVVddddVVV/1fsZ7CXHXVVVddddV/m1JUCjZXXfVfTZRhDQZx1X8/q5tz1VVXXXXVvxEAUPmfTSqIq6666qqrrvo/wmzOzFVXXXXVVVf9NxGksbnqqv96Mp5tmKv+x8jGVVddddVV/0YAQOV/OmOuuuqqq6666v+Mllx11VVXXXXVVVf9P2QgG1ddddVVV131fwEAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAGpr5qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656kQAAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx1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1VVXXXXVVVddddVVV1111VVX/Z8CAOjkydM8j8zMTCAiIgKw3dpUSpUEZGZmkySFM0utACiz2a61ZmZrTcKmlAK01oASoYjWJlApMU0NiFBEQWrTJCmigLnMdtd1rTXb0zTVWp3ZstXaZabtWmtrLTOBUkpETOMYpUgCpmmqtQJtmgySSincr7UGlFJst9YkbEopkqZpqrUCtrO1UmtrzTYQUql1miZJEQG0aYpSJLXWgNlsNo6jJK666qqrrrrqqquuuuqqq6666qqrrrrqqquu+r8GANDJk6f5n81OKfjfw04puOqqq6666qqrrrrqqquuuuqqq6666qqrrrrq/yAAoPI/nhT8ryIFV1111VVXXXXVVVddddVVV1111VVXXXXVVVf93wQABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgBohrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXCQBQI8RVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9SIBAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQBU/q+RxFVXXXXVVVf9L2IAxH8Yg6DIXHXVVVddddV/pjSY/1gGcdX/C0YuRTaI/wjGAhD/z9iJk6uuuuqqq/5LAQCV/1OUOdoNxFVXXXXVVVf9LyEAGfMfRNAce+toRlx11VVXXXXVf5b5TLUX/3EEQIK46v88RU7d7jlL/AeRwhib/2eiX6hfcNVVV1111X8pAKDyf4fstrF5be0WdgNx1VVXXXXVVf8b2GlnROU/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+X9E7dK97dK9XHXVVVdd9V8KANA111zD/yF22uaqq6666qqr/vcQAOY/jCDR0GRz1VVXXXXVVf95akUh/uMIAHPV/wtylnFtBOY/giSMMf/PqHQqlauuuuqqq/5LAQCV/1ukkLjqqquuuuqq/3XEf6QCG4Wrrrrqqquu+s9lzFVX/VspmG2I/2Di/x+bq6666qqr/qsBAJWrrrrqqquuuur/Ipurrrrqqquuuuqq/9Fsrrrqqquuuup/JQAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQD/CDiyskmhur9LAAAAAElFTkSuQmCC","type":"image/png","originalSize":58064,"dimensions":{"originalWidth":2100,"originalHeight":316,"displayWidth":2000,"displayHeight":301}}},"sourceToolAssistantUUID":"cc8035f6-5422-419f-b82a-ca7bc50faeb5","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0061c198-2595-44b6-b15f-d15a77be32e9","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":"[Image: original 2100x316, displayed at 2000x301. Multiply coordinates by 1.05 to map to original image.]"},"isMeta":true,"uuid":"926b29ee-83af-4ea8-87a7-cbe272359e9a","timestamp":"2026-07-27T20:22:48.252Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"926b29ee-83af-4ea8-87a7-cbe272359e9a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBk3hs4sprHsoMU5zV7","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The spacing looks right now—Folder has proper spacing, the check icon is proportional, and the hourglass matches the template's intended format with no gap between icon and value. The reference is still wider because it uses 2-cell boxes for icons, which is the documented design difference. Moving on to check the cert issue.","signature":"CAISrQUKhwEIEBgCKkCYusm6IZNk4sxIk+dWcp5/sr0Rby29r4ZeR1bYEyS64KMir13Zz1U4YyBM7Fz62BV/Y0CLWL7sSrXbcH4a/1XnMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDBNQhzp+mzGKVPxr1hoMyN/gWDRW/wiVW17PIjCPzSKS+B7a2JpKhbRa8bbXIIIRk77qO6DUPcm0ascrO3xfGquRdp3A262KdNrrfTMq0gMrdj1z8EqH7sKUTR0kl8Xv9ctSzUQozi/193qJjk0bUiCzps5hdYUdXbOnwoMNmeT+S2NKcs2Rz+ryBiXxgHNF03fO1TjYupVCfRGwUBe9rwh/P60jcJQzGTYktgYXy28LaJy0NCpMtJ1yhYfVdfAU9C06cUHwveMEFIdPlsoy7VSI7mfaqOggIXFlnxYzZ3DCco/na0owdJQoOJK4Ahn+9fDqib1T/JFfZMoU+xul3VkWr0e8Y+kCYMjyftLoBsEzeQWrbBmAJXLpguHIXtUrirTLwclkxZWMV5akpT7g11RqU6vcrKPgI1I0/z9NppyeX06Rj3+NrPX8Xp5VFcYY15FSf85/phsTqQg6hyaxCgMohr8MMEoU8uhAxBDwBqoYkoTG4ZJLPpbO6TLbl1dcKSj/TTgbfZ8jOGNRe1ZkBf1pIHh24HKrjWf/R64icyRWP3U8d/EW+wTYOMf3SHdPcWhwBMHH/3uYa+ouC0OwL86Ww69KUT3m6rptOInR9ese/QTRK8+Ev9k03HhvXZ1EcDW5dSwTj9+yAFBItT3GKyxAeOsGa2x3oo9uzbuUGSFSj+7BdaYw6Jwbol8cEyG/g8iiwjp7dzxZ/9FJcr/1+GzxGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":928,"cache_read_input_tokens":240438,"output_tokens":396,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":928,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":396,"cache_read_input_tokens":240438,"cache_creation_input_tokens":928,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":928},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBjwejMyU29xbLKZJFu","type":"assistant","uuid":"237f50c4-275b-48f9-919f-88516be0d148","timestamp":"2026-07-27T20:22:57.418Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"237f50c4-275b-48f9-919f-88516be0d148","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBk3hs4sprHsoMU5zV7","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01AvqgCfjhwaLnDtvEb2wpet","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/stack.py\" \"$TMPDIR/cmp-cert.png\" \"PNG reference\" out/cert.png 100 250 2100 130 \"SVG raster (fixed)\" out/cert.raster.png 100 185 2100 130","description":"Compare cert renders"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":928,"cache_read_input_tokens":240438,"output_tokens":396,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":928,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":396,"cache_read_input_tokens":240438,"cache_creation_input_tokens":928,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":928},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBjwejMyU29xbLKZJFu","type":"assistant","uuid":"2bea6305-b4c4-4ea9-bb8d-7cffbc601deb","timestamp":"2026-07-27T20:22:57.493Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2bea6305-b4c4-4ea9-bb8d-7cffbc601deb","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01AvqgCfjhwaLnDtvEb2wpet","type":"tool_result","content":"C:/Users/jande/AppData/Local/Temp/cmp-cert.png (2100, 316)","is_error":false}]},"uuid":"c6c26123-b815-4bc5-8cc8-569213e00c7d","timestamp":"2026-07-27T20:23:02.227Z","toolUseResult":{"stdout":"C:/Users/jande/AppData/Local/Temp/cmp-cert.png (2100, 316)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"2bea6305-b4c4-4ea9-bb8d-7cffbc601deb","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c6c26123-b815-4bc5-8cc8-569213e00c7d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBm3WyczLb9RHs9zPtM","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01BkzZsNhm3pLd55ziDpAA4a","name":"Read","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\cmp-cert.png"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":436,"cache_read_input_tokens":241366,"output_tokens":75,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":436,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":75,"cache_read_input_tokens":241366,"cache_creation_input_tokens":436,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":436},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBky7pBNCUfn9jKuaWk","type":"assistant","uuid":"39b9bb9a-fe0a-44f9-85ce-c4d6e2ae5d02","timestamp":"2026-07-27T20:23:05.452Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"39b9bb9a-fe0a-44f9-85ce-c4d6e2ae5d02","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01BkzZsNhm3pLd55ziDpAA4a","type":"tool_result","content":[{"type":"image","source":{"type":"base64","data":"iVBORw0KGgoAAAANSUhEUgAAB8oAAAEsCAIAAAAkVq5XAAIP1klEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a+ePHmaq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFAgAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4L+cpIjgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/vcBAILnERG160optdaIApRSatdJ4rJaOy6LiFprrbWUwoss7aPDQ2Ouuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqfxkAoCwWGzxARKyWy4sXzy+Pjg4PD2zPF4vdixf29y/N5/OIkHT+3H3z+aKUsjw62t29cHh40KY2n88zUxIvlO1a6yMf/WKXdi/a5qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/43AQAqDyDF0dHRIx/12Nd/4zc/f/7s1tbO3/zln/7B7/3WW77NO117/Y0/95M/fHCwh3m/D/non/vJH14eHT3mxV/yVV7jdaZxfMoTH/8Hv/ubG5tbmc12rTUiMjMzFRESKLO11mrXvef7fagzb7/1aVkMOJ3ZMrPWGhGZmZlSRAiU2TIT6LouM6UAWptsK6JEgDIzs0VERIAyW2Zy1VVXXXXVVVddddVVV1111VVXXXXVVVddddVV//EAgOABInR0dPDiL/Uyb/imb3Xn7beN4/Cmb/X2tzzoIa/6mq/7MZ/8WQ95+CMljeP4Ph/4EbXrbrz5Qe/yHu9/8fw54M3f5h1f83Xe8OjoICJKKft7e/fee/fuxQvOPNjfu+++e+677+5xHIH1avWGb/KWP/S93za16ey999x3790XL54HSikH+/v33nv37sULmXl4uH/ffffcd9/dwzBIAu699+69S7v33Xf3fffd3VqLiGkc7rvvnvvuu/vo8KDruqPDg/vuu+e+++5er1eSuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv94AEBZLDa4X0Qsj45e7CVeepqmb/vGr/zzP/3D13/jtxiG9fbOsac95YnXXnvdM2592oXzZ9/srd/hl3/+J9/hXd77CY/7ux/4nm/96z//k2uvu/5VX+N1fv5nfuzY8RO7F86/wZu85Vu/w7tff8ONd955+6u9xuu+w7u81+u8/pve/oynXbp08TVe+w1e+/Xf+GB/7xm3Pu19P+gj3+jN3vqWBz3kSU/4h8OD/dd6vTd6h3d57+tvuPGeu+58+Vd6tXd69/d93Td4s7vuuG334oWI+KhP/MzjJ06+47u898u/4qve+vSnXNq9eNMtD3mv9//Q13n9N22t/cPf//Vrvd4bv+O7vc8bvPFbXjh39ux990YEV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9R8MAAiek3FEKaUCs37edf3+3t7Jk6d+/Zd//sTJ04989IspopRaSn2pl32FX/ulnztz5lpJP/S93/7NX/dlx46dyMxhHF72FV7lVV7ttZ7yxMe/4iu/+s6xE7/167/0u7/1q+/63h+4ubV99113rFere++5+43e9K2f8Li/+/mf/tHZYv527/Qeq/XqZV7+lV7jtV//KU96wku//Cudueba3/71X/6tX/+ld3qP9z1+4uQ0jm/3ju/+iEc+5k//+PcV8a7v9YGbm1tv9XbvfOHc2dtufeprvd4bvu8HfuSpU2f+4Hd/85d/4aff/G3f6cabH7ReryVx1VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/5EAgMpzioijw4NXeKVX/cRP+/wbb37Q05/6pD/43d94x3d7n1LKT/7I977ze37An/3JH4zjIGm+WKzXq82trfd8vw997Eu81J/9yR/+9I9+/8bmJmDnH//h7/7lX/zJW739u9zy4Ic9/h/+JiJe83Xe8Nu/8auf8qQn7O/v/eHv/db3/fgv/fmf/MHepd2XeYVXPn/2LCDpz/749//iz/7oU9/0rR794i/593/zl7Zf63Xf6Pu/81ts71688Es//1P/8Hd/de7svR/58Z9xw403P+wRj/riz/2UEydOnrnm+nd/nw988MMe8Q9/+9fDsH7t13+TX/yZn8g2cdVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf/BAIDKc3K6n81uffpTf/JHv/+6G266647bhmEdERubm7/6Sz/z/h/2cY96zItHRGbuXrx4zbXXHezv/c5v/upsPn/zt3qHH/6+by9RACnWqyVw7XU3/uHv/eaf/8kf9rPZ3/3NXx0dHm5sbiri9JlrbH7yR77v2PGTf/WXf5atAdnaer0Crr3+pj/9w9/7vd/+9fli8bi//9u9S7u1q621O29/xubmVil1WK/62QwDbG7tPOmJ/7B36dJTnvj4X/jpH93cPvakJzzu7rvu6Gcz21x11VVXXXXVVVddddVVV1111VVXXXXVVVddddV/JAAgeB6llLP33fuUJz/hb/7yzy5d2gWytWwN+KHv/fY3f+t33NreWa9Xf/h7v/ke7/vB99xz11133Hbd9TfuXboIGIDMZgzcftvTnf6rv/iTe+6881Vf43W6vsvWsNer1d133b48Wv7+7/7GDdff9OIv+TIAkm3gzjtuzZZ/+1d/dsczbn3VV3/t+XzeWk7TFBGZCSji0u5uOq+//qaQ3uU9P+D6m26+eP78k57w+Kc84R9e6VVeY+fYsWmaJHHVVVddddVVV1111VVXXXXVVVddddVVV1111VX/kQCAynMyLqVubm0Bm1tbGGA2nyui7/o//cPffau3fadTp884/XM/9SMf8bGf+v0//stPevw/2J7NF4AA6PtZKIAf/J5vfa/3/7Bv+e4fq6X7sR/+7qPDw/l8sbW9c+H8uR/9/u/85M/6otbavffc9QPf861AKQUE/Mj3f9d7vO8Hf/N3/3it9ad+7AcuXdqttc4XCxBG4uSp0098wt///u/8xhd+5TeNw/Cnf/z7X/b5n/6u7/n+3/AdP1RK+eVf+Kl77rqz72e2ueqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv9IAIBOnjzNA9ju+1mt9fDwICKAzNzc2hqHcRwH8Hyx0Xf9/v5eZs7ni82trWEYxmFdand0sB+ltNYWGxu216uVnYuNzflsnvbepV0gIjY2tw729yRtb+9EKavV8ujwMCLm8wWwWi3tXCw2ZvOF7b1Lu4Ckza3tw4N926XWxXyxt3ep6/qt7W3g6PBguVxubm7NFwtg79KunVJw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/8EAAJ08eZrnlJm2a622AUnTNEaEFEBrzc5aOyCzZaYUErZL7bAltWlCigggW0sbKKVIAqZpqrXabq0BIUUpQGYDIgqQ2TINlFIkAdM01VoB2621rusys7UGREQppbWWmUApRRJXXXXVVVddddVVV1111VVXXXXVVVddddVVV131Hw8A0MmTp7nqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXiQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVAFAlrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXDQBQI8RVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9SIBAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICACr/swkkcdX/RbbN/2ziqquuuuqq/1nM/2ySBOaqq676X8WAzf9gQXDVVVddddX/aUly1VVX/W8CAFT+ZxszzVX/N0nqJPM/l0dz1VVXXXXV/yQKCPE/lbNlNhBXXXXV/yaWQqXwP5XxSishrrrqqquu+r/IWKhzx1VXXfW/CQBQ+Z8qpOU0vcODH3xiNhszxVX/dxhmpTzj4OAXbr99q+uazf8wTpdFOfZm13hIJK666qqrrvrv5nTZKId/tbt8ymHMA/M/iqRptTr+8Efe8EqvNh4eqgRXXXXV/wrpMp9fuvVpd/7h73Qbm87kfxKhgeGMz7zX0Xsd6SgcXHXVVVdd9X+O0KTpWxffGgRXXXXV/xoAQOV/qpBWrb3PIx/5yJ2do9bEVf93NPvkbPbLd975I09/+rG+bzb/0zTHRj3zHg9uB5OCq6666qqr/tt5cnfN7O6vecrR3+9po7iZ/1EipuXRiYc/6mU+9KMP77k7uo6rrrrqfwNnm584+fRf/vlbf+0X++0dZ/I/zKDhdDv9aYefttKqd89VV1111VX/txgXypGOvnnxzYVizFVXXfW/AwBQ+Z9KABSpRNRMSVz1f4XsKhWJ/9lUpIAirrrqqquu+m9nKCL4n0yhqFWlRClcddVV/xukpFIVwf941TUIrrrqqquu+r+oUrnqqqv+lwEAKv9jCABD2gZlDplp206QzVX/V6SdYBuQJJ7NPJN4bgZAPB8G8fyZfw3xTBLCto3MVVddddVV//3SGAyAQDybeSbxHMwziedmAMTzYf51JEASEuBMbNtc9T+JeG7mqqsuyyTT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/SIsATDPNMAT4eVAALw0vAn8DBQwmGcTGID35dkuwV8AkPzHM1wHL80zreDXARAvUECD34BH8Uyvzf98QhNTox3qMIgkd7xzpCMhWUstgUu6VCgT03Efn5iARmtqxtyvcweEw/idV+/80PbQYz52pKOXGF8CsMxVV131HwYAqPzHMXQRZ1er37377te9/vpZKc0W/zGme+8FsJH6RzyinjnTLl1S3yNxhe1xxN554zeePepRPJAU83mOIy+Era5b/cM/bL/5m6tWoFxzzcYrvdLhH/4hEhIPoAgk/iWqtV26tH7Sk+r113sc1feLl37p5V/8RR4eUisPIIkInsXWbDbedtvRH/zBxqu9GpnA1hu/8Xju3OHv/A6SSiECCcDG9jiS2d1yy+wRjzj60z/1ek0ENuDM2No6/L3fm7/kS9YzZ8iM48ePv+u7Xvy+72sXLlCKSkFCArDJdCaZMZ/H9vbGK7/y8PjHD7fdRin8xzF0Eb96551v+xu/cTRNABDSnUdH81KAz/vrv96oNW1AUstctibY6rrNUpC436q1o9aetr//+N3dxxw/3jK5bMj8q/PnQ7LNiyAP2+rph/31883H7tgocDPifwVBc3vM8Ue9/KmXXrdhVvq/u/j4Pzn3l/MyN+Zfxfzpub96netffaMsxpxe+czLvfKZl//FO36dpEYNySbJw/HoxU88+p0f8tZAUTHmBRD6/qf++Ge/9CekHdKrnHn5D3zke3z3U354yKGoFoWQJNvGza252ez029cuTr/mta/648/42dW05vlJ2mbd+IP7/vQdHvyWD9m6pbm94umXeakTL/bY44/iskvj/m/e83vzMkubf8lmt/k2t7wpIFi19Y/d+rM1amL+FdxFd2594Tfv+YN3ecjbGIDXue7V/+ymv/qp235xs24UFUmY5lzn6sz81Ic/+v0ADOLs6vzv3fvHG2WRJFeBcRf14vrSz9/+a+/z8Hdpbo/ceegjdx4KAgF/evYvz63Pn+iPNSf/TfroPuxR7/N5f/OV61x30QUBGB9Mh9ctrnmrm994q26u23pWZr99zx/ctzzXR8f9QuWwHf3KXb/9IY96L9uIlz35ku/04Lf+rqf88EadFxUhIMllW22UxUc85v266LjsYDz8jbt/bxZ9OrlfKI6mo5c79VLpfOLeU5fTEqhRi4qQJHDaY45H09GLH3/0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q150tlvjqquuuuo/lPHExFVXXXXVVVddddVV/4MAAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qAKC2Zq666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFwkAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIL/8SRxmaSI4N9KElddddVVV1111VVXXXXVVVddddVVV1111VVXXfXvAgAEz09E1FprrYpQRJTC/UopkiKi1lprLaXwrxcRvGgkTeNoG8jMo8NDSRHBv0atne1pmiRx1VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/3YAQFksNnhOklar5e7uhcPDg1rqNI2r5bJ2nSRJe5d2I2Icx4sXLxweHozjuFgsbPMisz2s16VWXgS2T5w81VprrXVd94hHP/a+e+9Zr1Zd3/OisX3+/H3Hjp3Y2t5ZrZaSuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqn8jAKAsFhs8gKRhGB7zYi/5Nu/wbi//Sq924dx9p05f85jHvsT582fbNE3T9Hpv9GbTOJ06feYd3uW9XuGVXv3MmWue/KQn9H1v23YppdYqCSil1Fol2Y6IUmqUYrvr+4c+7JGXdi9KqrVGFEkG27XWWqskLpNiHMd3fNf3efITH5fZ3uv9P+zmWx6yd2n3IQ99+F133jabLTKbpFIqOCJKKREFsA2UWkOazedv/87vdfttt77ZW73DX/zpH/b9zDZXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwEABA+giOXR0SMf/WJv/OZvs3vx4mKx8dbv8G4v/XKv+Kqv+TrXX39jm6ZhvX639/ngm2550Lu8x/svjw7X6+UbvMlbvdGbvvVyuYyIUsrR0eG99969e/HCNI37e5fuvffuvb1LwDAM991393333r1aLqdxfN8P/sjz589GxH333XPffXfv7l4UlFL29y7de+/du7sXp2mKiGkcXuplX2G2mA/DMKzXr//Gb/FD3/ttR4eHd991R5vauXP3SRrH4eLF85m5XB7dd989991393q9khQRF8+fO3v23sOD/ff5oI88Ojzc2dl58Zd62WEYFMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwAAZbHY4H4l4tKli6//Rm/28Ec+5ku/4NP+5A9+90EPeujf/OWfvuTLvPz5c2ef9IR/eMSjHvughzz09Jlrn/H0p373t339X/35n/Sz2Zu91dv99I/94Pb2sUuXdl/pVV/z3d/7g6+9/vq93Uuv+Cqv+UEf8fHz+eK2Zzztxptu+cAP+9jXeYM3ve22p7/267/J27zjuy8PD59x61M/6MM+/g3f9K2uu/6Gpz7p8Qf7+2/4Zm/11m//rtdce92l3YtHhwer1eo93+9D/+QPf+/2Zzz9NV/nDV7n9d9kd/fibbc+7bVe743O3nvv27/ze/zD3/31zbc8+HXf8E3vuvP2x77ES7/be33gG7zxW1w4d/bcufumqb3ju733m7zF2z304Y+84cabf+T7v3P72PFXetXX/N3f/JXFYtNOrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666l8NAAgewPbGxubf/81fzWfzL/uab3+113rdX/2ln/m7v/3L5dHRqdNnopRXfvXX+vM/+cOXfflX+q1f/6WTp073s9nP//SPfvkXfMb2zrHMXK9Xj37sS7zuG7zpU570hJd9xVd5iZd6mV/5hZ9607d8u9NnrnmfD/rIJz/p8U998hPe5T3e/87bbzt/9r577r7zjd70rf/+b/7i53/qR06cPPUWb/tO62H1iq/yGq/wyq9+9513LI+OSq3TND78kY8+d9890zTed+/d4zQ++Qn/cO11N7ztO777Hbc/48abH/RWb/cuj3nxl7r5lgfffMuDH/bwR/3eb/3aL//CT7/l27/L6TPXvu4bvtnND3rI3//NX2xvH9vY3FyvVxfPn3/YIx41TqNCXHXVVVddddVVV1111VVXXXXVVVddddVVV1111b8FABA8QGbO54unPfVJ3/S1X/r3f/fXb//O7/WBH/Zx1157/R//we/ceNMtW1vbL/Uyr/CEx/2tIVuz/Q7v8l5f/FXf8hqv84br9SoiuOzP/uQP/uLP/uhP/+h3/+xP/iAzH/ywR8wXG8N6/fBHPOYv/+yPfuC7v/Xxf/83+3uX/vLP//id3v19XuFVX+M1Xvv1X+O13+ARj34xLvvD3/3NP/z931qvV6WUzNzY2BqGwemnPuVJh4cHf/yHvzuO4/7e3jCuf/JHvv+VXvU1H/tiL/XNX/tlj32Jl3rTt3q7V33N133lV3vN132DN+372Ru/2Vv96i/+zM//zI/9/E//SImSmeM4bGxsA+Kqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+bQCA4AFsR8SZa6695567fupHv+/rvuILb7jpltd5gzf9zV//xetvvOnFX/Jl9i7t7l3avXj+3Kkz10TEn/7R7//5n/zhW739uy6XRxEBSBrHAXjxl3q5V3jlV9+7dOnihfPbO8c+59M+5ilPfsL7f+jHvsIrv/p8sUC69rob1uv1T/7I9/3Zn/zht37jV/7iz/44kJnL1RKotUtbEcujw67vJM3n8xKl1k4iSgB7e7td3x07cfLS3u4tD3ro3/7Vn//iz/z4H/7eb3/J533anXfcdvLUmUsXd3d2ju/v7zmtUO3qankImKuuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvq3AQCCB4iIg4P9V32N1/mIj/3Uvb1LT3ny4y+cPzubz4HD/YPXe6M3f/w//M1qufzt3/yVd3739zvY33vaU554/Y037V/aFQKAzIwI4LVf740P9vf+9I9/LxSCD/7wj//D3/vNr/myz3vn93g/SbXU8+fP3nfP3Qd7+3/wu7/xoFse8pjHviQAFgKMsWupT33KE89cc12tNTMzmzNtsiXw8q/0anfc/ownP/Ef3uTN3uZv//rPs+UTHvd3T3nCP7zSq7zGyVOnn/rkJz7mJV5quTx62Zd/5eac9fMTJ08/7alPqqXa5qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/4tAIDKc+q7/o9+/7dvefBDv+W7f9z4r//iT3/jV35hMd/4oz/4nU/93C/59V/+ucPDg1/7xZ95yEMf8W0/8NN3POPp58+f6+czYwDouq7WDvjd3/rVt32Hd/vcL/7aU2fODOvh3Ln7PvMLvipb++Wf/6nl0dFyefReH/Dh3//d3/w5X/I143p9++3P+OHv+3ag1q7rOkDQMmfz2W//xi8/+rEv+bd/9Re254sN26XWlu1hD3/U673hm33+Z37Cox/z4q/7hm/2Q9/7bTfcePM3f/ePRcQv/+JP713a/d7v+MYP/9hPfYM3fot77r5DsLm1/dCHPfJ3fv1XFhubzuSqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+LQAAnTx5mueUmbPZbGNzCzg8PBjW64hQxNbW9uHBfmvN9mw229zabtO0Wi27fnZ4sB8RmW02W0TE0dFhKWVza1uSM4+Ojmxv7+xExN6l3cxcLDYi4uBgf+fY8YhYLo+WR0cRMV8snF6vl1IAEbFarT7p07/gO775q3d3L27vHDvY36u19rP5sF7N54u9vUtd181m89VqWWrd2NgE9i7t2ra9vb1Ta10Pa2ceO37iHd7tfb7s8z5te+dYa42rrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676twAAdPLkaZ5HZmYmEBERAdhubSqlSgIyM7NJksKZpVYAlNls11ozs7UmYVNKAVprQIlQRGsTqJSYpgZEKKIgtWmSFFHAXGa767rWmu1pmmqttjNbRMlspVTbmVki0s5MoJQiCWhtspFku+u6KGUaR0lcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvxEAoJMnT/M/m51S8O9mWxJXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwcAVP7Hk4L/CJK46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqfxcAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFANQIcdVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9SACAGiGuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcJABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd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lU6SznXe/eVPXj354LqPeNjsYZsxi+UTD/Z/7xxT0gfJfwih5nz4zkO2uy0uW03ri8MlgQ2QdlH8/r1/8qidh7/7w96+Rp1yerVrXvHVrnlFLktnKJrbr9/9u7ce3L5ZN9LJ8yiK/eHg1R/0So/ceRiXNbffv/dP7j66t0blRSBpfzwYcqpRASBUJJ4voXSemB1blDkvgKQxp4PxELCNuO3wjk/7yy/8m4uP26wb6eRFYDwvs626WVSMeSDzu/f+8Vvc/IYn+uPAif74ix1/1C/d+RuGqvKYY4+4afMG45CGHP7o7J9fGvarijEvmFDL6WR//JVPv/zx/lg6i8r59cVfveu3x5yKgheBpGVbDTlu8ExddELGPH+yvVk3+tJxvyEHbP7TGAudX1/8or/72jEHEP8K7qLb6bb76Iz5z2e7L/2fn//rJ156yplrTgGSXurEi52Zn74w7G53W69z/avPop/cKnHH0V1/feHvl2210203N56TpOb8+id857oN/CsVxU63XaMa8wIJcazbLgowz0loyrbTbT9482aBATDctzq7mlY1qo3Qqi3XOXC/PrqdbiudvABJHu93uui435gj4nkZN/vU/OS59YVvedL3LKfVdYszL3PyJR++8+DrF9fesnXTix171Fa3CRg3t0cde9g7P+StvuTvbhs9CRnzP1+R1+34m19//A2vsUG695ueuvfrZ0+9002bL3ecojyY7vn6px7++W7ZqSSEvGpxrM4etDldGNdPO6yn+tktG/VkN51bg3hOdkbtFidPry5eOPcPf9tvbp141GO3b7yp3zkWUZDAbm1x+ppX+ITP2L7xZoVWFy/+yRd99vL82df7mm8rfd9tbd3zp390dPa+tl4pgv9ozd6fRu7Xh/qQzQsiKAr+rwhxOLYhs0YBBKHg32S7q0DiKT3ZL3ny2Jvfcv0jj20BzS6SjXFIzzg4+plb71q31oXMfwVDke48Wh5ME/c7GKefufWuO5erAPOi6iNmJczzJ6m1fPMHX/fK154EbEvisj7ijW++9p6j5d9c2Nuspdn8T5L2zZsbm7Vwv4vr4a7D5clZP9n857At6dHv8p6Pert3yWmKrnvCj/7A337L1734e33gja/+Wm29Uql/823f8JSf+pE6O44EOHPjzDWb1990dPbe3ac+eXH6zM6DHrJ9w033/eWfohnPSWhk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J2azIvE/ma2qcqKTARBXXXXVVVf9L+Lmeqwrm5X/0eTMulgsTp+pfU8UcdVVV/2fEDE7fx7zP9zc87nnAOaqq/7bXZPXzDwDevf8T3WNrykuwMwzrrrq/6Jr8prOXZJcddX/cQCArrnmGv5PEEz2I7a3j/V9s7nq/7Qi7Q3DbYeHgy3+p0rHZu1unGOuuuqqq67638eoaro4TOcGzP9QUo7jxjXXblx7vVvjqquu+j9Daqvl3q1PQ+J/KuMTeeLh08OFjLnqqv9WQoOGcFSqMf8jBbHSCph5ZsxVV/2fIzRoeHJ98r72C4Wrrvq/DADQNddcw/8VglVrzZaEzVX/V0nYIfWliP/Z0jmaq6666qqr/reySqiK/8mknMYcJwTmqquu+j9DodLP+J+t0dZac9VV/zMIAcb8T2UcBJCkEFdd9X+R0MyzQjHmqqv+LwMAdM011/B/iLjq/xHzv4G46qqrrrrqfzHzv4PEVVdd9X+Pzf94Qlx11VVXXXXVAxhz1VX/9wEAlf9bzFVX/Q9jrrrqqquuuuo/nc1VV1111X8HY6666qqrrrrqqqv+3wEAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQDwj2WhgWMHV+r8AAAAAElFTkSuQmCC","media_type":"image/png"}}]}]},"uuid":"79fd8bb8-dc0d-4790-b0a9-3245f2d6d08f","timestamp":"2026-07-27T20:23:05.552Z","toolUseResult":{"type":"image","file":{"base64":"iVBORw0KGgoAAAANSUhEUgAAB8oAAAEsCAIAAAAkVq5XAAIP1klEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a+ePHmaq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFAgAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4L+cpIjgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/vcBAILnERG160optdaIApRSatdJ4rJaOy6LiFprrbWUwoss7aPDQ2Ouuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqfxkAoCwWGzxARKyWy4sXzy+Pjg4PD2zPF4vdixf29y/N5/OIkHT+3H3z+aKUsjw62t29cHh40KY2n88zUxIvlO1a6yMf/WKXdi/a5qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/43AQAqDyDF0dHRIx/12Nd/4zc/f/7s1tbO3/zln/7B7/3WW77NO117/Y0/95M/fHCwh3m/D/non/vJH14eHT3mxV/yVV7jdaZxfMoTH/8Hv/ubG5tbmc12rTUiMjMzFRESKLO11mrXvef7fagzb7/1aVkMOJ3ZMrPWGhGZmZlSRAiU2TIT6LouM6UAWptsK6JEgDIzs0VERIAyW2Zy1VVXXXXVVVddddVVV1111VVXXXXVVVddddVV//EAgOABInR0dPDiL/Uyb/imb3Xn7beN4/Cmb/X2tzzoIa/6mq/7MZ/8WQ95+CMljeP4Ph/4EbXrbrz5Qe/yHu9/8fw54M3f5h1f83Xe8OjoICJKKft7e/fee/fuxQvOPNjfu+++e+677+5xHIH1avWGb/KWP/S93za16ey999x3790XL54HSikH+/v33nv37sULmXl4uH/ffffcd9/dwzBIAu699+69S7v33Xf3fffd3VqLiGkc7rvvnvvuu/vo8KDruqPDg/vuu+e+++5er1eSuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv94AEBZLDa4X0Qsj45e7CVeepqmb/vGr/zzP/3D13/jtxiG9fbOsac95YnXXnvdM2592oXzZ9/srd/hl3/+J9/hXd77CY/7ux/4nm/96z//k2uvu/5VX+N1fv5nfuzY8RO7F86/wZu85Vu/w7tff8ONd955+6u9xuu+w7u81+u8/pve/oynXbp08TVe+w1e+/Xf+GB/7xm3Pu19P+gj3+jN3vqWBz3kSU/4h8OD/dd6vTd6h3d57+tvuPGeu+58+Vd6tXd69/d93Td4s7vuuG334oWI+KhP/MzjJ06+47u898u/4qve+vSnXNq9eNMtD3mv9//Q13n9N22t/cPf//Vrvd4bv+O7vc8bvPFbXjh39ux990YEV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9R8MAAiek3FEKaUCs37edf3+3t7Jk6d+/Zd//sTJ04989IspopRaSn2pl32FX/ulnztz5lpJP/S93/7NX/dlx46dyMxhHF72FV7lVV7ttZ7yxMe/4iu/+s6xE7/167/0u7/1q+/63h+4ubV99113rFere++5+43e9K2f8Li/+/mf/tHZYv527/Qeq/XqZV7+lV7jtV//KU96wku//Cudueba3/71X/6tX/+ld3qP9z1+4uQ0jm/3ju/+iEc+5k//+PcV8a7v9YGbm1tv9XbvfOHc2dtufeprvd4bvu8HfuSpU2f+4Hd/85d/4aff/G3f6cabH7ReryVx1VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/5EAgMpzioijw4NXeKVX/cRP+/wbb37Q05/6pD/43d94x3d7n1LKT/7I977ze37An/3JH4zjIGm+WKzXq82trfd8vw997Eu81J/9yR/+9I9+/8bmJmDnH//h7/7lX/zJW739u9zy4Ic9/h/+JiJe83Xe8Nu/8auf8qQn7O/v/eHv/db3/fgv/fmf/MHepd2XeYVXPn/2LCDpz/749//iz/7oU9/0rR794i/593/zl7Zf63Xf6Pu/81ts71688Es//1P/8Hd/de7svR/58Z9xw403P+wRj/riz/2UEydOnrnm+nd/nw988MMe8Q9/+9fDsH7t13+TX/yZn8g2cdVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf/BAIDKc3K6n81uffpTf/JHv/+6G266647bhmEdERubm7/6Sz/z/h/2cY96zItHRGbuXrx4zbXXHezv/c5v/upsPn/zt3qHH/6+by9RACnWqyVw7XU3/uHv/eaf/8kf9rPZ3/3NXx0dHm5sbiri9JlrbH7yR77v2PGTf/WXf5atAdnaer0Crr3+pj/9w9/7vd/+9fli8bi//9u9S7u1q621O29/xubmVil1WK/62QwDbG7tPOmJ/7B36dJTnvj4X/jpH93cPvakJzzu7rvu6Gcz21x11VVXXXXVVVddddVVV1111VVXXXXVVVddddV/JAAgeB6llLP33fuUJz/hb/7yzy5d2gWytWwN+KHv/fY3f+t33NreWa9Xf/h7v/ke7/vB99xz11133Hbd9TfuXboIGIDMZgzcftvTnf6rv/iTe+6881Vf43W6vsvWsNer1d133b48Wv7+7/7GDdff9OIv+TIAkm3gzjtuzZZ/+1d/dsczbn3VV3/t+XzeWk7TFBGZCSji0u5uOq+//qaQ3uU9P+D6m26+eP78k57w+Kc84R9e6VVeY+fYsWmaJHHVVVddddVVV1111VVXXXXVVVddddVVV1111VX/kQCAynMyLqVubm0Bm1tbGGA2nyui7/o//cPffau3fadTp884/XM/9SMf8bGf+v0//stPevw/2J7NF4AA6PtZKIAf/J5vfa/3/7Bv+e4fq6X7sR/+7qPDw/l8sbW9c+H8uR/9/u/85M/6otbavffc9QPf861AKQUE/Mj3f9d7vO8Hf/N3/3it9ad+7AcuXdqttc4XCxBG4uSp0098wt///u/8xhd+5TeNw/Cnf/z7X/b5n/6u7/n+3/AdP1RK+eVf+Kl77rqz72e2ueqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv9IAIBOnjzNA9ju+1mt9fDwICKAzNzc2hqHcRwH8Hyx0Xf9/v5eZs7ni82trWEYxmFdand0sB+ltNYWGxu216uVnYuNzflsnvbepV0gIjY2tw729yRtb+9EKavV8ujwMCLm8wWwWi3tXCw2ZvOF7b1Lu4Ckza3tw4N926XWxXyxt3ep6/qt7W3g6PBguVxubm7NFwtg79KunVJw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/8EAAJ08eZrnlJm2a622AUnTNEaEFEBrzc5aOyCzZaYUErZL7bAltWlCigggW0sbKKVIAqZpqrXabq0BIUUpQGYDIgqQ2TINlFIkAdM01VoB2621rusys7UGREQppbWWmUApRRJXXXXVVVddddVVV1111VVXXXXVVVddddVVV131Hw8A0MmTp7nqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXiQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVAFAlrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXDQBQI8RVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9SIBAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICACr/swkkcdX/RbbN/2ziqquuuuqq/1nM/2ySBOaqq676X8WAzf9gQXDVVVddddX/aUly1VVX/W8CAFT+ZxszzVX/N0nqJPM/l0dz1VVXXXXV/yQKCPE/lbNlNhBXXXXV/yaWQqXwP5XxSishrrrqqquu+r/IWKhzx1VXXfW/CQBQ+Z8qpOU0vcODH3xiNhszxVX/dxhmpTzj4OAXbr99q+uazf8wTpdFOfZm13hIJK666qqrrvrv5nTZKId/tbt8ymHMA/M/iqRptTr+8Efe8EqvNh4eqgRXXXXV/wrpMp9fuvVpd/7h73Qbm87kfxKhgeGMz7zX0Xsd6SgcXHXVVVdd9X+O0KTpWxffGgRXXXXV/xoAQOV/qpBWrb3PIx/5yJ2do9bEVf93NPvkbPbLd975I09/+rG+bzb/0zTHRj3zHg9uB5OCq6666qqr/tt5cnfN7O6vecrR3+9po7iZ/1EipuXRiYc/6mU+9KMP77k7uo6rrrrqfwNnm584+fRf/vlbf+0X++0dZ/I/zKDhdDv9aYefttKqd89VV1111VX/txgXypGOvnnxzYVizFVXXfW/AwBQ+Z9KABSpRNRMSVz1f4XsKhWJ/9lUpIAirrrqqquu+m9nKCL4n0yhqFWlRClcddVV/xukpFIVwf941TUIrrrqqquu+r+oUrnqqqv+lwEAKv9jCABD2gZlDplp206QzVX/V6SdYBuQJJ7NPJN4bgZAPB8G8fyZfw3xTBLCto3MVVddddVV//3SGAyAQDybeSbxHMwziedmAMTzYf51JEASEuBMbNtc9T+JeG7mqqsuyyTT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/SIsATDPNMAT4eVAALw0vAn8DBQwmGcTGID35dkuwV8AkPzHM1wHL80zreDXARAvUECD34BH8Uyvzf98QhNTox3qMIgkd7xzpCMhWUstgUu6VCgT03Efn5iARmtqxtyvcweEw/idV+/80PbQYz52pKOXGF8CsMxVV131HwYAqPzHMXQRZ1er37377te9/vpZKc0W/zGme+8FsJH6RzyinjnTLl1S3yNxhe1xxN554zeePepRPJAU83mOIy+Era5b/cM/bL/5m6tWoFxzzcYrvdLhH/4hEhIPoAgk/iWqtV26tH7Sk+r113sc1feLl37p5V/8RR4eUisPIIkInsXWbDbedtvRH/zBxqu9GpnA1hu/8Xju3OHv/A6SSiECCcDG9jiS2d1yy+wRjzj60z/1ek0ENuDM2No6/L3fm7/kS9YzZ8iM48ePv+u7Xvy+72sXLlCKSkFCArDJdCaZMZ/H9vbGK7/y8PjHD7fdRin8xzF0Eb96551v+xu/cTRNABDSnUdH81KAz/vrv96oNW1AUstctibY6rrNUpC436q1o9aetr//+N3dxxw/3jK5bMj8q/PnQ7LNiyAP2+rph/31883H7tgocDPifwVBc3vM8Ue9/KmXXrdhVvq/u/j4Pzn3l/MyN+Zfxfzpub96netffaMsxpxe+czLvfKZl//FO36dpEYNySbJw/HoxU88+p0f8tZAUTHmBRD6/qf++Ge/9CekHdKrnHn5D3zke3z3U354yKGoFoWQJNvGza252ez029cuTr/mta/648/42dW05vlJ2mbd+IP7/vQdHvyWD9m6pbm94umXeakTL/bY44/iskvj/m/e83vzMkubf8lmt/k2t7wpIFi19Y/d+rM1amL+FdxFd2594Tfv+YN3ecjbGIDXue7V/+ymv/qp235xs24UFUmY5lzn6sz81Ic/+v0ADOLs6vzv3fvHG2WRJFeBcRf14vrSz9/+a+/z8Hdpbo/ceegjdx4KAgF/evYvz63Pn+iPNSf/TfroPuxR7/N5f/OV61x30QUBGB9Mh9ctrnmrm994q26u23pWZr99zx/ctzzXR8f9QuWwHf3KXb/9IY96L9uIlz35ku/04Lf+rqf88EadFxUhIMllW22UxUc85v266LjsYDz8jbt/bxZ9OrlfKI6mo5c79VLpfOLeU5fTEqhRi4qQJHDaY45H09GLH3/0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q150tlvjqquuuuo/lPHExFVXXXXVVVddddVV/4MAAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qAKC2Zq666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFwkAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIL/8SRxmaSI4N9KElddddVVV1111VVXXXXVVVddddVVV1111VVXXfXvAgAEz09E1FprrYpQRJTC/UopkiKi1lprLaXwrxcRvGgkTeNoG8jMo8NDSRHBv0atne1pmiRx1VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/3YAQFksNnhOklar5e7uhcPDg1rqNI2r5bJ2nSRJe5d2I2Icx4sXLxweHozjuFgsbPMisz2s16VWXgS2T5w81VprrXVd94hHP/a+e+9Zr1Zd3/OisX3+/H3Hjp3Y2t5ZrZaSuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqn8jAKAsFhs8gKRhGB7zYi/5Nu/wbi//Sq924dx9p05f85jHvsT582fbNE3T9Hpv9GbTOJ06feYd3uW9XuGVXv3MmWue/KQn9H1v23YppdYqCSil1Fol2Y6IUmqUYrvr+4c+7JGXdi9KqrVGFEkG27XWWqskLpNiHMd3fNf3efITH5fZ3uv9P+zmWx6yd2n3IQ99+F133jabLTKbpFIqOCJKKREFsA2UWkOazedv/87vdfttt77ZW73DX/zpH/b9zDZXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwEABA+giOXR0SMf/WJv/OZvs3vx4mKx8dbv8G4v/XKv+Kqv+TrXX39jm6ZhvX639/ngm2550Lu8x/svjw7X6+UbvMlbvdGbvvVyuYyIUsrR0eG99969e/HCNI37e5fuvffuvb1LwDAM991393333r1aLqdxfN8P/sjz589GxH333XPffXfv7l4UlFL29y7de+/du7sXp2mKiGkcXuplX2G2mA/DMKzXr//Gb/FD3/ttR4eHd991R5vauXP3SRrH4eLF85m5XB7dd989991393q9khQRF8+fO3v23sOD/ff5oI88Ojzc2dl58Zd62WEYFMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwAAZbHY4H4l4tKli6//Rm/28Ec+5ku/4NP+5A9+90EPeujf/OWfvuTLvPz5c2ef9IR/eMSjHvughzz09Jlrn/H0p373t339X/35n/Sz2Zu91dv99I/94Pb2sUuXdl/pVV/z3d/7g6+9/vq93Uuv+Cqv+UEf8fHz+eK2Zzztxptu+cAP+9jXeYM3ve22p7/267/J27zjuy8PD59x61M/6MM+/g3f9K2uu/6Gpz7p8Qf7+2/4Zm/11m//rtdce92l3YtHhwer1eo93+9D/+QPf+/2Zzz9NV/nDV7n9d9kd/fibbc+7bVe743O3nvv27/ze/zD3/31zbc8+HXf8E3vuvP2x77ES7/be33gG7zxW1w4d/bcufumqb3ju733m7zF2z304Y+84cabf+T7v3P72PFXetXX/N3f/JXFYtNOrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666l8NAAgewPbGxubf/81fzWfzL/uab3+113rdX/2ln/m7v/3L5dHRqdNnopRXfvXX+vM/+cOXfflX+q1f/6WTp073s9nP//SPfvkXfMb2zrHMXK9Xj37sS7zuG7zpU570hJd9xVd5iZd6mV/5hZ9607d8u9NnrnmfD/rIJz/p8U998hPe5T3e/87bbzt/9r577r7zjd70rf/+b/7i53/qR06cPPUWb/tO62H1iq/yGq/wyq9+9513LI+OSq3TND78kY8+d9890zTed+/d4zQ++Qn/cO11N7ztO777Hbc/48abH/RWb/cuj3nxl7r5lgfffMuDH/bwR/3eb/3aL//CT7/l27/L6TPXvu4bvtnND3rI3//NX2xvH9vY3FyvVxfPn3/YIx41TqNCXHXVVVddddVVV1111VVXXXXVVVddddVVV1111b8FABA8QGbO54unPfVJ3/S1X/r3f/fXb//O7/WBH/Zx1157/R//we/ceNMtW1vbL/Uyr/CEx/2tIVuz/Q7v8l5f/FXf8hqv84br9SoiuOzP/uQP/uLP/uhP/+h3/+xP/iAzH/ywR8wXG8N6/fBHPOYv/+yPfuC7v/Xxf/83+3uX/vLP//id3v19XuFVX+M1Xvv1X+O13+ARj34xLvvD3/3NP/z931qvV6WUzNzY2BqGwemnPuVJh4cHf/yHvzuO4/7e3jCuf/JHvv+VXvU1H/tiL/XNX/tlj32Jl3rTt3q7V33N133lV3vN132DN+372Ru/2Vv96i/+zM//zI/9/E//SImSmeM4bGxsA+Kqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+bQCA4AFsR8SZa6695567fupHv+/rvuILb7jpltd5gzf9zV//xetvvOnFX/Jl9i7t7l3avXj+3Kkz10TEn/7R7//5n/zhW739uy6XRxEBSBrHAXjxl3q5V3jlV9+7dOnihfPbO8c+59M+5ilPfsL7f+jHvsIrv/p8sUC69rob1uv1T/7I9/3Zn/zht37jV/7iz/44kJnL1RKotUtbEcujw67vJM3n8xKl1k4iSgB7e7td3x07cfLS3u4tD3ro3/7Vn//iz/z4H/7eb3/J533anXfcdvLUmUsXd3d2ju/v7zmtUO3qankImKuuuuqqq6666qqrrrrqqquuuuqqq6666qqrrvq3AQCCB4iIg4P9V32N1/mIj/3Uvb1LT3ny4y+cPzubz4HD/YPXe6M3f/w//M1qufzt3/yVd3739zvY33vaU554/Y037V/aFQKAzIwI4LVf740P9vf+9I9/LxSCD/7wj//D3/vNr/myz3vn93g/SbXU8+fP3nfP3Qd7+3/wu7/xoFse8pjHviQAFgKMsWupT33KE89cc12tNTMzmzNtsiXw8q/0anfc/ownP/Ef3uTN3uZv//rPs+UTHvd3T3nCP7zSq7zGyVOnn/rkJz7mJV5quTx62Zd/5eac9fMTJ08/7alPqqXa5qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/4tAIDKc+q7/o9+/7dvefBDv+W7f9z4r//iT3/jV35hMd/4oz/4nU/93C/59V/+ucPDg1/7xZ95yEMf8W0/8NN3POPp58+f6+czYwDouq7WDvjd3/rVt32Hd/vcL/7aU2fODOvh3Ln7PvMLvipb++Wf/6nl0dFyefReH/Dh3//d3/w5X/I143p9++3P+OHv+3ag1q7rOkDQMmfz2W//xi8/+rEv+bd/9Re254sN26XWlu1hD3/U673hm33+Z37Cox/z4q/7hm/2Q9/7bTfcePM3f/ePRcQv/+JP713a/d7v+MYP/9hPfYM3fot77r5DsLm1/dCHPfJ3fv1XFhubzuSqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+LQAAnTx5mueUmbPZbGNzCzg8PBjW64hQxNbW9uHBfmvN9mw229zabtO0Wi27fnZ4sB8RmW02W0TE0dFhKWVza1uSM4+Ojmxv7+xExN6l3cxcLDYi4uBgf+fY8YhYLo+WR0cRMV8snF6vl1IAEbFarT7p07/gO775q3d3L27vHDvY36u19rP5sF7N54u9vUtd181m89VqWWrd2NgE9i7t2ra9vb1Ta10Pa2ceO37iHd7tfb7s8z5te+dYa42rrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676twAAdPLkaZ5HZmYmEBERAdhubSqlSgIyM7NJksKZpVYAlNls11ozs7UmYVNKAVprQIlQRGsTqJSYpgZEKKIgtWmSFFHAXGa767rWmu1pmmqttjNbRMlspVTbmVki0s5MoJQiCWhtspFku+u6KGUaR0lcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvxEAoJMnT/M/m51S8O9mWxJXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwcAVP7Hk4L/CJK46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqfxcAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFANQIcdVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9SACAGiGuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcJABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd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lU6SznXe/eVPXj354LqPeNjsYZsxi+UTD/Z/7xxT0gfJfwih5nz4zkO2uy0uW03ri8MlgQ2QdlH8/r1/8qidh7/7w96+Rp1yerVrXvHVrnlFLktnKJrbr9/9u7ce3L5ZN9LJ8yiK/eHg1R/0So/ceRiXNbffv/dP7j66t0blRSBpfzwYcqpRASBUJJ4voXSemB1blDkvgKQxp4PxELCNuO3wjk/7yy/8m4uP26wb6eRFYDwvs626WVSMeSDzu/f+8Vvc/IYn+uPAif74ix1/1C/d+RuGqvKYY4+4afMG45CGHP7o7J9fGvarijEvmFDL6WR//JVPv/zx/lg6i8r59cVfveu3x5yKgheBpGVbDTlu8ExddELGPH+yvVk3+tJxvyEHbP7TGAudX1/8or/72jEHEP8K7qLb6bb76Iz5z2e7L/2fn//rJ156yplrTgGSXurEi52Zn74w7G53W69z/avPop/cKnHH0V1/feHvl2210203N56TpOb8+id857oN/CsVxU63XaMa8wIJcazbLgowz0loyrbTbT9482aBATDctzq7mlY1qo3Qqi3XOXC/PrqdbiudvABJHu93uui435gj4nkZN/vU/OS59YVvedL3LKfVdYszL3PyJR++8+DrF9fesnXTix171Fa3CRg3t0cde9g7P+StvuTvbhs9CRnzP1+R1+34m19//A2vsUG695ueuvfrZ0+9002bL3ecojyY7vn6px7++W7ZqSSEvGpxrM4etDldGNdPO6yn+tktG/VkN51bg3hOdkbtFidPry5eOPcPf9tvbp141GO3b7yp3zkWUZDAbm1x+ppX+ITP2L7xZoVWFy/+yRd99vL82df7mm8rfd9tbd3zp390dPa+tl4pgv9ozd6fRu7Xh/qQzQsiKAr+rwhxOLYhs0YBBKHg32S7q0DiKT3ZL3ny2Jvfcv0jj20BzS6SjXFIzzg4+plb71q31oXMfwVDke48Wh5ME/c7GKefufWuO5erAPOi6iNmJczzJ6m1fPMHX/fK154EbEvisj7ijW++9p6j5d9c2Nuspdn8T5L2zZsbm7Vwv4vr4a7D5clZP9n857At6dHv8p6Pert3yWmKrnvCj/7A337L1734e33gja/+Wm29Uql/823f8JSf+pE6O44EOHPjzDWb1990dPbe3ac+eXH6zM6DHrJ9w033/eWfohnPSWhk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J2azIvE/ma2qcqKTARBXXXXVVVf9L+Lmeqwrm5X/0eTMulgsTp+pfU8UcdVVV/2fEDE7fx7zP9zc87nnAOaqq/7bXZPXzDwDevf8T3WNrykuwMwzrrrq/6Jr8prOXZJcddX/cQCArrnmGv5PEEz2I7a3j/V9s7nq/7Qi7Q3DbYeHgy3+p0rHZu1unGOuuuqqq67638eoaro4TOcGzP9QUo7jxjXXblx7vVvjqquu+j9Daqvl3q1PQ+J/KuMTeeLh08OFjLnqqv9WQoOGcFSqMf8jBbHSCph5ZsxVV/2fIzRoeHJ98r72C4Wrrvq/DADQNddcw/8VglVrzZaEzVX/V0nYIfWliP/Z0jmaq6666qqr/reySqiK/8mknMYcJwTmqquu+j9DodLP+J+t0dZac9VV/zMIAcb8T2UcBJCkEFdd9X+R0MyzQjHmqqv+LwMAdM011/B/iLjq/xHzv4G46qqrrrrqfzHzv4PEVVdd9X+Pzf94Qlx11VVXXXXVAxhz1VX/9wEAlf9bzFVX/Q9jrrrqqquuuuo/nc1VV1111X8HY6666qqrrrrqqqv+3wEAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQDwj2WhgWMHV+r8AAAAAElFTkSuQmCC","type":"image/png","originalSize":69734,"dimensions":{"originalWidth":2100,"originalHeight":316,"displayWidth":2000,"displayHeight":301}}},"sourceToolAssistantUUID":"39b9bb9a-fe0a-44f9-85ce-c4d6e2ae5d02","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"79fd8bb8-dc0d-4790-b0a9-3245f2d6d08f","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":"[Image: original 2100x316, displayed at 2000x301. Multiply coordinates by 1.05 to map to original image.]"},"isMeta":true,"uuid":"2fd6f3e5-96e1-4efc-ae57-95c26781febc","timestamp":"2026-07-27T20:23:05.548Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2fd6f3e5-96e1-4efc-ae57-95c26781febc","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBmHEjLpQjpDTvGNpLi","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The third bug is resolved—the certificate text now displays in white instead of being invisible, and the cursor is positioned correctly. Those diamond glyphs are rendering as checkerboard patterns in both typefaces, which appears to be how the browser handles missing glyphs, so there's visual parity between them.\n\nNow I'm running the full validation: re-exporting all themes, scanning for any invisible text regressions, and confirming the golden tests still pass. I'll also verify that no other themes have regressed and run the complete test suite, including the invisible text scan again. The golden tests themselves shouldn't be affected since they test ANSI output, and the SVG and prompt changes don't alter that output.","signature":"CAIS/AkKhwEIEBgCKkCXv9iSHwuLSBp2f9kXaVLYdX0Oj4qCx9S+uGEMdkkan5mhrIJhn3n9DOgErbfJfkb1dsITbgiKonMFQ78X+ahOMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDAM86mlCMtg9Iwg0SxoMe7yUAAzowUSjXhywIjDvnKyPPJ7FoS6rUnzRhM6CgP5faYOyyvB1rW6XCH/T8csjTvVrN78D3q4rWO0QIE8qoQimsYZLSQ42w7QfK66BwEAsd8VO8v/HSf84BlqQM76pbYtSF9P25Q/XDTP+ZtjrBTXa5WL+h5gFJxn4lIjQ1wxGvoRdkUE2dFCGMSDnw4ME2SnixEClXozzvL9dST0GvMOqQQpHwY7gIvL+cwZTVK4Cw0xFDxWdmJV5+z6QZhzj2ywyKhgH8Gl0vokfxVtP+5+kDY0Q/tepzsr/l+GJ5J/Hnshgf1Yj3qr/rlL0A3XtH/G/vuaoSnyHF9KUe1sVhYmJlktz88AuVJfVZuGUbkIPsD3BxAeq1ZTm5Dvk8udRQunGThGbohQR+sc0CpUvy9iy0PdNNGAKZKO65vsfYGPS76tn4WRSux/479/6rCnBHVy1p6UhiUDvB14+7wQx45F3QMxwMmwDHJNxxg7uXLFsFh1ezrTCk6GDwKkwQtp/ajP0GV437whFZIvha5k7oJzOLnzzZ90ET1LTEjaRfOFu10XmOMJwQnKXyIrtNlLGovMDzUa3/9Qu0U9H8qtbrVZhMMm3asWoX1zpW3kS1QMZlGdjum3XrpBh2XuDrDQ6gCPHfaYplzGWkDdrdTwrEjVXhuQqENzw4YOnGOmIR4tNgAS6skUKATHbMvab7ABEPkzXQjRTk0wPLdmT45XBkyIG57UQYpZnJcAPGsfIaHxOAKbEdgyp9T5UVlCbCz8AfWPTQUeiS0tM1vmkNroMt4n0OHe67gYeYZ8pWsHj0o3INr5ObYZMSp09b2lUBieRvNbnQ20mN6zF4qEvwY2wOK15cz1HShCuwaIMEH4v3s4DNBjWtfV8SXrt2rWkTnMuWANkl9xLLgqfdcqeZdvtsjt7EP2+fAweebBXiJB44R/Xm3z0Ge0fnTq6yXLE2h/jc8MfTtmmzb7TdQW+o1L3SlJ7/RmYrqse1Gqsfdfg0IQsNoA5+XxZ4Ndvl2KUU/RZkJ7VPbvAiyWet9uw3mDcXOp8w1+eM6UYDU3v3TkuhQoAPgy1IGttxjJCPvh+otoxQThGMfj4iIU99iZJI2V9MqNMZ1NQvsgjNuis1C8nDX5xAY4IuzrV/v0lZAnluAtgs+u6FgP/38mh3hq2TAGKwgmo6VUbcGW/mZhzMoEwKl5Q+tH225fTAxZ9MV2pqmnIMl/yTiN+fMCbFfDnUnjXJWu4hVY+00tvQRb5GLd6mFmtduHeeaY3EuFOZVsYe3ytyNn6SIpt+oGoDM/Oxoy2J0FGKJPa+09kzQi20A1dxQO1bkNqKbsaQ/xIJUtHGbX/2KAvd/uwwRFbdIUnMuheC+vrWig1VD/uhvgSecN93/gIKrmucV67oX/dnnhnFtEPV8BqHg3eirS1r6rYKf3ZczQKgTXE1FCO2zAscmA6tyhPOgZVNbnaoYjSsXNZ+kFhYos/7kVeNbQoeX1FXAnPb1PfGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":930,"cache_read_input_tokens":241802,"output_tokens":772,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":930,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":772,"cache_read_input_tokens":241802,"cache_creation_input_tokens":930,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":930},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBmDje7sQUXUT5cUHkq","type":"assistant","uuid":"f63ab909-e191-492f-b2ca-bbb11b39cc9d","timestamp":"2026-07-27T20:23:19.033Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f63ab909-e191-492f-b2ca-bbb11b39cc9d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBmHEjLpQjpDTvGNpLi","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01RUWxNwnuU6AaA8qSm9gBHs","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && go build -o \"$TMPDIR/omp.exe\" . && cd /d/oh-my-posh && for f in themes/*.omp.yaml themes/*.omp.json; do [ -e \"$f\" ] || continue; b=$(basename \"$f\"); b=${b%%.omp.*}; \"$TMPDIR/omp.exe\" config export image --config \"$f\" --data src/prompt/testdata/fixtures/prompt.data.json -o \"$TMPDIR/allsvg/$b.svg\" >/dev/null 2>&1 || echo \"FAIL $b\"; done; python \"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/scan_invisible.py\" \"$TMPDIR/allsvg\" -v","description":"Re-export all themes and rescan"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":930,"cache_read_input_tokens":241802,"output_tokens":772,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":930,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":772,"cache_read_input_tokens":241802,"cache_creation_input_tokens":930,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":930},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBmDje7sQUXUT5cUHkq","type":"assistant","uuid":"9b1934f8-9689-4ecf-994e-de5c3ab9de47","timestamp":"2026-07-27T20:23:19.640Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9b1934f8-9689-4ecf-994e-de5c3ab9de47","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01RUWxNwnuU6AaA8qSm9gBHs","type":"tool_result","content":"powerlevel10k_modern.svg words= 7 invisible= 1 \r\n 'at' fill=#ffffff under=#ffffff\r\n\r\n1 theme(s) with at least one invisible text run","is_error":false}]},"uuid":"44572b61-26d7-42b2-b753-588372c441a0","timestamp":"2026-07-27T20:23:44.192Z","toolUseResult":{"stdout":"powerlevel10k_modern.svg words= 7 invisible= 1 \r\n 'at' fill=#ffffff under=#ffffff\r\n\r\n1 theme(s) with at least one invisible text run","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"9b1934f8-9689-4ecf-994e-de5c3ab9de47","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"44572b61-26d7-42b2-b753-588372c441a0","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBp8P1adQ2TWZPGX1qX","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I've identified the issue with the p10k_modern `at` prompt element causing white-on-white text, and I've already fixed it along with issues in cert, iterm2, and poshmon. Now I'm running the full test suite and linter to make sure everything passes.","signature":"CAISoAMKhwEIEBgCKkDkVDB3cukbJO333Cjtp8KU9lSw/JDqDBLGNMyZGg87U0PaCHm4Quw3hyXLh8L+OmvjdOVI0/QytgrVXskJSiuTMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDHQ1Zt24kOFTTOWLMBoMbHZ9rs5GX9kQkbKDIjBtAtuY5R6IJFf0CkaxZ2EodS9eREsuTVHRadQCYH2Uwk7mUAl+kfTc/vACNxns5Z4qxQGf493OGD7PLWzxnpapZcevAE4E3QnWEvPMNfVWMjC7nmT9ncHxSLuHKbeEJqX4YBBp5sqBOu2Fbr5r7RiB5iImfAk2DGP2UxqHecFfe/W6ySeqYLSMadzirTY5kINYGsxtPxP3WZ62da+C4bNDcYhgCVfdvUm8OLxrNDuYCuViNzaRTIYQnvf9W1BKmQIxuzrSw6tBXHjdp5Pjpca3iawx9YjRmmFRRowkuzm+75P4KRlsiaWPZWT4I9uMfWVYzVs5Kz1PlxgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":842,"cache_read_input_tokens":242732,"output_tokens":236,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":842,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":236,"cache_read_input_tokens":242732,"cache_creation_input_tokens":842,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":842},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBp4miTrmgHTxxLHG2v","type":"assistant","uuid":"a2ad86e2-9881-4fc9-9621-d088d3b2f2e8","timestamp":"2026-07-27T20:23:50.409Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a2ad86e2-9881-4fc9-9621-d088d3b2f2e8","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBp8P1adQ2TWZPGX1qX","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01XZGmAF9qyp51D9SEVCAthR","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && go test ./... 2>&1 | grep -v \"^ok\\|no test files\" | head -20; echo \"=== exit ===\"; go test ./... >/dev/null 2>&1 && echo ALL-PASS","description":"Run full Go test suite"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":842,"cache_read_input_tokens":242732,"output_tokens":236,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":842,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":236,"cache_read_input_tokens":242732,"cache_creation_input_tokens":842,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":842},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBp4miTrmgHTxxLHG2v","type":"assistant","uuid":"0370597f-adb5-4a43-8f6f-4908242eebf3","timestamp":"2026-07-27T20:23:50.412Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0370597f-adb5-4a43-8f6f-4908242eebf3","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01XZGmAF9qyp51D9SEVCAthR","type":"tool_result","content":"=== exit ===\nALL-PASS","is_error":false}]},"uuid":"6df133d0-e322-414b-b059-a6747dbf27fb","timestamp":"2026-07-27T20:24:02.136Z","toolUseResult":{"stdout":"=== exit ===\nALL-PASS","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"0370597f-adb5-4a43-8f6f-4908242eebf3","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6df133d0-e322-414b-b059-a6747dbf27fb","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBqRb8faicZo7wzBvvZ","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_011qdGZ3H2YJMWbN7A3F795C","name":"Bash","input":{"command":"(golangci-lint run ./svg/... ./prompt/... ./cli/... 2>&1 | tail -20) || echo \"linter not available / failed\"","description":"Lint changed packages"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":255,"cache_read_input_tokens":243574,"output_tokens":139,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":255,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":139,"cache_read_input_tokens":243574,"cache_creation_input_tokens":255,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":255},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBqPwutYXPJK1jWrXPP","type":"assistant","uuid":"fa9fa770-7782-43e2-9ce5-69d3c9e97b74","timestamp":"2026-07-27T20:24:04.970Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fa9fa770-7782-43e2-9ce5-69d3c9e97b74","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_011qdGZ3H2YJMWbN7A3F795C","type":"tool_result","content":"0 issues.","is_error":false}]},"uuid":"b2f21c38-cf8e-4d88-9c21-332314fa42db","timestamp":"2026-07-27T20:24:11.415Z","toolUseResult":{"stdout":"0 issues.","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"fa9fa770-7782-43e2-9ce5-69d3c9e97b74","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b2f21c38-cf8e-4d88-9c21-332314fa42db","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBr9t6oFh8Hmp3GeXfY","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The website uses Victor Mono from the fonts directory and applies it via the theme export, but the gallery still has the overflow issue. I need to check what the export script is actually passing and whether switching to a Mono variant of Victor Mono would help resolve this.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":134,"cache_read_input_tokens":243829,"output_tokens":590,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":134,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":590,"cache_read_input_tokens":243829,"cache_creation_input_tokens":134,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":134},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBr5B5xQ5sFDr1ULbco","type":"assistant","uuid":"2d5ed6d9-2354-4c1e-91c3-657b4231ad3d","timestamp":"2026-07-27T20:24:24.449Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2d5ed6d9-2354-4c1e-91c3-657b4231ad3d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBr9t6oFh8Hmp3GeXfY","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01UfpTSX2h2tJ8zgmZksFU58","name":"Bash","input":{"command":"cd /d/oh-my-posh && grep -n \"font-family\\|cell-width\\|line-height\\|Victor\" website/export_themes.mjs | head","description":"Check gallery export font arguments"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":134,"cache_read_input_tokens":243829,"output_tokens":590,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":134,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":590,"cache_read_input_tokens":243829,"cache_creation_input_tokens":134,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":134},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBr5B5xQ5sFDr1ULbco","type":"assistant","uuid":"89eb8226-35d6-46d8-906e-531e519bb1e9","timestamp":"2026-07-27T20:24:24.631Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"89eb8226-35d6-46d8-906e-531e519bb1e9","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01UfpTSX2h2tJ8zgmZksFU58","type":"tool_result","content":"29: FONT_FAMILY: 'Victor Mono',\n30: // Victor Mono's own font metrics, read from VictorMonoNerdFont-Regular.ttf: the\n31: // svg package's --cell-width/--line-height defaults are Hack Nerd Font's ratios\n33: // own default font stack but wrong for Victor Mono, which this build actually\n192: `--font-family=\"${CONFIG.FONT_FAMILY}\"`,\n193: `--cell-width=${CONFIG.CELL_WIDTH}`,\n194: `--line-height=${CONFIG.LINE_HEIGHT}`,","is_error":false}]},"uuid":"6a665076-0b5d-4e32-8529-70b28d162fcc","timestamp":"2026-07-27T20:24:25.949Z","toolUseResult":{"stdout":"29: FONT_FAMILY: 'Victor Mono',\n30: // Victor Mono's own font metrics, read from VictorMonoNerdFont-Regular.ttf: the\n31: // svg package's --cell-width/--line-height defaults are Hack Nerd Font's ratios\n33: // own default font stack but wrong for Victor Mono, which this build actually\n192: `--font-family=\"${CONFIG.FONT_FAMILY}\"`,\n193: `--cell-width=${CONFIG.CELL_WIDTH}`,\n194: `--line-height=${CONFIG.LINE_HEIGHT}`,","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"89eb8226-35d6-46d8-906e-531e519bb1e9","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6a665076-0b5d-4e32-8529-70b28d162fcc","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBsE4Q999m19WNtTmmB","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The gallery is passing an explicit font family override that prevents the default stack change from taking effect, so it'll keep showing the overflow until the website deploys the patched Victor Mono version. I'm planning to split this into two separate commits—one for preserving whitespace in the SVG text and another for the font stack fix, since they're addressing different root causes.\n\nI also need to add the Mono Nerd Font variants, fix the short hex color issue, and restore the cursor position after shell execution. The test harness files and font binaries should go with their relevant commits or as a separate chore commit. Let me check if the fonts directory is gitignored since the compare tool downloads them on demand, then review what's staged and untracked before applying the conventional commit format.","signature":"CAISgAoKhwEIEBgCKkBeoaKathvORfARfV9FbZxTfx52A/7oKcwHrAXFIeZC4gLz1ZK3vfGMwbIX6ICiigO2UASfUzpIIsMKapM3JF3tMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDK3XX01y5c8/1Sf3bRoMI3AMuWYT5E7Nisk6IjCHmkeLtHCA04EgtKVreiSw8CB5zE1PmFr+8xmCtTwkyXkNt91DwOFSuiwpcWpY8SIqpQg2f4OR95M+pxY49SVdSvoeI0tKY+FniiGPa0UTeJ5Ca68nv4box+NpzoI/tU3P2vwi+tSiu29OYns+uqOamVHUhe7aLDsAOEh+RO5N6zIkHkqll5fZtsXlOMv/0zsqgJF8lxfhHfIzNCwVLvHd/Xwe0w2F2c+trnS/DLYdamtST+ubqrRBUEf0Pu23h1y6SwyFKh81xqtjWTTmpzdk7NyXs3Dl/JpQhpK3dNsGZuNTgs9MU/EVPkSzE9HYveVr16OvKM5KkQswob35x6PfpFiYSq7goxEnQQy5MBOWfcKnjN0vaFtcw06QqYsW5J6S7hfcevUE3rDIYlfIDvVmaUVkL0mNCzOMC0o/pT8MDpenHtpIE7glkBoOFDDvnY1xNbM/EPjuDCW95saaVv1Y4CfLf0Vk/1wDmYLBp88cFZO/+7WoOc0/VoP8GLs1LJDgO8WrdmbosYB+/VewIscJQPTxp/7z2akbRqN6jJ4IJJmsgCOmVPdgQ2FgLDNVgCV3NtimSFDwYjm2ipJ4JYtUyK3djtmlhbs4V+RcYyZ59vyHuSdJCBJqwAA8Fpjs3cQNUChx0Bk5B6bSQI6Hc0s4Su3hjWaum7we1xwRCeTQ5d0GNN0JWG+P3tBlYjlODa7aJPyUMYh8eE4gTBnBY6tDrivhGxeQcZNnunA5ayiBrkyYN2+cGGX3PrDZYl3P3up4gL+7xk5T9s4hRn9WOz1EdIs/pqMSeyWH/WmVJDLpbjrG6AjMgBWGFL2gKWbjSKhfZAxSx/g0Ig0nR4pZW5s42Gr/XBiSk2ba5+ltdSsgMfzRi68mLY+wHG3kkuVvLRzqt2Dq39jQo6xV2OESx88IxiEjI/ornQ/4no9oaXwUtP1fSmuJe5BlTrzVLvPppiW0iZksnCutIR8v5K1x7w4UfX3qpRY+XqhsQ2QHZCB+TyQdYBVfQgIW6dCx9Z1Nml4hjVJnA3d4ALVA3l5ZX1OErFzGOWihvKgd5OoXerkIV2HpPnvy8NSyXAPIT1+GgugVzWqubUIZ0FrCzVJkCEsRccIFXTa5SN9Mx2Q7MijxRwws8ubYTtGKY4E5aHazUtCHqPBRvPDLXyqahjJ3yXlc2sRY7C65ds2kFN43XO5GeSq0VpTi4q+H+sRONXbK3R32ZldmYTOU8hutjt52fDGPx7kG92KqktlTL2SvLZDaGmxdfaquPBNzdVxX39fSiCsYuQR5x/nPsv9JZt4ac8HWW4A4RuF67QwaZCUHaQ0IKhFpY/zxXgNvHNwXMQiggj6C6bh+CMZT4Nc5mgiYZWAE7ayPzcoeN56t9g+PD1eyZCr56luOE4By949Yul2lUSghSUc7ldMI10N3K0ZxvjSBTB0UYEHrffjvGWQUREou4BGNfCqj9FAeS3DDzwj625PDzLI32xIsKRgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":811,"cache_read_input_tokens":243963,"output_tokens":581,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":811,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":581,"cache_read_input_tokens":243963,"cache_creation_input_tokens":811,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":811},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBs9jx5cTaCoRYCUHja","type":"assistant","uuid":"450f22ba-7fa5-441d-8a10-cd39950a9215","timestamp":"2026-07-27T20:24:35.569Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"450f22ba-7fa5-441d-8a10-cd39950a9215","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBsE4Q999m19WNtTmmB","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01HxKvteUcTnLatoXyzzRCpW","name":"Bash","input":{"command":"git status --short && echo \"--- ignored check ---\" && git check-ignore -v tools/svg-png-compare/fonts/HackNerdFontMono-Regular.ttf tools/svg-png-compare/out 2>&1 | head","description":"Check working tree status"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":811,"cache_read_input_tokens":243963,"output_tokens":581,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":811,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":581,"cache_read_input_tokens":243963,"cache_creation_input_tokens":811,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":811},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBs9jx5cTaCoRYCUHja","type":"assistant","uuid":"f0d84a2e-4ba1-4b03-a62d-cd68d66d1a87","timestamp":"2026-07-27T20:24:35.595Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f0d84a2e-4ba1-4b03-a62d-cd68d66d1a87","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01HxKvteUcTnLatoXyzzRCpW","type":"tool_result","content":" M src/cli/config_export_svg.go\n M src/prompt/engine.go\n M src/prompt/primary.go\n M src/prompt/runs.go\n M src/prompt/runs_test.go\n M src/svg/colors.go\n M src/svg/colors_test.go\n M src/svg/decorate.go\n M src/svg/svg.go\n M src/svg/svg_test.go\n?? tools/svg-png-compare/probe-whitespace.mjs\n?? tools/svg-png-compare/shot.mjs\n--- ignored check ---\ntools/svg-png-compare/.gitignore:4:fonts/*.ttf\ttools/svg-png-compare/fonts/HackNerdFontMono-Regular.ttf\ntools/svg-png-compare/.gitignore:3:out/\ttools/svg-png-compare/out","is_error":false}]},"uuid":"59e7a6ff-20f2-4462-8526-35e1b48e8ab7","timestamp":"2026-07-27T20:24:38.649Z","toolUseResult":{"stdout":" M src/cli/config_export_svg.go\n M src/prompt/engine.go\n M src/prompt/primary.go\n M src/prompt/runs.go\n M src/prompt/runs_test.go\n M src/svg/colors.go\n M src/svg/colors_test.go\n M src/svg/decorate.go\n M src/svg/svg.go\n M src/svg/svg_test.go\n?? tools/svg-png-compare/probe-whitespace.mjs\n?? tools/svg-png-compare/shot.mjs\n--- ignored check ---\ntools/svg-png-compare/.gitignore:4:fonts/*.ttf\ttools/svg-png-compare/fonts/HackNerdFontMono-Regular.ttf\ntools/svg-png-compare/.gitignore:3:out/\ttools/svg-png-compare/out","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"f0d84a2e-4ba1-4b03-a62d-cd68d66d1a87","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"59e7a6ff-20f2-4462-8526-35e1b48e8ab7","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBt9jENnnx9FjgNBTzr","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I see that `compare.mjs` already has the logic to extract fonts, but it's pulling the plain variant while `shot.mjs` needs the Mono version. Rather than relying on a manual copy, I should have `shot.mjs` extract its own Mono font variant using the same helper approach from `compare.mjs` — either by exporting a reusable function or duplicating the minimal extraction logic.\n\nSince this is just a dev harness, I'll keep it simple and add a self-contained `ensureFont` function directly in `shot.mjs` that reuses the zip extraction utilities, leaving `compare.mjs` unchanged.","signature":"CAIS/gcKhwEIEBgCKkCMT1krqfYhl2NTreJKZnaIm2w+Kq4l3xDAibBjaIedsgL954YzAV6OtCKF0Qng0rLzW6lEZhCZFP2mChyZ9okyMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDBfm3d3x7c3kNQqLLhoM6YpHiq6O+T2CKJOIIjBfFGwl0QxsCjYDVQghjoDmwPzYKjGckfMZ46XvcCNktYBLdJC5S3HFMt+o2Dv6lc4qowbKlapTgyIMcuwPXCspf0ZKfI8qKJovGKjxJIWQzYcQoM5BZG7l6W7k1QEaKYDTPc4J6i0yLFiQZG11dWwDO1b2le05ZhEcKb4/OQx8htsFKsVsMl7EBuav35K+r6UGri+TxHAOdjlPlDJbVZ5vcfR8wb9csGF5kKqBP7O7GpID8OtzixhyKbXNM6i9dnv74WlBTUZrf6Sk5GLY5lzxjQ/vyrXpnKkGY/iW3fsdmXJdA87aFUldfCbgGvokN1q4GMlY0zzniTbs5EFRdSjbXMty1ppIS39DyXBSVoNsV7wbrnmxd7v1EJNELokymK0+EV95evMrhE4LfEF1B7r8LgQYWJuop3zA3qX7zUB3SSnMCx/dqqSzol/QYlg03RQ2rA8afsuKxffqFRMwfinuMbeucGIW/bAoBPWZdmmuAux5m3vyvWFyUPV3gGsYmFqoOmY840ElSPB5B4fo30GFk9jIWB0DV4+YqF5hHGUgh4U7vLcXv9L2L5FAQakL/Cb0iX6uG9frC3Hp/CI5MLcrr1Hm4/hO1QWjHwPHX1VqccfGfTprHPf3gHqeBgkJzTs28BdPydjXxo6eq2akVCDi7aue7P0RoNqV12yof6NEzcp892qxuvxMqQtONmHstV+GQ0+Hw6snVyS5jTSk1ETx9waFSiE2hHKrLQcoBPk3rIPspv3/Wz9AfdMUXX2o18KaXENnIDKb7ZUMZjEIXAD29f/MbG68+a2yTrVz5y9KK4DctQvg3twtPmpyKqWYXrZap1x+0XAhFMsrSRAXRfVXX/+z8LCJPuDoZH6w80Hb3HcsZODiev++5ovLXaXZtuC75WqIEvmZrIwjy1Equ63ABnFp+zZMxRFgwpGL23IjFLT9AJPGZ5cECxybgVoejqV38WwWnsSYiAaJR7knnFlqtwbN/gYoOT9N8vCjulRELXTPIIYS7Eu8fLcwGb3BhLpgqGdpH7MU/hn0gO9XwIxp1h5s7cJfKxJgieP0TFVOLc/EQfEGtHgf+1tu0r2aesn6DON+Pkqkb3SeJ3Ug93e4rBeb6u5DttMY9oxoksUAWmcu6QCebxgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":858,"cache_read_input_tokens":244774,"output_tokens":565,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":858,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":565,"cache_read_input_tokens":244774,"cache_creation_input_tokens":858,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":858},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBt5nbnhDj8CsVzDpDp","type":"assistant","uuid":"f6ee18dd-dfac-4dac-af61-c18b69ea8958","timestamp":"2026-07-27T20:24:45.459Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f6ee18dd-dfac-4dac-af61-c18b69ea8958","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBt9jENnnx9FjgNBTzr","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01PSGdcuDG95FKUixcjnU2MD","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","old_string":"import { chromium } from \"playwright\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));","new_string":"import { chromium } from \"playwright\";\n\nimport { extractZipEntry } from \"./zip.mjs\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":858,"cache_read_input_tokens":244774,"output_tokens":565,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":858,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":565,"cache_read_input_tokens":244774,"cache_creation_input_tokens":858,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":858},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBt5nbnhDj8CsVzDpDp","type":"assistant","uuid":"25caac7c-6f3e-42ab-94cf-40d595777928","timestamp":"2026-07-27T20:24:46.664Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"25caac7c-6f3e-42ab-94cf-40d595777928","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01PSGdcuDG95FKUixcjnU2MD","type":"tool_result","content":"The file D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"c7e6ca87-4997-4a07-865d-07511ade6344","timestamp":"2026-07-27T20:24:46.781Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","oldString":"import { chromium } from \"playwright\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));","newString":"import { chromium } from \"playwright\";\n\nimport { extractZipEntry } from \"./zip.mjs\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));","originalFile":"#!/usr/bin/env node\n// Side-by-side renderer for eyeballing the SVG exporter against the retired\n// PNG renderer. Unlike compare.mjs this does NOT force the SVG into the PNG's\n// box (no preserveAspectRatio override, no rescale): each side is rasterized\n// at its own natural geometry, so layout differences — whitespace collapse,\n// baseline drift, misplaced decorations — stay visible instead of being\n// squeezed away by the fit.\n//\n// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks\n//\n// Output lands in ./out/: .svg, .raster.png, and — unless\n// --svg-only — .png from the retired renderer.\nimport { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { chromium } from \"playwright\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");\nconst THEMES_DIR = path.join(REPO_ROOT, \"themes\");\nconst DATA_FIXTURE = path.join(REPO_ROOT, \"src\", \"prompt\", \"testdata\", \"fixtures\", \"prompt.data.json\");\n\nconst BIN_DIR = path.join(__dirname, \"bin\");\nconst OUT_DIR = path.join(__dirname, \"out\");\n// The Mono patched variant, which is what the exporter's default font stack\n// asks for first and what a terminal actually runs: it scales Nerd Font icon\n// ink down to one cell, where the plain variant lets it bleed up to ~1.9\n// cells over the next character. The retired PNG renderer loaded the plain\n// variant and compensated with a hand-maintained double-width table, so its\n// reference renders show icons in a two-cell box; that is the one place the\n// two renderers are expected to differ.\nconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";\n\nconst EXE = process.platform === \"win32\" ? \".exe\" : \"\";\nconst OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);\nconst NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);\n\n// The exporter renders at a 16px em; the retired PNG renderer's reference em\n// was 48px. Rasterizing at 3x device scale puts both at the same resolution\n// without touching the SVG's own geometry.\nconst DEVICE_SCALE_FACTOR = 3;\n\nfunction themeConfig(theme) {\n for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n const candidate = path.join(THEMES_DIR, theme + ext);\n\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(`theme not found: ${theme}`);\n}\n\nfunction run(cmd, args, cwd) {\n const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n\n if (res.error) {\n throw res.error;\n }\n\n if (res.status !== 0) {\n throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n }\n}\n\n// Reads width/height off the root element so the page can give it a box\n// of exactly that size — the SVG then renders 1:1 with no scaling at all.\nfunction svgSize(markup) {\n const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n\n if (!width || !height) {\n throw new Error(\"could not read width/height off the root \");\n }\n\n return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n}\n\nasync function rasterize(browser, markup, fontBase64) {\n const { width, height } = svgSize(markup);\n\n const context = await browser.newContext({\n viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n deviceScaleFactor: DEVICE_SCALE_FACTOR,\n });\n\n const page = await context.newPage();\n\n const html = `\n\n\n\n\n\n${markup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForTimeout(50);\n\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const svgOnly = args.includes(\"--svg-only\");\n const themes = args.filter((a) => !a.startsWith(\"--\"));\n\n if (themes.length === 0) {\n throw new Error(\"pass at least one theme name\");\n }\n\n fs.mkdirSync(OUT_DIR, { recursive: true });\n\n run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");\n const browser = await chromium.launch();\n\n try {\n for (const theme of themes) {\n const config = themeConfig(theme);\n const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n\n run(NEW_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", FONT_FAMILY,\n \"-o\", svgPath,\n ]);\n\n const markup = fs.readFileSync(svgPath, \"utf8\");\n fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64));\n\n if (!svgOnly && fs.existsSync(OLD_BIN)) {\n run(OLD_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--format\", \"png\",\n \"-o\", path.join(OUT_DIR, `${theme}.png`),\n ]);\n }\n\n console.log(`${theme}: ${svgPath}`);\n }\n } finally {\n await browser.close();\n }\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exitCode = 1;\n});\n","structuredPatch":[{"oldStart":18,"oldLines":6,"newStart":18,"newLines":8,"lines":[" "," import { chromium } from \"playwright\";"," ","+import { extractZipEntry } from \"./zip.mjs\";","+"," const __dirname = path.dirname(fileURLToPath(import.meta.url));"," const REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");"," const THEMES_DIR = path.join(REPO_ROOT, \"themes\");"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"25caac7c-6f3e-42ab-94cf-40d595777928","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c7e6ca87-4997-4a07-865d-07511ade6344","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"07a24f7f-bd00-408e-9e92-dc4b81f29742","timestamp":"2026-07-27T20:24:46.814Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"07a24f7f-bd00-408e-9e92-dc4b81f29742","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBtjHLYmMZ27VDs9w3K","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01328KQVt5ySL9MFbDsgNDSP","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","old_string":"function themeConfig(theme) {","new_string":"// Pulls the Mono face out of the Hack.zip the retired PNG renderer already\n// caches (see cli/image/image.go's loadDefaultFonts), or downloads it once.\n// Same source and version as compare.mjs' own ensureFont, different entry.\nasync function ensureFont() {\n if (fs.existsSync(FONT_PATH)) {\n return;\n }\n\n fs.mkdirSync(path.dirname(FONT_PATH), { recursive: true });\n\n const home = process.env.USERPROFILE || process.env.HOME || \"\";\n const caches = [\n process.env.OMP_CACHE_DIR,\n process.platform === \"win32\" ? path.join(process.env.LOCALAPPDATA ?? \"\", \"oh-my-posh\") : null,\n process.env.XDG_CACHE_HOME ? path.join(process.env.XDG_CACHE_HOME, \"oh-my-posh\") : null,\n path.join(home, \".cache\", \"oh-my-posh\"),\n ].filter(Boolean);\n\n const entry = path.basename(FONT_PATH);\n\n for (const dir of caches) {\n const zipPath = path.join(dir, \"Hack.zip\");\n\n if (fs.existsSync(zipPath)) {\n fs.writeFileSync(FONT_PATH, extractZipEntry(fs.readFileSync(zipPath), entry));\n return;\n }\n }\n\n const url = \"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip\";\n const res = await fetch(url);\n\n if (!res.ok) {\n throw new Error(`failed to download ${url}: ${res.status} ${res.statusText}`);\n }\n\n fs.writeFileSync(FONT_PATH, extractZipEntry(Buffer.from(await res.arrayBuffer()), entry));\n}\n\nfunction themeConfig(theme) {"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":755,"cache_read_input_tokens":245632,"output_tokens":801,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":755,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":801,"cache_read_input_tokens":245632,"cache_creation_input_tokens":755,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":755},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBtgX9WA1Fc9RrKkHXq","type":"assistant","uuid":"3ade6f01-2dcf-416b-9016-9d5757c0ead4","timestamp":"2026-07-27T20:24:55.778Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3ade6f01-2dcf-416b-9016-9d5757c0ead4","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01328KQVt5ySL9MFbDsgNDSP","type":"tool_result","content":"The file D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"ae4b86bf-5fca-4b4f-a0de-9df76bc8f6c0","timestamp":"2026-07-27T20:24:55.860Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","oldString":"function themeConfig(theme) {","newString":"// Pulls the Mono face out of the Hack.zip the retired PNG renderer already\n// caches (see cli/image/image.go's loadDefaultFonts), or downloads it once.\n// Same source and version as compare.mjs' own ensureFont, different entry.\nasync function ensureFont() {\n if (fs.existsSync(FONT_PATH)) {\n return;\n }\n\n fs.mkdirSync(path.dirname(FONT_PATH), { recursive: true });\n\n const home = process.env.USERPROFILE || process.env.HOME || \"\";\n const caches = [\n process.env.OMP_CACHE_DIR,\n process.platform === \"win32\" ? path.join(process.env.LOCALAPPDATA ?? \"\", \"oh-my-posh\") : null,\n process.env.XDG_CACHE_HOME ? path.join(process.env.XDG_CACHE_HOME, \"oh-my-posh\") : null,\n path.join(home, \".cache\", \"oh-my-posh\"),\n ].filter(Boolean);\n\n const entry = path.basename(FONT_PATH);\n\n for (const dir of caches) {\n const zipPath = path.join(dir, \"Hack.zip\");\n\n if (fs.existsSync(zipPath)) {\n fs.writeFileSync(FONT_PATH, extractZipEntry(fs.readFileSync(zipPath), entry));\n return;\n }\n }\n\n const url = \"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip\";\n const res = await fetch(url);\n\n if (!res.ok) {\n throw new Error(`failed to download ${url}: ${res.status} ${res.statusText}`);\n }\n\n fs.writeFileSync(FONT_PATH, extractZipEntry(Buffer.from(await res.arrayBuffer()), entry));\n}\n\nfunction themeConfig(theme) {","originalFile":"#!/usr/bin/env node\n// Side-by-side renderer for eyeballing the SVG exporter against the retired\n// PNG renderer. Unlike compare.mjs this does NOT force the SVG into the PNG's\n// box (no preserveAspectRatio override, no rescale): each side is rasterized\n// at its own natural geometry, so layout differences — whitespace collapse,\n// baseline drift, misplaced decorations — stay visible instead of being\n// squeezed away by the fit.\n//\n// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks\n//\n// Output lands in ./out/: .svg, .raster.png, and — unless\n// --svg-only — .png from the retired renderer.\nimport { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { chromium } from \"playwright\";\n\nimport { extractZipEntry } from \"./zip.mjs\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");\nconst THEMES_DIR = path.join(REPO_ROOT, \"themes\");\nconst DATA_FIXTURE = path.join(REPO_ROOT, \"src\", \"prompt\", \"testdata\", \"fixtures\", \"prompt.data.json\");\n\nconst BIN_DIR = path.join(__dirname, \"bin\");\nconst OUT_DIR = path.join(__dirname, \"out\");\n// The Mono patched variant, which is what the exporter's default font stack\n// asks for first and what a terminal actually runs: it scales Nerd Font icon\n// ink down to one cell, where the plain variant lets it bleed up to ~1.9\n// cells over the next character. The retired PNG renderer loaded the plain\n// variant and compensated with a hand-maintained double-width table, so its\n// reference renders show icons in a two-cell box; that is the one place the\n// two renderers are expected to differ.\nconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";\n\nconst EXE = process.platform === \"win32\" ? \".exe\" : \"\";\nconst OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);\nconst NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);\n\n// The exporter renders at a 16px em; the retired PNG renderer's reference em\n// was 48px. Rasterizing at 3x device scale puts both at the same resolution\n// without touching the SVG's own geometry.\nconst DEVICE_SCALE_FACTOR = 3;\n\nfunction themeConfig(theme) {\n for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n const candidate = path.join(THEMES_DIR, theme + ext);\n\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(`theme not found: ${theme}`);\n}\n\nfunction run(cmd, args, cwd) {\n const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n\n if (res.error) {\n throw res.error;\n }\n\n if (res.status !== 0) {\n throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n }\n}\n\n// Reads width/height off the root element so the page can give it a box\n// of exactly that size — the SVG then renders 1:1 with no scaling at all.\nfunction svgSize(markup) {\n const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n\n if (!width || !height) {\n throw new Error(\"could not read width/height off the root \");\n }\n\n return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n}\n\nasync function rasterize(browser, markup, fontBase64) {\n const { width, height } = svgSize(markup);\n\n const context = await browser.newContext({\n viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n deviceScaleFactor: DEVICE_SCALE_FACTOR,\n });\n\n const page = await context.newPage();\n\n const html = `\n\n\n\n\n\n${markup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForTimeout(50);\n\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const svgOnly = args.includes(\"--svg-only\");\n const themes = args.filter((a) => !a.startsWith(\"--\"));\n\n if (themes.length === 0) {\n throw new Error(\"pass at least one theme name\");\n }\n\n fs.mkdirSync(OUT_DIR, { recursive: true });\n\n run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");\n const browser = await chromium.launch();\n\n try {\n for (const theme of themes) {\n const config = themeConfig(theme);\n const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n\n run(NEW_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", FONT_FAMILY,\n \"-o\", svgPath,\n ]);\n\n const markup = fs.readFileSync(svgPath, \"utf8\");\n fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64));\n\n if (!svgOnly && fs.existsSync(OLD_BIN)) {\n run(OLD_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--format\", \"png\",\n \"-o\", path.join(OUT_DIR, `${theme}.png`),\n ]);\n }\n\n console.log(`${theme}: ${svgPath}`);\n }\n } finally {\n await browser.close();\n }\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exitCode = 1;\n});\n","structuredPatch":[{"oldStart":46,"oldLines":6,"newStart":46,"newLines":45,"lines":[" // without touching the SVG's own geometry."," const DEVICE_SCALE_FACTOR = 3;"," ","+// Pulls the Mono face out of the Hack.zip the retired PNG renderer already","+// caches (see cli/image/image.go's loadDefaultFonts), or downloads it once.","+// Same source and version as compare.mjs' own ensureFont, different entry.","+async function ensureFont() {","+ if (fs.existsSync(FONT_PATH)) {","+ return;","+ }","+","+ fs.mkdirSync(path.dirname(FONT_PATH), { recursive: true });","+","+ const home = process.env.USERPROFILE || process.env.HOME || \"\";","+ const caches = [","+ process.env.OMP_CACHE_DIR,","+ process.platform === \"win32\" ? path.join(process.env.LOCALAPPDATA ?? \"\", \"oh-my-posh\") : null,","+ process.env.XDG_CACHE_HOME ? path.join(process.env.XDG_CACHE_HOME, \"oh-my-posh\") : null,","+ path.join(home, \".cache\", \"oh-my-posh\"),","+ ].filter(Boolean);","+","+ const entry = path.basename(FONT_PATH);","+","+ for (const dir of caches) {","+ const zipPath = path.join(dir, \"Hack.zip\");","+","+ if (fs.existsSync(zipPath)) {","+ fs.writeFileSync(FONT_PATH, extractZipEntry(fs.readFileSync(zipPath), entry));","+ return;","+ }","+ }","+","+ const url = \"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip\";","+ const res = await fetch(url);","+","+ if (!res.ok) {","+ throw new Error(`failed to download ${url}: ${res.status} ${res.statusText}`);","+ }","+","+ fs.writeFileSync(FONT_PATH, extractZipEntry(Buffer.from(await res.arrayBuffer()), entry));","+}","+"," function themeConfig(theme) {"," for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {"," const candidate = path.join(THEMES_DIR, theme + ext);"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"3ade6f01-2dcf-416b-9016-9d5757c0ead4","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ae4b86bf-5fca-4b4f-a0de-9df76bc8f6c0","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBuQq7Gn4wfvVwc4ZbB","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01AzeKb1faJfwVhR5huoYgqf","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","old_string":" run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");","new_string":" run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n await ensureFont();\n\n const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":860,"cache_read_input_tokens":246387,"output_tokens":301,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":860,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":301,"cache_read_input_tokens":246387,"cache_creation_input_tokens":860,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":860},"type":"message"}],"speed":"standard"},"diagnostics":{"cache_miss_reason":{"type":"unavailable"}}},"requestId":"req_011CdTBuMdNPeKPmpT3SjzSf","type":"assistant","uuid":"60883698-6822-4e40-9ef1-418798773df9","timestamp":"2026-07-27T20:25:00.509Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"60883698-6822-4e40-9ef1-418798773df9","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01AzeKb1faJfwVhR5huoYgqf","type":"tool_result","content":"The file D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"4f364062-eb4b-485e-8db3-5e10adc16ae7","timestamp":"2026-07-27T20:25:00.566Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","oldString":" run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");","newString":" run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n await ensureFont();\n\n const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");","originalFile":"#!/usr/bin/env node\n// Side-by-side renderer for eyeballing the SVG exporter against the retired\n// PNG renderer. Unlike compare.mjs this does NOT force the SVG into the PNG's\n// box (no preserveAspectRatio override, no rescale): each side is rasterized\n// at its own natural geometry, so layout differences — whitespace collapse,\n// baseline drift, misplaced decorations — stay visible instead of being\n// squeezed away by the fit.\n//\n// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks\n//\n// Output lands in ./out/: .svg, .raster.png, and — unless\n// --svg-only — .png from the retired renderer.\nimport { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { chromium } from \"playwright\";\n\nimport { extractZipEntry } from \"./zip.mjs\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");\nconst THEMES_DIR = path.join(REPO_ROOT, \"themes\");\nconst DATA_FIXTURE = path.join(REPO_ROOT, \"src\", \"prompt\", \"testdata\", \"fixtures\", \"prompt.data.json\");\n\nconst BIN_DIR = path.join(__dirname, \"bin\");\nconst OUT_DIR = path.join(__dirname, \"out\");\n// The Mono patched variant, which is what the exporter's default font stack\n// asks for first and what a terminal actually runs: it scales Nerd Font icon\n// ink down to one cell, where the plain variant lets it bleed up to ~1.9\n// cells over the next character. The retired PNG renderer loaded the plain\n// variant and compensated with a hand-maintained double-width table, so its\n// reference renders show icons in a two-cell box; that is the one place the\n// two renderers are expected to differ.\nconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";\n\nconst EXE = process.platform === \"win32\" ? \".exe\" : \"\";\nconst OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);\nconst NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);\n\n// The exporter renders at a 16px em; the retired PNG renderer's reference em\n// was 48px. Rasterizing at 3x device scale puts both at the same resolution\n// without touching the SVG's own geometry.\nconst DEVICE_SCALE_FACTOR = 3;\n\n// Pulls the Mono face out of the Hack.zip the retired PNG renderer already\n// caches (see cli/image/image.go's loadDefaultFonts), or downloads it once.\n// Same source and version as compare.mjs' own ensureFont, different entry.\nasync function ensureFont() {\n if (fs.existsSync(FONT_PATH)) {\n return;\n }\n\n fs.mkdirSync(path.dirname(FONT_PATH), { recursive: true });\n\n const home = process.env.USERPROFILE || process.env.HOME || \"\";\n const caches = [\n process.env.OMP_CACHE_DIR,\n process.platform === \"win32\" ? path.join(process.env.LOCALAPPDATA ?? \"\", \"oh-my-posh\") : null,\n process.env.XDG_CACHE_HOME ? path.join(process.env.XDG_CACHE_HOME, \"oh-my-posh\") : null,\n path.join(home, \".cache\", \"oh-my-posh\"),\n ].filter(Boolean);\n\n const entry = path.basename(FONT_PATH);\n\n for (const dir of caches) {\n const zipPath = path.join(dir, \"Hack.zip\");\n\n if (fs.existsSync(zipPath)) {\n fs.writeFileSync(FONT_PATH, extractZipEntry(fs.readFileSync(zipPath), entry));\n return;\n }\n }\n\n const url = \"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip\";\n const res = await fetch(url);\n\n if (!res.ok) {\n throw new Error(`failed to download ${url}: ${res.status} ${res.statusText}`);\n }\n\n fs.writeFileSync(FONT_PATH, extractZipEntry(Buffer.from(await res.arrayBuffer()), entry));\n}\n\nfunction themeConfig(theme) {\n for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n const candidate = path.join(THEMES_DIR, theme + ext);\n\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(`theme not found: ${theme}`);\n}\n\nfunction run(cmd, args, cwd) {\n const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n\n if (res.error) {\n throw res.error;\n }\n\n if (res.status !== 0) {\n throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n }\n}\n\n// Reads width/height off the root element so the page can give it a box\n// of exactly that size — the SVG then renders 1:1 with no scaling at all.\nfunction svgSize(markup) {\n const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n\n if (!width || !height) {\n throw new Error(\"could not read width/height off the root \");\n }\n\n return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n}\n\nasync function rasterize(browser, markup, fontBase64) {\n const { width, height } = svgSize(markup);\n\n const context = await browser.newContext({\n viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n deviceScaleFactor: DEVICE_SCALE_FACTOR,\n });\n\n const page = await context.newPage();\n\n const html = `\n\n\n\n\n\n${markup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForTimeout(50);\n\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const svgOnly = args.includes(\"--svg-only\");\n const themes = args.filter((a) => !a.startsWith(\"--\"));\n\n if (themes.length === 0) {\n throw new Error(\"pass at least one theme name\");\n }\n\n fs.mkdirSync(OUT_DIR, { recursive: true });\n\n run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");\n const browser = await chromium.launch();\n\n try {\n for (const theme of themes) {\n const config = themeConfig(theme);\n const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n\n run(NEW_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", FONT_FAMILY,\n \"-o\", svgPath,\n ]);\n\n const markup = fs.readFileSync(svgPath, \"utf8\");\n fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64));\n\n if (!svgOnly && fs.existsSync(OLD_BIN)) {\n run(OLD_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--format\", \"png\",\n \"-o\", path.join(OUT_DIR, `${theme}.png`),\n ]);\n }\n\n console.log(`${theme}: ${svgPath}`);\n }\n } finally {\n await browser.close();\n }\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exitCode = 1;\n});\n","structuredPatch":[{"oldStart":173,"oldLines":6,"newStart":173,"newLines":8,"lines":[" "," run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));"," ","+ await ensureFont();","+"," const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");"," const browser = await chromium.launch();"," "]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"60883698-6822-4e40-9ef1-418798773df9","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4f364062-eb4b-485e-8db3-5e10adc16ae7","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBukdityLTLTBWSASPn","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Rm34yue1u3K44oM7cg7E8Z","name":"Bash","input":{"command":"rm -f fonts/HackNerdFontMono-Regular.ttf && node shot.mjs glowsticks --svg-only 2>&1 | tail -3 && ls -la fonts/","description":"Verify font auto-extraction works"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":361,"cache_read_input_tokens":247247,"output_tokens":141,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":361,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":141,"cache_read_input_tokens":247247,"cache_creation_input_tokens":361,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":361},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBuhFabpu7FzYLPpao8","type":"assistant","uuid":"54f69c75-57b6-4f62-b519-d6dfb7617613","timestamp":"2026-07-27T20:25:04.003Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"54f69c75-57b6-4f62-b519-d6dfb7617613","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"type":"tool_result","content":"Exit code 2\n}\r\n\r\nNode.js v26.3.0\r\nls: cannot access 'fonts/': No such file or directory","is_error":true,"tool_use_id":"toolu_01Rm34yue1u3K44oM7cg7E8Z"}]},"uuid":"73f27166-7c92-4883-a004-548d2089fa62","timestamp":"2026-07-27T20:25:07.639Z","toolUseResult":"Error: Exit code 2\n}\r\n\r\nNode.js v26.3.0\r\nls: cannot access 'fonts/': No such file or directory","classifierMetaLines":"{\"meta\":{\"gitStatus\":{\"staged\":0,\"modified\":10,\"untracked\":2}}}\n","sourceToolAssistantUUID":"54f69c75-57b6-4f62-b519-d6dfb7617613","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"73f27166-7c92-4883-a004-548d2089fa62","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBvGULhpHaSnEi9DiGP","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01PVSqyWE2dqnCqY8nt3F21i","name":"Bash","input":{"command":"cd /d/oh-my-posh/tools/svg-png-compare && node shot.mjs glowsticks --svg-only 2>&1 | tail -12","description":"Verify font auto-extraction works"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":192,"cache_read_input_tokens":247608,"output_tokens":129,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":192,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":129,"cache_read_input_tokens":247608,"cache_creation_input_tokens":192,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":192},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBvDPZ8QYbUsTryB839","type":"assistant","uuid":"119f5daf-8e7c-46c6-991a-e8ddb004314b","timestamp":"2026-07-27T20:25:10.507Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"119f5daf-8e7c-46c6-991a-e8ddb004314b","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01PVSqyWE2dqnCqY8nt3F21i","type":"tool_result","content":"glowsticks: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\glowsticks.svg","is_error":false}]},"uuid":"1cdcae99-b096-4b4a-bca9-716c75e9a27c","timestamp":"2026-07-27T20:25:15.782Z","toolUseResult":{"stdout":"glowsticks: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\glowsticks.svg","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"119f5daf-8e7c-46c6-991a-e8ddb004314b","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1cdcae99-b096-4b4a-bca9-716c75e9a27c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBvsJbeCQoVx2DAdPAB","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01A6D529QP5ecVBJhntJRQ38","name":"Bash","input":{"command":"ls -la /d/oh-my-posh/tools/svg-png-compare/fonts/","description":"Confirm font extracted"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":172,"cache_read_input_tokens":247800,"output_tokens":104,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":172,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":104,"cache_read_input_tokens":247800,"cache_creation_input_tokens":172,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":172},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBvpFYVbB5yBv2Wntks","type":"assistant","uuid":"41a63358-1909-4902-b643-a8d9af47306b","timestamp":"2026-07-27T20:25:19.050Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"41a63358-1909-4902-b643-a8d9af47306b","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01A6D529QP5ecVBJhntJRQ38","type":"tool_result","content":"total 4696\ndrwxr-xr-x 1 jande 197609 0 Jul 27 22:22 .\ndrwxr-xr-x 1 jande 197609 0 Jul 27 22:25 ..\n-rw-r--r-- 1 jande 197609 2360316 Jul 27 22:22 HackNerdFontMono-Regular.ttf\n-rw-r--r-- 1 jande 197609 2445204 Apr 12 2024 HackNerdFont-Regular.ttf","is_error":false}]},"uuid":"aa10f2f7-f265-46a7-af80-224ea3a75373","timestamp":"2026-07-27T20:25:20.246Z","toolUseResult":{"stdout":"total 4696\ndrwxr-xr-x 1 jande 197609 0 Jul 27 22:22 .\ndrwxr-xr-x 1 jande 197609 0 Jul 27 22:25 ..\n-rw-r--r-- 1 jande 197609 2360316 Jul 27 22:22 HackNerdFontMono-Regular.ttf\n-rw-r--r-- 1 jande 197609 2445204 Apr 12 2024 HackNerdFont-Regular.ttf","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"41a63358-1909-4902-b643-a8d9af47306b","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"aa10f2f7-f265-46a7-af80-224ea3a75373","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBwFsesy1c7GvGgGQdE","type":"message","role":"assistant","content":[{"type":"text","text":"Now committing, one fix per commit:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":275,"cache_read_input_tokens":247972,"output_tokens":147,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":275,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":147,"cache_read_input_tokens":247972,"cache_creation_input_tokens":275,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":275},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBw9ZeMqgSgFCt1S87H","type":"assistant","uuid":"a0a1e72a-71d5-41e7-b9d3-ae8d6704de9e","timestamp":"2026-07-27T20:25:23.912Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a0a1e72a-71d5-41e7-b9d3-ae8d6704de9e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBwFsesy1c7GvGgGQdE","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01YQvKbEnQcPpXbGr3Woxt2H","name":"Skill","input":{"skill":"conventional-commit","args":"Three SVG rendering fixes: preserve template whitespace per text element, prefer Mono Nerd Font variants, accept short hex colours, place the cursor at the primary prompt's end"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":275,"cache_read_input_tokens":247972,"output_tokens":147,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":275,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":147,"cache_read_input_tokens":247972,"cache_creation_input_tokens":275,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":275},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBw9ZeMqgSgFCt1S87H","type":"assistant","uuid":"2aae4ec6-85c8-4264-8d79-b4296711ac45","timestamp":"2026-07-27T20:25:25.100Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2aae4ec6-85c8-4264-8d79-b4296711ac45","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"type":"tool_result","tool_use_id":"toolu_01YQvKbEnQcPpXbGr3Woxt2H","content":"Launching skill: conventional-commit"}]},"uuid":"b92b76b8-8d4b-44fc-8fbb-39800e85fd42","timestamp":"2026-07-27T20:25:25.182Z","toolUseResult":{"success":true,"commandName":"conventional-commit"},"sourceToolAssistantUUID":"2aae4ec6-85c8-4264-8d79-b4296711ac45","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b92b76b8-8d4b-44fc-8fbb-39800e85fd42","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"type":"text","text":"Base directory for this skill: D:\\oh-my-posh\\.claude\\skills\\conventional-commit\n\n# Conventional Commit\n\n## Commit Message Structure\n\n```text\n(): \n\n[optional body]\n\n[optional footer(s)]\n```\n\n### Types\n\n| Type | When to use |\n| ---------- | ------------------------------------------------------ |\n| `feat` | A new feature |\n| `fix` | A bug fix |\n| `docs` | Documentation changes, no code |\n| `style` | Formatting, missing semicolons, etc. (no logic change) |\n| `refactor` | Code change that is neither a fix nor a feature |\n| `perf` | Performance improvement |\n| `test` | Adding or correcting tests |\n| `ci` | CI configuration changes |\n| `chore` | Maintenance tasks (updating deps, tooling, etc.) |\n| `revert` | Reverts a previous commit |\n\nAppend `!` after the type/scope to signal a **breaking change**: `feat!:` or `feat(api)!:`\nWhen a change breaks existing behavior, **both markers are mandatory**: the `!` suffix on the type\n**and** the `BREAKING CHANGE:` footer. They always appear together — never one without the other.\n\n### Scope\n\nOptional. Use the name of the area affected, e.g., `segment`, `cache`, `config`, `ui`.\nOmit when the change is truly cross-cutting.\n\n### Description\n\n- Required. One short imperative sentence, no period at the end. The full header line (type +\n scope + description) must be **72 characters or fewer**. Aim for **50 characters or fewer for\n the description itself** — this almost always keeps the full header within budget regardless\n of type and scope length.\n- Use the imperative mood: \"add\", not \"added\" or \"adds\". Never past tense or present-third-person:\n ✗ `added`, `fixed`, `bumped`, `implemented` → ✓ `add`, `fix`, `bump`, `implement`.\n- **Never mirror the input's phrasing.** If the request uses past-tense words (`updated`, `added`,\n `bumped`, `was removed`, `got regenerated`), convert them to imperative before writing the\n description: `update`, `add`, `bump`, `remove`, `regenerate`.\n\n### Body\n\nOptional. Add context about _why_ the change was made, not _what_. The diff shows that.\nWrap at 72 characters.\n\n### Footer\n\nUse for:\n\n- `BREAKING CHANGE: ` (required when `!` is used; explains the break).\n- Issue references: `Closes #123`, `Fixes #456`.\n- Co-authors: `Co-Authored-By: Name `.\n\n## Workflow\n\n1. Run `git status` to review changed files.\n2. Run `git diff` and `git diff --cached` to inspect staged and unstaged changes.\n3. Identify the **type** from the table above. Ask yourself: does this change **remove, rename, or\n alter existing behavior** that callers depend on? If yes → it is a breaking change: use `!`\n after the type/scope **and** add a `BREAKING CHANGE:` footer. Both markers are always required\n together.\n4. Identify the **scope** from the files/area changed.\n5. Write a short **description** in the imperative mood.\n6. Add a **body** if the _why_ needs explanation.\n7. Add a **footer** for breaking changes or issue references.\n8. Stage the relevant files explicitly (avoid `git add -A`).\n9. Commit with a message that preserves multi-line formatting when body/footer are present.\n\n## Examples\n\n```text\nfeat(segment): add Ramadan segment with Aladhan API\nfix(cache): always store mod time\ndocs(readme): update installation instructions\nrefactor(config): simplify option parsing logic\nchore(deps): bump github.com/shirou/gopsutil/v4\nfeat(segment)!: rename template property StartTime to Start\n\nBREAKING CHANGE: template strings using .StartTime must be updated to .Start\n```\n\n## Validation Checklist\n\n- [ ] Type is one of the allowed values in .commitlintrc.yml\n- [ ] The commit message respects the rules defined in .commitlintrc.yml\n- [ ] Scope (if present) reflects the actual area changed\n- [ ] Description is imperative mood, no trailing period\n- [ ] Full header line (type + scope + description) is 72 characters or fewer\n- [ ] Both `!` after type/scope **and** `BREAKING CHANGE:` footer are present whenever the change breaks existing behavior\n- [ ] No sensitive files staged (.env, credentials, etc.)\n\n\nARGUMENTS: Three SVG rendering fixes: preserve template whitespace per text element, prefer Mono Nerd Font variants, accept short hex colours, place the cursor at the primary prompt's end"}]},"isMeta":true,"uuid":"1614183a-1cf3-4298-95e3-ce93eb07722e","timestamp":"2026-07-27T20:25:25.169Z","sourceToolUseID":"toolu_01YQvKbEnQcPpXbGr3Woxt2H","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1614183a-1cf3-4298-95e3-ce93eb07722e","isSidechain":false,"attachment":{"type":"command_permissions","allowedTools":[]},"type":"attachment","uuid":"718fcb01-4ec5-4773-846d-116264c2f872","timestamp":"2026-07-27T20:25:25.169Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"718fcb01-4ec5-4773-846d-116264c2f872","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBwa3YoapAyrrt7z5BA","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01XyuXeyrjSZn5JeGXGBpzgv","name":"Bash","input":{"command":"cd /d/oh-my-posh && git add src/svg/svg.go src/svg/svg_test.go tools/svg-png-compare/probe-whitespace.mjs && git diff --cached --stat","description":"Stage whitespace and font-stack fix"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1807,"cache_read_input_tokens":248247,"output_tokens":147,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1807,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":147,"cache_read_input_tokens":248247,"cache_creation_input_tokens":1807,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1807},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBwWcfpsL9xDKofffgL","attributionSkill":"conventional-commit","type":"assistant","uuid":"4b95bc18-3c20-4629-9683-fa49f7715e38","timestamp":"2026-07-27T20:25:28.545Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4b95bc18-3c20-4629-9683-fa49f7715e38","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01XyuXeyrjSZn5JeGXGBpzgv","type":"tool_result","content":" src/svg/svg.go | 63 +++++++++++++++++++-----\n src/svg/svg_test.go | 79 +++++++++++++++++++++++++++++-\n tools/svg-png-compare/probe-whitespace.mjs | 41 ++++++++++++++++\n 3 files changed, 170 insertions(+), 13 deletions(-)","is_error":false}]},"uuid":"013f5ab8-8b86-48f0-9889-2f62c25688ce","timestamp":"2026-07-27T20:25:31.512Z","toolUseResult":{"stdout":" src/svg/svg.go | 63 +++++++++++++++++++-----\n src/svg/svg_test.go | 79 +++++++++++++++++++++++++++++-\n tools/svg-png-compare/probe-whitespace.mjs | 41 ++++++++++++++++\n 3 files changed, 170 insertions(+), 13 deletions(-)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"4b95bc18-3c20-4629-9683-fa49f7715e38","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"013f5ab8-8b86-48f0-9889-2f62c25688ce","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBx2u5FqyUq5LN2sPjv","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm realizing that svg.go contains changes that belong to different commits—the Cursor field and Encode order flip should go in commit 3, but they're mixed in with the padding and font stack changes for commit 1. Rather than trying to split them manually, I should use interactive staging to carefully separate these changes across the commits. I could use `git apply --cached` with a hand-built patch to split the changes, or take a simpler approach: temporarily remove the cursor-related changes from svg.go, stage and commit the whitespace and font stack work, then restore those changes back in. It's a bit manual but avoids the complexity of patch manipulation.\n\nBut wait — the Encode method references `opts.Cursor`, which means the field has to exist, and decorate's new signature also depends on it. So any intermediate state where I remove the cursor work would leave the code non-compiling unless I also revert decorate.go. That's messier than just accepting a slightly coarser commit split.\n\nBetter plan: three commits in dependency order so each one compiles cleanly. First, the hex color fix in isolation. Then the cursor plumbing across decorate, svg, and the CLI layer. Finally, the whitespace and font stack changes to svg.go.\n\nActually, both the cursor and whitespace commits touch svg.go, so I need to be careful about the order. If I do whitespace last and use `git apply` to cherry-pick just those hunks, I can keep the commits clean and compilable at each step.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":278,"cache_read_input_tokens":250054,"output_tokens":1767,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":278,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1767,"cache_read_input_tokens":250054,"cache_creation_input_tokens":278,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":278},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBwyfc7rF8oz5gNMj9B","attributionSkill":"conventional-commit","type":"assistant","uuid":"7b17913f-5ab9-4455-aa67-2c3dadbdd300","timestamp":"2026-07-27T20:25:58.592Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7b17913f-5ab9-4455-aa67-2c3dadbdd300","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBx2u5FqyUq5LN2sPjv","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_012U4HtS5Nq39Hus4jJHvr52","name":"Bash","input":{"command":"git reset >/dev/null && git diff -U3 -- src/svg/svg.go | grep -n \"^@@\" ","description":"List hunks in svg.go"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":278,"cache_read_input_tokens":250054,"output_tokens":1767,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":278,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1767,"cache_read_input_tokens":250054,"cache_creation_input_tokens":278,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":278},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBwyfc7rF8oz5gNMj9B","attributionSkill":"conventional-commit","type":"assistant","uuid":"e7808042-5924-4013-b26c-8d22d6046661","timestamp":"2026-07-27T20:25:59.148Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e7808042-5924-4013-b26c-8d22d6046661","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_012U4HtS5Nq39Hus4jJHvr52","type":"tool_result","content":"5:@@ -36,8 +36,13 @@ type Options struct {\n21:@@ -81,8 +86,22 @@ type Options struct {\n46:@@ -194,11 +213,12 @@ func (o *Options) withDefaults() Options {\n64:@@ -224,7 +244,13 @@ func (o *Options) withDefaults() Options {\n79:@@ -262,7 +288,7 @@ func Encode(rows [][]terminal.Run, opts Options) (string, error) {\n88:@@ -388,8 +414,21 @@ func writeRect(b *strings.Builder, x, y, width, height float64, rgb color.RGB) {","is_error":false}]},"uuid":"cb8c8556-d738-416c-981b-dd99673540c5","timestamp":"2026-07-27T20:26:02.308Z","toolUseResult":{"stdout":"5:@@ -36,8 +36,13 @@ type Options struct {\n21:@@ -81,8 +86,22 @@ type Options struct {\n46:@@ -194,11 +213,12 @@ func (o *Options) withDefaults() Options {\n64:@@ -224,7 +244,13 @@ func (o *Options) withDefaults() Options {\n79:@@ -262,7 +288,7 @@ func Encode(rows [][]terminal.Run, opts Options) (string, error) {\n88:@@ -388,8 +414,21 @@ func writeRect(b *strings.Builder, x, y, width, height float64, rgb color.RGB) {","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"e7808042-5924-4013-b26c-8d22d6046661","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cb8c8556-d738-416c-981b-dd99673540c5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBzKCQmu17rwSuGHfTr","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm looking at the different hunks that need to be organized across commits—the cursor commit should handle the Options.Cursor field change and the fitRows/decorate order flip with its comment, while the whitespace commit covers the doc comment encoding, root white-space removal, and the writeText xml:space updates, and the font commit takes the defaultFontFamily change.\n\nFor the test files, I need to separate the cursor-related tests from the whitespace-related ones since they're distinct hunks. I'm thinking through a Python script that can extract specific hunks from a git diff and apply them selectively with `git apply --cached`, which lets me build these commits in the right order while keeping the working tree intact for subsequent diffs.\n\nThe key constraint is making sure each intermediate commit compiles—the cursor commit with its svg.go hunks plus the supporting changes in decorate.go, prompt, and cli should be buildable on its own.\n\nWriting the hunk-selector script...","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1992,"cache_read_input_tokens":250332,"output_tokens":1332,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1992,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1332,"cache_read_input_tokens":250332,"cache_creation_input_tokens":1992,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1992},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBzFMEVgF8UTn29G4qb","attributionSkill":"conventional-commit","type":"assistant","uuid":"87fa0bea-2367-485f-816d-9898924e0adc","timestamp":"2026-07-27T20:26:16.367Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"87fa0bea-2367-485f-816d-9898924e0adc","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTBzKCQmu17rwSuGHfTr","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017mBhSK1Y2voSvkXWCmgsKP","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\pick_hunks.py","content":"\"\"\"Stage selected hunks of a file's working-tree diff.\n\n python pick_hunks.py <1-based hunk indices...>\n\nWrites the filtered patch to stdout; pipe it into `git apply --cached`.\n\"\"\"\nimport subprocess\nimport sys\n\npath = sys.argv[1]\nwanted = {int(a) for a in sys.argv[2:]}\n\ndiff = subprocess.run(\n [\"git\", \"diff\", \"-U3\", \"--\", path],\n capture_output=True, text=True, check=True,\n).stdout.split(\"\\n\")\n\nheader = []\nhunks = []\ncurrent = None\n\nfor line in diff:\n if line.startswith(\"@@\"):\n current = [line]\n hunks.append(current)\n continue\n\n if current is None:\n header.append(line)\n else:\n current.append(line)\n\nout = header[:]\nfor i, hunk in enumerate(hunks, start=1):\n if i in wanted:\n out.extend(hunk)\n\nsys.stdout.write(\"\\n\".join(out).rstrip(\"\\n\") + \"\\n\")\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1992,"cache_read_input_tokens":250332,"output_tokens":1332,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1992,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1332,"cache_read_input_tokens":250332,"cache_creation_input_tokens":1992,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1992},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTBzFMEVgF8UTn29G4qb","attributionSkill":"conventional-commit","type":"assistant","uuid":"6d56ca44-69a9-49b6-af3f-3f82384e21bd","timestamp":"2026-07-27T20:26:21.233Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6d56ca44-69a9-49b6-af3f-3f82384e21bd","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017mBhSK1Y2voSvkXWCmgsKP","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\pick_hunks.py (file state is current in your context — no need to Read it back)"}]},"uuid":"5cfd22c2-2031-4918-9ff8-aa412a4d9f69","timestamp":"2026-07-27T20:26:21.364Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\pick_hunks.py","content":"\"\"\"Stage selected hunks of a file's working-tree diff.\n\n python pick_hunks.py <1-based hunk indices...>\n\nWrites the filtered patch to stdout; pipe it into `git apply --cached`.\n\"\"\"\nimport subprocess\nimport sys\n\npath = sys.argv[1]\nwanted = {int(a) for a in sys.argv[2:]}\n\ndiff = subprocess.run(\n [\"git\", \"diff\", \"-U3\", \"--\", path],\n capture_output=True, text=True, check=True,\n).stdout.split(\"\\n\")\n\nheader = []\nhunks = []\ncurrent = None\n\nfor line in diff:\n if line.startswith(\"@@\"):\n current = [line]\n hunks.append(current)\n continue\n\n if current is None:\n header.append(line)\n else:\n current.append(line)\n\nout = header[:]\nfor i, hunk in enumerate(hunks, start=1):\n if i in wanted:\n out.extend(hunk)\n\nsys.stdout.write(\"\\n\".join(out).rstrip(\"\\n\") + \"\\n\")\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"6d56ca44-69a9-49b6-af3f-3f82384e21bd","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5cfd22c2-2031-4918-9ff8-aa412a4d9f69","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"4e3cd70e-322a-4e06-a61c-0024b4c358dd","timestamp":"2026-07-27T20:26:21.384Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4e3cd70e-322a-4e06-a61c-0024b4c358dd","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTC1igZhdp1hPtXn6zeo","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01FQeidD9qYF6KsrtmZk81eY","name":"Bash","input":{"command":"git diff -U3 -- src/svg/svg_test.go | grep -n \"^@@\"","description":"List hunks in svg_test.go"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1567,"cache_read_input_tokens":252324,"output_tokens":120,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1567,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":120,"cache_read_input_tokens":252324,"cache_creation_input_tokens":1567,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1567},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTC1ewqKBGG9oqz35nKA","attributionSkill":"conventional-commit","type":"assistant","uuid":"a7cdea2c-8d3e-4d73-a5a0-7755391881f0","timestamp":"2026-07-27T20:26:24.330Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a7cdea2c-8d3e-4d73-a5a0-7755391881f0","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01FQeidD9qYF6KsrtmZk81eY","type":"tool_result","content":"5:@@ -333,9 +333,14 @@ func TestEncodeRootCarriesFontMetrics(t *testing.T) {\n21:@@ -397,3 +402,75 @@ func TestEncodeEmptyRows(t *testing.T) {","is_error":false}]},"uuid":"1d0331e9-ebc8-4415-b238-2921281ca6a8","timestamp":"2026-07-27T20:26:27.133Z","toolUseResult":{"stdout":"5:@@ -333,9 +333,14 @@ func TestEncodeRootCarriesFontMetrics(t *testing.T) {\n21:@@ -397,3 +402,75 @@ func TestEncodeEmptyRows(t *testing.T) {","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"a7cdea2c-8d3e-4d73-a5a0-7755391881f0","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1d0331e9-ebc8-4415-b238-2921281ca6a8","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTC29st9TQ1UTfwzKEQq","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm realizing the issue with how to split these tests across commits. The second hunk in svg_test.go contains both the whitespace test and the cursor tests together, so I can't cleanly separate them without editing the patch itself. If I put that hunk in the whitespace commit, the cursor commit ends up with no tests. But if I move it to the cursor commit instead and put the first hunk in whitespace, the whitespace test would land before its corresponding fix, which breaks the logical ordering.\n\nThe cleanest approach is to temporarily extract the two cursor test functions from the file, commit the whitespace changes with just the whitespace test, then add the cursor tests back for the cursor commit. This avoids having to manually edit the patch and keeps the commits logically coherent.\n\nLet me verify the compilation works at each step — the whitespace commit will have the new svg.go structure but the old decorate.go signature in the tree, which should be fine since I'm only staging the whitespace changes. The cursor tests reference `opts.Cursor` which won't exist yet, so removing them first is necessary. I'll proceed with this plan.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":198,"cache_read_input_tokens":253891,"output_tokens":1251,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":198,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1251,"cache_read_input_tokens":253891,"cache_creation_input_tokens":198,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":198},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTC25Xh7RsndvGq7342U","attributionSkill":"conventional-commit","type":"assistant","uuid":"eefb2c5a-c6f6-417b-9c62-833ae09595e6","timestamp":"2026-07-27T20:26:42.875Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"eefb2c5a-c6f6-417b-9c62-833ae09595e6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTC29st9TQ1UTfwzKEQq","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_018qEJAJdKuQ2wGy7f1HgJgX","name":"Bash","input":{"command":"python - \"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\" <<'PYEOF'\nimport io, re, sys\np = 'src/svg/svg_test.go'\ns = io.open(p, encoding='utf-8').read()\nstart = s.index('// TestEncodeCursorAtAnchor')\ncut = s[start:]\nio.open(sys.argv[1] + '/cursor_tests.go.txt', 'w', encoding='utf-8').write(cut)\nio.open(p, 'w', encoding='utf-8', newline='\\n').write(s[:start].rstrip('\\n') + '\\n')\nprint('cut %d bytes' % len(cut))\nPYEOF","description":"Temporarily remove cursor tests"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":198,"cache_read_input_tokens":253891,"output_tokens":1251,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":198,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1251,"cache_read_input_tokens":253891,"cache_creation_input_tokens":198,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":198},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTC25Xh7RsndvGq7342U","attributionSkill":"conventional-commit","type":"assistant","uuid":"eb22c522-c184-4b40-9a4e-c65cc710fe7a","timestamp":"2026-07-27T20:26:44.699Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"eb22c522-c184-4b40-9a4e-c65cc710fe7a","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_018qEJAJdKuQ2wGy7f1HgJgX","type":"tool_result","content":"cut 2134 bytes","is_error":false}]},"uuid":"39979867-101d-418e-bc29-cb00260e7e02","timestamp":"2026-07-27T20:26:48.869Z","toolUseResult":{"stdout":"cut 2134 bytes","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"eb22c522-c184-4b40-9a4e-c65cc710fe7a","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"39979867-101d-418e-bc29-cb00260e7e02","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"D:\\oh-my-posh\\src\\svg\\svg_test.go","snippet":"1\tpackage svg\n2\t\n3\timport (\n4\t\t\"encoding/xml\"\n5\t\t\"io\"\n6\t\t\"regexp\"\n7\t\t\"strings\"\n8\t\t\"testing\"\n9\t\n10\t\t\"github.com/jandedobbeleer/oh-my-posh/src/color\"\n11\t\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n12\t\n13\t\t\"github.com/stretchr/testify/assert\"\n14\t\t\"github.com/stretchr/testify/require\"\n15\t)\n16\t\n17\t// testOptions fixes every metric so pixel math in assertions is exact and\n18\t// readable: padding 0, a 10px cell, a 20px row, and a fixed Columns wide\n19\t// enough that no existing test's row gets wrapped by fitRow (see fit.go) —\n20\t// tests that specifically exercise wrapping set their own, narrower Columns.\n21\tfunc testOptions() Options {\n22\t\treturn Options{\n23\t\t\tFontSize: 10,\n24\t\t\tCellWidth: 10,\n25\t\t\tLineHeight: 20,\n26\t\t\tPadding: 0,\n27\t\t\tColumns: 40,\n28\t\t}\n29\t}\n30\t\n31\t// contentOriginX computes the same content grid top-left X coordinate\n32\t// Encode itself derives (see newWindowGeometry/newCanvasSize), so position\n33\t// assertions stay correct if that geometry ever changes instead of\n34\t// hardcoding numbers that would silently drift out of sync. Every caller\n35\t// only ever needs the X coordinate (row-position assertions derive Y from\n36\t// LineHeight/rowIndex directly), so this returns just that rather than a\n37\t// (x, y) pair whose y half no caller uses.\n38\t//\n39\t//nolint:gocritic\n40\tfunc contentOriginX(opts Options) float64 {\n41\t\topts = opts.withDefaults()\n42\t\tgeo := newWindowGeometry(&opts)\n43\t\tsize := newCanvasSize(&geo, opts.Columns, opts.CellWidth, 1, opts.LineHeight)\n44\t\n45\t\treturn size.contentX\n46\t}\n47\t\n48\t// decodeXML asserts doc is well-formed XML — the bar the task sets for\n49\t// \"renders correctly when opened in a browser\" — draining every token so a\n50\t// mismatched tag or a bad escape surfaces as a test failure rather than\n51\t// something only a browser would notice.\n52\tfunc decodeXML(t *testing.T, doc string) {\n53\t\tt.Helper()\n54\t\n55\t\tdecoder := xml.NewDecoder(strings.NewReader(doc))\n56\t\n57\t\tfor {\n58\t\t\t_, err := decoder.Token()\n59\t\t\tif err == nil {\n60\t\t\t\tcontinue\n61\t\t\t}\n62\t\n63\t\t\trequire.ErrorIs(t, err, io.EOF)\n64\t\n65\t\t\treturn\n66\t\t}\n67\t}\n68\t\n69\t// TestEncodeSkipsZeroCellRuns pins the hyperlink case explicitly called out\n70\t// in the parent stage plan: Run.Cells can be 0 while Run.Text is non-empty\n71\t// (a hyperlink's URL text — see terminal.Run's doc comment), and such a run\n72\t// must contribute no glyphs and no column advance, so the run after it lands\n73\t// immediately next to the one before it, not shifted by the hidden text's\n74\t// own width.\n75\tfunc TestEncodeSkipsZeroCellRuns(t *testing.T) {\n76\t\trows := [][]terminal.Run{\n77\t\t\t{\n78\t\t\t\t{Text: \"ab\", Cells: 2, ForegroundSource: \"red\", BackgroundSource: \"blue\", Mode: terminal.RunNormal},\n79\t\t\t\t{Text: \"https://example.com/hidden\", Cells: 0, ForegroundSource: \"red\", BackgroundSource: \"blue\", Mode: terminal.RunNormal},\n80\t\t\t\t{Text: \"cd\", Cells: 2, ForegroundSource: \"red\", BackgroundSource: \"blue\", Mode: terminal.RunNormal},\n81\t\t\t},\n82\t\t}\n83\t\n84\t\tdoc, err := Encode(rows, testOptions())\n85\t\trequire.NoError(t, err)\n86\t\tdecodeXML(t, doc)\n87\t\n88\t\tassert.NotContains(t, doc, \"hidden\")\n89\t\tassert.Contains(t, doc, \">ab<\")\n90\t\tassert.Contains(t, doc, \">cd<\")\n91\t\n92\t\t// \"cd\" must start immediately after \"ab\" (2 cells further, at the\n93\t\t// content origin + 2*cellWidth), not pushed out further by the\n94\t\t// zero-cell hyperlink run's own text in between.\n95\t\topts := testOptions()\n96\t\tcontentX := contentOriginX(opts)\n97\t\twantX := contentX + 2*opts.CellWidth\n98\t\tassert.Contains(t, doc, `x=\"`+formatFloat(wantX)+`\"`)\n99\t\n100\t\t// One for each of the two visible runs, plus the window's own\n101\t\t// background rect (see writeWindowChrome); one for each of the\n102\t\t// two visible runs, plus the cursor and the watermark decorate always\n103\t\t// appends (see decorate).\n104\t\tassert.Equal(t, 3, strings.Count(doc, \"\n192\t// reverse attribute, which swaps text/rect fill in the RunNormal case since\n193\t// it is independent of the writer's own transparent-driven RunMode swap.\n194\tfunc TestEncodeAttributes(t *testing.T) {\n195\t\tblue := hexString(color.RGB{R: 0, G: 111, B: 184})\n196\t\n197\t\tcases := []struct {\n198\t\t\tCase string\n199\t\t\tWantSubstr []string\n200\t\t\tAttrs [8]uint8\n201\t\t}{\n202\t\t\t{Case: \"bold\", Attrs: [8]uint8{attrBold: 1}, WantSubstr: []string{`font-weight=\"bold\"`}},\n203\t\t\t{Case: \"italic\", Attrs: [8]uint8{attrItalic: 1}, WantSubstr: []string{`font-style=\"italic\"`}},\n204\t\t\t{Case: \"underline\", Attrs: [8]uint8{attrUnderline: 1}, WantSubstr: []string{`text-decoration=\"underline\"`}},\n\n... [224 lines truncated] ...","displayPath":"src\\svg\\svg_test.go"},"type":"attachment","uuid":"35bf094f-ddab-4ed2-a35d-53cfbea3ee3d","timestamp":"2026-07-27T20:26:48.913Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"35bf094f-ddab-4ed2-a35d-53cfbea3ee3d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTC3kzXYYdm6QmTV246Z","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Ar59FYZumfujkoDvCkDGfZ","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; git diff -U3 -- src/svg/svg.go | grep -n \"^@@\"; echo \"--- test hunks ---\"; git diff -U3 -- src/svg/svg_test.go | grep -n \"^@@\"","description":"Re-list hunks after test cut"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":5038,"cache_read_input_tokens":254089,"output_tokens":221,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":5038,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":221,"cache_read_input_tokens":254089,"cache_creation_input_tokens":5038,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":5038},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTC3gUB6ULGDUw5gKLZ5","attributionSkill":"conventional-commit","type":"assistant","uuid":"d1cd9ce4-e892-4d3a-9ef6-fba3a220fdcc","timestamp":"2026-07-27T20:26:55.034Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d1cd9ce4-e892-4d3a-9ef6-fba3a220fdcc","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Ar59FYZumfujkoDvCkDGfZ","type":"tool_result","content":"5:@@ -36,8 +36,13 @@ type Options struct {\n21:@@ -81,8 +86,22 @@ type Options struct {\n46:@@ -194,11 +213,12 @@ func (o *Options) withDefaults() Options {\n64:@@ -224,7 +244,13 @@ func (o *Options) withDefaults() Options {\n79:@@ -262,7 +288,7 @@ func Encode(rows [][]terminal.Run, opts Options) (string, error) {\n88:@@ -388,8 +414,21 @@ func writeRect(b *strings.Builder, x, y, width, height float64, rgb color.RGB) {\n--- test hunks ---\n5:@@ -333,9 +333,14 @@ func TestEncodeRootCarriesFontMetrics(t *testing.T) {\n21:@@ -397,3 +402,27 @@ func TestEncodeEmptyRows(t *testing.T) {","is_error":false}]},"uuid":"ee0dc9d7-8f15-46b0-8561-713d4974f349","timestamp":"2026-07-27T20:26:57.947Z","toolUseResult":{"stdout":"5:@@ -36,8 +36,13 @@ type Options struct {\n21:@@ -81,8 +86,22 @@ type Options struct {\n46:@@ -194,11 +213,12 @@ func (o *Options) withDefaults() Options {\n64:@@ -224,7 +244,13 @@ func (o *Options) withDefaults() Options {\n79:@@ -262,7 +288,7 @@ func Encode(rows [][]terminal.Run, opts Options) (string, error) {\n88:@@ -388,8 +414,21 @@ func writeRect(b *strings.Builder, x, y, width, height float64, rgb color.RGB) {\n--- test hunks ---\n5:@@ -333,9 +333,14 @@ func TestEncodeRootCarriesFontMetrics(t *testing.T) {\n21:@@ -397,3 +402,27 @@ func TestEncodeEmptyRows(t *testing.T) {","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"d1cd9ce4-e892-4d3a-9ef6-fba3a220fdcc","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ee0dc9d7-8f15-46b0-8561-713d4974f349","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTC4QvKKL2pHAJUV1L2s","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017ozHAiDYSECkSzMSGucGqS","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/pick_hunks.py\" src/svg/svg.go 3 5 6 | git apply --cached - && git add src/svg/svg_test.go tools/svg-png-compare/probe-whitespace.mjs && git diff --cached --stat","description":"Stage whitespace hunks"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":543,"cache_read_input_tokens":259127,"output_tokens":246,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":543,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":246,"cache_read_input_tokens":259127,"cache_creation_input_tokens":543,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":543},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTC4MNkAymKWHZKz6y9H","attributionSkill":"conventional-commit","type":"assistant","uuid":"f4621243-c1b1-4789-a4a3-428bca725b07","timestamp":"2026-07-27T20:27:02.357Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f4621243-c1b1-4789-a4a3-428bca725b07","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017ozHAiDYSECkSzMSGucGqS","type":"tool_result","content":"error: patch failed: src/svg/svg.go:194\nerror: src/svg/svg.go: patch does not apply","is_error":false}]},"uuid":"e9979886-2942-4367-bf00-51dda57c58cb","timestamp":"2026-07-27T20:27:07.290Z","toolUseResult":{"stdout":"error: patch failed: src/svg/svg.go:194\nerror: src/svg/svg.go: patch does not apply","stderr":"","interrupted":false,"isImage":false,"returnCodeInterpretation":"Files differ","noOutputExpected":false},"sourceToolAssistantUUID":"f4621243-c1b1-4789-a4a3-428bca725b07","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e9979886-2942-4367-bf00-51dda57c58cb","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTC58EzeZoj38XS8zw2i","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm working through how git apply handles overlapping hunks when some are skipped. The line number offsets on the old side matter for context matching, so removing a hunk in the middle breaks the subsequent hunks' ability to find their context since they depend on earlier changes being applied first.\n\nI should double-check the actual patch output to see if there's an issue with how I'm handling newlines or merging hunks — maybe the trailing \"\\ No newline\" markers got dropped or the split logic is combining hunks incorrectly. Let me examine the generated patch directly, or try using `--recount` or `--unidiff-zero` flags to see if that helps.","signature":"CAISvAgKhwEIEBgCKkDxKdGZBwxTd956bZj1GM8a9TftY0IHKgRHUrooQOUM5IS63XV8k78tP5xfzg1sv9382bpXiTpvBn4fyeVaxEOPMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDL+2G/ZMTN2xNk8B/hoMjKgv339JAYU/Taw9IjChccgOtSFP4GJWoyNcL0bHctiFUfVS/JN4kd+l7BQO7TI2aGGIxQ2US1vErZEmzTgq4QYeifj0+vivUDjG+sI0M/4sXNjWREs4cW98davnq1ZAjyyXtNv4oq7dhNHTNSpQ1qQfhzyur/SqkNrIdmImHxtsgM/6qfpwQhcuOH9lqBuQIs6L02EKBS7bnFtsNElfNACNZzdb+wL5P0CF//PwJRqRQZqe78ZKm1WwvPrpRme/UdcBtZcAxsSgVJlLnfUXTrO+piPxPLHP/03cuJ0XhInLzWhtrQXMg3WWfRgm2vzHUsKzs0a8EuuxR0o+CLObfB/fQG9zXdEK512n5WIYIorHoe6EDYHFxH9myvXV61d8wdF0WEDWN/klxTwoJacY1luRta+rJZZdrNh6sH1o3+iQBG9qmEtzH4MStkId3gzIf8wJYe5UkZJKisK4mtcuQ2jW4F5pFSVQVsinVXm4QhRA2X7HqxJHGSQWXqjIAWBtL5D0N9sZ54Rpna6F7LTEfx4CJA9ieRRXEYEN3tApCvujJF8Plm/CU/aedd5XQMXSaKRNpYSe4cHv/KSetn3MMX+0RIJorZTpBjLnhJ7aFkzfA9qsEJptv+kAzITk4NODdL0Ov4JVjZBCZihCoJo08JEYVSUtAXrsSeBNbpAOp5RhR6LTG3oEuPq0D2H0WspsWLT+rSvqNxQ6Gmony1TJSXJAVEOcBXXLgWarTtwlENWtEa0fnknjTsy3POWn5r/9cwbSKULRpWTYvxm2C0wbyb0UpgXFqVJPtJSqmlXbAdz+J8gKG+TwZ747sxDzjSIzrY+S+GgLTxPyyosKi+e3BXVORI/gGxM3MtAT21UKpuXgyzw0K25IO08KQ8dePU8yjAO6DrvzIhQdmU03B/R7TynQ4FWbrhgNmlP7XR/PWOvREOdrJLVkOW4WrCnhX4+fQrzF+jijS758ZztpWZR0rmXHAMOsLgB1miLmbDKuUJNyyFzvAw1imNusgCSSdvsZgxLp/+CIYVS8fV2cMSWrZVfxKDQmHvvqptrufAcqvSKbNV0GyHqUidPKLVWGZuLK/8mn88PWcd1jAVl3IeO0+3ArAEkzrcEHsz1uDQ9rgRiaHO7mTNXFcq0TWWfofH+MPrB1teZE08bmFytrNV4I6zXranlIC7Fr4VW6g9Sc7IPuj2tsz5Ipg8uptTqaZFfbkXookFG+dYUAAXHZl3KK9dCjGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":275,"cache_read_input_tokens":259670,"output_tokens":590,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":275,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":590,"cache_read_input_tokens":259670,"cache_creation_input_tokens":275,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":275},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTC53CsuG1291vjFERB4","attributionSkill":"conventional-commit","type":"assistant","uuid":"0cec9499-e89b-4ee1-9de3-68dc87aa149e","timestamp":"2026-07-27T20:27:16.231Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0cec9499-e89b-4ee1-9de3-68dc87aa149e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTC58EzeZoj38XS8zw2i","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_012pKRvH1QcjXrHtYvXzCRDT","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/pick_hunks.py\" src/svg/svg.go 3 5 6 > \"$SP/ws.patch\"; sed -n '1,20p' \"$SP/ws.patch\"; echo \"...\"; git apply --cached --recount \"$SP/ws.patch\" && echo APPLIED","description":"Inspect and apply patch with recount"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":275,"cache_read_input_tokens":259670,"output_tokens":590,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":275,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":590,"cache_read_input_tokens":259670,"cache_creation_input_tokens":275,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":275},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTC53CsuG1291vjFERB4","attributionSkill":"conventional-commit","type":"assistant","uuid":"b26e9024-d2a5-4336-9ddd-904adac026cc","timestamp":"2026-07-27T20:27:16.582Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b26e9024-d2a5-4336-9ddd-904adac026cc","isSidechain":false,"promptId":"0c3a0fba-e5fc-4a64-bc7d-444f5442975d","type":"user","message":{"role":"user","content":[{"type":"tool_result","content":"Exit code 1\ndiff --git a/src/svg/svg.go b/src/svg/svg.go\nindex f231d495..6c8c2905 100644\n--- a/src/svg/svg.go\n+++ b/src/svg/svg.go\n@@ -194,11 +213,12 @@ func (o *Options) withDefaults() Options {\n // A run with Cells == 0 (e.g. a hyperlink's URL text — see terminal.Run's\n // doc comment) is skipped entirely: no rect, no text, no column advance.\n //\n-// font-family/font-size/white-space are written as presentation attributes\n-// on the root element rather than a -loaded), so\n // living outside static/ keeps them from also being copied into the deployed\n // build/ output as dead weight. Regenerated on every build (see the \"themes\" npm\n // script) and gitignored, exactly like the PNGs it replaces.\n MANIFEST_FILE: join(__dirname, 'generated/themes.json'),\n CONCURRENCY: 8,\n THEME_EXTENSIONS: ['.omp.json', '.omp.toml', '.omp.yaml'],\n SEGMENT_DATA_FILE: join(__dirname, 'segment_data.json'),\n GITHUB_BASE_URL: 'https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/themes',\n // Matches the family @font-face declares in src/css/custom.css - the whole point\n // of inlining is that these SVGs pick that font up for free once embedded in a\n // page that serves it, with no embedding/subsetting/data-URI of their own.\n FONT_FAMILY: 'Victor Mono',\n // Victor Mono's own font metrics, read from VictorMonoNerdFont-Regular.ttf: the\n // svg package's --cell-width/--line-height defaults are Hack Nerd Font's ratios\n // (src/svg/svg.go's defaultCellWidth/defaultLineHeight), correct for the CLI's\n // own default font stack but wrong for Victor Mono, which this build actually\n // renders in. Passing these explicitly keeps the grid math (column advance, row\n // height) matched to the font the browser will actually lay the text out in.\n //\n // CELL_WIDTH: ASCII 'M' advance 600 / unitsPerEm 1100 = 0.5455em.\n // LINE_HEIGHT: hhea (Ascender - Descender + LineGap) 1550 / unitsPerEm 1100 =\n // 1.4091em, times 1.2 (the retired PNG renderer's own lineSpacing constant,\n // which the svg package's default also carries - see defaultLineHeight) =\n // 1.6909em.\n CELL_WIDTH: 0.5455,\n LINE_HEIGHT: 1.6909,\n};\n\nconst TRENDING_FETCH_TIMEOUT_MS = 4000;\n\n/**\n * Small, tasteful deny-list used as a safety net behind each source's own\n * explicit-content flag. Matched word-boundary aware so substrings inside\n * unrelated words (e.g. \"sex\" in \"Essex\") don't trigger a false positive.\n */\nconst CONTENT_DENY_LIST = ['fuck', 'shit', 'bitch', 'nigga', 'cunt', 'motherfucker'];\nconst CONTENT_DENY_REGEX = new RegExp(`\\\\b(${CONTENT_DENY_LIST.join('|')})\\\\b`, 'i');\n\n// There used to be a THEME_CONFIG_OVERRIDES map here (per-theme author/bgColor\n// overrides). Both only ever fed the PNG path's --author/--background-color\n// flags - image.Settings.Author's caption and image.Renderer's canvas fill -\n// neither of which the svg format reads (see config_export_svg.go: it takes\n// the terminal background from the theme's own config, not a CLI flag). Now\n// that every theme exports as svg, the overrides had no effect left to have.\n\nfunction isValidTheme(fileName) {\n return CONFIG.THEME_EXTENSIONS.some((ext) => fileName.endsWith(ext));\n}\n\nfunction getThemeNameFromFile(fileName) {\n const lastDotIndex = fileName.lastIndexOf('.');\n const secondLastDotIndex = fileName.lastIndexOf('.', lastDotIndex - 1);\n return fileName.slice(0, secondLastDotIndex);\n}\n\nasync function fetchJsonWithTimeout(url) {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), TRENDING_FETCH_TIMEOUT_MS);\n\n try {\n const response = await fetch(url, { signal: controller.signal });\n\n if (!response.ok) {","is_error":false}]},"uuid":"427ff17d-85d1-4194-afcc-d906ddf7325f","timestamp":"2026-07-28T04:47:45.521Z","toolUseResult":{"stdout":"import { exec } from 'node:child_process';\nimport { randomUUID } from 'node:crypto';\nimport { promises } from 'node:fs';\nimport { tmpdir } from 'node:os';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { promisify } from 'node:util';\n\nconst execAsync = promisify(exec);\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nconst CONFIG = {\n THEMES_CONFIG_DIR: join(__dirname, '../themes'),\n // Read by plugins/themes at build time (usePluginData('oh-my-posh-themes')) and\n // inlined into docs/themes.mdx via . Not under static/: nothing\n // references these SVGs by URL any more (they're inlined, not -loaded), so\n // living outside static/ keeps them from also being copied into the deployed\n // build/ output as dead weight. Regenerated on every build (see the \"themes\" npm\n // script) and gitignored, exactly like the PNGs it replaces.\n MANIFEST_FILE: join(__dirname, 'generated/themes.json'),\n CONCURRENCY: 8,\n THEME_EXTENSIONS: ['.omp.json', '.omp.toml', '.omp.yaml'],\n SEGMENT_DATA_FILE: join(__dirname, 'segment_data.json'),\n GITHUB_BASE_URL: 'https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/themes',\n // Matches the family @font-face declares in src/css/custom.css - the whole point\n // of inlining is that these SVGs pick that font up for free once embedded in a\n // page that serves it, with no embedding/subsetting/data-URI of their own.\n FONT_FAMILY: 'Victor Mono',\n // Victor Mono's own font metrics, read from VictorMonoNerdFont-Regular.ttf: the\n // svg package's --cell-width/--line-height defaults are Hack Nerd Font's ratios\n // (src/svg/svg.go's defaultCellWidth/defaultLineHeight), correct for the CLI's\n // own default font stack but wrong for Victor Mono, which this build actually\n // renders in. Passing these explicitly keeps the grid math (column advance, row\n // height) matched to the font the browser will actually lay the text out in.\n //\n // CELL_WIDTH: ASCII 'M' advance 600 / unitsPerEm 1100 = 0.5455em.\n // LINE_HEIGHT: hhea (Ascender - Descender + LineGap) 1550 / unitsPerEm 1100 =\n // 1.4091em, times 1.2 (the retired PNG renderer's own lineSpacing constant,\n // which the svg package's default also carries - see defaultLineHeight) =\n // 1.6909em.\n CELL_WIDTH: 0.5455,\n LINE_HEIGHT: 1.6909,\n};\n\nconst TRENDING_FETCH_TIMEOUT_MS = 4000;\n\n/**\n * Small, tasteful deny-list used as a safety net behind each source's own\n * explicit-content flag. Matched word-boundary aware so substrings inside\n * unrelated words (e.g. \"sex\" in \"Essex\") don't trigger a false positive.\n */\nconst CONTENT_DENY_LIST = ['fuck', 'shit', 'bitch', 'nigga', 'cunt', 'motherfucker'];\nconst CONTENT_DENY_REGEX = new RegExp(`\\\\b(${CONTENT_DENY_LIST.join('|')})\\\\b`, 'i');\n\n// There used to be a THEME_CONFIG_OVERRIDES map here (per-theme author/bgColor\n// overrides). Both only ever fed the PNG path's --author/--background-color\n// flags - image.Settings.Author's caption and image.Renderer's canvas fill -\n// neither of which the svg format reads (see config_export_svg.go: it takes\n// the terminal background from the theme's own config, not a CLI flag). Now\n// that every theme exports as svg, the overrides had no effect left to have.\n\nfunction isValidTheme(fileName) {\n return CONFIG.THEME_EXTENSIONS.some((ext) => fileName.endsWith(ext));\n}\n\nfunction getThemeNameFromFile(fileName) {\n const lastDotIndex = fileName.lastIndexOf('.');\n const secondLastDotIndex = fileName.lastIndexOf('.', lastDotIndex - 1);\n return fileName.slice(0, secondLastDotIndex);\n}\n\nasync function fetchJsonWithTimeout(url) {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), TRENDING_FETCH_TIMEOUT_MS);\n\n try {\n const response = await fetch(url, { signal: controller.signal });\n\n if (!response.ok) {","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"773650a1-9173-4b79-a0b2-fa86460d0eb0","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"427ff17d-85d1-4194-afcc-d906ddf7325f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrFEx2Czc2pQHwouZ2o","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The manifest gets regenerated at build time and is gitignored, so the user needs to re-run the export to see theme changes. They're not seeing updates because the font is still the unpatched Victor Mono. I need to swap in the Nerd Fonts patched version, update any differing metrics, refresh the font family comment, and regenerate everything. First step is downloading the patched Victor Mono from Nerd Fonts v3.2.\n\n1, extracting the regular weight TTF, measuring its metrics to confirm they match or differ from the current one, then replacing the font file in the website assets. I'll also need to check if the current font is already in git and verify the custom.css setup before proceeding with the download.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2010,"cache_read_input_tokens":270554,"output_tokens":678,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2010,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":678,"cache_read_input_tokens":270554,"cache_creation_input_tokens":2010,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2010},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrFC6s6Do4YdzzF5EBN","type":"assistant","uuid":"04b02062-5179-4727-815a-0d38df003b20","timestamp":"2026-07-28T04:47:55.501Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"04b02062-5179-4727-815a-0d38df003b20","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrFEx2Czc2pQHwouZ2o","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01BW5zH2Z4WXXww1ZMXDaYVh","name":"Bash","input":{"command":"git log --oneline -1 -- website/static/fonts/VictorMono.ttf; ls -la website/static/fonts/; grep -n -B3 -A6 \"VictorMono.ttf\" website/src/css/custom.css; cat website/.gitignore 2>/dev/null | head","description":"Check website font asset and CSS"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2010,"cache_read_input_tokens":270554,"output_tokens":678,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2010,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":678,"cache_read_input_tokens":270554,"cache_creation_input_tokens":2010,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2010},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrFC6s6Do4YdzzF5EBN","type":"assistant","uuid":"d2ddb011-b6a2-4cd9-b038-804eca37aa02","timestamp":"2026-07-28T04:47:55.689Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d2ddb011-b6a2-4cd9-b038-804eca37aa02","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01BW5zH2Z4WXXww1ZMXDaYVh","type":"tool_result","content":"59f29d4a docs: version up Victor Mono Nerd Font\ntotal 6412\ndrwxr-xr-x 1 jande 197609 0 Jul 10 14:59 .\ndrwxr-xr-x 1 jande 197609 0 Jul 26 17:43 ..\n-rw-r--r-- 1 jande 197609 4121089 Jul 10 14:59 fonts.zip\n-rw-r--r-- 1 jande 197609 2440352 Jul 10 14:59 VictorMono.ttf\n166-\n167-@font-face {\n168- font-family: \"Victor Mono\";\n169: src: url('/fonts/VictorMono.ttf') format(\"truetype\");\n170- font-display: swap;\n171-}\n172-\n173-:root {\n174- --ifm-font-family-monospace: \"Victor Mono\", \"Symbols Nerd Font Mono\",\n175- \"Symbols Nerd Font\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n# Dependencies\n/node_modules\n\n# Production\n/build\n\n# Generated files\n.docusaurus\n.cache-loader","is_error":false}]},"uuid":"2e07c5d2-8434-42b5-b83f-d87ae6dfc0f5","timestamp":"2026-07-28T04:47:57.458Z","toolUseResult":{"stdout":"59f29d4a docs: version up Victor Mono Nerd Font\ntotal 6412\ndrwxr-xr-x 1 jande 197609 0 Jul 10 14:59 .\ndrwxr-xr-x 1 jande 197609 0 Jul 26 17:43 ..\n-rw-r--r-- 1 jande 197609 4121089 Jul 10 14:59 fonts.zip\n-rw-r--r-- 1 jande 197609 2440352 Jul 10 14:59 VictorMono.ttf\n166-\n167-@font-face {\n168- font-family: \"Victor Mono\";\n169: src: url('/fonts/VictorMono.ttf') format(\"truetype\");\n170- font-display: swap;\n171-}\n172-\n173-:root {\n174- --ifm-font-family-monospace: \"Victor Mono\", \"Symbols Nerd Font Mono\",\n175- \"Symbols Nerd Font\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n# Dependencies\n/node_modules\n\n# Production\n/build\n\n# Generated files\n.docusaurus\n.cache-loader","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"d2ddb011-b6a2-4cd9-b038-804eca37aa02","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2e07c5d2-8434-42b5-b83f-d87ae6dfc0f5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrG9QfysBQPoKsEiS1R","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The font's already committed, so now I need to pull the Mono-patched Victor Mono from Nerd Fonts. Since downloading requires explicit permission and the user authorized me to change the website's font, I can proceed—I'll just note the source and file size. Let me look back at the previous commit to see which version was used before.","signature":"CAIS4ggKhwEIEBgCKkB3ZBrG2b+NE0gYpuSa4qnwC1G9R9ILjRWNRrfK2j9ByX5fsW66zhZ9OMy6zUqaI4H28PICbgEf3z00nFJozx1dMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDP30Mjucu98VKcLJ+hoMfPnw6V1KsoG8ixFCIjA5R7AfW+FVyJF8+ikYdC5VkuQulAtrIk1phbvg5sxmHo9UVEG7G+NEuUjRYuGc/HYqhwcbDjvFBmDNXHFdCNEtprScPMYCE/QfyX02cNcuwKciyNthTvlB877rDUFDP0YmgfbzmZoZFqlMIRc2N10gZ+fJaDLwCqTtzv8fDTa5/UGIJBH/K5h6bEDkF0gpaxquYdsO9BiImcMx1KV/GANAh6FFPmm4hkizqttE3SH2bJqkduO7B1oeelPWo4inQqv5DrpYPd51eyYznj82wdNhVEzJvTYcrmyWNxOdkm+58kgBO1h+86VHOpCEIioxu5D6LcuTLFJ9NDvyc9KoewBu/3hKCNYSCFoGHM3HTQrksb2L+MB6dkiMpBw0HzxwOVsJXK0jc9Ue25xhsjDhaM+9buUBI2l+UaaeSgecCKLhYFzVMrzbd3wsYb7aCExkfCyrIE+G7oHu+1kjuIYXw9Ee+OI7D4xMONIMWLjtOG2Nk1b+5jOTH+6Caya1WISw0cJmriRCtnG8OEeXqxEVDN+ziuGj+GPFJEmbrBHmvN2Y05l2OhiFhOE8eFJA5tUXYR3Vm1pUfVtrlDL+MKjXrc/DarH+eh59kGZSPCdfJLalkEZJqzGCQxvS+uS2vXZZDbku8frtwC5d+ipfYl8MsByxU32rsts/gLKq/OqDq9Tz6MQ/VLr5qVHQDGKt1eyItqjwgv4Zx5KRhumkRFIrk1y2PaYjW/oFaIoWfajYbi85Xg0HURVlrwhtDAtIAnwLT9unjQm0JlI2e1FL3FNv3ce4yAoej1YqeBhrOpukfWHN0c/o1c41g5uz6zPno4/cPynVuY6xXjG0Yw1hfLFc+RVil0t3AKO04Zyu9KzIt72sSy2GLz5cntNbEcgS4IkHbtQd3Wdxg+M5rHQA7Bng4MPbHbYOkegyVis/K8LlvMD0TXvcrkcPpvvCcelX4xuOTt+kxtNj2ksk6zpuKiqn9jLDSfcYrWjkZpIWdToqwzIwj6oAvOe1OWNgInDGFWtq6gD/oahLLWMKv+vGT8C/JkBTHIHnAN75Qt/wkOYvtNabRpWU0G7BtHlghLyq2b77JAzHVmNeMgQv8On3NHZDBnyXw6bR57gvIPO/dCEMwh71MlOZKw3Kz4s2mEwEqNH9UEO4YB/WYn84xidW3TJKxtmiB6od8faZDmlAb45OFp+4bnPoVd8vLoCHMRH3iY27oT9zXeuSRebAMHAxqocVGHaXmB7h7FcJKk+G1h2IOSR5rc3D0NcIZi1I/7wYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1050,"cache_read_input_tokens":272564,"output_tokens":467,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1050,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":467,"cache_read_input_tokens":272564,"cache_creation_input_tokens":1050,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1050},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrG5FtUXNWqJLV24dMS","type":"assistant","uuid":"f3428796-7b65-4b7c-a8c8-c127af8c3532","timestamp":"2026-07-28T04:48:04.393Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f3428796-7b65-4b7c-a8c8-c127af8c3532","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrG9QfysBQPoKsEiS1R","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_016mFCTXT8qPzoeaeHds4PXT","name":"Bash","input":{"command":"git show --stat 59f29d4a | head -12; grep -rn \"nerd-fonts/releases\" --include=\"*.mjs\" --include=\"*.json\" --include=\"*.md\" --include=\"*.js\" --include=\"*.yml\" website/ .github/ 2>/dev/null | head","description":"Find nerd-fonts version used by website"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1050,"cache_read_input_tokens":272564,"output_tokens":467,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1050,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":467,"cache_read_input_tokens":272564,"cache_creation_input_tokens":1050,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1050},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrG5FtUXNWqJLV24dMS","type":"assistant","uuid":"d682fe81-edf6-4e5d-b24b-d330e8f6391a","timestamp":"2026-07-28T04:48:05.228Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d682fe81-edf6-4e5d-b24b-d330e8f6391a","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"type":"tool_result","content":"Exit code 143\nCommand timed out after 2m 0s\ncommit 59f29d4ac80355067e8a094f7ef4f622b853e23d\nAuthor: JamBalaya56562 \nDate: Mon Dec 29 16:57:32 2025 +0900\n\n docs: version up Victor Mono Nerd Font\n\n website/static/fonts/VictorMono.ttf | Bin 2248200 -> 2440352 bytes\n 1 file changed, 0 insertions(+), 0 deletions(-)","is_error":true,"tool_use_id":"toolu_016mFCTXT8qPzoeaeHds4PXT"}]},"uuid":"d1a2734a-5175-4ce2-88e1-cbaf7d45dbe3","timestamp":"2026-07-28T04:50:05.311Z","toolUseResult":"Error: Exit code 143\nCommand timed out after 2m 0s\ncommit 59f29d4ac80355067e8a094f7ef4f622b853e23d\nAuthor: JamBalaya56562 \nDate: Mon Dec 29 16:57:32 2025 +0900\n\n docs: version up Victor Mono Nerd Font\n\n website/static/fonts/VictorMono.ttf | Bin 2248200 -> 2440352 bytes\n 1 file changed, 0 insertions(+), 0 deletions(-)","sourceToolAssistantUUID":"d682fe81-edf6-4e5d-b24b-d330e8f6391a","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d1a2734a-5175-4ce2-88e1-cbaf7d45dbe3","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrRaHdrpeEirBxXb748","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_015fiYuYzdsa4ZA6rVNTKy7G","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\fontname.py","content":"\"\"\"Print a TTF's name-table entries (family, subfamily, full name, version).\"\"\"\nimport struct\nimport sys\n\nIDS = {1: \"family\", 2: \"subfamily\", 4: \"full name\", 5: \"version\", 6: \"postscript\"}\n\n\ndef tables(data):\n n = struct.unpack(\">H\", data[4:6])[0]\n out = {}\n for i in range(n):\n off = 12 + i * 16\n tag = data[off:off + 4].decode(\"latin-1\")\n to, tl = struct.unpack(\">II\", data[off + 8:off + 16])\n out[tag] = (to, tl)\n return out\n\n\nfor path in sys.argv[1:]:\n data = open(path, \"rb\").read()\n base = tables(data)[\"name\"][0]\n count, string_off = struct.unpack(\">HH\", data[base + 2:base + 6])\n seen = {}\n\n for i in range(count):\n rec = base + 6 + i * 12\n pid, eid, lid, nid, length, off = struct.unpack(\">HHHHHH\", data[rec:rec + 12])\n\n if nid not in IDS or nid in seen:\n continue\n\n raw = data[base + string_off + off:base + string_off + off + length]\n seen[nid] = raw.decode(\"utf-16-be\" if pid == 3 else \"latin-1\", \"replace\")\n\n print(path.replace(\"\\\\\", \"/\").split(\"/\")[-1])\n for nid in sorted(seen):\n print(f\" {IDS[nid]:12} {seen[nid]}\")\n print()\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":670,"cache_read_input_tokens":273614,"output_tokens":648,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":670,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":648,"cache_read_input_tokens":273614,"cache_creation_input_tokens":670,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":670},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrRWfrAKPr7MHGnzgi3","type":"assistant","uuid":"8875f18f-6c82-4434-9edb-ff41f21662c1","timestamp":"2026-07-28T04:50:14.187Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8875f18f-6c82-4434-9edb-ff41f21662c1","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_015fiYuYzdsa4ZA6rVNTKy7G","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\fontname.py (file state is current in your context — no need to Read it back)"}]},"uuid":"09e1a413-754f-4c1d-aee6-f32c0665a072","timestamp":"2026-07-28T04:50:14.269Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\fontname.py","content":"\"\"\"Print a TTF's name-table entries (family, subfamily, full name, version).\"\"\"\nimport struct\nimport sys\n\nIDS = {1: \"family\", 2: \"subfamily\", 4: \"full name\", 5: \"version\", 6: \"postscript\"}\n\n\ndef tables(data):\n n = struct.unpack(\">H\", data[4:6])[0]\n out = {}\n for i in range(n):\n off = 12 + i * 16\n tag = data[off:off + 4].decode(\"latin-1\")\n to, tl = struct.unpack(\">II\", data[off + 8:off + 16])\n out[tag] = (to, tl)\n return out\n\n\nfor path in sys.argv[1:]:\n data = open(path, \"rb\").read()\n base = tables(data)[\"name\"][0]\n count, string_off = struct.unpack(\">HH\", data[base + 2:base + 6])\n seen = {}\n\n for i in range(count):\n rec = base + 6 + i * 12\n pid, eid, lid, nid, length, off = struct.unpack(\">HHHHHH\", data[rec:rec + 12])\n\n if nid not in IDS or nid in seen:\n continue\n\n raw = data[base + string_off + off:base + string_off + off + length]\n seen[nid] = raw.decode(\"utf-16-be\" if pid == 3 else \"latin-1\", \"replace\")\n\n print(path.replace(\"\\\\\", \"/\").split(\"/\")[-1])\n for nid in sorted(seen):\n print(f\" {IDS[nid]:12} {seen[nid]}\")\n print()\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"8875f18f-6c82-4434-9edb-ff41f21662c1","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"09e1a413-754f-4c1d-aee6-f32c0665a072","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrSGAFkK3iXsTq6Arc6","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01CwXCypDK7YY8ZXa4sRbrkh","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/fontname.py\" /d/oh-my-posh/website/static/fonts/VictorMono.ttf","description":"Read current website font identity"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":750,"cache_read_input_tokens":274284,"output_tokens":185,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":750,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":185,"cache_read_input_tokens":274284,"cache_creation_input_tokens":750,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":750},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrSA68CX1AnAPm5bbvz","type":"assistant","uuid":"ea0c0665-e360-4f11-9f92-87ebd838a7e1","timestamp":"2026-07-28T04:50:18.751Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ea0c0665-e360-4f11-9f92-87ebd838a7e1","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01CwXCypDK7YY8ZXa4sRbrkh","type":"tool_result","content":"VictorMono.ttf\r\n family VictorMono NF\r\n subfamily Regular\r\n full name VictorMono NF Regular\r\n version Version 1.560;Nerd Fonts 3.4.0\r\n postscript VictorMonoNF-Regular","is_error":false}]},"uuid":"787b4ce2-fa96-4aaf-b239-25acc472f970","timestamp":"2026-07-28T04:50:24.033Z","toolUseResult":{"stdout":"VictorMono.ttf\r\n family VictorMono NF\r\n subfamily Regular\r\n full name VictorMono NF Regular\r\n version Version 1.560;Nerd Fonts 3.4.0\r\n postscript VictorMonoNF-Regular","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"ea0c0665-e360-4f11-9f92-87ebd838a7e1","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"787b4ce2-fa96-4aaf-b239-25acc472f970","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrSyGn83i4gZDn6Phto","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I need to get the VictorMono Nerd Font Mono variant from version 3.4.0 — specifically the Regular weight file from the release archive. Since the user authorized changing the font on the website, I can proceed with downloading it as that's the mechanism needed to make the change.\n\nI'm aware that switching to the Mono variant will affect the entire monospace font across the site, including code blocks, but the tighter icon spacing should actually work better for displaying config snippets with icons. I'll verify the font metrics after downloading to confirm the advance width stays consistent, then update the config if needed.","signature":"CAISogoKhwEIEBgCKkAXgXVyjpo2f4NtYQKsbLYYh4Ng8SkK/un4245um18EsHvR4b4AgpUMZrXRt0tDAd0z0AqO5zO4ZOWG9YR263l2Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDJneK2WO0ZFtSAkmARoMwtD0h77v+wLlCj1yIjAbp6ut9dZ0YuJ8frFHquKE4W5FFU4oAlTItuRyBOetafVeZYwmEBWpgP5wA1V9ecQqxwhkAqcFuJqwNhhaJILnUEclcvmgkANOCg0GvwinSND5OTOjjU4WK6y25vNOUipNzHtKogthaf80lkA7P2uxbSo6LcvSc4+/YC6mvu2Caf/DS64PDwG+IQ5bSdXyPq5frqKvGYqPkX7eUk/vWzlU42hykk7g/pP7KdmsDdrDOUimhmUy3Tg52s//hmrJJVrAoErg1V194g6BDre5ScwQKVRnJxGvJMlHCjjKk5nVOSCgqtpi2vvrE4xRxBxbjS05sKWSK4MlC1DOp9Z8e6Umjxj4FT361han6Ey3no7ZiGYXsjMquEqNN9868PbFO7Ji21rMoBzhHcdeynWc9JYZ59RJHO4U7ACbh2UXrXcxNw/KH5jxN3jfCtDfueHovqnMp5bgejAJNodevZcELpLThVf2lTAOgHCb22WTfZysnalsmDLjdDLg/a7hL6zenAJTLmKKbsA9+/4YKs3BFe7u5WQKMnhfM5kHWBmOgJzfWAKzD+IQxaDdKVu5/fzAegVd5KuRZUGhEbtnfLMA7GheLcQBq7Cakb5+4NT0C9VHnOafXay5ORBLuvoy2fQkFaH3q0Xx4MiRHHaxHC78YJb7SAoYkseSE+N2pF26K5cEXkx9BndAY/geXRFPaEZhFOGLUsDneCpjSlLH/CfV842LB7iii4YbmuRhxU4eFnqz46zGlCVF4G0xMKwsXSFKfOG0TNtQWdATsmhuN7cezIEcHqxiM58HCkDVxKWSAxk+Pgu2M3IfsjBfrSpLQ4swSzFcMLYV6FrswUrDs6WWfYr5GI2V2i3dDAUGWea8NCCzXDWShvn8cuQckeqRakllXFU2g2IL95LnyfHQaBN4bgEvBCNn9hZQiyB7MXK6chbWgNuMiV49nuO9Ry+8HbzFBAZaxtuhggKP4DlIDtTEkc6i6AoIeJMrujyUVr3IVoq9IBwArlh1CSin3F00n30PsgujYrBb70MYho/Rf1oYzOmuQIbEYpgBkottTUbJIjk9nwkDghgzPWLwaq64W6Pry9sHPWfI8PmiMTxqp9XE4P38nvcebIjEKuGXr7lblm14i/KCLUGftKpB8UutAnH/r+ifVsuoOD6kzK8JMvz0md3GeOmumbv6CJ4UYKJYKB6sGxob/nAQrL5QpadcwO82tG7OUEhYAyoCehsHRt1GtLjTEYDsmQeDoyYQDmiJbiRoJkTeMqEdpSDShVghYz0/AO1bArJ3JGxNIsny/2OCu1dgg9yf8lXIREu7bIPpX1Q+Tnuy4JazfFaD7VzLl8YSK+qDMXbU50fU6fxyFVWJw/QkuUhyRwVON8yVCoED6Ptg7srF5IXFtG7tID/suuwOYKqaridTFwntUHKxeVeT+Axb0hfc3x5qNJy7mQMGCX0cEK4gYqjM8lyBKrvK2ML7lzzWAQnYiIilDWYTvVN6F+fyb+W0sFpi4zip3tBBohYLUArETRSdw3zFOQcYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":278,"cache_read_input_tokens":275034,"output_tokens":759,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":278,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":759,"cache_read_input_tokens":275034,"cache_creation_input_tokens":278,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":278},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrSsq72TfVk2rPTBiNs","type":"assistant","uuid":"4bcaf5e9-6319-4be4-a6ca-560b090d8031","timestamp":"2026-07-28T04:50:34.437Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4bcaf5e9-6319-4be4-a6ca-560b090d8031","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrSyGn83i4gZDn6Phto","type":"message","role":"assistant","content":[{"type":"text","text":"Downloading `VictorMono.zip` from the Nerd Fonts v3.4.0 release (~30 MB, same release the current file came from) to extract the Mono-patched face:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":278,"cache_read_input_tokens":275034,"output_tokens":759,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":278,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":759,"cache_read_input_tokens":275034,"cache_creation_input_tokens":278,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":278},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrSsq72TfVk2rPTBiNs","type":"assistant","uuid":"e3bf1923-4ede-46f7-92c7-f5ae399ba5a5","timestamp":"2026-07-28T04:50:34.661Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e3bf1923-4ede-46f7-92c7-f5ae399ba5a5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrSyGn83i4gZDn6Phto","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Beu2rUzh5PtvcCS6D4skYZ","name":"Bash","input":{"command":"curl -sL -o \"$TMPDIR/VictorMono.zip\" https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/VictorMono.zip && ls -la \"$TMPDIR/VictorMono.zip\" && python -c \"\nimport zipfile,sys\nz=zipfile.ZipFile(sys.argv[1])\nfor i in z.infolist():\n if i.filename.endswith('.ttf') and 'Regular' in i.filename: print(i.filename, round(i.file_size/1048576,2),'MB')\n\" \"$TMPDIR/VictorMono.zip\"","description":"Download Victor Mono Nerd Font release"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":278,"cache_read_input_tokens":275034,"output_tokens":759,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":278,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":759,"cache_read_input_tokens":275034,"cache_creation_input_tokens":278,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":278},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrSsq72TfVk2rPTBiNs","type":"assistant","uuid":"43502f26-9321-421d-8c49-21fd66b89498","timestamp":"2026-07-28T04:50:35.739Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"43502f26-9321-421d-8c49-21fd66b89498","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"type":"tool_result","content":"Exit code 1\n-rw-r--r-- 1 jande 197609 86718458 Jul 28 06:50 /tmp/VictorMono.zip\n File \"\", line 1\r\n || goto :error\r\nIndentationError: unexpected indent","is_error":true,"tool_use_id":"toolu_01Beu2rUzh5PtvcCS6D4skYZ"}]},"uuid":"e914190c-8479-4d66-a11e-bcb2cf5ee338","timestamp":"2026-07-28T04:50:44.034Z","toolUseResult":"Error: Exit code 1\n-rw-r--r-- 1 jande 197609 86718458 Jul 28 06:50 /tmp/VictorMono.zip\n File \"\", line 1\r\n || goto :error\r\nIndentationError: unexpected indent","sourceToolAssistantUUID":"43502f26-9321-421d-8c49-21fd66b89498","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e914190c-8479-4d66-a11e-bcb2cf5ee338","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"cdb3a6d1-704b-4b8a-969e-19a07b259439","timestamp":"2026-07-28T04:50:44.048Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cdb3a6d1-704b-4b8a-969e-19a07b259439","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrURBHVc8xqdSZMB3YX","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01UDQ2z2n461ShphEuUkeBbF","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\zipls.py","content":"import sys\nimport zipfile\n\nz = zipfile.ZipFile(sys.argv[1])\nneedle = sys.argv[2] if len(sys.argv) > 2 else \"\"\n\nfor i in z.infolist():\n if needle and needle not in i.filename:\n continue\n print(\"%-46s %6.2f MB\" % (i.filename, i.file_size / 1048576))\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":985,"cache_read_input_tokens":275312,"output_tokens":263,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":985,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":263,"cache_read_input_tokens":275312,"cache_creation_input_tokens":985,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":985},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrUN5WFog89cWcpM4gn","type":"assistant","uuid":"ec16ed98-54c1-43d0-997e-d34c2ec279e6","timestamp":"2026-07-28T04:50:49.562Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ec16ed98-54c1-43d0-997e-d34c2ec279e6","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01UDQ2z2n461ShphEuUkeBbF","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\zipls.py (file state is current in your context — no need to Read it back)"}]},"uuid":"9e2b6057-352c-411e-ab7f-4dad0d1f95f7","timestamp":"2026-07-28T04:50:49.590Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\zipls.py","content":"import sys\nimport zipfile\n\nz = zipfile.ZipFile(sys.argv[1])\nneedle = sys.argv[2] if len(sys.argv) > 2 else \"\"\n\nfor i in z.infolist():\n if needle and needle not in i.filename:\n continue\n print(\"%-46s %6.2f MB\" % (i.filename, i.file_size / 1048576))\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"ec16ed98-54c1-43d0-997e-d34c2ec279e6","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9e2b6057-352c-411e-ab7f-4dad0d1f95f7","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrUtMARBGzad2wExhe4","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01X3gcoKc1vZ2isWgpfMq4ip","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/zipls.py\" \"$TMPDIR/VictorMono.zip\" \"Regular.ttf\"","description":"List Regular faces in the zip"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":364,"cache_read_input_tokens":276297,"output_tokens":187,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":364,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":187,"cache_read_input_tokens":276297,"cache_creation_input_tokens":364,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":364},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrUm66zC8EwfPK9JtMA","type":"assistant","uuid":"0df56ae6-3838-4b62-9648-4785ef97cd48","timestamp":"2026-07-28T04:50:54.445Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0df56ae6-3838-4b62-9648-4785ef97cd48","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01X3gcoKc1vZ2isWgpfMq4ip","type":"tool_result","content":"VictorMonoNerdFontMono-Regular.ttf 2.31 MB\r\nVictorMonoNerdFont-Regular.ttf 2.33 MB\r\nVictorMonoNerdFontPropo-Regular.ttf 2.33 MB","is_error":false}]},"uuid":"6ad718be-f4fc-4d00-bfd4-18a4f8e081e1","timestamp":"2026-07-28T04:50:58.145Z","toolUseResult":{"stdout":"VictorMonoNerdFontMono-Regular.ttf 2.31 MB\r\nVictorMonoNerdFont-Regular.ttf 2.33 MB\r\nVictorMonoNerdFontPropo-Regular.ttf 2.33 MB","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"0df56ae6-3838-4b62-9648-4785ef97cd48","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6ad718be-f4fc-4d00-bfd4-18a4f8e081e1","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrVTXTLXUmW75upBs66","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_013BMueAhQXBTSdsyNQLpe4e","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/extract.py\" \"$TMPDIR/VictorMono.zip\" \"$TMPDIR/fonts\" VictorMonoNerdFontMono-Regular.ttf && python \"$SP/fontname.py\" \"$TMPDIR/fonts/VictorMonoNerdFontMono-Regular.ttf\" && python \"$SP/ink.py\" \"$TMPDIR/fonts/VictorMonoNerdFontMono-Regular.ttf\" \"$SP\" && python \"$SP/metrics.py\" \"$TMPDIR/fonts/VictorMonoNerdFontMono-Regular.ttf\" /d/oh-my-posh/website/static/fonts/VictorMono.ttf","description":"Verify Mono face identity, ink and metrics"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":278,"cache_read_input_tokens":276661,"output_tokens":393,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":278,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":393,"cache_read_input_tokens":276661,"cache_creation_input_tokens":278,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":278},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrVPuAiX9DexbTo64da","type":"assistant","uuid":"b48c82ab-1d91-4be6-9cb0-c36b3a3322fa","timestamp":"2026-07-28T04:51:03.396Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b48c82ab-1d91-4be6-9cb0-c36b3a3322fa","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"type":"tool_result","content":"Exit code 2\nextracted VictorMonoNerdFontMono-Regular.ttf\r\nVictorMonoNerdFontMono-Regular.ttf\r\n family VictorMono NFM\r\n subfamily Regular\r\n full name VictorMono NFM Regular\r\n version Version 1.560;Nerd Fonts 3.4.0\r\n postscript VictorMonoNFM-Regular\r\n\r\nVictorMonoNerdFontMono-Regular.ttf (cell = 600 units)\r\n M ink 51.. 550 = 0.832 cells, right edge at 0.917 cells (advance 1.000)\r\n E0B0 ink -36.. 600 = 1.060 cells, right edge at 1.000 cells (advance 1.000)\r\n E0B6 ink 1.. 636 = 1.058 cells, right edge at 1.060 cells (advance 1.000)\r\n F07B folder ink 0.. 600 = 1.000 cells, right edge at 1.000 cells (advance 1.000)\r\n F00C check ink 0.. 600 = 1.000 cells, right edge at 1.000 cells (advance 1.000)\r\n F120 terminal ink 0.. 601 = 1.002 cells, right edge at 1.002 cells (advance 1.000)\r\n F051F hourglass ink 0.. 600 = 1.000 cells, right edge at 1.000 cells (advance 1.000)\r\npython: can't open file 'C:\\\\Users\\\\jande\\\\AppData\\\\Local\\\\Temp\\\\claude\\\\D--oh-my-posh\\\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\\\scratchpad\\\\metrics.py': [Errno 2] No such file or directory","is_error":true,"tool_use_id":"toolu_013BMueAhQXBTSdsyNQLpe4e"}]},"uuid":"422852df-4be7-478d-ad2d-143d3430ffd2","timestamp":"2026-07-28T04:51:10.573Z","toolUseResult":"Error: Exit code 2\nextracted VictorMonoNerdFontMono-Regular.ttf\r\nVictorMonoNerdFontMono-Regular.ttf\r\n family VictorMono NFM\r\n subfamily Regular\r\n full name VictorMono NFM Regular\r\n version Version 1.560;Nerd Fonts 3.4.0\r\n postscript VictorMonoNFM-Regular\r\n\r\nVictorMonoNerdFontMono-Regular.ttf (cell = 600 units)\r\n M ink 51.. 550 = 0.832 cells, right edge at 0.917 cells (advance 1.000)\r\n E0B0 ink -36.. 600 = 1.060 cells, right edge at 1.000 cells (advance 1.000)\r\n E0B6 ink 1.. 636 = 1.058 cells, right edge at 1.060 cells (advance 1.000)\r\n F07B folder ink 0.. 600 = 1.000 cells, right edge at 1.000 cells (advance 1.000)\r\n F00C check ink 0.. 600 = 1.000 cells, right edge at 1.000 cells (advance 1.000)\r\n F120 terminal ink 0.. 601 = 1.002 cells, right edge at 1.002 cells (advance 1.000)\r\n F051F hourglass ink 0.. 600 = 1.000 cells, right edge at 1.000 cells (advance 1.000)\r\npython: can't open file 'C:\\\\Users\\\\jande\\\\AppData\\\\Local\\\\Temp\\\\claude\\\\D--oh-my-posh\\\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\\\scratchpad\\\\metrics.py': [Errno 2] No such file or directory","sourceToolAssistantUUID":"b48c82ab-1d91-4be6-9cb0-c36b3a3322fa","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"422852df-4be7-478d-ad2d-143d3430ffd2","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrWNZadDzATLmG4NEwy","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The icon font is now exactly 1 cell wide in VictorMono NFM version 3.4.0, and while the internal family name changed from `VictorMono NF` to `VictorMono NFM`, the @font-face declaration and exporter both use \"Victor Mono\" so the website won't be affected. I need to verify the unitsPerEm and hhea metrics to confirm the cell width and line height calculations are correct.\n\nI'm writing a script to check the font metrics (unitsPerEm, 'M' advance width, and hhea ascender/descender/lineGap values) and also verify that NFM has the same glyph coverage as NF — particularly confirming that the 245 or 246 theme glyphs are still covered and U+F8C5 is still the only missing one.","signature":"CAIS/wkKhwEIEBgCKkCzWBL4lC4b5UnYu+vkOU+fuc8ULyFwq0QyHYFklKT7AWzYxpwhw6lO+L2vCOpLdsyZC7TSosgI6OY9Cd3dxnGxMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDIkaND3/wrNpE0U4nxoMY4dmimjWPjA5N/nrIjB/E0AhTPwhLc6EjaaAMahAwPFzGrp8bOfzE67aNy3IL//uEiz9lY+5pMNFHobfq9QqpAj6hfL6eQD0qcM733glwPvZxPPyjJEUQzZjMPTgD8c+un44hIXcWOKwEBUpsTLNkuzIrJXq3gOOkYAjeRkdkYIZcUCemN2BBEtPT9bnLasT+TwrwhiVWCXHxKDqlncjYNTNl2vQmGvW5Z7lkXLm2xiNvu7JYPDhM1qhQsNPaWeC8vG3Ig3DgruN0IwiizsrvvHuEDTEZfTQ6TooDp32Qp9xlN9nO7zStUQ1yhid4lFnDnvM+x0K6NTENZbN/lbKc4tTjBZA1SpU4t61EbxwIemnlAeLKyKyu/p/ooRtbhSDSPUs5c5NR8NGvab3uoBFJLMDQ7GDUg8iTVkcvJm1/U/I3TvyQNCtHvgOxAmNZZqxUqqhASCcm6N7UVTB4KPqgLYTqH8brIs83nvP8wLTrGZ6RX/E+nX4g7xvM1iIHxTHiK7tatxy+hQf9SlTuulau+uEhj9ZyLfDJqpryq74Ri1GlUDJt0UDG3fg2EFkYG4JLyO2QNofsCclvnef/LHlIgBtfch/NNqIR288vb1VZ7DoxXQZbujnr5pEjxTsgQWlQcI+cSGeH9ChlVR5hNDOzEHqpJlpl0KmkCLQKpsqzEYxoZd1eSA6TrIPH1EjkZf6j78QBWQ5oio3yXEx/q/lta6VxbUUCmS+Wqx2pFmWhY6fVmK2K5H8OyQ5WztvszkP0umNCZNpR0bnSmIILY9ACKqGHfla7Ca73MwQZLC6G+5jJqMMccBr01n6bFkiTAA35aYJuk9inV1rmEsCuc7WCJVXnJaf6iSTtEP000gSnO9Wmf4ccbMHRXWkpqTt/1swV0Kf8TYGJHKO0Yxpwtw0vYGbqnzR2CXcF/ybzKcy24eDQSX0TTYzZ0C5aLCpsim1eAywTxNF20h/bx3X7wPql5shn8qiCtaRAG7YxPVDidAtSgHM6FP7yrt9omx7R4kSBhfRztYkycwnu/5UAWfdxGPj2HFhU8Rrf8Ciwzm1FNSA7Fmq7L8cdJcxlGHYsBWQnp926SL1KynqCj3eNw9On5yV78YvVrV3MYooQ4tDDw4hbZhS0IuPXUeYi1NKz39Cb7D58QP/yTLXIF0aMHQZJgCoBbBbHUofpMLFPZ0LTiins4vvpaXyBLc6ZWX4TFoutf+j5gJUdnG9hBJt4nFkQrDwiZ9ztZf5svMLtXALmOEfjj7FK3pVkoiAkO7rVyujrq0fdexZ/ZIbm12bqMW+331GwNcSaMvZ3+XPmKu4HGas3N1P0td3VAAZcAKnjoOK5o/afbu6gCiOxXyZOtLBDxJWtaNKN9silPTZi+G6aHLJH629EUDuNkyf4WnnUVZvMZxNnTLuNe37vuiHCZPBOIN62OFjZ7sE6f3dK/HwSVFo2hmGVtXkcsR2aIINtrxgeaKUHodR/A8UB2mqnujTtMgrLdeKGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":981,"cache_read_input_tokens":276939,"output_tokens":1265,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":981,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1265,"cache_read_input_tokens":276939,"cache_creation_input_tokens":981,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":981},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrWJncrfoQz11mpMc4c","type":"assistant","uuid":"2165651e-918d-4da8-a555-72da8d4f7a36","timestamp":"2026-07-28T04:51:20.270Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2165651e-918d-4da8-a555-72da8d4f7a36","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrWNZadDzATLmG4NEwy","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01EUPz1ShjSbTMaztQ88QZ8j","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\compare_fonts.py","content":"\"\"\"Compare two TTFs: grid metrics plus codepoint coverage.\"\"\"\nimport struct\nimport sys\n\nsys.path.insert(0, sys.argv[-1])\nfrom advances import advances, cmap_lookup, tables # noqa: E402\n\n\ndef describe(path):\n data = open(path, \"rb\").read()\n t = tables(data)\n upem = struct.unpack(\">H\", data[t[\"head\"][0] + 18:t[\"head\"][0] + 20])[0]\n asc, desc, gap = struct.unpack(\">hhh\", data[t[\"hhea\"][0] + 4:t[\"hhea\"][0] + 10])\n cmap = cmap_lookup(data, t)\n _, adv = advances(data, t)\n cell = adv(cmap[0x4D])\n\n return {\n \"name\": path.replace(\"\\\\\", \"/\").split(\"/\")[-1],\n \"upem\": upem,\n \"cell\": cell,\n \"cell_em\": cell / upem,\n \"line_em\": (asc - desc + gap) / upem,\n \"codepoints\": set(cmap),\n }\n\n\na, b = describe(sys.argv[1]), describe(sys.argv[2])\n\nfor f in (a, b):\n print(f\"{f['name']}\")\n print(f\" unitsPerEm {f['upem']}\")\n print(f\" cell width {f['cell']} units = {f['cell_em']:.4f} em\")\n print(f\" line height {f['line_em']:.4f} em (x1.2 = {f['line_em']*1.2:.4f})\")\n print(f\" codepoints {len(f['codepoints'])}\")\n print()\n\nonly_a = a[\"codepoints\"] - b[\"codepoints\"]\nonly_b = b[\"codepoints\"] - a[\"codepoints\"]\n\nprint(f\"only in {a['name']}: {len(only_a)}\")\nprint(f\"only in {b['name']}: {len(only_b)}\")\n\nfor label, s in ((\"A\", only_a), (\"B\", only_b)):\n if s and len(s) <= 20:\n print(f\" {label}: \" + \" \".join(\"U+%04X\" % c for c in sorted(s)))\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":981,"cache_read_input_tokens":276939,"output_tokens":1265,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":981,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1265,"cache_read_input_tokens":276939,"cache_creation_input_tokens":981,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":981},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrWJncrfoQz11mpMc4c","type":"assistant","uuid":"417c0309-aee9-46b3-abbd-836503d51673","timestamp":"2026-07-28T04:51:26.025Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"417c0309-aee9-46b3-abbd-836503d51673","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01EUPz1ShjSbTMaztQ88QZ8j","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\compare_fonts.py (file state is current in your context — no need to Read it back)"}]},"uuid":"6f87d4b0-25d9-4b98-bb8e-ad2dfcccd9d3","timestamp":"2026-07-28T04:51:26.066Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\compare_fonts.py","content":"\"\"\"Compare two TTFs: grid metrics plus codepoint coverage.\"\"\"\nimport struct\nimport sys\n\nsys.path.insert(0, sys.argv[-1])\nfrom advances import advances, cmap_lookup, tables # noqa: E402\n\n\ndef describe(path):\n data = open(path, \"rb\").read()\n t = tables(data)\n upem = struct.unpack(\">H\", data[t[\"head\"][0] + 18:t[\"head\"][0] + 20])[0]\n asc, desc, gap = struct.unpack(\">hhh\", data[t[\"hhea\"][0] + 4:t[\"hhea\"][0] + 10])\n cmap = cmap_lookup(data, t)\n _, adv = advances(data, t)\n cell = adv(cmap[0x4D])\n\n return {\n \"name\": path.replace(\"\\\\\", \"/\").split(\"/\")[-1],\n \"upem\": upem,\n \"cell\": cell,\n \"cell_em\": cell / upem,\n \"line_em\": (asc - desc + gap) / upem,\n \"codepoints\": set(cmap),\n }\n\n\na, b = describe(sys.argv[1]), describe(sys.argv[2])\n\nfor f in (a, b):\n print(f\"{f['name']}\")\n print(f\" unitsPerEm {f['upem']}\")\n print(f\" cell width {f['cell']} units = {f['cell_em']:.4f} em\")\n print(f\" line height {f['line_em']:.4f} em (x1.2 = {f['line_em']*1.2:.4f})\")\n print(f\" codepoints {len(f['codepoints'])}\")\n print()\n\nonly_a = a[\"codepoints\"] - b[\"codepoints\"]\nonly_b = b[\"codepoints\"] - a[\"codepoints\"]\n\nprint(f\"only in {a['name']}: {len(only_a)}\")\nprint(f\"only in {b['name']}: {len(only_b)}\")\n\nfor label, s in ((\"A\", only_a), (\"B\", only_b)):\n if s and len(s) <= 20:\n print(f\" {label}: \" + \" \".join(\"U+%04X\" % c for c in sorted(s)))\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"417c0309-aee9-46b3-abbd-836503d51673","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6f87d4b0-25d9-4b98-bb8e-ad2dfcccd9d3","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrXXA339cNeDNh2oom3","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_012ZnGPcHXGGiN2moX4b2SFQ","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/compare_fonts.py\" /d/oh-my-posh/website/static/fonts/VictorMono.ttf \"$TMPDIR/fonts/VictorMonoNerdFontMono-Regular.ttf\" \"$SP\"","description":"Compare current and Mono font metrics and coverage"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1370,"cache_read_input_tokens":277920,"output_tokens":237,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1370,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":237,"cache_read_input_tokens":277920,"cache_creation_input_tokens":1370,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1370},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrXTp7yVDBz3E2i8eYC","type":"assistant","uuid":"a072b1a0-6f61-4c8b-a482-190983d9e2e6","timestamp":"2026-07-28T04:51:30.117Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a072b1a0-6f61-4c8b-a482-190983d9e2e6","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_012ZnGPcHXGGiN2moX4b2SFQ","type":"tool_result","content":"VictorMono.ttf\r\n unitsPerEm 1100\r\n cell width 600 units = 0.5455 em\r\n line height 1.4091 em (x1.2 = 1.6909)\r\n codepoints 11658\r\n\r\nVictorMonoNerdFontMono-Regular.ttf\r\n unitsPerEm 1100\r\n cell width 600 units = 0.5455 em\r\n line height 1.4091 em (x1.2 = 1.6909)\r\n codepoints 11658\r\n\r\nonly in VictorMono.ttf: 0\r\nonly in VictorMonoNerdFontMono-Regular.ttf: 0","is_error":false}]},"uuid":"db41bc18-e518-4ac0-ac72-f40a3f688b3a","timestamp":"2026-07-28T04:51:33.773Z","toolUseResult":{"stdout":"VictorMono.ttf\r\n unitsPerEm 1100\r\n cell width 600 units = 0.5455 em\r\n line height 1.4091 em (x1.2 = 1.6909)\r\n codepoints 11658\r\n\r\nVictorMonoNerdFontMono-Regular.ttf\r\n unitsPerEm 1100\r\n cell width 600 units = 0.5455 em\r\n line height 1.4091 em (x1.2 = 1.6909)\r\n codepoints 11658\r\n\r\nonly in VictorMono.ttf: 0\r\nonly in VictorMonoNerdFontMono-Regular.ttf: 0","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"a072b1a0-6f61-4c8b-a482-190983d9e2e6","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"db41bc18-e518-4ac0-ac72-f40a3f688b3a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrY53SLjfEav4yCZtq4","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The metrics and coverage are identical, so this is a straightforward swap. I need to replace the Victor Mono font file, update the references in export_themes.mjs and custom.css, then regenerate and verify the gallery.\n\nLet me check the @font-face declaration in custom.css to see what comments are already there and add a note about which variant I'm using.","signature":"CAISkAYKhwEIEBgCKkAOljyiXQ1DfXO+hSOM3FkXcvRtQZE8qpUSssofCifArbqO8bt7dkb3Ypx7xkr9moKSIeGYr1MNAlWqdRg+jkZAMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDFUPzl7PU2eUhG1rTBoM2yGlZDxIFg+XT89LIjAfbOiTuPh97HKHXFB36/AgUTAkQeED5qp8KzXfJh4CFxmxBXe+zYg9sm5S0bUOJK0qtQTJGT5uDqozwpu85PsmzrZ72BRz3Hod/Q7KOkAD0ry50JjjLM2xndkNc5uFJmDzNhU/T04yF2qno14vcx2UN9eckJkSUQF17MREcLTpLA/n4hriMhheZTsq5cY9OoxoqncDwDOezzASdHg+1sHavRzD07qtly9/edfMXOkmfGgVHDjj3zGIYLugMbP3Wn/lHREfyvv3IwtAoNGxUyoBI8wXVZY1HEQCWGQMEx+op1IhQ4lzoAAByGuZxS4Fy7N5JuVLs9H0XLRFCAsGQ0GNzi0CeJpjs+gY43mp1dwuWoqvQbbXzrzaHOyCJYsmA161x9sbC0fb3BncAVRzgTs1tAgDqwWw2LzZJs632fo84hwfNdt9u2vl5Jh4D8h7p6zGnELWH2BGYuM24UAdMMr7TQ/VNxv7IP8WQRupFV7CriGJ7JmK9VA3SCTr4bhGRdIfh+6XzF6vrlRshy3V9uEqxYeEcR5HD7IjT66UrdH4Wn55cqX5mf8rAuvUtsV7pVGLtqP/tMYrDeOw51svuPMXVvtAQ3pdj5v2Wp5hgoEQ2rzFW17JtkMD5hb5R83Qa7GgAcuzZ0TkaGDGv7aQm3S4FFBN4r7+obujjntERNJNeCGWYd8Jn3J2EVUROmzEuW6K5f/Z1tc//HLDqCyb0kp9txEbjDZLnDGsmcU6uVIELKT4YF2O85GHG3zJboZomfeMG6xSqVkzddEdGKHKsnq61MnIF5bZvd5sD5+poIAyqSy/grz0NATEGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":441,"cache_read_input_tokens":279290,"output_tokens":319,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":441,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":319,"cache_read_input_tokens":279290,"cache_creation_input_tokens":441,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":441},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrY1uvJ2KqbDPAp1jMF","type":"assistant","uuid":"0b1b939d-a906-45bf-8338-24fe8fa71587","timestamp":"2026-07-28T04:51:39.080Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0b1b939d-a906-45bf-8338-24fe8fa71587","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrY53SLjfEav4yCZtq4","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01BUbCCBaMPTFqfeqWtcPoC1","name":"Bash","input":{"command":"sed -n '150,180p' website/src/css/custom.css","description":"Read custom.css font block"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":441,"cache_read_input_tokens":279290,"output_tokens":319,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":441,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":319,"cache_read_input_tokens":279290,"cache_creation_input_tokens":441,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":441},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrY1uvJ2KqbDPAp1jMF","type":"assistant","uuid":"21299d26-3c65-4357-9a08-e10036aded51","timestamp":"2026-07-28T04:51:39.117Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"21299d26-3c65-4357-9a08-e10036aded51","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01BUbCCBaMPTFqfeqWtcPoC1","type":"tool_result","content":" border-radius: 10px;\n}\n\n.withings svg {\n width: 150px;\n}\n\n[data-theme=\"light\"] .withings svg path {\n fill: white;\n}\n\n[data-theme=\"dark\"] .withings svg path {\n fill: black;\n}\n\n/* Fonts */\n\n@font-face {\n font-family: \"Victor Mono\";\n src: url('/fonts/VictorMono.ttf') format(\"truetype\");\n font-display: swap;\n}\n\n:root {\n --ifm-font-family-monospace: \"Victor Mono\", \"Symbols Nerd Font Mono\",\n \"Symbols Nerd Font\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n --ifm-font-family-base: \"Inter\";\n --ifm-heading-font-weight: 600;\n --ifm-heading-line-height: 1.2;\n}","is_error":false}]},"uuid":"53f1d3f8-17fe-4b5f-b33f-98cd012ded30","timestamp":"2026-07-28T04:51:40.028Z","toolUseResult":{"stdout":" border-radius: 10px;\n}\n\n.withings svg {\n width: 150px;\n}\n\n[data-theme=\"light\"] .withings svg path {\n fill: white;\n}\n\n[data-theme=\"dark\"] .withings svg path {\n fill: black;\n}\n\n/* Fonts */\n\n@font-face {\n font-family: \"Victor Mono\";\n src: url('/fonts/VictorMono.ttf') format(\"truetype\");\n font-display: swap;\n}\n\n:root {\n --ifm-font-family-monospace: \"Victor Mono\", \"Symbols Nerd Font Mono\",\n \"Symbols Nerd Font\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n --ifm-font-family-base: \"Inter\";\n --ifm-heading-font-weight: 600;\n --ifm-heading-line-height: 1.2;\n}","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"21299d26-3c65-4357-9a08-e10036aded51","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"53f1d3f8-17fe-4b5f-b33f-98cd012ded30","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrYZbQad91MLFE4Exod","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01BUmm4KRbc9c9F3Bbn2NKMN","name":"Bash","input":{"command":"cp \"$TMPDIR/fonts/VictorMonoNerdFontMono-Regular.ttf\" /d/oh-my-posh/website/static/fonts/VictorMono.ttf && ls -la /d/oh-my-posh/website/static/fonts/VictorMono.ttf && SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\" && python \"$SP/fontname.py\" /d/oh-my-posh/website/static/fonts/VictorMono.ttf","description":"Swap in the Mono-patched face"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":615,"cache_read_input_tokens":279731,"output_tokens":289,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":615,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":289,"cache_read_input_tokens":279731,"cache_creation_input_tokens":615,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":615},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrYUd1jraHhEqeb9L9r","type":"assistant","uuid":"19dec37f-6c4a-4118-9fb1-e463f05431be","timestamp":"2026-07-28T04:51:45.069Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"19dec37f-6c4a-4118-9fb1-e463f05431be","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01BUmm4KRbc9c9F3Bbn2NKMN","type":"tool_result","content":"-rw-r--r-- 1 jande 197609 2423696 Jul 28 06:51 /d/oh-my-posh/website/static/fonts/VictorMono.ttf\nVictorMono.ttf\r\n family VictorMono NFM\r\n subfamily Regular\r\n full name VictorMono NFM Regular\r\n version Version 1.560;Nerd Fonts 3.4.0\r\n postscript VictorMonoNFM-Regular","is_error":false}]},"uuid":"b61194dd-c779-4230-9e6f-2dbf2ff9181d","timestamp":"2026-07-28T04:51:50.099Z","toolUseResult":{"stdout":"-rw-r--r-- 1 jande 197609 2423696 Jul 28 06:51 /d/oh-my-posh/website/static/fonts/VictorMono.ttf\nVictorMono.ttf\r\n family VictorMono NFM\r\n subfamily Regular\r\n full name VictorMono NFM Regular\r\n version Version 1.560;Nerd Fonts 3.4.0\r\n postscript VictorMonoNFM-Regular","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"19dec37f-6c4a-4118-9fb1-e463f05431be","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b61194dd-c779-4230-9e6f-2dbf2ff9181d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrZMZ988Qo5nY8V1qc8","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_011hvyvrsQNVQk4pkjrdK3s4","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\website\\src\\css\\custom.css","old_string":"@font-face {\n font-family: \"Victor Mono\";\n src: url('/fonts/VictorMono.ttf') format(\"truetype\");\n font-display: swap;\n}","new_string":"/* VictorMono.ttf is the Mono patched Nerd Font variant (VictorMono NFM), not\n the plain one. Both patch the same 11,658 codepoints at the same advance,\n so nothing about the grid changes - but the plain variant leaves an icon's\n ink at its natural width while still advancing one cell, and Nerd Font\n icons are far wider than a cell: U+F07B (folder) inks 1.693 cells, U+F120\n (terminal) 1.903. That ink runs over whatever follows the icon, which in\n the theme gallery is the space each segment template writes after it. The\n Mono variant scales every icon to exactly one cell. Keep this variant when\n versioning the font up. */\n@font-face {\n font-family: \"Victor Mono\";\n src: url('/fonts/VictorMono.ttf') format(\"truetype\");\n font-display: swap;\n}"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":446,"cache_read_input_tokens":280346,"output_tokens":491,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":446,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":491,"cache_read_input_tokens":280346,"cache_creation_input_tokens":446,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":446},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrZDf8Ubs8Q52YAajWH","type":"assistant","uuid":"0be42bde-41d6-482e-84ec-b6740a881ecf","timestamp":"2026-07-28T04:51:59.848Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0be42bde-41d6-482e-84ec-b6740a881ecf","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_011hvyvrsQNVQk4pkjrdK3s4","type":"tool_result","content":"The file D:\\oh-my-posh\\website\\src\\css\\custom.css has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"7ab7ca3d-756d-4fc0-9df4-73b66cf2ece6","timestamp":"2026-07-28T04:51:59.881Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\website\\src\\css\\custom.css","oldString":"@font-face {\n font-family: \"Victor Mono\";\n src: url('/fonts/VictorMono.ttf') format(\"truetype\");\n font-display: swap;\n}","newString":"/* VictorMono.ttf is the Mono patched Nerd Font variant (VictorMono NFM), not\n the plain one. Both patch the same 11,658 codepoints at the same advance,\n so nothing about the grid changes - but the plain variant leaves an icon's\n ink at its natural width while still advancing one cell, and Nerd Font\n icons are far wider than a cell: U+F07B (folder) inks 1.693 cells, U+F120\n (terminal) 1.903. That ink runs over whatever follows the icon, which in\n the theme gallery is the space each segment template writes after it. The\n Mono variant scales every icon to exactly one cell. Keep this variant when\n versioning the font up. */\n@font-face {\n font-family: \"Victor Mono\";\n src: url('/fonts/VictorMono.ttf') format(\"truetype\");\n font-display: swap;\n}","originalFile":"/* stylelint-disable docusaurus/copyright-header */\n/**\n * Any CSS included here will be global. The classic template\n * bundles Infima by default. Infima is a CSS framework designed to\n * work well for content-centric websites.\n */\n\n/* You can override the default Infima variables here. */\n:root {\n --ifm-color-primary: #1f6fd0;\n --ifm-color-primary-dark: #1c64bb;\n --ifm-color-primary-darker: #1a5eb1;\n --ifm-color-primary-darkest: #164e92;\n --ifm-color-primary-light: #3c83d8;\n --ifm-color-primary-lighter: #4e8fdc;\n --ifm-color-primary-lightest: #76a9e6;\n --ifm-code-font-size: 95%;\n --ifm-pre-background: #232136;\n}\n\nhtml[data-theme=\"dark\"] {\n --ifm-color-primary: #5c9fee;\n --ifm-color-primary-dark: #4a91ea;\n --ifm-color-primary-darker: #3f89e8;\n --ifm-color-primary-darkest: #1f6ed4;\n --ifm-color-primary-light: #6eadf1;\n --ifm-color-primary-lighter: #7ab5f3;\n --ifm-color-primary-lightest: #a3cbf7;\n}\n\n.docusaurus-highlight-code-line {\n background-color: rgb(72, 77, 91);\n display: block;\n margin: 0 calc(-1 * var(--ifm-pre-padding));\n padding: 0 var(--ifm-pre-padding);\n}\n\n.badge {\n display: none !important;\n}\n\n.header-github-link:hover {\n opacity: 0.6;\n}\n\n.header-github-link:before {\n content: \"\";\n width: 24px;\n height: 24px;\n display: flex;\n background: url(\"data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E\")\n center / contain no-repeat;\n}\n\nhtml[data-theme=\"dark\"] .header-github-link:before {\n background: url(\"data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E\")\n center / contain no-repeat;\n}\n\n.header-bluesky-link:hover {\n opacity: 0.6;\n}\n\n.header-bluesky-link:before {\n content: \"\";\n width: 24px;\n height: 24px;\n display: flex;\n background: url(\"data:image/svg+xml,%3Csvg viewBox='0 0 568 501' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%230085ff' d='M123.121 33.664C188.241 82.553 258.281 181.68 284 234.873c25.719-53.192 95.759-152.32 160.879-201.21C491.866-1.611 568-28.906 568 57.947c0 17.346-9.945 145.713-15.778 166.555-20.275 72.453-94.155 90.933-159.875 79.748C507.222 323.8 536.444 388.56 473.333 453.32c-119.86 122.992-172.272-30.859-185.702-70.281-2.462-7.227-3.614-10.608-3.631-7.733-.017-2.875-1.169.506-3.631 7.733-13.43 39.422-65.842 193.273-185.702 70.281-63.111-64.76-33.89-129.52 80.454-149.07-65.72 11.185-139.6-7.295-159.875-79.748C9.945 203.66 0 75.293 0 57.947 0-28.906 76.135-1.611 123.121 33.664z'/%3E%3C/svg%3E\")\n center / contain no-repeat;\n}\n\n.header-discord-link:hover {\n opacity: 0.6;\n}\n\n.header-discord-link:before {\n content: \"\";\n width: 24px;\n height: 24px;\n display: flex;\n background: url(\"data:image/svg+xml,%3Csvg viewBox='0 0 127.14 96.36' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill%3D%22%235865F2%22 d='M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z'/%3E%3C/svg%3E\")\n center / contain no-repeat;\n}\n\nhtml[data-theme=\"dark\"] .header-discord-link:before {\n background: url(\"data:image/svg+xml,%3Csvg viewBox='0 0 127.14 96.36' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill%3D%22%235865F2%22 d='M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z'/%3E%3C/svg%3E\")\n center / contain no-repeat;\n}\n\n/* Admonition */\n\ndiv.theme-admonition.theme-admonition-tip.alert.alert--success {\n background-color: #9ccfd8;\n border-color: #56949f;\n}\n\nhtml[data-theme=\"dark\"] div.theme-admonition.theme-admonition-tip {\n color: #102445;\n}\n\nhtml[data-theme=\"dark\"] div.theme-admonition.theme-admonition-tip svg {\n fill: #102445;\n}\n\nhtml[data-theme=\"dark\"] div.theme-admonition.theme-admonition-tip a {\n color: #102445;\n}\n\niframe.youtube {\n width: 100%;\n margin-bottom: 15px;\n}\n\n@media screen and (max-width: 350px) {\n iframe.youtube {\n height: 200px;\n }\n}\n\n@media screen and (min-width: 350px) {\n iframe.youtube {\n height: 300px;\n }\n}\n\n@media screen and (min-width: 600px) {\n iframe.youtube {\n height: 400px;\n }\n}\n\n.winstore {\n width: 200px;\n border-radius: 8px;\n margin-top: 25px;\n}\n\n[data-theme=\"dark\"] .withings {\n background: white;\n padding: 17px 10px 10px 10px;\n display: inline;\n border-radius: 10px;\n}\n\n[data-theme=\"light\"] .withings {\n background: black;\n padding: 17px 10px 10px 10px;\n display: inline;\n border-radius: 10px;\n}\n\n.withings svg {\n width: 150px;\n}\n\n[data-theme=\"light\"] .withings svg path {\n fill: white;\n}\n\n[data-theme=\"dark\"] .withings svg path {\n fill: black;\n}\n\n/* Fonts */\n\n@font-face {\n font-family: \"Victor Mono\";\n src: url('/fonts/VictorMono.ttf') format(\"truetype\");\n font-display: swap;\n}\n\n:root {\n --ifm-font-family-monospace: \"Victor Mono\", \"Symbols Nerd Font Mono\",\n \"Symbols Nerd Font\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n --ifm-font-family-base: \"Inter\";\n --ifm-heading-font-weight: 600;\n --ifm-heading-line-height: 1.2;\n}\n\nh1,\nh2,\nh3 {\n letter-spacing: -0.02em;\n}\n\nh1,\nh2 {\n text-wrap: balance;\n}\n\ncode {\n font-family: var(--ifm-font-family-monospace);\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0, \"calt\" 0;\n}\n\ncode[class*=\"language-\"],\npre[class*=\"language-\"] {\n font-family: var(--ifm-font-family-monospace);\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0, \"calt\" 0;\n}\n\ntable {\n /* We need this to be able to use border-radius. */\n border-collapse: separate;\n\n /* Add a 1px border spacing for out box-shadow to fit into. Increase this if you want to increase the border width. */\n border-spacing: 1px;\n}\n\ntable th,\ntable td {\n /* Remove any borders from our stylesheet. */\n border: 0;\n\n /* Use the spread value on the box-shadow to set the border width. */\n box-shadow: 0 0 0 1px var(--ifm-table-border-color);\n}\n\ntable th:first-child {\n border-top-left-radius: 6.4px;\n}\n\ntable th:last-child {\n border-top-right-radius: 6.4px;\n}\n\ntable tr:last-child td:first-child {\n border-bottom-left-radius: 6.4px;\n}\n\ntable tr:last-child td:last-child {\n border-bottom-right-radius: 6.4px;\n}\n","structuredPatch":[{"oldStart":164,"oldLines":6,"newStart":164,"newLines":15,"lines":[" "," /* Fonts */"," ","+/* VictorMono.ttf is the Mono patched Nerd Font variant (VictorMono NFM), not","+ the plain one. Both patch the same 11,658 codepoints at the same advance,","+ so nothing about the grid changes - but the plain variant leaves an icon's","+ ink at its natural width while still advancing one cell, and Nerd Font","+ icons are far wider than a cell: U+F07B (folder) inks 1.693 cells, U+F120","+ (terminal) 1.903. That ink runs over whatever follows the icon, which in","+ the theme gallery is the space each segment template writes after it. The","+ Mono variant scales every icon to exactly one cell. Keep this variant when","+ versioning the font up. */"," @font-face {"," font-family: \"Victor Mono\";"," src: url('/fonts/VictorMono.ttf') format(\"truetype\");"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"0be42bde-41d6-482e-84ec-b6740a881ecf","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7ab7ca3d-756d-4fc0-9df4-73b66cf2ece6","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["No preview server is running. Before ending your turn, if this change is observable in the Browser pane (per ), call preview_start and follow ."],"hookName":"PostToolUse:Edit","toolUseID":"toolu_011hvyvrsQNVQk4pkjrdK3s4","hookEvent":"PostToolUse"},"type":"attachment","uuid":"61eddf33-a428-4554-b7ba-745328dfb465","timestamp":"2026-07-28T04:51:59.880Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"61eddf33-a428-4554-b7ba-745328dfb465","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTra44THAoQbA12UFg12","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01GPKyuYnsUNftfKeiijJXmK","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\website\\export_themes.mjs","old_string":" FONT_FAMILY: 'Victor Mono',\n // Victor Mono's own font metrics, read from VictorMonoNerdFont-Regular.ttf: the","new_string":" FONT_FAMILY: 'Victor Mono',\n // Victor Mono's own font metrics, read from VictorMonoNerdFontMono-Regular.ttf\n // (the Mono patched variant static/fonts/VictorMono.ttf ships - see the note\n // above the @font-face in src/css/custom.css for why that variant): the"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":634,"cache_read_input_tokens":280792,"output_tokens":313,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":634,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":313,"cache_read_input_tokens":280792,"cache_creation_input_tokens":634,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":634},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrZxRse6vHdFKtwjGKj","type":"assistant","uuid":"94cea75f-2330-4564-8ed9-d83f10179b3f","timestamp":"2026-07-28T04:52:09.562Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"94cea75f-2330-4564-8ed9-d83f10179b3f","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01GPKyuYnsUNftfKeiijJXmK","type":"tool_result","content":"The file D:\\oh-my-posh\\website\\export_themes.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"9e6a8e12-2508-47f6-8d18-6712f310ef65","timestamp":"2026-07-28T04:52:09.612Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\website\\export_themes.mjs","oldString":" FONT_FAMILY: 'Victor Mono',\n // Victor Mono's own font metrics, read from VictorMonoNerdFont-Regular.ttf: the","newString":" FONT_FAMILY: 'Victor Mono',\n // Victor Mono's own font metrics, read from VictorMonoNerdFontMono-Regular.ttf\n // (the Mono patched variant static/fonts/VictorMono.ttf ships - see the note\n // above the @font-face in src/css/custom.css for why that variant): the","originalFile":null,"structuredPatch":[{"oldStart":27,"oldLines":7,"newStart":27,"newLines":9,"lines":[" // of inlining is that these SVGs pick that font up for free once embedded in a"," // page that serves it, with no embedding/subsetting/data-URI of their own."," FONT_FAMILY: 'Victor Mono',","- // Victor Mono's own font metrics, read from VictorMonoNerdFont-Regular.ttf: the","+ // Victor Mono's own font metrics, read from VictorMonoNerdFontMono-Regular.ttf","+ // (the Mono patched variant static/fonts/VictorMono.ttf ships - see the note","+ // above the @font-face in src/css/custom.css for why that variant): the"," // svg package's --cell-width/--line-height defaults are Hack Nerd Font's ratios"," // (src/svg/svg.go's defaultCellWidth/defaultLineHeight), correct for the CLI's"," // own default font stack but wrong for Victor Mono, which this build actually"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"94cea75f-2330-4564-8ed9-d83f10179b3f","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9e6a8e12-2508-47f6-8d18-6712f310ef65","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTram9juk2WevhuN5rDK","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I need to regenerate the gallery with `npm run themes`, so let me check what that script does in package.json. The manifest gets gitignored and regenerated on build, so if the user isn't seeing changes, they likely need to rebuild. I'm also wondering where the `oh-my-posh` binary comes from when export_themes.mjs runs it — let me trace through how it's being invoked.","signature":"CAIS5wQKhwEIEBgCKkCkzUcpB6/EPmc2b4nw2c5IVLpWHMLAr19djH3KQ1QB8h6FX43tV9np47cASehFKKxxiTUMNn2NLlf/kFPG+j5lMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDO6NYrN7JcGJmMAPkRoMbLDFpHeM8ya+OWfwIjDfVnIU5P2rI6xZ3RVOMCNWaKqsXOJQzcTXbKGLgVRq3V+7HI4NCmgbZNKghMNTCWQqjAMdw9tmImiDW4NiZYfzNj3hoS/J78VTCOhJq5T1qLq/ajzaDiUaX6EsOe0eOYtZkfEFkDHGhKE8IZyDRqb6jGq1ju3P91MXQd6QD74etv/AsEtCJYiIejFlXmxivG9ckunupeMbC6JZcSNMn8IDfzDGcEZvtvlXWnNf6l/q4+lMDZZ8omns3rqmKyu1I69BjtZ6PfhD204MMiwmakmXxtA4rphDEimXlYFFIilZ7RqTAb37yTG9+EOQ7UiLM0WfCyYh3g2KknrM4XoF0FUmqLHAc0RTbi301C6wlS6XYBOuipNjPXtfGLRGVC7lolgvSHVUt1ASsI+KrCnS+c1P1eatoS497of9taS/s8kLtn4PnQaKSVXBjViJu4koM6PGLHiA5XnzmllZ5DBbO5yVgbVCq05Sv1M+z3knoPOyXn72CHoQ2m2Qey4QdFpAesSUWZqFJFXfpsOwbM+EydAAj7VUjTggKOa8d9/TZNfwiIiJ79aa3GBMfQ92c60rsK17Q/kwEnUmVIMO4bH1zrkYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":366,"cache_read_input_tokens":281426,"output_tokens":271,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":366,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":271,"cache_read_input_tokens":281426,"cache_creation_input_tokens":366,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":366},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrafrFWWa2ytreTY4tv","type":"assistant","uuid":"05fd46a1-bc0f-493b-92f3-d27cf07da5c6","timestamp":"2026-07-28T04:52:15.046Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"05fd46a1-bc0f-493b-92f3-d27cf07da5c6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTram9juk2WevhuN5rDK","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_016iGRFaQ8TErYfUif1u8eUa","name":"Bash","input":{"command":"cd /d/oh-my-posh/website && grep -n '\"themes\"\\|\"build\"\\|\"start\"' package.json && sed -n '180,215p' export_themes.mjs","description":"Check npm scripts and binary invocation"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":366,"cache_read_input_tokens":281426,"output_tokens":271,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":366,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":271,"cache_read_input_tokens":281426,"cache_creation_input_tokens":366,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":366},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrafrFWWa2ytreTY4tv","type":"assistant","uuid":"c4f749d2-d91d-451e-b4d4-c31c9df1ac76","timestamp":"2026-07-28T04:52:15.068Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c4f749d2-d91d-451e-b4d4-c31c9df1ac76","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_016iGRFaQ8TErYfUif1u8eUa","type":"tool_result","content":"6: \"start\": \"cross-env NODE_ENV=development docusaurus start --poll 1000\",\n7: \"build\": \"docusaurus build\",\n9: \"themes\": \"node export_themes.mjs\",\n console.log(`Using trending track \"${trending.track}\" by ${trending.artist} for previews`);\n\n return tempPath;\n } catch (error) {\n console.warn(`Unable to build data file with trending track: ${error.message}`);\n return CONFIG.SEGMENT_DATA_FILE;\n }\n}\n\nfunction buildPoshCommand(configPath, outputPath) {\n return [\n 'oh-my-posh config export image',\n `--config=${configPath}`,\n `--output=${outputPath}`,\n `--font-family=\"${CONFIG.FONT_FAMILY}\"`,\n `--cell-width=${CONFIG.CELL_WIDTH}`,\n `--line-height=${CONFIG.LINE_HEIGHT}`,\n // segment_data.json is hand-written on purpose (see buildDataFileWithTrending):\n // its synthetic values are what make the renders look like a plausible\n // machine. oh-my-posh warns that the file carries no recorder marker, which is\n // expected here and handled as a non-fatal stderr line below. --data-derive\n // would not silence it - that flag only forces an already-recorded file to\n // re-derive, so it is a no-op for a hand-written one.\n `--data=${CONFIG.SEGMENT_DATA_FILE}`,\n ].join(' ');\n}\n\n// buildManifestEntry builds the one object plugins/themes hands to\n// per theme: the raw svg markup (inlined verbatim via\n// dangerouslySetInnerHTML, never parsed as MDX/JSX - see the phase plan for\n// why raw SVG can't live in the .mdx source itself), the name to label it\n// with, and the GitHub URL both the heading and the render link to.\nfunction buildManifestEntry(themeName, themeFile, svg) {\n return {\n name: themeName,\n githubUrl: `${CONFIG.GITHUB_BASE_URL}/${themeFile}`,","is_error":false}]},"uuid":"577c956c-2742-47c3-b190-026dafda4820","timestamp":"2026-07-28T04:52:16.076Z","toolUseResult":{"stdout":"6: \"start\": \"cross-env NODE_ENV=development docusaurus start --poll 1000\",\n7: \"build\": \"docusaurus build\",\n9: \"themes\": \"node export_themes.mjs\",\n console.log(`Using trending track \"${trending.track}\" by ${trending.artist} for previews`);\n\n return tempPath;\n } catch (error) {\n console.warn(`Unable to build data file with trending track: ${error.message}`);\n return CONFIG.SEGMENT_DATA_FILE;\n }\n}\n\nfunction buildPoshCommand(configPath, outputPath) {\n return [\n 'oh-my-posh config export image',\n `--config=${configPath}`,\n `--output=${outputPath}`,\n `--font-family=\"${CONFIG.FONT_FAMILY}\"`,\n `--cell-width=${CONFIG.CELL_WIDTH}`,\n `--line-height=${CONFIG.LINE_HEIGHT}`,\n // segment_data.json is hand-written on purpose (see buildDataFileWithTrending):\n // its synthetic values are what make the renders look like a plausible\n // machine. oh-my-posh warns that the file carries no recorder marker, which is\n // expected here and handled as a non-fatal stderr line below. --data-derive\n // would not silence it - that flag only forces an already-recorded file to\n // re-derive, so it is a no-op for a hand-written one.\n `--data=${CONFIG.SEGMENT_DATA_FILE}`,\n ].join(' ');\n}\n\n// buildManifestEntry builds the one object plugins/themes hands to\n// per theme: the raw svg markup (inlined verbatim via\n// dangerouslySetInnerHTML, never parsed as MDX/JSX - see the phase plan for\n// why raw SVG can't live in the .mdx source itself), the name to label it\n// with, and the GitHub URL both the heading and the render link to.\nfunction buildManifestEntry(themeName, themeFile, svg) {\n return {\n name: themeName,\n githubUrl: `${CONFIG.GITHUB_BASE_URL}/${themeFile}`,","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"c4f749d2-d91d-451e-b4d4-c31c9df1ac76","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"577c956c-2742-47c3-b190-026dafda4820","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"20020640-4ad7-4e88-9971-3991bf36dc29","timestamp":"2026-07-28T04:52:16.080Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"20020640-4ad7-4e88-9971-3991bf36dc29","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrbDu52pUocfetZuta9","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The issue is that the shell is calling the installed `oh-my-posh` binary from PATH rather than the freshly built one, so any changes made during development aren't visible. I need to verify whether the binary on PATH is the dev build or the released version, since this could explain why theme regeneration isn't showing any effects—either the manifest wasn't regenerated or the wrong binary is being used.","signature":"CAISvwgKhwEIEBgCKkA5CmPZkbQxCvG0adQzZ6AAxpehkTk6KfER3xoXJcu+Du8yA+iRxvt0WrHRM0CjXGXeZEz21RxwIKpsw5vo3kYZMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDIrZZ7sD2F1JCYAhdhoMUgaAzDRAhI06UTZRIjDS9ORNGLyclNU02B319jSq32cocgOZb73JlDo0ej5RGT0KXmuAl5SzEIUUDtvDIJsq5AbgGHEseRpaUELoaB5Zj1c8jZSKEIsQyIwbgPGsG9G+9czAfNTCW5pu0r5+SGD9WOSlswKTIJtQQibcVKnpewI4wle1drPwVwloOngH0lvwRR5EfZTkQk46/2AdqxAJEtO6l7MqCE2W9qm4SQsiaFjplQxskg8BiCkEwYqZMq0AB9UnpZGZzbnM5/af0P0Xfw8ECXtJz5Z7W1+z/Z9jRyOltW2B+UhYmNZ8HhkRh6tuipCAeQ9UViXeQSVrpw2FBgeGJ91S0c2DPFFhZD/GCJGNYsNN8SIOW9XDNrQUsd2tWuKFvJgKKukAB849t5En4gCSvVoxJITtqKCsb3DcIOOo/xcyHQQX905eqTfhnYQESsodkrdWKE6OLzhMzEcUFi0ZuXyfvErANPaTA0i3Y9GSBXalfg+8eUsOHoQ025keo7Evd6vcU8eR4HTbJeo5cTmZxrFtftcxu7FiQFjNENFUqpnpOzhThRhtDcgUcfYX+WSJl8T5ighDC7MujUip1YnkHmmp2zp9L1dx+yfHUkaXmzeDgwQ19URdMc8QBrZaORuxNW+gCrUHzTr2oIqptLJke6QtJfu8NMJrp1RhRadbO/zh6ihXwd9U3FJ/owcS8nybHrpntHxySW4a/1jW+AJV2h4USwQ+keSlYO0IvFLqud9H+1y9W7KuJxxRJCiwdbXmSlZPuReXBX/qSmf18zFvmoKt/x3gruvO9Pp62j6/fFFqUpqe7QbtyJf7l+MN4o+iXjjG/ExGA+gg3gBpu+b/13Vgu4iyoM6qCcl92/+iZWZ4XJqYQG2Fe59uwx+5wykC1HjgOJQeIGgDVcrDKx1j2uoyVIG2cdE81N6cBaRlq/tGMX4irDEacdfVBErKgRj5Wa/Dlwq36l3b0m/nIIfYIJqZnRlxhkVMRAK5tbc8VE6LOfGuD3ePSLXqdQOUlOwZGxmEjOl7woYCg4wxpy/QOjiaycxUU2GwFJIsH1Gvr8YL2++aX8qz97fR2jIpRSAdTy3tb0bpg6DrMM45cEkAm82EtFJu8ii+nYAdW2Ii2KOi7ApDLluM10/Fwl7QGBktHJywDSu29HyK4BwJOH48UcSqUeP/twN430Z3s2WNY8Z+Icr6ScBhE2L8IcUD5OQY1jpsAYS6ihCJM65iDsqJNTRUGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1141,"cache_read_input_tokens":281792,"output_tokens":488,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1141,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":488,"cache_read_input_tokens":281792,"cache_creation_input_tokens":1141,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1141},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrb8uwFk975jp6mGK9V","type":"assistant","uuid":"d60d875b-56ab-4cf3-b7e6-7365a2bcffc0","timestamp":"2026-07-28T04:52:24.024Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d60d875b-56ab-4cf3-b7e6-7365a2bcffc0","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrbDu52pUocfetZuta9","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01XGHJtPQ13H54yguXDAPn9s","name":"Bash","input":{"command":"which oh-my-posh; oh-my-posh --version 2>/dev/null; echo \"--- dev build ---\"; \"$TMPDIR/omp.exe\" --version; echo \"--- CI ---\"; grep -rn \"themes\\|oh-my-posh\" .github/workflows/website.yml 2>/dev/null | head -20","description":"Compare PATH binary with dev build and check CI"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1141,"cache_read_input_tokens":281792,"output_tokens":488,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1141,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":488,"cache_read_input_tokens":281792,"cache_creation_input_tokens":1141,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1141},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrb8uwFk975jp6mGK9V","type":"assistant","uuid":"478e6281-03a4-4599-9f0a-7841271a11e7","timestamp":"2026-07-28T04:52:24.968Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"478e6281-03a4-4599-9f0a-7841271a11e7","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01XGHJtPQ13H54yguXDAPn9s","type":"tool_result","content":"/c/Users/jande/AppData/Local/Microsoft/WindowsApps/oh-my-posh\n29.35.3-39-g86de20dd\n--- dev build ---\n0.0.0-dev\n--- CI ---","is_error":false}]},"uuid":"abc17f8d-6992-481b-9c7f-992279efe387","timestamp":"2026-07-28T04:52:28.662Z","toolUseResult":{"stdout":"/c/Users/jande/AppData/Local/Microsoft/WindowsApps/oh-my-posh\n29.35.3-39-g86de20dd\n--- dev build ---\n0.0.0-dev\n--- CI ---","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"478e6281-03a4-4599-9f0a-7841271a11e7","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"abc17f8d-6992-481b-9c7f-992279efe387","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrc7uCHvAc9C1vDFK1Z","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The user has a dev build of my branch installed at commit 86de20dd, which includes all my fixes. The issue is likely that the manifest wasn't regenerated since it's gitignored and built separately, or they regenerated it before I made the changes.\n\nLet me regenerate the themes using the npm script, which will fetch the trending track data and rebuild the manifest to verify the changes show up.","signature":"CAIS3QcKhwEIEBgCKkAJBtIwtes98aCpWEBCBre7jVyISfGtVvzvovrl4hScn9wTuigCivyz/cR53ZQa2DHyuDbTzUD288ipZW4fGZMMMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDA96mGBrnzbHe2oBRxoMp56WAzAB60wrsq2DIjDnfFF3OWPrd9NbQXTnuSK1jANIM8ugkD29mfcrAjWBtFszBhSHibVUvCjiUm896iEqggbQijW4SMRAP4YSLmOb1YGJaM5Uq9gPdr4N53A2MnmMA3VuA82kG85riXXOI7V8kUv4axJi75RIvG0857WBAqKhLWLMnAZNV+zXsdVCO41H5danwZZjlteczcFFvMlKLV3K+VDGZ9xc8Gg45PzpJeSNktWZqLttByqCgUZkX+JNLqiKhiII8kWHicCccy0+bwtEwU0OtQrViDYSvk9AGSpFjvp4BFKYPPncI99bn/FjCP5yTX75aRa84lKrueKYvksino2+noLiI8b/MxvNuiCbuzC7O7q+T3snA9cl+Z7Qxnl5E0DjY7+xA/xpx1kRCqsreYU40lZAwEfILl/8wA1+z9+Wtv5N0MTw5J6H3JcjRqxsIfSIid+lBh1xDllyadPiYEW6k1W4/AlS+dgyn/pC0oImargUqRoZgSAdyt6i5urYvDxoEJr3egYnHfB1gJKmNessM9uqG4+IaezEjIVdWZY9BGUzXQDDy0BrX4W1o87dpLimOw0OrErZa/p5SQ5V3RkuhSv07CjYLMYPjZRRpOeZ+yoeBXSEstONLsaBpzPzQnZF0w7Biyxj9rLLaGSCcvhYm1BZd+t4jYL8tCXc9VWtlDRqKTQK0ndsI5qbaSGEYelCEKfQZZizrD3M1Y3T7GxguHIlNciQZA+SBqL4JGGDHDT2cIa1l49lgPsxH+um2Gp+DdUJ7UMk++vYnWsnBUfrI6ioXoV50b0Ykb+7VF2c2jTOPS7cfnvbbW5EODvUkby+WkyP+PVLZ87eYWmOQM7Ulu8o1GZZi4yW6EEbQ55MdkbZzOhSGsJ8Fud2OOPUUTMbfqrp3n/fr1TahhTcnZ6XxgPhchfukIWntLaLQMogeSost/VNMp3zjAjR+kNpYUtsr8J1tQs4hRJltUHgLHvz2jf8k02fwbUdZjr8H1zIj02zpitlIy/+yTC8ybjIPvoeQW9mTuWMIRlTtuh88W8cm6OINPpNIgH6q1s7+AGSe2zJ2JcXr+0Lo9eh0oNbRn5A/d0oGsfpZDv2wBeTKBgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":567,"cache_read_input_tokens":282933,"output_tokens":408,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":567,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":408,"cache_read_input_tokens":282933,"cache_creation_input_tokens":567,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":567},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrc4hTWERM3bTfQPSrX","type":"assistant","uuid":"0b935be0-aec9-4ec2-b4b0-955d69d68311","timestamp":"2026-07-28T04:52:36.227Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0b935be0-aec9-4ec2-b4b0-955d69d68311","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrc7uCHvAc9C1vDFK1Z","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_015wXpCejMeTzqUTZrMjuNNE","name":"Bash","input":{"command":"npm run themes 2>&1 | tail -15","description":"Regenerate the theme gallery manifest","timeout":300000},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":567,"cache_read_input_tokens":282933,"output_tokens":408,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":567,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":408,"cache_read_input_tokens":282933,"cache_creation_input_tokens":567,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":567},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrc4hTWERM3bTfQPSrX","type":"assistant","uuid":"3c45bf64-6ba0-4b09-a0e1-df2bd0be6bd5","timestamp":"2026-07-28T04:52:36.233Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3c45bf64-6ba0-4b09-a0e1-df2bd0be6bd5","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_015wXpCejMeTzqUTZrMjuNNE","type":"tool_result","content":"unicorn.omp.json: warning: C:\\Users\\jande\\AppData\\Local\\Temp\\segment_data.34648.1785214360459.json has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\nExported unicorn.omp.json\nvelvet.omp.json: warning: C:\\Users\\jande\\AppData\\Local\\Temp\\segment_data.34648.1785214360459.json has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\nExported velvet.omp.json\nwholespace.omp.json: warning: C:\\Users\\jande\\AppData\\Local\\Temp\\segment_data.34648.1785214360459.json has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\nExported wholespace.omp.json\nwopian.omp.json: warning: C:\\Users\\jande\\AppData\\Local\\Temp\\segment_data.34648.1785214360459.json has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\nxtoys.omp.json: warning: C:\\Users\\jande\\AppData\\Local\\Temp\\segment_data.34648.1785214360459.json has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\nExported xtoys.omp.json\nExported wopian.omp.json\nys.omp.json: warning: C:\\Users\\jande\\AppData\\Local\\Temp\\segment_data.34648.1785214360459.json has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\nExported ys.omp.json\nzash.omp.json: warning: C:\\Users\\jande\\AppData\\Local\\Temp\\segment_data.34648.1785214360459.json has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\nExported zash.omp.json\nSuccessfully exported 124 themes to D:\\oh-my-posh\\website\\generated\\themes.json","is_error":false}]},"uuid":"e9b6eb3f-301d-4217-8aef-168762faa152","timestamp":"2026-07-28T04:52:43.077Z","toolUseResult":{"stdout":"unicorn.omp.json: warning: C:\\Users\\jande\\AppData\\Local\\Temp\\segment_data.34648.1785214360459.json has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\nExported unicorn.omp.json\nvelvet.omp.json: warning: C:\\Users\\jande\\AppData\\Local\\Temp\\segment_data.34648.1785214360459.json has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\nExported velvet.omp.json\nwholespace.omp.json: warning: C:\\Users\\jande\\AppData\\Local\\Temp\\segment_data.34648.1785214360459.json has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\nExported wholespace.omp.json\nwopian.omp.json: warning: C:\\Users\\jande\\AppData\\Local\\Temp\\segment_data.34648.1785214360459.json has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\nxtoys.omp.json: warning: C:\\Users\\jande\\AppData\\Local\\Temp\\segment_data.34648.1785214360459.json has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\nExported xtoys.omp.json\nExported wopian.omp.json\nys.omp.json: warning: C:\\Users\\jande\\AppData\\Local\\Temp\\segment_data.34648.1785214360459.json has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\nExported ys.omp.json\nzash.omp.json: warning: C:\\Users\\jande\\AppData\\Local\\Temp\\segment_data.34648.1785214360459.json has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\nExported zash.omp.json\nSuccessfully exported 124 themes to D:\\oh-my-posh\\website\\generated\\themes.json","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"3c45bf64-6ba0-4b09-a0e1-df2bd0be6bd5","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e9b6eb3f-301d-4217-8aef-168762faa152","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrdDGBJv4Ux3pmUte2a","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01SmZfks5A3dx6vWqwud3bto","name":"Bash","input":{"command":"python -c \"\nimport json,sys\nd=json.load(open('generated/themes.json',encoding='utf-8'))\nt=d['themes'] if isinstance(d,dict) and 'themes' in d else d\nprint(type(d), len(t))\ne=[x for x in t if x['name']=='glowsticks'][0]\ns=e['svg']\nprint('xml:space count', s.count('xml:space'))\nprint('white-space on root', 'white-space' in s[:400])\n\" 2>&1 | tail -5","description":"Verify regenerated manifest carries the fixes"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1342,"cache_read_input_tokens":283500,"output_tokens":261,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1342,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":261,"cache_read_input_tokens":283500,"cache_creation_input_tokens":1342,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1342},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrd8LkviCVZSmycdyv2","type":"assistant","uuid":"19e38c90-da05-4af7-bb94-8eb88af0806e","timestamp":"2026-07-28T04:52:47.983Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"19e38c90-da05-4af7-bb94-8eb88af0806e","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01SmZfks5A3dx6vWqwud3bto","type":"tool_result","content":" File \"\", line 1\r\n || goto :error\r\nIndentationError: unexpected indent","is_error":false}]},"uuid":"35a6dd3f-116f-4b8d-8fb2-cd32f40d4df9","timestamp":"2026-07-28T04:52:51.297Z","toolUseResult":{"stdout":" File \"\", line 1\r\n || goto :error\r\nIndentationError: unexpected indent","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"19e38c90-da05-4af7-bb94-8eb88af0806e","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"35a6dd3f-116f-4b8d-8fb2-cd32f40d4df9","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrdnvVJYoo4vZ5Kj4b5","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01J7mRTRqFiqNCjAU49V6yZX","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\check_manifest.py","content":"import io\nimport json\nimport sys\n\nd = json.load(io.open(sys.argv[1], encoding=\"utf-8\"))\nthemes = d[\"themes\"] if isinstance(d, dict) and \"themes\" in d else d\nby_name = {t[\"name\"]: t for t in themes}\n\nprint(f\"{len(themes)} themes in manifest\")\n\nfor name in sys.argv[2:]:\n svg = by_name[name][\"svg\"]\n root = svg[:svg.index(\">\") + 1]\n print(f\"\\n{name}\")\n print(f\" elements {svg.count('_')}\")\n idx = svg.find('>_')\n tail = svg[idx:idx + 400].split(\"\\n\")[1:3] if idx >= 0 else []\n for line in tail:\n print(f\" next: {line[:100]}\")\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":283,"cache_read_input_tokens":284842,"output_tokens":500,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":283,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":500,"cache_read_input_tokens":284842,"cache_creation_input_tokens":283,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":283},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrdjVN6B34isbTj9M5k","type":"assistant","uuid":"d891e50b-4fd7-4f6c-b514-2301fe0ffbbf","timestamp":"2026-07-28T04:52:59.377Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d891e50b-4fd7-4f6c-b514-2301fe0ffbbf","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01J7mRTRqFiqNCjAU49V6yZX","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\check_manifest.py (file state is current in your context — no need to Read it back)"}]},"uuid":"01ca52a3-e98d-4df9-95b1-ff5c60015a27","timestamp":"2026-07-28T04:52:59.400Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\check_manifest.py","content":"import io\nimport json\nimport sys\n\nd = json.load(io.open(sys.argv[1], encoding=\"utf-8\"))\nthemes = d[\"themes\"] if isinstance(d, dict) and \"themes\" in d else d\nby_name = {t[\"name\"]: t for t in themes}\n\nprint(f\"{len(themes)} themes in manifest\")\n\nfor name in sys.argv[2:]:\n svg = by_name[name][\"svg\"]\n root = svg[:svg.index(\">\") + 1]\n print(f\"\\n{name}\")\n print(f\" elements {svg.count('_')}\")\n idx = svg.find('>_')\n tail = svg[idx:idx + 400].split(\"\\n\")[1:3] if idx >= 0 else []\n for line in tail:\n print(f\" next: {line[:100]}\")\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"d891e50b-4fd7-4f6c-b514-2301fe0ffbbf","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"01ca52a3-e98d-4df9-95b1-ff5c60015a27","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTreTopQeXTXv2jB9G9E","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01L7Ef8fPuxi5dWrDBiwmhUk","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/check_manifest.py\" generated/themes.json glowsticks cert jandedobbeleer","description":"Inspect regenerated manifest"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":604,"cache_read_input_tokens":285125,"output_tokens":185,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":604,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":185,"cache_read_input_tokens":285125,"cache_creation_input_tokens":604,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":604},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTreLeTWtgtvUt3sX3qL","type":"assistant","uuid":"a6a4f056-0671-4c7b-8ca6-2b5e75880dc2","timestamp":"2026-07-28T04:53:04.265Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a6a4f056-0671-4c7b-8ca6-2b5e75880dc2","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01L7Ef8fPuxi5dWrDBiwmhUk","type":"tool_result","content":"124 themes in manifest\r\n\r\nglowsticks\r\n elements 17\r\n xml:space=preserve 17\r\n white-space on root False\r\n cursor runs 1\r\n next: elements 14\r\n xml:space=preserve 14\r\n white-space on root False\r\n cursor runs 1\r\n next: \r\n\r\njandedobbeleer\r\n elements 35\r\n xml:space=preserve 35\r\n white-space on root False\r\n cursor runs 1\r\n next: ","is_error":false}]},"uuid":"1ab19f57-3397-4dd0-8d27-ca136ec530ea","timestamp":"2026-07-28T04:53:07.967Z","toolUseResult":{"stdout":"124 themes in manifest\r\n\r\nglowsticks\r\n elements 17\r\n xml:space=preserve 17\r\n white-space on root False\r\n cursor runs 1\r\n next: elements 14\r\n xml:space=preserve 14\r\n white-space on root False\r\n cursor runs 1\r\n next: \r\n\r\njandedobbeleer\r\n elements 35\r\n xml:space=preserve 35\r\n white-space on root False\r\n cursor runs 1\r\n next: ","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"a6a4f056-0671-4c7b-8ca6-2b5e75880dc2","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1ab19f57-3397-4dd0-8d27-ca136ec530ea","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrf1YnZwFfTy7KT9NMz","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The manifest should have all the fixes in place. Now I need to verify this visually in a browser with the new font since that's where the real test happens with the gallery rendering. Let me start up the dev server and check the themes page, though I'll need to look into the launch.json configuration since the earlier preview attempt timed out on a file URL.","signature":"CAISsAUKhwEIEBgCKkDu5kary0mbLLA17Et+BYQvCLaG8zpk5DVlqeJ7p6yIguR+ctSjN+sLnyfHesN9Idy/kAwMAl8sDhuUUmemtEbhMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDAUH2l3YAphbYBdSQRoMASefmzKc9FSv9EbPIjAilqOh2Fn4+HdaMMn0Zz6NmfJpWJSrGGfxhVII90kBGpmnTmeLG9ShGa4cg5X6Ghoq1QMPnZYWj6sz8hzV/LQGUx5s0IzQ4BS0ckfk5rLC3MtLQPUL8QVUiBaRv2pNLl4IFAqLONeRAuP7Ze8xCULNiKTO9jpfn0SDgSrCrup0wnw3oHhMfU0hURpJmFsd0R/dczm/dGNaG1LilUfIN9T4Hrzd15iby1/vwl7qgzcn7UF38KR7mBl64RReUp9ByW1wAJKQDdWCkslW1gCQ1DLDHJO90IALunFMY9gJ3PIZt+GnMXwSScfIh4x4dBEhQfzgCpd+ukCHrEtdxuaoMfCfR9aYjL/2qAnFtjlpKLhrKFxpupAgLMQmidr21FQvBMUfFIFyCvIUlPrAt2jauAwgYmPIjHmBhrCrnTueRiZHM5CzkGYV2buU+tonDV57onCyRtMbIrZumP5cscJb4kDWl4beAdC9Lrs+eL+6+NjCd5gT9qVmLma/yqA6PDCItL5LaPQssZDNDMgjywIA/ZyUwvEK9GjWqoIV006plcXrWt1IXf6p2S6jX+EULYQ1btHUGldPNc68LIjrLVYEBAS1/B5t526eHeH+f1Y7vxiQiRrqFPk4VXp5W+vBHBDL8tk1Sg1Bz+AObDrZtQVwmsywzbNnHxbp54m3YCO5V7AI1T5nN6HgSkoMGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":603,"cache_read_input_tokens":285729,"output_tokens":259,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":603,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":259,"cache_read_input_tokens":285729,"cache_creation_input_tokens":603,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":603},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrexhsty1CdJENpZCoA","type":"assistant","uuid":"00180044-a8c9-4fdb-ab89-ebc311916ba0","timestamp":"2026-07-28T04:53:13.049Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"00180044-a8c9-4fdb-ab89-ebc311916ba0","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrf1YnZwFfTy7KT9NMz","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01BG817mAxujnAeM8TvotDMi","name":"Bash","input":{"command":"cat /d/oh-my-posh/.claude/launch.json 2>/dev/null || echo \"no launch.json\"","description":"Check launch config"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":603,"cache_read_input_tokens":285729,"output_tokens":259,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":603,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":259,"cache_read_input_tokens":285729,"cache_creation_input_tokens":603,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":603},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrexhsty1CdJENpZCoA","type":"assistant","uuid":"fc2ede41-091e-4d43-9db7-95f54f867e1f","timestamp":"2026-07-28T04:53:13.079Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fc2ede41-091e-4d43-9db7-95f54f867e1f","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01BG817mAxujnAeM8TvotDMi","type":"tool_result","content":"{\n \"version\": \"0.0.1\",\n \"configurations\": [\n {\n \"name\": \"themes-preview\",\n \"runtimeExecutable\": \"npm\",\n \"runtimeArgs\": [\"--prefix\", \"website\", \"run\", \"serve\", \"--\", \"--port\", \"3010\"],\n \"port\": 3010\n }\n ]\n}","is_error":false}]},"uuid":"ef02c514-e4d9-4b00-bdbe-61c0c8915f6f","timestamp":"2026-07-28T04:53:13.996Z","toolUseResult":{"stdout":"{\n \"version\": \"0.0.1\",\n \"configurations\": [\n {\n \"name\": \"themes-preview\",\n \"runtimeExecutable\": \"npm\",\n \"runtimeArgs\": [\"--prefix\", \"website\", \"run\", \"serve\", \"--\", \"--port\", \"3010\"],\n \"port\": 3010\n }\n ]\n}","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"fc2ede41-091e-4d43-9db7-95f54f867e1f","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ef02c514-e4d9-4b00-bdbe-61c0c8915f6f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrfUkQHH28jCExYwnWS","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I could build the whole Docusaurus site to test the font swap, but that's slow. Instead, I'll use my existing shot.mjs harness to quickly render the gallery SVG with the new VictorMono font — that'll prove the font works without waiting for a full build. I'll write a small one-off script that takes the manifest SVG and the website font, then rasterizes it.\n\nActually, the cleanest approach is to add command-line flags to shot.mjs itself — `--font`, `--family`, `--cell-width`, `--line-height` — so I can swap in the website's metrics. Even simpler: just add a `--website` flag that switches everything to the website's font and metrics in one go.","signature":"CAIS+wwKhwEIEBgCKkClXpAsTg+6o0GTqPgl7tDCYEkAtxmfQUmHBGNMZ4nm5YU9cIfKe3Ld4n8Qt+2f6wNjRsOJzbKORjPcrKtykNruMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDJsFN1E+DN7SXfyC9BoMUjCzV8UcOyNszyW0IjDMkgLt5zDtf7YpeFfuNQ8ehA3fFKJV1eRqmWE9lyg7MPsHjZsZyFH5anRyhJJyRJ0qoAuazTJtNNNTXA/O1YSPDSibatTgfBKMbKNBtOYewk9skMODe5MeAUWvHrdh1pmtIK1kgpbBaHFJaiC5NEhsMBJKRNQXVCgr6cduGh1YKN09/Dtbe/Rb3CQGJQYjJ1UMzdWIuy8g1r3+hiDoiPRqNNzqwyJ+n1RDo8CiNkL8XOHGC8VzeShjnNcE78IOukgYvFMvno/u07VokE76SMC8ICxfn5suxSBZdIFZDNYykN6JDLiQ9IB9cbRgpEpiY5+gU15qFaZrxhb9GceTr1J9g4D4mQS9aLdIz3wUKIs943NFayUmsvEw0pwgfrwlql10epAvilUZ2mxLIev43aWgXt+jSzFYaa/yNEHs2/Wgkw5regAvVz8HEc27BLuu9c/LdRBNgXGaN2+ApTQA15VjKujKrV1XHZfAXyY26p0xx6Eid1eJM0dHsoAbdkdUjzmpoqMSqPFqUJPHn+AWB1jzlIEfvH9ml62Zi9sok6fE+l8Lww3p9HXNXQbTeAcwlrBuPL46m1NGfIU0K6gAMSZYhtgz2UD58Y5K12dMWGvsc2eK6uJYQevfHaROjYpm844Qztcv3HWOa+/08Y5rMby/JrHw65Q5TorExyyhK+YnDW7+FpPwKI+Ul9cSDPishDYFcTJOsamprtN64Fdbm5QDiAnOKNSs9sNckefI/7O32W981tUdTnI4Eg0XPlx66jrHyc8vPhv9guL0g9QNl0tHMH3/J0Zqhez6u9x49qSrVaAuPyo/8lEhwt2h3AnKMwfJFBgdq60zMX3TwuipxMuoqdwAbX338v7xnvZWtY+Hrg6caIMLQ+90zvw0KhP9W+ZpCxdk5vAX5z+70/m90GIglMxpX3d+46Wbv8OM9iAYzscsML7xap88a7lGlme2qu9s5H0x/qQ/fc35E6vPoiPAS8HifjxsZws5+WSAGaOcAE98JuGuCj5Sg5SZXf8MWj167TW+1GZQyyGXiecypiqRCiPpMGUvgOgiHkAHkQ5BReUzf0QtoTKYUG8UTzR2MbcZVhc6N9LAuVT8ZgGFMCGPIsdOC8yX4/tTo0ZKd5oZU1qPhfxmEtuffYUw5Yy3R+I2fPYxqe84gEthJKUJrXXuNYXYrw+5F9SCc9sVpKnJA26oUUaZ5kTgN4oeRtgg0ESWTJfFhOmUa3jWAfW9XVC4TENKAHLFDq7l5OSyv6Lg+sbRCNa/sfO22akrTfWA/iWOdUvl4ZdeKlPs1mXsWa2t9hLBEeAIKrcDcd5gCJv3yrxaMDJX8L+vFgdAGyzGC+s1522B1cOhQvFnsOwlElNUL8e/GifFEz2pwtayYmrQsycn02JdxRMWQMPOxd+7Md7ZAih7tXpRqeQTtA2ILUvdfJSbBcR2hr0exoMOMZ/KQBe67wWlSqTEGgFpRv0jCocyzS7sLREtO87CzU/gY8hHiGndTMF34x/JKl2yW92g5Y/lBC+6QVclNG+D1H7sTYHMe4EaEb2jFA5lCBhehvxRFI3GiZWaG6seSmcQBr7pGoCqQmse0XGyuRPs6qJepC/xHljlwZs7rrh9TPJP3GmFnAGUzfq6N/0xN3xIewmlc0zYmhbWk6nVHZ+B+mMjWhjJBYwWH2c0atdWN+0XS8HyOBUUiaLgmVh64Kx0MZYXmnK+V9CdHQcLnrLyeDUs/VCmo5BqMC271ts5GBf1IYyaclz5LknmAQafxnVxtRPD9YxHcPHMTnA43l9ETMjaJ4GMPoNHDChfjAZEhZe+KwurEV1LcX5Glq/wjMZfhPVVbwdNbmpyI34dyywk0gVDf87Nsj1uHXXYtd3c9SeYo3T14IQzJGoDOXGBFvGF1pBhg+XXc5Rn1A1Od37/uVoSiqossA3keDrgk3f5NZlmvtRzknnjMC7y4HuJnmTGOhu2Z796kljVyX5l6CE6xY3e3CZeSBoYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":373,"cache_read_input_tokens":286332,"output_tokens":769,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":373,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":769,"cache_read_input_tokens":286332,"cache_creation_input_tokens":373,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":373},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrfQKkSKF88D4MP3QVE","type":"assistant","uuid":"5874c7e1-d8bb-4441-9957-eb17409b63ad","timestamp":"2026-07-28T04:53:25.052Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5874c7e1-d8bb-4441-9957-eb17409b63ad","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrfUkQHH28jCExYwnWS","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01EmksJi6yuTGc8gsHuu4i9L","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","old_string":"// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks","new_string":"// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks\n// node shot.mjs --website glowsticks as the theme gallery renders it"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":373,"cache_read_input_tokens":286332,"output_tokens":769,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":373,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":769,"cache_read_input_tokens":286332,"cache_creation_input_tokens":373,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":373},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrfQKkSKF88D4MP3QVE","type":"assistant","uuid":"e0437c26-3641-4a4d-bde0-63c7c3a8d86c","timestamp":"2026-07-28T04:53:25.857Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e0437c26-3641-4a4d-bde0-63c7c3a8d86c","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01EmksJi6yuTGc8gsHuu4i9L","type":"tool_result","content":"The file D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"d16a71a9-4bca-4466-8719-dbeb1b7831f1","timestamp":"2026-07-28T04:53:25.874Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","oldString":"// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks","newString":"// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks\n// node shot.mjs --website glowsticks as the theme gallery renders it","originalFile":"#!/usr/bin/env node\n// Side-by-side renderer for eyeballing the SVG exporter against the retired\n// PNG renderer. Unlike compare.mjs this does NOT force the SVG into the PNG's\n// box (no preserveAspectRatio override, no rescale): each side is rasterized\n// at its own natural geometry, so layout differences — whitespace collapse,\n// baseline drift, misplaced decorations — stay visible instead of being\n// squeezed away by the fit.\n//\n// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks\n//\n// Output lands in ./out/: .svg, .raster.png, and — unless\n// --svg-only — .png from the retired renderer.\nimport { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { chromium } from \"playwright\";\n\nimport { extractZipEntry } from \"./zip.mjs\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");\nconst THEMES_DIR = path.join(REPO_ROOT, \"themes\");\nconst DATA_FIXTURE = path.join(REPO_ROOT, \"src\", \"prompt\", \"testdata\", \"fixtures\", \"prompt.data.json\");\n\nconst BIN_DIR = path.join(__dirname, \"bin\");\nconst OUT_DIR = path.join(__dirname, \"out\");\n// The Mono patched variant, which is what the exporter's default font stack\n// asks for first and what a terminal actually runs: it scales Nerd Font icon\n// ink down to one cell, where the plain variant lets it bleed up to ~1.9\n// cells over the next character. The retired PNG renderer loaded the plain\n// variant and compensated with a hand-maintained double-width table, so its\n// reference renders show icons in a two-cell box; that is the one place the\n// two renderers are expected to differ.\nconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";\n\nconst EXE = process.platform === \"win32\" ? \".exe\" : \"\";\nconst OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);\nconst NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);\n\n// The exporter renders at a 16px em; the retired PNG renderer's reference em\n// was 48px. Rasterizing at 3x device scale puts both at the same resolution\n// without touching the SVG's own geometry.\nconst DEVICE_SCALE_FACTOR = 3;\n\n// Pulls the Mono face out of the Hack.zip the retired PNG renderer already\n// caches (see cli/image/image.go's loadDefaultFonts), or downloads it once.\n// Same source and version as compare.mjs' own ensureFont, different entry.\nasync function ensureFont() {\n if (fs.existsSync(FONT_PATH)) {\n return;\n }\n\n fs.mkdirSync(path.dirname(FONT_PATH), { recursive: true });\n\n const home = process.env.USERPROFILE || process.env.HOME || \"\";\n const caches = [\n process.env.OMP_CACHE_DIR,\n process.platform === \"win32\" ? path.join(process.env.LOCALAPPDATA ?? \"\", \"oh-my-posh\") : null,\n process.env.XDG_CACHE_HOME ? path.join(process.env.XDG_CACHE_HOME, \"oh-my-posh\") : null,\n path.join(home, \".cache\", \"oh-my-posh\"),\n ].filter(Boolean);\n\n const entry = path.basename(FONT_PATH);\n\n for (const dir of caches) {\n const zipPath = path.join(dir, \"Hack.zip\");\n\n if (fs.existsSync(zipPath)) {\n fs.writeFileSync(FONT_PATH, extractZipEntry(fs.readFileSync(zipPath), entry));\n return;\n }\n }\n\n const url = \"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip\";\n const res = await fetch(url);\n\n if (!res.ok) {\n throw new Error(`failed to download ${url}: ${res.status} ${res.statusText}`);\n }\n\n fs.writeFileSync(FONT_PATH, extractZipEntry(Buffer.from(await res.arrayBuffer()), entry));\n}\n\nfunction themeConfig(theme) {\n for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n const candidate = path.join(THEMES_DIR, theme + ext);\n\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(`theme not found: ${theme}`);\n}\n\nfunction run(cmd, args, cwd) {\n const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n\n if (res.error) {\n throw res.error;\n }\n\n if (res.status !== 0) {\n throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n }\n}\n\n// Reads width/height off the root element so the page can give it a box\n// of exactly that size — the SVG then renders 1:1 with no scaling at all.\nfunction svgSize(markup) {\n const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n\n if (!width || !height) {\n throw new Error(\"could not read width/height off the root \");\n }\n\n return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n}\n\nasync function rasterize(browser, markup, fontBase64) {\n const { width, height } = svgSize(markup);\n\n const context = await browser.newContext({\n viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n deviceScaleFactor: DEVICE_SCALE_FACTOR,\n });\n\n const page = await context.newPage();\n\n const html = `\n\n\n\n\n\n${markup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForTimeout(50);\n\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const svgOnly = args.includes(\"--svg-only\");\n const themes = args.filter((a) => !a.startsWith(\"--\"));\n\n if (themes.length === 0) {\n throw new Error(\"pass at least one theme name\");\n }\n\n fs.mkdirSync(OUT_DIR, { recursive: true });\n\n run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n await ensureFont();\n\n const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");\n const browser = await chromium.launch();\n\n try {\n for (const theme of themes) {\n const config = themeConfig(theme);\n const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n\n run(NEW_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", FONT_FAMILY,\n \"-o\", svgPath,\n ]);\n\n const markup = fs.readFileSync(svgPath, \"utf8\");\n fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64));\n\n if (!svgOnly && fs.existsSync(OLD_BIN)) {\n run(OLD_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--format\", \"png\",\n \"-o\", path.join(OUT_DIR, `${theme}.png`),\n ]);\n }\n\n console.log(`${theme}: ${svgPath}`);\n }\n } finally {\n await browser.close();\n }\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exitCode = 1;\n});\n","structuredPatch":[{"oldStart":8,"oldLines":6,"newStart":8,"newLines":7,"lines":[" //"," // node shot.mjs glowsticks cobalt2"," // node shot.mjs --svg-only glowsticks","+// node shot.mjs --website glowsticks as the theme gallery renders it"," //"," // Output lands in ./out/: .svg, .raster.png, and — unless"," // --svg-only — .png from the retired renderer."]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"e0437c26-3641-4a4d-bde0-63c7c3a8d86c","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d16a71a9-4bca-4466-8719-dbeb1b7831f1","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrgMXbu3BnWrYXVsi9P","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_015exywRcqk1j73U6mqZZExR","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","old_string":"const FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";","new_string":"const FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";\n\n// --website renders exactly what the theme gallery ships: the font the site\n// serves, at the metrics website/export_themes.mjs passes. Those metrics are\n// Victor Mono's own (cell 600/1100 em, hhea line height 1.4091 em x 1.2), not\n// the exporter's Hack-derived defaults, so they have to be passed here too or\n// the grid would be laid out for the wrong font.\nconst WEBSITE = {\n fontPath: path.join(REPO_ROOT, \"website\", \"static\", \"fonts\", \"VictorMono.ttf\"),\n fontFamily: \"Victor Mono\",\n cellWidth: \"0.5455\",\n lineHeight: \"1.6909\",\n};"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":829,"cache_read_input_tokens":286705,"output_tokens":515,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":829,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":515,"cache_read_input_tokens":286705,"cache_creation_input_tokens":829,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":829},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrgHw4BS2G7vCnM98pM","type":"assistant","uuid":"995957b7-cd21-4116-9672-c73266c75332","timestamp":"2026-07-28T04:53:33.200Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"995957b7-cd21-4116-9672-c73266c75332","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_015exywRcqk1j73U6mqZZExR","type":"tool_result","content":"The file D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"d559834f-f722-4a17-ab44-c3f69f9bedaa","timestamp":"2026-07-28T04:53:33.237Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","oldString":"const FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";","newString":"const FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";\n\n// --website renders exactly what the theme gallery ships: the font the site\n// serves, at the metrics website/export_themes.mjs passes. Those metrics are\n// Victor Mono's own (cell 600/1100 em, hhea line height 1.4091 em x 1.2), not\n// the exporter's Hack-derived defaults, so they have to be passed here too or\n// the grid would be laid out for the wrong font.\nconst WEBSITE = {\n fontPath: path.join(REPO_ROOT, \"website\", \"static\", \"fonts\", \"VictorMono.ttf\"),\n fontFamily: \"Victor Mono\",\n cellWidth: \"0.5455\",\n lineHeight: \"1.6909\",\n};","originalFile":"#!/usr/bin/env node\n// Side-by-side renderer for eyeballing the SVG exporter against the retired\n// PNG renderer. Unlike compare.mjs this does NOT force the SVG into the PNG's\n// box (no preserveAspectRatio override, no rescale): each side is rasterized\n// at its own natural geometry, so layout differences — whitespace collapse,\n// baseline drift, misplaced decorations — stay visible instead of being\n// squeezed away by the fit.\n//\n// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks\n// node shot.mjs --website glowsticks as the theme gallery renders it\n//\n// Output lands in ./out/: .svg, .raster.png, and — unless\n// --svg-only — .png from the retired renderer.\nimport { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { chromium } from \"playwright\";\n\nimport { extractZipEntry } from \"./zip.mjs\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");\nconst THEMES_DIR = path.join(REPO_ROOT, \"themes\");\nconst DATA_FIXTURE = path.join(REPO_ROOT, \"src\", \"prompt\", \"testdata\", \"fixtures\", \"prompt.data.json\");\n\nconst BIN_DIR = path.join(__dirname, \"bin\");\nconst OUT_DIR = path.join(__dirname, \"out\");\n// The Mono patched variant, which is what the exporter's default font stack\n// asks for first and what a terminal actually runs: it scales Nerd Font icon\n// ink down to one cell, where the plain variant lets it bleed up to ~1.9\n// cells over the next character. The retired PNG renderer loaded the plain\n// variant and compensated with a hand-maintained double-width table, so its\n// reference renders show icons in a two-cell box; that is the one place the\n// two renderers are expected to differ.\nconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";\n\nconst EXE = process.platform === \"win32\" ? \".exe\" : \"\";\nconst OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);\nconst NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);\n\n// The exporter renders at a 16px em; the retired PNG renderer's reference em\n// was 48px. Rasterizing at 3x device scale puts both at the same resolution\n// without touching the SVG's own geometry.\nconst DEVICE_SCALE_FACTOR = 3;\n\n// Pulls the Mono face out of the Hack.zip the retired PNG renderer already\n// caches (see cli/image/image.go's loadDefaultFonts), or downloads it once.\n// Same source and version as compare.mjs' own ensureFont, different entry.\nasync function ensureFont() {\n if (fs.existsSync(FONT_PATH)) {\n return;\n }\n\n fs.mkdirSync(path.dirname(FONT_PATH), { recursive: true });\n\n const home = process.env.USERPROFILE || process.env.HOME || \"\";\n const caches = [\n process.env.OMP_CACHE_DIR,\n process.platform === \"win32\" ? path.join(process.env.LOCALAPPDATA ?? \"\", \"oh-my-posh\") : null,\n process.env.XDG_CACHE_HOME ? path.join(process.env.XDG_CACHE_HOME, \"oh-my-posh\") : null,\n path.join(home, \".cache\", \"oh-my-posh\"),\n ].filter(Boolean);\n\n const entry = path.basename(FONT_PATH);\n\n for (const dir of caches) {\n const zipPath = path.join(dir, \"Hack.zip\");\n\n if (fs.existsSync(zipPath)) {\n fs.writeFileSync(FONT_PATH, extractZipEntry(fs.readFileSync(zipPath), entry));\n return;\n }\n }\n\n const url = \"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip\";\n const res = await fetch(url);\n\n if (!res.ok) {\n throw new Error(`failed to download ${url}: ${res.status} ${res.statusText}`);\n }\n\n fs.writeFileSync(FONT_PATH, extractZipEntry(Buffer.from(await res.arrayBuffer()), entry));\n}\n\nfunction themeConfig(theme) {\n for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n const candidate = path.join(THEMES_DIR, theme + ext);\n\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(`theme not found: ${theme}`);\n}\n\nfunction run(cmd, args, cwd) {\n const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n\n if (res.error) {\n throw res.error;\n }\n\n if (res.status !== 0) {\n throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n }\n}\n\n// Reads width/height off the root element so the page can give it a box\n// of exactly that size — the SVG then renders 1:1 with no scaling at all.\nfunction svgSize(markup) {\n const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n\n if (!width || !height) {\n throw new Error(\"could not read width/height off the root \");\n }\n\n return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n}\n\nasync function rasterize(browser, markup, fontBase64) {\n const { width, height } = svgSize(markup);\n\n const context = await browser.newContext({\n viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n deviceScaleFactor: DEVICE_SCALE_FACTOR,\n });\n\n const page = await context.newPage();\n\n const html = `\n\n\n\n\n\n${markup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForTimeout(50);\n\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const svgOnly = args.includes(\"--svg-only\");\n const themes = args.filter((a) => !a.startsWith(\"--\"));\n\n if (themes.length === 0) {\n throw new Error(\"pass at least one theme name\");\n }\n\n fs.mkdirSync(OUT_DIR, { recursive: true });\n\n run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n await ensureFont();\n\n const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");\n const browser = await chromium.launch();\n\n try {\n for (const theme of themes) {\n const config = themeConfig(theme);\n const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n\n run(NEW_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", FONT_FAMILY,\n \"-o\", svgPath,\n ]);\n\n const markup = fs.readFileSync(svgPath, \"utf8\");\n fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64));\n\n if (!svgOnly && fs.existsSync(OLD_BIN)) {\n run(OLD_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--format\", \"png\",\n \"-o\", path.join(OUT_DIR, `${theme}.png`),\n ]);\n }\n\n console.log(`${theme}: ${svgPath}`);\n }\n } finally {\n await browser.close();\n }\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exitCode = 1;\n});\n","structuredPatch":[{"oldStart":38,"oldLines":6,"newStart":38,"newLines":18,"lines":[" const FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");"," const FONT_FAMILY = \"Hack Nerd Font Mono\";"," ","+// --website renders exactly what the theme gallery ships: the font the site","+// serves, at the metrics website/export_themes.mjs passes. Those metrics are","+// Victor Mono's own (cell 600/1100 em, hhea line height 1.4091 em x 1.2), not","+// the exporter's Hack-derived defaults, so they have to be passed here too or","+// the grid would be laid out for the wrong font.","+const WEBSITE = {","+ fontPath: path.join(REPO_ROOT, \"website\", \"static\", \"fonts\", \"VictorMono.ttf\"),","+ fontFamily: \"Victor Mono\",","+ cellWidth: \"0.5455\",","+ lineHeight: \"1.6909\",","+};","+"," const EXE = process.platform === \"win32\" ? \".exe\" : \"\";"," const OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);"," const NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"995957b7-cd21-4116-9672-c73266c75332","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d559834f-f722-4a17-ab44-c3f69f9bedaa","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrgvPn9JANcdAycVxFF","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01FzJ3Tazt87AoTKrERFKgFs","name":"Read","input":{"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","offset":100,"limit":80},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":575,"cache_read_input_tokens":287534,"output_tokens":119,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":575,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":119,"cache_read_input_tokens":287534,"cache_creation_input_tokens":575,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":575},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrgq7Xseu1aFaomq8wJ","type":"assistant","uuid":"7b109c7e-93e1-4219-aa94-442f84d42e1f","timestamp":"2026-07-28T04:53:37.460Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7b109c7e-93e1-4219-aa94-442f84d42e1f","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01FzJ3Tazt87AoTKrERFKgFs","type":"tool_result","content":"100\t\n101\tfunction themeConfig(theme) {\n102\t for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n103\t const candidate = path.join(THEMES_DIR, theme + ext);\n104\t\n105\t if (fs.existsSync(candidate)) {\n106\t return candidate;\n107\t }\n108\t }\n109\t\n110\t throw new Error(`theme not found: ${theme}`);\n111\t}\n112\t\n113\tfunction run(cmd, args, cwd) {\n114\t const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n115\t\n116\t if (res.error) {\n117\t throw res.error;\n118\t }\n119\t\n120\t if (res.status !== 0) {\n121\t throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n122\t }\n123\t}\n124\t\n125\t// Reads width/height off the root element so the page can give it a box\n126\t// of exactly that size — the SVG then renders 1:1 with no scaling at all.\n127\tfunction svgSize(markup) {\n128\t const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n129\t const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n130\t\n131\t if (!width || !height) {\n132\t throw new Error(\"could not read width/height off the root \");\n133\t }\n134\t\n135\t return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n136\t}\n137\t\n138\tasync function rasterize(browser, markup, fontBase64) {\n139\t const { width, height } = svgSize(markup);\n140\t\n141\t const context = await browser.newContext({\n142\t viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n143\t deviceScaleFactor: DEVICE_SCALE_FACTOR,\n144\t });\n145\t\n146\t const page = await context.newPage();\n147\t\n148\t const html = `\n149\t\n150\t\n151\t\n152\t\n162\t\n163\t${markup}\n164\t`;\n165\t\n166\t await page.setContent(html, { waitUntil: \"networkidle\" });\n167\t await page.evaluate(() => document.fonts.ready);\n168\t await page.waitForTimeout(50);\n169\t\n170\t const buf = await page.screenshot({ omitBackground: true });\n171\t await context.close();\n172\t\n173\t return buf;\n174\t}\n175\t\n176\tasync function main() {\n177\t const args = process.argv.slice(2);\n178\t const svgOnly = args.includes(\"--svg-only\");\n179\t const themes = args.filter((a) => !a.startsWith(\"--\"));"}]},"uuid":"77c30ed0-f80c-4b59-8cc2-4373aa57ecea","timestamp":"2026-07-28T04:53:37.479Z","toolUseResult":{"type":"text","file":{"filePath":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","content":"\nfunction themeConfig(theme) {\n for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n const candidate = path.join(THEMES_DIR, theme + ext);\n\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(`theme not found: ${theme}`);\n}\n\nfunction run(cmd, args, cwd) {\n const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n\n if (res.error) {\n throw res.error;\n }\n\n if (res.status !== 0) {\n throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n }\n}\n\n// Reads width/height off the root element so the page can give it a box\n// of exactly that size — the SVG then renders 1:1 with no scaling at all.\nfunction svgSize(markup) {\n const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n\n if (!width || !height) {\n throw new Error(\"could not read width/height off the root \");\n }\n\n return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n}\n\nasync function rasterize(browser, markup, fontBase64) {\n const { width, height } = svgSize(markup);\n\n const context = await browser.newContext({\n viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n deviceScaleFactor: DEVICE_SCALE_FACTOR,\n });\n\n const page = await context.newPage();\n\n const html = `\n\n\n\n\n\n${markup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForTimeout(50);\n\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const svgOnly = args.includes(\"--svg-only\");\n const themes = args.filter((a) => !a.startsWith(\"--\"));","numLines":80,"startLine":100,"totalLines":231}},"sourceToolAssistantUUID":"7b109c7e-93e1-4219-aa94-442f84d42e1f","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"77c30ed0-f80c-4b59-8cc2-4373aa57ecea","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrhCTv8jNcQfupQXf6r","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Q6zqbUmZL8j2e2JoxsowNQ","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","old_string":"async function rasterize(browser, markup, fontBase64) {\n const { width, height } = svgSize(markup);","new_string":"async function rasterize(browser, markup, fontBase64, fontFamily) {\n const { width, height } = svgSize(markup);"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1241,"cache_read_input_tokens":288109,"output_tokens":224,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1241,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":224,"cache_read_input_tokens":288109,"cache_creation_input_tokens":1241,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1241},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrh8qtMkszN5bWZmtZV","type":"assistant","uuid":"0a399063-bef8-4438-a2e0-3977c3c23299","timestamp":"2026-07-28T04:53:42.661Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0a399063-bef8-4438-a2e0-3977c3c23299","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Q6zqbUmZL8j2e2JoxsowNQ","type":"tool_result","content":"The file D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"6a6fb042-f64e-46f5-8e9e-0db5c47e80e0","timestamp":"2026-07-28T04:53:42.702Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","oldString":"async function rasterize(browser, markup, fontBase64) {\n const { width, height } = svgSize(markup);","newString":"async function rasterize(browser, markup, fontBase64, fontFamily) {\n const { width, height } = svgSize(markup);","originalFile":"#!/usr/bin/env node\n// Side-by-side renderer for eyeballing the SVG exporter against the retired\n// PNG renderer. Unlike compare.mjs this does NOT force the SVG into the PNG's\n// box (no preserveAspectRatio override, no rescale): each side is rasterized\n// at its own natural geometry, so layout differences — whitespace collapse,\n// baseline drift, misplaced decorations — stay visible instead of being\n// squeezed away by the fit.\n//\n// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks\n// node shot.mjs --website glowsticks as the theme gallery renders it\n//\n// Output lands in ./out/: .svg, .raster.png, and — unless\n// --svg-only — .png from the retired renderer.\nimport { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { chromium } from \"playwright\";\n\nimport { extractZipEntry } from \"./zip.mjs\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");\nconst THEMES_DIR = path.join(REPO_ROOT, \"themes\");\nconst DATA_FIXTURE = path.join(REPO_ROOT, \"src\", \"prompt\", \"testdata\", \"fixtures\", \"prompt.data.json\");\n\nconst BIN_DIR = path.join(__dirname, \"bin\");\nconst OUT_DIR = path.join(__dirname, \"out\");\n// The Mono patched variant, which is what the exporter's default font stack\n// asks for first and what a terminal actually runs: it scales Nerd Font icon\n// ink down to one cell, where the plain variant lets it bleed up to ~1.9\n// cells over the next character. The retired PNG renderer loaded the plain\n// variant and compensated with a hand-maintained double-width table, so its\n// reference renders show icons in a two-cell box; that is the one place the\n// two renderers are expected to differ.\nconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";\n\n// --website renders exactly what the theme gallery ships: the font the site\n// serves, at the metrics website/export_themes.mjs passes. Those metrics are\n// Victor Mono's own (cell 600/1100 em, hhea line height 1.4091 em x 1.2), not\n// the exporter's Hack-derived defaults, so they have to be passed here too or\n// the grid would be laid out for the wrong font.\nconst WEBSITE = {\n fontPath: path.join(REPO_ROOT, \"website\", \"static\", \"fonts\", \"VictorMono.ttf\"),\n fontFamily: \"Victor Mono\",\n cellWidth: \"0.5455\",\n lineHeight: \"1.6909\",\n};\n\nconst EXE = process.platform === \"win32\" ? \".exe\" : \"\";\nconst OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);\nconst NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);\n\n// The exporter renders at a 16px em; the retired PNG renderer's reference em\n// was 48px. Rasterizing at 3x device scale puts both at the same resolution\n// without touching the SVG's own geometry.\nconst DEVICE_SCALE_FACTOR = 3;\n\n// Pulls the Mono face out of the Hack.zip the retired PNG renderer already\n// caches (see cli/image/image.go's loadDefaultFonts), or downloads it once.\n// Same source and version as compare.mjs' own ensureFont, different entry.\nasync function ensureFont() {\n if (fs.existsSync(FONT_PATH)) {\n return;\n }\n\n fs.mkdirSync(path.dirname(FONT_PATH), { recursive: true });\n\n const home = process.env.USERPROFILE || process.env.HOME || \"\";\n const caches = [\n process.env.OMP_CACHE_DIR,\n process.platform === \"win32\" ? path.join(process.env.LOCALAPPDATA ?? \"\", \"oh-my-posh\") : null,\n process.env.XDG_CACHE_HOME ? path.join(process.env.XDG_CACHE_HOME, \"oh-my-posh\") : null,\n path.join(home, \".cache\", \"oh-my-posh\"),\n ].filter(Boolean);\n\n const entry = path.basename(FONT_PATH);\n\n for (const dir of caches) {\n const zipPath = path.join(dir, \"Hack.zip\");\n\n if (fs.existsSync(zipPath)) {\n fs.writeFileSync(FONT_PATH, extractZipEntry(fs.readFileSync(zipPath), entry));\n return;\n }\n }\n\n const url = \"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip\";\n const res = await fetch(url);\n\n if (!res.ok) {\n throw new Error(`failed to download ${url}: ${res.status} ${res.statusText}`);\n }\n\n fs.writeFileSync(FONT_PATH, extractZipEntry(Buffer.from(await res.arrayBuffer()), entry));\n}\n\nfunction themeConfig(theme) {\n for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n const candidate = path.join(THEMES_DIR, theme + ext);\n\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(`theme not found: ${theme}`);\n}\n\nfunction run(cmd, args, cwd) {\n const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n\n if (res.error) {\n throw res.error;\n }\n\n if (res.status !== 0) {\n throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n }\n}\n\n// Reads width/height off the root element so the page can give it a box\n// of exactly that size — the SVG then renders 1:1 with no scaling at all.\nfunction svgSize(markup) {\n const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n\n if (!width || !height) {\n throw new Error(\"could not read width/height off the root \");\n }\n\n return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n}\n\nasync function rasterize(browser, markup, fontBase64) {\n const { width, height } = svgSize(markup);\n\n const context = await browser.newContext({\n viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n deviceScaleFactor: DEVICE_SCALE_FACTOR,\n });\n\n const page = await context.newPage();\n\n const html = `\n\n\n\n\n\n${markup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForTimeout(50);\n\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const svgOnly = args.includes(\"--svg-only\");\n const themes = args.filter((a) => !a.startsWith(\"--\"));\n\n if (themes.length === 0) {\n throw new Error(\"pass at least one theme name\");\n }\n\n fs.mkdirSync(OUT_DIR, { recursive: true });\n\n run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n await ensureFont();\n\n const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");\n const browser = await chromium.launch();\n\n try {\n for (const theme of themes) {\n const config = themeConfig(theme);\n const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n\n run(NEW_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", FONT_FAMILY,\n \"-o\", svgPath,\n ]);\n\n const markup = fs.readFileSync(svgPath, \"utf8\");\n fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64));\n\n if (!svgOnly && fs.existsSync(OLD_BIN)) {\n run(OLD_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--format\", \"png\",\n \"-o\", path.join(OUT_DIR, `${theme}.png`),\n ]);\n }\n\n console.log(`${theme}: ${svgPath}`);\n }\n } finally {\n await browser.close();\n }\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exitCode = 1;\n});\n","structuredPatch":[{"oldStart":135,"oldLines":7,"newStart":135,"newLines":7,"lines":[" return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };"," }"," ","-async function rasterize(browser, markup, fontBase64) {","+async function rasterize(browser, markup, fontBase64, fontFamily) {"," const { width, height } = svgSize(markup);"," "," const context = await browser.newContext({"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"0a399063-bef8-4438-a2e0-3977c3c23299","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6a6fb042-f64e-46f5-8e9e-0db5c47e80e0","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"2cf34ae6-4508-4922-b0a2-ead4ad133eae","timestamp":"2026-07-28T04:53:42.729Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2cf34ae6-4508-4922-b0a2-ead4ad133eae","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrhatJapfaa7gQ61xsJ","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01QZDbWPSmsLWiWTrurBZXh3","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","old_string":" font-family: \"${FONT_FAMILY}\";\n src: url(data:font/ttf;base64,${fontBase64}) format(\"truetype\");","new_string":" font-family: \"${fontFamily}\";\n src: url(data:font/ttf;base64,${fontBase64}) format(\"truetype\");"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":414,"cache_read_input_tokens":289350,"output_tokens":238,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":414,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":238,"cache_read_input_tokens":289350,"cache_creation_input_tokens":414,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":414},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrhXMyFspUwjfqPctWy","type":"assistant","uuid":"e5d0960a-2f23-4ed1-8820-c05bbe2b37ac","timestamp":"2026-07-28T04:53:46.815Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e5d0960a-2f23-4ed1-8820-c05bbe2b37ac","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01QZDbWPSmsLWiWTrurBZXh3","type":"tool_result","content":"The file D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"7ed594ce-f83f-49cc-be96-ef67fd84ef8b","timestamp":"2026-07-28T04:53:46.845Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","oldString":" font-family: \"${FONT_FAMILY}\";\n src: url(data:font/ttf;base64,${fontBase64}) format(\"truetype\");","newString":" font-family: \"${fontFamily}\";\n src: url(data:font/ttf;base64,${fontBase64}) format(\"truetype\");","originalFile":"#!/usr/bin/env node\n// Side-by-side renderer for eyeballing the SVG exporter against the retired\n// PNG renderer. Unlike compare.mjs this does NOT force the SVG into the PNG's\n// box (no preserveAspectRatio override, no rescale): each side is rasterized\n// at its own natural geometry, so layout differences — whitespace collapse,\n// baseline drift, misplaced decorations — stay visible instead of being\n// squeezed away by the fit.\n//\n// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks\n// node shot.mjs --website glowsticks as the theme gallery renders it\n//\n// Output lands in ./out/: .svg, .raster.png, and — unless\n// --svg-only — .png from the retired renderer.\nimport { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { chromium } from \"playwright\";\n\nimport { extractZipEntry } from \"./zip.mjs\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");\nconst THEMES_DIR = path.join(REPO_ROOT, \"themes\");\nconst DATA_FIXTURE = path.join(REPO_ROOT, \"src\", \"prompt\", \"testdata\", \"fixtures\", \"prompt.data.json\");\n\nconst BIN_DIR = path.join(__dirname, \"bin\");\nconst OUT_DIR = path.join(__dirname, \"out\");\n// The Mono patched variant, which is what the exporter's default font stack\n// asks for first and what a terminal actually runs: it scales Nerd Font icon\n// ink down to one cell, where the plain variant lets it bleed up to ~1.9\n// cells over the next character. The retired PNG renderer loaded the plain\n// variant and compensated with a hand-maintained double-width table, so its\n// reference renders show icons in a two-cell box; that is the one place the\n// two renderers are expected to differ.\nconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";\n\n// --website renders exactly what the theme gallery ships: the font the site\n// serves, at the metrics website/export_themes.mjs passes. Those metrics are\n// Victor Mono's own (cell 600/1100 em, hhea line height 1.4091 em x 1.2), not\n// the exporter's Hack-derived defaults, so they have to be passed here too or\n// the grid would be laid out for the wrong font.\nconst WEBSITE = {\n fontPath: path.join(REPO_ROOT, \"website\", \"static\", \"fonts\", \"VictorMono.ttf\"),\n fontFamily: \"Victor Mono\",\n cellWidth: \"0.5455\",\n lineHeight: \"1.6909\",\n};\n\nconst EXE = process.platform === \"win32\" ? \".exe\" : \"\";\nconst OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);\nconst NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);\n\n// The exporter renders at a 16px em; the retired PNG renderer's reference em\n// was 48px. Rasterizing at 3x device scale puts both at the same resolution\n// without touching the SVG's own geometry.\nconst DEVICE_SCALE_FACTOR = 3;\n\n// Pulls the Mono face out of the Hack.zip the retired PNG renderer already\n// caches (see cli/image/image.go's loadDefaultFonts), or downloads it once.\n// Same source and version as compare.mjs' own ensureFont, different entry.\nasync function ensureFont() {\n if (fs.existsSync(FONT_PATH)) {\n return;\n }\n\n fs.mkdirSync(path.dirname(FONT_PATH), { recursive: true });\n\n const home = process.env.USERPROFILE || process.env.HOME || \"\";\n const caches = [\n process.env.OMP_CACHE_DIR,\n process.platform === \"win32\" ? path.join(process.env.LOCALAPPDATA ?? \"\", \"oh-my-posh\") : null,\n process.env.XDG_CACHE_HOME ? path.join(process.env.XDG_CACHE_HOME, \"oh-my-posh\") : null,\n path.join(home, \".cache\", \"oh-my-posh\"),\n ].filter(Boolean);\n\n const entry = path.basename(FONT_PATH);\n\n for (const dir of caches) {\n const zipPath = path.join(dir, \"Hack.zip\");\n\n if (fs.existsSync(zipPath)) {\n fs.writeFileSync(FONT_PATH, extractZipEntry(fs.readFileSync(zipPath), entry));\n return;\n }\n }\n\n const url = \"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip\";\n const res = await fetch(url);\n\n if (!res.ok) {\n throw new Error(`failed to download ${url}: ${res.status} ${res.statusText}`);\n }\n\n fs.writeFileSync(FONT_PATH, extractZipEntry(Buffer.from(await res.arrayBuffer()), entry));\n}\n\nfunction themeConfig(theme) {\n for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n const candidate = path.join(THEMES_DIR, theme + ext);\n\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(`theme not found: ${theme}`);\n}\n\nfunction run(cmd, args, cwd) {\n const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n\n if (res.error) {\n throw res.error;\n }\n\n if (res.status !== 0) {\n throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n }\n}\n\n// Reads width/height off the root element so the page can give it a box\n// of exactly that size — the SVG then renders 1:1 with no scaling at all.\nfunction svgSize(markup) {\n const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n\n if (!width || !height) {\n throw new Error(\"could not read width/height off the root \");\n }\n\n return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n}\n\nasync function rasterize(browser, markup, fontBase64, fontFamily) {\n const { width, height } = svgSize(markup);\n\n const context = await browser.newContext({\n viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n deviceScaleFactor: DEVICE_SCALE_FACTOR,\n });\n\n const page = await context.newPage();\n\n const html = `\n\n\n\n\n\n${markup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForTimeout(50);\n\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const svgOnly = args.includes(\"--svg-only\");\n const themes = args.filter((a) => !a.startsWith(\"--\"));\n\n if (themes.length === 0) {\n throw new Error(\"pass at least one theme name\");\n }\n\n fs.mkdirSync(OUT_DIR, { recursive: true });\n\n run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n await ensureFont();\n\n const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");\n const browser = await chromium.launch();\n\n try {\n for (const theme of themes) {\n const config = themeConfig(theme);\n const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n\n run(NEW_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", FONT_FAMILY,\n \"-o\", svgPath,\n ]);\n\n const markup = fs.readFileSync(svgPath, \"utf8\");\n fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64));\n\n if (!svgOnly && fs.existsSync(OLD_BIN)) {\n run(OLD_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--format\", \"png\",\n \"-o\", path.join(OUT_DIR, `${theme}.png`),\n ]);\n }\n\n console.log(`${theme}: ${svgPath}`);\n }\n } finally {\n await browser.close();\n }\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exitCode = 1;\n});\n","structuredPatch":[{"oldStart":151,"oldLines":7,"newStart":151,"newLines":7,"lines":[" "," \n\n${markup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForTimeout(50);\n\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const svgOnly = args.includes(\"--svg-only\");\n const themes = args.filter((a) => !a.startsWith(\"--\"));\n\n if (themes.length === 0) {\n throw new Error(\"pass at least one theme name\");\n }\n\n fs.mkdirSync(OUT_DIR, { recursive: true });\n\n run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n await ensureFont();\n\n const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");\n const browser = await chromium.launch();\n\n try {\n for (const theme of themes) {\n const config = themeConfig(theme);\n const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n\n run(NEW_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", FONT_FAMILY,\n \"-o\", svgPath,\n ]);\n\n const markup = fs.readFileSync(svgPath, \"utf8\");\n fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64));\n\n if (!svgOnly && fs.existsSync(OLD_BIN)) {\n run(OLD_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--format\", \"png\",\n \"-o\", path.join(OUT_DIR, `${theme}.png`),\n ]);\n }\n\n console.log(`${theme}: ${svgPath}`);\n }\n } finally {\n await browser.close();\n }\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exitCode = 1;\n});\n","structuredPatch":[{"oldStart":176,"oldLines":6,"newStart":176,"newLines":7,"lines":[" async function main() {"," const args = process.argv.slice(2);"," const svgOnly = args.includes(\"--svg-only\");","+ const website = args.includes(\"--website\");"," const themes = args.filter((a) => !a.startsWith(\"--\"));"," "," if (themes.length === 0) {"]},{"oldStart":186,"oldLines":9,"newStart":187,"newLines":14,"lines":[" "," run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));"," ","- await ensureFont();","+ const fontFamily = website ? WEBSITE.fontFamily : FONT_FAMILY;","+ const fontPath = website ? WEBSITE.fontPath : FONT_PATH;"," ","- const fontBase64 = fs.readFileSync(FONT_PATH).toString(\"base64\");","+ if (!website) {","+ await ensureFont();","+ }","+","+ const fontBase64 = fs.readFileSync(fontPath).toString(\"base64\");"," const browser = await chromium.launch();"," "," try {"]},{"oldStart":200,"oldLines":12,"newStart":206,"newLines":13,"lines":[" \"config\", \"export\", \"image\","," \"--config\", config,"," \"--data\", DATA_FIXTURE,","- \"--font-family\", FONT_FAMILY,","+ \"--font-family\", fontFamily,","+ ...(website ? [\"--cell-width\", WEBSITE.cellWidth, \"--line-height\", WEBSITE.lineHeight] : []),"," \"-o\", svgPath,"," ]);"," "," const markup = fs.readFileSync(svgPath, \"utf8\");","- fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64));","+ fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64, fontFamily));"," "," if (!svgOnly && fs.existsSync(OLD_BIN)) {"," run(OLD_BIN, ["]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"851fe37d-70f2-476f-bbd7-5615ed850fe9","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5b3e0d52-9fab-4983-9451-4c36507718a0","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrj3dAT4FGhCUAmaS4v","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01GbW7Yyau1dRaWthwNP82h9","name":"Bash","input":{"command":"cd /d/oh-my-posh/tools/svg-png-compare && node shot.mjs --website --svg-only glowsticks cert jandedobbeleer 2>&1 | tail -4","description":"Render gallery-accurate rasters with the new website font"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1222,"cache_read_input_tokens":290905,"output_tokens":147,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1222,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":147,"cache_read_input_tokens":290905,"cache_creation_input_tokens":1222,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1222},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTriz18SaVvD3FAKog11","type":"assistant","uuid":"0eb4276b-d2e8-41e8-b34d-107e06b87d88","timestamp":"2026-07-28T04:54:06.608Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0eb4276b-d2e8-41e8-b34d-107e06b87d88","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01GbW7Yyau1dRaWthwNP82h9","type":"tool_result","content":"glowsticks: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\glowsticks.svg\ncert: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\cert.svg\njandedobbeleer: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\jandedobbeleer.svg","is_error":false}]},"uuid":"249e21f9-068e-4c45-9b46-9e146769874d","timestamp":"2026-07-28T04:54:15.756Z","toolUseResult":{"stdout":"glowsticks: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\glowsticks.svg\ncert: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\cert.svg\njandedobbeleer: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\jandedobbeleer.svg","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"0eb4276b-d2e8-41e8-b34d-107e06b87d88","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"249e21f9-068e-4c45-9b46-9e146769874d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrk2MYM9qtQUbTGFsxp","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01C5deguA6dCPK55HE4FoYXv","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/stack.py\" \"$TMPDIR/web.png\" \"glowsticks (website font)\" out/glowsticks.raster.png 100 185 2500 130 \"cert (website font)\" out/cert.raster.png 100 185 2500 130 \"jandedobbeleer (website font)\" out/jandedobbeleer.raster.png 100 185 2500 130","description":"Stack website-font renders"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":268,"cache_read_input_tokens":292127,"output_tokens":268,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":268,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":268,"cache_read_input_tokens":292127,"cache_creation_input_tokens":268,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":268},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrjyCXttYTp5kHTrBCK","type":"assistant","uuid":"8ea4975f-2bee-4de4-b987-56e5beda3e4e","timestamp":"2026-07-28T04:54:21.361Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8ea4975f-2bee-4de4-b987-56e5beda3e4e","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01C5deguA6dCPK55HE4FoYXv","type":"tool_result","content":"C:/Users/jande/AppData/Local/Temp/web.png (2500, 474)","is_error":false}]},"uuid":"d0dc25b5-ec06-4440-8e50-32e62d29b271","timestamp":"2026-07-28T04:54:25.480Z","toolUseResult":{"stdout":"C:/Users/jande/AppData/Local/Temp/web.png (2500, 474)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"8ea4975f-2bee-4de4-b987-56e5beda3e4e","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d0dc25b5-ec06-4440-8e50-32e62d29b271","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrkkJRKtmjDFQXnMeB5","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_011HuhxExg1BytCmfeuSTTeg","name":"Read","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\web.png"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":303,"cache_read_input_tokens":292395,"output_tokens":70,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":303,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":70,"cache_read_input_tokens":292395,"cache_creation_input_tokens":303,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":303},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrkg1TUswL77inStUWy","type":"assistant","uuid":"49e963b3-1903-476d-9af8-f37c53c7dd52","timestamp":"2026-07-28T04:54:28.280Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"49e963b3-1903-476d-9af8-f37c53c7dd52","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_011HuhxExg1BytCmfeuSTTeg","type":"tool_result","content":[{"type":"image","source":{"type":"base64","data":"iVBORw0KGgoAAAANSUhEUgAAB84AAAF7CAIAAAA8NjZiAAJyj0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a+ePHmaq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuurfBAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqn8rILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/q2A4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676twKCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuurfCgj+pxD/+STxIpDEVVddddVVV1111VVXXXXVVVddddVVV1111VVXvQiA4IWy0zb/SrZt85wykxdAUuaU2UD8SzKT58c2L1Rmrtdr27xQtqdxlMRVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9S4DgOUkqpZRSSim2u66PCKCUUkqRFKUAERFRgIiIiFJKlBIRgKS+n81mc9sRpZQSEUDfz4CIiAhJpdSIACSt16sbbrzl+htuzmySJJVSACmkkKKUElG4rJ/NIkopRZKkUmpERMRisSEJkCQpopRSpOCyzDxzzbVv8uZvs1hsREQpBZBUSokopRRJkjJze3vnEY9+sWG9lsRVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9UEDwAJLGcbxw/tzu7sWjo8OLF89/5Cd8xou9xEsf7O/tXrxw8cL51qb9S5cUsTw6Ojzcl7Q8Oloujy5eOH+wt3f+3NnXef032dzaPn3m2muuvS4zDw/3z587u16vxnH8rC/6qo3NzcPDg8PDg2kaz52992B/X5JtKV7+lV7tuutv2N29IGkY1vt7l4D1ejkMq/V6df7c2f293YiYxvFzvuhrVqujc2fvnaZxmsZzZ+/du3Tp2PETD3vEoy5evPByr/AqD3rwQ/f3Lh3s750/d3YY1pJq1+3uXniX9/yA2Xx+sL938cL5ixcuSBrH4dLuxb1LFy+cPydp9+KF13vDN9vY3HrFV3n1ja2tzJTEVVddddVVV1111VVXXXXVVVddddVVV1111VVXvWBA5X6ShmF97XU3vvxbvt3+/p4zf/HnfqLvZ5m52Nh4wzd962ka/+JP//AVXvk1/uj3f/ux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7kMe9si/+5u//PM/+YPFYuO+++558EMfsbGx8aQnPu6eu+58xq1PvfOO23YvXPj7v/3LO25/xt6l3ZOnz/ztX//Fn/7R721sbt1x2627Fy+01n7jV37+b//6zx/56Mf+9V/+6V/9+Z9cOH/uvnvuvufuO1ub/uj3f7vWrpT6yz//UxcvnO+6Tordixee9uQnPvmJjz956vTZs/f+zm/+8vLo6I7bbj177z3AHbffetedt9/+jKdfc811J0+f/sWf/Yn5fG6bq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuesEAnTx5GpDUWlssNt7srd/h+PETXd//zm/8yj/83V9P09TatFhs7O9dArZ3jini6GC/62dd1+3vXdreOdZaO9jfk7S9c2wch2G9ns8X4zhubW/vXdodx3Fjc3M+39i7dHHn2PHVctla67puf3+v72ebW1uSpmnc3jkmtL+/NwxrYGNj69LuhY3Nra7rjo4OV8tlP5ttbm7beXCwj91a2945ltn29/b62Wxzc+vwYH9za3uapqOjw62t7aPDg6lN21s7tesyM6IcHuzNFxvA/t4lRRw7dnwYhmkaNze3xnFcrZbb28eODg+Aa6+/4fy5s13X2eaqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteMEAnT57mCilbK6Vsbe+M43h4sF9KiQjAdkQAmWm7lJKZtksprTVJEQG0zJBAdkrKzIgiYTszSymttYgAbEeEIVsDJE3TBNRaJQGZWUrJTNsRIcl2ZgKlFBuJzAQiwiazlVJaa5IiIjMVIchM21wWpTgTiAigtSZJUmstIiJimqZSiu1xHLqut81VV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9UIBOnjzNA9jOTEkRwX8hSbb5n0GSba666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupfAlSek6RSCv/lbPM/hm2uuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/FRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9WQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBNUJcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf8mQI0QV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/CRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9WQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwUEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/FRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9WQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwUEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/FRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9WQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwUEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/FRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9WQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwUEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/FRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9WQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwUEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/FRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9WQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwUEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/FRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9WQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwVU/reQxFVXXXXVVf/xjIocMoirrrrqqv9rDLKdyVX/61hBBP9mNhL/OzkbNlddddVVV1111VVX/S8BVP6XyDbY5qqrrrrqqudHAJh/i4BLU1lOElddddVV/wcZilhsBOLfTGCu+i9lqV8dxLAy4t9Epbg1/ldybBxTqdhcddVVV1111VVXXfW/AVD5X0Ha2rk5Sg/mqquuuuqq52FbgMS/UsC6xatde/Gxp8e0uOqqq676P0fiaJV//1erNiHxb2BIKFz1X8eKOqzuftQrH93y6NKaJf712uHFsnmC/2WMIcrh3/xq2zun2mFz1VVXXXXVVVddddX/eEDlfwGLcuzUI+fzY7a56qqrrrrquUjZRkmKgvlXKeELq+49X+lxb/OKl8gK5qqrrrrq/xJDUZ4dv+rP1qsjR+FfS9BgxHNkrvovkiU2Do5+66Xe9M63/NDZsDLiX299+z/MbnkxzP8qxla/uP3z32S6cKdqD+aqq6666qqrrrrqqv/xgMr/Eq0N07Syk6uuuuqqq56TpGwTUqgY869hOdt08WjyxTZaYK666qqr/i8xpejuS7kv1kEENv8qgoQRRjBX/RexmIhhtdcu3DWNa0v867X989PFu/nfxeBUv6CNUnDVVVddddVVV1111f8SQOV/CSFJEFx11VVXXfXchCQChTD/GpJFlEBVXUpcddVVV/2fYqNCVwgICPOvJQAKFDBX/RdJKFgqqp0ykfjXU6kqHf/rOKkdEjZXXXXVVVddddVVV/0vAVSuuuqqq676X07iqquuuuqqq676v0biqquuuuqqq6666qr/JYDgfy6BAAyYq6666qqrXoA0thBXXXXVVVe9QEZc9b+N+P/LdiYYCQUSV1111VVXXXXVVVf9DwYE//NIAuzJOdlGgLjqqquuuuoF6MJd2EYyV1111VVXPZAAJCRsJK7638WSbP6/MZSq2qHwuM7VAW1UFBRcddVVV1111VVXXfU/ElA2Nzf5H0RI2UZQ12/182MbW9dv7dy0sX1d129LwVVXXXXVVQ+Qpi/+xFe86/1e8r7Hnd+463DWF5t/hRCrVl7jxvMvff2AQ1x11VVX/Z8iwF4sYt7ryU9YI/GvJDAkVMRV/3Vs1C8Pdh/+csOxU2oNiX+ltn++bJ/ifx0JZ3/jo7de7k0Xj3yVsthWP3eb2u59hKKb4eSqq6666qqrrrrqqv9hgLK5ucn/FLIn7I3Na7ePP+jE6UftnHjwYvN0P9vp+y2QxFVXXXXVVQ+UaFbz3R977iVuPnjQ1vTHd20djiXEiy7EqpXXuPH8S18/4BBXXXXVVf8HSbrp5v7oKG97+liK+NcQGBIq4qr/KgKXsnPf7YuL9973Eq/ubgYJ4l+j7Z8v26f438h0J67tTt3Y3/CIzZd+o+1Xepv+phcrWyfa4cXpwp3qZkhcddVVV1111VVXXfU/CVA2Nzf5nyGzzTdOnjjzmOOnHrbYPA04m0lILpO46qqrrrrqgYz68Bs/dPf6jenGnWEW/q3bd7rCiy7EqpXXuPH8S18/4BBXXXXVVf8H2ajolgf1z3j6ePbe1vWyeREJDAkVcdV/Jbv1s507npSlnn3xVy3TiMS/Rts/X7ZP8b+RwI3WaJOHJdPYXfOQzZd8/fnDXl6LneG2v/e4Vqkgrrrqqquuuuqqq676nwEom5ub/DeTbSl2Tjzs5JnHzhcnbGc2SUggEJdJXHXVVVdd9UBGffGbPnT3+p0xJ73Y6eXFZf3LezfnNY14EYRYtfIaN55/6esHHOKqq6666v8gSdnoNnTD9fXJT1gfHbkU8aIRGBIq4qr/WkKu9fit/3B08oZLD36xMq5R8CJr++fL9in+NzJISEgoUDANuT6qJ67beOQr9w96ifGep7YLd6p2SFx11VVXXXXVVVdd9T8AEPw3kz2VOj99/UufOP3IiJptBCRx1VVXXXXVv4ZRFH/IS9/zCtcdLKdSZK666qqrrrpfBB65/iH9G7zZdq2yuep/AzuirpeP+pmv377tCa1fyMn/TxEq1eulx/XGo17t2g/4xq1XelsPKwwSV1111VVXXXXVVVf9dwPK5uYm/22Unmaz42euf6n5xil7ApB4ASSuuuqqq656IKO++E0funv99kiSjs1Fe8Tx1e/dsb0/1BqYf0GIVSuvceP5l75+wCGuuuqqq/5PEiBBcv3N3bDMpzx5qJ0w/yKBIaEirvovJsnO2i8u3rN59vb7XvI12mwhJ4gXQds/X7ZP8b+UeD4kJNpQ5psbL/46htVT/1wCxFVXXXXVVVddddVV/62A4L+N7Gk2P3H6upfq58ecE4irrrrqqqv+HYqcU7z4dQcf+tL3gNNc9R9PQoECxP83ChQouOqq/+Ve+w23HvWYfrXMCK76n0/Zxo3tM//whw//pe+wCub/O4XbRLaTb/Lhx9/4w5wJIHHVVVddddVVV1111X8foGxubvLfQHbrZ8dPX/dSXb+Z2STxL5G46qqrrrrqgYz64jd96O7126NTEhLOeOzp5cFQ/vyerb7YvDAhVq28xo3nX/r6AYe46oVSMK2ZlrSBCFT4f8RMK9qKHFFB4qqr/jcR93NS57rppu5pTx7397JW2bwQAkNCRfxbKUKSJEmSJEmSJEmSJEmSJEmSJEmSJEkSmP+nJC6T7dodu/Vxq2Ondx/+0mUckPiXtP3zZfsU/0uJF0bCJtvi4a9A5upJf6xSkbjqqquuuuqqq6666r8JUDY3N/mvZ5cyP3XtS8zmx5xNEi8Ciauuuuqqqx7IqC9+04fuXr89OiVxhcRjTq0ed25x296sLzbiBQixauU1bjz/0tcPOMRVL4TIdR57cDvxSG/dqGmltkSF/ydU24lH5LGHeuNajQfKEYmrrvpfQ9xPIhtbJ+vmQk9+wjoTiRdCYEioiH8bO6fJrbk1t+bW3Jpbc2tuza25Nbfm1tyaW3Nrbs2tuTW35rQi+P9J4n5WlHF97PYnXHj4y6xOXh9tQuKFavvny/Yp/pcS/wIJjJk/7GXGS/cNt/29Sgfmqquuuuqqq6666qr/DkDlv4V07NTD54uT9oTEVVddddVV/3EEmTqxOXziK975ob/+0LNH3bxmWlz17yKwu63DV/m88aaXj+Vy6zc+qN79R3Q9bvzfJtGGdvoxB6/1Ve349eX8M7Z/80N06enUOU6uuup/oQg8+CVfcXHPXeNv/PLBbB78p7FdZ/3GseP8m0jk1Fa7u24Nif/H5Gz9fOPs7Y/9kS/7iw/9qmnzWEyDFfx/psCN2p98s4+a7nna+ra/V9djc9VVV1111VVXXXXVfzmg8l9N6Wlr56atnRvtBuJ/M9uZBoMiJImrrrrqqv8BQuQUjzqz/JiXu/vz/uimKRXCXPXvoGDcn254tdy6IVbreufvlUtPo8wh+b8vmFbj6Zd03dByNXvaz8TerdQZTq666n8tCRqv9fpb990z/f3frPuZbP7DqZRhf+/GV3z51//Cz3MmgMSLLh1dPbj7nl/+mI/fu+vu2ve2+X9M2abF1qkn/+Ujfu5bHv8OH2cFVymYhnrsmuNv+EFnv++TPA1IXHXVVVddddVVV131Xw6o/FfLWhc7xx4ihZ38b5aZpZSNjV6SzXo9ZCZXXXXVVf8zSDjjzR9x8e/Obfzg408vqm2u+vdRO/ViOT+tHLu7/1iH99Dv4Mb/ccKTN6+brn0Fd5uxOl/P/g1toMyhcdVV/5s5mW2VN3rz7bvvmnYvZOlw8h9LkmnzY8dufIWXy6khSGdr/EskqRRw6eruM+4o/cyZPA9FSAIMzsTm/zplZu0e/Fs/tPvgx975qm9Vh6UV/D+n8LhaPPrVNl/+LfZ//wfVb+Dkqquuuuqqq6666qr/WkDlv5TstrlzUzfbspP/DpJKCSEewJDZMs2LTFKm3/Pd3vRd3/FNuq7a/tlf/N1v/JYfaa1J4n+wiIgQABLPZADbzrRt/o+KUESRyJYtk6v+I0SoRAFaZmbyP4NEKUVSpltr/L8ksEH6yJe95+mXZn9w585ml2mu+rdQMC3z2EOGG14NlTi4tZ7/O6KC+VdRoALgxI3/FRQMB+3MS7dTL4ZULjy+XHgidYGT/xASqgBO3Ljq/4moIDA58d9HwqPP3Ny/+dts//D3XmqNCGz+I9lATm04OMxpAvrNzfn2zPwLnKz3l20YSteNR0d2CvFAUpQyrddtvTJElG6xUCnZGv/nSUiP/fGvOrrmlt2Hv0xZLx3B/3NGpWy/0tsc/d1v5MFFSsHmqquuuuqqq6666qr/QkDlv47sVrvNza3rJNkJ4r+WpGmaLlw8zLR4JoOkzc3FfNbb5kUQoWGYbrzxmtd4tZfd2tpYrYa+7171lV7yu773p/f2Dmop5n8iSbaPjpbrYcxM25grJCnUd91iMSulZCb/50isVsPB4dL2Yj7b2Jhz1b+bpOVyfXi4NGxuzBeLuW3+u0m0lhcv7rdsXdftbG/y/5WEk81F+/hXuOsZl+b3HHWz4jRX/ZtkO/mY3HmwyHru78r5x1PnOPlXENOKcR+buqDb5H8HE9105qVzcVrTut7zpzq4g8UpcuI/xLRmPI+TOqfb4qr/F8zqAm1AhdlxJP77SHjwY15m8Zq3j7/+y4fqxX8CCUUoIrrujj/509v+8I+6jQ1n8vwIObPf3nro673OxpkzilAEAOZ+kjLz6PDiyVsefvJhD4lSV5cu3fu3fzeuV7OtbWfyf5udpZtdOvuYn/jqv/jgrxi2j5dptIL/zyS3sb/hkZsv+yaXfuM7o27jxlVXXXXVVVddddVV/4WAyn8pLzbOdLMtu4H4ryVpGMbrrz/zcR/1Xhsb88yUJBGKcZx+4Zd/76/+5gl939nmX2QAp21HRClRIjD/Y0myvVyuNjYWr/var/SoRz7o+LHtvu8iAnDmOE2Hh8unP/2u3/+jv7rv3IWNxTwibPN/hcQ4tZd+qUe9+Zu85mI++8M/+Ztf/80/sc1V/w4RcXS0fJVXeqk3fePXCOnXfvOPf/t3/2xjY5GZ/PeRNI7TqVPHP+rD3u3UyWNPfurtP/DDv8D/YxKe9Mgzy497xTs/4/dumawQNlf9a4ic6HbGG17D3abGw3Lub8iB0oF5UYkcp2teZnjY27jb6O76g/7WX8QJ4n8yibbOzevHG1+DKDq8p57/B7oN3PgP4dbOvOT64W/nbqPe++ezp/40ThBX/R9mU7rVS314O/UYLc8t/uYbNR6gwn+vxmu/4fa997S//etV38vmP4Pt0ndP+sVf/sUv/7wtumQS4jkZBBN54tiN7/jjP7R13XV28pxUYjw82jh96tU+7qMf9kZvsHPTjaV26/29e//2H/7+R3708T/1M93GBhI2/3fJ2frFqSf+2SN/5hv+4V0/xQpsJP4/y9RsvvHir3f4l7+YBxcpFZurrrrqqquuuuqqq/6rAJX/Ohllttg8I4Wd/JeT1Fo7vrP19m/z+vNF5Qpjs16Nf/v3T/qzv/iH2ay3zb8k7b6vd9x576//5h+fPnm866vTv/k7f7ZcriPC/M8iqbVWa32Ht32Dt3iz17r+ujPHj20vNjqe07jOS5f23/1d3/S3f+fPf/jHf3l372DWd5nm/whlyxtvuOYt3vQ1Fxv9/uHRb/zWn2RaElf9W0VoGKcHP+iGt36L11Lw9Gfc9au/8UdboUz+e2XmxmL+Rm/wqtddd+JP/+zxP/DDv2BbEv9vCbd4w4dc+oez577z769ZVJur/jUEbcqtU9OZlwaVvWf0d/w2ZYaTfxVnbt+0fvjbeFYZD/tbf4n/BYQzd25pxx6ubPX839f7/orosPkPIJy5ecP6YW/teQ/MnvozGMRV/6fZKuONrzHe8opx6fzi77+dwUhg/ptIOCmzeKO32L7nnvHcfa1W2fyHE2DPdraPsbF5+ppptWrDwHOSVOfzbG37+utK12ODeABFjEfL04951Bt/1Zc/6NVetc7ruBpznDavO3PqkQ970Gu+2jUv9tg/+bpvbOMoyTb/dwm3fn7L7/3EpVsefftrvWMZV0b8fyZ5XM1uenR/80sc/e2vRe1x46qrrrrqqquuuuqq/ypA5b+K7b7b7OfHnQ3EfznbpZT9g8Nf+bU/2NxctJallAfdfP2ZMyeOjlbDMEi86DLddfVHf+JXf/ynfl2S7UxHSBL/w7TM+Wz2oR/4jm/55q9Va6217O7uP/4J9124cClJQOjYztYNN5w5c/rE5ubivd79LR/96Id83hd/64ULl7qus83/CZKGYbx4cX+cNo6OVjZX/TvZSFqth4sX96VYrdaSbP4nyMxLl/a3Nhf7+4f8vydII+nDXvbep+7Of/P2Y1tdpvkPpoKC58NkA/O/l03U8YZXz83r5FbO/4NWF1Dh36ANWl0gdzQd8r+CG3U+POgN3W2qret9f0mOlBmY/yg5xOqCfVzDAYC46v8Ba9iP1aj1RWz+B5Dw5FM3dG/5djvf/+2740Qp2PzHMoDcsjG0YZhtb29eew3PQTmO+/fc3ZbLNk22eS6habk6+dCHvOW3ftP1L/sy02p191//7ZN/8Rf377n3Qa/2qg953ddenDz5ap/wsc78/S/9ytJ3SNj8X2UjoXj0T33d4fUPPf/oV6zrIyv4f0siWyx25g9/+dUTfp9sXHXVVVddddVVV131Xwio/BeazU+U2jsnEP/lbPd9vfuec5/4aV8NtMzNjcVnfuoHvukbvcZqtZbEv5IkSbZtAxHifx5JOU7v+C5v+JZv/trYq/XwW7/yp7/7+3/5V3/7hLvuPtvVCkytnTi+81Iv+chXfsWXfJM3eLXt7c1XfPkX/9APfKcv/+rvnaaJ/0MUKiVqKRHiqv8YDqmUEqEIYfM/RkSppZQSXAUhMun7/JiXv/vOg9nTL826sPkPJMZ9piVXGASAISr9Nipg/rcyzvHal3fpY7jU3/6bOFEF868mVIgKwf8Cws2zk9Ppl1RE7N3d3f1HKPgPJqs6Cipc9f+FUFhFUfkfQ4LRD3/M/HXfaOtXf/GA/1zK1l7sXd7xNT7x43MciRAYS7G8ePEXP+Kjn/5bvyOJ5yJhuo2N1/iUT7rupV4yp+mpv/brv/5Jn37+6U8J1b/8ju98iXd6pzf40i9cnDz5ih/+oXf95V899Vd/o1vMzf9ptkvpD3cf/ZNf+xcf8CXDyWs1jUj8vyWR0+KhL7e3fapduk+1w+aqq6666qqrrrrqqv8SQOW/iqL2i+PYIP7dJElk2jYPEBESmeb5sSkljh/fltRabmzMu67jX0+SJJ6Tbdu8aEIy2LbN/SRJAmzzgkmSyLRtHiAiJGxsA0BErFbrRz/qIW/0hq8q0Zp/8Ed+6du+8yeWy3XX143F3DbQdfVoufrd3//L3/uDv3z8E572ER/8LidP7rzmq73sH//J3/7CL//ezs5ma8n9BArZZCYPIClCNrZ5wSRJZNo295MUksE2z48kSUBmSpLItG3uJykkg22ekyRJEhEKCQFIighAEvezbZsXTBJg2zb3kxQRtm3zQkXIxrZtHkBShGxs84KFZMhMHiAiJGzb/OcRKGSTmdxPUoQk8S+RJGE70zxAhCTZ2OY5SZIE2LbNCxUhEDjTPD+SJNm2zf1CUijTvFCSJDJtm/tJkgTY5vmRJAmwbZsXIEIgwLZt/pOF8KSHnVl++Mvc/Ym/c4uRwPyHMM7hYW8zXv+qEiCeyUZxePf8iT+s5b3UDZw8LxvM/1wip3bqxdrJx0DEpaeXC/8A4oVQYENic4WEChL/MiHhBGMDIAAJBTaY5yYkAIzNC6fgCicvCud4w6vm1k1Ol/N/F4d3ogLm+RMSNiQ2AEKgAOHkX2AQCMAGgxAoQDj5D6fgmYyNE0CBhA0CcIJBKAAwDySBAGwwL4SCK2ww/yEUXGEj4cQGAyAkFGBsXjgJhBMbDICQUGCDeWGEhA2JucwgAAUSNpgXxAahALDBAAgJBTaY/0I2Mq/+Opt33Db8zV+u5wtl8h/CAAgAZ4Kx7/u7v89pmh3facOoCGd2mxvnn/SkC095WtTqTGwknLaBKGV9cOnF3v4dHvZGb4B979/83W9/9hfsPuMZi2Mn3BL4+x/5sc1rrnmtz/zU2fbWK3/Uh9/z13+72t1VBJcpAoHBtu1MQBGSbEsyuDUASREC2zw/igCc6UweQBGKwLbNfxm7dbNTT/qzR/7cN/3de36WABuJ/yYCQzOCEP/VJE9DvebB9eQN7eLd0HHVVVddddVVV1111X8VoPJfw47S9f2WMf9uERrHNo5j13V9X0EAONOr9WB7Pusl2eZ52LSWklrL1tI2/3rr9TBOkxD3My6lzGc9/xJJkpartdN933VdAQHgaWqr1brUMu/7lsnzExHDMI7T1He16zpJXJaZ6/WQmbNZX0rJTEBiau0VXu6xN15/DegP/vivf/BHfhF42Zd+9Du83Rs8+JYbSw1My7zr7rM/+uO/8oQn3vqLv/z7N9107fu8+1ttbMxf6RVf4nf/4C9bS0m2gQhlenm0kjSb9aUECMAexmm1Gvu+q7VmJs9PRIzjNIxj33V9V5EA8DhOq2GstfZ9l5k8j2EYh3EENhZz26v10He17zokADxN7Wi1rrX2fZeZPMBqPUzTFNJ6Pa5Wgw0wDuPB4VG2lMRlxrWUvu8k8fxExGq9zpazWV9rAQG2h2Ecx9V8PiulZCbPjyTw0dFaouu6risACLA9juNyNc36rtaamTwPScBytQZms76UAAGZuV4PmZ7P+whlmv8EIaW9PFpFxHzeS8Fl4zgdHa3a1CTxgkXENE3rYay1zPpOCi6zvR6GaWz9rOtqzUzuJ2kYxmEcgVnfdV1nmxfs8HCVzlDM570knpsyc70euq7r+woC7FwPY5vafD6LUKZ5fiKitbZeD7WWvu8lAeBpaqv1EKH5bOZM8xxsL5frdArNZn2txTbPz9Fy3VrD9H3XdZX/fBKe4vUecukDdu/7ur+8frNLm383kdPwsLc8evlP9OIEz8VgcudBG3/8OTq6j6hgHkhBmSNh8z+TRA7jDa/mxWlyrHf/iaYlUcE8LwnEdASizlEgMHhiOsINiRdCQU5Ma6Kj9EgIDJi2JkfKnOhw44FyoA0AUSkzXhgzHuEGos5QBfMvGa97ReqGpqPZM36NaUVd4OR5KXAyHhGVMkPiCjfGJRJ1gQ3mBVGQA22gLoiKwOBkWgHUOQbMfxgzHuKGClFQR+mxaQOYMqOtcVIXSDhpawhKh5NnGZe4AdQFKmBekGlJTgBlRlT+/ZxMR9ioUDqmgdITPYDAkCPTkugoPU5eEAVtTTZKT3QIAJs2kCNlRlScPF8K3BhXKCg9UQEkbDBtTU7UOSo4eb4kSKYj6oLoeZYcmI4oc6Li5L+KhJPo9KZvs3Pu7MW775y6Xjb/LgKICCTbzlycPNFpoYhbf+t3fvljP+GNv/LL+q3Nabnqt7fu+cu//oUP++j9u+/GLv2szmbYpKMURZmGYef6G1/8Hd5ucfzYam/vz775W+973D/Md47lOAGS6mLxdz/8ow9+7dd8xBu/4bUv+RIPff3X/dvv/8F+a8uZtseDg6QFJWqNriuzHntarYE6n4/LJdDN50jOnJYr1VK6zpk8kCRpXC6zTXU2r32PxBV2G8fx6Kj0fZnN3Br/VQTTfPPmP/rZgxsf/rQ3fK86LI347xBiSkJsdxqSMS3+iwk7Zovuuoevn/7XmKuuuuqqq6666qqr/ssAlf8SxrXOovSYfydJwzBtb28+8uEPetmXetRDH3pzKQHYvnTp4K/+9glPfNKtt91+zzhNXa22+Y9m+0G3XH/y5DGnEVeEYv/g8Lbb77HNCyZpam0a2y03X/ewh9z04i/28Ftuvi4igEzfc++5P/uLf3j8E55237mLG4t5ZvKcJK1W69Onjt9y83Uv9ZKPeuTDHlT7KoR9cHj0N3/7pCc++dZbb7vr6Gg1n89sD8N03TWnXualHl1r2b20/2u/+cfnz+++3Ms89tM/6QMe8pAb+66WToAbj330Q1/mpR71VV/7/T/3S7/7Z3/+D2/8Bq/2oJuve+QjHnzTDdc85em3z2cz2xFar8fZrH/4w255xMNvedmXevSJE8ciBJqm6clPue2v/+YJT3rqbQcHR7NZl2mek6TVan38+PbDH3rLS7/EIx/+8FtqreDW8hm33/1Xf/2EJz/1GWfPXpzPZ7Z5gEzfeMM1Z06fUOhJT3pGy/Yyj37Uy7/siz3q4Q+KWgRO33n3fX/y53/3pCffdv787mzW2+ayTD/0wTceP76NGafpoQ+5KUK2r7nm1Mu/7GOdlmSMidDe/uGdd903TSnxvFar9XXXnX7Ew295xZd7sWuvOR0h0DAM//D4p/7lXz/+9tvvPTg8ms162zwnSeM4lRIPf9jND33IjY955ENvuulaSSXC9jhNT37qbX/1N094ylNv398/XCxm05QSzyKptczMBz/oxsc8+iEv81KPPnXiGBL24dHyb/72SY974tOefusdwzD2fZdp/kNJGsap6+qjHvmQF3vsw17+ZR4zm80Uwn7GbXf/2V/+w5/9+d8PwyQJ87xCWq3Wx45tPfpRD3nxxz78xR7zsPl8phDp1TD8wz889XFPeOozbrv74u7eYj5LG5A0TdN115667rrTQnffc/be+y50XbXN80i7lnjJl3jErO9X6+Hpt97RWvJAwnat9dGPfMgrv+JLPPxht5RasFfL9T884al/8VePf/qtdw7D1PddpnlOEVqt15sbi8c86qEv8diHP/axD53NepCdd99z7q/++glPfPKtd919tu87Sba5zHbfdw9/2C3zeY+57Y57Ll7c67pqmweQJHj0Ix68ubmQdPc9586dvyiJ/wIG8Z4vdu5x5zd+67Zji9r49zIw3vAa7ra1vARCYAAENirDTa8dL3ZHf9uvWQXMA2g6Knu30UaiA/M/kJPZsenMS7nMY3lfd/cfMB7RbeHGc5HIhlsee/h0+iWm614x+x2QcBzeXe/+w3rfXykbL4jEtPTseJ567HTNy04nHk23aSTMtKrn/76e/ZvYe7pWF+kW2ACAnZvX58Z1KGJ1Pg7vxsnzZ6Jvpx7ublM5xv5tGvZRAfN8SbSxnXrxdvLFrFL2nhGXnorE8yXR1pS+nXqx6ZqXbadfMrtNkEgtL3R3/X65+KQ4uB0VVMA8HyJHL65tpx4z3vCqOT9jhbCGS93df1zO/0Ps3YZEFGz+AxjVdurF3W9pOFCO64e9TTv2EJz13N/MnvzjWp714prxptceb3wNl15t3d39x90zfkXDPqXHCYDbyUe738GtXHqaxgNUwTwvlXb8kZ4dk5sO747lORT8ezhd53nqsY6Zxv04urcde9h03Su1E49AYUJu5dKt9b4/KxefpKN7KXMwz4eYlrl5fZ541Hjty+f2LVYIaGO98Lhy9q/K7pO1vkRd4OS5iWlFt9FOP7wdf2Q7+djcvB5sFWGmZT339/W+vyiXnkobKD1uIJ6LTdR2zcuON7x6O/FIRwfIWS48rrv7j+LS0zXsUefY/FeRcOP4td0bv+XOj3zf7nplCfPvYESMR0dtvY5ap9XqJd71nffvuOtPv/Gb63z+Dz/6Y4I3/Iov3b7hzJ1/8pc/+/4fcvYJTyiz2capU6/5aZ985sUeM63X/ebmsH+Q49i8Ovnwh93wii+PdO/f/N2tv/073Xzh1rjMdqn18Ox9f/N9P/Cg13i1+fFjD33d1/77H/5RALv0/TUv9tjZ9tby4i7wUu/x7icf9pCcptv/6E/++nu+7/DcfcduvuUxb/2WD3r1V4u+H5dHT//133r8T//scHBQ+t6ZACApM6dhPPnQhx5/8C03v+qrnHnMo1UKoAi3dvHptz79t3773r/9+4O77+42N5zmv4ZtheBhv/Jduw967IVHvnwdV1bwXyvElBg+6CW23uKhG0+5OH3FX+099dI4L0rzX8gqXXfmQYoAc9VVV1111VVXXXXVfxWg8l+l1EWUis2/g6RxnB78oBs+9APf6dVf9aVLKRK1lAimKVvm27zV656/cOnnfuF3fuhHf/n8xd2+62zzH0fSMI7v+W5v8Q5v93ptQkKQplT++I///mM/+StWq3VE8ALYns/6N3urV3/Xd3rTG2+4FpCopUhMLTPzXd/xTf7275/8Td/2Y3/8Z3+7uZinzQMMw/jqr/Yy7/kub/6SL/6IWitQainB1Jwt3+LNXuvgcPmbv/Wn3/W9P337nfcu5rN1G44d277+ujMRuvues0972u2G13+9V37Qg64fh/HxT3jan/3FP7SWL/Hij3ixxz7s5Iljb/gGr/IHf/zXT3zyrU95ym0Puum6a86cOHFyZ3pSY4ak1Wq48YZr3uUd3+SN3/DVThzbTjtCtYRhmtrrvc4rjeP4u7//V9/+3T/55Kc+Yz6b2eZ+ktbr4aVe8lHv955v/Uqv8OJRiqB2RTBOzea93u0t/v5xT/nO7/7p3/3Dv9xYzG1zWYRWq/Xbv80bvO97v0Ub/QVf+u0PuuWGd3jbN5jP+pZZSwDj2Gy/6zu9yV/99RO/4Vt+5B8e/5Raq+0ILVfrD3q/d3jTN3mVNhFiHNtytRrH6Q1f71Xe8s1eiytM2rXT7/3+X3/G537j3t5BRLHN/SRl5hu83iu/33u9zcMfdrPtUNQunIzT9Iav/yrr9fBbv/Pn3/W9P33rbXfXWmzzAJl5+uTxt3/b13+bt3zdkyeO2ZakUC1qSWvtDV7vlcdh/N0/+Ktv+JYfftqtd25vbrRMLpPUWouId377N3mnd3ij66877XSU6Gq05qm1N3+T17y0d/ALv/x73/9Dv3Dvfefn8z7T/AeRNIzjmVMn3vWd3vQt3+y1jh3bypa1liiapsS817u/xS/+8u/ffc/Z9TBszOc8J0nL9folX/yR7/Vub/HKr/iS83lvu5ZSilpza/kmb/Bq63H8kz/92+/47p/++8c9ZT7r046I5Wr9Ci/34p/+yR8wX9Sf+Onf+sIv/XZAkm0eQNI0ji/5Yo/5mi//xGPHN/7iL574ER/3xdPUJAGAwEbSB77v273NW77usZ2tdNYamUzj9MZv9Gr7+4c/+TO/+T3f/7OHR6tai23uJ2m5Gh764Bvf5z3e6nVf+xXn8952V6uCaczMfJd3fOOn3Xrn9/3Az//CL/9e11UukwQ4/Y5v94Zv9zavA/zYj//Gl3zld2VmRNgGgBJxcHj08i/7Yl/0uR95w42nzp/f//TP/vp77j3X951t/pNJZMbGrH3CK9z1jEuzW/dmGzX5d5Jc53ISBQQgnkkAcq5e7L1XL/5+PDfH6uLsKT85e/z3an0JFTD/o6gw7I3Xv0E78RignP+Hsnc7ZQbJcxNOoqwe/d7rx7xHblyDkwgEBsNj3r3e9cfd3X+IJ54PkVM7/ZKrl/jA4YZXp84AJAQGMzz0zWlDf+fvzf/um8uFJ6ACBuExt246eN1vyo2N7o4/3/7ND2FaogrmgVQYD9uZR++/9tfm8evKuadt/c7HlPVFomLzfCmYDqczL5Vb10N2d/9hHN5DzHDy3ESmF2dWL/7+64e9jfstnEQgSHCuH/VOsX/74nHf3T/1Z2hrVMA8Fzf3xw9e/Yum614RASBIcK4f/nZxcNf88d89e9KPkyMqYP5dRE6eHzt81c+frn9s7N4Xqwvt5KMRpMcHvV479vCNv/7ao5f9mOEhbwYgaG148JvMrn25jT/5fKYlUUBMy/WLvc/qUW9NsvX7n9k/6UfoOmweSKINnh87fM0vn655ZOxf2P6ND+LoPlTA/NsoaGtvPGj/9b4lt47HxTvrhSeMN74GtccQACTY8P717N/O//5buzt+m+h4bqItx1vecPkSH9xOPQZAQYAhPTzkjWljd+fvLv7uW8q5v6POsXkgZx57yOrF3nd48Ju42wSDEAgM6eGhb6Fhv3/azy7++uu03qUucPIcJE/LF/+g4aFv5tkOhgBDmge9wfIlP7S/7dcXf/MNsX8bUbD5ryLhtR/5EvPXfcPNn/+p/a4T5t8sM/uNrTv/7C/++Gu+/lU/9qMUUUt5jU/7pDqf/eFXf123ufV3P/qjRDz2bd/6dz7vC+973OPqfLFx8uQbfMkXPPqt33I6Wtb5fO+OO373C75o/557+n77xld8hc3TZ6bV6um/87u7d9w23z7u1rif7VLqhSc/5eJTn3btS7/k9S/3sje+4svf+ad/rlI2T5x46+/81pte4pH33XrX6uLudS/1WESOPPpt3uzkwx/6B1/+VW/0FV/yqLd4Y4zENLQXf4e3vfGVXuFXP+FT2jBEKbaRsjXg5T7gfV7pwz709KMf7gShIApATjh5lY/+iGf83h/87ud/0W1/8EfRVQTmv4CcWbv5xfte/Ie+5M8+4uvWJ67RNCLxX0ViSmw+8mV23u7hG2P65a+bPfZk9w/nh42qNP+FRLbumgehwEbiqquuuuqqq6666qr/EkDZ3Nzkv0JubF232DjJv4NEpk+dPPZJH/s+r/6qLz2O4/Jo9dSn3/5Xf/PEv/n7J+/tHwJd1/V9fdmXeczmxuKv/+aJ4zRFBM9Dku2uq6/2Ki/9sIfevF4Pf/ynf/ukp9zWdZ1tXjBJ2fIVX/7FH/aQm4+Oluv1eLRcHR6uMv3Up93x27/751NrkngBptY+8H3e7oPf/x02NhbZ2qW9g6c//c6//fsn/d0/POXwcNV3XSlx3bWnX/kVX+LOu+570pOfMZt1NoCkcZxe/VVe5lM/4f0e+pCbxqmt1utn3Hb33/z9k//iLx+/u7s/TlPfdyXixR/7sIc85Ma/+MvH7R8ctZY333zdm7/xay4W87/9u6f8xM/+5nXXnnq7t379G2+45s677vvyr/7eH/iRX/yjP/6bJz35GS/2mIdee+0pocc9/mlPevIzXuwxD3uJF39413V/8md/9+Sn3LZYzIZhvPaaU5/4se/9Zm/86hJTa/edvfCUp97+l3/9hCc/5bZxHOfzvpR4xMNvfsyjH/LkJ992973nulq5TNIwjI997MM+45M/4CVf/BHDOK5Xw63PuOtP//zvn/jkZ4zD1M86STdcf/plX+YxT3vaHc+47a6uqzyTptZe+iUf9ehHPvT8hUuPeMSDXv1VXmYcxqc8/Y5bn3HXX/7145/45Ge0lov5bGp5yy3XP+whN/3xn/7tpb2Dris209Re/VVf+pabrj86Wq7X4zCMkoBxbKv1sF4P6/WwWg+r1drJU592x+/9wV8OwxgR3K+Usrd/+Iav+8qf+onvd/rU8XGc9vePnvSUZ/zJn/39bbfdA+r7DvTYxzz0YQ+9+c//8nF7+4eliPtJTC0/5APf8T3e9c0ktZYXd/ee9vQ7nvq02//wT/7unnvPLVfr+WymiIc/7ObHPvphf/cPTz53frfrOttclul3f5c3/ZAPfMf5fDZN7cKFS0944tP/+E///r5zF0Lq+67UeJmXevTpk8f/6m+esFqtI4L/CJIyc3Nj8eEf/C5v/7avD0xTu+eec3/790/+67950u7eQTrn8/kjH3HLddeeLqXMZt2f/cU//NVfP2E+n9mWNAzjYx710E//5A942Zd+TGttHKc777zv7x/31D/98384e+7iehi7vivSQx9604u/2CP+/nFPufuec33f2a6lXLi496hHPOjUieO1K3/110+8977zXdfZ5jlJeuu3fN0Xe8zDjo7WP/1zv/kXf/n4UkJSa+3YztabvNGrbW7M+657hZd7sa4rT3/GXU996m1//hePu/Pu+0opfd9FxMu/3Ivt7Gz+yZ/9XWZGCAAkjeN0w/VnPuUT3ve1X+PlpzYNw3THnff95V89/m/+/smr1brru4g4cXz7lV/xJc6eu/j4Jz691splIa3Ww9/9w5Mf88iH7mxv33zTtXfdffbJT7mtlMJlklrm9vbmB73/2z/i4Q86Ohq+83t+6qd//rcW85lt/vWM+uI3feju9dujUxL/IonMOL45Xr8x/fZtOwlDlte44fxLXz/gEP8GHh70xrnzINxAPD/KUTkqR+WoHJWjclQO1Pl47cvH4d313j+jLsD8uwgFEhISEph/DwnF8PC3ma5/JeUwe/KP1bv+gLqBk+eV0+qlPmT50h9BVOUYy/vqub/r7v3LODqHm7tF7jw4N6+nzqnzeu7vunv+GAwCkWOeeNThq33BdO0ryJPaWPZvq+cf1939x7E8p2lF6SW1E4+YrnnZ7t4/0dFZSgcGxeHd06kX8+IGotT7/iIO70GF5yLhcbzpdaebXktTmz3tZ/un/gx1AyfPn3CjP75+zLu144+K1fn54743Lj2FugDzXGwUR6/8WetHvL08qY1xeFe976+6+/4qhj2iJwr91njDq2s6rGf/GgXPJNzy2EPGm19HKrlxbR57sIaDsvvUev4J3T1/FsMuCqKjbow3vEqMB/Xc3yLx7yUwZT7d+Jruz+CWG9fG0b3dXX+gaenZcS9Ojde+/HTtyyvHev4fyoXHUeeotGMPi8O7y/m/JzqAnFBtp19a6sixu/dP1dYoeA7CrV3zMsND3lwu3Z2/O3v891M6/j0EOXl2fLz5dXFHlHbyMXLG3u3l0pO7+/66XHgSbaB0knLzhun6V6p7t8alp6HKs4m2Gm963cNX+Zzcvkk5aDysF5/U3f0n5dLTIakzoXbiUe3Ui3Vn/1bL+4jKszjpFoev/NnDQ95UOcktju4tu0+pF55Q7/nTWF1QG6hzokxnXjq3b+7u/VNNS6IAYKIbb3nD3L5Ziun0S1L6snd73X1SvefP49IzRKPMhNupx+bxh3V3/p7GQ6Lw7yVeZBKYG2/uLp6bbnvG2PdKk1AR/3qS2jje+cd/FqXe9MqvwGU3vfIrCm7/oz8pXX/2H/7hyb/4K/t33126buu6a97gS7/o0W/15tPRssxnB3ff/Ssf90lP+sVfDmlx8sQrfOgHnXrkIw7uu++vvvO7Lz3jjojggewym+3fdffpRz/ypld8hdJ1d/3Zn9/9139d+lm3sfGIN36j/sQpzPb11116xh1P+bXfasN6fvzk1nXXPvi1XvOmV3yFabm+84///K6//rv5zjZRzjzm0Ref+rR7//bvouuwAbf2Uu/xrm/4ZV+8OHF8Wg/D0eH5Jzzp3BOedOtv/cF9//DE4fAo+k6lHH/wgx7yOq918elPu/DkpygK/04SLxrZ2fUb5+7oDi/d9xKviQRu+xfK9in+k0m0xPCRL7Pzdg/fGJq74I6D6aefurywyhoy/ybi30JI4XF9+Ne/wrRG4qqrrrrqqquuuuqq/xJA5b+CbBQVBObfStJ6WL/+677yS73kI9fr8XGPf9rXfdMP3Xn32XGc2tQWG3NJr/4qL/X+7/N2x3a2Xue1Xv73/+ivfvO3/3R7e6M18x/Edq3lu7/vZ3/sJ38NGKfp5V7msR/6Ae9Y60ZE8IJFxNHR8s3e5DXe5i1fdxin9Xr4uV/4nZ/42d9YLdfDMLbM2aw/trP1bu/0pq/3Oq+0vb350R/+7ruX9v/m7548n/XObC2vuebke77bWxw/vr1aD3/1N0/8zu/5qbvuPrsexnEcF4u5pEc9/EHv/z5v+7CH3vwyL/Xot3vrN/jO7/3p5XK9mM+2thattfvOnl+t1qdPHT92bCtCT3jirU96yjOuOXOy67onP+UZf/DHf/PSL/XozY35sZ0tRVy4eGm9Hufz/kG33LCxMW8taynv+HZv8Mqv+BKHh8uLu3vf9b0/8yd/9nfT1FarATHru5tuuvZDPuAdH/uYhz3y4Q/6kA98x8/5gm/evXRQStgGSol3ets3vOWm61bL9eOfdOs3fuuP3HHHvav1AMz67vTpEx/2ge/00i/1qJMndt7jXd/8qU+7Y2//ICJsCzAREaHNjfmxna0/+OO//rbv+Imz5y+2luv1IKnvukc8/JYP/5B3ftDN1z/8YTe/xqu93I//1K/Z2J7Num/69h/7nh/4OWAYp9d41Zf+gPd5u83Nxc//0u/+wA//om0kbEDSajUsj1YRYRsAImK1Wj/iYTe/x7u++azv1+vxd37vz7/3B3/u4u7+ej2UiNmsf/EXe8QHvu/b3XjDmRd77MPf7m1e/+u/6YdtrpA0DONLvPgjXvVVXnq1XK/Ww4//9K//3C/8znoYpqmtVsNs1pcSD7rl+g/9wHd61CMe9JIv8Yj3eve3/LKv+p5xHCMCPE7tZV7y0e/wNm/QWluth5/+2d/60Z/81Ta1o+V6PutLLa/2Ki/9/u/1NseO+TVf4+X+9C/+/id/9jc3N6pt/t0idHC4er3XeaXXee1XWC7Xly4dfPf3/+zv/cFfDuM4DtNs1nddfbVXeen3ere3OHXqeGst0yAAkLC9ubF4t3d50wffcsNyuXrarXd++3f+5JOe8oxhHNfrYTbraynXX3f6fd/rbV7mpR79oFuuf/d3frMv/crvWq7WEVFrvevus49/4tNf6iUeecN117zYYx72lKfeZpvnZLvruhd/zMNmfXfPfed/7w/+0rYkHiDTJ08eu/e+89/yHT/+p3/+9xGxXK66rna1vt7rvNJ7vftb2n7913nlv/zrJ/zKr/2hVABA0tTam7/Ja7z0SzzqaLm66+6z3/RtP/oPj3vqOE7jNC3ms42Nxfu+51u97mu/Yq3l3d7lTR/3+Kc94/a7ay22057N+rNnd3/uF3/nIQ+5cWOxeIe3fYM//4t/2L20X2u1LWm5Wr/R67/qq77SS0fo8U+49dd/80+6WiXZ5r9KyJ7itR+8+4G7s6/7y+v5L6Dg+cqRqLlxLTkhYf7tFDiZlmTjiqjUOQgnz0UBAnCCeb4UtFVuP2i69hWsGoe3l/P/QFQwz0209Xjja6wf8Q5qK8bl/Ak/2D/1J9XWaoPLjKjTNS+zfMkPazu3qK2xkXgm4aTMli/+fu3YQzUdlt2nzv/uW+q5v8dN09J1TtTcunn14u87XveKbefByxf7gM0//mxyRAUFdr33L6brX9Xzk+ONr1nv+yuem8jJs5PTda/ouojV+Xr2r3nhFIyH05mXmU69OLhcfErZezp1A5LnJnK9fvS7Dze9lsYjrS4s/u6buzt/jzYoB5e5u+31I99x/Yi3ocxXj3znct9f1fv+nLqBk+dg+u169m82/uIr4+B23NTWrguiWz/qXVaPeEfV+eqR79Ld+Xux+xTqAif/HjZgFaJQF/W+v9j80y/S4V3MTx685pe3449sp7Zxzv/+O2ZP/GG19eqR77B6iQ92vzVe+3LdM35F0xIVoq93/2Ec3jPNT7cTj3J/TMMlomAewCjGG141+215qvf+JVH5D+IoRMHR3fun87/7lrL7VJxqK8Bl7sWpo5f68On6V3F/bPWY99y698+Y1kgACDdv3rB68fej31ZbdXf9weKvv17ri5pWVqH07fjDj172Y/PYw9rxR6wf9U6LP/lcEBgA4Tbe8BrTmZfWeKj1pfnff1t/x2+TjRzU1q4bSNM1L7t86Y/MrRuGB71hufjE+d9/OzaI+wm7LDQeLP7um/un/zIKTUeOQnTT6ZdcvuzH5OYN05mXXj/yHed/963Y/NdyUnq98VvtnD3bbn/G2M1E8m9ju3RdTtMffPlXAq/80R+GkfTKH/ORwB9+1deWrgdHKVvXXfuGX/ZFj3jTNxmPlnU2O7jr7l/5+E9+0i/9SrexMa1WdT4/dtNNEgd333Pnn/5ZlGKb5yRpytV9j3/CcHjYb21tXXd90gSIKCVq7TY3nv5bv/Nrn/Rpe3feuXPTjW/3fd914mEPW5w82dbrP/iyr/yr7/renKZX+NAPetWP+chuc/OW13i1J/3CL03rtUpxa93m5ku+6zsrYlqvn/hzv/CHX/FVq929nKbx6ChKqYvF4uSJV/34j3nUW7zZzo03vuonfNwdf/xny4sXo+uw+S+hzDbfvPFPfnH/xkc89U0/oK4Osfn3CQGkeUFCTInhI1965+0evjE0d8E9R+2r/nLv8ReGeVWa/2q25lsx325He0hgrrrqqquuuuqqq676zwcE/xUsFNHx7yApM8+cOv56r/OKs1l/ae/gm7/9x/78rx6/t3ewXK7Gadrd3b948dKP/MSv/tTP/qbtra2Nl3mpR83ns0xL/AeSdP7Cpaffeuetz7jr1lvvuu/shbTFCyOptXb8+M7rvfYrLxZz2z/+U7/+9d/yI3fcce/F3b2j5WoYxkuXDp52651f9XXf/+u/9ceL+Ww+6x/xsAf1Xc1MRazX61d6hZd46ENvBD3pyc/4gi/9tr/4q8dfuHjp6Gg5Te3SpYOLF/d+7w//8ku+8rvuvPu+kF71VV7q1KljaZ88uROh1vLwaIW9vb21ubEQuvOue8+f35U0jRNib/9wHMeNjfnW9oadu5f2h2GMiGM7W33fLZerBz3o+td89ZezvVyuv+4bf+hHfvxXzp7bvbC7t1oPq9Wwe+ngL//q8Z/9+d/8hCc+fTGfnzy+85AH3ziOo6SIWK+Hl3rJR73USzwSc9+5i1/5td/3J3/6d7uX9lerYbUadi8d/MPjnvolX/ldT3zSrZIe86iHvMxLP+rwcBkRPIDtWuttt9/95V/9PX/7908+f/7SpUv76/W4Wg+X9vZ/7w//6qd/9jenaapdfemXfOTm5qK1JiHp3Lndp996563PuOvWW+88e27XtqS9/cNn3Hb3rc+46xnPuOvW2+6+9ba7n37rnffedz5tHkBiHKeXfIlHPuTBNxr+6m+e8NXf8INPfurtly4dDMN4tFydv3Dp13/zj772G39gb/8QeNVXfqmHPfSmaWqSgAiN4/joRz74+M5W7epv/Paffud3//Sdd9138eLe/v5Ra+3w8OjSpf0//fO//+qv+/5777vwtKfd8XO/+Dvr9ToibIPa1F791V7m2LFtKX7jt/70W77jx++99/zupYNpmvb2Dy9evPQjP/4r3/19PzMMY+3qG77+q15/3elxHCXx7yNpHKdrTp98ndd6xfmsz8wf+Ylf+cEf/aXzFy7tHxwN43hpb//suYs/9pO/+nXf/MOHR0tJtrlfRCyX68c+9qEv9RKPNNx334Uv+Yrv+o3f+dPzFy7t7x9NU9s/OLq4u/c3f/ekL/ry7/z7xz9V8NIv9aiHPOSm1WqQZLuU+Nu/e9KlvYP5rHvFV3ixra2N1pok7ieptfbyL/vYB91yveHJT739/PlLEcFzkhjH6Ud/8ld/9ud/e2/vYHd3bxynw8Pl+QuXfuTHf+XHfvJXgfmse81Xe9kIcVmE1uvhYQ+56VVf+aUlHR2tvunbfuyXf/UPdy/tHx4tx3HavXTwjNvu+sqv+74//OO/CcWN11/z6q/2MsvlKkIAkJnzef8rv/5Hf/THfws86hEPfqe3fyMQIGkcp0c+/EHv/A5vPJt1l/YOfvBHf+mOu++bz/rM5L+YwPHujz3/Jg+9uJqiiP8mAcLJv5NEWwPtxKOn615xuv6Vp+tesR1/OG2grVHhubQV4z7jPp5AvCDZ2vGHt50HQXb3/WU9+9fUBU6eiwDGm1/X/Y7R7Ck/Mf/7b4nDezTs0dYaLml5rnvaz23+6efF0T2ognkWgafp9EtN17ysnDq6b+NPPq+77de0Oq/hEp407Gl5vtz755t/+Onl/D/IOV33Cu34w3ADUJDr7q7f1/qCo2unX4JuA5IHksgxN66dTr0YKPaeUe/7K+ocJy+QidpOv3guTqut691/qP3biA6b52bqYrzptRUdbvO///b+yT+m5VmN+7RRw6U4eMbir76qf/ovYefGNeMtr09Z4ATxQAqtLy7+9pvKvX+q1QUNe7RR610d3jP/y6/s7vwdsDfODDe/HtHh5D+MaEP/jF+NC/+gHLR/ezn/D0ioxN7T50/4Aa13mZb9nb+v1XkUuXUTdQMngKTpqJ5/vNxy45rp+ldCBZsHcrrbnk69BFFjeb6763fJCYn/KCo6umfx519a7/g9Lc9qdYFpxbTS+mKc+/uNP/2CsvsU0HT8EcONr0UOKAAUTEfjtS/fjj3MqJx/3MaffUlceLzWu7S1piOtd+sdv735Z18Uy/sMw3Wv0q55WaYlCq5wTqdfkjJDZfaEH5g98Yd0dI9W5zUe4KbhklYXu6f/0uKvvoZp2d3zJ/1tvwoGgXkgqb/t12eP+x6tL2h1gbbWeKTVxe62X1v89ddpPERlvOHV3O/gxn8tiRzZOV3f5C23jx0rrYH4N3Nm1OrMP/jyr/zjr/4GhEERr/wxH/mqH/tRRIxHq+0brn/DL/viR7zpm4xHR3U2O7j77l/5+E9+0i/+cjefY7vlbHtncfq004f33jstV5IARZSuK30XtQJ2Fs0O775ndXGXiGte8sV3ztzQhkESoNB4ePi4n/ipex//d20YLjz1aXf/zd9GjYg4+/gn/Pm3fPt6f384PHzKr/za8sLFKOX4gx5U53NnSsrWrnupl9i5+aaIOPv4J/zaJ3/6vX//94f33be8cKENw7hcHp07d98/PO5XPuYTnvE7v7vcvfQ33/sD6/39qBWb/0IGpIf98ned+dvfnWZzOfm3EgiWk4fmEM9XiCkxfORL77zdwzeG5q5wz1F+5V/u/eHd6xqy+S8n46i9SmfMVVddddVVV1111VX/VYDgv4akKPz7tMxjx7bvu+/84eHy8U98+tOfcdfmxrzWWkpIqrX0fdf3/d//w5N3d/ci4qEPufnEiZ1pmkD8h+q6Op/P5vN+Pu+7rop/gaRhGB/64Bsf8uAbInTrbXf9yq//4dTaYjGvtZYSIdVaFvPZ0XL1fT/489/wLT/yqZ/1dT/6E78CCMCllMc86iEbi/k4jj/3i79z773nt7c3aq2lFEm1lq6rGxuLJzzx6X/653/XWt5w/ZmHPeSmWd/dcP01oNZytVwZQkQIABkAA0iIK4zQehjSKWk+70MyPPxht1xz+iTwp3/+97//R3997NhWraWrtRSVolrL9tbm7Xfc83Xf+ENf/80/9Cmf9bV//Gd/t5jPMjNCq9X6QTdff/LkMcTv/N5fPOnJzzh2bLuUUopKUa1lZ2fraU+/41d/84/HcdrcXDzsYbd0XWebB7CJ0D887ikXL+4tNuZdV2utpaiEaq0bi9kf/+nf33vfhRJxw/VnZn2XaRDQdXU+n83ns/l81nUVAdQS83k/m/WzWT+f9fNZP5/P+r7jASSNYztxYudlX/rRtZblcvXrv/XH9913fnNjUWsJqZTo+24+n/3t3z/5L/7qcRE6efzYwx928zRNkgBQSx8/tt333TS1v/7bJ17aP9jcXNRaay2SSola6/bWxt8/7ilf/tXf83lf/K1//Cd/23WdbSAzd3a2HvnwW7paLu7u/cIv/944TovFvNYiqdZSa93e2vj13/qTJz3ltoAH3XL91ubGOE6SeIAIRShCEYpQhCIUoQhFKEIRipAk7idpHKdrrz31iIfeHBHPuO3u3/rdP9tYzLuu1lJCqrX2fTeb9X/+l//wt3//5K6rtrlMXOFHPfxBJ47v2P6N3/7Txz/h6cd3tmottRZJtZRa6+bmxp133vt7v/8Xq/X61Mljj3n0Q0sN2+Ba69/83ZPuuOs+SY98xIPPnD7RWvIAkpar4SVe/BE7x7am1v74T/52b/+w1mKbByil3Hf2wh/84V9vbi66WmutIZUSs1kv6Vd//Y/uvOs+RTzkwTdef92Z1lJCimEYrzlz8sYbrpH0V3/zxD/9878/fny7llJKhFRr2drauHBh7+d+6XcPj5Z93z38YTdvbCwyzf0kDcP4Ez/962fPXai1vNEbvNpLv+SjjpYricx8u7d+vYc+5MZM/9Gf/O1v/+6fL+azlsl/OUEms1n7mJe/++EnlgdjIPPfwCAQ/y4iJ2/esHyZjzl4/W/bf5Mf3H+T799/kx88eL1vWb3Uh3vzBsZ9VHgm4cxjD5uuf7Xp+lf17CSeQDw3kROz4+NNr+tuW+NhOfd32DwfIqfcuqmdeJRVYnW+v/WXaWu6DVRRQZXo6I+Vu/+ou+uPUADYPJNwTte8jPsdQ/+MXy0Xn0jdoHSoglAlOroF673+Gb9OTtkfG294NRAYm+hifbFceBKo7Tx0vOYVaCMKnsVJ1Onal/PijDzW83+n1QUIXhAFbZ0b1w83vQ6qWp2r5/+e6ME8FwVtmE6/ZNu+2Ypy8Qn9Hb+FCmWOKgpUKQty7J/xK1qdI8p08tGeHycnxLPZRBeXbq33/SV1g9KhigJV6hzF7Gk/y3jkqNPpl6LMcPJAEgoUKFCgQIECBQoUKFCg4LnZkoa9culplDkqRI2j+5wNRdm/gzZQekof+7fF6jzI/Y5LB4kA4ezu+C2mpet8vPYVADDPJtyma1+2bd0MlAtP0LBPFMyzKVCgQIECBQoUKFCgQIECiedlrIjVxXLh8XSbRE90qKBCVPqdOLynf/rP40a/3U49lmkFAsBE304+mm5TOfS3/pIO7mB2DFVUUCEKsxPlvr/u7vhtgTfOtM0bmVYoAASQ85NEZTrq7v0z3KgbRIcqCFVKR7fR3fFbm3/02Rt//Dlx4YlEB+Y5iGlVz/4V0VFmREUFFUpHmXd3/n65+ASjtnVjO/lonCD+a0XgwQ99sfnrvOFmm4z593Bm1OrM3/+yr/jjr/4GSYBKeZWP/5hX/qgPP3bLTW/wxV/wiDd7k2m5rIvFwT33/MrHf9KTfvGXu/ncYFslTj7ioXXW23lw770GQNK4XO5funtv986jvfPYIEUsL10aVytJ82PHynzmNMhYEcsLF84/+SldvxGlRMTeXXdnS0Wcf/JTchxr35e+v/jUpx2dP09odmwnasUGSG9dd123sQHc+/ePm1arfmOr9H10nUpRKdF1/ebmen//Nz/jc37ugz70r7/7e52JxH8t2Vn72d75x/7ol22cvaN1c9n86wkm08xLnO5u3KrLyeK5SUxJmo986Z23e/jG0NwX7jnMr/zLS39493pexH8Xo9LHxg424qqrrrrqqquuuuqq/xpA8F9Cilo6/h1sd7XcdvvdX/qV3/Mxn/Tl3/odP350tIqIzLQBbGe6RJy/cGlv/1DS5uZ81tdM8x/Ntm0b29j8SySN03TmzImTJ3aAv/qbJzzt6XdszGetNds2BtuZ2ffdHXfe9/Xf/MN/+deP39iYA0jT1K655uQtN19fSpw9d/FJT7nNto1t24Bt27ZrLU9+ym3L1brvuhd7zMNrLdM0AQJJXGGeh8E8gBCXGVrmxmL+6Ec9pOvrajX81d884Wi5kmTbto2N7bG17e3Nv/2HJ3/dN/3wHXfet7kxT1uitdzYXDz0ITfOZv3h0erxT3z6crWWZNvGxnZm9n132+13X9zdLxEPf+jNp04dm6ZJEs9kicy89+yFaWoC27ZtbGyDLlzcPTg8sr25tVFrsc1ltm3btm2MAQyZtm3btm3btnlOmW1rc3HTjdeVUs6d333KU2+fz/vMtG2wycxay97e4V//7ROnadrcmN94w7VTaxLPYpCYpjZNrZZiY9s2YGM704v57I/+5G/+7h+esrOzlZmApGlqD77l+mvOnFTo9tvvueeecxFh2zZg23ZEXNo7eNrT72iZW1sbD3vozaUU2wAgkZmHh8vDw+Xh4fLwcHl4uDw8XB4eLg8Pl4eHy8PD5eHh8vBweXi4HMeJ+0lMU9vcXJw8uZOZT3jyM2677e6uq5lp22A7M7uunj+/+7d//6RMSwIDiGlqOzvbD33ozV1X9/cPH//Ep0/ThLBtG7BtOzNns/7pt9556dKBIh7zqIfsbG221kAR2ts/+Pt/eMo4tTMnj7/cyzwmQrYBQNI0tZtuvOYlX/zhXa1nz178u8c9eZqaJB7IhHTu/O5dd98XEWnbNtjYLiUODo+efuudkna2Nx/+sJtba5Kc2XX1oQ+5cXNjPo7TE5/89EuX9iOUto3Bdqb7vrvvvvN333MuIm6+8bqbbrxmHKcIcZntvq9/83dP+smf+c02tTOnj7/LO77R6ZPHjo5Wr/yKL/E6r/kKku66+74f+tFfihCY/yYhcoprdtaf8Ap3XbMx0kKY/43c3B87erlPWL3Ye3t2XNOK4UDTyhvXLl/yQw5e48un616JcQ+EgihMR+uHvfXha37F4Wt8aTv5aKYlCp6LIKfstqbTLw7E/u39nb9L6XHyXCRyzJ1bcuMMqFx4UqzOU+a4gcFgMCSq5eITaWskHsjZtm+izDQcdvf8CW2NAhsMgMEg3Oq5v9GwR+lz+xYkAEx0Ojrb3fV7ysHzE+30i9FWIJ7FSfTjDa/q0rPe6+7+ExS8MMbOYw9pOw8RWS88oZ77W0qPk+flKbducr8Drucfp2Gf6HCCwWDcKLN6/u/L/u1Abt6Q3TZuIB7AUA7vQgFgg8FgbFDZfXIsz4rIzessgXmgac14wHjAeMB4wHjAeMB4wHjAeMB4wHjAeMB4xPMRmo7K3q1I2Dg1HoDBGi6BATAqmtZgSo8KBkAA5cLjy/4dEO34w3PzRpw8i0QbppMvxmxHOXV3/JZWF4kOzDOZ6YjxgPGA8YDxgPGA8YDxgPGA8YDxgPGA8YBpxQuiIDpIMBgMxgbIsZx/vNa7Vmk7D2bjGjyhIEcvzrRjD3UULc+X3ScD2GAwGBsg13HxSUxHLrN24pH0W2QDcT8jtQEnCmwwGABjA6h2t/5S7N9Ov42T52ArNB7Ui08EYYPBYGwkcLn4JLlRN6bjjwDz30GCwa/4ahuv/OqLcbTEv4czo1bsP/jyr/zjr/76nCZswSt+2Ie89Xd9+8Pe+A2n1Sq6bu/223/l4z7pSb/4K91iYcDGlrQ4fiJqdWZbrrEVMa5Wt7zqq7z113/bO33vj77WJ35y6fucpihldXF3vbcHzI8f6zc20o3LpFjv71946lMVYTszh709jDPXFy8abGMrYlwusbvNzajFNgAGgYD1pUtuE5JtbGxsbGfW2ezck578hJ/9ueg6RWDzX07ZpsXW9l1PefSPf1VdH2UU/vUSqnjnR2584aue+OxXPv7K182WkyWeRaIlho96mZ23e/jG0NwFdx/mV/7lpT+8e72oMv+NTCnqF5irrrrqqquuuuqqq/7LAJX/OuLfx6bWun9w+Jd/9fhay3w+k3ggSdiS0gawbRD/7QSZPn5sezGfD8N49z3nh3Ha2BDPw3bX1dOnj2c6MwGJ1vLYztbOzhbowsVLR0fLxWJeSkSIB5Bk+wlPfPpqPWxuLU6dOhYRAGAA868nyPSs766/9lREHB6t7r3vQleLzXMRZOZiPtvcmLeWmQZArbUTx7evu+4UsL9/uLu71/edbR7Adinl7H0XLl7cu/6606dPHtve2rh4ca/WggEMQKafcdvdq9V6Y2ORmTyABOjixX3BvO8ign83QaZns9mJY9vAhQuXnn7rnaUU2zwnO++++9zh4fLEiWMnT+w4DQLAIa1W62lqfV8fdPP1koZh6LsOYdvGtu20NzYWQGZymURmnjp1fGNjYXPvfedXq3WU4DnZjojb77hnGKauKw958A21FttARBwdLV/ixR7x0R/+bmkDEi+IzQ/96C//3h/8ZSkBZOZ83j/y4Q+qtY7TdPa+C6UU2zwnoXFq+3uHmRkhLpOUmZub85MnjknaOzi4uLu3WMxKFEk8p4juSU95xt7+4Q03nDl5YqfrOx8tAUk2f/rnf/8mb/Rqx49tv8xLP/pnfv63bUsCInRwuHrNF3vZhz74JuzHP+Hp995zfj7vbfMABmCaWq01MyVxP9sRsVqt77jr3mw5m/XHj22lDWrZNjbmN990bYQODtdnz17s+y7TPIDtUmJ3d/++sxce9YgHHTu2dfLEztNvvRM6MJdJUuiXf/UPXunlX+KlX+pRL/+yL/Yar/Zyv/Fbf/Lu7/Lmx49tT9P00z/7W0956u1dV23+G0lmKq/3oL2nnc+xqatg/pdRMC2Hh7zZeMOraTyMvadv/M03xsUn5snHHr34++WJR06nX+zw1b5o46+/tnvGrzIegZmfbscfnrPjGvbIEcTzsoky3viauXWD3Oq5v9PyHFF5PkS2nJ903QSX/WdodQEVzHMwCA2XyAnEs9jUuecnrCjDJQ17lN5R5eSBFJRew4FWF9m8NucnsRGXCVwvPF5H9+X2TdOZl/H2LVpdQAUMwtlOPLIdfyRQ9p9Rzv8DEi+Ek9IPN72u+21Nq3rPnzItKXMwz004c3GKOpez7D6Z9S6z47jxHMR4FAd3yenZDnWBk+dmcsSJeG4SbYyj+9qJR7jbzJ0HlfOPRwIgiW71Yu873PiayhGEeD6Mo5TDezb/6DNpa1R4oGwaD0BcpmFfOTo65QQGAWAU2FYBgQEMUTUty9m/nk4+Kjeuna59+f4pt1I7nCCyefOGdvolHX05uL3sPhkMAkDk6PnJ5ct+zHTsoWoDEs+X7dJ39/7F/O++RdMSFZ6bef5M6WLc1/ICG9fk/FRuXBOXnkbtcPPsmGcnQbG6EKsLRAfmOZjoy+HdGvbcbbftm90f07BHFAyg6UhOd5u586By9q/wRHQANhgnAKbfAePk+fKk5Tmej6ANZe8Z5Eh0zE9i/rvYxCxe4VU2fu/3j/h3c2vRdTkMv/9lX7F9w3Uv8a7v3NbrOutvfpVXXF/aUynjavkHX/HVT/i5n59t75CJzf36ne2onVvu33cfkK1tX3/9a3zyJzziTV/XZjh4q3G5/Itv+06kHMc2DECd9aXrwBIAIsdpfWlPEoC9unQpp7H0ndM8iy0FQKYNCEBa7+/lMACnHvGwqN3q0qXZ1hYR2LbJtG27zmbdfJ6t8d9H2Vq/uOHPf/WJr/CGRw+tGtdIvMgEU7Izizd/yMaZRTk1j49/uZ2v+Iu9P7x7vdEpTYgpMXzkS++83cM3huYuuOcov/IvL/3h3etFlc1/Mxsn4qqrrrrqqquuuuqq/zJA5b+Kbf7dbJdSdnb6YRgvXdpvraUBc5mkcZy2tjdbSwDE/wCSptaO7WzdfNN14GEY9/cPaym2eX5sT1Pj2dQyt7c2tjbmwL33XXjG7Xfv7x+VErZ5AEnr9VhrHcexKDY3F5LMv5ftWuvOzpak5XJ5z73nJIF5fjIzkwdKu++6jcUipKOj5aW9g5DAPKdS4sLu3v7BIbBYzPu+SxsE5n6Cg/2jqTWJ52W7tYaQQpIx/04i7a6ri8Xc9t7+4TRNtVaek01EWQ/DcjWcgBMndk6ePDaOkyTbtZZbb73z4PDo2M7Wm7/Ja9xx5z1/+Md/c+7CpdZaLaV2dT7ru1pbZmbyHJT21ubGrO8yc/fS/nocQwLzABLgS3v70zTO+m5rcyMiMlOSxNTasWNbr/RKL8aL4Hd+/8+Nucym1nLi+E6EhlW7tHfA82OQJAXPKdOL+ezYzqbg4sX9p996x/nzu7WrtnlOtkOxXK4kbW4sSgmbZ3nyU59x+x33nDi+88iHP+ghD7rxKU+7rdZiA4T0qEc8aGd7az2Mf/FXj7v3vvPHj++01ngeErZ5HqXE3v7hrbfeZbvvu52dLaclbEopm5sboVivhwsXLyGeV4nYOzi8uLsHzGb9fD7PtMSzZHrWd3fdc/ZHfuJXHvygG06dOvbmb/qaj3n0Qx/58AeVWv70T/7+l37tD0oJSbb575NW6adffeKJo9Xykdcc4sL/PsJtOv0S7re03l38zTfUW3+JuhkHd2yf/evlS37w8LC39sa1h6/0mf11r9I/+Ucps+HhbzOdeWncyoXHl72nU+eQPDejGK9/ZcqM1aXuzt8DQGCeD7vbJDqwju5l2Gdxipx4Lgab5yA85fbN7k8AWp2PgztZnlOZ4eSBFLS1otd0BHLdJDowgJO6KJeeVs8/bti6qZ14xHTikd3tv0l/DDcEnsbrXtGzE7jV+/5K4wEKMM+fcPPi9HTmpaSIw7v723+TqLwgtrstVGlLDfs8f0ahYR8nlNy+uZz/e2yem3j+JDeNe9iUPucnC+ZZFNPJx463vIwaiBcoyN2LVgjzXCQrxDMpB2wAxHMSdl04Cs9kVBgu9Xf/wfDQN6fbmk6/RP+UnwQDKJgOp5Ov0o4/DFHO/W3Zv526wAkgwI5uvPYVpmtu1gTi+TOuKEdUwPwrGBUNexp2QdS5ywwbwHadu98EazzQeIgCzHMwkoY9TUskd5uUDicUAFQuPokciLp67HtrdaGe+1uW5wGiEh11jgpuuPHCCMTzkmhD7D0Nm4isG/z3kWDtP/q9I0n8uynC02Tzsu/zng9/ozfMaVKtOY53/+XfnHnso9swdPPFy73ve198ylOf8ft/2C0W2NxPpSpke1qtgZymzWuvPfagW47O749Hy/mJ4ycf9jBJzkRSBOC0bRDPIkUpmSkJaOu1M0H8C6xS7v7Lvzq8777FqZM3v8qrvOKHfcjffN/3X7rt9pFloQu6upiXvsfO1pzJfytHqcuDO171LfdPXte1EYl/DUMJDqf8g7vXN26VIbluo3zcy+3wl3t/eNd6q4+x2eYjX2bn7R6+MTR3hXsO8yv/8tIf3r2eV6X57yehwFx11VVXXXXVVVdd9V8GqPyXsLO1gf8Itnd392+68ZrXfPWXO7az1XU1JAMgqbV28uSx48e2neZ/kgjVWpBaa+MwIF5EAttd13Vdba3dcvN17/mubzEMgxS2eQBJrbWtrY1aS2ZubW4ohM2/h7hCUkjDMN11931S2LwoJGXLjY3Fzvam8XK5Xi7XEbJ5INullPvuu7C/fxihvu9qKdg8D4WEeEEEAAZA/HvJdtfV+aJ35v7BIYjnR9IwjMMwYG8s5hsb84sX90opmZ7N+j/7y3/4wz/+m7d8s9c+c+bEp3zC+/3N3z7pz//yHy7u7u3tHd539sJTnn77Pfftbizmi8VMkm3u5/Tm5qLrKnDPveePDlebm4vM5HkcHa2mKRXa2lyElABkuu+6u+4+++3f+TNgAMTzYZDtf3jc00LBZbYjYj7vImJq08XdS5J4/gzmOdmutfR91zJPnTz2Tm//xnt7BxFhmwcQGCTtHNuapraxMa+12gZs11r294/++m+f9OKPefjpU8df5qUf/bgnPK3rqsRqNTzkwTe+/Mu9mEL33Hv+yU99xmzW2+ZfR9lyGCckia7rjEF29n13/NgOsB7Gw6NVSDwn27WWc+d2z5+/pFBXa9dV2zyn1nIxn/3Rn/zN7//RX77Fm77WIx/+oEc87JauK7u7ez/2k79239kL21sbrSX/fdKUkvfuzr7yz65/+4ffRthNwvwvY5DWu3F0XxzcGYf3UOaUGXRaX9z4sy8qB3ctX/x9PTuxfthbrh/21gi5OWoc3L34+2/X4V3UTZw8B5FTO/modvIxJur+rfXc3/KCSDipC6KqjZqWKHhRCdvRu/S4eXF6/eh31/oiUbF5DsKT+23PjtFGd1u5fVNcejrRgYnK8r569i/Gm14zZyfaqRfv7vx9MAibutVOvxR1HqsL3d1/RFtTFzh5QZzjDa+eWzeBy/l/0PoSBJjnJUG623TUWK8Yj4jC8yGwpiOcqOTsOAowiH+ZQXjSeg/bZeZuGwyAQWTrn/Er5eAO3AAQz4dRaHVRbhA8N/MARjyTeVGoau8ZsX97O/XYdurF8vjD49LTKD0YRTv1WM9PqK27e/+co3tZnCYnAIOKpqP5E34gb7+OHCF4PgwQtew+RTlCgEG8KAwEbRXDHrbrhvttnCCcLnOXBUirC1qeo3TYPDeprWgDQN1w9MIgSKL2t/3acMvrTde9SjvxiIPX/Iru7j+uZ/9Kw16sd+Pg7th9EuMB3RZ1jgHzryUpJ7V11rlnJ/hvYqNef/wbB3/2x0elk82/hyTbbZpe4YM/8LU+/ZPLfOaWUcoffvlX/e33/+CbfM1XPuyN3mA4OLjupV/qTb76y3/xoz7utt//o25j4UwAaOu1W6rEbGcHKH1/8SlPve0P/vDlPuA9t05tX7z9vqf86q9lJpIznQkoQhKYBzCIZ5LEi8JEKctz5//qu7/vDb70C/utjVf7hI955Ju/yVN++VcvPeO24fBw/667zz3hiZfO31Ho+vlW1OpM/ps4Slkf7d38qCe95Ye2cdlnWuJfKcSYfNvf7/dFb/XQxZhcv1k+7mV3xP7v3rmaV33ky+y83cM3hua+cM9hfuVfXvrDu9fzIpv/AeQ2eX2EuOqqq6666qqrrrrqvwxQ+a9hG/PvZruU8l7v/hZv+Hqv+tCH3Hjs2KaC57V3adkyJf6HyPR8Xre2NiQNw3RwuAyJF5Fwej7vZ7N+mtqjH/Hgl3npR/JCHR6sFbG5sQgpIgSAzQsmwAZAALYBcLZ0Zu3K1uZG2qvVOiJQ8q9jANSytWwgnp8oEREYwDx/Ni8CAWD+YxiDNE2NF8gCSYBt2zzAOLVv+66fXK+HN3vj15zP+1d/1Zd57dd+2Wnw3v7B+Qu7t91+z513nf37f3jKb/7On66Hoe86noekw8PlMI7bsZHJ85KEAGybZ7I9m/XPuP3uL/jSb+dfItjcXMxmPQ9gAwhFBP8atruuWyxmrbXrrzvzER/6jrxQy6PR9sbGopawzWURcXS0/Iu/etxbvtlrHd/ZeokXe8RiMbOJ0DRNN9103YNuucH2E5749H94/NNmsz4z+ddxRAzDOAzDbNZvb23a5pksjJQtp9ZAPD8RKiUAYzDPj6RxnH7gh3/xJV7sEbfcfN00NdAv/9of/smf/d3mxqK15L+PIYL1EF/2Jzc86eJiq09S/G/kpC7mj/++2VN/hhzj8G6ixw1AFTx73HeV849bP/IdxxtehW7LhnHZ3fcXi3/4jnLfX1E2cPJcJNow3vhaXpzGU3fXH2rcJyqYF8QGECAw/wp23XC3oWy5ef3Ry384Aeb5EBitm7C7DdcNMFc4qRv1/ON1dJ+3bxmvf+X+aT8bh3dT5kxH03UvO514hFHZfXK59DRUwLwggpyma16WboPxqL/tV5mOqHNsXhAbwCk3XggJAOPkX0XgVFsiACQeyK1/6k/xxB8CgXkhojA7jsR/ICd1VvZv6+77i3byMW3rpnby0XHhcdQF09KbN0zXvpyjK7tPKxeeSLeJk2cyCo2Hs7/9JnICgXn+BKb09NtIvOgENsgEAMbmuUhqK8ZD6knceD4EArDBPIuKVhc2/+yLly/5YcNNr6V+e3jom64f8aYarfVuLM+WvafHwZ3d3X9c7/o9CKID86+VjZxAYP47ZBJzPfXvVr/+Swe1RpMx/2aS7Gzj9Aof/IGv9emfHF2XUytd9wdf+hW//yVfDvziR37Mm37tVz3sDV9/ODg4+YhHvMnXfMUvfdTH3fb7f9htbNjGDPv7bRq7fmNx4hiANB4d/u4XfMmTf/FX6mK+d8cdd/3ZX0QpbRz7ra1ucxNY7++Py6UIm38vKWr9q+/6HkW82id+7Obp0ze83Ms86JVfJmG1tzy87+zFpz1999Zn3Pt3f/+En/7ZvTvu7DY2+O9gRYzrYev4P7zzJx1e9+DytL+yxL+eTReMydf+9V5Lv93DN8bG9ZvlY15mO8TLnOnf/hEb68ldcPdhfuVfXvrDu9eLqjT/Iwi3MY/2JGGuuuqqq6666qqrrvqvAVT+K8g428i/j6RxnN73vd76Pd/1Lfq+G4bh7nvOHxwctdaQuMIupRzb2dra2uB/EJdS5vM+QsM4Hh4tIwKbF5GwMUg6e2F3/xmHJcI8P0YiSvRdd3H30nK5furT7jCuNTa3NjAgLrPNZRJXSDKXiRMnjvVd15p3L+2P01Rrnc977PV6zLT4N5MQL4ixzf9MRhIvnAEQIB6glnLu3MWv/cYf/Nlf+J03fL1XftmXfuzx49ubG/P5fHbLzdc/4hE3O7lwfu9t3up1v/N7f/pP/+zv+76zzXOKEpIwL5B5Xrb7rrvumlO8CFq2TPNAAjD/FrZtpNjbP7j9jnsU4gUrEbWr585dnFpK4plca33GbXc//dY7X/alHv2Ih9/yyIc/6O8f95TZrN/a3Hill3/xzY35crn6h8c/ZVgP3eaGbf61xDS1qeUcSTyAuExCvEAG24B4gWx3Xb31trt//Tf/5H3e4y0j4p57z/3yr/zBOE61Fpv/Tobw9z/uzG/cfmyjy5YgMP8rKeLgDrIhET0Sz2QQpa/3/GE9//e5OIkqgJtWFzVcoszBPDeRzZvXTde8LKWP5bl6758yreg2cfKfQBgbiWG/7N+OjXgBhApR4+he2hrEFU6iL2f/ul58wrh9Uzv20Ny4NvZvpwY5Tqce6/lp3Lq7/1BH91A3ceP5kmhjO/0S0+mXsErZu7VcfBIIBOZfIP4TyQRXmOfWH2N2gn+ZyYn/eMG0LGf/Vg/dc78znXyxrv4SmBzb9s3t2COwy7m/Lef+hrrAyQMpWJwG8S9LsvGvYi4zmBfEmECB+ReI52RUY/epm3/4qbOTjx0e8ubTqRf37BjdhuuinXjkdM0jNTE89K3KfX+1+NtvKBefSOmx+VeRQPw3sYnK3n3TL//8/uFh1pla8m8myXaO0yt+8Ae+5qd9UvS9W4uu+4Mv/Yrf/aIvrfN5lLJ/9z2/+BEf86Zf91UPe8PXHw4OTj3i4W/6tV/1ix/5sbf9/h90m5u2D+65N8cpImbHdhRBZun7g3vu+Yef+QmThX62uUWEV6vZzk6/uQkMh4fTelAE/362ItzaX3zbdzzlV3710W/9lo944zfcuvbafmen31js3HjjmYffAhxePHy593/fP/m6b/zbH/ghlQJg819ImIinvsn7n32xV+1WR2sF/1ZpumBKvvFv94G3e/jG2Lh2o3zGKx7ri4bJXXDPUX7lX176w7vXiyqb/yGEaKPdQFx11VVXXXXVVVdd9V8FqPyXkHBOYP6tIrReDy/70o9+szd+deDCxUu/9dt/+hM/8xtPv/WuCNkGFJrG9qBbrv+cT/+QRz/qITb/YyhbDsNou6t1MZ+ljcC86Gz3ff293//LL/3K7+77zrZtXrBSyjCMq/XQWnZd3VjMJdbrYT2Ohq2tjfmsjwig1nLttSdrLes1oVivh+2tja6rdj791ruOjlaC9XpE6vsaodb4t7IxL4CEJP5nErZ54QSAAfMAtmutmfnEJ936lKfeJqnvuwffcsMjHnbLgx50ww3Xn3n4w26+4fprXuYlH/Xpn/QBX/gl3/6Hf/I3i8VcPIdsaRvxAonny/Y4TfzbGED8Wwhsd115whOf/imf+bXT1CTZ5oWRRNdV20CmZ7P+ttvv/uM//buXfPFHXnvNqcc+5qF/8/dPaq3tnDj2Ui/xyBJxz73n/+TP/qGf9ZnJv4EpJUqEsSTM/cxl5oURSALMC5OZ1545+fIv91hFtGk6c/rkq7zKSz/xKc/gv1WzStd+86nHv/mvr+3CR/zvV3qKAJw8B2OoG7RV7D2DZ4mOusDJ81IwHkzXv0o7/nAT9fzjyt7TKTMw/4nS0XUXHr/5R5+ho7NEB8m/QEQF8yxu9exfjTe8uvtj442vXS88gbb2xvXtmpd1mcXR3fXcP+DkhQmm5XTNy+bG9ZDdvX8Ry3OUGTb/MvOfyLwQbrjx3yapi3rhcWX/tun0S47XvPRs6+bYfwbdxnTty3t+XONhvfAPOHm+cuI/icCAQDyTeS5CJE4E5oUxz8OUnjbUe/+8nv0rgG5rOvbwdvJRbftBuX1TO/GoXJzJW143N6/f+oNPjktPpfTY/OuY/yYKcvIv/vTeM542bGyUMc2/mZSt5dRe8UM+6DU/45NK12dmdN0fftlX/u4XfUmdzQU5TXU227/nnl/8iI9506/9yoe+4euPh4cnH/6wN/3ar/ylj/rY2/7gj7B3b711XB4tTp3cuuYaZ0qyXbpuY34SZNutCZy5cepkv7lhe//Ou9eXLqkUbP7dbEcpLmX36c/446/5+j/7hm9u03TqEQ+/9iVe/PSjH338QbecfvQjr3nxFzv5iIe/4Zd/cbex8eff8m1RK/+FHFGXB7e9+ts+/fXfvQ4rh5D4d0hTgyn5xr/dB97u4RtTsqhqphbuOcyv/MtLf3j3el6V5n8MI+XywKsDEJirrrrqqquuuuqqq/5LAMF/BYOm8dD820kax+kRD3/Qse3tUuLXf/OPv/DLv/OpT7s9QjYgJHGZ+J8mQsM4Xto7yPRs1m1vbWQmiBeFkbReD8N6tDl58tjx49utNQkkJCQkJCQkJCQQuJRYrdYHB8tay6mTx6LExd29g/3DzHz5l33MS774I++599zd95x98cc8/NVf9WXHcZrP+ptuvPbM6RMv9piHzWb94dHq4sU9RYzjtL9/GNJiMWstzb+WQOCIEgowz8/UMjMRAon/MSQJu5TCCySDbUCSJJ6TbUmzWV9KiYhxnJ7wpKf/1M//1ld8zfd+7Cd9+cd/ylf+zu/9+dFydeb0iTd/09c6dmx7miYk7md7sZh1tdrm+UnbBpAk/uMIwDgz+deQNE7TajU4vb29eebMidZSEhISEhISEhISEkjiudmhePJTnnHh4qX5vH+Fl3/xa06fHKf2mEc/5Kabrm3pJz75GbffcXeJ4N9CmTmb9bNZ11oeHa0kAYAQEnZIEQHm+WmZrSUgBOL5iYjVani7t369l3zxR7TWgFrjrd78tV/yxR95dLQqJfjvkKbUfNq5xdf+xXVDRhGYfy+JfzuD+XeyceLk+XKiQplT59Q5ZY4KTp4/U/rpmpf1/KTaurv7D3RwF6XH5oURgAGD+FeQpiNNK7D7bZcZTsS/RDwvle7uP9LyLCrTda/oOmc8aMceOp18DFAvPrFcfAJ1gZPnT7ixODVd83Ku81jt1nv+iPEABZgXQgJQWMELYQMgFPxfYhNdXHpqufB4OXP7Qe3YQ2lrd5vT6ZdydHF0b3fXH1F6bP4rGRBYGACh4NmEwHb01Dk2z5+xASQQz8WJCmWGCiqMh/XsX84e/30bf/zZW7/xQVu/94n17F9rWrYTj1g/5M2JDhvE/wYGxB/81uHf/vVqvohM828mYUetr/hhH/yan/5JpettR+3+8Mu+8ne/6EvrbI5kG3Bmnc3277nnFz/yY5/2q7/Rb22NR0cnH/6wN/nar3rwa7+W7Wm1Orz3Xomt667fuvYaZwK2c2o5TW4NUMTIcuuGG+YnTuQ0nn3c4w73z5Wus81/BNvYdT4rfY9Uuu7CU576Dz/6E7/1OZ/7o+/7rj/y9u/8p1//TauLu6XvXuo93+3YLTfnOCHxX8IRdXV08WEv/eS3/FBC2CD+3dLUIM03/u3+TzzlqAZp+qJ7j/Ir//LSH969nhfZ/A9iULS9s7k8QOKqq6666qqrrrrqqv8qQPBfZRyP3CYQ/yaSWmunTx2fL2bL1fqv/uaJ4zgtFnNAQkIAAsS/gsR/BYMUKpiI0vUd5kVkkDRN09QmwXzW11oNIIFAIBAIBAKBBCgiDg+Xu5f2Qddde/pBt9zwjNvufuJTnoF94w3XfsLHvNcXfe5HfdHnfOSnfML7PvTBN07TlPYbvcGrftPXfNrLvcxjIuLpT7/z9jvumfWdsQLbXVevvfaUM8WLxHZELJerg8MjocV8Np/P0pZ4IEmttdOnjm9tLZwexmmaEon/cOZZJP4lljRN02o9SNra2uAFMO662nUdYrUaVqtBEs/DNgBI6rpuYzHb2d48fnz7qU+74yu/9vuecfs9kh71yAedPnV8nJqEpOVyNY4TcN21pzc3F62lxPPamM9qDdtHR6u0+Q8gTLa0XUvZ2dm2zYtMUmttmkbErO/6rgcAgUAgEAgEAoHE80p7Pp/97d8/6alPv0PikQ+75bprT7WpvearvezmxmK1Xv/V3zyBfztHRC0B2D5aLiWBJQ3jeGnvAJjN+o2Nuc1zkWgtj+1snzi+7fQ0TdM0SeI5RcRyuXqZl370G77eq3Rdd9vtd//xn/7tej1ed83Jt33r193Z2ZqmJon/WjYRDEN83V9e96Tdxbxkmn8voxytwIkTJ06cOHHixIkTJ06cOHHixAlGgYL/dAZjY4PBPF8K2jq3HzRd/8qOGod31fOPo8xx8gIZhCecjkqZ4eRFZRBu5AS4zIgOAIFAIBAIBAKBQDwfRhF7t9eLT4LMnZvayRcj+unal83FKbV1Ofs3Wp5FFczzpWA8mk692HTmJYGy+8S6+xTqBiQviA3SdIQnlxndBk6eD4Nc5yigadjHCeL/DqNSz/0tw767rfG6V6QucvPGduKROMvFJ8T+baiA+a8kICmz7DaRNC01HqIAI6mtNK3Anp/0xhlyQuK52TGjdADTUjmCwDwHg7lCQfR0m8yO022Xu/9o4y++XOtLKKYzL+26wI3/DWzU6elPXP/Wrx1GyMb820XEcHR4wyu83Gt+6ieWvs/WQH/4ZV/xu1/0pXU2Q8Lmfs6ss9n+Pff84kd9zFN++dfqfD4eHZ16xMNf53M+c+u665YXdy8+/RlOb153zU2v/IptHBXBA0k5jls71974ci9T+359ae/wvrOVmTMR/4FsY3NZdF23uTHb3tk5dsPh2XO/8/lfdNvv/wHm2E033vByL2vMfwkrYpqGreOPf7uPObrm5phGJP6DpKlBM9/4t/s/8qRD4La98cv/4tIf3r1eVJn/aUyU8dwzcCJx1VVXXXXVVVddddV/FSD4LyGpTeuprSX+zQwREaFhPY7jWEvJTJ6HeRbzQgjb09TAIP7T2C61XNrdv+32uxH9rNve2mqtSTxfkkopEeKZXCL2D44Oj1aIE8d3jm1vZUuJ5ysiSimSbJdaLl06uOfec7avu/bUIx5283K5/tVf/6OnPO322ax/6Zd8xDu9w+u/8zu94Uu95CNW6/VP/uxvPv3WOx/8oOtf6RVf7Nix7QsXLv30z//WnXfdN5v14zDt7R2kvbFY3HD9GdtIPD8RKqVI4n4KDcN4dHRkvLExP7az5TSI59QyT508tr21ZVitVuM4hgTmP4dtGxAvVEjjOC2PVorY2d6MEM9DIlvO+n4+nwlduHjp/PndWott7hcREeIBbGe6ZU5T29raOHvu4l133QdsLOazvnMmEKGDg+UwThE6fnyr7zvbIB7ABrS9s9XVmun9w6PMlMS/j8TU2sXdvdaylLK9uYF40UXoaLm+tHdos7W1eerksZYpiedHUilFEs/Ddilx8eL+4x//tGGYTp06/hIv/vATJ3Ye8fAHlYh77z3/F3/5uExL4l+vtdzYmN9yy/XAOE6HhysJG0nT1A4ODtPu++7k8R3bPDe11o7tbJ48ccywHsbVaq2QzbNImqbp+LHtd3/nN7v22lPDMPzCL//el37ld992+90t8zVe9WVe89Vedhgm/stJQH7r31zz6884ttVls/j3Eri76w80Ld1tu992v+1+2/22+2332+633W+733a/7X7b/bb7bffb7rfdb7vfieXZeu5vKTOc/PcTbWg7t7SdB8lZzv1NOfvX1DlOXhCDQus9ciCK+22iYvMiMaXGpVtjdQHw7JjrAjdeEImoIJ4vBW71nj/VtHa3M17/yp6fnK59RVS1Olvv+yvKDJIXyJR+OvWSnp1UDvXeP9fBHUSHzQuh0HConKgzd5vYSDw3QbrbRoGz7N9GTkj8n2ETXXfXH8ThnURpp17M/bHxulfI2QlNy3rvnyPxn8s8H8Lpfsez4wBtpWmJBEBoWjEegtxvu27hBPEchO1+23UBaDwkBySeTSiQeA7GiRtO+q3Yf0asziG530IFm//xnKjj4j3jz/3E3mqZEQDi30GYNtvarvN5G8e6mP/N9//A73z+F3WLhSKweU7O7ObzvTvv+s3P/Oyzj3tCmc3aer1x6sRsZ/to7+zTfv032zAsjh+7/uVezmkkHkAR43J56pGPuPEVX8H27q3PuPfvH1dmM9v8B1GEIpB4FtuZbq2NY+174N6/f5wzo3aLkyf5ryHJiXjiW334+Ue/Yl0dWcF/qDRd0Mx3/MPBe/7quY/6nYt/du8wL7L5n0du03jP05wTiKuuuuqqq6666qqr/qsAlf8iyjZMw2Hfb8ME4t/ENgDONJjnp6u1lgKWJIERmOcmNE3t4OAo02Cb/2znL+yuVuvZrL/mmhOlFp4fSa21vb2DxWI2m/WtpU0pceHi3u7uvs3JE8e2thfjOM3nPZjnFBGr9XpYj1tbGxGqpZy/eOmJT771lV/xJU6c2Hnxxz7id37vL/7hcU/95M/42nd42ze4+ebrSoRgtR5+5/f/4ld+7Q//8CUe+eZv+prbWxsXd/d/5df+8M/+4h/m81lmrofh7nvPZ3pjY37N6ZOtZdfxXGxKiWEYlsv11tZGKSUzgVrKpb2De++7aHt7a/PE8e1hHBeLOQ8gKVueOX3i+PFt8PkLlw4OjiLCRvyn6LoaocwEcb8IRUSmMxOwUWi1HnYvHdx8MydP7Dz4QTc+/dY7ay22eU7XXHNya3MxjNPF3X0eQAJ0tFyViK6rPD+ttYiwyczZrK+12NhExPkLu0fL5Wkdu+bMqfl8dni4jAgeQFI6b77x2q7rpmm6/Y57p9b6rrPNv0MpcXi0fMITb22t9V13zTUnx3Gaz2a2eW5C4gFsl1IODo7Ond+1vb21cfLksWEYNxZznkeExnE6Wq42NzdqKZnJc7Ld992f/cU/vOkbv/p1155+qZd41DTlNWdOGh7/hKdf3N0rpfCvJ6m13FjMbrzhmlLKej1cvHgpIsARsVyt77r7XGYu5rPTp0+M4zSfz2xzP4nW8tix7TNnTkja2zu4uLtfS4C5n6RhGN/sjV/jlV7hxYG//tsn/sZv/em991344R//lY/7qPfc2li88zu88d/+/ZPvufdciTD/RdJE9W8//dgPPO50F7b5j2Ci9E/9GdvjLa9PdAgQLxIzHs2e+jPdbb9B3cDJfzORE7Pj482v625Tw2G9769x8i8wKrG+qPHQ3XY7/ghvXqf1JVTAPBeJ5yZy0PqisrnbycWZgni+FOTIeIlui6g4eS4K2rq7549WR/fksYe1E49sxx7ajj8MXHafWu/7C6LH5vmSaGsvzow3vJqji4M76j1/giokL4xRxOoCbe260Y49nNkxcgKBeTYT89y63ooY9hmPkPg/RqHVxXrhCe3Eo9rOg/L4w9rpl6LM4uCO7q4/JBu1YvOfwNG5P6b1JcRzEjm62/L8JHYsz2t5jqg4iaJhL9YXG/bshOcn2Hsa9DwHkWNuXu9+G2cc3qVhH1XMZQIzHhEdUXk+jBMVbGzXBQr+x7NR0Fb+tV/cv+vOqZ/Lyb+XAbI1Z0qS4vC++0aW83q8DQPPjzNL142Hh8PhoSSH2jg5DXHfPzzu0u13nHzYQx/yWq95zYs/9tzjn1g35m7JFbakG17uZXZuujGn6Y4//pP7Hv/3i50T43LJfwRFjEdLO7vFAgmb52TbtjMBpKiV/xJGdVje/qpveftrvE2ZBkv8J0hTg8ncvj+F1AXmfyAj5fpwuPep2AjMVVddddVVV1111VX/NYDKfxU7V8sLG1vX8e+gCJtSSikl05J4gAhN03TNmZPHjm9nejab1VoBJGwewHaEhmHY2z8UKqX0fW9zhSTbvEiExLMIkCTbPIDtWuv587uXLh1cd+3pl3zxR95y83V33XV2Nuszk/tJmqZpZ2f79V7nlR73+Kc99Wm3b29v2O5qvfvus7fdfvfLvfRjTpzYfsyjH/rXf/NEGwmbZ4nQcrl65MMf9KBbrv/dP/jL1WrY2FhM0/Jv/vZJF99s/+SJnTd8vVf+4z/9mz/983+4977zX/KV39WmZgAkzfqulPiLv3r8H/zRX6cdEfNZP5v1tkvEcrl+8lNum6ZpsZi92GMe+nO/+DuSbPMAtcbB4fIhD7rxsY9+6B/80V/t7h1sLOa2ay2XLu0/7el3DsO0uTl/+MNumfU9WMLmigith+Gmm649eWKntXzarXeev3BpNusyLYn/OEdHy2EcJd1w7Zla6zhOEWEbCGm1Go6OVrNZP5/3koAScXS0vOue+17ssQ89ferEQx964xOe+PS+32jNXCZpmtrOzuZLvvgju64eHBzddfd9tRYbQKK1bC3f5A1eNdO/8dt/2vc10zynCKWzdiUiVqv1ODZJtmstz7j97nPndm++8dqbb7r29Knj585dlGSb+9ne3Fg85ME31hKX9lZPfNKtbWrqe9v8O9iUUvYPji5e3Lv++jMPefANJ08cW68HSba5nwQ4W/IANqWUixf3nvKU29rrt42N+Ys99qG/+mt/aFuSbe4XEavV+obrzrzEiz/iT/7s785fuLS5uchMHsB2KfEPj3/q059x1/XXnXnoQ27a3NrY3Jgvl6s//rO/PTxczud9pnmhJPGcBJltY3PxsIfcBN47OHraM+4qJWwiYr0envrU25fL9ebm4hEPu2VzcwGWZJvLQjGO0+nTJ6677kxm3nHXfXfedV+t1TaXSVoPwyMedsu7vtOb9n23u7v/wz/2K3ffc3Zra/Frv/FHr/wKL/mGr//KD3voTe/09m/05V/zPWU2w+Y/X5qovu3i7Mv/7MajqfTFNv9BBMye9COzx38v/2qizilzMP/tBDl6dmY687Ii4uD27u4/osxw8sKYqLF/m5bn2Liu7TzE/baWZ6mbuPEsAkluYJ6LSjm4c8zRpR9veu3urj/EDQLMsyiYVt64dnzQG3d3/YFW56kbYB7IJjotL9Tzfz8ce0jbefD60e/mblttqGf/hn+RPR1/RDv+cOF64R/q2b+hzLB54VTj8E4N++62plOPcbep1UVKj80VCqZVO/MyuXUzEId3azxAFcz/KcKtu+v3h1vekG5z/ZC3nI49DGe58ASN+0TF/McTcvPGdeM1L9vf+kt0W7jxQCrt+MM9OyG3snerju5hdhI3otPybNl7xnT9q+TiVNt5SLn3z5Ew9xNA1HbsYXSbyrFeeALrPRanyAlEDpTZ8Oh3jUu31nv/lDLDyXMQSLajQ9J4hJP/8SSo/MFvHP7Vn636mZz8R5FAMgBRqgg7ecGcVimKwAZJsrOri3NPeOKtv/lbJx7y4JOPeNgj3/xNzz7+CRgkbEW09frEQx/60u/znqXr9u+55ym/+uu1zmzzH0JaHVx66Gu/zjWPfczf/ciPDwcHpeucybNI2JK6xRwJ3KaJ/wJSHZa7D3qxx7/9x7n2mkYk/nPYCGZFgPkfyVY3m+556nTuDiSuuuqqq6666qqrrvovBAT/dTys9jIHEP8GJqTDw6NxHBeL+cMfenOUGMfJtm0b2+PYgJd96ccc29mapunYsa1a63o9ZCbPIyKOjlZ33Hnv1NpiMbvppmumNtm2GYYRqKXY5jnZbq211lpr09SmqbWWBsB4mlprbZpaa621lpkAYLvvu6c/465bn3FXy3z4Q29+7dd4hcwcp8m2bdu2h3Hsuvqe7/pmn/1pH/xFn/eRb/lmryUEGCLiaU+/Y7UeJL3ZG73GjTdec3B4lGnbBtu2Dw6Wj3n0Qz7tk97/cz7jQz/jkz/gzOkT6/Wwtbn4q79+wp//5T9IOnXq+Id+4Du93Ms8ZrVaL+aznZ2tYztbx49tb21uzGezhz/0lr7vjh3bPnni2PFjW33f2QaQWuYTn3zrufO7oFd+pZd8uZd97O6lfSBtg22bw8PVmVMnPu6j3uOzP/2DP++zPuxlXvJR6/UQEZmezfrb77jn4u6epNd+zZd/0C037O0d2ti2DRweLq+/7szrvtYr9n23XK6f/JTbVqu1FPzHsR0RT3rKbZf2DmzffPP1p08dH8fJtg2wf3j0Mi/96M/+9A9+o9d/ldmst2271nrhwt5f/fUTpqltbi5e5zVf8djO1mo12AZsZ+ZqtX7Ewx/0Ci/3YrYv7u4/9Wm311ptS8r0YrF4v/d6m0/7pPf/yA9910c8/Jb9/SMJ24DtTNs+OFw+6hEPesiDbrB9eLRaD0OEwBFx8eLeU556+zTl6VMn3vD1XwUYx9E2YBvY2zt4zVd72Uc/8sGGO+689+hoWWu1zb+P7a6W8+cv3n7nPbYf9YgHv/7rvNL+/qFt24DtTI/jJMXJEzsRYfMArrXedsc9l/YOM/1ar/ZyL/kSj7y0d2DbtsG27cOj5XXXnfr4j37Pz/70D/n8z/qwRz7iQavVOkI8J0nTNP39PzxlGIYzp088+hEPrrXcfse9T3ji0wEQz4+kkIzBLXMcp0zbBmxPrU1Te81Xf7mbb7oum++8697b77inlGLb9qzv7zt38e57z2G/7Ms85mVe6tG7u/uAbcD2crXe3Jy/0eu/ys72xjhOT33a7Xv7h6WEzRW2Q/H2b/MGN990bWb+7h/85Z/82d9tbCxsDD/y4798511nI+J1XusVXvkVXnK5WkcE/8nSRHi5ii//0+ufsdfPim3+g3WbLE6zOM3iNIvTLE6zOM3iNIvTLE6zOM3iNIvTLE6zOM3iNIvTLE6zOEldgPmfwIYYr3+V3LwBT/Xc38XhXSh44WxKF/u31b2ny61t3zTc8gYQ5AAGwDjJxrTK2UmiB/NsRlHP/b3GQ5Hj9a/STr0Y0xI3bAAbJ9ORN284fKVPP3z1Lz58jS9pZ14GN56biU7ri93df6xp5dnx8dqXR6HVue723wDxQjips/Hm13G/zbSs9/0VLwonpatn/6Yc3ClnO/nY8fpXIUdyAgNgcgSGW14vN64hW9l9Uqx3iYr5P0UA9ezfxOFdRB2vf2UvTivX3Z2/o9UuUcH8Z3C63x4f9Ib0O7QlGAwGMx56fnL9kDcnKuNh7D6FMgMDIKZlufB4xiOXxfDgN/biNOMhAAaDGS7liUePN72WkZbn4/AeygwnCLfcuO7o5T/p8JU+c/kyH+X5ScYjAAzGiRM3puV47cvkxjVyxrCPGxL/g9lQefLfrX771w5KFf+5DOKFMTYPZCvKcHDw9z/2k3u331G67uXe730f/oZvMBzsY2O39Vq1vOrHfuSZRz/azqf/1u/c/kd/XLqOTP79pLZev9S7vttbfus3vsGXftEj3+xN2nqd04QNOO1MtzatVtHVG1/+ZSVN6/Xe7bdj/nNJatPq2JnHveMnDMdOaxqR+E9mMP9T2URdPfUv8vCiSofNVVddddVVV1111VX/VYDgv4rQNB4O6z2pgPlXSrvruqc87fa9/SPbb/Ymr/G6r/kKXa1930mS6Lq6tbl4t3d+szd+g1cFj2M7trP1Fm/6mtdfd7rvO54Pl1ou7u7vHxwCr/bKL/MKL/firbUIXXftqc/45A/8hI99766rmcn9bGot29ubO9tbO9tbOzubx3Y2NxZzCUMtZWd7c2dnc2dnc2d7a2dna2MxlwTYrrWcPXvxD//kb1prtZZ3fac3ee93f8utzY2uq5IiVGs9c/rEh33QO73Vm79Oa+26a04tV+vlaogI233f/fGf/d1td9yDueXm6z7l49/35V7msV1Xay2Cvuu6rr7+677SZ37KBz3soTeXEpubG60lABqm8ft+4Oef+rTb+7579KMe8nmf9WGf/skf+LIv/ZjNjcXW1sZs1t1807Wf9HHv/Tmf8aEv/VKPXq/Xmdla2uYy24v57I477v3Lv35ChI4f2/nYj3j3N3idV+67ru+qICK6rjz8YTd95qd+0Mu+9GMy88yZk4dHqwhhZ+Zs1v/V3zzhcY9/GnDD9Wc+6sPe5ZGPeFAtJSIiopS44fozH/9R7/mSL/4I20956m1/87dP2txcZCb/oSJ06dLBM267J9PXXnPy3d7pTU+dPCYpQpIefMsNH/A+b/su7/gmn/Cx7/2qr/zSwzBGCIjQ3/39k++4617glV7+xT/kA9/h9OnjtVYgIrquvsLLvcRHfei7njqxg/nzv/yHJz/ltlqLbdullEt7+5ubi1rrsWNbH/MR7/GoRz4YVCJs11rn877W+jIv+aiP+8j3PHP6BPC4Jzzt7LmLXVdtwKWUP/zjv9k/OHTmm77Rq7/7O7/ZbNZ3XbXd1VpKvNEbvtr7vffbzOez1vI3futP7rr7bN93tvn3sd333V13n/ud3/uLaZr6vnv3d36zN32j1+hqrbXaLqXMZt3m5uLd3/lN3+YtXzczARAAZHo+7//uH57yuMc/LaRjx7Y/5iPf/Q1e95X7rqu1CmqtXVdf7qUf89mf9iEv//IvBt7Z3motJfE8JLWWf/jHf31p76Dva993kv7u75989z3nZrPeTp6HpHGcVuu1zaMf+ZCP+8j3uOnGa/u+dl21XUqptb7pG73Gu73Tm0qa2vTHf/K3mcllmTmbdU952m1/+md/b7OzvfnB7/8Or/SKLxERpRTbXVd3drY+9APf6XVf6xVay/vuO/+Hf/w3G4tZpgEgQuv18Dqv9Qqv9zqvCNx22z3f+wM/11oCtvuu/v3jn/qjP/Er09ROHN9593d5s2tOnxjHMUL8pzEIEN/+t9f8xm3HF9U2//Gc5ERO5ERO5ERO5ERO5ERO5ERO5ERO5ERO5EQ2nPxPYaION74Gtdd40N3zxxAgXhTOetcfMB1JWj3q3daPelfKHFVsVFwX1Pn48LddPfrdiIKNxBUGlXrfX9Zzf2+K5ycOX/HTxptfn6iUDkzpiDpd98qHr/aF0w2vBnZ/TKvz2CCem5HKxSfFwV2Ujrqwouw+uRzeg4IXwum62U6/JIpYnu1u/00QL5JgPKh3/6GzEf3qJT54fNAbUXpUwETnfmf14h84POwtUcTqQn/bbzIeogDzf4lBhfGwXHi8Lc92KLM4uLvsPpn/bJ7GG1/z8BU/LbduQRUVENF564ajl/v4duqx4HLpabM7fovocQI46TbqvX9Z9p8hcjrz0suX/VhvXEtUEAqi5umXPHyFT8qtm4Du3j+t9/0FdYETjCJW53N+Wjm1E484evlP9sa1qIBAlN51QenGB73R8qU/ijq3Xe/7C01HqPA/lY2qdu+bfv6n9pZHjsDmP5wArIhCX7pauq50Xem60nWl60rXla4rXRddV7ouuk4Szya3abazc8cf/8nf/sAP2d689szrfO5nPvLN3kylELFx6tTrfNZnPPYd3j5qufi0W//wK756Wq4UwX8Q2/3mxuLEiTaOr/6JH/fot36L0vcqxZmlq3U+r/P5mcc+9o2+/Euue5mXBi4+7el3/8VfKcR/HglQa09+sw88/5hXLOMKif/PbKLkcm/51D/P9RFRuOqqq6666qqrrrrqvxBQ+S+jaG11dHDfbHGKfz07Z7Pur/76CX/9t094/dd55dOnjn/Wp33QXXefu+/shbvvOddau+nGa2+8/sx1153e2Jj/3d8/xfZLvcQj3+rNX/ut3vy1f/YXfueLvvw7jx/bai25X6bns/5JT3rGk578jFd6hZe44fozn/eZH/o3f/tEzIs99uHXXneq6+rd95z7tu/8iVKK7RJxcLh8lVd6yU/6uPfZ3Fy01iQBQl2th4fLRz/qId/9rZ+LAGx3Xfenf/4PX/E137O/f1RKZOZ83v/qr//RS77YI97g9V/leOh93+ut3+LNXvvOu+696+6z2fKmm697yC03HD++0/f18HD51V//A7/5O3+2sZhnJlBrufPO+37oR37p4z/6Pbe2Nl7qJR715V/4Mbffce+dd9178eLetdeevunGa2+4/nTX1b7v/+wv/v7Lv/p7LuzuzWd9Zs76/unPuPNrvuEHP+QD3vElXuzhN1x/zVu86Wu+8Ru8ymo1TtOEmPX95uZiY7N/w9d9pT/+k7/hOdmOiMPD5Y/95K884uE3P+ZRD7nl5us+5zM+5K67z959z9m77zk3n88e8qAbbrn5us3NRd/3T3/GnV/5Nd/3lKfeNp/P0gYkrdfDj//Urz3m0Q+5/trTL/+yj/3Gr/6U226/96lPuz3thz74hltuvv7YzlbXd3v7hz/0Y7909z1nF/NZ2oABkZnj2Gzb5gVrLcexTdNkW4jnFBHTNP36b/7xK73CS8z6+vqv+0ov+RKP/Lu/f/Jqtb7uutMPffCNJ04cWy3Xtz7jrr/52yd2XbVte2Nj8bgnPu2Hf+SXP+6j33M+79/iTV/r1V/lZZ5+213PuO3uzcX8YQ+9+aYbr5nPZ4uN+ROeeOuP/eSvZboU2QZs11J+/Kd+7dGPfPDLvexjX+wxD/26r/zkW59x12233310tLz5xuv6eX/dtadOnzo+6/vFYvaM2+7+sZ/41f39w8VinplAKeXP//Iffv4Xf/c93vXNN6X3e++3efM3fc3bb7/nGbfffeb0iQc/+Iabbrim67rFYvZ7f/BXv/U7f1ZqweY/QqZn8/43f/vPXuHlXvx1XusVrrnm5Kd98vvfcce9t91+z933nLv22pPXnD557bWnrrv2VKaXy1XX1cxEAmxHxKVL+z/0o7/00IfceNON1z7kQTd+9qd98J13n73jjnvOnr1w8uSxm2+87sabrpn3fT/rn/LU277kK7/zaU+/Y2Njnpk8jwjdfffZpz7tjpd6iUdObRoPxr/5+ycdHi53djZbM8/Jdt9395298O3f9VMf+1Hvcc2ZE2/xpq/1Wq/+cs+4/e7d3f277jp74uTOwx968403XNN1dXNj8eu/9ce/+Cu/H5Ik2wBG6Od/6Xdf9qUf/WKPfdjDH3bzl3/hx95+x71Pe/odB4dHD3nQDTfffP3pU8drLWn/2E/92hOfdGvfV9uApGGYtrY33urNXnsxn62H8Sd+5jfuuvts33e2AUzfd7/5O3/2aq/yMi//so997KMf+hqv9rI/8hO/0nUdmP8cNlHyV5568vsfd2ZR02Cuel7CrZ14TDv+SKOyd2s9+9dgXhQ2Zdbf+svtzEuvHvUumrF82Y9aP/Idyt7Ty8EdOT+VG9fm5o25eS1RNewbkY1nMipMh/N/+I52/OFt+8bcedDhq39x7N9WDu6Iw3ty45q2dWPuPIiYufTl4lM2/+gz4+B26gZOnotNmZe9W+u5vx22b1QOoO6uP6KtUAXz/AnneMOrt62bwOXs38TqIgow/zIT3ewJPzRd83LjTa+Vm9cdvsrnxsEdZfepsTqfO7e0nYfmxjVE56jzp/50ve/PqXNsnknYypEcceMFk5vaSE6Q/PtJgDwpR3LCPIuc5KgccfJAnshROfL8maga9rp7/nR80BuCrCjn/rbs30GdY/OfRYxL+s3xoW8+3fCqcelpZf92tWE69tDceZBnJ1w6jQfzJ/0w612iBwNgVGP/1tnjv+/oFT+dbmN48JuM171y2Xt6ufQ0Sj8df0TuPMjdpsu87D199qQfI0dqxQZA5HrxD99+cOwhufOg8ebX2TvzkuXS08ve00G5daPrPDdvzMVJondddPf+6ewpP0FOlB4bAJNNOSpHXiBhk5NyxI3/TDYKplX+4k/v33dP63rZ/GcwIA0HB3sc5bl7kpHnT0kr9/ZtHJBwAmDAmVHrH3/tNxx70C0v+e7vevpRj3yLb/2Gu/7sz/fvvufmV36lnVturvPZ0dnzv/mZn3PhyU+p87kzJQGYHKc2jDlOPIAz2ziqRLbGA7RpbMPYxglAYNe+/5vv/YFrXvzFX+6D3m/nphvf7Bu+9sJTnnr+SU85uPueEw95cL+9tXXddTs339hvbJT5fDw8/Ovv/t7lhQtRKzb/OSzV5eGtr/POt73W25dxbcT/d1a3WD3tj9ZP/6vo5zi56qqrrrrqqquuuuq/EFD5L6Xl4dntnZu72ZbdQLzIbCLi8HD5bd/5k05e57Vefmd749ix7cc8+iElAmiZIaX9Z3/x91//TT+ytbX4sA9+50c94kHzRXfq5LHMFOIBbNda7zt34Tu+56duuO7MIx5+y+bG/OabrsOkU9ITnvj0u+6+L0LYAML2fN7fctN1s0XlRXDtNSciAsxlEbG3f/DlX/O9Z89ffPM3eY3Tp05sb2085ME3lAigtVRI8KSn3PZt3/WTv/rrf7ixmNvmMttdV3/1N/+olHi3d37TRz78QZubixMndl76pR4VUmamXUvZPzj6+V/63e/8np++4877NjbmmQnY7rruT//872+/4943faNXf+VXfImHPezm4zvbx48HAsiJ+85d+Plf+stf+40/ns9ntnlOmTmf9//w+Kd9wZd8+/u999u82iu/1KmTO8d2th7z6IeUCENrWUoMw/inf/4P3/ZdP/HXf/OE+Xxmm8tsz2b9n//l477sq77n/d7rrV/yxR+5ublx5szJV3qFFwdaS0nGT3nqbd/9fT/7G7/1Z4vFLG0uk7C9tblx8tQWMOu7tHkBjh/b3t6Z4xOlhG2eR0T8/h/+1Xd970+/57u++alTxzc3F4942M2SWiYmSjz+CU/7pm/90fvOXuj7zjbQWtvcWPzSr/1B7et7vuub33LTdVtbGzfffF15jTC01kop4zj+0R//7bd9108+47a7uq7aBgDbXVfvvPu+r/r67//QD3ynV3vll9rcXFx3zalXfeWXCtGajUNRCvsHqz/447/+nu//ub973FM2FvPM5LIITdP0nd/708Bbvflrnz59Yntr4+EPu7mUyHSma4mDw+Uv/coffPt3/+S9951fLOaZyX8E27WUi7t73/DNPzxN0+u81itsb+/sbG+++Is9vIRaGqid7rjj7L33Xnjpl3xk6bSxMXemBGB7Nuv//K/+4cu++nve5z3e8qVe4lFbm4udnc0Xe/RDI5R2ZpZShvXw+3/4V9/x3T/1t3//lM3NeWbyPGzXWi/s7v3pn//da73mywBPePwzHv+Ep83nfaZ5fmyXEr/5O3+6e2nv/d77bV7+ZR97w/Vnrr32lKQSynTLjIj1eviFX/69r/vmHzo6WnVdtQ0Aafd999Sn3f7lX/O97//eb/Mqr/RSW1sbJ07svMxLPUqh1hKQdOdd9/3Ij/3Kj/3kr9dabABJtvuufuSHvOtrvdbLAL/wi3/wC7/ye6UU7pd239V77z33oz/xqy/1Eo88c82xD//gd77zrvv+7C/+oe872/xHs4maTzu3+Ko/u27VYlac5qrnQ2Jcjje8qjeuwe7u/H2tLhIVzItE4MVffQ2wfthbe7bT+p128tEEGMBBLPfL2b+ernulnIf7bZ7NRFfO/e3Gn3zO8iU/eLrmZYnSZi/RTr8EAQaDoE3dHb+z+Ouvi4tPom7g5PkwKqx367m/WT/i7XKxEfsX6r1/ShvoOmxeEOd4/SvRbWpa9Xf+LtOSOsPmRaGittr4sy9ajvvDLW9Iv9nmJ9qZl0CQAA7K4bn5E3949oQfwIkqmGcydZYb13oRnu0AGMTzkPvttrmhYYMyx/x72Ug5P5WbvVZnEPez69wb17jH/Q4P4NnJ3NhQmaOCDQLzPMr5v4v9Z+Sxh6mtu3v/jOU5FqfIif8kUcvB7d09f7x6zHvm1rW5ce10w6sAGABRLjx5/g/f0d36S0QH5tlMmfVP+3nKbPli75/HH+xuM7dvGm96DQCDIF3v/fPF335TOftX1DlOnsnErJz7280/+8Kjl/nodvol3G3m9i2jXgtBAiAsYnmpv+3XFn/3LTq8m7rAyTPJ8xO5OWO6BgnM85FEzY1rvNF7dhzMf6rC7/7Gwd/99arrZfOfRFKO0y2v/qqve+mjZ9tbbo3nS3LL+fFj29df79YUwbPYUcq0Xv/Kx33iwb33vfwHvt/Wdacf+WZvrCATibv+/G9+67M+9+m//Ttl1tvmClslNq+5Znuz27z2DGAQYHcbGzs3nK4wP3YMmyukzTNndrZny+uuVQQ2oAhn/tZnf15mvtz7vtf2dac3rzn9oFd/JQVObBARTAN3/8Vf/fk3f+vjfvKnkZCw+U9gRV0vzz/y5Z/4Vh/mKDENVvD/nMLTePSE32+X7i2LHWfjqquuuuqqq6666qr/QoCuueYa/stIbtOxU488furhdvKvYSMhaRjGnZ2tRz78lkc/6iEv8diHHzu2BVIoW95x931//ddP+JM//7uzZy8CN9907YMffON8Nrv77rOPe8JTu66zzXOK0Go9PPwhN7/qK7/Uy73siy3mM4V2L+794Z/8zZ/82d894/a7NzcWXCZpmqbTp0489jEPraXYRtxPPJO5wkTE+Qu7j3/i08exSQCApGmapHjsox/y8Ifd8pIv8Yjrrz2NJKm1dvsd9/zN3z3p7//hKU97+p0bG3PbPICEzXo9POiW6x/58Ae95Es88qEPvqnrqySnD4+Wf/8PT/mHxz/17/7hycvlejbrM5MHiIhxHI+OVjffdN3NN1+3ubHoalEIM7W2u7v/9//wlNV62NiY8wJExGq1Pn5s++EPu+URD7/l5V76MdvbmwrZHofxiU++9W/+7kmPe/zTzp3fnc162zwnSavV+obrz7zEiz3iJV/8EQ99yE21VnBrefud9/zN3z7p7/7hKbc+467FYmabB2iZD3/Izbfcch3mb//hyWfPXuy6apvnJOmxj37oNWdOrtfDX/z145fLdYR4TpJaa8CjHvngV3mll3qpF3/EbDZDZOa58xf/8q+f8Bd/+bjb77i31sJzsj2M0yMffstjH/Owl3vpR19z5pRCQsMwPOFJt/7V3zzh8U94+rnzFxeLuW2ek6RhGE4cP/ZyL/OYl37pRz/kQTfUWp223TLvuuu+Jzzp1tvvuOfJT73t7LmLW5sbmckDhDROk6THPPqhL/Fij3jJF3/EieM7koyPjlb/8A9P+fvHP/Xv/v7Jh0fL+bzPNP+hJA3DuLO9+ehHPeTFHvuwl3qJR81nPZLgwu6lf3j8U//yLx+3XA0PedANpZSnPO32W59xZ9d1trlM0mq1vu7a04965INe7LEPf/QjHjyfzxRyehiGxz/x6X//uKf+7d8/6eLFvcVinpm8AJKGYTx18thLv+SjIuK+cxcf9/in8i+J0P7B0XXXnn7xxzzsMY956GMe9ZD5bIYkvFqtn/DkW//yr57wt3//pMOj1WI+y0yeU4SWy/Wpk8de4sUf+RKPfdijHvWQWd+B0nnvfef/9u+e9Hf/8JQnPfkZXVcjwjYgSHs+m73YYx+2s72Z9uOf8LS77j47m3WZ5gEkQvHiL/bw48e3hZ781NvuuPNeSfzrNWuza1/3ek9/mRsOc1KIB7JReH9dPuY3H/xHd21vdpnmuRR5d9196is88b1eZt9Zhfn/SJDuNg9f9QvHG18jlue2fvdjyr1/TreNGy8iiZyIbjr1Eu30S0zXvGz2O4CwxoN69q/K2b+Jw7vbiUe5zMr+beXik8E8m5iOvHnDdOqx0zUv3Y49km7Dkmzaqlx4Qr3vr+rZv9bqPN0mTl4g4eb5qenUY10XsbpYzv+9phUSz5dEG/P4ww5e/Uvb8UeUC4/b+p2PiYM7qXOcvIgkphX99nT6JadrXraderGsm4CwVhfqPX9cz/9DOf84JFTBPIszN65pJx/r0peDO8uFJ4B5ftrxR7SdBynHcuEJcXg3Cv49bEo3nX6pnJ/UsNfd+2e4gbBz89p28jFEjf07ysUncr/pmpfx/CRtrPf+ucYDFDwXBW2VOw89fPUvnk49tlx8yuYffmq58HjKDCf/gSSmVR576P7rfnNu3VjP/tX2r77PdM3LTNe94nT6pVxmSMoW+7fV+/6ynvvbuPRUyhwE5nm1dTv+iHbmJaczL5NbN1kFUBvK7pPq2b+uZ/9aR/dQF9g8N9HWuXXjdN0rTde8bNu+CYWcAG1d9p5Rzv9DHNxZL/wD4yF1AyfPZFSm0y+ZizOaDrt7/ow2IPEchCf3x6ZrXoYy0+E99dzfouDfziCeHxv1+oc/P/rR799tTRHYPBdBgwnPkPnXiVKW+xcf9WZv8Xbf/92eJsNsa6ufh0E8fwZBwnpvNa3Xpe8v3X7HD7/NO+w+/dY6n9tWRBtHMm959Vd99Fu95TUv/tio3fLChaf9xm899Vd/7dyTnzTb3LbN/ZxZF4ubXvEVFidPLC9cfMbv/T4A2D52y83XvsSLRykXnvLU+x73eEnYKuXmV3mljdOn13t7t/3hH0/LpSIARUyrdZ31N77SKzzoNV/jxpd/ubpYgJ0GDu655+6//OuLT33aff/wD+ef+pR+YwsJm38PG4nnJWmaVsfO/MWHfMWlh75kGVaO4PkZ7npSf8Mj+d/IIP4VbNV+fc9T7/v2D2+791AqNlddddVVV1111VVX/RcCdM011/BfylHm19zwcv1s205eZDYSQIRay8PDZdd3O9sbtVYhhO3Van1wcNR1Xd934PV6XK+HzOz6bmMxt83zExHL5UrSsZ2tUgpiHKfdS/ulxGI+ay25n6RxnJbLlW0kXji71rpYzCTxAJKAw6OlYHt7czbrhRBOL1fr/YPDrtbFYtZa8vxExHo9rIdxc3OxuZhHCAl7arm/fziM4+bGIiIyk+chKSKGYVivx5Zpm8sEtZaNjUWEWktesIhorR0eLmtXj+1s1VokYTLz4PDoaLlazOddVzOT5yci1sMwrMfNzcXGxiIkwPZytT44OKq1LBaz1pLnJLFaDev1ANrYmHddtc3zc7RcjeMUoc3NjZB4fiQBh0fLrqs721slAjAehnFv7zBCi8U8M3lOElIcHS3T3tnenM16ISAzDw6PDo9WmxvzWmtm8vxExDhO6/WwubnYWMwVwhjbXq2Gw8Oj1nJjY9F1pbXkeUgCjo6WEbG9vdl3FQSeWu7vHw7juLGYl1Iyk/8EEWotD49Ws77b2dksEUiYYRz39w8zXUqs1gP2fD6bzXrbPEBEDOO4Wq0X8/nW5qKUQMJu6YODo9VqvVjMaq2ZyQslaZra4dESu+vqYjHnRVBKGYZxuVot5rOtrY0SAQJatoOD5XK12tzYKCUyk+cnIsZpWi3Xi/lsa2sjIgDj9XrY3z+S2NhY2LbNA6R9dLRsLYU2NmZ932Wa5+foaDlNzbCYz/q+49+kWZtd+7rXe/rL3HCYk0I8i8Emwl/9Zzd8x9+dWVSneV5F3l13n/oKT3yvl9l3VmH+H1Jh3B9vft2jV/7sXFzT3fm7m3/0WVpfJAo2LzoJm/GA6Dw7hioIjCet98iRMmM6wqb01AXPRYW2ZlrSbbrbRAUJG6fGfaYldYPocONflBPTEidRqRtIvCAqDJfWL/Z+y5f5CGI2e8IPLP76a3GCwLzoFLgxHlAW7rdRAYHJUeuLAN0WNpjnkiPTEpvSUxe8INOKtkaiLoiO/wBmPCInotBt8Sw5Mi2xKT11wbOMh+SERLeFAkCBk2dRYTwYH/Imh6/yBZSuf/JPbPzJ51IXOPmPJTGt8thD91/3m3PrhnLu73Z+9X0Y9ylz9zsokLA1HTHsE5W6wMkLomBako1+23WBhA3WcMB0SJlTZrjxfCloK3Ki23ZdIGEDODUdMR6A6DZR4OS5jIfkhIJ+C8TzITwxHmJTOuoG/y4G8TxsVDl/z/S933bxvnunvlcmz0vQYMIzZP51opbl3sXHvMVbveOP/mBOE5Izc5ok8YIZJEUpQHTdpdtu//43e6vdpz29zue2AYVA64P9fmNztrMjqQ3D8sIFRXSbGzk1npMzh9VhMgV1trHN/dowjNORcdW8Wyy43/poP5mC0s+3FeJ+inDm+miv6zfmx46pFAAbmNbr9aVLk4eu2+gW85wa/342Es9L0jT+3bt/+m2v/U51fWQFL8Bw15P6Gx7J/0YG8a9hFBd++sv2fu8H1S9wctVVV1111VVXXXXVfy2g8l8tpvFo7+LTTl37EvybZDoijh3byvRyubZX3C8iNjc3sDMTmM26+bwH2c5MXoDMXCzmtg8Ol2BA0ubGHGgteQDbXVdns20QLwLbmclzsg1sbW4A4zit1wP3i4jtrU2gteQFyMzZrJvP+pa5f3AE5jJJfd/NZ33amcnzY7u1Vmvtuk7iMgFgGztbMy9UZkbEsWNbTi+XK9s8k0qJYztbmc5MXoDMnHXdrO8zc3//EAwAEbG1tQG0ljwPm8VitrGxADLTNi/A1uaGJHBryQtgG9ja3LB9cHAE5jIpNjcXQGbyPGzs3NhYAOM4rdcDz6RS4vixrUxnJi9AZtZaum6jtdzbP+DZFKHNzQ2JTLeWPD+2gc3NDdur1Xq5XAEAUt9381mfdmbynyPTEXFsZzPTBwdLMJdJms9nksCLxQyUmbZ5TpnZ1Trb6VrLg8MlmGdSKbGzvZl2ZvIvsV1rOXF8B7CdmbwIWmu1lmM7W63lwcESzDOplDi2s5XpzOQFyMxays72ZsvcPzgCc1lEbG4ugMzkeYS0s70lCcjMTPMCbG9tIoEzbZv/aLaiaz//hJM/8LjTs2Kbq14oTadeIuen1Fbdnb+rg9uZnyQn/lVsEP0xSI2H2AAIQZlRF2DKDADj5Lm4UTrKDDeNBxgwCIEK/TFI3HhRRMdsxhVuvEDCE4vT0zUv67KI1fl69x8y7NPv4Ma/ihOC/jhOjQfYAAiJbguEG89X9MzmABgnL0i3QbcJQGLzH0D0OwgMbjxL9MzmABgnz9JvgwDcADBtoMwAMCq0lRenVw9/B9d5LM93d/wWCMx/MmEw/Q62xn1sAAkF/TaAkxfCSV0A5KThEjaAhAr9MUjceEGclDkFctL6EhgEIFDQHwNw4uR59dtIGNx4/owqsxMAGCf/CRRMq/z5n9y7956p75XJfzwjYjxaXnja090agMSLzM5Su/277sppQuJ+TiNm2ztubXnhAiCp29wEcmo8D0Usto8jYWdr3K/OZt3GBuBMZ3K/+fZxSdjZGg/gTKTF9onMXO3tYXM/RXSbm722bOfU+E/jKN1y/6lv8F63v9rblGFlBVdlarZx+Pe/tf+nP6Xa4wQiopTCv0lmtta46qqrrrrqqquuuupfA6j8V3NEOdq/e7Y4uX38FucE4l/JdmsGSgkQ97Odmdwv02BeBJkJ1Fp4Jmea58d2a+bfLTMBSbVW7mc7M/mXZBoM1Fp4NttuNv8S27b5t7LdmoFSAsT9bLeW/EvSxgZqLdzPdmbygmUaGv+SzORFk5lArYVnsTOTFyozAUm1Vu5nu7XkX2LbtkStlQewnZm8CDITKCVAPJNtN5v/ZLZbM1Br4dls2zYA5gWz3ZqBWgsPYLtl8iKz3VrjX8l2awZqLTyA7daSf4ntZgO1Fu5nOzN5wTKTF0HL5D+NTZR8/L0b3/BX162b5tVprnr+FLRVHnvodMOrEUUHd9aLT6TMcPJvYdwAVBEPYNz4F9nQAFQRD2Dc+FcwbvyLFIyH0+mXmk6/OCh2n1Z3n0KdQ/JvYdwAVBHP5uSFMW78i5z8h3PDPA/jxvNy8mxGXW5eG/vPwI3oaGu67fWj361d8zI469m/6u75U0qHzX8NNxCqiPsZJy8KJ4AEFXE/48a/yAkgocpzMG68EE7Mv8S48Z/GRsHv/NrBE/5h3XWy+c+QrXXzjbv/+m9+9B3fDYFB/CsYSTkOy/PnS9fZ5llstwZE1wGAM3nBsjWeh21PE8/DrZkXwM7WgKiV5+RM85/LUcp6efYxr/zUN3lfSUpb4v85p7rZeOHO3V/+Bo9r1R4bODw8PDg44F/P9ubm5tbWlm2uuuqqq6666qqrrnqRAZX/FuLShafUbmOxcdqeQPyb2ID5D2Kb/3K2+beyzX8fGzD/Vrb572abfxPb/FvZ5t/BBsx/E9v8O9jmv49t/h1s87+HQcHhunz1n19/695sp2/N4qoXSLQht25s27cop3r2b8q5v6fMcfLvYv5dzH8Fo9pOvZhnJ9WW3b1/qoO76DZw8u9i/g9TMC1z58ajV/jkWJ2vd/6+pqPcvmW65mXG61/VZRaHd87/4TvJiejA/KcRKSdOns38u5h/O/O/SiYx1xP+cvm7v3VUqiRs/pMoYjw6Ov+kJ/FvYyRFLUg8Xzb/LWz+a1lRxtV659Tj3+5jVievq6tDR+H/OSdRc1he+LmvGm5/nPoFTqC19qZv+qZv+7Zvm5n8K5VSfuEXfuGnf/qn5/O5ba666qqrrrrqqquuetEAlf8e0abVxbOPK9e/dN9vOxsSV1111VVX/UcQYL7hr67747u3t/tsFle9QCJHz0+sH/bWuXVKw7re95e0Jd0WNv+3SbR1bt24fshb5Hyj7N9b7/0zFFz1wtmojje99njza2GGW16fbHQbrjMy4/Dujb/48nLubygLMP8pBKBwt+W+d7fFVf9KNtHr3meMv/gz+9NEKdj8p1JEnc34d3Am/+/JmaV7/Nt/zO7DXqquDh2F/+ecKJAu/tq3Hv7FL8RsA5vLMvPlX/7l3/Ed35F/k4sXL/7Yj/3YxsZGa42rrrrqqquuuuqqq140QOW/h6UyDvsX7v37k9e+RD/bdpuQuOqqq6666t8nrajtl5504kefcKrKaa76FzipC3Ls7vqzOLy7u/fPKHOc/N8nnJRZWd6jO4/q+b+r9/0VZYaTq14YEzX2b+9u++124pHuNomq4SD2nlHOP27+hO8v5/6Gbgsn/0lsFEyreu+f5d7psvtUAMRVLzIFw1H7tV/Yu+fuabFQJv/pbNtc9e/giLJe3vra73zXK795GdeOwv9zTqJKcfHXvnXvN78r+jkYzGUR8cQnPvEP//APM1MS/xqllL//+7+vtdrmqquuuuqqq6666qoXGaBrrrmG/zbKnPrZzqlrX2K+OJE5gngBbCSuuuqqq656oGZtdu3rXu/pL3PDYU4yKl173D2bH/4bDz6/7GbFaV64Iu+uu099hSe+18vsO6sw/w85GQ/IRhS6TVT4/0J4YtgHEx3dFle9SMR0ROmna17WsxMgciiXnhYXn0DdpHTY/OcSbgz7kKjSb3PVv8AgnqXyKz+195u/cjCbh82/SNBgwjNkrvovZCMBjtId7t33Yq/6lx/yldPGttqExItguOtJ/Q2P5H8jg3iBMtXNchp2f/kbL/3md6r2PI/lcnl4eCiJfyXbGxsbm5ubtrnqqquuuuqqq6666kUGVP47OaKOw97Zu//qxJlHb25dZxsSxFVXXXXVVf9KRiVy96D7yj+//uxRv1Fbs7jqRaFgdgIJGyeY/y+MKovTADZuXPUiMd0muN79J7gBIErP7CRObP7TGRUWJ0HYuHHVi8ZGvf7+z47+8PeO+lnYXPU/nyPKuDq85pbHv8PHjVvHy7iygv+3nEiab0zn7zz/M19++Ne/Et0cAPOcNjc3d3Z2bEviX6m1lplcddVVV1111VVXXfWvAVT+m1mqOa3O3fM3w7FLOycfXMrcTjslQFx11VVXXfWiEcZ8699e80d3bW91rVlc9aJzw/y/ZHLiqn8tJ0C3AeKZjBv/dUw2rvrXyCR6zt4x/vLPH4yDa5XNVf/jSZlZuie+1YdeeuhL1tWBo/D/UzZAsw1nO/r737nwM1823vu06OcANs8jMzOTq6666qqrrrrqqqv+qwCV/35GIXzp4lNXR+eOnXrYfON0qTPnlJmAxGXiqquuuuqq52UMmCj+qSee/MHHnV7UbBZXXXXVfzYnV/0vYTuK1gf58z956ey903yuTK76n89SXa+e+kbvdeervmVdHzmC/ycENhjbtiTNt4Dh7ifv/d4P7f/xj5NN/QIbzFVXXXXVVVddddVV/wMAlf8RDESUYdg7e/dfLTavWWxes9g83XVbCJy27eSqq6666qrnJULQt7+/Y/vr/uJ6ScLmqquuuuqqZ1OI0G/92sETHjfM58rkqv/5HOqX+/e92Ks9+S0+WJkGEP9PGJVKhEpHnXlYrp76F0eP+92DP//Z6dztMd+mFpxcddVVV1111VVXXfU/BlD5n0QK0NHBPUcH987mx0rd6PpF12+XOu9nO1LhqquuuuqqBxBuqfuOuifftfHFf3zD+VXti22uuuqqq656Tv7j3zn8o9896ntlctX/fJZiXN/3kJf423f55Gm+FdOAxP8f0nD+9jzaH88+Y33b30/nbhvuetJ49tYy34qNY2TDXHXVVVddddVVV131PwpQ+R/HpXTAsL7k5UVFkSJKf+aGl5/Ntmxz1VVXXXXV/UKMqS/645tam/aG2hVsrrrqqquuehaDQmcvtF//5YNxcO1kc9X/fI7SD6unvdKb7N38qPn6KBX8/+Gkm5//iS8cbv0bUFvu0aaYbdTtU85GNq666qqrrrrqqquu+p8HqPzPYxuQqioYnM7JTtt2grjqqquuuurZfHEV2aIrCbL5V7Fs3BKapzQYxFVXXXXV/x0uaD15bFDUzL9BQkKCueq/SEJCSkxrt2Yl/3puk9vE/zpOlZaHu+3gYix2YraJhNNt4qqrrrrqqquuuuqq/6mAyv9cxgAIUCl9qTM7QVx11VVXXfVsrlK2AEUUYxAvsipH6XYWhe3SZQFz1VVXXfV/TOGaZWyJVRLBv5agwQhzMFf9F0mzQXb9ouxcU4ZVSPzrtUv31Z3T/K9iIFOzhbq5ohBBNsxVV1111VVXXXXVVf/DAZX/BWTnpXNPjtIZi6uuuuqqq57NIGQ3JBHG4l9BYt3iB/9092+ePqTFVVddddX/ORJHq/y7cJtb4t/AkFAwV/1XsVrdXNz9t79yeOn2yAbiX68d7ZWNHf7XsSllunAXtcfJVVddddVVV1111VX/GwC65ppr+N/ATtsCc9VVV1111XMTAObfQjBmTMlVV1111f9VErWTuOp/E4syjWqTkfg3iSCT/4WMo5uh4Kqrrrrqqquuuuqq/yWAyv8SUkgCxFVXXXXVVc+f+DeaFc+56qqrrvq/zOaq/2WMa0+diX8zg/hfSICTq6666qqrrrrqqqv+9wAq/5uYq6666qqr/hPYmKuuuuqqq676H8YG8+9irrrqqquuuuqqq6666j8fEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwHBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VUFszV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/CVBtc9VVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9mwDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZA8O8mif9kkiKCf5kkcdVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9VgOBfT5IkLpPUWrPNi6CUwvOQpAhAEbwAmblaLnmhIsLZWmuSuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv8SQPCvJGkcx2kaJQFtmnaOHZ/N57Z5YZSZu7sXI4IHkDRN43q1jIhhtbJTEs/J9mw2f+RjXhyQhMTzoeXyaLGxubW906ZJElddddVVV1111VVXXXXVVVddddVVV1111VVXXfWfDwgeQJLtcRymaZJkexzHaRy5LFtrrR0dHj7owQ+94cZbVqtlKXUYh9d5/Tc5ffqa5fJIiszMbEBm2s7WxmHIzNamnWPHP/gjPn7v0m5rDbBzGIZxHG686UEv/bKvuLd36cVf6mU2NramaZymcRwHLpO0Xq/e+wM//MVe4qVaa8MwtHGUlJmttXEcp2mSlNke82IvecNNt7zaa77uar2SxFVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3nA4L7SWqtRcR119948uSp5fKo67obb7rluhtuzEzbG1tbp06fKbW89uu/8eu90ZtP47haHj32xV9qc2trd/fCyVOnM9tisbFYbNre2NiMiO1jx2958EO3trfHYT2fL17ulV5te+fYddff2Frruv5BD3nYbDa/cOHcxQvnnfmO7/6+j36xlxiH8fobbr7x5gcBtm1vbGy+5Eu/3J//6R+WUq6/4cbjJ04Ow7BYbGxtb1973fUnT52epmmx2PiAD/1YO0+dPvOwRzxqtVpK4qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/6TAZX72Y6IN3zTt3rxl3rZiPiln/2J+WLjUY958drVJz3+73/hZ3/iEz7t83eOHf+xH/yuBz3k4dffcNPP/PgP3n77rY95sZc82N8/Ojz8nC/+mk/9uA9923d694c89BFf/Lmf8rbv9O533nFb38+uu/7GqU2/+DM/fniwv7m59W7v88EPeejDf/e3fu2hD3/E8eMnL5w/9xu/+gvv84Ef8aWf92kPeegjXut132i1XL70y71S1/e3P+Npv/VrvzSO4yMf/djjJ0+9+mu9/mq5fPGXetnWpm/+mi994zd/m1d+9df++7/5yxtvftCPfP93Ao9+sZd4yEMfMY3jwx/x6Cc+/h/m8w27cdVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf+ZgAAAScujo4c/8jEv/lIv87mf+jHf/a1f/1Iv+wpv+bbvdPddt69Xq3d41/cBZvPZb/36L/3Ob/3qEx//97/4sz9+x+23lihb2zuSLl48/+QnPv7lX+lV9/f3tnZ2HvzQhx8eHjziUY999GNf4gmP+9uXftlXeLlXfJXVaunM7/+ub/rSz/u0t3mHd3vZl3+Vn/iR7/2TP/zdUspiY/Puu+94wj/83S//wk+97Tu9x8H+pfvuuesd3vW9S6193z/hH/7ucX/314/7+795+CMf80kf/QG/9os/+3bv/J6ttbvuuP0rv+Szf/e3fvXN3urt//SPf+9pT3nSj//I925ubS8Wm9maxFVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1nAypXSC3b5tZWa7ke1k950uN2do69xEu/3B233bper++95y5gHMez990D9P1sHIeIgjSNY5Sw/YTH/90bvMlb/u5v/trf/81fvdhLvMywXks6d989Bwf7v/Grv/j4f/jbra3t8+fu271wYbGxub936Qe++1te743e/Py5s3/2x7+f2YBSy/b2sc3NrVuf/tSNjc2f/JHvz9aAru+Ba6+7frVaAmfvu2fn2In9vUtPfMLfA7aHYQBKKaWUzJzaJImrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676zwcEV9hd1527796udi/50i//Zm/1jq/+Om9w61Ofcu/ddx/sXbrhxpuBxWKj72cA+OSpM6XWrnZ33nFbiTKbze94xq0v/pIvC/6LP/2DN3qzt771aU+54/Zb9/f3n/yEx508cXJra2e9Xj/4oQ9/yZd++Vd+1dc8ONh7pVd9zR/9ge96lVd77ZtveUgtFei6fnNr6xlPf8rF8+fuueuOG2+6hcsy89jxk3fc9ozZbPbiL/EyL/uKr/LEx/3tfGOj72dA13WLxQKotXvwQx8xrFf33Xt313W2ueqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv9kQFksNris67oL589N0/hmb/X28/niB7/n29br1du/y3ueuea6X/jZH79w/uxDHvaIpz75CffcdWdEvMRLvdxTn/yE1Wp54fy5l32FV7lw7r577rrj1OkzT3vKk5765Cc85sVf8td+6Wef+Li/f5mXf6U3erO3fsatT/vD3/utxWLj5gc95NTpax7+yMf84Hd/y7HjJ978rd/xT//wd//+b//qmuuu/8Pf+82dneM3PejBv/Erv/A27/Buj3rMi//KL/70+XP3RRRnPvxRj/nVX/zpNk1v/tbvIOkHvudbb7r5wefO3fuUJz3+mmuvl/RXf/Enp05f8xqv/frnz539w9/7zShFElddddVVV1111VVXXXXVVVddddVVV1111VVXXfWfDNDJk6d5FmlYr9arVUTZ2NycxnG1Wipisdjouu5gf6+fzfu+X6/Xq+XR5tZ27brD/f2Xf6VXvfuuO+675+71et3PZl2te3uXtneOSTo6PGxt6rp+vljY3t/fK6U4c7GxOQ7DOA6162az2fLoaHvn2NHRYWttNpuvlkfAfLFRawWAg/39re3tYVivV6uI2NreWR4dRcRiY2O1XE7TtLW9ff7c2Qc95GHXXnf93/zln21ubWcmV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9Z8M0MmTp3kARYQEtNYkRQSQmXZGqc60U4qIaK3ZLqUcHR12tatdFxGZabuU2toERBQJ25kJlFKNBZkpSQo7bUfENE2lFEmZGRFAZtoGgFJKa02KCAGttYgAWmsRIam1VrtuWK+naVwsNjKTq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+s8H6OTJ0/z7RIRt2/x3kyQpM7nqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/EkDl3y0z+Z/Btm2uuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqvwoQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/VkBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9W8FVElcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf8mQC1FXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/JkBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9W8FBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvxUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/VkBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9W8FBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvxUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/VkBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9W8FBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvxUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/VkBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9W8FBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvxUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/VkBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9W8FBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvxUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/VkBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9W8FBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvxUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/VkBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9W8FBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvxVQ+V9CXPXfwPx3E1ddddVV/7nMfyeJq676/8Pmv48QV1111VX/gxlz1VVXXXXVVVf9rwVU/pcYMs1V/3UEhiIVif8uaTcQV1111VX/eVSE+O9h5zRhc9VV/x8IlSqJ/yZrrbnq/xlZlrnqqv8NjKtroXDVVVddddVVV/3vBFT+NxCcmc9rBDZX/ZcwhLRs7WAc+W8SixKLYnPVVVdd9Z9F5P7kyYj/eiplfux4lGJbiKuu+j/LSM4cDw9yHJH4Lyd0Y7sxCGOu+n9jYqpU/ssJJWlcKMZcddWLIIgDHRzogKuuuuqqq6666n8noPI/XrM3a/2uV3/1Rx8/PmSKq/4rNPt433//U57yWX/1Vw0CzH8pT95502uued8Ht8Om4KqrrrrqP16iRTzj4/529ZTDmAfmv4ykNgyb19/w6p/7ZTsPenAbBim46qr/q2zVur50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+rcCqm2uuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqn8ToLZmrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qp/EyC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/6tgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+rcCgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrq3woIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qp/KyB4TpJAvGgighdAEZJ4ThHB/SRFBC9AREjiX8k2L4KIkMTzkMRlknh+JNnOTF4wSZJsc9VVV1111VVXXXXVVVddddVVV1111VVXXXXV/wNA8JzW63VrkyT+JbYPDvYl8TykWC+X6/VaEvez8+BgXxIgaRzHo8NDRfA8pDg8PJimSRIvMkkRwb9EEcujo2FYS+I5rderzAZM08jzkDRNU611Np/b5gVorbXWIoKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/4fAIJnsSU95KEPP37iZJumUmsphctKKRFRSlEEICki5ovFK7zSq43jGKWUUiIKl5Vap2l4+KMe86AHP3RYr2utpRRgNpu/wiu9emutdt00jmeuufbFX+plx2GotQMklVJKKRGxXi9f+uVe8dix461NpZRSiiRAUimllCIJiCilFElAa22xsfGar/0GbZpKKUApRRIoIiSVUkopEbFeLh/5mBe76ZYHtzaVUiSVUkopUjz0YY/a3jkuxanT1wARUUqJCEDSOI6nTp95z/f70Ac/5OGZWWtVBFBKiYhSSkTYubW1vVhsvNprvt7W1nZrjauuuuqqq6666qqrrrrqqquuuuqqq6666qqr/k8DgvsZohTb0zS2zL3di3t7lzITvHvx4uHBwe7FC+vlUtIwrM+fOyv0QR/xCavlchzWe5d2Dw/27ASWR0eXLu2+5uu84Wu+7hvuH+wdHOxf2t09Ojw8dvzk+3/Yx+zuXjjc37+0t/tiL/HSb/OO77a3t3t4uG97HIa9vUv7e5eAg4P993r/D7v5QQ85PDg42N/fu3RpHAZJwzDs7V3a37s0TVNEHOzv7V3aHYdBUma++Eu+7M7xE/v7e+vVCrh0aXcch8x2eHgwTdP+3qW9S5cy8+Bw/y3e5p1e8qVffnf34nJ5NE3T3t6l3d2L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tQNlNmfajlJKKeM42HRdl5kSUrRpUgTQ2lRKKaXaBuy0KaVM05jpWmtETNNUSgFaa6UEqE1TZtauk8RVV1111VVXXXXVVVddddVVV1111VVXXXXVVf+nATp58jSXSWptOtjf39jc6rrONv/bSLLN/wCSbHPVVVddddVVV1111VVXXXXVVVddddVVV1111f91QFksNrifomxsbEXINlddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvwSoPJDd2sRVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aIBgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrq3woIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qp/KyC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/6tgFprcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9mwDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwHBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwHBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwHBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwHBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwHBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwHBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwGV/yVKFBBX/a9iZzr5twoUCjBXXXXVVVf9Z5C56qqrrrrqqv9JDFbhqqv+98hs2PxbRQRX/T+T/DsZxP9SmVx11f9dQOV/A+O95cWWE4ir/jcQGPd1Pu82+Lc6yuEwByEw/2qSSFsIzFVXXXXVVc8m40LJsWL+bSRsrrrqqquuuuo/kKFTduMhNv8minAmV131X8KgiNnGdtSKzb+e8dHywDYIzL+SJMA2V/0vIWQ8Vy1p/q0coUz+d8r5DImrrvo/Cqj8j5fOWZ1/zFt91fUnHtxyElf9L2C77+a/94Sf++k//1Yp+NebnO926uU//NrXOsh1IP41Qlq1ce3peN1oTq666qqrrnoA447uGeUZZ172SfMZmfwbHAzT1qxirrrqqquuuuo/hNFc018M1/ztS31o2dhxm5B40RlJh7vnNo6dQlx11X+6dNR6tHv+177hs88940ndbGEn/xq2+272Vm/wPovZZmZD/CvJzqlNXe3BXPW/gaFz/FR76h2n+kJg/nUE01T2DtrpE7QE8b+IAI791K/E4RERXHXV/0VA5X8+O1QefcPLPfTaR0+tgbjqfzw753299ewTDOLfwvjm/sRjdx5FWyLxrxO09dCGfrZNJuKqq6666qoHMO6v79u1D7mHhWlC/Gu15VgWHVddddVVV131H0ZozNU1+y/zqmV7k8a/ikHi0n3nds6cFldd9Z/OJir75y72iw1n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","media_type":"image/png"}}]}]},"uuid":"6210b4ba-6077-4ff2-aaa7-f1e5bd0a852b","timestamp":"2026-07-28T04:54:28.400Z","toolUseResult":{"type":"image","file":{"base64":"iVBORw0KGgoAAAANSUhEUgAAB84AAAF7CAIAAAA8NjZiAAJyj0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a+ePHmaq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuurfBAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqn8rILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/q2A4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676twKCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuurfCgj+pxD/+STxIpDEVVddddVVV1111VVXXXXVVVddddVVV1111VVXvQiA4IWy0zb/SrZt85wykxdAUuaU2UD8SzKT58c2L1Rmrtdr27xQtqdxlMRVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9S4DgOUkqpZRSSim2u66PCKCUUkqRFKUAERFRgIiIiFJKlBIRgKS+n81mc9sRpZQSEUDfz4CIiAhJpdSIACSt16sbbrzl+htuzmySJJVSACmkkKKUElG4rJ/NIkopRZKkUmpERMRisSEJkCQpopRSpOCyzDxzzbVv8uZvs1hsREQpBZBUSokopRRJkjJze3vnEY9+sWG9lsRVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9UEDwAJLGcbxw/tzu7sWjo8OLF89/5Cd8xou9xEsf7O/tXrxw8cL51qb9S5cUsTw6Ojzcl7Q8Oloujy5eOH+wt3f+3NnXef032dzaPn3m2muuvS4zDw/3z587u16vxnH8rC/6qo3NzcPDg8PDg2kaz52992B/X5JtKV7+lV7tuutv2N29IGkY1vt7l4D1ejkMq/V6df7c2f293YiYxvFzvuhrVqujc2fvnaZxmsZzZ+/du3Tp2PETD3vEoy5evPByr/AqD3rwQ/f3Lh3s750/d3YY1pJq1+3uXniX9/yA2Xx+sL938cL5ixcuSBrH4dLuxb1LFy+cPydp9+KF13vDN9vY3HrFV3n1ja2tzJTEVVddddVVV1111VVXXXXVVVddddVVV1111VVXvWBA5X6ShmF97XU3vvxbvt3+/p4zf/HnfqLvZ5m52Nh4wzd962ka/+JP//AVXvk1/uj3f/ux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7kMe9si/+5u//PM/+YPFYuO+++558EMfsbGx8aQnPu6eu+58xq1PvfOO23YvXPj7v/3LO25/xt6l3ZOnz/ztX//Fn/7R721sbt1x2627Fy+01n7jV37+b//6zx/56Mf+9V/+6V/9+Z9cOH/uvnvuvufuO1ub/uj3f7vWrpT6yz//UxcvnO+6Tordixee9uQnPvmJjz956vTZs/f+zm/+8vLo6I7bbj177z3AHbffetedt9/+jKdfc811J0+f/sWf/Yn5fG6bq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuesEAnTx5GpDUWlssNt7srd/h+PETXd//zm/8yj/83V9P09TatFhs7O9dArZ3jini6GC/62dd1+3vXdreOdZaO9jfk7S9c2wch2G9ns8X4zhubW/vXdodx3Fjc3M+39i7dHHn2PHVctla67puf3+v72ebW1uSpmnc3jkmtL+/NwxrYGNj69LuhY3Nra7rjo4OV8tlP5ttbm7beXCwj91a2945ltn29/b62Wxzc+vwYH9za3uapqOjw62t7aPDg6lN21s7tesyM6IcHuzNFxvA/t4lRRw7dnwYhmkaNze3xnFcrZbb28eODg+Aa6+/4fy5s13X2eaqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteMEAnT57mCilbK6Vsbe+M43h4sF9KiQjAdkQAmWm7lJKZtksprTVJEQG0zJBAdkrKzIgiYTszSymttYgAbEeEIVsDJE3TBNRaJQGZWUrJTNsRIcl2ZgKlFBuJzAQiwiazlVJaa5IiIjMVIchM21wWpTgTiAigtSZJUmstIiJimqZSiu1xHLqut81VV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9UIBOnjzNA9jOTEkRwX8hSbb5n0GSba666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupfAlSek6RSCv/lbPM/hm2uuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/FRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9WQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBNUJcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf8mQI0QV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/CRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9WQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwUEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/FRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9WQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwUEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/FRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9WQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwUEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/FRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9WQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwUEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/FRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9WQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwUEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/FRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9WQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwUEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/FRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9WQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131bwVU/reQxFVX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lZaHu+3gYix2YraJhNNt4qqrrrrqqquuuuqq/6mAyv9cxgAIUCl9qTM7QVx11VVXXfVsrlK2AEUUYxAvsipH6XYWhe3SZQFz1VVXXfV/TOGaZWyJVRLBv5agwQhzMFf9F0mzQXb9ouxcU4ZVSPzrtUv31Z3T/K9iIFOzhbq5ohBBNsxVV1111VVXXXXVVf/DAZX/BWTnpXNPjtIZi6uuuuqqq57NIGQ3JBHG4l9BYt3iB/9092+ePqTFVVddddX/ORJHq/y7cJtb4t/AkFAwV/1XsVrdXNz9t79yeOn2yAbiX68d7ZWNHf7XsSllunAXtcfJVVddddVVV1111VX/GwC65ppr+N/ATtsCc9VVV1111XMTAObfQjBmTMlVV1111f9VErWTuOp/E4syjWqTkfg3iSCT/4WMo5uh4Kqrrrrqqquuuuqq/yWAyv8SUkgCxFVXXXXVVc+f+DeaFc+56qqrrvq/zOaq/2WMa0+diX8zg/hfSICTq6666qqrrrrqqqv+9wAq/5uYq6666qqr/hPYmKuuuuqqq676H8YG8+9irrrqqquuuuqqq6666j8fEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwHBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VUFszV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddW/CVBtc9VVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9mwDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZA8O8mif9kkiKCf5kkcdVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf9VgOBfT5IkLpPUWrPNi6CUwvOQpAhAEbwAmblaLnmhIsLZWmuSuOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv8SQPCvJGkcx2kaJQFtmnaOHZ/N57Z5YZSZu7sXI4IHkDRN43q1jIhhtbJTEs/J9mw2f+RjXhyQhMTzoeXyaLGxubW906ZJElddddVVV1111VVXXXXVVVddddVVV1111VVXXfWfDwgeQJLtcRymaZJkexzHaRy5LFtrrR0dHj7owQ+94cZbVqtlKXUYh9d5/Tc5ffqa5fJIiszMbEBm2s7WxmHIzNamnWPHP/gjPn7v0m5rDbBzGIZxHG686UEv/bKvuLd36cVf6mU2NramaZymcRwHLpO0Xq/e+wM//MVe4qVaa8MwtHGUlJmttXEcp2mSlNke82IvecNNt7zaa77uar2SxFVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/3nA4L7SWqtRcR119948uSp5fKo67obb7rluhtuzEzbG1tbp06fKbW89uu/8eu90ZtP47haHj32xV9qc2trd/fCyVOnM9tisbFYbNre2NiMiO1jx2958EO3trfHYT2fL17ulV5te+fYddff2Frruv5BD3nYbDa/cOHcxQvnnfmO7/6+j36xlxiH8fobbr7x5gcBtm1vbGy+5Eu/3J//6R+WUq6/4cbjJ04Ow7BYbGxtb1973fUnT52epmmx2PiAD/1YO0+dPvOwRzxqtVpK4qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/6TAZX72Y6IN3zTt3rxl3rZiPiln/2J+WLjUY958drVJz3+73/hZ3/iEz7t83eOHf+xH/yuBz3k4dffcNPP/PgP3n77rY95sZc82N8/Ojz8nC/+mk/9uA9923d694c89BFf/Lmf8rbv9O533nFb38+uu/7GqU2/+DM/fniwv7m59W7v88EPeejDf/e3fu2hD3/E8eMnL5w/9xu/+gvv84Ef8aWf92kPeegjXut132i1XL70y71S1/e3P+Npv/VrvzSO4yMf/djjJ0+9+mu9/mq5fPGXetnWpm/+mi994zd/m1d+9df++7/5yxtvftCPfP93Ao9+sZd4yEMfMY3jwx/x6Cc+/h/m8w27cdVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf+ZgAAAScujo4c/8jEv/lIv87mf+jHf/a1f/1Iv+wpv+bbvdPddt69Xq3d41/cBZvPZb/36L/3Ob/3qEx//97/4sz9+x+23lihb2zuSLl48/+QnPv7lX+lV9/f3tnZ2HvzQhx8eHjziUY999GNf4gmP+9uXftlXeLlXfJXVaunM7/+ub/rSz/u0t3mHd3vZl3+Vn/iR7/2TP/zdUspiY/Puu+94wj/83S//wk+97Tu9x8H+pfvuuesd3vW9S6193z/hH/7ucX/314/7+795+CMf80kf/QG/9os/+3bv/J6ttbvuuP0rv+Szf/e3fvXN3urt//SPf+9pT3nSj//I925ubS8Wm9maxFVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1nAypXSC3b5tZWa7ke1k950uN2do69xEu/3B233bper++95y5gHMez990D9P1sHIeIgjSNY5Sw/YTH/90bvMlb/u5v/trf/81fvdhLvMywXks6d989Bwf7v/Grv/j4f/jbra3t8+fu271wYbGxub936Qe++1te743e/Py5s3/2x7+f2YBSy/b2sc3NrVuf/tSNjc2f/JHvz9aAru+Ba6+7frVaAmfvu2fn2In9vUtPfMLfA7aHYQBKKaWUzJzaJImrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676zwcEV9hd1527796udi/50i//Zm/1jq/+Om9w61Ofcu/ddx/sXbrhxpuBxWKj72cA+OSpM6XWrnZ33nFbiTKbze94xq0v/pIvC/6LP/2DN3qzt771aU+54/Zb9/f3n/yEx508cXJra2e9Xj/4oQ9/yZd++Vd+1dc8ONh7pVd9zR/9ge96lVd77ZtveUgtFei6fnNr6xlPf8rF8+fuueuOG2+6hcsy89jxk3fc9ozZbPbiL/EyL/uKr/LEx/3tfGOj72dA13WLxQKotXvwQx8xrFf33Xt313W2ueqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv9kQFksNris67oL589N0/hmb/X28/niB7/n29br1du/y3ueuea6X/jZH79w/uxDHvaIpz75CffcdWdEvMRLvdxTn/yE1Wp54fy5l32FV7lw7r577rrj1OkzT3vKk5765Cc85sVf8td+6Wef+Li/f5mXf6U3erO3fsatT/vD3/utxWLj5gc95NTpax7+yMf84Hd/y7HjJ978rd/xT//wd//+b//qmuuu/8Pf+82dneM3PejBv/Erv/A27/Buj3rMi//KL/70+XP3RRRnPvxRj/nVX/zpNk1v/tbvIOkHvudbb7r5wefO3fuUJz3+mmuvl/RXf/Enp05f8xqv/frnz539w9/7zShFElddddVVV1111VVXXXXVVVddddVVV1111VVXXfWfDNDJk6d5FmlYr9arVUTZ2NycxnG1Wipisdjouu5gf6+fzfu+X6/Xq+XR5tZ27brD/f2Xf6VXvfuuO+675+71et3PZl2te3uXtneOSTo6PGxt6rp+vljY3t/fK6U4c7GxOQ7DOA6162az2fLoaHvn2NHRYWttNpuvlkfAfLFRawWAg/39re3tYVivV6uI2NreWR4dRcRiY2O1XE7TtLW9ff7c2Qc95GHXXnf93/zln21ubWcmV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9Z8M0MmTp3kARYQEtNYkRQSQmXZGqc60U4qIaK3ZLqUcHR12tatdFxGZabuU2toERBQJ25kJlFKNBZkpSQo7bUfENE2lFEmZGRFAZtoGgFJKa02KCAGttYgAWmsRIam1VrtuWK+naVwsNjKTq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+s8H6OTJ0/z7RIRt2/x3kyQpM7nqqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/EkDl3y0z+Z/Btm2uuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqvwoQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/VkBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9W8FVElcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVf8mQC1FXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/JkBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9W8FBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvxUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/VkBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9W8FBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvxUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/VkBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9W8FBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvxUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/VkBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9W8FBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvxUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/VkBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9W8FBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvxUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/VkBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9W8FBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvxUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VX/VkBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAcFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9W8FBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvxVQ+V9CXPXfwPx3E1ddddVV/7nMfyeJq676/8Pmv48QV1111VX/gxlz1VVXXXXVVVf9rwVU/pcYMs1V/3UEhiIVif8uaTcQV1111VX/eVSE+O9h5zRhc9VV/x8IlSqJ/yZrrbnq/xlZlrnqqv8NjKtroXDVVVddddVVV/3vBFT+NxCcmc9rBDZX/ZcwhLRs7WAc+W8SixKLYnPVVVdd9Z9F5P7kyYj/eiplfux4lGJbiKuu+j/LSM4cDw9yHJH4Lyd0Y7sxCGOu+n9jYqpU/ssJJWlcKMZcddWLIIgDHRzogKuuuuqqq6666n8noPI/XrM3a/2uV3/1Rx8/PmSKq/4rNPt433//U57yWX/1Vw0CzH8pT95502uued8Ht8Om4KqrrrrqP16iRTzj4/529ZTDmAfmv4ykNgyb19/w6p/7ZTsPenAbBim46qr/q2zVur50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+rcCqm2uuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqn8ToLZmrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qp/EyC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/6tgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu+rcCgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrq3woIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qp/KyB4TpJAvGgighdAEZJ4ThHB/SRFBC9AREjiX8k2L4KIkMTzkMRlknh+JNnOTF4wSZJsc9VVV1111VVXXXXVVVddddVVV1111VVXXXXV/wNA8JzW63VrkyT+JbYPDvYl8TykWC+X6/VaEvez8+BgXxIgaRzHo8NDRfA8pDg8PJimSRIvMkkRwb9EEcujo2FYS+I5rderzAZM08jzkDRNU611Np/b5gVorbXWIoKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/4fAIJnsSU95KEPP37iZJumUmsphctKKRFRSlEEICki5ovFK7zSq43jGKWUUiIKl5Vap2l4+KMe86AHP3RYr2utpRRgNpu/wiu9emutdt00jmeuufbFX+plx2GotQMklVJKKRGxXi9f+uVe8dix461NpZRSiiRAUimllCIJiCilFElAa22xsfGar/0GbZpKKUApRRIoIiSVUkopEbFeLh/5mBe76ZYHtzaVUiSVUkopUjz0YY/a3jkuxanT1wARUUqJCEDSOI6nTp95z/f70Ac/5OGZWWtVBFBKiYhSSkTYubW1vVhsvNprvt7W1nZrjauuuuqqq6666qqrrrrqqquuuuqqq6666qqr/k8DgvsZohTb0zS2zL3di3t7lzITvHvx4uHBwe7FC+vlUtIwrM+fOyv0QR/xCavlchzWe5d2Dw/27ASWR0eXLu2+5uu84Wu+7hvuH+wdHOxf2t09Ojw8dvzk+3/Yx+zuXjjc37+0t/tiL/HSb/OO77a3t3t4uG97HIa9vUv7e5eAg4P993r/D7v5QQ85PDg42N/fu3RpHAZJwzDs7V3a37s0TVNEHOzv7V3aHYdBUma++Eu+7M7xE/v7e+vVCrh0aXcch8x2eHgwTdP+3qW9S5cy8+Bw/y3e5p1e8qVffnf34nJ5NE3T3t6l3d2L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tQNlNmfajlJKKeM42HRdl5kSUrRpUgTQ2lRKKaXaBuy0KaVM05jpWmtETNNUSgFaa6UEqE1TZtauk8RVV1111VVXXXXVVVddddVVV1111VVXXXXVVf+nATp58jSXSWptOtjf39jc6rrONv/bSLLN/wCSbHPVVVddddVVV1111VVXXXXVVVddddVVV1111f91QFksNrifomxsbEXINlddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVvwSoPJDd2sRVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aIBgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrq3woIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qp/KyC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/6tgFprcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9mwDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwHBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwHBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwHBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwHBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwHBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwHBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfVvBQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVV/1ZAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9WwGV/yVKFBBX/a9iZzr5twoUCjBXXXXVVVf9Z5C56qqrrrrqqv9JDFbhqqv+98hs2PxbRQRX/T+T/DsZxP9SmVx11f9dQOV/A+O95cWWE4ir/jcQGPd1Pu82+Lc6yuEwByEw/2qSSFsIzFVXXXXVVc8m40LJsWL+bSRsrrrqqquuuuo/kKFTduMhNv8minAmV131X8KgiNnGdtSKzb+e8dHywDYIzL+SJMA2V/0vIWQ8Vy1p/q0coUz+d8r5DImrrvo/Cqj8j5fOWZ1/zFt91fUnHtxyElf9L2C77+a/94Sf++k//1Yp+NebnO926uU//NrXOsh1IP41Qlq1ce3peN1oTq666qqrrnoA447uGeUZZ172SfMZmfwbHAzT1qxirrrqqquuuuo/hNFc018M1/ztS31o2dhxm5B40RlJh7vnNo6dQlx11X+6dNR6tHv+177hs88940ndbGEn/xq2+272Vm/wPovZZmZD/CvJzqlNXe3BXPW/gaFz/FR76h2n+kJg/nUE01T2DtrpE7QE8b+IAI791K/E4RERXHXV/0VA5X8+O1QefcPLPfTaR0+tgbjqfzw753299ewTDOLfwvjm/sRjdx5FWyLxrxO09dCGfrZNJuKqq6666qoHMO6v79u1D7mHhWlC/Gu15VgWHVddddVVV131H0ZozNU1+y/zqmV7k8a/ikHi0n3nds6cFldd9Z/OJir75y72iw1nIjD/WlHKTdc9dGvzWGsT/1qSM8c2zLq5ba7638DQE2U8yusXSfCvYxQMQ17YbTdcS2sg/tcwEuBSBOaqq/5vAir/8wnwcjg4XB2MbZTEVf/j2dlyYz0u+XdYe6Itx7YsBC8y46I4bOtlG09PXXMT4qqrrrrqqvtZWdz2p/XWqm3KrUky/xqGvXUe08RVV1111VVX/QdpRKd2uBpXB/tFHW0E8a8i1of7q8VCiKuu+k9mZ6nd+mDfmYh/I7MeV3XdZ04g/pXsnNqIbRvEVf/jGZvwOLAOEeZfSdIwahhZrWkNif99bK666v8soPK/hBShCIUkrvofzxCKUPDvIIQUKCT+FYQURJGQghBXXXXVVVc9mwmIkIpAKgGIf6UQIXHVVVddddVV/4EkSYpQBA4Q/zpSRCiQuOqq/2xGEYpA/HtIIUkK/i0kSQowV/3vIBFISCD+tSQkJEKkkLjqqqv+JwEq/6MpJCCiAOaq/00MSEL8Wxljrrrqqquu+s8gBAJz1VVXXXXVVf9jCAtz1VX/Wwgp+Pewuer/GQGI/58kJCRsrrrq/xyg8j9SKCJKy7aeVsO0Sjc7hbjqfw+hqY0mReHfpCoQV1111VVX/WdI0koQV1111VVXXfU/hSdiUp3Z5qqr/ueTM8f1SgjEv4Ekiav+n2mY/680jDGM7qpLIUQam6uu+r8CqPwPIxQRq3F5uN7bnO3cfPIRO4sTi35z3m2YRFz1v4WdJzev7ct8ypF/JYHt3WmJUxJXXXXVVVf9B/M8FzH1MID438ZgYxAABkGIq6666qqr/peLkzo6MZw72DohT4irrvofTHZ2s8XpWx5+39Meh82/XmvTOI0CMIir/j+wj2t2Gwbx/894/TW5s6XVul7Y1Th5NnNXcWKuuur/AKBsbm7yP4MQaMrhcLX36Bte9q1f7gPe5KXe/S1f7v3e5KXf/TUf81bb8+PGQlz1v4Gklu3Gkw/ZW138m9v+YFYXxrzIBEJPX527pTv22M0HtRxD4kUnTdkmt0WZgcVVV1111VXPJoRyq23XcaHr7uLfZD3lvAb/HQwKVImKCipEQQHJVVddddVV/3sJQGd0cGZ991NPvcJUZkGC+FfQ+uhgtrGJxFVX/SeT5MxuvnHDY17mjr//80v33l5qD+ZFJmkY161ND7n5MfwbOZ2lVK7638NwfWzd1g97MQnxryKpZazWub1JGon/RQxieOgtq8c8YnjoLcMtN07XX6Plsl64hIIQ4qqr/rcDyubmJv/9FIopx5bTI6976Q9/wy9+u1f4kFd/9Fs84vqX3JofL1GKKoC46n8LA3at3SOue+nbzj3p6WcfN+8WtnmRhbSXqz8/vO3VNm+5YX6qZQuJF5E0ZZvcFmUGFlddddVVVz0XS9Klk6hxzb1kQfyrrKec1+C/XJqoPOUiP/Rk/vhu/vQe/vQe/uhubtvj0ccdElddddVVV/2vpjh2dOd8Wj711CsIhEG8qLQ+OphtbCJx1VX/+SSRuXnizMmbH/a0P/vt9eFelArmRSZx77k7+n5+8w0Pa61J4l/H6SylctX/FnbCMfXXtP6J/XJQCvGik9QyVuvc3iSNxP8ugr6j73Jnu9103figG9cPfdDw4Btjb79e2scQwVVX/W8GlM3NTf5bSZK0Gg/PbN/0Aa/zOe/32p/+iOtfatFvrobD1bhsbhhjIcRV/1sIhFpO24tjN5586N/e9of7q90S1ZgXje151Hun/TuH3TfZecyi9MZCvCikKdvktigzsLjqqquuuur5EpdOsnOJnUtkQbzo1lPOa/BfrkFU/uhuPuVP9Jt36vfv0e/drd+4U+eWvNPDKSGDuOqqq6666n8pG0nlmoOn7s9P33XsMSVHJF5UWh8dzDY2kbjqqv8aUrbp1E0PRXrKn/xmKQWJF41tKTJ99vyd156+5cSx05mTJP4VnM5SKlf9LyEJmOTTravWE/slIF5kklrGap3bm6SR+N9FkMYmk2FkSm8s2jWnVo95RDu23d1zLpZLSkHiqqv+dwLK5uYm/32EjIdp+aqPeNOPfdOveqWHvz7yOK0zMyJCIUmSJABx1f8uihjbcP3xBx/fOP0nT/nVdIaCF1niRXR/v7xrmeMbnngxsHjRSFO2yW1RZmBx1VVXXXXV8xJhpo7dE5y5h/maDMSLaD3lvAb/5RKi8JSL/OLtaqaIEM3cssU7P5wSAsRVV1111VX/WwlZIU83XXrC3TuPurhxY8kRiReJ1kcHs41NJK666r+QM294zMssd8/d/nd/UvsZNi8CSbZLKUerw/vO3fHQWx6zmG9mpiReVE5nKZWr/leR1MQt0+xQ7Y5uLcSLSFLLWK1ze5M0Ev+7CCQkJCQkMmlJKdON168fekvsHXZnzxOBuOqq/42Asrm5yX8ToSSnaXyHV/qwD339Lzq1ff1qPBSSJInnJa76X0ZIMeX40DOPPVjv/93tf1Brz7+G8SzqXx3dfnN37CW2Htw8BeJfJE3ZJrdFmYHFVVddddVVz0sgIlltsppz7V2UBPGiWU85r8F/uYQoPPkiv3ibWiIBNHPTJu/8cEoIEFddddVVV/3vJWFH7ab9U8u7nnbq5Ye6GSSIf5nWRwezjU0krrrqv4okZ5auv+YRL37XE/5m965nlK7D5kVju6vd3v6F1Xr5kFseIwX/Ck5nKZWr/leRBEi6eZrfVle7dRLiRSGpZazWub1JGon/XcRzk5AApubtzfUjHkKov+0uAImrrvrfBiibm5v8d5CUTuP3f53PeJdX/RhJY1uHCi+EuOp/GQEIDI+54eVuO//kW88+vq8zY15kQon/7PC2V9685ab5NS3HkHjhpCnb5LYoM7C46qqrrrrqeQkAURp7J8Bccw8OXjTrKec1+C+XEIUnX+QXb9OYhACauWmTd344JQSIZ7MxSFx11VVXXfW/hABhR7e9vGtzPHjymVcR5kWi9dHBbGMTiauu+i8kKdu0efzU6Qc94gm/+4vD8rCUyovMdq3dfefv7Orslhsf3lqTxIvE6SylctX/KpIECQvHdW32+P5oUArxL5LUMlbr3N4kjcT/LuIFkmhJifHBN+fGfHbrHdhEcNVV/6sAZXNzk/9yUtgG3v+1P/NtXuGDphztFiq8cOKq/2UEALLbvN940OlH/91tf7i7PFejN+ZF1kU5Nx08eXn2TY89erMukhTihZCmbJPboszA4qr/ZCWoQQjz/4tEDUogYXPVVf/LiGcSgksn2Nrj2CWyIP5F6ynnNfgvlxCFJ1/kF2/TlIQAmrlpk3d+OCUEiGeyUaBCJhJXXXXVVVf9byAuE0blzOHTVnXrzuMvVnJE4l+g9dHBbGMTiauu+q8lqU3jiRseNN/aedqf/hYvAts8p7vve8Y1J288feK6lpMk/mVOZymVq/5XkQQImjiRdSPLE/ojC/EvkdQyVuvc3iSNxP8u4oWRsLGnm65ri/ns6XdgI3HVVf97AGVzc5P/WkLG47R+t1f/hHd85Y8YphUgBf8icdX/MuIKSVOO1x67+eTWdX/85F9uHiMqmBeN8SK6J6zuPWzrNzn+WIFBvGDSlG1yW5QZWFz1n8mwt+LSiqORKmrh/wnBkOwu2V8zTHQFiauu+t9EPItMq+ye4vS9bCzJgnjh1lPOa/BfLiEKT77IL96mKQkBNHPTJu/8cEoIEAAGBRdXvvUS12wpE4mrrrrqqqv+xxP3M5LbDXtPvGf7kee3bulybQUvjNZHB7ONTSSuuuq/nCRnu+6RL7nc373tr/+w9jNsXmQRMYzre8/d8ZBbHrOx2M6cJPEvcDpLqVz1v4okLhM0cdM0W0e7rV8K8cJJahmrdW5vkkbifxfxL5CwyZxuut5S//TbkLjqqv89gLK5ucl/LUnDtHr9F3un93mtT0tPgCReFOKq/2XEs0lTG2859UiTf3f7H0niXyPxPOrfLe8+WTZedush0IR4QaQp2+S2KDOwuOo/Ux+8zYvzNi/OK93M2SPOHdIVzP9xEmPy4BO828vwxo/koae4/RLriRBXXfW/hng2Ecl6wXKTa+6hNhyIF2I95bwG/+USovDki/zibZqSEEAzN23yzg+nhACBQQL4+D/UN/xDvP4NPrmploS46qqrrrrqfzZxP4Gj1unwzNFtt554mWV/rOSExAuk9dHBbGMTiauu+u9gu5Ry7SNe7N6nPu7cM57c9XPbvACSeE6l1MOjvcPl3oNvelQtnW1JvDBOZymVq/5XkcQDSNw4ze8u44UyCvFCSGoZq3Vub5JG4n8X8S+TQDjHG6+Pw2V/172U4Kqr/pcAgv9aksZpeNi1L/7ur/7xtVTbkvh/SyhQoEDi/zYhwOTbvPwHvvxDXneY1qHgX2lyfsFdv/xX+09XdGlz1X+vEEPjQSd4j5fjTR/N6z6cGvw/EWI18go38c4vxZs+mkecZjkS4qqr/veyqBP33MjTHoGM+F9KYCPAfMaf8mNP05Mv8Ql/rEtLl0Kaq6666qqr/heR02V2zaV/eLVbf6DkaAVXXfU/mKQ2Dceuuel13v9Tj1170zSsFMGLzHat3eOf/Jd/87g/jChc9f+AYILtLG98eHIrq7H47xRSjagRIfHfRWATOnj1lx+uv0ZTQ+Kqq/43AIL/YqYr/Tu/8kdff+JBUxsk8f+YJ8ZDDwceDt1GEP+3Scps837zA173sx90+pGrcRkKXmSGPsr56ehjbvvJ+9YXI2qzueq/kcTUeNQ1bPYAv/QEHncvi440/7cJpuTMJi9xHcDemt94CvtrSmCuuup/MYvSePJjuOMWyojF/0I2Bgpf//d88+PUBdsdv36nPuNPNYyOwFx11VVXXfW/iZwuGy9296+/3O0/M8VMTv672Hba5qqrXjBFGVeHN7/kK77eB39m6edujRfANs/DpnbdH/3Frz7l1r/vut42V/1fFzDIN7bZWxyeEjL/nXIap6PD6egwp5H/RhKteWfr8NVePmvF5qqr/jcAyubmJv9VIsrRev81H/1Wb/MKHyRxmXjRif9TzPy4Tj2yO3Zz2b6+SKz3rcL/KeK5SMpsJ7euPbFxzV88/TfHNkQELzJDH+W24eJBW7/xsUeHZCzEc5GmbJPboszA4qr/BBJTcmqTd3xJbj7G4cDPPZ5nXKQrmP/jijgcefQ1vONLMa888Rw//nfYIK666n8T8XxlYe84p8+yWJKBeL7WU85r8F8uIQpPvsgv3qYpCQE0c9Mm7/xwSsgQ1T/3ND7tz8KmBM30hT+9TxfXfqObETKIq/6nMGAAcz8hrvqXGTDPQYirrnqBDJjnIMT/NOJ5CIGvPXjqvduPOL91c80RiedD66OD2cYmEv9RbAMQEVFK7ecRBdtOsCT+r7PNc5LEi8w2z0kS/9dJ4WzXPPTRhxfP3vH3f1a6HpvnIYnnJxRTm85duPtBNz5yc7GVmZJ4/pzOUir/V0hSSJIQ/3dJ4jkJUlzT+rV8e7cS4vmS1DJW69zeJI3Ev48gpBIBGLAffOL06z3sUS923Q3LlrurJRL/gcS/gkS6nThW9vb7O++h67C56qr/2YCyubnJfwlJLadjG6fe6zU/+UGnHzW2QQr+VcT/COb5EP9aTh72RosHvdbs1KO604/uNq8p5588eQTxf4d4XpKmNj7kmsfa7S9v/d1aOvGv06n++dFtZ+rWy24/1G5CPBdpyja5LcoMLK76TxBiOfKQk7zLSzOrPP4+fvCvCPGvZcAAEv9rCMEbPIJXeRDArz6J33oamz1p/qPYAAhx1f8XNldI/BcRz1ckqwWHm1x3JyVxIJ7Xesp5Df7LJUThyRf5xds0JSGAZm7a5J0fToSi46/v5UN/T3uD+kIaQDCv/PlZbVa/4g0iAcT/IQLx38sgMIgXiUGAUKCCAgUKFEhcYRAvMvH/gQEQIBSooECBAgUSVxjEi0Yg/rcSiBeVQCAQCAQCgUAgEAjE/w7iRWcQIBSooECBAgUSAGAQ/1biP5R4fqzopoPrDp729FOvsOyPlZyQeG5aHx3MNjaR+I8gKUqttVOUcXW03Lt439OesNzf7Wazbr5Ru95pCSRJ/CeTJAX/NWyEFIpSuq7UrtRaai21RgmQABtA4vmxLUkRpXal60qtpdZSa0RwhQ0g8R9KkhQSkiRJkiRJkiRJkiRJkgLxn8iOWm98sZe/6wl/fe7pT+jmC9u8yEqUvYOLB4eXHvbgFy9RbEvi+XA6S6n8HyBsT1ObhqlNLVuGJIn/iyTxPAwBt4zzu+pwvg5BmOchqWWs1rm9SRqJf6dMT2MOg3GU6tY++hVe7Rvf8C3f8dEvcWlY//ZtT0NgkPgPIf51bPrOs3721Ns0jkRw1VX/swGV/ypSrMeDV3n4G7/YTa8wTCtJ/O+k4HnZ/KuJjTMF00ZH0fxkbJ6J3Vtb6bD5P2/K4S1f9v2eet8//O4TfmbRbdmNF40hoBJfcNevPHZx3asee2TmGIir/oulmVde6Ra2ZwB/dw+7K7Z60vyrhJAAbMz/AhJj49QGr/IggItL/uZuNjrS/EcRRAAYbK76f6IEV6T572VRJ+67nie9GI/9W2T+lzAoeOoFf+Dv6mn72uxYJ1UACVMjzWf9eZye+50fSTYk/s/IxBBC/PdIEwFCJpMQL5xBAWZq3HPk2w+VZmz0BcONm1y38LyTAhoG8S9IYyMI8X+YQYKAxtHo2w50foVNM10gePC2zyxUKwI3JF44QyZACPG/jCETIIT4F6SxES8SCfE/WhobQYh/kUEFkmHi3qVvOxAwmSKquGHT1y3oqxS4If4VDBI2mYQQ/7mEXeanDp76mk/9zl959EelOpFG/EeLUrI1Z5bajeP6/G2Pv3jXbRvHTx275gY7N09d083mR3u7T//L33fmg176VWcbm5kpqXS9M/lPYmc2AIUk/jPZLrUqyjSsV/sXL9z59OHowEYhOxc7J05cd8tsa6f2M2dr0ySJ52J3s3mbxmF5ePGu2w4vnnWmJMTGzskTNzy439gs/SynMTMl8R8nWwODeBFIQuI/idSmcfPYydf/kM/6yXvvvHjXrbWfOZMHsM0LYLvvZk++9e/+9K9/89Ve7o2S5P+6NrZ+1j3qxR503Y2nI7R78eCJf3/r/t5RKRERtvm/TjDBnHiTo1PnynixjrLMfxZJbu3BJ069zSMe+4rX3/jzT33iD/zNn1FrFyXtkEICQBHKTGwi+C8mMU7jTdevHvGgjb9+vPvgqqv+ZwMq/yWEWht3Fide7ZFvuug2l+NhqPC/ioJp5ZOP6B755os6wwlCQoVpxRN/ZnnhKWOdy8mLyoyHiaL0AtrK630rMP/3SWrZFv3W+732Z9527onPOPfEWbdhJy+axJ3KhXb08bf99E894v2vnZ1IT4G46r+MYEx2ZrzSzQAXl/zlncwKNi+6EEcj7/myvNvLEMEX/Aa//hSOzWnJ/3A2Nx/nIScBnnqev72bGtj8+wmGxhs8gg97VTY6fuzv+O4/56r/89LMKl/wxrzEtTz9Ip/yS5w/ogvMfxuLkjzt0exc4panMXXI/BcyYCRedAZBm/iWx2lMvdwZ0pxbsT8iqOLGLRaVVeMHnszLnfYjTsqJ+N/NRpUnnPN7/3bcdcj3vk6+9i1yQ/yXaqYUjga+4m94qwf7Ja9VGynihVDwxAv+pn/Qr97B4RRHE1MymSKq2KhsdHqFM/7wF+OVrkPGIF6w4NP/mG97vN7gJn/ja3B8jhsS/8cYJDL9m7fz9f+gv78Qq8ZyYjJpuqCIrU6blbd4kD/kxbhlByfi+bNR5U/v8nv9llZN3/Fa+XoPkhvifwGDgj+/2+/+WzEk3/Ia+YYPVk6EeC4Gmwh/5O/pp5+hrY4XrojdNR/8GH/GK2ADiP95xFf/LV/813qFM/6u1+aaTdyQeEEU/PV9fMPf8/v36GjS4chkJtOJEmxWzYtf8wY+4sV5ydOQvIjSROGOPb/Xb+nJl/Q5L+/3eXG3UUX855HtMnv0Pb91dvOhf/zgd+pyzX80RSz3dsflUZnN73va43bvueP6R73kDY9+6VLKbHO79nNF7J+75+D8vfOdEztnrr/tb//krif+zcNf8XXHYXn65ocdu+bGbBMS/4Hs0s/uesJf/+AnvtvB+fve+tO+9qXf9F2mYS2J/wS2S63L/Ut/+XPf/5c/9/37Z+8elodtHFqbBFFq6Wf9YnPnzA2v8Lbv8zJv+i7dYjPbJIlnc9Tutr/709/73q++9S9/f1wvx9UypxEpSqn9ol9snLz5Ya/yjh/0Yq/7VlGKbf4DGNTG8Qc/8V1v+7s/6WYLIfP8CVTKav/SG37457zKO3/INKwl8Z9AimlY3fTiL//a7/dJP/clH+NskmzzIqul/tnf/OaZk9c/6mEvM45rSfwflZkPe/RNr/emr3Tt9SciAgBe541e/q/+5Am//5t/vV6PtRbb/F8XMOIbpv6Nj07+6NbZJvOfQ8h2V+unv8prvd9Lvjyw3c9+8kmPW65XO7NZSMAde3vH54tffIf3fPDOiT+667aP/61ffvrF84ow/7XSzLr1Ix86f+LTNY6EMFdd9T8WUPmvIY3TeMvpR73ELa86tlEE/xuZ0jHbEc+pzlDwryZu/6P1sO/ocHLhKePyfEYH5v+DUIxtfd2xWz7gdT77y3/hIw7We6EC5kWTeKHu75d3f+adv/gND36HqmpSiKv+Kz3iNA8+AfCkczzuXkKYfx2bvjCrACXA/M+Xpgav/VDmFZs/v4M0If4D1cJmT4i+ABjEVf/3LTokNjok/ieQyeDxL8HWHicukAXMf7I0BkEEiEwMghAvConJfM7L+4tfyWlq4eP/UN/7JIU4NeO7Xydf/BStkTA0nIj/9QyCNPsjlwbG5L9emhIMIx/zh3zfk/Vrd/Ltr+lHnlYbKeJ5GRT85u3+4N+Luw4Zk5s2/ZInOdaz03MwcmnQHYc8dY+7DvXrd/LFr+j3egxKXpjk/IpLA0cjNv9DGADxH8MgAH/JX+tL/1pDkuZRx3ztCR2feVG4sGZv0JMvcccBtx3oV+7wN78Gr3g9npB4QS6NOrsCmJL/dQ6aLq5JMyWIF245sTewnFg1xAtUxN7A3sj/cOeW7A0cjJgXxkaFn3yKP+oPtTtoaDxoy488o52OYz0X1+yPPH2PW/d111P4xWf4G1/db/Vw5USIF84ggfmav9NfnFMfrBv/JYyF6is/40fObT3oyWdepZ9WlviPYUUZlod3PP4vT934kHN3PHX/7D2PfNU3jIh+sXG4e/7g4vlj19ywvHQhan34K73KcNT2zt596uaHbhw/dfbpT3joK7zWxbuesXXyjKLwn2B9dHBw4ez6cK+NgyT+k9il1IPz9/34Z3/QE37vF4FutjjzkEdt7JxYHDths7x04ejShfue9vj9c/fc+QV/+eQ//o23+8xvmm8fc2tIgDP7xcbf/tpP/MRnf9Bq/1KbplO3POy6h7/4xvFTdq72dvcv3Hf26U/cO3v3bX/7x6/2rh/+Rh/+uYrgP4yH5cH6YG99eNDGNYgXIEpZrYZheYj4TyXFtFq+2Ou/zT1P+Yc/+P6v7ucbvMhsS5ra9Pt/9osnjp05c/L6qU2S+I8jSRL/JrZt8+8maZraS738I97krV9tNu+A1WpYL4djJ7Y2t+av/novfezE1i/85O8Pq7HUYpv/6wIG+SXWW/eU4bc2LgqZ/3jGNWI8OvzLe+9+PwC2+n6775er5fHZAkh7OQ2vdfNDXuG6m2rEmz3s0d/813/69AvnQGD+K0lM03jT9dOp4/2d9zoqmKuu+p8KqPyXsLNEeYmbXvnk1jXjtJaC/21sotPBve1JP7+MIiel57qX7jfOhNP86ynYfXo794QjDFB6ykyY/z+kGNrqFR72em/3ih/6Hb/9ubNuwzYvMuN51B86/+cvsbj+w294g2yrIvEfy+b5kvh/zgC81kOZVYC/vpM0If4N0lxh/newObngxa8DOHfEn90BIDD/YWxaEgWbq/7/yARoxuZ/AotoHG3xDy/NK/0edcLiP4cBkIgKAc0HK9ZNpzZMFYYJG0C8QII0swqWIQBZPFsAISWd6AqY/0uKqEHwX80mgmHiI/6AH3mqTs/4hwt6v9/h21/LjzqtNlLEAxkU3Hvgz/wz3XPEw3Z4j0f6Na/nQVucmNP3boMuDL7zgD+6l+96op50ic/5S17mtF/yjJyI52aQOL/k7y/QBxGI/34GCQUkNuI/gI0qv/h0vv7vKcFrXev3fKRf4qSu3/TJmakcrXRx7aft8Wu384NP1ZMu6bP/3D/xhl5UGcTzEJi/PU+z5oX/XWwk/vwshhpI/AtEDdK86rV+/0czGUA8HxJj8ujjYMT/OAbB0ei/OKtZoYgXIk0UnrrL5/9VXBp4xA7v/xi/0jXcsu3jPd2M9YpLA7fu88f38h1P0K0H+py/4MVO+uEnlI0QL0Sa0vGzT+EHn6KNikHiv4awFd108DpP+fZzm7dcWlxXczTi382m1u7g/L3bp67bv3D2SX/wq6/xXh/7xN/75a2Tpx/+Sq9z/Lqb98/fuzrYPX/H05/wO79w42Nf7sVe5y02jp0ch9Wpmx/6xN//lZte/LBfbGZrtVTb/McxluKeJ/3dNCxL7ZD4zyMh/cEPfv2T/uBXFtvHH/vab/Hir/82Zx7yqM3jpzeOn8I+3D13ePH8PU/5+7/95R974u//8uN+62dveNRLve4HfqozAWfW2eKuJ/7tr37dZ60PD07d/LBXfqcPfvDLvNqxa2/cOnWNM48uXdg/d889T/77P//p7771L//gT378225+8Vd86Td5x2F1JAX/EUrtMtuLv95bvuQbveM0rCSBeC5CkK3d+JiXyWmSxH8eybbQa7znx9z3lL9/8h/9er+x6UwAkGSbF8x2LfXchbt/909+7i3f4H1KKXaC+A8yDOM0NgDMv466vtZa+PeJiOVy/bBH3viGb/7Ks3mX6T//w8f9w988db2abrzlzKu97kudPLXzEi/78KPD1a/9/J/Y5v8HQcqvvTx+Vx2eODsIl8T8Z1DcvnfpcBw2u/66ze1rNrbuu3j+hq1tIO0nXTz/Jg99ZI0Annjh7O/f8QwkMP/FBJneXAw3Xd/dfR82V131PxhQ+S9huyv9S9zyqqHgfw4hnoPNC2QUrHd9558OgJN+kxMPrRtnwvwblY4yE1cYJ/86QjybAfOiEuI52Py3GKb1W7zs+zzj3BN/5W9/cHO+k9l40RgCzaJ+6d2/8ajFtW9w4iUyh0D8h7AxlCCNzbMIJFpSghqYFygT839WmtMbPPoMwL0H/OnttKRUbF4QgcSzmGeSeFFIiOdgY/6rSUyNl7mR63cA/v4e7tknxAsnkHigNP8C8SyCEA+U5r9AiCsMNlcIJK6wMf+jSYhnM9i86EI8kI15UQkknouNeVFJiGcz2PwXs6gT56/hcS/FS/4F/znShKAwjPz0U/jJp3FuHUPzZG1WzYrf/Ba/8yM4vhAmGy+EAGP+BQaZF8Lm2YR4URkwzybEfynzXypNBMPER/4hP/JUzQvNzAt/d0Ef8Lt822v6UafVRop4DuIP79MTL+nYjE99mXynFxMJDZI2qgRnFpzZ4qVv4rEn88N+L24/1C/f7pe8hgcy2KSRKL1/6vHcuh81wPwXMGCeTYhnSxOFw7WfuKsbN33tlkj+nQwh2sQv3aYLa73iNf6G1/BDzogREls5stGx0XPjcV7jQT4+50v+Wk+8xJ/ex2vdQo4UcUUag03tuHvPP/ZUzQtp/ldIY0jTddy77x9/qkK86CbzsB3e6rGmCfHCNJj4n8NgkwDUnl9+uh63qyrMC2Mg+OXbuf2Aaxd88SvlGz5cNGhg2sCscM0G1+zwijfxiGP5ob+np+3rt+7yw0/ywtmUwp2X/BV/o2VjozIl/5WEXfrjh7e97pO/7Rcf+3FjmYebEf8+kto0bp645uDCfUe751/s9d5a8A+/8VMX7rr1/b75F7dPXStF7XrM3/7KjyFe8o3euk0RUbrZ4mXf7F2f8ie/8bBXfJ1uvtGmURL/bnbaJt0tNg4u3PtXv/hDpXRTW/OfyFHq3tm7nvgHv2L7Ma/15m/z6d+weXJrWGa2aVqvgMXOic0TZ25+8cc+/BVf9yc/90P+4Td+6ol/8Muv9A4fsHHslNuEhPNvfuVH73va43fOXP9mn/BlL/XGbzGtmYaxjQNo49jJ7ZPXPuRlXvqmF3u5H/7k97z7iX/z+N/7xZd4g7cF8R9DoJza9Y96yVd5x7dfH6HgBZEYlp6GNf/JJGWbZpvbr/9hn7N39u6zT39Cnc2dCdjmX2K77+dPv/0Jf/Dnv/zar/wWk1P8h3n5V3nsS7/CIwEB4kVikFprf/J7//APf/3Uft45zb+JpGlqO8c2X+sNXnZja95a/u6v/eVv/vKfhxShO55xz9l7L771O7/WydPHXuaVHv2UJ97xpMc9o591TvM8JEnY2OZ+khAAxjYvlCTEczC2+W+SUIk3PTx5Mcb76hAo+Q9mm64+dff87XuXHn3qzA1b22c2Nre3j92wtQ0AB+PwUmeu47K7DvbSIJn/JunxoTf7r/9BU0Piqqv+pwIq/yXSeWJx5kGnH9VyQuK/mwIgR1qaywQKRQfg5AVRpe8k4aRuSIV/AwUS5tkE5kUmJDA5kWkDIFBRVAAnL4QCICey2TyTQqWCsMH8lxFK56xbvMurfPQzzj3hqff+fV9n6eRFk7iq7LajL7jrV15sft0N85N2E+LfKcS68c4vzTu9JIuOWrB5lvNH/PQ/8CN/w+6SEOb5CLHZE+L/pBDLkVe8hZuOA/zdPdx7QA0wz5dEFWOyGjHP1BXmlRA2L1wREkNjbJhnCjEr1KAZm+cSIoREJs28EIISSNi0xPzLBC9/E7NCmj+5jdVIX7F5viSKGJNhxDxTCWaFEFPyLypBmvVEMwBQxKwikYn5D1YDCRvDemJKgFmhBGmKmMwwYhDMKyHSPFAJQmAmY/NClCCETZo0/36CEkikwSCGiTEBAEEtzApp0rxwNUiznmjmCsGsUoNmbF6IEEWMyTDRzLOEmFWqaIl5YUKUYErGhgEQ9IWukCbNfyWLSG5/CCfO86CnMVVk/uPYRID52af6C/9STzvQ2EgISdAM6E/P6qv+jg99MX/gY1j0TBP/IoF5gcSzpZmMoAbAlIQowbNkMpkqJF6IZtKUIIJnyWQyRYR4vsbEEFCDF8QwJYaAGjxLM83YzBqTuWIyNIaGxLMUUcR/uDQRjI2P/2N+6Cm6Zs6JmW/d107v03P95Vl94O/yra/pR51WGyni2cyf3cey8fJneIObxcDYKEIihMFJNmLkta7Xq1zrpzxZf38hcsqQuJ+EChEAv/V0vvbvQiKE+c9laEkNCJ7NGARAM6XjT+/kA39XT97TTqfPf8V8v8cI8+8VXDjkSZcI8cY385Djmo6QEEiEcGKYJvqqd324f+gpPOWS/v4Cr3WLQdwvKgiCvQN/6p/q1gP1warxv0IUCEqwf8gn/YluPVAfDI0XkWDVYMmQCMQLFCLE/xwSKkQA/Nmd/vy/UDMhzAtkCMHE3573/qjXuJ7Xv4lckSaERBEGJ7mmBq9/Iy9zmp+/jSddkhshDOL5k8B89d/pL8/rmgVjYv6ryRD9w8790cvc8XN/9OB3iZyQ+HfL1mab2zj/9pd/7OXe+j27+cYbfcTnLnZObB0/nW1aH+5fvHS+1Po+3/jz8+1jy739o0sXji5d3Dlzfb+xed0jX+LUzQ/LNkniP0Lt51GidBxc2Pvlr/2Me5/896Xrp2HFfxobRTl/+1Mv3XvHfGvnxV73reY7W/vnLpXaIUkCsk05jcNR2z59+rGv+xZP+P1f3L3zGbt337Z14sw0uXT94cVzdz3ur+x87Ou+1aNf402PLh7ZVkgIyNbaOK6P2nUPf8yjXuNN7nnKP1y84+mHu+c2jp3M1iTxH0FiXB4dXGjrowNFCPG8BEYRiuA/n6Q2Ddc94sVf7T0++ue/5KPdmqLYKck2L4KI8rdP+KMbrn3QIx/6UtM0SMG/h2hTbm0vXv11X/rEqe1pbBIvurS7rpZS7rjt3oO9ZSlhm3+T1tojHn3zQx5xI/D0J9/5x7/7931fSy22u7679Sl3/cFv/+2bvPWr9n19pVd/sduffs8wTKXIRlKEQLZtj8OUzojoumpbQtI4TJkGSi21RqZ5fqIEZppaaw3zTKLWUmpx2jb/5QQTvrb1r3d04se2z06ywPxHksQ4btR+q++B7X72yJOn9terazY2gXuPDl71hlte+trruey+w0NjKYz5ryeROZ06kZsbZXcPiauu+p8KqPznE7Lz+uMPPrY4lbYQ/73EtDRi41R0m4UrzLj00bnmpM6FwDwfxsbCiZN/m2npNvJcolAX4l8kSMaVVVmcjG6jSCBIhsM8PJtRqDPZPB8CMx4Z2DgV3VaRuGJa+ehcayN1rghs/suEYphWN596+Pu99md+4c984NGwV1SNedE050bp/+zwtk++42e/56HvIYWx+HcIMTRuPMbrP5ydOX9zN+ePKAJIM+94uRv5gFfk5ILH3UdfsHkgQxGrib+8k+WIxP89hr7wEtfRF1ry+09nb8X2nJY8rxBjcn7JmS0edQ1dAKQ5e8jde0yJxAshcTAwNm7Y4ZotIhAYViO377J7xGZPX0jzLIKjkaMBw6Ky0fOCCKbk4oqWFLE1owvMCyQxNh5xmkdfA3D7Lk84i0Fgno8QQ+PCmms2ecgZugJgs7fmtouMyc4cjHmBJPbXdMGDTrDRIWE4GnjaBcbG9gyB+Q9jc/6IKalBFzzoJCcWZHL7JS6t2OrZX7M94+HXUsTQuPUiq5FFR5orBJdWrCcE2zP6is3zZbi0ZN0QbPbMK+bfRdDMhUPS9IUaTMnNxzi9iQTQzLlD7rhEHyx6bJ4vAXDhiHnllhNs9UgAQ+P2Xc4esjOnC9I8XxLLkcOBM5vccILNHhsJw3Lk9ovsjWz1RGDzfAnWE7tLHnyCUxuUAGjJXXvce8BGz6yQ5r+STAaPe0m2L3HyPFNF5j+CQcF64tP+xN/5pJgXuqAPnovN4cRn/pl+7XZ/42tyyzb/UWyi0vcArMB0C0iOlkyJoYrNuaMTazIJ8XylKR2lwtoHgxJsqticO3ox0CaKeG6i24CABmueL4NEtwEBDdZcYSgdpYeEyrVHhDCcmcMWs8azCQY8If4jpYlgbHzsH/F9T9Is+LxX8P7gj/pDvexpPvVl/DF/yJ+f1Qf9Lt/ymn7UabWRIgABzWeXGhuP2PGJGTY1EM8mEaIZCg/ddqB7jrxqbHTYABL7A3cecm7FH9/Ldzwh7jqiD2z+Uxkk6pxhxdAABAkblVJwI6F0/Mmdfrff1OGk934Uf3aWj/8jnZr5rR8uN8S/g7g0+PwqQjzyGJgSiAcQgk44OTXnpk3+/gL3HhkLMAhsbtvl3Ipn7PM9T9Lv36NmQoj/BdLcsce5JU/b4/ufzO/eI5si/lUCCKqREP9LiKOROw45t+QvzvrbnqBn7KsGIV4Yo2A5cXEtwWOOO6pyogbPIpAIAXRVjzrOL9zGvUcsJzY6MM9Xmuj4+afyA0/WvPCej/Rv36m/Oo/4L2YjKV711h86t/ngJ13zav10ZAX/PpKcrd/YuvHFXq6fb/Tzxdapa9s07p27R9I9T/mHX//mz9vYOfHGH/0FUes0rA4vnjt9y8MVMd8+FqWC+Y9z/vanHl48t3vPHX/9Cz/w5D/69WyTJBD/iRwR++fundarY9fedOLGB7sRtSqC+wkhApycuOHBWyfOLPd2l3u7UgCK2D9/74W7bo1Sb3mpV5KEFBHcT6BSEivYOnnm8Gh59ulPWO7tbp04k9OExH8EgyKillKrovA/g9C4Xr3kG779uVuf+Lvf9WX9YhPJmbwIbEeUYVj91h/9zIljZ645dcM4jZL4txLPVGqcv2/3F3/qD48OV6WEMf8CZebOsc23fIfXLCUiApt/E4nW2sbm/CVf7hHA8mj9x7/79+v10HU1WwLG/az7mz9/0ou95EMf+sgbb3nIddfdeOrWp95dSgHGcVotB9tdV/pZf92Np2azbrUazt67K2EzjtM1153Y2JgZdi/s7148mM06np/DgyVw8uTO9vHNCAkBmbl7cX/3wkHX166rtvkvF7CWX3rYPns0/vrmeRP8x5E0TeODr7nuU1/1tW7aPjZl1oi3e+SLXbexNasV2O7793rxl75uc5vLFl03DGvs0s2ak/96di7m04lj9eIlC8xVV/3PBFT+C4h03nDiIYt+007+exnMNS/enXxUt3VN9FuBAGzGwzy8Ny/dNp193NjWqIL5z3DNS/YnHlKzWQIAVDg6m3f+yaDCCyHRBrpNrn/52fYNZfNMdFshgXAy7Of+ne3cE6cLTxlLJ56L8ER0XP9y/bFbyta1pd8OBVeMRz482w7uavf+3bjey9rL5r9MqKzGo5d+0Ku/0yt/5Lf/9udGMf8aaW/F7Gd2/+6r7/ntj7nhDexRiH8zA5BmMkcj3/LH/MEzmFdsDH3hLR/LR74ab/cSvB0vzNf9AT/9D/QF839KiNXEi13LS1wHcPslbt+lK9g8L4nlyM3HeI+X5THX8OAT9AUgzT37POksP/d4WvJ8SbQE81oP5eVu5GGnuX6bEghsjkZuvchTzvNbT+FpF9josQEEY/JKN/NqD6Yr/NVd/P7TSfO8JKbGmS3e81Gc2eTcIb/8JO7dpxZsnq8QRyMvfh037AD8xZ3cuceskuZ5SRyNPOwkr/NwHnOGW07QF4A0u0ueeoG/upPfeAotqYF5/lYTb/gIXuMhPOwUWz0h0hwMPOksf303v/1Ujka6gs2/X5pFx7u9DNdu84yLNPMmj+LkBpk89QLf+xf8yW28zsN5uxfnoaeoYmg87j5++K/5h3vZ7EkjMTbe5sV47LVMjZ9/Ak88y0ZHmudi0xXe8aV4xGnWE7/1VB53LzUw/0aCMTm54INemY2OZ1zk1ou88i089hrObBECmJL7DnjSOf74GfzZHRQRwjwHibExq7zjS/FS1/PQkxybIwGsJm69yBPu49efzB2XmHfYPBfDMPFyN/EKN/OQE9yww9YMTIg0hyO3XuBv7+HXn8zukr5i87ym5OGnefuX5OVu5PQmXWCYGndc4nH38RtP4Unn2OpJ81/GIpLVBv/w0rz8HzJbY/EfQYD5tD/hWx4fs8qlgXmhLwA2gACR5nCgL/zW3fqA3/H3vq6vPS7z75UmKn93lh98ChtVH/Xi3u78PX+rPzvLfUsNCaYLTs555DHe65Gc2cIN8RwMEhH+vdv1S7dzdqnzazWD6YLTC65f8LYP4SWuhYnnII5Gf8vf6LYDveQpv+cjXIpsxLMZJC6t/R1/ozsO9VKn/B6PcEiAxO/fwU89XYtKwNkV+wNd8DV/rwc/Q5MRACGWE2/5IL/mjdiI/xiGCKbk4/6I73uSZoXPeTm/84vxdX9OiHXj1a/zd7623uO3/Gdn9SG/x7e/lh96UjkSAjCMicR2j4TNCyTmBYkQAgyQpnT85V188p/wtD1dXCN4hTO+aYtfuE3iP4uNgoOBr/9L/uyspgSQGJMzc3/Gy/Gw4xTxR3f6fX5LR5O+9TXzLR6rv76Nt/9VfdcTeeuHWIh/DwMY+vBmBfGCCIooIAjxQM3+nD/Xb92tu48Ajve82U3+i3O65wiJ/7EMgin5/L/gV+7QfUuAEzPe6Cb/4b26sOb/sDRReNIuH/NHPP6izq9Ugxc7wWNP+GefIfEvSNOM4PgMxAu32WEoQrxAaaJw9x5f/jdcXPNWD/b7P9q/eYf47yBslWjr13zad1/cuP7Cxi3FoxH/LpbKsDycLTaidpltY+fEcn93fXRg+8yDHv72n/0tirLYPgacuO7mY9fcmNPozFK7YXmYmZL497JNRPnd7/6Kf/itn9s/dzfpfmPzMa/9Fvc8+e/P3/ZUEP9JDNDGIdvULzZnm9uZKcTzMCC6fh6lghVhDEhaH+0vL12YbW7tnL5eEs+PIqYhH/7Kr/fOn/2Ns42tzROnM5sk/m+TcGa2V36nDzl765Oe+Lu/UPs5km1eBHZ2tb+0f/53/uTn3ux1333Wz23z72aj0H33XLh4fr/rim1eOKlN7aYHXSvJGIP4N3P69DUnrr/pNHDXHWef/tS7ai22eYCc8gl/f+tDHnFjP+te7KUfdvut99pk5o03n3nJl3tEP+ue8bS7r73+1Iu/9ENrV4f1+IR/uPU3f/HPosRrv+HLPfalHrrYmAG7Fw7+4o8f99d/9iRJ3E+itSylvPKrv/hND7729DXHj5/YjiJJQGvtwrm9u+8497d/8eS77jhXa+G/Q8CofLXVsbu79T/0h0LmP4AkT+Ojzlz302/zbo8+dQYoEcBr3vzgl7vuho2uB3b6+ave+CDAIHjdWx76LW/6dl/z53/0uLtvL7NFc/Jfr9Y8cQwbBOaqq/5HAir/FWTyhhMPKaVObeS/V3Dzq8xuefWZCs+l3yyb15RrXqI79cjuqb+6Wl3MqNj8hzv18HrNS3Y8p4N78/Y/WpcqzPMn2uit68vD32Sxc1PhefSbZeu6cs1LdLf/QdzxxwOAwAAIT8x29NA3XJx+VEU8l25DG6fjzGO604/tnvrLy707WnTC/JeRYmrjW77s+z797ON+9e9+aKPfbp741+hUvvKe33zJjRte78RLZK759xOEOLHB9dvMKjZAM7/5FP7uHmaVTBAPVMTeijd8FO//CpzZ4v8kifXEw09x3TbAn97OUy+w0ZHmuQjGxqs+iA9+FW4+xnM5seAx1/DyN/GU80xJDR5I0JJ55f1fkTd+FH3huRxfcMMOr/ogXv/hfPMf8/u3MqvYADYh3uIxSDziNH9+O/tramCeQ4jVxENP8h4vC/A3d/N9f0UNbJ4vwZSc2eRlb0RwNPI3d7Ee6ec081wEU+P1Hs77vyLXb/NcTix4yEle/+G84i18wx9wcUkNzHMIAF76et76xdjoeKDjC246xus+nJe/iW/6I84e0hfS/HsI0vSFt3wxjs8Zky54lpe7kRpcu8UHvhKnN3mW13wI127zeb/OPfv0BWBs3HycN3kUwJjcegGb5yKYzPGed38ZTm5wNPJTfw9g/h1ESzZnvN2LA6wbY2Or57mc2uAx1/BGj+Sn/p7v/yumRDybYGxcu8WHvSqv+iCeyzG4dotXupnXezjf/Mf88W10BZvnYN79ZXjHl2Kr53kdX3DjDq/2YF75Zr72D7j1IouONM+lBh/xqtx8nOdyapOXuoHXeRhf94f84TNYVNL8l7GoE+eu44kvzkv9ORb/bmmi8g1/w/c/RX3hPR/ht3ww3/w4fvNO9QUJABiSm7f8KS/t82t98V/pT+7Tp/4J3/H6CGz+PdJE4Ym7fNlf68ZNXu1af8cT9BNPU8KsUAQwJYeTNis//XR/9av55a+VE/FMBomDwZ/55/qpp+u2AwSLShFAM0eTgB99Gh/waH/0SxpkEJeZjaqjyV/91zqx0M2bfv0HwQTi2QyFn3y6PulPJPPdr+MocgJI/NG9fOWfwQySKDo9p4offqrGCcQzCdacnvGaN0PjP4RBcDTy8X/MDz9F88Lnvrw/8MVh4ooQ+yMvdR3f9dp+39/mz87qA36Hr391P+aU3JCQ9AWvyCe8tE/PwYgXxgCYywTGAAyNu48U8BIn/a6P4D0ewU88jZ+5FcR/BgMC84V/6S/5m7hm7p0eG4khee3r2emg8Ae3+31+S/cstdVx675Y+sJSQ3JyBsJG/BsJSG7Z0o++gYfGTVvQEC+QDcJgnoPg3Iq9gRs3ebVr/REvwVb1u/2mbMT/fD671KWBmzZ5tev8IS/GqZnf+lfAEv9qNgk2gIRAQvyPY0AMyT1HSnjsCb/jw3jvR/kP79WPPY3gBZLALApf9ap87sv7mgU0QrwQNoB5gcwzfe3f8Zfn9KBtPvGlONEzJOK/h5wu/cn9p77WU77rZ17i05IIzL+DTZQYVoeGKAXTcppvH9s8cXpYHd371Mf1i61xtbznKf/woJd65WlYZ2uK4LJutmjj0M3mtvn3E0eXzi/3Lmyfvv6mF3/5V3uXDzt+/S0//CnviVMS/zkUMQ3Do179jT/s+/+gdP3O6etyGhXB8xAAtrnCFs+0vHRxfbi/c80NmyfP2Ob5kWIa1tc+9DG3vMRjnSz3R2dD4j+aDZm2wQBIkiQk/jtIkdO0cfzU637Ap9775L/bvfu20s+wedGks+9mT7/t8X/617/xWq/8ltM0SuI/QtfVvq+1Kzb/AhERpQb/bjYKPeThNyw2ZsAznnI3NhIPIMn20558597uwbETWzfcdCYibGf61DXHX+k1Xhx47Es9dDbrAGCxMXulV3/xo4NV7eprvN5Lc7+Nzfk117/aej393V8+ue8725La1LaPbb7Bm7/Si7/Mw3h+tnc2H/TQ6x/zkg/5tZ/7k7//66fWWvjvkDAj3vjw1D1lOF9GIf59JLlNDzpx+kE7x9/vl3/qjR7yiPd4sZd+yLETQB9lNt/gfmmHJDCcWmx84Eu9wuvc8pB3+dkf/Ys7bytd12z+i4np1HHbXHXV/2BA5T+fIDNPb18vZCzEfxMn17xYd8trzBTk6Eu3t+W5PDqfiI1TMT8ROzeVOtfJR9RpPXvKLy1zhADzH2v/nrZxpmQzUDotTkZ0jEcpXhgn8+PxqLdYbF5XgHHp/TvbajdXF7NNbJ6OrWvL1g2l9Hrw68yRbvu9VVQBgJMy48Gvtzj96Ark6P278+hcOzqXObJxOmbHYvuGmO3E9vXl4W+yeNyPL9eXUgXMf5l01tK9x6t/4p0XnvaEu/98VhctGy8a405lP1efesfP/fDs1EM2rss28G8jnsPUWI3YGABDwNh4vlKsGzbA2PifIEQIAWAwtOTfTGJsXL/DqzwI4HDgcfeSRjw3wZg89CQf+irceAzgnn0edx9Pv8DhwHXb3Hycx17Djcc4uYF4bgbgXV6at3wsQEuecp6nX+COS1xccvMxrtniEWe46Rg37PARr8bFJY+7l1klTS385Z38wTN49Qdz3TY3HeMf7uW5CFqyM+cVbgIYGr//dI4GtmfYPF8hjgYeew0vdi3A0y/whLPMO9I8F8GYPPoMH/oqnNoAuPMSTzzH086zt+aW4zzsFI86w0bHaz2EgzVf+wcgMM9BAI+9ljR/fw+3XuS+Ay4uueU4t5zgxa9ls+c1H8K5Q771T0gjMP8uApvdJcfmFLGa+PM7+Ju7ecwZXufhPOoMNx/j5AZ37/P7t7K/4rUfxkNO8qjTvNxN/OTfMaukqYXfeRqv9VCu3eLFruXEBmcP6Qs2z2IQvPQNbPQAf/QM7t4ngn8niTR7azY7+sKscOtFnnaeC0vu2qMWHnych57kEWeYV97lpblwxE/+PV3h2USI93kFXvVBAAdrnnCWp13g9kucXPDQkzzqDNdtc9MxPvRVuO+Ap56nLxgAwZi8+oN5t5dlVgBu3+Up57lwxNlD9lbccoLrtniJ6zm1wcvcyCe8Nl/+29x2ia5gc4UEcN02Ic4e8Lf3cP6IOy+xM+Om47z4ddywzXXbfPircvaAp55nVknzX8aiTNz2EHZ2eeiTmDr+HdJE5ckX+I4najKblde9wa/9UL3KtTz5Us4LN2wKuLT2HYc8ZJvTx3Xbeb718d4f9Yu369duzc1KIv4lEs8mnoPAzAs3bzEvfNKf6PYDvf1D/UY3c/MWN2xi+2/P62efwe/erb86r8//S37w9bxRZRAAAtKf/xf61sdpUXmFM37jm3m163jwNs1+2p7+4B5+6y7+4YK+8K+00/O+L06OFAEYFHzcS/L3F/zzt+mr/jZe6ZrcnglzhUGFp13km/+BReH9H+13faQwgAB47HG/1SPZ7AAuDfzNeY3Ja13PNQunAQQSq8ZLnALzH8ZQuPvIf3lWIT775fIDX0LTSO0Qz1QCT7zc9fqu1/F7/SZ/e15P2uUxp0BcceMONwoSkufLEEDjvqWm5OScPoQRVMHEa1zHH75VdsF2r3kHhXXjP49NVJ503j9zq974Zv/A63qnVzMCQw3U8Ue3+71+S8tJn/ay/oXb+Iw/09+d54/vU0t/wGNMiMa/U1952EkAGpgXYkiOGhJFAoMEQEjf8dqe0tu9FpUy44n3MiWI/xppmjEAIYoQ/zIB0BV9+2t5SG/3bFTFjKedpRmE+dcwk+krFAgwGBIaY1JEiP85imDipU/xm2+eJdjpmHeian0XL4oQtxwDQULyQtjceYTNiRmzAuZ5pSkdv/w0/9BTogs+6DF+2Rs4u0cR/43kdJk/9Nwfv+rTf+B3H/bekYMw4t9GYGft5918jg1IcrZxNdV+tnXimr2zd5euO3XzwxY7J6ZhrQjuF6XYyX8ASTjzLT7pq9/kY754trnTzzcWO5v3Pe2pOY1I/Geyc+PYyZ0z1ziZhrVtXrCD3XOrw/3Sz2dbO8ZcNq5XbZpK10epgDPTic2zSIqIKON6uT5qQlELiP9o2dLZuo2t2kcEBjemMadhndMYpUriv5wipmF15qGPeYMP/7yf/rwPaeNABDYvGtu1dn/1D79/+sT1L/7oVxzHgX8HSa21k6ePfeSnvjP/ehcv7CH+PSLi2htOAqvV8JQn3dFadl21zbNZEUcHy/vuuXjsxNaxE1s33nzmtlvvkZjGab0auq7OZt3Rwerv/vqply7sv8TLPfz6G0+/wqu9WNfVTD/58c+4/db7rr3h5GNe4iG1lpd4mYc9/m+fBgYkpqm97Cs9+sVf5mHAsB7vvfvCffdcWB6tz5+9tLm9OHly+/qbzlx3w6ljx7fe+K1fdRynJ/7DM7qu2ua/lmDCp1v35oenf3Dr3rEQAObfRJIzz2ztfMsbvdXrPOihf3/23p97yhPe4+d/7HUf9NAPeqlXvHF7pzlDIQBC4jJB2s35iBOnX/baG/7i1qeo77H5r6a2vUWt2Fx11f9UQOU/n3FfZ4tuk/9WNlG57mU6BU5u/e317X+4RkgAWG3yNS/WPfLNF92mTj2i3v0X5dIzptLL/Ae780+G2/9wraCtfOzB9aXeaytAEi+UJ9/8qvPN6wqwPJ9P+eXVuSeOpQIgOV063fAK/YNec1ZmetBrzY7OtfNPmFTBkJx8eHfmMRWYjvzUX1/d+zeDEwUg7JzYvrE8/I0Xxx5Utq4r171U94zfXWP+K0ka2/r647e8z2t92hf8zPvvLS/0ZZZOXjTNuRH9Xx/d8Wm3//z3Pfw9q8qaiX8nmwiOLegLBsHYeNUH8zGvTld44UqA+O8VYj1xNNISQKIvbM0AbJ6LhABI84II1hPXbvHoMwBPu8Df38uikua5SLTkzR7NjccA/uZuvvYPeNJZaiCRxualrudDX5VHnyHNAwnG5MWv5Y0fDbBu/MBf8SN/zXKiCAmboXHDDh/6KrzWQzmzyVs9lqdfYGyEAJr5u3t49Qez1fM6D+Nx92Gekxgnjs15qRsAzh3y53cy77B5QQw1eOy1HJsD/PVd3HmJY3OaeV6Ct34xTm0A/PkdfM3vc+tFaiCRRvAWj+H9X4mdGa/3cP7wVn7n6Ryb05JnsUEAP/0PfOMfMiYhJGym5C0fy4e+Cps9b/hIfvup/N09LDps/j0MiBIIJH7tyXzpbxPi5AY3HOPRZ5hX9tZ8+e/wp7czJfcd8DGvwazyMjfw209lOVJEFzz+Pm67yLVb3HycG7a574Dn1czL3MC8YvjT20nTCfMfoAYlGBo//nf8wF+xt6IGANDMovK+r8g7vAQh3uwx/M7T2V0SAijBpRVv/Ehe8yEAu0u+6Y/45SchEcJmSh51ho96dV7iOm7Y4a0ey1f/PggMILGeeIWbmRWA334aX/N7nDuiBAIJYDnyktfz6a/Lzcd5+Clu2OHWXQTmOYS49SJf+Jv8/b3MChLAeuIhJ/mU1+HFruX6bd7k0Xzrn9CM+C8l0wpPfHF2djl9lpX49/mxp/rpe9rpOZq4ZylG+sKLnxaAATZ6Xb8NCRNnlxyO6oP9kR95it78wRRh/gVHI+aZbADxHNIAZ1dMyfe/rl//odAAMKBHneIdHs2X/7m/5K/1N+f1e3fzRg8hR4qwUeW3b+P7nqx55W0e7K94VbY3IMGAHn2SN30Yuwd8zB/6R5+m73iCXv8m37JDNkIIWmM+14e8GH921n9wr77zCXzUy5ATIZ7J/uq/1d9f1KOP+4Mea0I5EQIgebOH6M0eDobKM876LX9Zdxzy2S+Xr/YQ0XgODRLxH0PCycNO6Lte2395zu/2KLkBIB5IIkde9np9y2v67iPe6uG4IZ7JEwYJ8fzZROHcEX93USV49DFKtVMCADPvuKEXgHEikPjPJe450rm13ua0jy+ECS4zVP7wdr/3b2l/1Ne/mt/hMbzzw3jP3/L3P0UnZ3z9q/OqN+KG+HczOQJIiOfPRoV7l7r7kI3Kg7YhxP0kzmwIgcEwkSD+i6SJSnQgACY8YiPxvGwAhHgmwakNITAYJhLEv04CVX3l7ks8bY+9AYnNyg2bPGSLbgEj2QjxP0pfuH5bAMZGDYF4kXjCICGeP4PEPQf85Tm6woO3iUpOhHggm1K4b99f/je6Z8lb3OIPfIxpKuJ/BMXL3/7T92099PHXvY5sDOLfQmAiSqkdzyYFbm2+fezo0gXndOzaG9s4SOIBbIP4j7N96hoU2JltXE2ZDQnzny2ncT0OCCl4QRTZ2j1P+JvDi+dufMzL7Jy53plIgITAtm1ndrP5bLNEBRDYZDKuGJdLTKkd/wkEzpxthmLn7K1PunjnrcPyUBHzzZ2da288eeODN08sVvtjG0dF8F9OijauH/2ab/qq7/6Rv/3tX1yjN/8KkqZp/N0//fnTJ6+/7pqb18OKfysbScN6fPLjbxuGKUI2gES2HIap1FJr4QEEaS8Ws0c+9hYQ/z6ZPn5iC9i/dHh0sJR4LjYRGsd27r7dRzzm5vm8P3F659an3S1JUkREiTa1X/ypP/jbv3jyMEx7lw7f+l1ee2t7AfzdXz3lZ374d44OV9dcf/L0mePX33T6mutOXn/j6Ttuu6+fdeMwXnP9yUe/xIOBcRh/59f+8vd/86+dVkgIaK11ffcWb//qL/NKj97aXjzoIdc97m+e1vfV5r+eYJQfM2y87vL4r2xfNID4N6nSuF696iMe+/oPfniRXvbaG1722hs+8uVe5av/4g/f8xd+/ONe8dXe9KGPSlsSz0nQRdldr84uD+dbO5OT/2IG8HzmEkpz1VX/UwGV/3SyPe825v0W/62cHH9o3bm5Apdub3f/5VA6KTAAgjLTucePJx5Wb3j5vsx07Oa6d0ez+Q8XHaUTgUSdiReBk/nJcvzBFciRp/7q6vyTx35TGAMgZHP7H63rXLe8xuzi06ZpaRUwAOLUI6sC4K4/H+7+y6HOJTAAoDLj4J721F9dvvg7b/TbceJh9Y4/WrcJif9KobIcj17qQa/6nq/+Sd/ym5/ZskkB5kUzOU/UjZ+/9A9fdvevf8J1r8+/h8Bm0fF+r0BLJK5I88jTHI188x9z7pAIMM8SwcGaV3kQb/1i2GD+ey1HHn0Nr/ogduYIpsaTz/MbT2FM5hWbZzGsR5oJ6Cshnq80s8or3MzOHOBv7uK+fbZmpHkgiaHxoBO81A0AB2t+4K948jmOzWkGEIT48zv5zj/j01+XnTkPJDE0XuFmTswBfuep/OBfEWK7J3mmjZ4LR3zDH3LjMR55mpe+gZMb3HmJviJI85d3cOGIkxs85hp2ZhwOSDybAR51hhuPATz1PLddpCuY509iaJza4NUeBHBxyV/dybwjeW4SY+MhJ3jMtQAXl3zXn3PbLsfmNAMIgJ95HNft8K4vzbzycjfxJ7eT5nndcYkf/zsktnoSAAHwy0/k0dfwFo9hq+cVbuaJZ0nzQBIvEmOegw1wMPAHT2de6QuXVtx2kUefAXjSWf7hXrZmTMlde+ytOLPFNVssKocDJcAU8ff38go3s9Hxyg/iH+7D5oHSXLfFo64BuHefv7+HNAjMFRIvEmOemwF4xkV+4K8YGjszkmcKsZ74gb/ixa7hxa/jhh1e5RZ+7vHMKjZpFpWXuoG+APzs4/jlJ7HVYzAARTz5HN/5Z3zm63NiwUvewINP8PSL9AWbZk5t8KDjAPtrfuRvOL/k+JxmzDNtdDzuXr7mD/i41+Cn/oE/vYO+YPO8fvVJPOkcJxakuWLRccclvvmP+fw34ticl7meRWVvTReY/zoWpbFe8Pcvyyv8HmUfV2T+ldJEYXfJH90nw5gc7/2gbYPSRAIIABvAJsz1G9yy6T9bal742wu6cdMblYMRBICQeBZDiHHi9kNsLLY6b3XiBZiSd3kYr/8QTyuFkLgiTQne65H8zK3+63P68/v8Rg8BZDDI/tln6NLIS53057y8t+ca19TgWVrj+AZf8Ir+2wv8w0X91p1+r2PifiFy5DVv5B0eytf/A9/xxHjdm/IlzqhNAKXjF5/GT93KvPABj/ajTquNFPEsTrJhU5P9EQNwNMHA1BDPFkL8RxK48ZhTesw1eEQg8bxC5MCr3igCj4hnkxD/kuC37/Kf3KvjPa95A0g8kLER/6WKCBgTDMZgEx1/dIff87e0P+qbX8Nv83Bo3Ltk3XRyxte/mt/64XaT+I8R4oVLE4Xfvos7D3V6zmNPgHkOxkaQJoT4r2AQROfHn9XP3sqlUSG/4hne8sGmyg1APAdVABLMsxkbgUEg/nXSbFSedt7f9Dj95Tk9eZeLAwFbHbds8fAdHnHM7/ZIP+ykPCH+gxlsxAtjkBDPhxNAPJt5kUiIF8ZGlZ+/zU+5FDdt8krXgDDPTQL7a/9Of3pWN23yiS/N5lwk/xMIO2rJ1Ws97bsubtz0lLIpbMS/hYyj1pyanQgMALLdzxc3PualgWkcsHkuEmD+w2RreEKyrVIl8V9DksQLZrt2/cW7bvuH3/pZnA9+mVfdOnlttsZzcJTSb9Rn/M1fP+1Pf+vSfXfaiSldv3H81I2PeZmHvOyrzxaLYblE4j+Ybfcbm0/7sz//wx/+pnue/Hfnb3vK+nBfEYvt48dveNCpmx927cMe+3Jv9V4nb7hlWB1JwX852872yu/4Qfc++e///td/cr61k63xorHd1f7g6NJv/dHPvMXrv+divrFuE/9GLhF7lw5/9kd/98K5vdoVG4k25c7xzQc//IYLZy/ddcc5MIjLJKap3fzga29+8LURwvybZebJUzubmwvgcH85TSkJAGwDkgCF1qvhvnsuALUrO8c2bUsCjIHzZy89/Sl3dX2tXbl08eBg7+j4ye3MfPzf3TqN086xzd0L+3c8477rbzq92Oi3djaypaRs3ticb20tgFufevcf/c7fdV2NkM0VfXTTOP3ST//h9s7mOLU/+t2/62ddpvnvM8qvujp2Tx3/plzk30TQbLr+lW64qUjNDmFzYr74nFd7vd+67Wmf9ru/tr9ev9NjXtK2JB7AIPijO2+7YWv73R77Ut/xd3/BfweXQinkxFVX/U8FVP6TCdKupZ/VOf+tFCwv5p1/uj7x0O7Ck0cnCJsrDJjodHB3y4mobJyJqLiB+A9mDEqc2PyLJLL5+C1lthPA7q3T3h1T7WWDucIAlE53/PH6/BPH5W6Ohy69AJt+W5vXBLC+lPc9biydAJtnsSm9lhdz7848/eiYn4it68ulZzQqmP9KktbT6o1f+t1++/E/9be3/eGsm9u86NKeRfn6e3/vsfPr3ujYY8D8Ox2bI55N4hkX+bG/4+cfRxoE5llqcP6I4wve+sUw/50EY/K2L8G7vjSnNniWZl734Xz/X/J39zArSKQBFpU3egQ3HedgzW89lbv36Qo2DySYkp05r3wLwO6Kv7qLWcXmuQSMjYec4JotgH+4j6eeZ9HRjA1gSHNiwV/eyd/ew6s/mGcRNLMz4xGnAY5Gfv0ppJlVWvIszfSVSyv+5i4eeZoTG7zYtdy1BwYowdlDnnSOV76Fm47zEtfze09nVrG5IqEGr/oguiDNX91FBC+czUNO8tBTAE+7wOPuowQ2z0UwNh52ilMbAH91F7fvsuhoiQEwhCjBX9zBGz2SUxs8+hqu3eLeA7oC5goDcOtF9laEaOYKg0Diz27n9R7ORsdjrmFWWU2EuMIwTKQRL4yhiK7wvPbXPOUCQJoiLq244r4DiphMEU+7wMUVZ7bY7KgFG0CQ5veeztu8OMfnvPh19IX1RIgrQqwnXuJ6rtsC+Id7ORjoAswVhvXIv8hQgxo8X+sGEKKZZ2mmLxys+dUn8eLX0RcedoqxMa9IDI0bdnjkGYD7DvnzOygBkOaKBouOp57n7+7hNR/CqQ1uOsaTzjErWLTGiQWLHuDcEWOjL0zG5lkmsz3jb+/m43+BC0cAAvNsBmB/4E9upwaZmGdqZl556nmeep6XvZFrtnjEaf7iTv7rWZSJC6d40ov5kX+CzL+NeNolP20vNiqrxpvfwhvcghshxLMJAInWuOE47/xw/80FSdy35Gl7VHFFCGDdMM9ko+D8SmdXkrCZFeYVjEE8gGjJdsdLnwZLIsSzFJHJmQWPPs6fneXWfTE5hE0EF5f6y3PYvMktXL+jaaQLHqgKN27Y1GvfwF+f5+8uyBMhDAKBAfiwF+N37/Zfn9dX/a2+9TUJEcHuob/hH3RhrTe6ye/xSNEInoOgiARE8EwCRBHiP5cgG24U8YIYQuSEoYgXXZoo3Lfvb3mcjhqvc6Nf8YxJiecg/qsZDOLZovA7t/n9f0erpm97Lb/lQwD+4E6/72/H7uBvf03e4mHOSRL/BQwtqT33XfIPPUWHE6+845c4ZSaFeCABIP7rSEzpL/5Tff+T9bQ9xgmk6zf5zifok17ar3KjaWqmiCv2B//tBY3Jo45x/RY24pnEv4kxzAu/fRe/f0/8+Vk2O471nJ5jaMmT9/jzcwT62Wfoc1/Bb/pQciTEfyAFCjAvhIAE87zEf4pmSuW2Xb7zibFuvOZ1foVrYCLEA6WJyq/dyvc/WQEf8Oh8heuUExH8DyFnRr9zePtrPu27b7v2vZtOBebfxNlmG1t2ZmtC5tlsj+slIAXPow1r7FCkG/9RJED8zyP9xc98z91P+pvtU9c99nXfqvb9uF5xP0NEPbp04Sc/56P/7td/8tI9tw+NZ+mCE9fffOy6m1/5nT74Zd7sXXMa+Y9k23U2/5tf/rE//+nvuftpT14sZrPN7c3jp42zTfc+5e+f8Td/Vms84Xd/8c0+7kse+vKvOSwPFYX/WpLaOGyfOv7I13iTJ/zeLzoTCZsXTTq7Orvtzif+2d/85mu+4ptLwvzbGEqJ7Z2N1rLWkpmSlsv1gx56/bt/wJv85Z884Rd/8g8kSUgBRmpT29paSLIN5t9EktPHT+50sw7Y3zuaxkmSbdsRISkzAUmZ3t87ai1Lie2dDdsCAAPs7R7yTFou16vVACyP1nsXD9Ig1qvh6GAJlFpqLQZBZs7n/WzeA7sXDob1uLE5z0zu5+ZSyjS2n/6R33Hm0dG6lOC/j8DQOd5wefLu2eF9JIh/LSkzdxYbjz19DSAQkrA92a9zy0O/6Q3f6kN+9WdOb2y+3oMeZlsS9wsJ+LN77nz1mx585/4emUTwX859l31fhpEIbK666n8eoPKfTdjuymxWF+a/k8TyQj79N9fP+J015vkz45FzclSpgPgfwma2E9EBXHrGNK0pFZvnlSN7d7WoqjPZINxYnIy6EcDyQk5H5gXIif27ptOPrnWmzWvK7q1N/FcTSre+zB52zUv8/e1/bPOvVYjDXH/a7T/3oP7kS+08JHNdFPxrGUKcX/KZv8pTz9MVbK4QjMnWDInnUoM0Gx3/vUIcDrz+I3j/V2DR0ZJn7LIcuWGHEwte4SYefopv/zN+/nH0hY2e1URfeJNH85hr2F3yt/dw+yX6gnluhkee5pbjAE85xxPOEsI8N4kxObnJRgfwD/dwzz4nFkzJA9kME3dc4rlMyQ07nNkCuO+As4cIbJ6bAZ54ljHpgoeeIp6CAajB/po/vZ1XvoWtnhe/jt9+KgLzTDbbM17sOoD7Dvjj28ikFszzZ1OCV3kQ8wrwF3ewbnTB85Jo5swW8wrwuHs5f8SJBVPyLGm6wtMvcM8+pzY4vcFGT0v6gnkOZw9Jg3ggg+Bx97G7YqPjzCZ9YTkiYTBUce0xZhWbF0JiNXLuEPPcjkamBgIwrBtX7K6YEglgNdEMICGeLYLzRzztPC97Izfu8Ogz/NVdFGGeyebR17DoAP7wGZw/4ticlgCGGtx4khAvnMTeiksrnq8QAAbxQIKW3HaJg4Gtnmu26AoGQUt2ZpxaANy9xx2X6AppnsWmBheOeNJZXvMhbHSc3mRMJDCCKckEEAwNQYhmHihNCe7ZpysUYZ6TAQ7W7K95XgbDbZd42RuZd9xygr+4E/PfwKI2bnvofL7Lo59CBv8G4p5Dzq+oQRUP3oYgG0W8QObFT+rUnLMrVo0La66owXJiSh66Qw0AQTNR+b27fduBZoWjieMz+gAQz0GQsChcvwlGPD/h03MJ9kbWTbNCAuLeJefXOtbzkichkHj+gpc+TRc8+RKXBo4vILkiRDZuOsZHvoQ/+g/1C7fpJ56W7/QoYb7zCfzBPbp2wce+JJtzciLE/yghXjgBEOJfJU2IbP78v9RfnNOpGR/waG/OlRMh/kdRcNslf+QfaJ36ptfwWzwUzO/f4Q/43TgY/R2vxZs/2NOoEoj/dGmAOuPuS/7kP9Ef36vjPe/3GOa9ciLEfyOD5K//O77sr1WDlz/jmzdZNf3DRX7xdv72gj7lZfiAF3NBw0SaecddR3r/39HByNe+ar7NceVAEf9OglnhtgMNyate5/d5FG96s4/NJFg1P+US3/sk/codetIlPvVPdfOWX+IMbaKI/xCG+w45HCnCvDBn5mx2/NdopgSrNZ/yJzzuArds8QGPcalqE0U8S5oIzh36S/5aZ1e8/o3+4BcDY/5nCafL4sHn//S16vV/cu0H44l/EynG9Wr//L3bZ66fbx3jOUnB8yUBR5cu1H6mCP7vytZmm5t//Us/8oc//I05TS/xRm//kJd5tWlYCwyAjaCNwy999ac+46/+cPv0tbe85CttHD9d+x60OthbHexeuOPpz/jrP7znyX+/Orj0Ku/0ITkNIP6DSKrd7L6nPUGhR77ia7zS23/AQ1/htWcbm8CwWt7z5L/785/+7qf9+e/e/vd/9gtf+cnv8sXfd/LGB0/DWhH8F1O0iY2dE7ON7eHoIEox/wp2dt3sL//+d7c2j7/UY1/ZmH8r261laykp06/3pi+/WMzOn7sEHDu+9Qqv9tiHPPzG3/qVP7/79nNdXyFby0xHREQgYf5tDLUrtQYwjVPakpx+xdd48dd4vZfuuvqMp9398z/x+3u7B6VEZraplRJRC+aB9vePxnGSBCyP1sN6BNrUbEtgSolxakCEogibKwQCUBChCGXyQLZLLUeHS1CtxTb/rQSTfLJ1b3V0+nvj4toG8a8hcOZm31+7scUDSOqkKfOlrrnuc1/99b72L/7oJc5cd83GprEQMGXWiD+487an7178lFd+zS/9k99D/PeQCDBXXfU/FlD5LyFA4r+bAsANhILnwyDE/zDCSbcdgJPlbubo0gnzfIjay2DzTKbfitIJWF1yNkcFQDyQgvHIR+cSUNAthA3iv5yQcS0VAeZfyVAUF9ry7HSIgn+nlkyJhM2zhEiDeS6CyaT5byRIszXjDR/BomNo/PQ/8K1/wmriJa7j3V6GV38wJxZ81Ktx3RY/9ffcuUeI130oN+wAnD3kwhE1eF6GNK/+EDY6gD98BuuJGjwvQxEn5gAt2V0RwjwfEQwTDySR5tic7R7g3CFHA30lhMQDCcbk6RdpSRccmyGerZkn3MfZQ85s8uLXcsMO548ogY1Ea7zqg7h2C+CJZzlYU4IXIs3xOS99A8DZQ/70dgQC89wEY2OrBxgbuytCmOcW4sKS+w55MdiesehI87xakkY8N4mxceGIG7bZ6EkwABJT49QWn/a6POoMBvHC/NWdfOavsZ4owXMwCAABXDgiTYgHCiEAFh1dwSBIKGI58hd38rI3cmzOS93An95OV8BIjI0HneDFrwW4a487L9EXbACJYeKaTb7urdns+Bf96N/wnX/O82WDeV6GEqxG9tds9ZxccMMO9x4wK6RZ9GzOAO474L5DdmakeSCbCM4fMTa6wvEFRRgwJTh3xN4a4PptHnmaJ51lR/SFNIDBBrDpKzbm+UsT4nkJpuTefYAQx+b8N5JptSy3wfxbjaYlNRCEeFE0YyMwNAPU4PyKm7b48BfzBzyGCGHS1MJ65R9/mg5GTswYGtdvsN1BgnguaeaVaxbG4vkqOrMgxKppSM8qmZTgzkP2BnZ6btqCiWZsnouhEzvVfejcSvtjHl+IBwhB4+0ewq/e7u9/sr75cXqjm33XEd/+BE3Juz7cr36DaQrx/0GaEBR/6Z/zQ09RM+/3aL/hg+SGxP8oaSL45dt1x6E+7WX8Fg8D8/t3+f1/Ny6t/W2vxZs/3BTVETf+s6WJgPAvPlVf9FfxV+fYqHzIY/1WDzZNIf4b2ahw6y7f/STV4N0e4a98Fde5sP/0Tj7/L/mtu/SZf66n7fHxL8Wp4wAkP3sr9y05M/dDj4H5D7Fu7K550A7v+Qh/3EuxsYBJALDo9AoLXuFGfvGp+TF/FE++xA8+mS86RQiD+HcxCIbGJ/0xv3Abx3uaeb4CVsnXvxpv/XDcEP+50pQA+Mw/55duVxd8wGPylW5QThTxLOay4Jv+QX9+Tjdu+BNeysc21EZC/I8jkXl8usC/nYblwWr/0rReRalgXmT9xtbefXce7V287mGPVRQw/+dka/Ptzaf+6e/90ld96mr/0o2PfZnXeI+PKl0/rVeKwAbAUcrhxbMX7njao17tDd/wwz/3lpd6eQkMoGBYjn//6z/1G9/6hfc97Qm//71f87BXeK1rH/rYNg5I/EcY16vl/qXTD3r4K7/DB73qu3xov7HRxpHLZps7x85c/9jXeuPf/4Fv+tVv+Ow7/v7P/v43fuo13+tjkfhvIUD8W0kxTsPFS2eF+I9ge2Nzds11Jx7+6JuBO55x7/U3nn7Yo25ar8eNjVlmSkBEuGUeHa6WRytnIv7NJEkCjo7WTk9Tu+6Gk6/4ai+2sTkHHv7omx/5mFv+7A8fJ2lcj8Mw9rMOG/HcjO1SyqWLB8vDNbBaj8MwSTLY2AZKKYvFPG0gSiwP18uj9fbOxk23XHPi1PbZe3e3tjcAsA3YxnYpAdjmfwbLx7Lro64x/yaCkHgeNcL26z/44X91391f9xd/9Hmv8fo2yC1dI+462P+uv/2Ld3vsS3VRmg3iv4u56qr/yYDKfzYjmHIcp5X4nyJHZwPzHEROTGub/4lKB9BGtwEFL4TNswhs15miAAz7ud63eH6CaelpaRuJMpNBYP6rGReVey/dnpkqss2/jke3D7/mNV59+6HkEAr+zQQhQoQw/ztIDBM3H+em4wD3HvCzj8Pm5ILH38fn/wbv+tK8y0vTF97jZXnFm/nbu9me8coP4tgc4A9u5c5LzCppnkua67Z4zDUA9x3w53eQRsLmgQQt2ZlzZgtg3ThYE8LmedlIPJc0i46uAuyuuO+A1UQI8xwCVhMnF6wn5pWNDoRBYDOr3LnHE+/jzEN40AkeeYbfeirbM5oRrBsvdi19AfijZ7C/ZtGR5vmSmBovfxPX7wD8w73cs0+I5yVo5vicUxsA68ZyIATmeYU4WAP0hS4wz4cAMIjnlmY5AMwqN2yzt+JZBIsOQPwL5h3iBTAvnHmmvlACmytCrCb++i4urTg257HXcGzO0ABCrCYefJKbjgP87T085TyzSppnkdjseFH0lX8tQ4iDgd0l128z71hUbIA088q8AhysKeJ5GQTLkaHRFc5scWzOlAhCHA787d283I3MKh/4Sly3zW89laeepyuEKEENJMSLwDxfNocDzRSxM+O/i8xUOXl2+dC/6xz8W211LCoJkzm/BvNC2CBu2+fSSBE280Izlwbe9iF8ykv7xa41o2xsIiD4psfxm3dpq6OZEjz6mGunnAjxAogXLA2AEPcL9gZWjVNzHrYDc/oG4rkZKtdtMCscTBxN4nnY1E4f9RL+4/v0F+f0eX/JfUtu3ddLneKDHmMkG/F/X5oIsL/0L/TVf6d1481u8ce/lLFsQvyPIkHz79+jEzO/7UOh5zef7A/9/bi09re9Fm/+cN9zSd/2eN7wZl7pOtyQ+E+SJgr7a3/JX+lbH6+DkZs2/akvy3s/yiCD+O+UUIIn7+n2Ay0q7/lI6kzDkhCveCM/dMKf/md8++P1tX+vP72P17zeG5Wn7fOLt2nVeJNbeKnTeCLEv5kAgfXhL86bPMgP3eEVrodGGyjiWWzceNOH6A/u8df8nf7kPt15kDduKxsS/y6GwHBhrXNHrBpT8nwVcThyNCaI/2RpopDNn/qn+v4na9V4j4fnR764aIR4oDSl47ee4e98Yhje85G8+k3KkSLM/yxWqK33Fzf89sk3BvNv4Shldbh/cOHs1qnr+vmGbV404jKV+daOIsD832IbmG9tPukPf+unPv/D9u67c/PEmTf+yC84fcvD18vDiMIDSdna9Y9+6bf9rG85edPNq/0DSQBgA7z8W7/jfPv4j376++6dvetxv/0L1z3iJTxYEv8uAqLW1//gz9g7e/e1D3+xB73Uy60PV8PRkSK4X5tyGuMV3uZ9bv3L3/+rX/jBp/357778W7/3YvtYThMS/6UcwTSu2zhIMv86UgzD6kE3PfLVXv6NWrZaCph/DztCe7uHP/Z9v/FO7/0GO8c2f+Dbf/kVX/3FXu21X+qnf+i3n/rEO+eLWWau10O2vHhu76d/5LencVouh4iwzb+RAcBpAIMUIcC2pAhxmXmhBABWSAIQSLwgtmst589duufO89s7G9fdePqt3um1/+h3/u6pT7pjvRoiFBFRIkKSQLb5n0GQ8Kvz8/tHR+gYTCD+VaTlNF1cLQHzPCTgXR/zUp/yu7/yF/fe9XLX3gDU0N+evefTf/fX3/Rhj3z9Bz8MWE0j/10kJK666n8woPKfzCDFMK1W4xH/7YQnyoxrX6o/8dCu25AqEhgAgalzlV78zyMBkLjxr2NKjwrAdS/Tn3hoBRCY5yCc1JmcqFBmwvzXS7dZ3fjLW3/37+/44xIF869SpIM2vM2Jl/zo615nleOcGZh/M/O/jyGCgzV/fjv3neAp5xgmajA2Njum5Pv+knsPePeX5fptHnWGR53hWX7lSfzo31ICm+cSYjny8jdz0zGAf7iXSyu6APO8DEV0BaAlYyLxIhLYLCqzAvCKN/HNb0sa8XwYusK8AmzOCEgADDW4cMTf3M2rPpiNjhe7lt9/OjYhxsYjT/OYawDu3ONJ53jhBJm87I3MCmn+4FaORuaVNM9NtGRnxs4cYGisGxLm+RsbQAlCYF50gjSHI0ANTm/CWQCbElxa8Xm/waLD5oUIcTAwJiEw/2bmORi6wtkDnnKOl7uJh5zkMdfyp7ex6Eiz0fGS17GotORx97IcmVWaAWy64MIRH/bTFGFeGIkLR/wbSAyN9QTQFfqKjYRNDQTA4cgLIjElzQBdIYRBkGZe+bnH8xLX8fI3cc0W7/+KvOmjuXef/YG793jiWf7uHvbWTAnQFWz+VUK05LZd0hQxr4j/BjIZzJe82N94vsRzMP8G5syCYz3n1oT4y7M6e8CZLYaRKkI8S5pmakDjD+/14aiNyk7PqTm7Ax/3kn7PR7rMNK0lESIqnvyVf62v/NsoQrBu3LjBq14HwvwbieeRXFwjOL/i7X9V80KCeG6GEAej5oWDwYejkXhOEp54yTN670f68/9SP/JUTclGx4e9eN58XDkR4v+8ZkrlaO3P+DN9zxM1mTe5xV/3at6aKRsh/mcxCu471JMuaafnx57q3/o9/up8dPK3vRZv/lDT9A8X/Jl/EsKvdD0G8Z/CEMHeyh/5B/rxp2lRefMH+bNfnseehiYbif9eASSPPObPfwXmhVs2YaIrCKaBzV5f9ao85ri/+u/0x/fxm3dKAjgx460f7M94OSNhxL+LAHj5G3j5Ao02EqKIBxIgMG9wI9/+eJ6+z20H3LjDv58Epg++5tX8OS9PCTAvSMKDtkQi/rMY0pTKpaU/5g/0M8/Q0HiXh+VXvKpqwUY8m6EULhz6y/5G9y15rev9YS9uUhL/0xjJmWX+2w9/3/vilpM5ouBfTc7cOnF6vrlzx+P+PLNJMi8ijavlfGvn1E0Pydb4v8WZUWrpur/8uR/6+S//hIML922fvu5tPv0bHvEqrz8sjyIKz0nSNK5f/PXf5tg1N64ODqNU7iew8/Di0UNe7tUf+vKv+de/8EN3Pe4vpmEtCQzi30eKR7/mG5TKuGK5dxgRiuABpLBdu/7hr/S6f/PLP3ruGU/eP3/vxrGTZhL/hWwppsG3/c0fr/Z359vHsjVeZJJaG48fO/1ar/QWi/nmar1UxebfRWrNO8c3X+6VH3PDTWdKiVd69Rd/yCNu6Gfdy7/qYy6cv3THrfdu72y+6du82s7xzZ/5kd994j88Yz7vu77y72Mb2NiaK1T7cu9dF/7wd/72dd/45fu+e/ITbnvc3z5dUrbs+67vOwCEeW7mmcyLwhARRwfLP/n9v7/uhlPbxzYe+sgbb37wtWfv3T06XO7vHZ27d/fWp911390XM3OaWq2F/wEMnfXbi0t/2x3WozJh/pVskI7G4Z7DfUA8N4HtG7d3Xuvmh/z4E/7+5a69/umXdr/+L//4r+696+Ne4dXf7GGPAqbMP7v7DtoUXZ82/7U0DLEeENhcddX/SEDlP52Blm3Kif9uOfr4g+vD33ixcSb430JkY34iZjsBtLXbaIUwL7qo4rJ+S/1W4UVQ5+K/XDr7Mj+7f+e3/eZnnT+4d9FtpJMXWVEc5fCo+TVfcNNbbNf57nTE/0M2RVxc8s1/DAKwkTA0E0GYX3oif3Enb/NivOT19AXD3orfeAq/8RSaqcI8HyFe7Fr6wpT8ztO4cMTOnJY8XwYbACH+dQy1UANgZ87OnBfFzowHsukKTzjL2UOu3eKlruf6He7ZZ1HZm3ixa7lhB+Dv7uHefWYVm+dLYmg86hoefQ3A7bs8+RwvhCBNGsDGRrxAAsBg/i1aAhha8iyCMXnKOZoRL4yhiFnlP5ZNH9xzwJ/dwcvdxIkFjzzNH95KEUcj1+/wkjcA3H6Jv72bjZ40zyIxNv7+Hv5Fhi7oCv9qRiAB2KR5Pox4gQQCwOaBQuyt+KLf4l1fhld7ENduc8MON+xwRZqjgXsO+M2n8OtP4cIRNfjXsllPXGHz38ICeNTfcfpeDiqd+dcTkDxoWw8/5jvuUg1++26+5u/4nJenn0NCAwMAUYkCyY890T93W2xUxuR47ze+2a9+PddvQ6oNSJSA4Ann+Mw/12/epU6UAFhNvMFD/QrXyhMhXhDxr+XlJGDV+O27aOaFqMG80IkxATCIBzLIvO+j/fv38Ef3yvDWD/I7PFQ0xP9xhjSl4/ZdPv6P9Kt3CHjXh/uLX8k7c2UjxP80Nir88b1+2p72Rr7wr3RyzqOP89kvx2vd7JwUBZtFTycwEv+Jgp99Bj/5dG11fNBj/ekv665TTkhI/LeTIHnQjj7kJQBIMAKgikxCfOBL8Ga3+LufxO/ezZi6ZuF3eThvejNdlRPxH6ONeECiiBfixk2fnnPPUmeXAsR/jBAPOQ7Bv6xB8p/EkKZ0POEsH/tH+r17NC986GP9ua+oWSWTEM/rm/9Bv3uPjvd89EtyYq71hARgU4MxuaIZkjGJgvjvkOOfPuQdn3DNa3X33QbH+DexHVG2Tp5cbB+XhHmReb59bLaxBbItif8rsrVuNp/G4Xe/46t+57u+bLV/6ZqHPfatPvmrH/5KrzOsjhTB87Aptb/2YY9FSMFzkiKzzTY2r33YY6Prdu+5Y3npwsbxU9maxL/fcu8QW6EohefPinL8+lsW28ePLl1YXrrAfznjbr54/G//3N/84g928w1n8iKTZDuivNrLv/EN1z54NSwl/kNItJYPfvj1EXHh3N5rv9HL7e0e3HPn+RtuPnPy1E6mA9384GtOnjm+c3xzc3s+rsfz5/a6rtrmX08wDm2acgZdVyU5HaE//8PH/c2fP0nSNLZM166MwxgRpRYgW0P8+9muXX3qE+/48e//jdd8/Ze54eYzi43ZDTef5n7TMB0eLp/+lLv/7A8ed89d5yTx3yphbv1Df/ibGxeZEP8WxhGxXq+ftnuRywziORgEb/zQR37or/7sq//At61be8uHP/qH3/KdrtnYSjuki6vl7ft7mP8WmhpTQ+Kqq/6nAir/+UJxtN47XO+C+O/jZON0eeSbLeYnAxiX3ru9DQfmgcxsR8cfUqPyP4iJigqAjdP8W118+rQ8l1Fl84JIKLh0+6Qi81/HuKisxqPv+70vfeI9f7XoNtONF1mgIaftmH/hzW958+Law3E/EP+fJZAgxLPZALPC+SO+6Y9pyRWCWugKVZjnFmI18eLX8VLXA9xxidt26Qs2L4hA4t/O2ABPOMs/3Mu8kub5EiBqcNtFDOKZ0swKTz7HE89y7RYPPsFNx7jjEgmbHY+9lq4wNv7qTi6tOLagJc9XiNXIS17HjTsAf3kXd+0xq6T5F0kA5l8m/i0knkk8kGDeIf5lBpv/cIYQTz3PhSNObvBi13Jqg3XD5kHHueU4wBPu42nn2ZqR5oEkNnteFDbm30VCPH/mXyaeg6ELDga+6nf50WO8xkO46RgnN7h+m9ObnFiwNePhMx5+ijd9NF//h/zVXYSw+VcQEs8k/lu04CFP5kFPp1U08W8i0ZJjG7zqtf6NO/XKZ/zIY3zT4/SUPb/rw3noDg/dYaMD08ztuzxtz79/j775cZGmD46Sh+74HR4GQU5IAKVjteJbH89X/Z0urtnqsAk4GHmp03zcS4NwEuI/kGBKrt3g/R/tRcXmhUjTBTduCoN4LhKZnNrUY07wB/dQghc7yWxOGyji/zADUDp+/3Y+7o943K4WhY99SX/CS7lUZSPE/0ASJNsdr32Dj8947HHe+iE8+IRJuUmAEKQx/7kk2sRv3amE17jOn/hS7qraRBH/sxjM8wphoHHjDp/2inxaAMaQkNiI/zBFIP5F2z2n57r1gP0BAPEfJSdeFBLiP4VBUDp+4an+jD+Px1/kug0+9iXyI15SQCYhHihNdPzObf6Wx2uj8Fkv7zd8FCQzHkBcK6owHO9hi/kaBjD/lYyUw9POvMqf3fw2xROA+DczjOtx88SZUjs7eZGVUgGw+L8js/Ubm/tn7/6lr/rUv/21H2/D+hGv8vpv9nFfev2jXmI4OlIEz0tyto3jJ7dPXyeJF0DB1qlra9evD/fWRwebJ8/QJhD/blEK/zLPd07Md47v33f3+nAfEP91bJdudu9T/uG3v/2LV/u7tV/Yyb/GNI2v8FKv89hHvPw4DZL4D2FH6Ohw9Zu/9Ofr5bDYmL33h73FM552zy/+5B9cc93Jhz7yhnd67ze8756Lx09ulxJv/navfv1Np//6z570Mz/yO/yb2Fbo0sX9cRhhvr2z0XVlHMZSiu1hPQESkmxL2tpZlBLAwf6RJPMfo5S47Wl3f++33PWQh93w0EfdtL29cezk1rHjW8eOb9W+Huu3X/oVtl/spR/2e7/+l3/423/Lfx9Dh+4t4y9vXBgjwxjzbxJStulvz94ztNaXYgziAUJK+8atnYccO/GIE6e+/HXehMtsG4OeeOHcxdWSEvy3GCcyueqq/8GAyn8+gxSH630w/12EkzOP7eYnA9i/qz39N1e7T2/TyhIGQJDNpx/d7dxcoor/IYwKw57HQwPRqXSyjYR5ETm54sKTxlt/ax2dbF4YEx11Lsx/HVNr/wt//b2/9nc/Mu82MpMXmcAwOj/12td+wxMvQQ6B+PcTSEgIEP8iiQCJ/wkEiOfLUETX8UAGG/N8SAyNh57kum2Av76LZ1xkVknzghjMv10zaYAn3MeX/BYhAPMCGbpge8ZzEKuRv7mbV3sws8or38Lf38PhwCNO8xLXAdx+iSedZd6R5vkStOTEBi95PRKrib+5i6ORY3Oaeb4MgARgA4j/Bjbmv43NvPKEszztAic3eOQZHnSCv76LrRkveyOzwtD4h3vpCjbPK81/L4P4tzAIduZcXPIjf8NqYqPj+m2u2ebkghuP8QaP4MEnuOkYH/nqfMovcvsl5pU0/yvITJWT53jM3yNj8e8gIHmHh+mHn+rDUe/36HzEcX/0H8SPPIG3e4S/+3UNaqYUfv4Z/vQ/iyE50VOCIdmqfq9HikKbCGEoPX9+l7/gL+M37mSzY6vDRmJv4DEn+PpXy1uOK0dC/MfqgjQ7vT/j5ZhvQwPxLxhwIp5bmtLxB3fwk08nxJR8z5N4o5v92NPKiRD/J9koQP7uf9Dn/oXuXXLLlj/v5Xn7R0JTNkL8TyOeyY3XuUmveh2zOQQMTKMEAkDG/Be5sPJfn4vDgde43ptz5UQR/4sIACdumGcKkBD/kQyA+BfYJADiP1iI/0ZpIgC+5q/4qr+Ne5e82Ak+/xXzjR8iJgwhHsgQwd4RX/zXOpx0rOMvzvKZv82QkngmI7GauGdJX/iRp+ofLrLd8+EvxmYP5r+GkXLc27jhtx7+/qtup8u1EQbxbyOQcBoAgXlRCcT/IbZnG5t3/MNf/swXfdRtf/snEfFK7/iBr/8hn7l98pr10WFE4fkROHO2ud0vNm3z/Fmim28ogv9wNhL/IqdtJCT+C9mOUoajg9/4ls+/+4l/M9vcyWy8yCSN4/CgGx/5Ki/7hnYC4t/JgG2bTNdabnvaPdPUrrnuxC/91B+eu+/iMIy3Pu2u9TBcf+PpR77Yg/7k9/9+/9LR673pK9zxjPv+4a+fOpt34zBJ4l8vIs6f2zs8WB0/ub25tai12FwRIe7n9GzeXXPdSWAa26XdI0n8x6ldAd36tLuf9PjbMr1zbPPYia1jJ7a2thaPeOwtj3mJB3ddee03fLlLFw/+6k+fOJv3tvkvFzDiX9k4f1+3DlcDiH+TtKndE86fferu+cecusZG4vl6n5d4ue//h7++uFqemC9sI8kAv/z0J9+3fylqlzb/lQQQB0cxTe46bK666n8koPJfwZLuvPDUdArx32fzmgLYPON31uefOPVbqjOZZxJkU7chiReV+S8gMSw9rQ1EJYow/wpiWtsNFRYny+JU2AjMC2Wc/Jexc9Zt/NlTf/MH/+ArSqkYMC8ySUdteKeTL/tR1702OYKE+Lcxz2RIsxo5GugKNv+iGhwOrCcAm//h0rwoJMbGtVu86oMADgf++i7GZM4LIxD/FoYQq4l1Y1a5ZosHneBoJITNC2FoyQPZ9IU/vo23fwmu3+alb2BnzoUlDznJTccAHncvt15k0ZHm+ZI4GnjMNbzE9QBPPc8Tz7LRkeYFEaTJBKhBDcy/zID4P8NQxO6Sx9/Hy9/EyQWPPsNf38Wi8thrAe7Z549vIwLz30AiBGBjLjMImyv6wr9HmiJ25hyHNOePuPeAoVGC33gKH/eavMJN3LDNaz6UH/4b0oj/BWSysDjkJf6Cfk0ryPw7hGiNB5/gY1/S7/Vb+pg/jJ9+o7xu4d+9mze/xVszuWFD5UHbOjFjSgzAqvG+j+aNH2Q3hQAi+P5/4PP+Ku454nhPM4IGRwOve6O/7JV5+EnlSIj/YNKJOV3hcNRtB35kYd0I8cLVQDw3QwkOl/7av9fdR3rsCa8mnrqnb/wHvuZVXUIG8X9Nmijk5M/8c337E3Uw8CrX+kteyS93vXJEIsT/NMKSAqgIMLMZNGgQ1ODZCl0AmP90i8pHvYQvjbzejZBI/G8kkPhPJf4VBGAQ/yekicLR2p/yp/reJ6mZ17uRr3yVfORptZEQ4rnZKLh3yVMuaTXRzLc+XiSI52AInZnTBb92Jz/zVD3omN/3Ud7sZRD/6YzkNtXN33j4B1/YuLlrK0fhP4S4zLzIhuVBlAIyiP/lbKCfL/7+N372F778E87f9uTNk2de5/0++VXe5UOjlPXRYZTCC2AAbIN5oezkP4MCzP9MtgD0+9/7VU/5w1+bbe04kxeZpKlNJ49f8zqv+tZ9P29tkoJ/H0m2JSkkyXbX137WXbyw/7u//pddV2fzfj4vd9x632233vvwx9z8tCfdee6+3Vd73Zc6d/bik59we61FEv9WEbp0cf/GW85sH9tcbM53Lx7wXEQ2z+bd6WuOA+vVsHt+LyTb/AexAXddnc06oLU8d+/Fe+4678y//csnv/JrvsTrvekrlhIv+fKPeOLjnjGNDYH5r2So1m9sXPiH2aEcKYt/u7RL7Z5w712//PQnP+bUNeL5kGR4qWuu++HHx88+5Qnv9eIvI2nM1kW5tF79wR3PoLXo+rT5L2bX3T3MVVf9TwZU/ktIcefFp62Gw76b2+a/h7sNAeNBrvezzARk41kMbjjB/MuMhEL8l1BwRVRFh82LTpCTbQR1LownLP7nsLNEd8/ubd/3+19yaXlh1i3s5EUWaJXjo+fXfvqNb1xLn55CMv9WAqCIGnTBg04QQQ1s/kUl2Ftx3TbArPJ/g2Bo3LjDY64BuPUij7uXRSXNCxKwnjgaAGaFzR4b8aISjI2WAJs9RQwTtWDzryVx7pCnnOP6bW7Y4VFnuLTkVR4EsJr4h3t54Qx94SWv4/gc4G/u5s5LbM1I83zZ1MJ9h9y9DzArLDpsxPNhszkDGCamRPyfktAX/vZudlccn/OyN/JLT+TBJ3jwCYAnnWV/TYj/JBKI5yVoZqvn2BxgObIckTAErCaGRl/YnjGZ58tm0dEVgN0lhwOzSprnYmhJA6AWusJGD3DXHr/8RF7iOuaVh59mUVlNFPE/n4Uaj/oHTp5nqsj8uxXBxLs9ktsP/QV/qS//G334i/OypzmzEEYCwPQFQZoS7K5501v82S9nEJdJfMvf+zP/PIBjPVNSxMHEsc4f+3J87EtSCjkR4j/DrNAFq8aFlTmlaor4tzAUfvgp/MrtOt7zxa/o2w/1UX/ITz1db3qL3/QhMIF4YcT/LmkiOBr4uD/Sjz5Vk3nnh/kLXsnXbquNhBD/85hbtnX9hn/rLv72Xp+eazKAeD4Ev3C7+sKjjkOQjSL+U5itTu/5GAAsjLjqBTIA4l8gMCTi/wSbKJw/8kf/oX7y6drueMeH+gtfyVtztZEQ4vkQYLY7v96N3LukD0KEMM9BsG781TntT7z0KT94m2sWzAuA+C8hYf/FTW/5tNOvUHNtBeY/grABEJgXgWFYHR279kY7Jf53sw21n/35T3/PL3/tp++dvfvaR7zEG3/U57/Y67zFuFq1YYhSeMGEkOx0mhdKEmAbG8R/mMQgQLwQkiRsZ/Jfxc7az5/wu7/wFz/zPQph2+ZFI8l2ifIqL/uG15y+cRwHSWD+TQwCm2E9nr7m+Ed92rvwAmT6R7/n146f3H79N3tF22/x9q+RmX1XX/rlH1Wi/NyP/V5mIjD/Bpl57z0XHvtSD50v+oc98qb77r5gmwcQcraNzfk1150ALu0e3Hn72SgxTY3/KAJjuzUDErWrXY8i1qvhcX/z9Bd/6YffcPPpY8e3jp/Yvveu87WrxvxXSeitJ/RHf7C4BDL/AYxR/NgT/v6dH/OS129uG8RzENhGet+XfLkP/JWfntf6To9+iS4K8Ad3POMv7r2Trm82//Uyy/mLhLjqqv/BgMp/PptQ3H7+KQfrvVPdhplA/HcwANnAYDDPy8ZcZl4go2BaelqZ/xISw4GBqHQbEi+YkLDBAAak8dA5Oqpm24pebbQCzPOSAGz+y9gOlcz2vb/3xU+46y8W/WY6eZEJTeRC3Zff/NYPWlybOQTi38OmiEsr7tjlwSf47Dfg32BKbttF4v+ANLPCy97Izhzgb+/m3gM2e9I8X4Ya7B5x5x5AFyw6pgSBeVGEuLTicODEguMLtmacPURgno8QQJrnK2BM/vg2Xu3B9IWXvJ4n3sdjrgG4a4+/uouukOb5khgbx+e8wi0Auyv+6k66gvmXHY0A847NnrEhgXkgm65wfA6wmhgmJP4vsekKf3sPt17gpW/goafYmfMyN7LoaMkf3caY9IH5T2GT5vmymXds9QCHAxeXlMAQYj2xmugLxxcsKua5SUzJRs+sAJw74mhk0ZHmCvFM5tlsDBjBrHBpyWpiXtmZUQMDAvM/mczY8bAn8KCn0goy/0EMQp/80l4UPuvP9aV/w7ULPvzF/PEv5zYJA9iU4Gigjbzzw/wlr+SdubIhocLPPY3P/PMIUcSUFLE38NKn/bkv79e6RUy4EeI/nIDkxk22Oy4N3HUI4oVII5B4XgYVnnLB3/S4GJN3ebhf52aWg3/hGfzcM/RVf6dXudYn5rIRL5gBBCH+5zNEMDY++g/4oadqHnzMS/izXg4V5UgR/wOFyImbd/jQF+Mj/0Av9WM6PnOa5yvEqmk18v6P9RveDI3gP1c2AAlx1XNLE5U/uYsffZpOzfyhL+bjc9mI529MLSdXaVEMwiD+9zIoOFj7w36Pn3mGTs/5mJf0x76UQTlRxAsigbluU9/8erwwYlj69X9ef3eBD3oM7/kyZi2aMP8FrNB09NRrXuOPH/xOwgLzH8A4Stk/d898a6ebLWxeFG5ttX9ptrntTBD/A9kGQALEC2boZou//Pkf+Lkv+/jl3sWHvsJrveUnfdWNj3nJ9eGRJEXwQs02tmo/Wx/sD8tDSTx/shlXS2eWro/aYfNC2AZAAsTzY2ft54/77Z9/wu/8/KlbHv7K7/hBdTYnE4nnQ9Owntar0nXdbMF/CTu7+cY9T/mHX/uGz17uXejnm5lNkm1eNMO4fuWXeYPHPvLlx3GQxL+HiRKr5frXf/5PHvViDwYQz0tSm9qFc3uXLh781Z898Z47zr/ya774zvGtX/u5Pz597YmnP+Wu5XK9WPSZ5l9Pwulbn3L38jWHxaJ/8MOv/6Pf+Vuek22FHvLwG3ZObAF333mutRYh/oNIchrxLDZgG7nVWoZh3L90yM2n5/N+sTFLG4H5r5HQo3Nl/LnNc0OkLPMfIO3ouj96xlO//x/++hNe8TWwkXhOkmw/4sSpL33tN/r03/v133jGU9/y4Y9+1Rtv+dEn/P3+/l5dbEyZ/BeTtFrXi7uWsLnqqv+pgMp/BYfiwsG9d1542jU7N7VpkvjvZJ4/AdS5ogpQkSBBPB8qDHseDpPnS2D+wxjEsJ9OFGxfX+6by8nzIdyYBkdVFBAYBUfn2rRyXWh+IqJgE2Cek8BMawPRSeK/iIioP/Vn3/K7T/iZWbewzYtMAKT9KTe84Wsef5RzDMS/k6EEl1Z8y5/wm08ljUG8qAxFLEf+6i6KMP+7CaZka8Yr3QKwu+T3bqUv2LwQhhpcWjIlNXjQceYVm+cl8VxsauHufS4ccdMxzmyyPWNM5gLzQALDcmRK5pUSPB/C5q/v4p59btjhMdfwSg/imk2AJ5zl3CE1eCFsHnqSh50EeMo5HncftWDzwpgqLhzRkhLccpxFR5oHkpgaDzrB9dsAF5ccjhTxf09LHncfL30DZzZ52Rt57LUA9+zz+HuxQWD+M2z2bPVcWiGeg0Qzx2YcWwDcuc+5Q47PsYngYM2lFTszrt/h5uPcvkst2DyLzaLy4BNITMnukhqYZzJMSQ3SFGGeDwPC/G8i0ypn7uGRjwNhIfMfRGAj9FEvzcuczm/4B/3007U3gniWZs4teewJPuSxfqeHu6vKRgjE+UN/6V8pTRVpitgfea0b/G2v5Wt31AaKkPjPIEFy3QbHe99+oMfvChvE8zAIogND4/kzX/W3etxFXvKUP+SxYC1mfORL8Jfn+JN79U2P41NfHk9IvCAhihjNwSTM82UQ/yMIkL/+7/XjT9ei8Ikv5Y9/WTBuhPgfS4Lk/R7NDRv+k/u4uJbEC1LkxxznbR/C1pycCPGfSEQBwJBc9VwMBLfu803/wJmF3vnhHF9Agni+bj/ybYc6NefGTQCD+F9OfNFf8vO3xZk5n/6y/sCXME2GEP8ykwPm+bOpwaWBNMBygjXjSBf8FzBSDhe2Hv47D3vfscxrW1vBf5zWpuXB3mLnODYSL5jt0nXnb3/abGOrdrPMxv9IUbsoBcg2ZWu8ALZrP7vt7/7kV77uM5aXLjziVd/gbT/jm07d8pD14aGi8CJYHD+5OHbi4Px9h7vnbPMCOLlw563jajnfOjbb3HY2EC9A1C5KAbJN2RrPj9Oli3uf+g+//yPfdtOjXuxl3+Ldu/kiQTxfvnjH0/fP3XPqlodvn74WMIj/THaUenDx3G99yxecv/2ps8VmZuNFJmmaxkc8+CVe8aVfJ7PxH+fxf3frX//5k3nBJOaLPiJ+8vt/czbvH/MSDy61/MPfPv3sPX+5tb2YzbpM82+l0H33XLjnznMPefgNN958zYMeev3Tnnxn11Xb3C8iHv3iDw5pGMZ/+OunZcuIyr+TAWy3qc0Xs2EYJfE8bJ6DAATmv4KhwFL5S5vnL5RRlvkPY5vafeWf/eErXn/za9384GYXieckKe1XuO6mn3u79/i6v/ijn37y47/77/7y1259Kv1syuS/Xqhc2o9L+0hcddX/YEDlv4QUQ1s//s4/e5kHvwYYxH8DCYAykwqAAhKDAAG09Na1ERWgzoRQILB5bkaFHAFKpzITIIEw5ISECpjnICSuUKAiCXGZUJECzLM4AQwqOjrbpqW7TR17cO03tdp1mUHyTAJoa+/cXG9+tdndf7nefXpDYBSsdr3azfmJmB2Lk4/o7vrTNUgB5plETqjwkNeb117P+P31tLLEf7Z0zrvFX936ez/8R1+Vzi5qOnmRheLStHyHky/zYde9JraxEP9+aRYdd+/z9Asg/tVMBBsdEv83PPYaHnQC4MnnePp5QpgXxqYGd++zu+T0Ji92HTce485LbHQ0YxAIIpiSljyQoYgLR9y2y0tez0bHqz6Iv7uHTEpgc4XE1JiSt31xHnUN3/+X3L1HLdg8B1OD/TWPv48bdrjpGG/6aCTWE394K4DAPH82NXi1B7PosPmLO1lNdMELZ6iFOy6xt+bEgpe9keu2ueeARSWNQVCCgzWPPM01WwC3X+LSkhKY/1MEht9/Om/5GLZmvMEjuOkYwN/dy/5AV8D8hxMAN+zwCjfxC09ge4aNAZBIs+h4lQdRhOG+ffpCAlCDc0fcvsvNx7hhm4ee4knnONHREoOgiKORG3Z48esALq24e58a2ACClrzCTbzry/Djf8dvPoXjC1piEM8UYjWxPWNeAZYjzQgw/5NlMDvisX/NYslUkfkPJTB44jVv0Suc4e9fMq9dQFMIBBOvei2/8mb5oC1dewwmZSNEmqj86FP1xEvqAkOIo4nHnPDXvRrXbmlc0wX/eQQ2Nyz80B397QV+/x7tHnJ8wThRhARgk6YWwD/8BN285Ve7Xjbi2ZopHT/zFP/sM2Kr4wMe44ec0rQmkle7kfd8pL/yb/V9T9Lr3ZCvdKPaSBHPRYA5PuPM3E+8pKfsAaQJAdgYSoBRgQTz38ug4O/P8a2PZ9X40Mf6416K1kgjQfJ8SRTxXNKkAYAq0gA2kyGZjIxEEf8hBIDhTR7OmzyYbBbPnyEEHTRyIsR/IrE3+G/O6XDkITt+5HGJf4GhGYyhSyZzRTMkUyIASiD+xzE0gzF0opkr0pBMJgxQAvEA5qYtP2ibZdNtBzz0JONIDQQSBkwCUMK/faeOJj1sh+s2xf8kadJcUUUagaElmMnISBTxLM2Ujt+7zT/81JgVPuDR/sAX9zgKkMA8XxJFPEuIF8QCUcQVEogQ/yUkssXi9x/6nue2HjybjlLBfxBJbRpP3/Lwu5/4tyeuv1mlZJuk4PlxpiKwL971jGsf+lj+gzlbgm0rIlsDEJmtTVO2SRKgKJJ44aTztz/1vqc/oXazax722J0z1zsbz48ixtXy97//ay/e+fQbH/uyb/qxX3LihluWe5eiFLeJF0BRJAHO3Dp5zc41N1686xm3/e2fPPa13txOGykkMMbZWu36o0sX73r8X4GPX3/zbHPbmZJ4fiSdu/2p5259UpS47hEvuX36WmfyApy84cHHT51u47h39u6dM9dP61XUCpJkG+zMKLVN01P//HeyTcevu2nj+Glniv9chlD82Y9/+xN//5f6+UZm40UmqbVpe/PEa7zim2/Mt8ZplMR/kNm8my96XqhMg+eLWYR+7sd+L0qM63F7ZwNs829mU0pZHq7/9i+e/JCH37DYmL3ya774Hc+4r7UsJWxLWi3XL/cqj3nQw24A7rj1vrvuOKsQ/24SQKnlVV/7pR7y8Bt+9kd/Z+/SYdfVTAMIICLaNHZ93drZAIb1uDoaQrL5L1OsP5rvPm52IIf5j2SIiHsuXfywX/vZn3ird33UqdMts0TwnEJqdh/l417h1S+ulm/0o9+9d3SorrPNfzGbiO6Ou2MYkbjqqv/BgMp/CUltGv/hzj9dDoe1dMZC/Jdb7yWUbkMnH9bt37Eaj1CgUIKbnWzfUE4+ouOy2bEovVb3ZV0oKpjnIjEeJaDg+IPK2b9nWhmB2by2KDi4J6MD8yxuTGsbAIlp7WkZBsDNw0GWXjZXRFB6ITBR2L2tHZ7N45tl43Tc/Grzp/36cjywKhECstnJsVvKw99kvnVdOfnw+pRfXt3zV4OCKy7d3o4/pAI3vHx/6RnTwd0NoZBEpt3oNvXg157f+Io9MD8Zj/vxIxLEfx7bXenvvPD0b/utzz5c7/d1lk5eZIEO2/AyGzd98c1vWaJrORYF/1HSdIVZ5d/INPN/gCHNqzyIjQ7gz++gmRAvnE1fufUCt1/i9CYPP8UbPpLv+XMuraiFIqakGZuTCx5xhudi6AqPu483fCR94Q0eyZ/dwR/fBlCDEC0Zk0XlHV+S9355ZpVHnOJTfolzR3QFm2cxlODSij+6jdd9GFs9DzkBcPslnniWFy7N1oyXvB7gwpI/fgYCgXlhbLrCk85yxyVOLHj4aV77YfzQX3NpRVcI0ZKh8bBTvNljmFWAv7yTs4ccX9AS8X9KwN373HqRF7+OR56hL6T5k2ewu2RnTkv+k/SFN38M/3AvT71AETUApmRKXuVBvOZDAXaX/OWdlABj6Ar3HfD39/CqD2JWeYvH8Lh7eMYufaEEacbGvPJGj+RhpwBu2+XpF+gLNiGWIy93Ex/3WpzeYFZ5xkWefI6+UIM0zdi0ZGvGqz+ERQW49SKrkRD/05nH/jWnzjNVZP4TCCTawKLjFW4QCYkAsDkx5xU3RdIGAkIYQrTRv3GnmulFmjRd8N6P5EEnGdd0wX8qgY06Xut6fu0O/uoc3/F4Pu7l6GYw4QQRQXQw8jV/wxf+teZF3/6a+QYPVk6EANKUwr37fO3f6/yat7zF7/4IGCmBDcmHvph/607+6D599d/pu0553smJxHMQJGcWesRxfvcefu12Pugx3tyQR2xCMOe3n8a3PI53fQRvdBN9wSD+m/3Cbbr9QK94xp/xstaGykQJMM+fIGHkgQzREQUMQGGzYuiDUzOY0yUIEkb+Y01rigjxggiANiAI8Z/EIFhNvPdvxu/fw7yymvjm1/DbPlxOxAskUXsQGAonekJgdjqY0zUQGCZI/qeRqD0IDIUTMwSYnQ7m9BPPNEFyhYDkoTs6s+Cvz/GTT+e1b3a/ECNAS0IoKAWCP7+DH38aaV7mtB+0DQ2J/wkMUYkKBqCw1ZFQg5NzmNM1ECSMXGEQkP7pW7n7iNe63p/x8qZXVyDAPH+ChJH/4Qzy9EcPeY8nXfOqfVumgv9Icub2qWsPTl/79L/4vVte8pX7xeY0rLI1xLMIFKVfbBhu+5s/7uaL7dPXZGv8x1GUja2FhE3tWe6fiCi2ZxvbWye6cd1JAMOytWnkBbBd+9nT//IPfvAT3mUaVm0cT9780Pf8qh8/ccOD2jRK4gFs16676/F//dQ/+a3Z5vZrvvfHP+KVX2q1T784xgu1Xk45TRJtGrdPXXvDo17qtr/+o7/71Z947Gu/xcNe4ZWmNdM45DQhldLNNjai8uc/8713/MOfd/ONW17ylbvZbDg6ksRzsl372dP/8vd/6BPfbVgdOduJ6x/8nl/7EyeuvyWnCYkHkNTGPPOQR823j126785/+M2fedBLvdxiZ2caxszMaYpSotQ66xT8zS/+5JN+/1eilFte6lU2j5/KNiHxn8bZuvnm3/zyj/zRD3196Xpj/jVsR5TXedW3uubUDeM0SOI/TqbBvEjcms+fu4QptUj8h4iipzzh9mc89e4HPez6hz3ypld4tcf+7q/9ZZSIiHGYHvyw61/tdV6q68o4Tn/y+3+/Olp3sw7z7yEAWsuXf9XHvt6bvgLwqq/9Uj//4783DlOtRaHWEpPpzHzJh9947fUngYsXD3Yv7pdSwPznM/TW3/UHv7lxEQf/CdIuff8Pd9/5zj/3Iz/0Fu/46FNnpswawXMq0pRZI37t1qf8w7n7qNU2//Ukxqm/9Q61dFexueqq/6mAyn8VRdx69glPP/u4x970iutxKYn/SgZx8enTmRfrFNz0Kj14/67WBobDjKpuocWJuOHl+43T4YbN4qQe9obz80+aDu5uh+cyKphnMyo6vC/bijLnzGO7w/vy0m0T4tiD6oNeY7bazX/4kaPxyCpgAJt+WzuP6aKCQeTExqmIAOi344ZXmEUFA0gMh967fcoJBODknr8ejj94AVz/Ml23wb1/M04rD4eW6Da1cbrc9Ir94nQAB3e3808cMQgMcPZx4zUv3i1OxsbpeOw7bNz1Z8PhfW1cOif6TXUbuu6l+5OPqEAbOfsPoxsK/vMYh2Kchu/7/S99yr1/N+8W6eRfYyJP1o0vuPktrp+faW1dFPzHsmnm/zmb4wsefQ3AuSP+6DbGxqIjzQthKOLCkl97Ei95HSV4x5dku+cPn8GFJYcDx+Zs9pzZ5I0eyUvfgI3Es9jU4E+eweMeyUtfz/E5n/q6/PTf8w/3srfiaOT4gu0Zr/lQ3uARFAH81lPZXVEDm+cVwe0XuXufG3YQAH97NwdramCeP4nWeMWbuGEH4HH3cv6IEP8iQ4hLK37jKbz4dQje42U5PufP7+D8EauJEwuu2+atX4wXuxbgyef409vY6Ejzf4yhBMuRf7iXF7+OLhDcsccde3QFm/88hsdey2e+AT/999x+iUtLECcXPOg47/zS7MwA/vwO/uFeamAA0mx0/MGtvNGjeNBxXup6Pv61+PnHc98BF1dsdpzc4FVv4U0fg2BKfuWJXFyy0ZEG0xeedp5bL3B6g0ee5uNek5/8e+474MIR847tnlnl2JzXeziv9CCAg4Hffzqric2eNM/FvAjMfzaZqfLQJ3LzM2gFmf9MRdh4REI8k8DGI4IirrBR4c49bjvgCsGYnJ7zatdBo4j/AiFoetuH+AeezN9c0Ff9vc6v/dYP4RHHODEHc98RT9zlx5/Gjz0tDkfe/Ba/ynWQCABDCODbHs+fn9UtW3zcSzPrlRMhJDI5taWPfkk/8ff163fqR5/q93wsTsRzEDRTOl7pjH/0qfrrC/r0P+ODHsOjjhPh3bX+4W5/8V/pt+/W0/b9ytdwZgMnEv9dBDQ/8aIMx3p+/x7pXl4IQZoTM17pWoq4wiDx+LM8bY8Qhhr81XlmhXuW/PjT2OlpJs01C17+DCH+owiqAMy/oIj/VDaqPOUCT9glTZoh9bv38LYPQ7xgYm/Nn9zOmABd8PQ9HU2U4Lfv1mFjTIAQr3gNJ+dg/ocwSOyt+ZPbGRJBFXccsk5J/M7dDMkqERTxCtdwcg4GCJGN67f9qtfqr8/xM7dqFrztQ3nwNid65nMz6eKK2w/4y3N8/d/r6fs6M/c7PcwqahNF/LczSDz5Ak+6RIChBn98H7PChRU/+TTOLBgTmxMzXvEaagBgIlgOesYhwE7Pr93B0JB4QQSTuWGDlz5NEf9jWaFp+ZRrXuvPbn7bcDP/KbK1Y9fdlK2du+0pznbtwx67cWzT5llshqPV7f/w57t33378+lsW28eX+7vzzR3b/EeQtD48ePIf/cm4PhKKWvfP3bs6uFRq94y/+aM6m+U4ImxufrGX3z5znTN5fiSAOx//FwcX7ptv7gB7995xxz/8xZmHPGwa1iqF5+CIcv72p46ro/nWsf1zd//Fz/zCuF4qCpjnQ2DQzS/+ClunrnGmM7v5xmNf5y3/7ld/fPfu23768z/8Vd75Q2587Msdu+aGzZNn2jgeXDx74c5bn/xHv/bnP/3dq/3dax/x4o997bdo46gQz4ejxG1/88fLvYuldpiLdz/jrif8zambH9amUYgHUEQbh2se9tgbH/tyF3/9J//8p7/L2R79Gm96/Pqb59vHN3Z21odH+7vnL971jFv/6g//6Ie/4eD8vSdufOiLv/7bKMJjKoL/HM6ss8U9T/673/yWzx+WB918w5m8yCSN0/jKL/P6j3zIS05tlMR/q66rgG3+I9iute5ePPidX/vLd7z+9ecbs9d941fY3Jz/w98+bVxP1990+jVe/2VOX3Mc+Js/f9LTnnRn7aptIf4dDJKy5e1Pv2f/0tH2sY2XfeVHZ/oJf//05dF6tRy2djZqidmiv/nB177iq7147Qrw9KfcebB3tNiYZZr/ZIbOurcMv7R5sYVlmf8ULbP0s7++4xnv+LM//F1v+nYvd+0NaUsSz9bsGnHXwf6X/snvHa2XUbu0+S9m09V6xz3dvWcd4qqr/mcDKv8lbPdldv7g7j940i++2E2vyH8HBReePF148nTqUbXO9eDXmbsxrjweZFR1W6ozAU7u+vNh56ayfWM5/Zju9GO6p/36au/OdenlxrPYRGX31unirdPpR9e60MPfZL6+lMDsWADdRrn51WZP+7UlCEB4Yuua8pi3XfD8bJ6Jx7ztggc4Opt/90OHbc+qYKJw398Ni5N60GvOEacf3Z1+dDcuPR4amO2o9OKy/bvak35uOR45KjaACkfn8um/uXrUW2yUGYuT8bA3mreR8SDbRL+lbiEuy4mn/dry3r8door/RLbddbMf/f2v+K3H/cSszm3+VQKtcvyUG9/8tY8/NnNdJK76DxfiaOINH8TNxwH+/h4uregKNv+iNIuO33oajzjN27w4feGtXow3fyxnD9gfOD5nZ8asAkxJCQDxbEXsrvmOP+VTX5frtzk+571fnjG5cMjRyPEFJxY8yw/+FT/8NwAlsHkuaRaVp17gr+/mhh1KMDT+7HaWExsdaZ4vQZqXvZFZxfC7T2d/zaIjzb/Ipq/8xpN5zDW80SOZV97hJXm7l+CefVYTpzY4NueKg4Hv/HPu3GOjI82zCAIAiRdCAIQQ/2EkAInnIgGI5xACCPGChFiO/PkdvMVj2egA/vZunnaBeSXNf577Djg252En+bjX5HDgwhGIM5vMK1c86Rw/9NeEEBgAm67wtAt895/zia/NovKyN/KyN3JxyYUjNnuu3UY8088/nt99OvNKGsAQwe6Kb/ljrn0Dbj7GS1zHS1zHxSVnD9no2J4xq8wrVxh+4K946gU2etI8iwQQQrwABpAAJMx/Ipmp45o7efTfgbCQ+U8mkHguAokHMhDcvs/eQA1sgITjva/fACPxojOkSWNeGEMzNg9kc3pLX/Yqfp/f1m0HfNXf6Qeewkuc5MyClty34q/PcXFNX3jbh/pLX9lbc+VECABD5Y/u9Hc8PqbkvR+Zr3Ct3AhxRQgm3vxB+uXb/R1P0Df8g17zej/4uJyI5xBA420eop95hn/5dn3nE/Xrd/Iyp1xDZ1f6m/M6v+LUzJ/xsj6zrRwJ8Z/EkCbNC5ewTs0Lf3ivfusuXjjBOnmF0/6VN/NGLxuBjYq/+4n62r9XHxiAIjYq/3BB7/c7ACGWE298s3/sDekDzH8s8T+JAAQ2L4RB4ml7vMdv6mCkCIOgLxTxpX+jNIJmZoWfexO/6g14QuJ/AhsFtx7wPr/NhZW6wCA0q4T48r+NNAJDET/7Rn6Nm3FDAEhgffiL+a/O8fv36Gv/Xj/wFF7sBMdnPj3X0ciFtZ66z9P26INF5bNfnte8UW4U8T9BmtLx40/j8/5CNbiiiI3KrQf64N8DEAzJK1/Dz75xbs+EuSIhrRC/dZd+6XbxQhWxN/L2D/F3vQ4bHTbiRWKTYP4rWKG2OrfzyN96+PtndCUHK/gPJ7VhuOfJ/3Ddw19sub+72r901xP/Zu++u7NNkgA7Z5s7J298cE7T1slrtk9de+tf/+H1j3yJxfYJt4l/N9tR6/65u3/8M99/79zdpXbYSKXr62z+Rz/0jX/wA18nADLbe3zVj7/46731uF5J4vkztgAhCWSS58sgpmENrA72fvmrPzUzxQtjWxHv9bU/9ejXeJNxvVJoWi8f8Sqv/9rv/0m//DWfftcT//rHPuP9r3noo0/c8KDNk9e0cTi8ePa+pz3h0r13llKOXXfTm3/cl5244ZZxvZLEC2AbQAIL7OQFsF372Wu978ff+7TH3ffUx/36N33hn/7kd17z4EfNt49tHD+12t9b7l04+4wnXbrnztLVzeOn3+xjv/iGR73UNKwUwX8O26XrDi6c/bVv+OxL99zezzczGw9gmxcsItbr5SMe8lKv9NKvl07bkvhvZZv/UJk5n/dPf8pdv/YLf/LGb/2qXVdf9XVe6qVf8VGr5XDy9A6XPe5vn/6bv/Tn09RqLbYRV0gCJBD3MxIgiQeQxBUCk3Y/6+6+49xv/+qfv/Fbv2rX1Vd+zRd/hVd77O7F/WE1bu9slBqLjTn3e/Ljb/ubP3tSP+syzX8yQ8BS+Qub5y/UQZb5T9ScZTb7u7vuePuf/qEvf+03frtHvRiX2QYMRZoyP/P3f/0v7rpdtUub/x6aPenpZe/QXcXmqqv+BwMq/4Uk/fnTfvMNX+Kdbzn9yHFaS8F/IYlp7af88nK1O7vmJbo6lwr9pvrNwv3We779D9f3/NWweU150GvNdm4oZaE2IIF5XjnytF9f1tni2IOrxOxYAEBb+56/Hu780yGKbJ4lm4d91w2R5gqhEIBxGgBsSqfhIJ0gnklE1TN+Z1hd8E2v0i9Olah0C3ULcYWZBp993Hjb766Hfati80wmCuefMP3D8vDmV5sdu6lGR+koJ4L7eWL/nvaM313vPm2KKgTmP0k6Z3XjT57yqz/1599SSx+KdPIiq4rdafnup17hA655NXIU4qr/JIIXu5ZZoZk/fAa7SzZ70ryIMvnuv2B3xZs/hpMbFHHdNtfxTGPyt3dz8YjXfCh9Ic2zGPrgcffyWb/Ku7w0r3AzGx1dcO02zzIld17ih/6a33oqQAlsni+J1cjf3sXrPJRFx5PPcdsuNXhBJIbGw0/xmGsB7rjEU84h8aITDMk3/CHPuMjbvjgnFpTghh2eZWj8w71815/x+PtYdKR5oDRjUoKWAOL5mxJgbKT59xNgpgYwJQ+UZmz0hWYeaEqAsWHzfBlKcOcet17ksdcwNh53L+uJeQXzn8EA3HvAd/857/rS3HiMzZ7NnivSHI38/tP5wb/mrj26wDxbmu0Zv/909la87yvwyNN0hRMLTiy4oiVnD/mxv+VXnkQz4tls5pWnnOdzfo0PfCVe+gb6wokFJxY8SzPriSed5Sf+jj+7A5vnMiXA2DAvgLAZG7XSEvGfRSYLG3s89m+ZDUwVmf8xDIi9UeuUuJ85PmOrMxb/GgF9oQ8kXiBTxLzQBQ8kcOMVr9PPvFF+4z/o52/T4cjv38OQCPpgo+PFTvJBj8n3eCQbvXIiBAAoOFr7G/5BFwde63q/36N5XjZR+bAX85/epyfv6duewBe8ooV4ThJOtmd802vwJX+dP/ZU3bfUTzxdhj7YqDzimD/1ZXjzh4iJEP95ipgV+uCFE3RBH8wqWx0vnGBItnskMA+0UTk1pw+uMDQzCySAEMuJnZ7/qyRoPGyHhx/j3iVAiFe/zoTcEC9QlY/3mlcCDEAaYFERAGn6Qg0w/9NUcXKmEFUYgDTAoiKeyaaGsbifwMlNO/q+1+G7nugfeIourPmLc4ypMSmiBhuVGzb86tfxES/BK1wLififQgAsKqcXVHGFoZlZoA5AMCQ7PRIPJOiCWWG7Z9O8cEX0ha0O8a/TFWZBEf/ZjORp6HZ+76HveXHzhtl0lCr8Z7BLV0/d9NBxvdw5c/2ZBz/y4Ny9i+3jtgGBodRusXPimoc+Cljt79384i+/efy0s/EfxShivnWsTWPUig3YabubzUFgwJml62zzAtiAbnjMyy6OnWzjkK0du/66mx778tN6UgTPy0SppeuBfrEBAvMCCScRpettAyCw2/Rq7/Jh1zzk0b/z3V9xz5P/fu++O8/f9pQ2jVJE7frFxvHrbnzEq77ha7zHR1/78Beb1itJPH/Klre85CvNNrfH9cqZx6675YZHv3ROkxDPQ1Ib1jc+5mXe4yt//I9/7Jv/4dd/en24d9vf/UlOU5umKKXU2s03jl9386Ne7Q1f9d0+/PpHvmQbByn4TyMpW/7xD3/jU/7o1/qNzczGi0zSOA4nj1/7mq/4Zn0/n6ZBCv4vsl1K/NWfPvHgYPn6b/qKp689vrE539icA6vl8Nd/9sTf+bW/XC2HWott7me7tdZRWzPmmaRsCbSWNldIZKZtG6clMLYj4q/+9EnDenrtN3q5k6d3SolTp4/xANPY9vcO//rPnvQXf/yEw4NlKcF/ibB+d+Pik/ojWeY/XbNLP7v14rl3/rkf+aDbXuGTX/k1b9o+JgkQXFgeffLv/Op3/NWfUgrmv4FNLXFhd/a027jqqv8NAF1zzTX8VylRDlZ77/kan/Rur/ZxUxsl8aIziH8/J4go7NxUtm+qdSawIBv7d+el26bpyApsFEQV4LSTF8RGYvuGcuJhNSoKrS/l2ceP6z1jovJAEiqAeFHY2XgOAuNGVGbHdOKh3exYgEFOH97Xdp/exiMDKmCelxsqdJs68ZC6OBUKBEbDfl582rS8mDkRBQTm38sgnpedXZ3ffv7Jn/9T73vHxaf2ZZ5uPA/bPD9FcdDWr7z14B962Huf7nfSLRDPRVpOwyqHE/22neKqf70Qq4lHnuYzXp8bd7j1Ip/769x6kXklzYtIkMZQghe7lpe+gVkBMJw75C/u5I5dStAVgLGR5oEkxkYRWzNe6noefpouuGJvzV/dya0XWU2UIITNCyGQqIFES6bkhShif807vCQf+qoU8TOP45v+CAFgXlSCZmy6wotfx0tez6yCMdy7z5/fwT37NNMF5rmFqAVBS6bkBalBCWymJM1/iL4gkWZsPEsRtQBMSUuepSuEsBkTm+cVYjXxkJN8/htx/TZPu8Dn/Bp371OE+Y8ksZ64+Tjf+DZsdjzuPj7mZ+kKL3EdL349fQA087Tz/OWd7K2xqQWb52tKirjpGC9/E6c2EQDLib+6kyecZWpIFGGem8TUkLjlOC93I6c3AdJIHKx50lmecp6DgbFRCwHmOXSFEDZjwzx/El1B0JIp+XcxiBdE5mX+mJuewdQh8/xcWk3H5pX/cpOpPb/4VD7097WaKAJYNV7lGv/UG7krMogXVTNjAswK4gWakjEpoi88F4MKJPtr33XInUdKsOmCW7Z846ZmHZhMQjxQmlUjRBcU8UKMSTM284p4/mxUwJw78pP3tD8SUIIbN3jQNrMOkv9sUzImIWaFF25ImhEvqoC+8FymZDIvXIg++L9MXFz5r87paOTBO37sCYV44dKMifkX9EGI/2lshsT8C/ogxHNJEwVgNbK79lP3NCRTEhDBNXMevM1GhwpuAOJ/limZzAsX0Beey9BoRuJFVEQXvOgMQyNNF9TgP4JBvCBuv/3w9/+TB73jbDqygudDe+fu2Tl1DRL/PlGKM0GZU6l9lIp4NrtNU04jIqJE7XKa7OQ/ju02DtjczwCI51C6XhH8S87f/tT7nvb40s2uffiLHb/uJmfyAmRrbRoBAQLzLxCl9orgfrYl1X42LI/Wh/sX7nza0aWL2IAijl1z07Frb+w3t2rXj+uVJF446dwznnLu1ieqlOsf+ZLHrrnRTl4w27WfZZuGo8Oj3fPn73hqZuY0Kooijl1z4/Hrbu4WG7Xrx/VKEv9p7OzmG3/5s9/3c1/y0aVUEJjnYZvnx3at3Zu/3ns87EEvNo5rKXh+7Jza2Hdz2/wv16Y235g9/NE3X3/j6QjtXjx4wt/demn3IEIRYZsHUKiUEMrM1pL7lRIRYbu1tA0AEVFKAK21TPMAreVs1t384Gtvech1tavYthHnzl668xn3XTi/16YEl1Js8x/EtiSeh6G3/mp28CPb9wEC8zwkDWO5eGm6/gxTQ+I/QpFaJpmb8/m7POal3vAhD+9LecrFC9/+N3/2hLP3Uook2/w7GcS/jk2tG3/8V1u/+Yd0FZurrvqfDdA111zDfxVJLafjG2c++22/5+HXveQwrSXxIjKI/wACY+OEtM0zCUkqSDyTMWAkEC+McZJpDCChIgUIzHOxwbxIhMTzZ2ycdvJMQpICBQjM8ydIbJzYxlwhoSIJAsx/DIN4XpLW4+qrf+ljf+fxP7Ux204nz49tnodQI0+Uje96yLu9+vFHt7YuCp6XtJyGVQ4n+m07xVX/eiXYX/EOL8lHvBrAz/wD3/BHlMDmX0VgSNOSZjAAQlCCEgA2gIR4boKENC1Jg7lCogQhigDMv8xgc0WIF0SQMK980mvxqg9mNfElv82vP5mdOS35VxEY0rSkGQyAENQgghA2z8tgAwgkXpA0V0iI/xhprgjxLDYGQCDxLGmuCHGFhM2zhFhNvM2L8xGvCvATf8fX/AFbPWn+Y0msJ24+zje+DZsdj7uXT/hFhok0zWAARIgSFCEwL5AgTTMtMWAARAmKCCEwz58goSUtsQEQVxQRQUAI83ykuSLEC5EGEEj8uxjE85JphYc9nhf7Gxy8YJdW07F55b/cZGrPLz6VD/t9LSeKANaNV7rGP/VG7osM4l9DAJgXRjyTeV42EggE4tkMBmMQz494JvPCiGcyL4RBQIB4NoOxEf/5xDOZf4H4VzPPTbxIzP9xggDAkLxIxL/M/A8l/mXm+TIIEAjEczAYjI3E/0TiRWKem/hXM/864pnMfwSDeB5GyuEJ173eLz/6o6wC5vnT3rl7dk5dg8R/JNs8kACJZ7GR+I+mKOJfkE5s/iVRa0QBsrVsEy+YJCn410gnNs/BNhFFEYqQxP2caWdmOlMSL4JSO0UA2Vq2iX+JbUkRhVBE4QGc6cx0OlMS/2mcWWezOx73lz/12R+0e/czSu1s8/zY5nlImtr0Ki/7hq/2cm805STEC2Dn1Ma+m9vmfzvhdGuZmYCkUiIiEJjnZtIGJCRxP9s2EpK4n20bQEISz8l2tsy0MQACQlIoQpIkbP4D2ZbEczJUdHcZvn/7not1lGWeH0nDWC5emq4/w9SQ+A8iCds2bSITQ4hSFAUw/xEM4l/BptZy9vyJH/uF2DugFGyuuup/NqDyX8h2ie6+vTt+6I+++uPf7Ou72tkJ4r+SASRUAYlnM2CeTQgQ/zKhQq3iMgMGwDwvCcS/l5BQkXg2AwbAvEAGIaGCEPczYADMfyo7+7r48T/5xt99ws8sZlvp5F/H6zZ9/I2v++onHtumVVFw1X8GibFxepNXuBngaOCv7mI1sd3T+NcxACFKQeJZDBgDIPGCGARF1Ip4NgPGYF5UAol/UYijgUed4THXAjztPI+/l0VHmn8tAxCiFCSexWAD2DxfAol/UYj/cCGel4R4PkI8l2EigiKuWI7cfJy3fXGA3RW/8VRmBZv/bAZMiFoQz2awAcwLY5DoRFcQz2ZjAMwLZBB0QVcQz2bAGADz/IV4UYT4zyMzdlx7F496HIj/VQTi38T8y8wLIQFgbDDPJAABIF4A8yIxLwpxWWLAAAhAIP5LmBeV+Q9grgIwbmAQ4kVj/hcz/2YCAGPzTAZAAAJA4n8o829k/tOZ/2xWqK0ubD30dx/6XlP0xSOI/1KSeGEk/hM4m/mPkePYGAEJEC+Ybbvx7yUJO93Sk3kAARIgiRdNGwcDIAHiXyIJyGw0N0YeQIAESOI/jZ1Ru6NLF3/rW77g/G1P6Tc2ncnzY5vnERHL1dGjHvrSr/hSr5tOIf6fMJK6rnI/2wDm+RAh8TwkSTwXSRIviKTaFRDPyTYA2PxnMwQM5C9tnL9YR1nmv5ptACm6XgAytm3++0i0tvmHf1EuXnLfYwO2bfNvIkkSV131nwmo/Neyc9Fv/vFTfvWX/ub73u4VP3g1LkOA+K9nAPMfxua/mjH/Vsb8V0u3Rb/1u4//mZ/8s2+edQubf5WQ9tv6A6951Q+45tVo6yJx1X8SwdC4YYfHXAPwjF0efx+LSpp/M4PNv5mN+a+Q0Bde6npOLAD+/l7u3mezJ82/mcHm/zBBM7PCK9zEUy5w3z41MDzoBB/yyty4A/B7T+cp54jA/NexMf9GBoz5tzBgzP8yMq2wvcuL/RXdSCvIXPWvIUD8txMgrvr/Q4C46kUn7ieu+p/PCuW47k/8+iM+6NLiuq6trOCqfy1J/PeQxL+TJP5NJPFfzpYis/32t3/xU//0N/uNTWfyAkiyzQNIMYzr687c8lqv/Ba11taaJP4/sc1/ORsw/60C/dri/FP6I1nmv1PaAJj/XjZdt/jTv54/4anuOmwui4hSCv8mmZmZXHXVfyag8t9B0g/90Vddd+yWV3/Umx8NByUKV/1fl86uzJ5x9kk/8Adfsbe8MO82040XWVEsc3zFjVs+6fo3iKj2JMRV/0nS9IWXvJ6tGWn++i7uO2DeYfN/m8TY2Op56RsAzh/xp7dTA3PVCyMxNR55mo94NbrCn93O7ooHn+Bhpzi1AfCEs/zAX2JTApv/LGZq0NHMVf8GFmXikf/A8YtMHTJXXXXVVVdd9d/OhvjTm9/+GSdfrmtLK7jqqv/BjEvt/vZXfvxvfvGHaj/HvBC2eQBJds76jVd9+Tc6feK6YVxJwVX/1yX01t/MDv5ksQ/iKiCT2ax/4lM3f//PACTsUsru7u6bvMmbfPM3f/M0TZIk8SKwbXtjY+OrvuqrvvALv/DMmTPTNHHVVf85gMp/Ods1uv3l7jf/xmcc3zzz4je90nI8DAVX/d9lXKOuxqPv/J3Pe/K9f7s9P95y4kVWpFWOJ8riS2956+vmp1pbFwVX/ScRjMnJBW/1YhSR5o9uowSY/w/SvOT1vNyNAPce8Pf30BVsrnoh0tTgZW7kmi2AN3wkD/SXd/L1f8h9h8wraf6T2JTg2Bzg5ALEVf9arfDIJ/CgW5k6ZK666qqrrrrqv5uRcvX4697wz255m5prJK666n8w27Vf3Pm4v/itb/n8ab0qXW8nLzLb4zS8ysu+4aMf+tLDuJKCq/6vM/TWXXX9ixvnJ2Wg5P89m1lf77h7+9d/v6zWrhUbkNRa29nZOXPmDP8mN9xwwzRNkrjqqv80QOW/Q7rNu4379u748p//8I990695yVtedTUdAUJc9X+RkKSf+tNv+dOn/trmbKflxItM0OwgPv2GN3qFnYdlDkXBVf95DCHWje/9CxYdu0uecB8lMP/32XSF80d87R8geNoFbCSu+hcV8XtP52jk1R/MiQWCMXnGRf70dv7kdnaXbHSk+U9i0xUuLvmK32VWOXdEGsRVLyKZqXDtnTz8CWQgc9VVV1111VX/3YyUw33bj/69h76HVcKjEVdd9T+V7VLr/vl7fv0bP2v3ntv6+aadvFCSbHOZpGFcP/phL/OyL/Ga4zRKwVX/DwQcRfuljfN7dQxH8v+ezayvt9117Od+vV685K7DBoDW2sbGxl//9V9/wid8QmYCkngR2AZqrX/1V3+1s7PTWuOqq/7TAJX/Juk27zbu2n36F//cB3/4G3zxqzzyTca2bjmFClf935LOebfxB0/6hR//s28MhZ38a4R02Ib3Pv1K73fNq5OTuOo/X4jlyE/9PWlKsDPD/H8h+Id7+Ys7AGaVRcdVLwrDbbs87QK/9RTmHUCavRWXVmz2bHSk+U9VxOHAj/8dNrWw1SOuepHIZGHzgBf7a/o1rSJz1VVXXXXVVf+tjOQ2dDu/+YgP3N24oZ+WVnDVVf9T2RY4/bvf+WVP+/PfnW1sOZMXmRRTG8+cvOE1X/HN+9pPbZLEVf/XGYr1GxsXnzJbypH8/5amBF3tH//U7V/7vXpp312Hzf1sz2azW2+99Su/8iv5N9nY2Nja2spMrrrqPw1Q+e+TbvNu88LBvV/+ix/xDuc//K1e7v0X/dZyOAgVSVz1f0K6zeri1rOP//bf+rzVeNTXuZ28yIrioK1eefMhn33TmyJsC3HVf4EQJzYQGFry/8pGx1YPkCbNVS+ieQXYH7i0BiNRguML0qT5z2YIcXIDgaElV70oBBYx8WJ/zbFLTBWZ/w0EIYoIAYSQuOqqq6666v8KCYA/eMi733HiJfppaQVXXfU/mV1m87/82e/9m1/64X6+gc2LTFLm1Hez137ltzxx7Mw4DZK46v+6hJn15/P9P57vYZn/x2xs+p5x3Pj9v9r8o7/QMLmr2Dwn27PZ7Prrr+ffpLWWmVx11X8moPLfKt26OltPq+/4rc99wl1/+a6v+jGPvfEVVtNymgZFCHHV/2Z2lugO1/vf/btfdOfFpy66jXTyIgu0zul03fqim9/iZH88cwjEVf9lWvL/U5o0V/1rpQGqIHgm05L/Si256l/BWLTgkY/nhjtoFZn/JZpZTiwnSgCsJtYNc9VVV1111f8FljQtH3fDG/31jW9SckLiqqv+B7Ozmy9u+7s//Z3v/NJpWNV+5kxeBLYBm9baq77c6z70lseO0yCJq/6vS9wTd9b1ry4uZFiW+f8qTQ26rt5+98Yf/PniiU9111ELNs+P7XEcueqq/6mAyn83O4U2Zju/94SfffI9f/MGL/5Ob/4y733diQetx2U6sY1tC3HV/yrGUoTix/7k6//4yb887xZp8yITShzS59/05i+/8/DMIRBXXXXV/3AGzFX/W7TC9bfzyMdjYRD/8wkwx3te9rSHJAQwNB5zAgEgrrrqqquu+l/MSG11z/EX/+2Hv19TV3Owgquu+h/LLrW/dO+dv/LVn7p7z+3zje3MxotGks00DY99xMu//Eu+ztRGrvp/wFCJfbWf3Ty/V6ewkv+XJCRmNS5cWvzl3y3+7glld9/zGTY2V131vxNQ+Z8h3bYXJy4c3vvDf/zVv/34n3rpB73Gm770e9548mFd6UrUUExtNOaq/0VM381+9/E/+1N/9i219gCYF5nEso3vf+ZV3+30K5KjuOqqq6666j+UC9t7PPZvqSOtIvO/QRFMvOI1fM/r8CyGLqhFXHXVVVdd9b+b5GnVn/qdh73PwezUbFqmgquu+p/LimjT+Pvf99V3/P2fzTe2Mxv/GpnTNadufPVXeJNSSmuTJK76P80gSPzbi4vP6JZhJf/PRABkMrVy4eLibx4/e/rt9fyuS3gxJ5OrrvrfDKj8j9Fy6svMcPfuM+65dNtvPe4nN2bbj7r+pR91w8ue3rrh5R/yOluL43Zy1f8Gxl3tnnj3X3/bb33OlGMtvZ28yITWOb7p8cd+4c1vASQOxFVXXXXVVf8xDOWSLm6+5F/UnT2misz/Kn3lVMdzS6666qqrrvrfy0jk+Wn+e4/+wDtOvGQ/LVPBVVf9z2VQy/ZHP/j1f/Wz39stNjIb/xq2a+1f79Xf7vjO6XEaJHHV/wMd8Vvtzj9crEDJ/ycCmP/N48reQb3vfHfP2ViumCYZ9x1AJldd9b8cUPmfJJ3ArFtgtxz3js7/8VN+9fee8HPzfuOr3+OXj22cGrNJ4qr/+ewS3ePv/LPzB3eX6OzkX8NY0kts3DjvtqfpqCr4tzOIq6666qqr7meQy9n+bL9zrjqQ+d/GhuQ5CHHVVVddddX/YgapPT6veeKxl51hI/7VzFVX/VdxunT14Ox9f/9rPzGul/3Gtt34V+r7+cnj16RT4qr/JyQ9Ps/DhpD5tzH/a239zp+UvX1qtYREKZawueqq/xOAyv88dgJSSBR1tXQb3VaJIkkKSVz1v4GkrsxCBcy/yeQEigTiX0chCYFEcNVVV1111QNIgCoRLshIYP6VJBD/XQSIq6666qqr/i8JhNTJHRMRcoD4VxGSFAHiqqv+swVSRKndbIEE5t/AtlMShMS/lpGQEOKq/y1kVRUkI/61JCQkJCQk/rdx37nvicDmCpurrvq/Aqj8z2annenW2jTl2HIEcdX/eHZOZWw5GQvxb5I2bqNbwbzIDAWNbpMbbpNTXHXVVVdd9Wy2K21yjpl9o6XFv9rU3Jq56qqrrrrqqv8gSXbylDm1VqfRbQTxryGRbWrTCOKqq/6T2Qm0acxM/h0yM7NlNsS/iiAzW2bLZhtx1f8KzXYmLQXmX8UoyCSTlmSC+F/DSABpbGyuuur/IkDXXHMN/+NJOr19YxcdV/2vYSkOVpcuLc/zb2J8PBbXdNsNi381Y5uQuOqqq6666vlJTVosJf5t0g6Jq6666qqrrvoPYgi8Vnc4P4OCfxM7peCqq/4rGJSt7Z+7exrWkvi30LHtE1Lwb2VbElf97yHY07QO829mI/G/U9ndk81VV/0fBeiaa67hf4OWE1f9r2IIKVT4t0rcnPybCEDGXHXVVVdd9fwIYZl/I4G56qqrrrrqqv9ggsgGBvFvIDBXXfVfxUgRBYl/q8wE828nMFf9rxJIYP5fiuCqq/7vAir/S5ToxFX/yxjz7xCoqHDVVVddddV/EnHVVVddddVV/9O4dFx11f8iNv8OEcFV//+Yq6666v8goPK/hs1V/++Yq6666qqrrrrqqquuuur/E5urrrrqqquuuuqq/22A4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq676twKCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuurfCgiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqn8rILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqr/q2AfwSvT3+GIzV6kQAAAABJRU5ErkJggg==","type":"image/png","originalSize":107916,"dimensions":{"originalWidth":2500,"originalHeight":474,"displayWidth":2000,"displayHeight":379}}},"sourceToolAssistantUUID":"49e963b3-1903-476d-9af8-f37c53c7dd52","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6210b4ba-6077-4ff2-aaa7-f1e5bd0a852b","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":"[Image: original 2500x474, displayed at 2000x379. Multiply coordinates by 1.25 to map to original image.]"},"isMeta":true,"uuid":"b1399eeb-1ee4-426e-afc4-00456d6223e8","timestamp":"2026-07-28T04:54:28.392Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b1399eeb-1ee4-426e-afc4-00456d6223e8","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrm5Mu464be3j528uh4","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The font rendering is working correctly now with icons displaying at single-cell width and proper cursor positioning. The remaining issue is that certain Powerline Extra characters (E0C6/E0C7 half-circle diamonds) are showing as tofu because Victor Mono NF doesn't include them, but this isn't a regression since it appeared in the reference image too.\n\nNow I need to commit the website changes across the font file, CSS, theme export script, and screenshot tool, then verify the documentation code blocks still render properly with the monospace font variant.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1141,"cache_read_input_tokens":292698,"output_tokens":731,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1141,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":731,"cache_read_input_tokens":292698,"cache_creation_input_tokens":1141,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1141},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrktfiFszFQvmbRUWKp","type":"assistant","uuid":"3bcc79ca-7512-4e54-a382-1ab81935af19","timestamp":"2026-07-28T04:54:44.144Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3bcc79ca-7512-4e54-a382-1ab81935af19","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrm5Mu464be3j528uh4","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01U7eTuo3R6C5zTgNipmbB3Z","name":"Bash","input":{"command":"cd /d/oh-my-posh && git status --short && grep -n '\"lint\"' website/package.json","description":"Check status and website lint script"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1141,"cache_read_input_tokens":292698,"output_tokens":731,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1141,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":731,"cache_read_input_tokens":292698,"cache_creation_input_tokens":1141,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1141},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrktfiFszFQvmbRUWKp","type":"assistant","uuid":"e948ee7c-5b14-4af5-bef3-9091faf139e9","timestamp":"2026-07-28T04:54:44.173Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e948ee7c-5b14-4af5-bef3-9091faf139e9","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01U7eTuo3R6C5zTgNipmbB3Z","type":"tool_result","content":" M tools/svg-png-compare/shot.mjs\n M website/export_themes.mjs\n M website/src/css/custom.css\n M website/static/fonts/VictorMono.ttf","is_error":false}]},"uuid":"49dc1c35-7bc6-4de6-86ca-671b155a4992","timestamp":"2026-07-28T04:54:46.892Z","toolUseResult":{"stdout":" M tools/svg-png-compare/shot.mjs\n M website/export_themes.mjs\n M website/src/css/custom.css\n M website/static/fonts/VictorMono.ttf","stderr":"","interrupted":false,"isImage":false,"returnCodeInterpretation":"No matches found","noOutputExpected":false},"sourceToolAssistantUUID":"e948ee7c-5b14-4af5-bef3-9091faf139e9","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"49dc1c35-7bc6-4de6-86ca-671b155a4992","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrnJYvtnyXKSBsvCoNA","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Giv37PnQjggwTN2N2cE2Wr","name":"Bash","input":{"command":"git add website/static/fonts/VictorMono.ttf website/src/css/custom.css website/export_themes.mjs tools/svg-png-compare/shot.mjs && git commit -q -F - <<'EOF'\nfix(website): serve the Mono patched Victor Mono\n\nThe gallery renders every theme in the font the site serves, and\nstatic/fonts/VictorMono.ttf was the plain Nerd Font patch. Plain\nvariants leave an icon's ink at its natural width while still advancing\none cell: U+F07B (folder) inks 1.693 cells, U+F00C (check) 1.483,\nU+F120 (terminal) 1.903. That ink ran over the space each segment\ntemplate writes after its icon, so every gallery render showed its\nsegments jammed together — the same defect the exporter's own default\nfont stack just fixed by preferring the Mono variants.\n\nVictorMono NFM from the same Nerd Fonts 3.4.0 release is a drop-in:\nidentical unitsPerEm, identical 600-unit cell, identical hhea line\nheight, and the same 11,658 codepoints, so export_themes.mjs' own\nCELL_WIDTH/LINE_HEIGHT stay correct and no glyph is lost. Only the icon\nink changes, to exactly one cell.\n\nRegenerate the gallery with `npm --prefix website run themes`;\ngenerated/themes.json is gitignored and rebuilt on every build.\nEOF\ngit log --oneline -1","description":"Commit website font swap"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":801,"cache_read_input_tokens":293839,"output_tokens":559,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":801,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":559,"cache_read_input_tokens":293839,"cache_creation_input_tokens":801,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":801},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrnFd4SswByvz4igdXX","type":"assistant","uuid":"0933ddb3-374b-4cf3-88ff-f66dba00918c","timestamp":"2026-07-28T04:54:56.287Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0933ddb3-374b-4cf3-88ff-f66dba00918c","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Giv37PnQjggwTN2N2cE2Wr","type":"tool_result","content":"fatal: pathspec 'website/static/fonts/VictorMono.ttf' did not match any files\n86de20dd fix(svg): resolve the short hex colours a theme can write","is_error":false}]},"uuid":"a2e4ce09-a3a9-40f5-9f3c-4bd865dc4040","timestamp":"2026-07-28T04:54:59.130Z","toolUseResult":{"stdout":"fatal: pathspec 'website/static/fonts/VictorMono.ttf' did not match any files\n86de20dd fix(svg): resolve the short hex colours a theme can write","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"0933ddb3-374b-4cf3-88ff-f66dba00918c","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a2e4ce09-a3a9-40f5-9f3c-4bd865dc4040","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTroDox9yJ23RKnJ2pVz","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm realizing there's a working directory issue — `git status --short` showed files relative to the repo root, but I need to check what the actual shell cwd is. The previous command had a `cd /d/oh-my-posh` at the start, but that only affects that command's context. Since this call doesn't have a cd, I should be in `/d/oh-my-posh`, so I'll use absolute paths to be safe.","signature":"CAIS1wYKhwEIEBgCKkAGbPNaVPFwWD7QGDenOVvhHCVQwQBkZ9ZqjlIQjYk+fvoh7hXT2S7AYcZ7OQqJW2Pf/mzENwhw8zzOxKKovk+gMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDJRSkeGlBMCMLE0TMhoMKmLVrGZ9ZdA34T39IjD7rbre+l9Afi6OSXwc70hifXtFbnQrK4N16dS4EgRUTAGxb9cWsKojVkTlJRedk1wq/AQBDTwh1Axwdq9T4L3a+ZYhHjsonKIuMPJcnHC77cx0Yw5OPZ2Qc4ifrYM8b1ThsvNSV8UHeBHqwWJ1YRtkRkmUFSX84tBPcORvuWSRxfFW9TiquRbTNvvLWMVlV/B75PSagta7FbUlrnb0terdYNeH/DfYHNxl4qFWT4BcDcZEGQuymw8NBDE6/hgsirxO5PGgLcp5iM/YKyp2hpIzz7K5kJmIbdKTPsm5ov3oFhjmdNAKiPCIqEJW6z2DZ2CiK/SPBSwDAIK5RASWkVgKD9K9PoBBobf3FxRrZ5zTIkt08MfpRlEy+2xvG0V0R86bULxpAQTPkAKC0FRCDpKW8XW2GhmdMcCECbVYl0qVxVJ/TySIKAgjqqpRxGCnNGPm5ULAsXsCsfzYUKbYhdBgU/UmAFgkod+vMfAIyABDBRy8sCZj8rnkIa3gjOjM3Cfp4SMMsfAzF0prSglGqa4KXduoli2ZbMW2lD7QuPqVgnEIru//2um6u+SbXCV6AWu6YK5t6r2isnbWr4XveWEi0MP5YpAzmahgYIbG/n2RBwo04skfK/8DltOppGoEEkRa+D+SU3wkJtSRyWpR4my+DMZMgyePK18+sgp/cCXO30pCnMVVS3OOPlD+NzYLcJ/drnAXngtxCwtAU7QC9P5/IhVHHzFgKzitEMaELNd6Xf3tm0IWdMIU6b71OgUr1WO3BiSitTonyURZQHXvvuFf3tpDSCEd0Fz4Iq9Q05uboEHLQ5+8mdZzd+aJsyB9zQwS139Zn1JEF+Tbo4BZNwaUfMQgoeTVYW/lAOfs9U+DCboXmBdw7347q4+AhFtCdA0iacpERHdsw68Hejpar18YAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":623,"cache_read_input_tokens":294640,"output_tokens":335,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":623,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":335,"cache_read_input_tokens":294640,"cache_creation_input_tokens":623,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":623},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTroAggCqaEU83zbidHG","type":"assistant","uuid":"beae3e1e-3c6c-4b45-976d-5a62e281ec78","timestamp":"2026-07-28T04:55:06.007Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"beae3e1e-3c6c-4b45-976d-5a62e281ec78","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTroDox9yJ23RKnJ2pVz","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Arne2ZGXm6UTAZ2HQa7Lk2","name":"Bash","input":{"command":"pwd && git status --short","description":"Check working directory"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":623,"cache_read_input_tokens":294640,"output_tokens":335,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":623,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":335,"cache_read_input_tokens":294640,"cache_creation_input_tokens":623,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":623},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTroAggCqaEU83zbidHG","type":"assistant","uuid":"3f1fb394-4f3d-4b9e-82d5-f80ea2ad3f26","timestamp":"2026-07-28T04:55:06.008Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3f1fb394-4f3d-4b9e-82d5-f80ea2ad3f26","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Arne2ZGXm6UTAZ2HQa7Lk2","type":"tool_result","content":"/d/oh-my-posh/tools/svg-png-compare\n M shot.mjs\n M ../../website/export_themes.mjs\n M ../../website/src/css/custom.css\n M ../../website/static/fonts/VictorMono.ttf","is_error":false}]},"uuid":"879b1a3d-2748-48fb-bf84-9f9965d14b22","timestamp":"2026-07-28T04:55:07.140Z","toolUseResult":{"stdout":"/d/oh-my-posh/tools/svg-png-compare\n M shot.mjs\n M ../../website/export_themes.mjs\n M ../../website/src/css/custom.css\n M ../../website/static/fonts/VictorMono.ttf","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"3f1fb394-4f3d-4b9e-82d5-f80ea2ad3f26","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"879b1a3d-2748-48fb-bf84-9f9965d14b22","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrosi17LRzU6zYT9sWq","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01WHFuP3wknNoyHkJDotRbbb","name":"Bash","input":{"command":"cd /d/oh-my-posh && git add website/static/fonts/VictorMono.ttf website/src/css/custom.css website/export_themes.mjs tools/svg-png-compare/shot.mjs && git commit -q -F - <<'EOF'\nfix(website): serve the Mono patched Victor Mono\n\nThe gallery renders every theme in the font the site serves, and\nstatic/fonts/VictorMono.ttf was the plain Nerd Font patch. Plain\nvariants leave an icon's ink at its natural width while still advancing\none cell: U+F07B (folder) inks 1.693 cells, U+F00C (check) 1.483,\nU+F120 (terminal) 1.903. That ink ran over the space each segment\ntemplate writes after its icon, so every gallery render showed its\nsegments jammed together - the same defect the exporter's own default\nfont stack just fixed by preferring the Mono variants.\n\nVictorMono NFM from the same Nerd Fonts 3.4.0 release is a drop-in:\nidentical unitsPerEm, identical 600-unit cell, identical hhea line\nheight, and the same 11,658 codepoints, so export_themes.mjs' own\nCELL_WIDTH/LINE_HEIGHT stay correct and no glyph is lost. Only the icon\nink changes, to exactly one cell.\n\nRegenerate the gallery with `npm --prefix website run themes`;\ngenerated/themes.json is gitignored and rebuilt on every build.\nEOF\ngit log --oneline -2 && git status --short","description":"Commit website font swap"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":425,"cache_read_input_tokens":295263,"output_tokens":578,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":425,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":578,"cache_read_input_tokens":295263,"cache_creation_input_tokens":425,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":425},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrok2tH8nAds2kZdLzF","type":"assistant","uuid":"26ed7027-bcc7-4f5d-9712-926c07f122ae","timestamp":"2026-07-28T04:55:14.743Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"26ed7027-bcc7-4f5d-9712-926c07f122ae","isSidechain":false,"promptId":"39c87b26-0c98-4c65-9c13-46a8e18794e9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01WHFuP3wknNoyHkJDotRbbb","type":"tool_result","content":"97a21e85 fix(website): serve the Mono patched Victor Mono\n86de20dd fix(svg): resolve the short hex colours a theme can write","is_error":false}]},"uuid":"4a421476-b8e0-4c64-a8cd-aa922317c80d","timestamp":"2026-07-28T04:55:36.106Z","toolUseResult":{"stdout":"97a21e85 fix(website): serve the Mono patched Victor Mono\n86de20dd fix(svg): resolve the short hex colours a theme can write","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"26ed7027-bcc7-4f5d-9712-926c07f122ae","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4a421476-b8e0-4c64-a8cd-aa922317c80d","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"ea9c9798-e2d2-48f1-8623-1e418263c3ad","timestamp":"2026-07-28T04:55:36.113Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ea9c9798-e2d2-48f1-8623-1e418263c3ad","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrqvtoDazBAp9xwWqZz","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I need to verify the site renders correctly when the user runs `npm start`. The earlier browser preview timed out with a file:// URL, so I'm considering whether to test with the dev server instead, though I know docusaurus start takes a while to spin up. I'm weighing whether to adjust the npm command or just let the user verify it themselves since building takes several minutes.\n\nActually, I've already validated the SVG markup and font against the exact metrics the gallery uses in a real Chromium environment — the docusaurus page just adds chrome around it. The main remaining risk is the @font-face path resolving correctly, which hasn't changed. One thing worth flagging though: users might have the old VictorMono.ttf cached in their browser, so they'll need a hard refresh to see the update.\n\nLet me do a final check that tests and linting pass, and confirm the manifest regenerated with the right count, then I'll report back.","signature":"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"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":764,"cache_read_input_tokens":295688,"output_tokens":1318,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":764,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":1318,"cache_read_input_tokens":295688,"cache_creation_input_tokens":764,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":764},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrqswwekT4nEH33R47A","type":"assistant","uuid":"0fe81bbe-4b9b-4ba7-a5c9-ffd688a145c7","timestamp":"2026-07-28T04:55:48.677Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0fe81bbe-4b9b-4ba7-a5c9-ffd688a145c7","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTrqvtoDazBAp9xwWqZz","type":"message","role":"assistant","content":[{"type":"text","text":"Regenerated — and found why you saw nothing change.\n\n`website/generated/themes.json` is gitignored and rebuilt by `npm run themes`; it had never been re-run since the fixes. Re-ran it: 124 themes, all now carrying `xml:space=\"preserve\"` on every ``, no `white-space` on the root, and one correctly placed cursor each.\n\nBut regenerating alone wouldn't have fixed the jamming, because the gallery renders in the site's own font and `static/fonts/VictorMono.ttf` was the **plain** Nerd Font patch. Swapped it for `VictorMono NFM` from the same Nerd Fonts 3.4.0 release. Verified it's a drop-in before committing:\n\n| | plain (was) | Mono (now) |\n|---|---|---|\n| unitsPerEm | 1100 | 1100 |\n| cell (`M` advance) | 600 units = 0.5455 em | 600 units = 0.5455 em |\n| hhea line height | 1.4091 em | 1.4091 em |\n| codepoints | 11,658 | 11,658 (zero difference either way) |\n| `F07B` folder ink | 1.693 cells | 1.000 |\n| `F120` terminal ink | 1.903 cells | 1.002 |\n\nSo `export_themes.mjs`'s `CELL_WIDTH`/`LINE_HEIGHT` stay correct and no glyph is lost — only the icon ink changes.\n\nVerified by rasterizing three themes in headless Chromium with the new font at the gallery's exact metrics (`node shot.mjs --website glowsticks cert jandedobbeleer`): folder and check icons now sit in their own cell with the template's padding visible, `cert` has readable text, cursor after the primary prompt.\n\n`97a21e85 fix(website): serve the Mono patched Victor Mono`\n\nTwo notes:\n\n- **Hard-reload when you look.** The file kept its name, so a cached `VictorMono.ttf` will keep serving the old face.\n- `cert`'s speckled blocks between segments are `U+E0C6`/`U+E0C7` — Victor Mono doesn't carry them, and neither did the retired PNG renderer's font. Not a regression, but it's a real gap if you want that theme to look right in the gallery."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":764,"cache_read_input_tokens":295688,"output_tokens":1318,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":764,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":1318,"cache_read_input_tokens":295688,"cache_creation_input_tokens":764,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":764},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTrqswwekT4nEH33R47A","type":"assistant","uuid":"201000bd-a062-4d3d-b391-9c1ab94d0efb","timestamp":"2026-07-28T04:55:56.695Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"201000bd-a062-4d3d-b391-9c1ab94d0efb","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":6259},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T04:56:04.797Z","uuid":"3bac2826-9c39-4a52-a1c2-9ce3eb6adc61","toolUseID":"75018790-0267-4c3d-9121-eecb84f541e7","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3bac2826-9c39-4a52-a1c2-9ce3eb6adc61","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"type":"image","source":{"type":"base64","media_type":"image/png","data":"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"}},{"type":"text","text":"One final fix in the rendering: if you look at the height of the power line glyphs in the image I provided, this is the bubbles line theme. You can see that the background color of the segment itself is higher than the height of the power line glyphs. Can we make it so that the height of the background coloring is the same height as the height of the power line glyphs?"}]},"uuid":"03125389-af21-4fab-bfd5-dfb27772bc56","timestamp":"2026-07-28T05:14:47.631Z","permissionMode":"auto","origin":{"kind":"human"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"03125389-af21-4fab-bfd5-dfb27772bc56","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-982879e9-e488-4392-936b-438c3b59fced","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"06a3e3ee-79b4-4b19-9d5e-635ffd862fb2","timestamp":"2026-07-28T05:14:47.841Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"06a3e3ee-79b4-4b19-9d5e-635ffd862fb2","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtJvx8su6Dd5KLBeCRr","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm looking at the bubblesline theme where the rounded-cap segments have a visual misalignment — the background rectangle extends to the full line height while the powerline glyph itself has a shorter ink height, creating an unwanted step effect. The fix is to make the background rect match the actual rendered ink height of the glyph rather than the full line height, and I need to determine what that ink height is for the E0B6/E0B0 characters.\n\nThe challenge is that the SVG package doesn't have access to font metrics at runtime since it's working with a CSS font stack that could be any font, so I'd need to add configurable options like `RowFill` or `GlyphTop`/`GlyphBottom` ratios that default to measured Hack values but allow overrides similar to how `CellWidth` and `LineHeight` work.\n\nThis fill height should be global across all segments so plain and powerline glyphs render consistently, derived from the powerline glyph's actual ink box. Let me measure the vertical extents for E0B0, E0B6, E0B4, and E0B2 across both Hack and VictorMono to get the actual numbers.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":260131,"cache_read_input_tokens":38010,"output_tokens":2047,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":260131,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2047,"cache_read_input_tokens":38010,"cache_creation_input_tokens":260131,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":260131},"type":"message"}],"speed":"standard"},"diagnostics":{"cache_miss_reason":{"type":"messages_changed","cache_missed_input_tokens":205187}}},"requestId":"req_011CdTtJrLpTxVHrFEG7uTZr","type":"assistant","uuid":"f18ecd0c-9fd9-49da-8c62-1a7b0e7a94ad","timestamp":"2026-07-28T05:15:09.364Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f18ecd0c-9fd9-49da-8c62-1a7b0e7a94ad","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtJvx8su6Dd5KLBeCRr","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01UT54jFnE1mofQaeoPaiGJ9","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\vink.py","content":"\"\"\"Report vertical glyph ink extents (glyf yMin..yMax) in em, plus the font's\nown vertical metrics, for the separator glyphs a powerline theme draws.\"\"\"\nimport struct\nimport sys\n\nsys.path.insert(0, sys.argv[-1])\nfrom advances import cmap_lookup, tables # noqa: E402\n\nGLYPHS = [\n (\"M\", 0x4D), (\"g descender\", 0x67),\n (\"E0B0 triangle\", 0xE0B0), (\"E0B2 triangle\", 0xE0B2),\n (\"E0B4 halfcircle\", 0xE0B4), (\"E0B6 halfcircle\", 0xE0B6),\n (\"E0B8 slant\", 0xE0B8), (\"2588 full block\", 0x2588),\n]\n\nfor path in sys.argv[1:-1]:\n data = open(path, \"rb\").read()\n t = tables(data)\n cmap = cmap_lookup(data, t)\n\n upem = struct.unpack(\">H\", data[t[\"head\"][0] + 18:t[\"head\"][0] + 20])[0]\n asc, desc, gap = struct.unpack(\">hhh\", data[t[\"hhea\"][0] + 4:t[\"hhea\"][0] + 10])\n\n long_loca = struct.unpack(\">h\", data[t[\"head\"][0] + 50:t[\"head\"][0] + 52])[0]\n loca, glyf = t[\"loca\"][0], t[\"glyf\"][0]\n\n def box(gid):\n if long_loca:\n s, e = struct.unpack(\">II\", data[loca + gid * 4:loca + gid * 4 + 8])\n else:\n a, b = struct.unpack(\">HH\", data[loca + gid * 2:loca + gid * 2 + 4])\n s, e = a * 2, b * 2\n\n if s == e:\n return None\n\n _, y_min, _, y_max = struct.unpack(\">hhhh\", data[glyf + s + 2:glyf + s + 10])\n return y_min, y_max\n\n print(path.replace(\"\\\\\", \"/\").split(\"/\")[-1])\n print(f\" unitsPerEm {upem} hhea asc {asc} desc {desc} gap {gap}\")\n print(f\" line box {(asc - desc + gap)/upem:.4f} em x1.2 = {(asc - desc + gap)*1.2/upem:.4f} em\")\n\n for name, cp in GLYPHS:\n gid = cmap.get(cp)\n b = box(gid) if gid is not None else None\n\n if b is None:\n print(f\" {name:18} —\")\n continue\n\n y_min, y_max = b\n print(f\" {name:18} y {y_min:5}..{y_max:5} = {(y_max - y_min)/upem:.4f} em \"\n f\"(top {y_max/upem:+.4f}, bottom {y_min/upem:+.4f} from baseline)\")\n print()\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":260131,"cache_read_input_tokens":38010,"output_tokens":2047,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":260131,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2047,"cache_read_input_tokens":38010,"cache_creation_input_tokens":260131,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":260131},"type":"message"}],"speed":"standard"},"diagnostics":{"cache_miss_reason":{"type":"messages_changed","cache_missed_input_tokens":205187}}},"requestId":"req_011CdTtJrLpTxVHrFEG7uTZr","type":"assistant","uuid":"4862eb1d-0f49-4d28-ba4e-cbeca413682b","timestamp":"2026-07-28T05:15:19.502Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4862eb1d-0f49-4d28-ba4e-cbeca413682b","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01UT54jFnE1mofQaeoPaiGJ9","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\vink.py (file state is current in your context — no need to Read it back)"}]},"uuid":"d6eb4f6d-b469-419a-9ad6-13b418e799d9","timestamp":"2026-07-28T05:15:19.541Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\vink.py","content":"\"\"\"Report vertical glyph ink extents (glyf yMin..yMax) in em, plus the font's\nown vertical metrics, for the separator glyphs a powerline theme draws.\"\"\"\nimport struct\nimport sys\n\nsys.path.insert(0, sys.argv[-1])\nfrom advances import cmap_lookup, tables # noqa: E402\n\nGLYPHS = [\n (\"M\", 0x4D), (\"g descender\", 0x67),\n (\"E0B0 triangle\", 0xE0B0), (\"E0B2 triangle\", 0xE0B2),\n (\"E0B4 halfcircle\", 0xE0B4), (\"E0B6 halfcircle\", 0xE0B6),\n (\"E0B8 slant\", 0xE0B8), (\"2588 full block\", 0x2588),\n]\n\nfor path in sys.argv[1:-1]:\n data = open(path, \"rb\").read()\n t = tables(data)\n cmap = cmap_lookup(data, t)\n\n upem = struct.unpack(\">H\", data[t[\"head\"][0] + 18:t[\"head\"][0] + 20])[0]\n asc, desc, gap = struct.unpack(\">hhh\", data[t[\"hhea\"][0] + 4:t[\"hhea\"][0] + 10])\n\n long_loca = struct.unpack(\">h\", data[t[\"head\"][0] + 50:t[\"head\"][0] + 52])[0]\n loca, glyf = t[\"loca\"][0], t[\"glyf\"][0]\n\n def box(gid):\n if long_loca:\n s, e = struct.unpack(\">II\", data[loca + gid * 4:loca + gid * 4 + 8])\n else:\n a, b = struct.unpack(\">HH\", data[loca + gid * 2:loca + gid * 2 + 4])\n s, e = a * 2, b * 2\n\n if s == e:\n return None\n\n _, y_min, _, y_max = struct.unpack(\">hhhh\", data[glyf + s + 2:glyf + s + 10])\n return y_min, y_max\n\n print(path.replace(\"\\\\\", \"/\").split(\"/\")[-1])\n print(f\" unitsPerEm {upem} hhea asc {asc} desc {desc} gap {gap}\")\n print(f\" line box {(asc - desc + gap)/upem:.4f} em x1.2 = {(asc - desc + gap)*1.2/upem:.4f} em\")\n\n for name, cp in GLYPHS:\n gid = cmap.get(cp)\n b = box(gid) if gid is not None else None\n\n if b is None:\n print(f\" {name:18} —\")\n continue\n\n y_min, y_max = b\n print(f\" {name:18} y {y_min:5}..{y_max:5} = {(y_max - y_min)/upem:.4f} em \"\n f\"(top {y_max/upem:+.4f}, bottom {y_min/upem:+.4f} from baseline)\")\n print()\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"4862eb1d-0f49-4d28-ba4e-cbeca413682b","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d6eb4f6d-b469-419a-9ad6-13b418e799d9","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtMKvoyo1tPcXZTrBVD","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01FtihqXv4grx2b2wHJJo32W","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/vink.py\" \"$TMPDIR/fonts/HackNerdFontMono-Regular.ttf\" /d/oh-my-posh/website/static/fonts/VictorMono.ttf \"$SP\"","description":"Measure vertical ink extents of separator glyphs"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2148,"cache_read_input_tokens":298141,"output_tokens":230,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2148,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":230,"cache_read_input_tokens":298141,"cache_creation_input_tokens":2148,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2148},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtM8cfsKa5cAmrXtvHb","type":"assistant","uuid":"3ad0b545-dc6a-4167-8657-15caa9ae51be","timestamp":"2026-07-28T05:15:26.175Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3ad0b545-dc6a-4167-8657-15caa9ae51be","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01FtihqXv4grx2b2wHJJo32W","type":"tool_result","content":"HackNerdFontMono-Regular.ttf\r\n unitsPerEm 2048 hhea asc 1901 desc -483 gap 0\r\n line box 1.1641 em x1.2 = 1.3969 em\r\n M y 0.. 1493 = 0.7290 em (top +0.7290, bottom +0.0000 from baseline)\r\n g descender y -440.. 1147 = 0.7749 em (top +0.5601, bottom -0.2148 from baseline)\r\n E0B0 triangle y -495.. 1913 = 1.1758 em (top +0.9341, bottom -0.2417 from baseline)\r\n E0B2 triangle y -495.. 1913 = 1.1758 em (top +0.9341, bottom -0.2417 from baseline)\r\n E0B4 halfcircle y -495.. 1913 = 1.1758 em (top +0.9341, bottom -0.2417 from baseline)\r\n E0B6 halfcircle y -495.. 1913 = 1.1758 em (top +0.9341, bottom -0.2417 from baseline)\r\n E0B8 slant y -495.. 1913 = 1.1758 em (top +0.9341, bottom -0.2417 from baseline)\r\n 2588 full block y -512.. 1950 = 1.2021 em (top +0.9521, bottom -0.2500 from baseline)\r\n\r\nVictorMono.ttf\r\n unitsPerEm 1100 hhea asc 1200 desc -350 gap 0\r\n line box 1.4091 em x1.2 = 1.6909 em\r\n M y 0.. 800 = 0.7273 em (top +0.7273, bottom +0.0000 from baseline)\r\n g descender y -196.. 632 = 0.7527 em (top +0.5745, bottom -0.1782 from baseline)\r\n E0B0 triangle y -358.. 1208 = 1.4236 em (top +1.0982, bottom -0.3255 from baseline)\r\n E0B2 triangle y -358.. 1208 = 1.4236 em (top +1.0982, bottom -0.3255 from baseline)\r\n E0B4 halfcircle y -358.. 1208 = 1.4236 em (top +1.0982, bottom -0.3255 from baseline)\r\n E0B6 halfcircle y -359.. 1208 = 1.4245 em (top +1.0982, bottom -0.3264 from baseline)\r\n E0B8 slant y -358.. 1208 = 1.4236 em (top +1.0982, bottom -0.3255 from baseline)\r\n 2588 full block y -475.. 1275 = 1.5909 em (top +1.1591, bottom -0.4318 from baseline)","is_error":false}]},"uuid":"f7acaf7d-3efd-47ad-b156-91184da00ba8","timestamp":"2026-07-28T05:15:29.916Z","toolUseResult":{"stdout":"HackNerdFontMono-Regular.ttf\r\n unitsPerEm 2048 hhea asc 1901 desc -483 gap 0\r\n line box 1.1641 em x1.2 = 1.3969 em\r\n M y 0.. 1493 = 0.7290 em (top +0.7290, bottom +0.0000 from baseline)\r\n g descender y -440.. 1147 = 0.7749 em (top +0.5601, bottom -0.2148 from baseline)\r\n E0B0 triangle y -495.. 1913 = 1.1758 em (top +0.9341, bottom -0.2417 from baseline)\r\n E0B2 triangle y -495.. 1913 = 1.1758 em (top +0.9341, bottom -0.2417 from baseline)\r\n E0B4 halfcircle y -495.. 1913 = 1.1758 em (top +0.9341, bottom -0.2417 from baseline)\r\n E0B6 halfcircle y -495.. 1913 = 1.1758 em (top +0.9341, bottom -0.2417 from baseline)\r\n E0B8 slant y -495.. 1913 = 1.1758 em (top +0.9341, bottom -0.2417 from baseline)\r\n 2588 full block y -512.. 1950 = 1.2021 em (top +0.9521, bottom -0.2500 from baseline)\r\n\r\nVictorMono.ttf\r\n unitsPerEm 1100 hhea asc 1200 desc -350 gap 0\r\n line box 1.4091 em x1.2 = 1.6909 em\r\n M y 0.. 800 = 0.7273 em (top +0.7273, bottom +0.0000 from baseline)\r\n g descender y -196.. 632 = 0.7527 em (top +0.5745, bottom -0.1782 from baseline)\r\n E0B0 triangle y -358.. 1208 = 1.4236 em (top +1.0982, bottom -0.3255 from baseline)\r\n E0B2 triangle y -358.. 1208 = 1.4236 em (top +1.0982, bottom -0.3255 from baseline)\r\n E0B4 halfcircle y -358.. 1208 = 1.4236 em (top +1.0982, bottom -0.3255 from baseline)\r\n E0B6 halfcircle y -359.. 1208 = 1.4245 em (top +1.0982, bottom -0.3264 from baseline)\r\n E0B8 slant y -358.. 1208 = 1.4236 em (top +1.0982, bottom -0.3255 from baseline)\r\n 2588 full block y -475.. 1275 = 1.5909 em (top +1.1591, bottom -0.4318 from baseline)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"3ad0b545-dc6a-4167-8657-15caa9ae51be","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f7acaf7d-3efd-47ad-b156-91184da00ba8","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtMwRzdpniiV9WgAFuH","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I've found the measurements for the Victor Mono powerline glyph and how it aligns with the current line height setup. The glyph is about 1.42 em tall, and I'm calculating its position relative to the baseline to ensure proper vertical alignment within the rect that spans 1.69 em.\n\nThe rect is oversized by about 18.8% compared to the glyph itself, which explains the visual overhang I'm seeing. To fix this, I need to draw the rect using the glyph's actual ink boundaries instead of the full row height. This means adding font-specific options for the fill box dimensions—either two separate parameters for top and bottom offsets, or a combination of height plus offset. I'm leaning toward a simpler API with `FillHeight` and one positioning parameter, though I need to account for the asymmetry of the glyph box around the baseline.\n\nActually, I'm reconsidering whether I can derive the fill box from the existing `LineHeight` parameter instead of adding more flags. Looking at the ratios between glyph ink height and the line box height across different fonts, they're remarkably consistent—both Victor Mono and Hack hover around 1.01. This suggests the fill box might scale predictably with line height, which could eliminate the need for extra configuration.\n\nThe challenge is that `LineHeight` as currently stored includes a 1.2× multiplier from the old renderer, and the ascender-to-descender ratio varies slightly between fonts (about 3% difference), which translates to roughly 0.6 pixels at 16px—small but noticeable. Rather than guess at these proportions, the most honest approach is to ask the user explicitly.\n\nI'm thinking about whether to add `FillAscent` and `FillDescent` as separate options with command-line flags, defaulting to Hack's measured values, following the same pattern already established for `CellWidth` and `LineHeight`. But I should also consider if there's a cleaner way to express this—maybe a single value would work better. So the rect height should match the glyph height exactly — that's what the user wants. This means rows will have shorter visual fills, but since `LineHeight` still controls the spacing between rows, they won't overlap or look stepped anymore. The canvas height stays the same because it's based on `LineHeight` times the number of rows. I should also note that the glyph ink box is slightly taller than the hhea box due to overshoot, so using the glyph box ensures the fill aligns perfectly with the caps, which is exactly what's needed.\n\nNow I'm implementing this by adding `FillAscent` and `FillDescent` fields to control the rect bounds vertically, with defaults derived from the actual glyph metrics of the powerline character. When encoding each row, I calculate the fill position relative to the baseline and write the rect with the appropriate height.\n\nI've also exposed these as CLI flags and website configuration options. Checking the codebase, only the rect writing in `encodeRow` uses these values, and the existing tests already validate the rect positioning — with the test setup, the rect should appear at the baseline minus the ascent value.\n\nTo keep the test assertions unchanged, I'll set explicit fill values in the test options so the math works out cleanly: ascent of 15 and descent of 5 means the rect spans the full row height as before. Now I need to verify what the current test assertions expect.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1178,"cache_read_input_tokens":300289,"output_tokens":3516,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1178,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":3516,"cache_read_input_tokens":300289,"cache_creation_input_tokens":1178,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1178},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtMswQDWy4LYF97iGgU","type":"assistant","uuid":"e47e32d5-b3d5-424f-b7ae-5bb232594480","timestamp":"2026-07-28T05:16:09.887Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e47e32d5-b3d5-424f-b7ae-5bb232594480","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtMwRzdpniiV9WgAFuH","type":"message","role":"assistant","content":[{"type":"text","text":"Measured the glyph boxes — the rect is bounded by `LineHeight`, the caps by the glyph's own ink:\n\n| | rect (LineHeight) | `E0B0`/`E0B6` ink |\n|---|---|---|\n| Hack NFM | 1.3969 em | 1.1758 em (top +0.9341, bottom −0.2417) |\n| Victor Mono NFM | 1.6909 em | 1.4236 em (top +1.0982, bottom −0.3255) |\n\n19% taller in both, and asymmetric — which is why it overhangs more above than below. Same class of font-specific metric as `CellWidth`/`LineHeight`, so it belongs in options rather than a guessed constant:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1178,"cache_read_input_tokens":300289,"output_tokens":3516,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1178,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":3516,"cache_read_input_tokens":300289,"cache_creation_input_tokens":1178,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1178},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtMswQDWy4LYF97iGgU","type":"assistant","uuid":"794d4601-cf0e-4197-82f8-2f1a580e0fda","timestamp":"2026-07-28T05:16:11.202Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"794d4601-cf0e-4197-82f8-2f1a580e0fda","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtMwRzdpniiV9WgAFuH","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01DTutTDt74biSCPVBRjNgHJ","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\svg\\svg.go","old_string":"\tLineHeight float64\n\t// Padding is the gap between the window's rounded edge and the content","new_string":"\tLineHeight float64\n\t// FillAscent/FillDescent bound a segment's background rect vertically,\n\t// as distances above and below the text baseline in the same absolute\n\t// unit as CellWidth/LineHeight. Together they are the box a powerline\n\t// separator glyph actually inks, which is not the row box: a row is\n\t// LineHeight tall, but U+E0B0 and the rounded U+E0B4/E0B6 caps ink only\n\t// about 84% of that, and asymmetrically about the baseline. Filling the\n\t// whole row instead left every segment's background standing taller than\n\t// the caps that are supposed to close it, so a rounded theme rendered as\n\t// a tall block with short caps stuck on its ends.\n\t//\n\t// Zero falls back to Hack Nerd Font's own U+E0B0 ink box (see\n\t// defaultFillAscent/defaultFillDescent). Like CellWidth and LineHeight\n\t// these are font-specific — Victor Mono's are 1.0982/0.3255 em — so a\n\t// caller rendering in a different font should set them explicitly.\n\tFillAscent float64\n\tFillDescent float64\n\t// Padding is the gap between the window's rounded edge and the content"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1178,"cache_read_input_tokens":300289,"output_tokens":3516,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1178,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":3516,"cache_read_input_tokens":300289,"cache_creation_input_tokens":1178,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1178},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtMswQDWy4LYF97iGgU","type":"assistant","uuid":"1c479f2a-2438-402f-8235-c210954d04c9","timestamp":"2026-07-28T05:16:17.523Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1c479f2a-2438-402f-8235-c210954d04c9","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01DTutTDt74biSCPVBRjNgHJ","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\svg\\svg.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"2fc0695e-efae-4cfc-aafc-d115910cc4c5","timestamp":"2026-07-28T05:16:17.673Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\svg\\svg.go","oldString":"\tLineHeight float64\n\t// Padding is the gap between the window's rounded edge and the content","newString":"\tLineHeight float64\n\t// FillAscent/FillDescent bound a segment's background rect vertically,\n\t// as distances above and below the text baseline in the same absolute\n\t// unit as CellWidth/LineHeight. Together they are the box a powerline\n\t// separator glyph actually inks, which is not the row box: a row is\n\t// LineHeight tall, but U+E0B0 and the rounded U+E0B4/E0B6 caps ink only\n\t// about 84% of that, and asymmetrically about the baseline. Filling the\n\t// whole row instead left every segment's background standing taller than\n\t// the caps that are supposed to close it, so a rounded theme rendered as\n\t// a tall block with short caps stuck on its ends.\n\t//\n\t// Zero falls back to Hack Nerd Font's own U+E0B0 ink box (see\n\t// defaultFillAscent/defaultFillDescent). Like CellWidth and LineHeight\n\t// these are font-specific — Victor Mono's are 1.0982/0.3255 em — so a\n\t// caller rendering in a different font should set them explicitly.\n\tFillAscent float64\n\tFillDescent float64\n\t// Padding is the gap between the window's rounded edge and the content","originalFile":null,"structuredPatch":[{"oldStart":65,"oldLines":6,"newStart":65,"newLines":22,"lines":[" // is ~1.691em — and a caller rendering in a different font should set"," // it explicitly."," LineHeight float64","+ // FillAscent/FillDescent bound a segment's background rect vertically,","+ // as distances above and below the text baseline in the same absolute","+ // unit as CellWidth/LineHeight. Together they are the box a powerline","+ // separator glyph actually inks, which is not the row box: a row is","+ // LineHeight tall, but U+E0B0 and the rounded U+E0B4/E0B6 caps ink only","+ // about 84% of that, and asymmetrically about the baseline. Filling the","+ // whole row instead left every segment's background standing taller than","+ // the caps that are supposed to close it, so a rounded theme rendered as","+ // a tall block with short caps stuck on its ends.","+ //","+ // Zero falls back to Hack Nerd Font's own U+E0B0 ink box (see","+ // defaultFillAscent/defaultFillDescent). Like CellWidth and LineHeight","+ // these are font-specific — Victor Mono's are 1.0982/0.3255 em — so a","+ // caller rendering in a different font should set them explicitly.","+ FillAscent float64","+ FillDescent float64"," // Padding is the gap between the window's rounded edge and the content"," // grid on all four sides (the title bar reserves additional space of"," // its own above the top padding — see windowGeometry). It defaults to"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"1c479f2a-2438-402f-8235-c210954d04c9","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2fc0695e-efae-4cfc-aafc-d115910cc4c5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtRUGDsk1djrGpsNuSA","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01A9hyBUpNN3R9drXB93AWzD","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\svg\\svg.go","old_string":"\tdefaultLineHeight = (2384.0 / 2048.0) * 1.2\n)","new_string":"\tdefaultLineHeight = (2384.0 / 2048.0) * 1.2\n\n\t// defaultFillAscent/defaultFillDescent are Hack Nerd Font's own U+E0B0\n\t// ink box, read from its glyf entry: y -495..1913 at unitsPerEm 2048.\n\t// Every powerline separator the bundled themes draw shares that exact\n\t// box — U+E0B0, U+E0B2, U+E0B4, U+E0B6 and U+E0B8 all report the same\n\t// -495..1913 — so one pair covers triangles, rounded caps and slants\n\t// alike rather than needing a per-glyph table.\n\t//\n\t// The box is deliberately a little taller than the font's own hhea line\n\t// box (1.1758 em against 1.1641 em): Nerd Fonts gives these glyphs a\n\t// small overshoot so adjacent segments meet with no seam. Deriving the\n\t// fill from hhea instead would leave a hairline of canvas showing\n\t// through between a segment and its own separator.\n\tdefaultFillAscent = 1913.0 / 2048.0\n\tdefaultFillDescent = 495.0 / 2048.0\n)"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":3568,"cache_read_input_tokens":301467,"output_tokens":556,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":3568,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":556,"cache_read_input_tokens":301467,"cache_creation_input_tokens":3568,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":3568},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtRQevtB7t44YqfFfRk","type":"assistant","uuid":"81c96125-ff9a-419d-9b62-dea56040abe9","timestamp":"2026-07-28T05:16:26.396Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"81c96125-ff9a-419d-9b62-dea56040abe9","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01A9hyBUpNN3R9drXB93AWzD","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\svg\\svg.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"d3700375-f05e-4225-8997-099c74c647ed","timestamp":"2026-07-28T05:16:26.458Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\svg\\svg.go","oldString":"\tdefaultLineHeight = (2384.0 / 2048.0) * 1.2\n)","newString":"\tdefaultLineHeight = (2384.0 / 2048.0) * 1.2\n\n\t// defaultFillAscent/defaultFillDescent are Hack Nerd Font's own U+E0B0\n\t// ink box, read from its glyf entry: y -495..1913 at unitsPerEm 2048.\n\t// Every powerline separator the bundled themes draw shares that exact\n\t// box — U+E0B0, U+E0B2, U+E0B4, U+E0B6 and U+E0B8 all report the same\n\t// -495..1913 — so one pair covers triangles, rounded caps and slants\n\t// alike rather than needing a per-glyph table.\n\t//\n\t// The box is deliberately a little taller than the font's own hhea line\n\t// box (1.1758 em against 1.1641 em): Nerd Fonts gives these glyphs a\n\t// small overshoot so adjacent segments meet with no seam. Deriving the\n\t// fill from hhea instead would leave a hairline of canvas showing\n\t// through between a segment and its own separator.\n\tdefaultFillAscent = 1913.0 / 2048.0\n\tdefaultFillDescent = 495.0 / 2048.0\n)","originalFile":null,"structuredPatch":[{"oldStart":168,"oldLines":6,"newStart":168,"newLines":21,"lines":[" // comment for why a metric derived from the font, not from the old"," // renderer's rounded pixels, is the correct default here too."," defaultLineHeight = (2384.0 / 2048.0) * 1.2","+","+ // defaultFillAscent/defaultFillDescent are Hack Nerd Font's own U+E0B0","+ // ink box, read from its glyf entry: y -495..1913 at unitsPerEm 2048.","+ // Every powerline separator the bundled themes draw shares that exact","+ // box — U+E0B0, U+E0B2, U+E0B4, U+E0B6 and U+E0B8 all report the same","+ // -495..1913 — so one pair covers triangles, rounded caps and slants","+ // alike rather than needing a per-glyph table.","+ //","+ // The box is deliberately a little taller than the font's own hhea line","+ // box (1.1758 em against 1.1641 em): Nerd Fonts gives these glyphs a","+ // small overshoot so adjacent segments meet with no seam. Deriving the","+ // fill from hhea instead would leave a hairline of canvas showing","+ // through between a segment and its own separator.","+ defaultFillAscent = 1913.0 / 2048.0","+ defaultFillDescent = 495.0 / 2048.0"," )"," "," // defaultCanvasBackground is the retired PNG renderer's own fixed fallback"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"81c96125-ff9a-419d-9b62-dea56040abe9","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d3700375-f05e-4225-8997-099c74c647ed","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtS8MRzktihjjwppWeC","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01GXetZFrFRWxi5QEXLJrUEj","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\svg\\svg.go","old_string":"\tif out.LineHeight == 0 {\n\t\tout.LineHeight = out.FontSize * defaultLineHeight\n\t}","new_string":"\tif out.LineHeight == 0 {\n\t\tout.LineHeight = out.FontSize * defaultLineHeight\n\t}\n\n\tif out.FillAscent == 0 {\n\t\tout.FillAscent = out.FontSize * defaultFillAscent\n\t}\n\n\tif out.FillDescent == 0 {\n\t\tout.FillDescent = out.FontSize * defaultFillDescent\n\t}"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":608,"cache_read_input_tokens":305035,"output_tokens":306,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":608,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":306,"cache_read_input_tokens":305035,"cache_creation_input_tokens":608,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":608},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtS3hPUY1N7S9yAerjH","type":"assistant","uuid":"fda874f0-00f4-4d4d-a50e-78c7a2f710bb","timestamp":"2026-07-28T05:16:31.461Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fda874f0-00f4-4d4d-a50e-78c7a2f710bb","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01GXetZFrFRWxi5QEXLJrUEj","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\svg\\svg.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"1f04bfa4-268f-44a1-bdb4-13356c973676","timestamp":"2026-07-28T05:16:31.607Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\svg\\svg.go","oldString":"\tif out.LineHeight == 0 {\n\t\tout.LineHeight = out.FontSize * defaultLineHeight\n\t}","newString":"\tif out.LineHeight == 0 {\n\t\tout.LineHeight = out.FontSize * defaultLineHeight\n\t}\n\n\tif out.FillAscent == 0 {\n\t\tout.FillAscent = out.FontSize * defaultFillAscent\n\t}\n\n\tif out.FillDescent == 0 {\n\t\tout.FillDescent = out.FontSize * defaultFillDescent\n\t}","originalFile":null,"structuredPatch":[{"oldStart":213,"oldLines":6,"newStart":213,"newLines":14,"lines":[" out.LineHeight = out.FontSize * defaultLineHeight"," }"," ","+ if out.FillAscent == 0 {","+ out.FillAscent = out.FontSize * defaultFillAscent","+ }","+","+ if out.FillDescent == 0 {","+ out.FillDescent = out.FontSize * defaultFillDescent","+ }","+"," if out.Padding == 0 {"," out.Padding = out.FontSize"," }"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"fda874f0-00f4-4d4d-a50e-78c7a2f710bb","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1f04bfa4-268f-44a1-bdb4-13356c973676","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtSWM21nB5zUYYba8Kx","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01C6j5nT5N6feBjfkW5knJ6m","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\svg\\svg.go","old_string":"\tbaseline := rowTop + opts.LineHeight*0.75\n\n\tfor i := range runs {\n\t\trun := &runs[i]\n\t\ttextRGB, hasRect, rectRGB := paintRun(run, &state, &opts)\n\n\t\tif run.Cells == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tx := size.contentX + float64(cell)*opts.CellWidth\n\t\trunWidth := float64(run.Cells) * opts.CellWidth\n\n\t\tif hasRect {\n\t\t\twriteRect(b, x, rowTop, runWidth, opts.LineHeight, *rectRGB)\n\t\t}","new_string":"\tbaseline := rowTop + opts.LineHeight*0.75\n\n\t// A segment's background fills the box its own separator glyphs ink, not\n\t// the row box — see Options.FillAscent/FillDescent.\n\tfillTop := baseline - opts.FillAscent\n\tfillHeight := opts.FillAscent + opts.FillDescent\n\n\tfor i := range runs {\n\t\trun := &runs[i]\n\t\ttextRGB, hasRect, rectRGB := paintRun(run, &state, &opts)\n\n\t\tif run.Cells == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tx := size.contentX + float64(cell)*opts.CellWidth\n\t\trunWidth := float64(run.Cells) * opts.CellWidth\n\n\t\tif hasRect {\n\t\t\twriteRect(b, x, fillTop, runWidth, fillHeight, *rectRGB)\n\t\t}"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":358,"cache_read_input_tokens":305643,"output_tokens":606,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":358,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":606,"cache_read_input_tokens":305643,"cache_creation_input_tokens":358,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":358},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtSS4J9ZUW4DyDGGxHt","type":"assistant","uuid":"3a17a354-d65b-4e33-8952-e5f443158d7e","timestamp":"2026-07-28T05:16:39.307Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3a17a354-d65b-4e33-8952-e5f443158d7e","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01C6j5nT5N6feBjfkW5knJ6m","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\svg\\svg.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"237a9692-6b61-41ba-94ff-859273e8217e","timestamp":"2026-07-28T05:16:39.379Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\svg\\svg.go","oldString":"\tbaseline := rowTop + opts.LineHeight*0.75\n\n\tfor i := range runs {\n\t\trun := &runs[i]\n\t\ttextRGB, hasRect, rectRGB := paintRun(run, &state, &opts)\n\n\t\tif run.Cells == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tx := size.contentX + float64(cell)*opts.CellWidth\n\t\trunWidth := float64(run.Cells) * opts.CellWidth\n\n\t\tif hasRect {\n\t\t\twriteRect(b, x, rowTop, runWidth, opts.LineHeight, *rectRGB)\n\t\t}","newString":"\tbaseline := rowTop + opts.LineHeight*0.75\n\n\t// A segment's background fills the box its own separator glyphs ink, not\n\t// the row box — see Options.FillAscent/FillDescent.\n\tfillTop := baseline - opts.FillAscent\n\tfillHeight := opts.FillAscent + opts.FillDescent\n\n\tfor i := range runs {\n\t\trun := &runs[i]\n\t\ttextRGB, hasRect, rectRGB := paintRun(run, &state, &opts)\n\n\t\tif run.Cells == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tx := size.contentX + float64(cell)*opts.CellWidth\n\t\trunWidth := float64(run.Cells) * opts.CellWidth\n\n\t\tif hasRect {\n\t\t\twriteRect(b, x, fillTop, runWidth, fillHeight, *rectRGB)\n\t\t}","originalFile":null,"structuredPatch":[{"oldStart":412,"oldLines":6,"newStart":412,"newLines":11,"lines":[" // background-rect placement (bgY = y - fontLineHeight*0.75)."," baseline := rowTop + opts.LineHeight*0.75"," ","+ // A segment's background fills the box its own separator glyphs ink, not","+ // the row box — see Options.FillAscent/FillDescent.","+ fillTop := baseline - opts.FillAscent","+ fillHeight := opts.FillAscent + opts.FillDescent","+"," for i := range runs {"," run := &runs[i]"," textRGB, hasRect, rectRGB := paintRun(run, &state, &opts)"]},{"oldStart":424,"oldLines":7,"newStart":429,"newLines":7,"lines":[" runWidth := float64(run.Cells) * opts.CellWidth"," "," if hasRect {","- writeRect(b, x, rowTop, runWidth, opts.LineHeight, *rectRGB)","+ writeRect(b, x, fillTop, runWidth, fillHeight, *rectRGB)"," }"," "," if run.Text != \"\" {"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"3a17a354-d65b-4e33-8952-e5f443158d7e","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"237a9692-6b61-41ba-94ff-859273e8217e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtT6VqcHLrVViSDUtzK","type":"message","role":"assistant","content":[{"type":"text","text":"Now the CLI flags and the website's own values:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":658,"cache_read_input_tokens":306001,"output_tokens":352,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":658,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":352,"cache_read_input_tokens":306001,"cache_creation_input_tokens":658,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":658},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtT1UDYLRuDkk48WjwU","type":"assistant","uuid":"9027ebc2-4572-4699-b841-a80452ead5ec","timestamp":"2026-07-28T05:16:42.902Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9027ebc2-4572-4699-b841-a80452ead5ec","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtT6VqcHLrVViSDUtzK","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01EhZgpUVfn5AHbU7RYgWhJA","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\cli\\config_export_svg.go","old_string":"func exportSVG(eng *prompt.Engine, cfg *config.Config, output, fontFamily string, columns int, cellWidth, lineHeight float64) error {\n\trows := eng.CapturedRuns()\n\n\topts := svgOptions(fontFamily, columns, cellWidth, lineHeight)","new_string":"func exportSVG(eng *prompt.Engine, cfg *config.Config, output, fontFamily string, columns int, metrics fontMetrics) error {\n\trows := eng.CapturedRuns()\n\n\topts := svgOptions(fontFamily, columns, metrics)"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":658,"cache_read_input_tokens":306001,"output_tokens":352,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":658,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":352,"cache_read_input_tokens":306001,"cache_creation_input_tokens":658,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":658},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtT1UDYLRuDkk48WjwU","type":"assistant","uuid":"f0ff083c-63f8-411e-a1f1-c27908bc2537","timestamp":"2026-07-28T05:16:45.449Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f0ff083c-63f8-411e-a1f1-c27908bc2537","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01EhZgpUVfn5AHbU7RYgWhJA","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\cli\\config_export_svg.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"db4d9add-90f9-433c-8a01-498fad59ae92","timestamp":"2026-07-28T05:16:45.516Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\cli\\config_export_svg.go","oldString":"func exportSVG(eng *prompt.Engine, cfg *config.Config, output, fontFamily string, columns int, cellWidth, lineHeight float64) error {\n\trows := eng.CapturedRuns()\n\n\topts := svgOptions(fontFamily, columns, cellWidth, lineHeight)","newString":"func exportSVG(eng *prompt.Engine, cfg *config.Config, output, fontFamily string, columns int, metrics fontMetrics) error {\n\trows := eng.CapturedRuns()\n\n\topts := svgOptions(fontFamily, columns, metrics)","originalFile":"package cli\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/color\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/prompt\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/regex\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/svg\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n)\n\n// svgFontSize mirrors svg.Options.FontSize's own default (svg.go's\n// defaultFontSize, unexported): the image command has no --font-size flag\n// of its own, so this is the effective FontSize --cell-width/--line-height's\n// ratio inputs get resolved against (see svgOptions).\nconst svgFontSize = 16.0\n\n// exportSVG renders eng's already-captured Run stream (terminal.CaptureRuns\n// must have been true for the eng.Primary() call that preceded this) to a\n// non-rasterized SVG file. columns is the --terminal-width the prompt was\n// rendered with (see svgOptions). cellWidth/lineHeight are the --cell-width/\n// --line-height flags' raw values (see svgOptions).\nfunc exportSVG(eng *prompt.Engine, cfg *config.Config, output, fontFamily string, columns int, cellWidth, lineHeight float64) error {\n\trows := eng.CapturedRuns()\n\n\topts := svgOptions(fontFamily, columns, cellWidth, lineHeight)\n\n\tif row, run, ok := eng.CursorAnchor(); ok {\n\t\topts.Cursor = &svg.Cursor{Row: row, Run: run}\n\t}\n\n\tdoc, err := svg.Encode(rows, opts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpath := svgOutputPath(cfg.Source, output)\n\n\treturn os.WriteFile(path, []byte(doc), 0o644) //nolint:gosec\n}\n\n// svgOptions resolves the two colors a Run stream can't carry itself — the\n// real terminal background and the resolved accent — from the same\n// terminal.Colors/terminal.BackgroundColor the ANSI writer already uses, so\n// the SVG's \"default\"/\"accent\" colors match what a real terminal would show.\n// fontFamily is the --font-family flag's raw value; an empty string leaves\n// svg.Options.FontFamily unset, so Encode falls back to its own default\n// Nerd Font stack. columns is the --terminal-width flag's value: the prompt\n// engine already renders at this width (see runtime.Flags.TerminalWidth in\n// the image command's Run func), so the exported canvas must use the same\n// value, or right-aligned blocks/rprompts computed for that width would land\n// in a canvas shrink-wrapped (or fixed) to a different one.\n//\n// cellWidth/lineHeight are the --cell-width/--line-height flags' raw values,\n// expressed as a multiple of font-size (e.g. 0.6021, not a pixel count) —\n// the same units the font-metric measurements behind svg.Options'\n// CellWidth/LineHeight defaults are quoted in, and the natural unit for a\n// caller quoting a font's own advance/line-height ratio. svg.Options'\n// fields themselves are absolute (the same unit FontSize is in, not a\n// ratio of it — see their own doc comments), so a nonzero flag value is\n// scaled by svgFontSize here before being stored. Zero leaves the\n// corresponding svg.Options field unset, so Encode falls back to its own\n// Hack-derived default, correct for the bundled font stack but not for a\n// caller (e.g. the website, rendering in Victor Mono) using a different\n// font.\nfunc svgOptions(fontFamily string, columns int, cellWidth, lineHeight float64) svg.Options {\n\tvar opts svg.Options\n\n\topts.FontFamily = fontFamily\n\topts.Columns = columns\n\n\tif cellWidth != 0 {\n\t\topts.CellWidth = cellWidth * svgFontSize\n\t}\n\n\tif lineHeight != 0 {\n\t\topts.LineHeight = lineHeight * svgFontSize\n\t}\n\n\tif accentFg, ok := svg.ParseTrueColorSGR(terminal.Colors.ToAnsi(color.Accent, false)); ok {\n\t\topts.AccentForeground = accentFg\n\t}\n\n\tif accentBg, ok := svg.ParseTrueColorSGR(terminal.Colors.ToAnsi(color.Accent, true)); ok {\n\t\topts.AccentBackground = accentBg\n\t}\n\n\tif bg, ok := svg.ResolveStaticRGB(terminal.BackgroundColor, true, &opts); ok {\n\t\topts.TerminalBackground = bg\n\t}\n\n\treturn opts\n}\n\n// svgOutputPath derives the export path: an explicit --output wins (with its\n// extension swapped to .svg, so -o mytheme.png still produces mytheme.svg),\n// otherwise the config's own basename does, falling back to \"prompt.svg\"\n// when neither yields a usable name.\nfunc svgOutputPath(configPath, output string) string {\n\tconst svgExt = \".svg\"\n\n\tif output != \"\" {\n\t\tpath := cleanOutputPath(output)\n\t\treturn strings.TrimSuffix(path, filepath.Ext(path)) + svgExt\n\t}\n\n\tbase := filepath.Base(configPath)\n\n\tmatch := regex.FindNamedRegexMatch(`(\\.?)(?P.*)\\.(json|yaml|yml|toml|jsonc)`, base)\n\tname := strings.TrimRight(match[\"STR\"], \".omp\")\n\n\tif name == \"\" {\n\t\tname = \"prompt\"\n\t}\n\n\treturn name + svgExt\n}\n","structuredPatch":[{"oldStart":24,"oldLines":10,"newStart":24,"newLines":10,"lines":[" // non-rasterized SVG file. columns is the --terminal-width the prompt was"," // rendered with (see svgOptions). cellWidth/lineHeight are the --cell-width/"," // --line-height flags' raw values (see svgOptions).","-func exportSVG(eng *prompt.Engine, cfg *config.Config, output, fontFamily string, columns int, cellWidth, lineHeight float64) error {","+func exportSVG(eng *prompt.Engine, cfg *config.Config, output, fontFamily string, columns int, metrics fontMetrics) error {"," rows := eng.CapturedRuns()"," ","- opts := svgOptions(fontFamily, columns, cellWidth, lineHeight)","+ opts := svgOptions(fontFamily, columns, metrics)"," "," if row, run, ok := eng.CursorAnchor(); ok {"," opts.Cursor = &svg.Cursor{Row: row, Run: run}"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"f0ff083c-63f8-411e-a1f1-c27908bc2537","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"db4d9add-90f9-433c-8a01-498fad59ae92","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"834ecde9-41c3-4f96-88c6-6d3618c32efc","timestamp":"2026-07-28T05:16:45.533Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"834ecde9-41c3-4f96-88c6-6d3618c32efc","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtTXmsDf87ezrbsprxA","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_019Utk4WmHAPnxoEKhp153yS","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\cli\\config_export_svg.go","old_string":"// cellWidth/lineHeight are the --cell-width/--line-height flags' raw values,\n// expressed as a multiple of font-size (e.g. 0.6021, not a pixel count) —\n// the same units the font-metric measurements behind svg.Options'\n// CellWidth/LineHeight defaults are quoted in, and the natural unit for a\n// caller quoting a font's own advance/line-height ratio. svg.Options'\n// fields themselves are absolute (the same unit FontSize is in, not a\n// ratio of it — see their own doc comments), so a nonzero flag value is\n// scaled by svgFontSize here before being stored. Zero leaves the\n// corresponding svg.Options field unset, so Encode falls back to its own\n// Hack-derived default, correct for the bundled font stack but not for a\n// caller (e.g. the website, rendering in Victor Mono) using a different\n// font.\nfunc svgOptions(fontFamily string, columns int, cellWidth, lineHeight float64) svg.Options {\n\tvar opts svg.Options\n\n\topts.FontFamily = fontFamily\n\topts.Columns = columns\n\n\tif cellWidth != 0 {\n\t\topts.CellWidth = cellWidth * svgFontSize\n\t}\n\n\tif lineHeight != 0 {\n\t\topts.LineHeight = lineHeight * svgFontSize\n\t}","new_string":"// metrics carries the four font-metric flags' raw values, all expressed as a\n// multiple of font-size (e.g. 0.6021, not a pixel count) — the same units the\n// measurements behind svg.Options' own defaults are quoted in, and the\n// natural unit for a caller quoting a font's own ratios. svg.Options' fields\n// themselves are absolute (the same unit FontSize is in, not a ratio of it —\n// see their own doc comments), so a nonzero flag value is scaled by\n// svgFontSize here before being stored. Zero leaves the corresponding\n// svg.Options field unset, so Encode falls back to its own Hack-derived\n// default, correct for the bundled font stack but not for a caller (e.g. the\n// website, rendering in Victor Mono) using a different font.\nfunc svgOptions(fontFamily string, columns int, metrics fontMetrics) svg.Options {\n\tvar opts svg.Options\n\n\topts.FontFamily = fontFamily\n\topts.Columns = columns\n\n\tif metrics.cellWidth != 0 {\n\t\topts.CellWidth = metrics.cellWidth * svgFontSize\n\t}\n\n\tif metrics.lineHeight != 0 {\n\t\topts.LineHeight = metrics.lineHeight * svgFontSize\n\t}\n\n\tif metrics.fillAscent != 0 {\n\t\topts.FillAscent = metrics.fillAscent * svgFontSize\n\t}\n\n\tif metrics.fillDescent != 0 {\n\t\topts.FillDescent = metrics.fillDescent * svgFontSize\n\t}"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":538,"cache_read_input_tokens":306659,"output_tokens":1113,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":538,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":1113,"cache_read_input_tokens":306659,"cache_creation_input_tokens":538,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":538},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtTTwS8PGXgJ4vDrot8","type":"assistant","uuid":"b4ff2b89-b27e-4800-866d-b4c464c1e1e6","timestamp":"2026-07-28T05:16:57.089Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b4ff2b89-b27e-4800-866d-b4c464c1e1e6","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_019Utk4WmHAPnxoEKhp153yS","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\cli\\config_export_svg.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"ce984801-b7e2-485e-8068-4bc0cc735d21","timestamp":"2026-07-28T05:16:57.159Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\cli\\config_export_svg.go","oldString":"// cellWidth/lineHeight are the --cell-width/--line-height flags' raw values,\n// expressed as a multiple of font-size (e.g. 0.6021, not a pixel count) —\n// the same units the font-metric measurements behind svg.Options'\n// CellWidth/LineHeight defaults are quoted in, and the natural unit for a\n// caller quoting a font's own advance/line-height ratio. svg.Options'\n// fields themselves are absolute (the same unit FontSize is in, not a\n// ratio of it — see their own doc comments), so a nonzero flag value is\n// scaled by svgFontSize here before being stored. Zero leaves the\n// corresponding svg.Options field unset, so Encode falls back to its own\n// Hack-derived default, correct for the bundled font stack but not for a\n// caller (e.g. the website, rendering in Victor Mono) using a different\n// font.\nfunc svgOptions(fontFamily string, columns int, cellWidth, lineHeight float64) svg.Options {\n\tvar opts svg.Options\n\n\topts.FontFamily = fontFamily\n\topts.Columns = columns\n\n\tif cellWidth != 0 {\n\t\topts.CellWidth = cellWidth * svgFontSize\n\t}\n\n\tif lineHeight != 0 {\n\t\topts.LineHeight = lineHeight * svgFontSize\n\t}","newString":"// metrics carries the four font-metric flags' raw values, all expressed as a\n// multiple of font-size (e.g. 0.6021, not a pixel count) — the same units the\n// measurements behind svg.Options' own defaults are quoted in, and the\n// natural unit for a caller quoting a font's own ratios. svg.Options' fields\n// themselves are absolute (the same unit FontSize is in, not a ratio of it —\n// see their own doc comments), so a nonzero flag value is scaled by\n// svgFontSize here before being stored. Zero leaves the corresponding\n// svg.Options field unset, so Encode falls back to its own Hack-derived\n// default, correct for the bundled font stack but not for a caller (e.g. the\n// website, rendering in Victor Mono) using a different font.\nfunc svgOptions(fontFamily string, columns int, metrics fontMetrics) svg.Options {\n\tvar opts svg.Options\n\n\topts.FontFamily = fontFamily\n\topts.Columns = columns\n\n\tif metrics.cellWidth != 0 {\n\t\topts.CellWidth = metrics.cellWidth * svgFontSize\n\t}\n\n\tif metrics.lineHeight != 0 {\n\t\topts.LineHeight = metrics.lineHeight * svgFontSize\n\t}\n\n\tif metrics.fillAscent != 0 {\n\t\topts.FillAscent = metrics.fillAscent * svgFontSize\n\t}\n\n\tif metrics.fillDescent != 0 {\n\t\topts.FillDescent = metrics.fillDescent * svgFontSize\n\t}","originalFile":"package cli\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/color\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/prompt\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/regex\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/svg\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n)\n\n// svgFontSize mirrors svg.Options.FontSize's own default (svg.go's\n// defaultFontSize, unexported): the image command has no --font-size flag\n// of its own, so this is the effective FontSize --cell-width/--line-height's\n// ratio inputs get resolved against (see svgOptions).\nconst svgFontSize = 16.0\n\n// exportSVG renders eng's already-captured Run stream (terminal.CaptureRuns\n// must have been true for the eng.Primary() call that preceded this) to a\n// non-rasterized SVG file. columns is the --terminal-width the prompt was\n// rendered with (see svgOptions). cellWidth/lineHeight are the --cell-width/\n// --line-height flags' raw values (see svgOptions).\nfunc exportSVG(eng *prompt.Engine, cfg *config.Config, output, fontFamily string, columns int, metrics fontMetrics) error {\n\trows := eng.CapturedRuns()\n\n\topts := svgOptions(fontFamily, columns, metrics)\n\n\tif row, run, ok := eng.CursorAnchor(); ok {\n\t\topts.Cursor = &svg.Cursor{Row: row, Run: run}\n\t}\n\n\tdoc, err := svg.Encode(rows, opts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpath := svgOutputPath(cfg.Source, output)\n\n\treturn os.WriteFile(path, []byte(doc), 0o644) //nolint:gosec\n}\n\n// svgOptions resolves the two colors a Run stream can't carry itself — the\n// real terminal background and the resolved accent — from the same\n// terminal.Colors/terminal.BackgroundColor the ANSI writer already uses, so\n// the SVG's \"default\"/\"accent\" colors match what a real terminal would show.\n// fontFamily is the --font-family flag's raw value; an empty string leaves\n// svg.Options.FontFamily unset, so Encode falls back to its own default\n// Nerd Font stack. columns is the --terminal-width flag's value: the prompt\n// engine already renders at this width (see runtime.Flags.TerminalWidth in\n// the image command's Run func), so the exported canvas must use the same\n// value, or right-aligned blocks/rprompts computed for that width would land\n// in a canvas shrink-wrapped (or fixed) to a different one.\n//\n// cellWidth/lineHeight are the --cell-width/--line-height flags' raw values,\n// expressed as a multiple of font-size (e.g. 0.6021, not a pixel count) —\n// the same units the font-metric measurements behind svg.Options'\n// CellWidth/LineHeight defaults are quoted in, and the natural unit for a\n// caller quoting a font's own advance/line-height ratio. svg.Options'\n// fields themselves are absolute (the same unit FontSize is in, not a\n// ratio of it — see their own doc comments), so a nonzero flag value is\n// scaled by svgFontSize here before being stored. Zero leaves the\n// corresponding svg.Options field unset, so Encode falls back to its own\n// Hack-derived default, correct for the bundled font stack but not for a\n// caller (e.g. the website, rendering in Victor Mono) using a different\n// font.\nfunc svgOptions(fontFamily string, columns int, cellWidth, lineHeight float64) svg.Options {\n\tvar opts svg.Options\n\n\topts.FontFamily = fontFamily\n\topts.Columns = columns\n\n\tif cellWidth != 0 {\n\t\topts.CellWidth = cellWidth * svgFontSize\n\t}\n\n\tif lineHeight != 0 {\n\t\topts.LineHeight = lineHeight * svgFontSize\n\t}\n\n\tif accentFg, ok := svg.ParseTrueColorSGR(terminal.Colors.ToAnsi(color.Accent, false)); ok {\n\t\topts.AccentForeground = accentFg\n\t}\n\n\tif accentBg, ok := svg.ParseTrueColorSGR(terminal.Colors.ToAnsi(color.Accent, true)); ok {\n\t\topts.AccentBackground = accentBg\n\t}\n\n\tif bg, ok := svg.ResolveStaticRGB(terminal.BackgroundColor, true, &opts); ok {\n\t\topts.TerminalBackground = bg\n\t}\n\n\treturn opts\n}\n\n// svgOutputPath derives the export path: an explicit --output wins (with its\n// extension swapped to .svg, so -o mytheme.png still produces mytheme.svg),\n// otherwise the config's own basename does, falling back to \"prompt.svg\"\n// when neither yields a usable name.\nfunc svgOutputPath(configPath, output string) string {\n\tconst svgExt = \".svg\"\n\n\tif output != \"\" {\n\t\tpath := cleanOutputPath(output)\n\t\treturn strings.TrimSuffix(path, filepath.Ext(path)) + svgExt\n\t}\n\n\tbase := filepath.Base(configPath)\n\n\tmatch := regex.FindNamedRegexMatch(`(\\.?)(?P.*)\\.(json|yaml|yml|toml|jsonc)`, base)\n\tname := strings.TrimRight(match[\"STR\"], \".omp\")\n\n\tif name == \"\" {\n\t\tname = \"prompt\"\n\t}\n\n\treturn name + svgExt\n}\n","structuredPatch":[{"oldStart":55,"oldLines":32,"newStart":55,"newLines":38,"lines":[" // value, or right-aligned blocks/rprompts computed for that width would land"," // in a canvas shrink-wrapped (or fixed) to a different one."," //","-// cellWidth/lineHeight are the --cell-width/--line-height flags' raw values,","-// expressed as a multiple of font-size (e.g. 0.6021, not a pixel count) —","-// the same units the font-metric measurements behind svg.Options'","-// CellWidth/LineHeight defaults are quoted in, and the natural unit for a","-// caller quoting a font's own advance/line-height ratio. svg.Options'","-// fields themselves are absolute (the same unit FontSize is in, not a","-// ratio of it — see their own doc comments), so a nonzero flag value is","-// scaled by svgFontSize here before being stored. Zero leaves the","-// corresponding svg.Options field unset, so Encode falls back to its own","-// Hack-derived default, correct for the bundled font stack but not for a","-// caller (e.g. the website, rendering in Victor Mono) using a different","-// font.","-func svgOptions(fontFamily string, columns int, cellWidth, lineHeight float64) svg.Options {","+// metrics carries the four font-metric flags' raw values, all expressed as a","+// multiple of font-size (e.g. 0.6021, not a pixel count) — the same units the","+// measurements behind svg.Options' own defaults are quoted in, and the","+// natural unit for a caller quoting a font's own ratios. svg.Options' fields","+// themselves are absolute (the same unit FontSize is in, not a ratio of it —","+// see their own doc comments), so a nonzero flag value is scaled by","+// svgFontSize here before being stored. Zero leaves the corresponding","+// svg.Options field unset, so Encode falls back to its own Hack-derived","+// default, correct for the bundled font stack but not for a caller (e.g. the","+// website, rendering in Victor Mono) using a different font.","+func svgOptions(fontFamily string, columns int, metrics fontMetrics) svg.Options {"," var opts svg.Options"," "," opts.FontFamily = fontFamily"," opts.Columns = columns"," ","- if cellWidth != 0 {","- opts.CellWidth = cellWidth * svgFontSize","+ if metrics.cellWidth != 0 {","+ opts.CellWidth = metrics.cellWidth * svgFontSize"," }"," ","- if lineHeight != 0 {","- opts.LineHeight = lineHeight * svgFontSize","+ if metrics.lineHeight != 0 {","+ opts.LineHeight = metrics.lineHeight * svgFontSize"," }"," ","+ if metrics.fillAscent != 0 {","+ opts.FillAscent = metrics.fillAscent * svgFontSize","+ }","+","+ if metrics.fillDescent != 0 {","+ opts.FillDescent = metrics.fillDescent * svgFontSize","+ }","+"," if accentFg, ok := svg.ParseTrueColorSGR(terminal.Colors.ToAnsi(color.Accent, false)); ok {"," opts.AccentForeground = accentFg"," }"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"b4ff2b89-b27e-4800-866d-b4c464c1e1e6","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ce984801-b7e2-485e-8068-4bc0cc735d21","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtURRu1EAcfZWP4njs5","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01FkfGCcgcC3wQGoKNW4airT","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\cli\\config_export_svg.go","old_string":"const svgFontSize = 16.0","new_string":"const svgFontSize = 16.0\n\n// fontMetrics groups the font-shape flags the image command accepts, each a\n// multiple of font-size (see svgOptions). They travel together because they\n// describe one font: mixing a --cell-width from one with a --line-height from\n// another lays the grid out for a font that doesn't exist.\ntype fontMetrics struct {\n\tcellWidth float64\n\tlineHeight float64\n\tfillAscent float64\n\tfillDescent float64\n}"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1168,"cache_read_input_tokens":307197,"output_tokens":310,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1168,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":310,"cache_read_input_tokens":307197,"cache_creation_input_tokens":1168,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1168},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtUKViDZ4bCVeoyFQRt","type":"assistant","uuid":"b06c17db-5d5f-4761-a1d9-b5967313cf37","timestamp":"2026-07-28T05:17:02.947Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b06c17db-5d5f-4761-a1d9-b5967313cf37","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01FkfGCcgcC3wQGoKNW4airT","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\cli\\config_export_svg.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"d0607993-a9e4-48f2-b7c3-efff8ee44a06","timestamp":"2026-07-28T05:17:02.974Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\cli\\config_export_svg.go","oldString":"const svgFontSize = 16.0","newString":"const svgFontSize = 16.0\n\n// fontMetrics groups the font-shape flags the image command accepts, each a\n// multiple of font-size (see svgOptions). They travel together because they\n// describe one font: mixing a --cell-width from one with a --line-height from\n// another lays the grid out for a font that doesn't exist.\ntype fontMetrics struct {\n\tcellWidth float64\n\tlineHeight float64\n\tfillAscent float64\n\tfillDescent float64\n}","originalFile":"package cli\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/color\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/prompt\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/regex\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/svg\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n)\n\n// svgFontSize mirrors svg.Options.FontSize's own default (svg.go's\n// defaultFontSize, unexported): the image command has no --font-size flag\n// of its own, so this is the effective FontSize --cell-width/--line-height's\n// ratio inputs get resolved against (see svgOptions).\nconst svgFontSize = 16.0\n\n// exportSVG renders eng's already-captured Run stream (terminal.CaptureRuns\n// must have been true for the eng.Primary() call that preceded this) to a\n// non-rasterized SVG file. columns is the --terminal-width the prompt was\n// rendered with (see svgOptions). cellWidth/lineHeight are the --cell-width/\n// --line-height flags' raw values (see svgOptions).\nfunc exportSVG(eng *prompt.Engine, cfg *config.Config, output, fontFamily string, columns int, metrics fontMetrics) error {\n\trows := eng.CapturedRuns()\n\n\topts := svgOptions(fontFamily, columns, metrics)\n\n\tif row, run, ok := eng.CursorAnchor(); ok {\n\t\topts.Cursor = &svg.Cursor{Row: row, Run: run}\n\t}\n\n\tdoc, err := svg.Encode(rows, opts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpath := svgOutputPath(cfg.Source, output)\n\n\treturn os.WriteFile(path, []byte(doc), 0o644) //nolint:gosec\n}\n\n// svgOptions resolves the two colors a Run stream can't carry itself — the\n// real terminal background and the resolved accent — from the same\n// terminal.Colors/terminal.BackgroundColor the ANSI writer already uses, so\n// the SVG's \"default\"/\"accent\" colors match what a real terminal would show.\n// fontFamily is the --font-family flag's raw value; an empty string leaves\n// svg.Options.FontFamily unset, so Encode falls back to its own default\n// Nerd Font stack. columns is the --terminal-width flag's value: the prompt\n// engine already renders at this width (see runtime.Flags.TerminalWidth in\n// the image command's Run func), so the exported canvas must use the same\n// value, or right-aligned blocks/rprompts computed for that width would land\n// in a canvas shrink-wrapped (or fixed) to a different one.\n//\n// metrics carries the four font-metric flags' raw values, all expressed as a\n// multiple of font-size (e.g. 0.6021, not a pixel count) — the same units the\n// measurements behind svg.Options' own defaults are quoted in, and the\n// natural unit for a caller quoting a font's own ratios. svg.Options' fields\n// themselves are absolute (the same unit FontSize is in, not a ratio of it —\n// see their own doc comments), so a nonzero flag value is scaled by\n// svgFontSize here before being stored. Zero leaves the corresponding\n// svg.Options field unset, so Encode falls back to its own Hack-derived\n// default, correct for the bundled font stack but not for a caller (e.g. the\n// website, rendering in Victor Mono) using a different font.\nfunc svgOptions(fontFamily string, columns int, metrics fontMetrics) svg.Options {\n\tvar opts svg.Options\n\n\topts.FontFamily = fontFamily\n\topts.Columns = columns\n\n\tif metrics.cellWidth != 0 {\n\t\topts.CellWidth = metrics.cellWidth * svgFontSize\n\t}\n\n\tif metrics.lineHeight != 0 {\n\t\topts.LineHeight = metrics.lineHeight * svgFontSize\n\t}\n\n\tif metrics.fillAscent != 0 {\n\t\topts.FillAscent = metrics.fillAscent * svgFontSize\n\t}\n\n\tif metrics.fillDescent != 0 {\n\t\topts.FillDescent = metrics.fillDescent * svgFontSize\n\t}\n\n\tif accentFg, ok := svg.ParseTrueColorSGR(terminal.Colors.ToAnsi(color.Accent, false)); ok {\n\t\topts.AccentForeground = accentFg\n\t}\n\n\tif accentBg, ok := svg.ParseTrueColorSGR(terminal.Colors.ToAnsi(color.Accent, true)); ok {\n\t\topts.AccentBackground = accentBg\n\t}\n\n\tif bg, ok := svg.ResolveStaticRGB(terminal.BackgroundColor, true, &opts); ok {\n\t\topts.TerminalBackground = bg\n\t}\n\n\treturn opts\n}\n\n// svgOutputPath derives the export path: an explicit --output wins (with its\n// extension swapped to .svg, so -o mytheme.png still produces mytheme.svg),\n// otherwise the config's own basename does, falling back to \"prompt.svg\"\n// when neither yields a usable name.\nfunc svgOutputPath(configPath, output string) string {\n\tconst svgExt = \".svg\"\n\n\tif output != \"\" {\n\t\tpath := cleanOutputPath(output)\n\t\treturn strings.TrimSuffix(path, filepath.Ext(path)) + svgExt\n\t}\n\n\tbase := filepath.Base(configPath)\n\n\tmatch := regex.FindNamedRegexMatch(`(\\.?)(?P.*)\\.(json|yaml|yml|toml|jsonc)`, base)\n\tname := strings.TrimRight(match[\"STR\"], \".omp\")\n\n\tif name == \"\" {\n\t\tname = \"prompt\"\n\t}\n\n\treturn name + svgExt\n}\n","structuredPatch":[{"oldStart":19,"oldLines":6,"newStart":19,"newLines":17,"lines":[" // ratio inputs get resolved against (see svgOptions)."," const svgFontSize = 16.0"," ","+// fontMetrics groups the font-shape flags the image command accepts, each a","+// multiple of font-size (see svgOptions). They travel together because they","+// describe one font: mixing a --cell-width from one with a --line-height from","+// another lays the grid out for a font that doesn't exist.","+type fontMetrics struct {","+ cellWidth float64","+ lineHeight float64","+ fillAscent float64","+ fillDescent float64","+}","+"," // exportSVG renders eng's already-captured Run stream (terminal.CaptureRuns"," // must have been true for the eng.Primary() call that preceded this) to a"," // non-rasterized SVG file. columns is the --terminal-width the prompt was"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"b06c17db-5d5f-4761-a1d9-b5967313cf37","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d0607993-a9e4-48f2-b7c3-efff8ee44a06","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtUpQGTHEE2iLeeN8DP","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01HZv7tEDQZbutx62UCMCaNQ","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\cli\\config_export_image.go","old_string":"\toutputImage string\n\tsvgFontFamily string\n\timageTerminalWidth int\n\tsvgCellWidth float64\n\tsvgLineHeight float64\n)","new_string":"\toutputImage string\n\tsvgFontFamily string\n\timageTerminalWidth int\n\tsvgCellWidth float64\n\tsvgLineHeight float64\n\tsvgFillAscent float64\n\tsvgFillDescent float64\n)"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":366,"cache_read_input_tokens":308365,"output_tokens":275,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":366,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":275,"cache_read_input_tokens":308365,"cache_creation_input_tokens":366,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":366},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtUjsujj9Ee2S3zYtNY","type":"assistant","uuid":"a916f2e1-bc9a-4a96-91ef-0e382f7ce9ca","timestamp":"2026-07-28T05:17:07.439Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a916f2e1-bc9a-4a96-91ef-0e382f7ce9ca","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01HZv7tEDQZbutx62UCMCaNQ","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\cli\\config_export_image.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"8ac8390a-3429-4e2d-b757-d0570f5e2aa8","timestamp":"2026-07-28T05:17:07.489Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\cli\\config_export_image.go","oldString":"\toutputImage string\n\tsvgFontFamily string\n\timageTerminalWidth int\n\tsvgCellWidth float64\n\tsvgLineHeight float64\n)","newString":"\toutputImage string\n\tsvgFontFamily string\n\timageTerminalWidth int\n\tsvgCellWidth float64\n\tsvgLineHeight float64\n\tsvgFillAscent float64\n\tsvgFillDescent float64\n)","originalFile":"package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/prompt\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/shell\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/template\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n\n\t\"github.com/spf13/cobra\"\n)\n\nvar (\n\toutputImage string\n\tsvgFontFamily string\n\timageTerminalWidth int\n\tsvgCellWidth float64\n\tsvgLineHeight float64\n)\n\nvar imageCmd = &cobra.Command{\n\tUse: \"image\",\n\tShort: \"Export your config to an SVG image\",\n\tLong: `Export your config to an SVG image.\n\nThe image renders straight from the prompt's own Run stream, so it stays crisp at any zoom level\nand, unlike a rasterized image, faithfully reproduces every color and style the prompt itself can\nrender.\n\nYou can tweak the output by using additional flags:\n\n- terminal-width: number of columns the image canvas is rendered at; this\n is also the width the prompt is rendered with, so right-aligned blocks\n and rprompts line up with the image the same way they would in a real\n terminal of that width (default 120). Lines that still don't fit either\n collapse their alignment padding or wrap onto the next row\n- font-family: CSS font-family value the svg renders text with; defaults to\n a Nerd Font stack\n- cell-width: horizontal advance of one monospace cell, as a multiple of\n font-size (e.g. 0.6021, not a pixel count); defaults to Hack Nerd Font's\n own advance ratio, matching the default font-family stack. Set this\n explicitly when font-family names a font with a different advance ratio\n- line-height: vertical advance of one row, as a multiple of font-size;\n defaults to Hack Nerd Font's own line height. Set this explicitly\n alongside font-family/cell-width for the same reason\n\nExample usage:\n\n> oh-my-posh config export image --config ~/myconfig.omp.json\n\nExports the config to an image file called myconfig.svg in the current working directory.\n\n> oh-my-posh config export image --config ~/myconfig.omp.json --output ~/mytheme.svg\n\nExports the config to an image file ~/mytheme.svg.`,\n\tArgs: cobra.NoArgs,\n\tRun: func(cmd *cobra.Command, _ []string) {\n\t\tcache.Init(os.Getenv(\"POSH_SHELL\"))\n\n\t\terr := setConfigFlag()\n\t\tif err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t\treturn\n\t\t}\n\n\t\tcfg := config.Load(configFlag)\n\n\t\tflags := &runtime.Flags{\n\t\t\tConfigPath: cfg.Source,\n\t\t\tShell: shell.GENERIC,\n\t\t\tTerminalWidth: imageTerminalWidth,\n\t\t}\n\n\t\tif err := applyDataFile(flags, cmd.Flags().Changed); err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t\treturn\n\t\t}\n\n\t\tenv := &runtime.Terminal{}\n\t\tenv.Init(flags)\n\n\t\ttemplate.Init(env, cfg.Var, cfg.Maps)\n\n\t\tdefer func() {\n\t\t\ttemplate.SaveCache()\n\t\t\tcache.Close()\n\t\t}()\n\n\t\t// set sane defaults for things we don't print\n\t\tcfg.ConsoleTitleTemplate = \"\"\n\t\tcfg.PWD = \"\"\n\t\tcfg.ShellIntegration = false\n\n\t\tterminal.Init(shell.GENERIC)\n\t\tterminal.BackgroundColor = cfg.TerminalBackground.ResolveTemplate()\n\t\tterminal.Colors = cfg.MakeColors(env)\n\t\tterminal.CaptureRuns = true\n\n\t\teng := &prompt.Engine{\n\t\t\tConfig: cfg,\n\t\t\tEnv: env,\n\t\t}\n\n\t\t// Primary renders the prompt and, since CaptureRuns is set above, records\n\t\t// its structured Run stream for exportSVG to read back via CapturedRuns.\n\t\teng.Primary()\n\n\t\tif err := exportSVG(eng, cfg, outputImage, svgFontFamily, imageTerminalWidth, svgCellWidth, svgLineHeight); err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t}\n\t},\n}\n\nfunc init() {\n\timageCmd.Flags().StringVarP(&outputImage, \"output\", \"o\", \"\", \"image file (.svg) to export to\")\n\timageCmd.Flags().StringVar(&svgFontFamily, \"font-family\", \"\", \"CSS font-family for the exported svg\")\n\timageCmd.Flags().StringVar(&dataPath, \"data\", \"\", \"path to a template data file (json/yaml/toml) to render with\")\n\timageCmd.Flags().IntVar(&imageTerminalWidth, \"terminal-width\", 120, \"number of columns to render the prompt and image at\")\n\timageCmd.Flags().Float64Var(&svgCellWidth, \"cell-width\", 0, \"horizontal advance of one cell, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")\n\timageCmd.Flags().Float64Var(&svgLineHeight, \"line-height\", 0, \"vertical advance of one row, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")\n\n\texportCmd.AddCommand(imageCmd)\n}\n\nfunc setConfigFlag() error {\n\tif configFlag != \"\" {\n\t\treturn nil\n\t}\n\n\tconfigPath, OK := cache.Get[string](cache.Session, config.SourceKey)\n\tif !OK {\n\t\treturn fmt.Errorf(\"no config found in session cache, please provide a config using the --config flag\")\n\t}\n\n\tconfigFlag = configPath\n\treturn nil\n}\n","structuredPatch":[{"oldStart":21,"oldLines":6,"newStart":21,"newLines":8,"lines":[" imageTerminalWidth int"," svgCellWidth float64"," svgLineHeight float64","+ svgFillAscent float64","+ svgFillDescent float64"," )"," "," var imageCmd = &cobra.Command{"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"a916f2e1-bc9a-4a96-91ef-0e382f7ce9ca","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8ac8390a-3429-4e2d-b757-d0570f5e2aa8","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtV99tLuqHzVgY3UmXc","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01E78z5wRfLrz6M6RZYAXaoY","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\cli\\config_export_image.go","old_string":"- line-height: vertical advance of one row, as a multiple of font-size;\n defaults to Hack Nerd Font's own line height. Set this explicitly\n alongside font-family/cell-width for the same reason","new_string":"- line-height: vertical advance of one row, as a multiple of font-size;\n defaults to Hack Nerd Font's own line height. Set this explicitly\n alongside font-family/cell-width for the same reason\n- fill-ascent, fill-descent: how far a segment's background reaches above\n and below the text baseline, as multiples of font-size. Together they are\n the box a powerline separator glyph inks, so the background ends exactly\n where the separator does instead of standing taller than it. Both default\n to Hack Nerd Font's own U+E0B0 ink box; set them alongside font-family for\n the same reason as cell-width and line-height"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":330,"cache_read_input_tokens":308731,"output_tokens":419,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":330,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":419,"cache_read_input_tokens":308731,"cache_creation_input_tokens":330,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":330},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtV5mVakgmfjGfVTT51","type":"assistant","uuid":"207a7c5e-6b92-4f2a-bc5f-3e5be62b8153","timestamp":"2026-07-28T05:17:13.726Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"207a7c5e-6b92-4f2a-bc5f-3e5be62b8153","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01E78z5wRfLrz6M6RZYAXaoY","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\cli\\config_export_image.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"fe443f44-9b1c-4ac0-bd56-8a09c5531eb5","timestamp":"2026-07-28T05:17:13.805Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\cli\\config_export_image.go","oldString":"- line-height: vertical advance of one row, as a multiple of font-size;\n defaults to Hack Nerd Font's own line height. Set this explicitly\n alongside font-family/cell-width for the same reason","newString":"- line-height: vertical advance of one row, as a multiple of font-size;\n defaults to Hack Nerd Font's own line height. Set this explicitly\n alongside font-family/cell-width for the same reason\n- fill-ascent, fill-descent: how far a segment's background reaches above\n and below the text baseline, as multiples of font-size. Together they are\n the box a powerline separator glyph inks, so the background ends exactly\n where the separator does instead of standing taller than it. Both default\n to Hack Nerd Font's own U+E0B0 ink box; set them alongside font-family for\n the same reason as cell-width and line-height","originalFile":"package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/prompt\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/shell\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/template\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n\n\t\"github.com/spf13/cobra\"\n)\n\nvar (\n\toutputImage string\n\tsvgFontFamily string\n\timageTerminalWidth int\n\tsvgCellWidth float64\n\tsvgLineHeight float64\n\tsvgFillAscent float64\n\tsvgFillDescent float64\n)\n\nvar imageCmd = &cobra.Command{\n\tUse: \"image\",\n\tShort: \"Export your config to an SVG image\",\n\tLong: `Export your config to an SVG image.\n\nThe image renders straight from the prompt's own Run stream, so it stays crisp at any zoom level\nand, unlike a rasterized image, faithfully reproduces every color and style the prompt itself can\nrender.\n\nYou can tweak the output by using additional flags:\n\n- terminal-width: number of columns the image canvas is rendered at; this\n is also the width the prompt is rendered with, so right-aligned blocks\n and rprompts line up with the image the same way they would in a real\n terminal of that width (default 120). Lines that still don't fit either\n collapse their alignment padding or wrap onto the next row\n- font-family: CSS font-family value the svg renders text with; defaults to\n a Nerd Font stack\n- cell-width: horizontal advance of one monospace cell, as a multiple of\n font-size (e.g. 0.6021, not a pixel count); defaults to Hack Nerd Font's\n own advance ratio, matching the default font-family stack. Set this\n explicitly when font-family names a font with a different advance ratio\n- line-height: vertical advance of one row, as a multiple of font-size;\n defaults to Hack Nerd Font's own line height. Set this explicitly\n alongside font-family/cell-width for the same reason\n\nExample usage:\n\n> oh-my-posh config export image --config ~/myconfig.omp.json\n\nExports the config to an image file called myconfig.svg in the current working directory.\n\n> oh-my-posh config export image --config ~/myconfig.omp.json --output ~/mytheme.svg\n\nExports the config to an image file ~/mytheme.svg.`,\n\tArgs: cobra.NoArgs,\n\tRun: func(cmd *cobra.Command, _ []string) {\n\t\tcache.Init(os.Getenv(\"POSH_SHELL\"))\n\n\t\terr := setConfigFlag()\n\t\tif err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t\treturn\n\t\t}\n\n\t\tcfg := config.Load(configFlag)\n\n\t\tflags := &runtime.Flags{\n\t\t\tConfigPath: cfg.Source,\n\t\t\tShell: shell.GENERIC,\n\t\t\tTerminalWidth: imageTerminalWidth,\n\t\t}\n\n\t\tif err := applyDataFile(flags, cmd.Flags().Changed); err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t\treturn\n\t\t}\n\n\t\tenv := &runtime.Terminal{}\n\t\tenv.Init(flags)\n\n\t\ttemplate.Init(env, cfg.Var, cfg.Maps)\n\n\t\tdefer func() {\n\t\t\ttemplate.SaveCache()\n\t\t\tcache.Close()\n\t\t}()\n\n\t\t// set sane defaults for things we don't print\n\t\tcfg.ConsoleTitleTemplate = \"\"\n\t\tcfg.PWD = \"\"\n\t\tcfg.ShellIntegration = false\n\n\t\tterminal.Init(shell.GENERIC)\n\t\tterminal.BackgroundColor = cfg.TerminalBackground.ResolveTemplate()\n\t\tterminal.Colors = cfg.MakeColors(env)\n\t\tterminal.CaptureRuns = true\n\n\t\teng := &prompt.Engine{\n\t\t\tConfig: cfg,\n\t\t\tEnv: env,\n\t\t}\n\n\t\t// Primary renders the prompt and, since CaptureRuns is set above, records\n\t\t// its structured Run stream for exportSVG to read back via CapturedRuns.\n\t\teng.Primary()\n\n\t\tif err := exportSVG(eng, cfg, outputImage, svgFontFamily, imageTerminalWidth, svgCellWidth, svgLineHeight); err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t}\n\t},\n}\n\nfunc init() {\n\timageCmd.Flags().StringVarP(&outputImage, \"output\", \"o\", \"\", \"image file (.svg) to export to\")\n\timageCmd.Flags().StringVar(&svgFontFamily, \"font-family\", \"\", \"CSS font-family for the exported svg\")\n\timageCmd.Flags().StringVar(&dataPath, \"data\", \"\", \"path to a template data file (json/yaml/toml) to render with\")\n\timageCmd.Flags().IntVar(&imageTerminalWidth, \"terminal-width\", 120, \"number of columns to render the prompt and image at\")\n\timageCmd.Flags().Float64Var(&svgCellWidth, \"cell-width\", 0, \"horizontal advance of one cell, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")\n\timageCmd.Flags().Float64Var(&svgLineHeight, \"line-height\", 0, \"vertical advance of one row, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")\n\n\texportCmd.AddCommand(imageCmd)\n}\n\nfunc setConfigFlag() error {\n\tif configFlag != \"\" {\n\t\treturn nil\n\t}\n\n\tconfigPath, OK := cache.Get[string](cache.Session, config.SourceKey)\n\tif !OK {\n\t\treturn fmt.Errorf(\"no config found in session cache, please provide a config using the --config flag\")\n\t}\n\n\tconfigFlag = configPath\n\treturn nil\n}\n","structuredPatch":[{"oldStart":50,"oldLines":6,"newStart":50,"newLines":12,"lines":[" - line-height: vertical advance of one row, as a multiple of font-size;"," defaults to Hack Nerd Font's own line height. Set this explicitly"," alongside font-family/cell-width for the same reason","+- fill-ascent, fill-descent: how far a segment's background reaches above","+ and below the text baseline, as multiples of font-size. Together they are","+ the box a powerline separator glyph inks, so the background ends exactly","+ where the separator does instead of standing taller than it. Both default","+ to Hack Nerd Font's own U+E0B0 ink box; set them alongside font-family for","+ the same reason as cell-width and line-height"," "," Example usage:"," "]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"207a7c5e-6b92-4f2a-bc5f-3e5be62b8153","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fe443f44-9b1c-4ac0-bd56-8a09c5531eb5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtVfLqL1wDft1XuKhPS","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Bceh81Xtih55tniSn5gJKd","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\cli\\config_export_image.go","old_string":"\t\tif err := exportSVG(eng, cfg, outputImage, svgFontFamily, imageTerminalWidth, svgCellWidth, svgLineHeight); err != nil {","new_string":"\t\tmetrics := fontMetrics{\n\t\t\tcellWidth: svgCellWidth,\n\t\t\tlineHeight: svgLineHeight,\n\t\t\tfillAscent: svgFillAscent,\n\t\t\tfillDescent: svgFillDescent,\n\t\t}\n\n\t\tif err := exportSVG(eng, cfg, outputImage, svgFontFamily, imageTerminalWidth, metrics); err != nil {"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":474,"cache_read_input_tokens":309061,"output_tokens":332,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":474,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":332,"cache_read_input_tokens":309061,"cache_creation_input_tokens":474,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":474},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtVYbHHnz6Bew9ATdGV","type":"assistant","uuid":"225ccb87-4a5c-4a96-a0a6-46734cf12ea7","timestamp":"2026-07-28T05:17:19.740Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"225ccb87-4a5c-4a96-a0a6-46734cf12ea7","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Bceh81Xtih55tniSn5gJKd","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\cli\\config_export_image.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"c8b1915c-32d9-4311-bf76-82efb46b4574","timestamp":"2026-07-28T05:17:19.797Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\cli\\config_export_image.go","oldString":"\t\tif err := exportSVG(eng, cfg, outputImage, svgFontFamily, imageTerminalWidth, svgCellWidth, svgLineHeight); err != nil {","newString":"\t\tmetrics := fontMetrics{\n\t\t\tcellWidth: svgCellWidth,\n\t\t\tlineHeight: svgLineHeight,\n\t\t\tfillAscent: svgFillAscent,\n\t\t\tfillDescent: svgFillDescent,\n\t\t}\n\n\t\tif err := exportSVG(eng, cfg, outputImage, svgFontFamily, imageTerminalWidth, metrics); err != nil {","originalFile":"package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/prompt\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/shell\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/template\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n\n\t\"github.com/spf13/cobra\"\n)\n\nvar (\n\toutputImage string\n\tsvgFontFamily string\n\timageTerminalWidth int\n\tsvgCellWidth float64\n\tsvgLineHeight float64\n\tsvgFillAscent float64\n\tsvgFillDescent float64\n)\n\nvar imageCmd = &cobra.Command{\n\tUse: \"image\",\n\tShort: \"Export your config to an SVG image\",\n\tLong: `Export your config to an SVG image.\n\nThe image renders straight from the prompt's own Run stream, so it stays crisp at any zoom level\nand, unlike a rasterized image, faithfully reproduces every color and style the prompt itself can\nrender.\n\nYou can tweak the output by using additional flags:\n\n- terminal-width: number of columns the image canvas is rendered at; this\n is also the width the prompt is rendered with, so right-aligned blocks\n and rprompts line up with the image the same way they would in a real\n terminal of that width (default 120). Lines that still don't fit either\n collapse their alignment padding or wrap onto the next row\n- font-family: CSS font-family value the svg renders text with; defaults to\n a Nerd Font stack\n- cell-width: horizontal advance of one monospace cell, as a multiple of\n font-size (e.g. 0.6021, not a pixel count); defaults to Hack Nerd Font's\n own advance ratio, matching the default font-family stack. Set this\n explicitly when font-family names a font with a different advance ratio\n- line-height: vertical advance of one row, as a multiple of font-size;\n defaults to Hack Nerd Font's own line height. Set this explicitly\n alongside font-family/cell-width for the same reason\n- fill-ascent, fill-descent: how far a segment's background reaches above\n and below the text baseline, as multiples of font-size. Together they are\n the box a powerline separator glyph inks, so the background ends exactly\n where the separator does instead of standing taller than it. Both default\n to Hack Nerd Font's own U+E0B0 ink box; set them alongside font-family for\n the same reason as cell-width and line-height\n\nExample usage:\n\n> oh-my-posh config export image --config ~/myconfig.omp.json\n\nExports the config to an image file called myconfig.svg in the current working directory.\n\n> oh-my-posh config export image --config ~/myconfig.omp.json --output ~/mytheme.svg\n\nExports the config to an image file ~/mytheme.svg.`,\n\tArgs: cobra.NoArgs,\n\tRun: func(cmd *cobra.Command, _ []string) {\n\t\tcache.Init(os.Getenv(\"POSH_SHELL\"))\n\n\t\terr := setConfigFlag()\n\t\tif err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t\treturn\n\t\t}\n\n\t\tcfg := config.Load(configFlag)\n\n\t\tflags := &runtime.Flags{\n\t\t\tConfigPath: cfg.Source,\n\t\t\tShell: shell.GENERIC,\n\t\t\tTerminalWidth: imageTerminalWidth,\n\t\t}\n\n\t\tif err := applyDataFile(flags, cmd.Flags().Changed); err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t\treturn\n\t\t}\n\n\t\tenv := &runtime.Terminal{}\n\t\tenv.Init(flags)\n\n\t\ttemplate.Init(env, cfg.Var, cfg.Maps)\n\n\t\tdefer func() {\n\t\t\ttemplate.SaveCache()\n\t\t\tcache.Close()\n\t\t}()\n\n\t\t// set sane defaults for things we don't print\n\t\tcfg.ConsoleTitleTemplate = \"\"\n\t\tcfg.PWD = \"\"\n\t\tcfg.ShellIntegration = false\n\n\t\tterminal.Init(shell.GENERIC)\n\t\tterminal.BackgroundColor = cfg.TerminalBackground.ResolveTemplate()\n\t\tterminal.Colors = cfg.MakeColors(env)\n\t\tterminal.CaptureRuns = true\n\n\t\teng := &prompt.Engine{\n\t\t\tConfig: cfg,\n\t\t\tEnv: env,\n\t\t}\n\n\t\t// Primary renders the prompt and, since CaptureRuns is set above, records\n\t\t// its structured Run stream for exportSVG to read back via CapturedRuns.\n\t\teng.Primary()\n\n\t\tif err := exportSVG(eng, cfg, outputImage, svgFontFamily, imageTerminalWidth, svgCellWidth, svgLineHeight); err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t}\n\t},\n}\n\nfunc init() {\n\timageCmd.Flags().StringVarP(&outputImage, \"output\", \"o\", \"\", \"image file (.svg) to export to\")\n\timageCmd.Flags().StringVar(&svgFontFamily, \"font-family\", \"\", \"CSS font-family for the exported svg\")\n\timageCmd.Flags().StringVar(&dataPath, \"data\", \"\", \"path to a template data file (json/yaml/toml) to render with\")\n\timageCmd.Flags().IntVar(&imageTerminalWidth, \"terminal-width\", 120, \"number of columns to render the prompt and image at\")\n\timageCmd.Flags().Float64Var(&svgCellWidth, \"cell-width\", 0, \"horizontal advance of one cell, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")\n\timageCmd.Flags().Float64Var(&svgLineHeight, \"line-height\", 0, \"vertical advance of one row, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")\n\n\texportCmd.AddCommand(imageCmd)\n}\n\nfunc setConfigFlag() error {\n\tif configFlag != \"\" {\n\t\treturn nil\n\t}\n\n\tconfigPath, OK := cache.Get[string](cache.Session, config.SourceKey)\n\tif !OK {\n\t\treturn fmt.Errorf(\"no config found in session cache, please provide a config using the --config flag\")\n\t}\n\n\tconfigFlag = configPath\n\treturn nil\n}\n","structuredPatch":[{"oldStart":120,"oldLines":7,"newStart":120,"newLines":14,"lines":[" // its structured Run stream for exportSVG to read back via CapturedRuns."," eng.Primary()"," ","- if err := exportSVG(eng, cfg, outputImage, svgFontFamily, imageTerminalWidth, svgCellWidth, svgLineHeight); err != nil {","+ metrics := fontMetrics{","+ cellWidth: svgCellWidth,","+ lineHeight: svgLineHeight,","+ fillAscent: svgFillAscent,","+ fillDescent: svgFillDescent,","+ }","+","+ if err := exportSVG(eng, cfg, outputImage, svgFontFamily, imageTerminalWidth, metrics); err != nil {"," exitcode = 666"," fmt.Println(err.Error())"," }"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"225ccb87-4a5c-4a96-a0a6-46734cf12ea7","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c8b1915c-32d9-4311-bf76-82efb46b4574","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtW55MEVUuZpVmhX23C","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Xdkr6Ltt3cFxHJPtp261Q7","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\cli\\config_export_image.go","old_string":"\timageCmd.Flags().Float64Var(&svgLineHeight, \"line-height\", 0, \"vertical advance of one row, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")","new_string":"\timageCmd.Flags().Float64Var(&svgLineHeight, \"line-height\", 0, \"vertical advance of one row, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")\n\timageCmd.Flags().Float64Var(&svgFillAscent, \"fill-ascent\", 0, \"how far a segment background reaches above the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")\n\timageCmd.Flags().Float64Var(&svgFillDescent, \"fill-descent\", 0, \"how far a segment background reaches below the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":387,"cache_read_input_tokens":309535,"output_tokens":468,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":387,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":468,"cache_read_input_tokens":309535,"cache_creation_input_tokens":387,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":387},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtVypqHFwKF5aKYbgWp","type":"assistant","uuid":"7082fde3-fde7-42d8-bb23-3c90c79fecec","timestamp":"2026-07-28T05:17:28.819Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7082fde3-fde7-42d8-bb23-3c90c79fecec","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Xdkr6Ltt3cFxHJPtp261Q7","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\cli\\config_export_image.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"3bee2530-7263-4f62-9697-f16c73d89fbb","timestamp":"2026-07-28T05:17:28.897Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\cli\\config_export_image.go","oldString":"\timageCmd.Flags().Float64Var(&svgLineHeight, \"line-height\", 0, \"vertical advance of one row, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")","newString":"\timageCmd.Flags().Float64Var(&svgLineHeight, \"line-height\", 0, \"vertical advance of one row, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")\n\timageCmd.Flags().Float64Var(&svgFillAscent, \"fill-ascent\", 0, \"how far a segment background reaches above the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")\n\timageCmd.Flags().Float64Var(&svgFillDescent, \"fill-descent\", 0, \"how far a segment background reaches below the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")","originalFile":"package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/prompt\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/shell\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/template\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n\n\t\"github.com/spf13/cobra\"\n)\n\nvar (\n\toutputImage string\n\tsvgFontFamily string\n\timageTerminalWidth int\n\tsvgCellWidth float64\n\tsvgLineHeight float64\n\tsvgFillAscent float64\n\tsvgFillDescent float64\n)\n\nvar imageCmd = &cobra.Command{\n\tUse: \"image\",\n\tShort: \"Export your config to an SVG image\",\n\tLong: `Export your config to an SVG image.\n\nThe image renders straight from the prompt's own Run stream, so it stays crisp at any zoom level\nand, unlike a rasterized image, faithfully reproduces every color and style the prompt itself can\nrender.\n\nYou can tweak the output by using additional flags:\n\n- terminal-width: number of columns the image canvas is rendered at; this\n is also the width the prompt is rendered with, so right-aligned blocks\n and rprompts line up with the image the same way they would in a real\n terminal of that width (default 120). Lines that still don't fit either\n collapse their alignment padding or wrap onto the next row\n- font-family: CSS font-family value the svg renders text with; defaults to\n a Nerd Font stack\n- cell-width: horizontal advance of one monospace cell, as a multiple of\n font-size (e.g. 0.6021, not a pixel count); defaults to Hack Nerd Font's\n own advance ratio, matching the default font-family stack. Set this\n explicitly when font-family names a font with a different advance ratio\n- line-height: vertical advance of one row, as a multiple of font-size;\n defaults to Hack Nerd Font's own line height. Set this explicitly\n alongside font-family/cell-width for the same reason\n- fill-ascent, fill-descent: how far a segment's background reaches above\n and below the text baseline, as multiples of font-size. Together they are\n the box a powerline separator glyph inks, so the background ends exactly\n where the separator does instead of standing taller than it. Both default\n to Hack Nerd Font's own U+E0B0 ink box; set them alongside font-family for\n the same reason as cell-width and line-height\n\nExample usage:\n\n> oh-my-posh config export image --config ~/myconfig.omp.json\n\nExports the config to an image file called myconfig.svg in the current working directory.\n\n> oh-my-posh config export image --config ~/myconfig.omp.json --output ~/mytheme.svg\n\nExports the config to an image file ~/mytheme.svg.`,\n\tArgs: cobra.NoArgs,\n\tRun: func(cmd *cobra.Command, _ []string) {\n\t\tcache.Init(os.Getenv(\"POSH_SHELL\"))\n\n\t\terr := setConfigFlag()\n\t\tif err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t\treturn\n\t\t}\n\n\t\tcfg := config.Load(configFlag)\n\n\t\tflags := &runtime.Flags{\n\t\t\tConfigPath: cfg.Source,\n\t\t\tShell: shell.GENERIC,\n\t\t\tTerminalWidth: imageTerminalWidth,\n\t\t}\n\n\t\tif err := applyDataFile(flags, cmd.Flags().Changed); err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t\treturn\n\t\t}\n\n\t\tenv := &runtime.Terminal{}\n\t\tenv.Init(flags)\n\n\t\ttemplate.Init(env, cfg.Var, cfg.Maps)\n\n\t\tdefer func() {\n\t\t\ttemplate.SaveCache()\n\t\t\tcache.Close()\n\t\t}()\n\n\t\t// set sane defaults for things we don't print\n\t\tcfg.ConsoleTitleTemplate = \"\"\n\t\tcfg.PWD = \"\"\n\t\tcfg.ShellIntegration = false\n\n\t\tterminal.Init(shell.GENERIC)\n\t\tterminal.BackgroundColor = cfg.TerminalBackground.ResolveTemplate()\n\t\tterminal.Colors = cfg.MakeColors(env)\n\t\tterminal.CaptureRuns = true\n\n\t\teng := &prompt.Engine{\n\t\t\tConfig: cfg,\n\t\t\tEnv: env,\n\t\t}\n\n\t\t// Primary renders the prompt and, since CaptureRuns is set above, records\n\t\t// its structured Run stream for exportSVG to read back via CapturedRuns.\n\t\teng.Primary()\n\n\t\tmetrics := fontMetrics{\n\t\t\tcellWidth: svgCellWidth,\n\t\t\tlineHeight: svgLineHeight,\n\t\t\tfillAscent: svgFillAscent,\n\t\t\tfillDescent: svgFillDescent,\n\t\t}\n\n\t\tif err := exportSVG(eng, cfg, outputImage, svgFontFamily, imageTerminalWidth, metrics); err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t}\n\t},\n}\n\nfunc init() {\n\timageCmd.Flags().StringVarP(&outputImage, \"output\", \"o\", \"\", \"image file (.svg) to export to\")\n\timageCmd.Flags().StringVar(&svgFontFamily, \"font-family\", \"\", \"CSS font-family for the exported svg\")\n\timageCmd.Flags().StringVar(&dataPath, \"data\", \"\", \"path to a template data file (json/yaml/toml) to render with\")\n\timageCmd.Flags().IntVar(&imageTerminalWidth, \"terminal-width\", 120, \"number of columns to render the prompt and image at\")\n\timageCmd.Flags().Float64Var(&svgCellWidth, \"cell-width\", 0, \"horizontal advance of one cell, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")\n\timageCmd.Flags().Float64Var(&svgLineHeight, \"line-height\", 0, \"vertical advance of one row, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")\n\n\texportCmd.AddCommand(imageCmd)\n}\n\nfunc setConfigFlag() error {\n\tif configFlag != \"\" {\n\t\treturn nil\n\t}\n\n\tconfigPath, OK := cache.Get[string](cache.Session, config.SourceKey)\n\tif !OK {\n\t\treturn fmt.Errorf(\"no config found in session cache, please provide a config using the --config flag\")\n\t}\n\n\tconfigFlag = configPath\n\treturn nil\n}\n","structuredPatch":[{"oldStart":141,"oldLines":6,"newStart":141,"newLines":8,"lines":[" imageCmd.Flags().IntVar(&imageTerminalWidth, \"terminal-width\", 120, \"number of columns to render the prompt and image at\")"," imageCmd.Flags().Float64Var(&svgCellWidth, \"cell-width\", 0, \"horizontal advance of one cell, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")"," imageCmd.Flags().Float64Var(&svgLineHeight, \"line-height\", 0, \"vertical advance of one row, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")","+ imageCmd.Flags().Float64Var(&svgFillAscent, \"fill-ascent\", 0, \"how far a segment background reaches above the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")","+ imageCmd.Flags().Float64Var(&svgFillDescent, \"fill-descent\", 0, \"how far a segment background reaches below the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")"," "," exportCmd.AddCommand(imageCmd)"," }"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"7082fde3-fde7-42d8-bb23-3c90c79fecec","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3bee2530-7263-4f62-9697-f16c73d89fbb","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtWkwTqbKR6jMc27swj","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01EfHscovK9pz6moHxCaABUh","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && go build ./... 2>&1 | head && go test ./svg/... ./cli/... -count=1 2>&1 | tail -30","description":"Build and test"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":523,"cache_read_input_tokens":309922,"output_tokens":128,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":523,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":128,"cache_read_input_tokens":309922,"cache_creation_input_tokens":523,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":523},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtWejuNWD1cZAAH2U6A","type":"assistant","uuid":"5908873f-690a-4c83-9cd4-ddb27a48d70d","timestamp":"2026-07-28T05:17:32.866Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5908873f-690a-4c83-9cd4-ddb27a48d70d","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01EfHscovK9pz6moHxCaABUh","type":"tool_result","content":"ok \tgithub.com/jandedobbeleer/oh-my-posh/src/svg\t0.281s\nok \tgithub.com/jandedobbeleer/oh-my-posh/src/cli\t5.796s\nok \tgithub.com/jandedobbeleer/oh-my-posh/src/cli/auth\t0.144s\n? \tgithub.com/jandedobbeleer/oh-my-posh/src/cli/font\t[no test files]\n? \tgithub.com/jandedobbeleer/oh-my-posh/src/cli/progress\t[no test files]\nok \tgithub.com/jandedobbeleer/oh-my-posh/src/cli/upgrade\t0.199s","is_error":false}]},"uuid":"43296841-0258-4765-b93b-0faebb535da4","timestamp":"2026-07-28T05:18:01.203Z","toolUseResult":{"stdout":"ok \tgithub.com/jandedobbeleer/oh-my-posh/src/svg\t0.281s\nok \tgithub.com/jandedobbeleer/oh-my-posh/src/cli\t5.796s\nok \tgithub.com/jandedobbeleer/oh-my-posh/src/cli/auth\t0.144s\n? \tgithub.com/jandedobbeleer/oh-my-posh/src/cli/font\t[no test files]\n? \tgithub.com/jandedobbeleer/oh-my-posh/src/cli/progress\t[no test files]\nok \tgithub.com/jandedobbeleer/oh-my-posh/src/cli/upgrade\t0.199s","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"5908873f-690a-4c83-9cd4-ddb27a48d70d","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"43296841-0258-4765-b93b-0faebb535da4","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtZCJWPDTsgjZ2bHt5F","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The tests are passing even though I haven't updated the test assertions for the rect dimensions, which suggests the existing checks aren't actually validating the height and y-position values. Looking at the math with FontSize 10 and LineHeight 20, the rect should have a y-position around 61.67 and a specific height, but my cursor test only asserts the text position, leaving a gap in coverage for the rect geometry itself.\n\nI'll add a dedicated test with explicit FillAscent and FillDescent values in testOptions — setting them to 15 and 5 respectively — so the rect y-position equals the row top and height equals 20. This keeps the behavior consistent with what was there before while ensuring the fill box actually tracks those metrics rather than relying on LineHeight.","signature":"CAISuQgKhwEIEBgCKkDaxldcFecz39Rrp8DYINAWhSwnI+VZBgh79HFmoYsn5DESOCmxdLsvc7ghfWJWv0wwesKdVdiYHsU5+g995TnmMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDIawyP8sE8cXqEr23RoMhZ1eVxclXV0PHQAJIjBoZVMObWLJXFmh0BF/ALKHuT8r4SmLhY2sZwQz8m3VFNmCCUf9Eq5blGnLQ8tQV38q3gZ4TXDPxEvs6NqtAS2H1EtFM6cM+IAd151x1K+h/hEXgWiP5lfNAZ9EYLVWe7xIMdoAp3V8J0YlHHnSELIKPlqY64+/XgqnQTEYDp6oiP3XeVuEieuQmsJbviBpYQKbgO861PDbL5qYWuswZsQUEAC1XUzaX/3F53LNId/ylftNq0zpdSH9q/Ks90gFk+DYvaDs9lVdlR+0QXrsbZBoaurNAP/L4uh6L8fo5HkhUlePzB0EjY+OmQR5F1tSriw+WEZCPcbY/ZakM6yx2dooflUKYwILVYFWiaayZ3iaNoy2q7QQQp+Zj88/rwG9nrwhkwtQYJdhIclgnLoq+LcF1J6k817J/1Gmrtog7PkumX6Y8BV19T3GF3swBAbo41GSu5HRM5MfRMPP7FRDIGYWcXe+mnbaOMRcmdZaOEfMrplZqOc4Nysc4SFkaZ2EiQkRO+obiNrm8zyw0z5I9yZL6+VemjqEnwQ0DkO3fI3AYGOg847qAjkylODc+Y/BEXe3v8ixMf1rvERiOYCV6vyx2igerRrB9j7pojdHRtL17I0X7lCPitWFLwbRbq4Uh7tFQyPGGoG3SL2NmqF21KTOuKVrZDEaaT8uDgDoLlbmYNeiTfssgeL5AJpmvMUpgHJ4nsoG/mWDyo1X2HmrD+uAbIdEpyJOV789D8g+Yrjdgg4hxwgDFogCi0bqrfob1LEshtjTOnMIFAVU88mU07Flmkee/svRFE3jUWoabQBOQMK6+6++JH9kHrba6ubkaAbzoGH/f9e9FnkPMgvsmJQ8wSNybJBqjcsc4gukyGajDaQZJWWPzrv9xipD4Aol7cFK407G/zYjKOpZyv7fbP2+D1SmPmI4RPSHVWJFW31Zeia45JO+DTzpEjyJc/3PXkaEScjPWyaeK0dwb7Ec6gvaycUKZhWyoAJCFKn9P2MaIlQzf0T8hPZYmnUWpOkKZrQ9wwElC1WIv1rdKaDahdP2XVptm6021j31W5Hc49S/WAU910hR9zQ+/LO6OBhtKDMH1mbk6O0xzGz9jTqHWrA2+UGCJfywvwsYmjhgmk6qugUihgr7u0/ySu+P8zzaAV0GVEwRULTgZ8B/2kJGyi9hmj4hf/hDa8wbBMbupw+gHVlY9kFfvleSCY9fVjFTGPwkGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":355,"cache_read_input_tokens":310445,"output_tokens":1033,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":355,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1033,"cache_read_input_tokens":310445,"cache_creation_input_tokens":355,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":355},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtZ4Jo872vpkyuw8QzD","type":"assistant","uuid":"dad638b2-f23c-41dd-b050-dfdc5549697d","timestamp":"2026-07-28T05:18:10.412Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dad638b2-f23c-41dd-b050-dfdc5549697d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtZCJWPDTsgjZ2bHt5F","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01RQAUc8tPE5xnUu8g4osVe9","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\svg\\svg_test.go","old_string":"// testOptions fixes every metric so pixel math in assertions is exact and\n// readable: padding 0, a 10px cell, a 20px row, and a fixed Columns wide\n// enough that no existing test's row gets wrapped by fitRow (see fit.go) —\n// tests that specifically exercise wrapping set their own, narrower Columns.\nfunc testOptions() Options {\n\treturn Options{\n\t\tFontSize: 10,\n\t\tCellWidth: 10,\n\t\tLineHeight: 20,\n\t\tPadding: 0,\n\t\tColumns: 40,\n\t}\n}","new_string":"// testOptions fixes every metric so pixel math in assertions is exact and\n// readable: padding 0, a 10px cell, a 20px row, and a fixed Columns wide\n// enough that no existing test's row gets wrapped by fitRow (see fit.go) —\n// tests that specifically exercise wrapping set their own, narrower Columns.\n//\n// FillAscent/FillDescent are set to 15/5 rather than left to default so the\n// fill box works out to exactly the row box (baseline sits at 0.75*20 = 15\n// below the row top, so the rect spans rowTop..rowTop+20). Every position\n// assertion here predates the fill box being a metric of its own and is\n// written against the row, so pinning them this way keeps those assertions\n// meaningful; TestEncodeFillBoxTracksGlyphInk covers the case where the two\n// genuinely differ.\nfunc testOptions() Options {\n\treturn Options{\n\t\tFontSize: 10,\n\t\tCellWidth: 10,\n\t\tLineHeight: 20,\n\t\tFillAscent: 15,\n\t\tFillDescent: 5,\n\t\tPadding: 0,\n\t\tColumns: 40,\n\t}\n}"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":355,"cache_read_input_tokens":310445,"output_tokens":1033,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":355,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1033,"cache_read_input_tokens":310445,"cache_creation_input_tokens":355,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":355},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtZ4Jo872vpkyuw8QzD","type":"assistant","uuid":"eb665921-effa-4088-89d1-54bf1cd7ea80","timestamp":"2026-07-28T05:18:15.839Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"eb665921-effa-4088-89d1-54bf1cd7ea80","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01RQAUc8tPE5xnUu8g4osVe9","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\svg\\svg_test.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"d99e84df-b133-4358-860f-d1a431d56d35","timestamp":"2026-07-28T05:18:15.938Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\svg\\svg_test.go","oldString":"// testOptions fixes every metric so pixel math in assertions is exact and\n// readable: padding 0, a 10px cell, a 20px row, and a fixed Columns wide\n// enough that no existing test's row gets wrapped by fitRow (see fit.go) —\n// tests that specifically exercise wrapping set their own, narrower Columns.\nfunc testOptions() Options {\n\treturn Options{\n\t\tFontSize: 10,\n\t\tCellWidth: 10,\n\t\tLineHeight: 20,\n\t\tPadding: 0,\n\t\tColumns: 40,\n\t}\n}","newString":"// testOptions fixes every metric so pixel math in assertions is exact and\n// readable: padding 0, a 10px cell, a 20px row, and a fixed Columns wide\n// enough that no existing test's row gets wrapped by fitRow (see fit.go) —\n// tests that specifically exercise wrapping set their own, narrower Columns.\n//\n// FillAscent/FillDescent are set to 15/5 rather than left to default so the\n// fill box works out to exactly the row box (baseline sits at 0.75*20 = 15\n// below the row top, so the rect spans rowTop..rowTop+20). Every position\n// assertion here predates the fill box being a metric of its own and is\n// written against the row, so pinning them this way keeps those assertions\n// meaningful; TestEncodeFillBoxTracksGlyphInk covers the case where the two\n// genuinely differ.\nfunc testOptions() Options {\n\treturn Options{\n\t\tFontSize: 10,\n\t\tCellWidth: 10,\n\t\tLineHeight: 20,\n\t\tFillAscent: 15,\n\t\tFillDescent: 5,\n\t\tPadding: 0,\n\t\tColumns: 40,\n\t}\n}","originalFile":null,"structuredPatch":[{"oldStart":18,"oldLines":13,"newStart":18,"newLines":23,"lines":[" // readable: padding 0, a 10px cell, a 20px row, and a fixed Columns wide"," // enough that no existing test's row gets wrapped by fitRow (see fit.go) —"," // tests that specifically exercise wrapping set their own, narrower Columns.","+//","+// FillAscent/FillDescent are set to 15/5 rather than left to default so the","+// fill box works out to exactly the row box (baseline sits at 0.75*20 = 15","+// below the row top, so the rect spans rowTop..rowTop+20). Every position","+// assertion here predates the fill box being a metric of its own and is","+// written against the row, so pinning them this way keeps those assertions","+// meaningful; TestEncodeFillBoxTracksGlyphInk covers the case where the two","+// genuinely differ."," func testOptions() Options {"," return Options{","- FontSize: 10,","- CellWidth: 10,","- LineHeight: 20,","- Padding: 0,","- Columns: 40,","+ FontSize: 10,","+ CellWidth: 10,","+ LineHeight: 20,","+ FillAscent: 15,","+ FillDescent: 5,","+ Padding: 0,","+ Columns: 40,"," }"," }"," "]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"eb665921-effa-4088-89d1-54bf1cd7ea80","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d99e84df-b133-4358-860f-d1a431d56d35","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtaBh5JeBnAqEPUPDA1","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01WDJSQg2YFpTgz5GoGcSjm8","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\svg\\svg_test.go","old_string":"// TestEncodeCursorAtAnchor pins where the cursor indicator lands on a row","new_string":"// TestEncodeFillBoxTracksGlyphInk pins that a segment's background is bounded\n// by FillAscent/FillDescent — the box a powerline separator glyph inks — and\n// not by LineHeight. Filling the row instead left the background standing\n// taller than the rounded caps meant to close it, so a bubbles-style theme\n// rendered as a tall block with short caps stuck on its ends.\nfunc TestEncodeFillBoxTracksGlyphInk(t *testing.T) {\n\trows := [][]terminal.Run{\n\t\t{{Text: \"ab\", Cells: 2, ForegroundSource: \"red\", BackgroundSource: \"blue\", Mode: terminal.RunNormal}},\n\t}\n\n\topts := testOptions()\n\topts.FillAscent = 12\n\topts.FillDescent = 3\n\n\tdoc, err := Encode(rows, opts)\n\trequire.NoError(t, err)\n\tdecodeXML(t, doc)\n\n\t// The baseline is 0.75*LineHeight below the row top, so with a 15-unit\n\t// fill box the rect starts 3 units into the row and stops 2 short of its\n\t// bottom — deliberately not the row box.\n\tassert.Contains(t, doc, ``)\n\tassert.NotContains(t, doc, `height=\"20\" fill=\"#006fb8\"`)\n\n\t// The text itself still sits on the row's own baseline: the fill box\n\t// moves the background, never the glyphs.\n\tassert.Contains(t, doc, `y=\"61.67\"`)\n}\n\n// TestEncodeFillBoxDefaultsToHackInkBox pins the fallback: a caller that\n// specifies neither metric gets Hack Nerd Font's own U+E0B0 ink box, which is\n// measurably shorter than a row.\nfunc TestEncodeFillBoxDefaultsToHackInkBox(t *testing.T) {\n\topts := testOptions()\n\topts.FillAscent = 0\n\topts.FillDescent = 0\n\n\tresolved := opts.withDefaults()\n\n\tassert.InDelta(t, 9.3408, resolved.FillAscent, 0.0001)\n\tassert.InDelta(t, 2.4170, resolved.FillDescent, 0.0001)\n\tassert.Less(t, resolved.FillAscent+resolved.FillDescent, resolved.LineHeight)\n}\n\n// TestEncodeCursorAtAnchor pins where the cursor indicator lands on a row"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1087,"cache_read_input_tokens":310800,"output_tokens":1013,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1087,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1013,"cache_read_input_tokens":310800,"cache_creation_input_tokens":1087,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1087},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTta81pJDzVAdfeBnNdN","type":"assistant","uuid":"7b1b167f-2879-4caf-b197-ac1c47a4e6e6","timestamp":"2026-07-28T05:18:29.424Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7b1b167f-2879-4caf-b197-ac1c47a4e6e6","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01WDJSQg2YFpTgz5GoGcSjm8","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\svg\\svg_test.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"0203a24b-abcf-473b-8987-6c98eeb9dec0","timestamp":"2026-07-28T05:18:29.466Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\svg\\svg_test.go","oldString":"// TestEncodeCursorAtAnchor pins where the cursor indicator lands on a row","newString":"// TestEncodeFillBoxTracksGlyphInk pins that a segment's background is bounded\n// by FillAscent/FillDescent — the box a powerline separator glyph inks — and\n// not by LineHeight. Filling the row instead left the background standing\n// taller than the rounded caps meant to close it, so a bubbles-style theme\n// rendered as a tall block with short caps stuck on its ends.\nfunc TestEncodeFillBoxTracksGlyphInk(t *testing.T) {\n\trows := [][]terminal.Run{\n\t\t{{Text: \"ab\", Cells: 2, ForegroundSource: \"red\", BackgroundSource: \"blue\", Mode: terminal.RunNormal}},\n\t}\n\n\topts := testOptions()\n\topts.FillAscent = 12\n\topts.FillDescent = 3\n\n\tdoc, err := Encode(rows, opts)\n\trequire.NoError(t, err)\n\tdecodeXML(t, doc)\n\n\t// The baseline is 0.75*LineHeight below the row top, so with a 15-unit\n\t// fill box the rect starts 3 units into the row and stops 2 short of its\n\t// bottom — deliberately not the row box.\n\tassert.Contains(t, doc, ``)\n\tassert.NotContains(t, doc, `height=\"20\" fill=\"#006fb8\"`)\n\n\t// The text itself still sits on the row's own baseline: the fill box\n\t// moves the background, never the glyphs.\n\tassert.Contains(t, doc, `y=\"61.67\"`)\n}\n\n// TestEncodeFillBoxDefaultsToHackInkBox pins the fallback: a caller that\n// specifies neither metric gets Hack Nerd Font's own U+E0B0 ink box, which is\n// measurably shorter than a row.\nfunc TestEncodeFillBoxDefaultsToHackInkBox(t *testing.T) {\n\topts := testOptions()\n\topts.FillAscent = 0\n\topts.FillDescent = 0\n\n\tresolved := opts.withDefaults()\n\n\tassert.InDelta(t, 9.3408, resolved.FillAscent, 0.0001)\n\tassert.InDelta(t, 2.4170, resolved.FillDescent, 0.0001)\n\tassert.Less(t, resolved.FillAscent+resolved.FillDescent, resolved.LineHeight)\n}\n\n// TestEncodeCursorAtAnchor pins where the cursor indicator lands on a row","originalFile":null,"structuredPatch":[{"oldStart":437,"oldLines":6,"newStart":437,"newLines":50,"lines":[" assert.Equal(t, opened, preserved, \"every element must declare xml:space\")"," }"," ","+// TestEncodeFillBoxTracksGlyphInk pins that a segment's background is bounded","+// by FillAscent/FillDescent — the box a powerline separator glyph inks — and","+// not by LineHeight. Filling the row instead left the background standing","+// taller than the rounded caps meant to close it, so a bubbles-style theme","+// rendered as a tall block with short caps stuck on its ends.","+func TestEncodeFillBoxTracksGlyphInk(t *testing.T) {","+ rows := [][]terminal.Run{","+ {{Text: \"ab\", Cells: 2, ForegroundSource: \"red\", BackgroundSource: \"blue\", Mode: terminal.RunNormal}},","+ }","+","+ opts := testOptions()","+ opts.FillAscent = 12","+ opts.FillDescent = 3","+","+ doc, err := Encode(rows, opts)","+ require.NoError(t, err)","+ decodeXML(t, doc)","+","+ // The baseline is 0.75*LineHeight below the row top, so with a 15-unit","+ // fill box the rect starts 3 units into the row and stops 2 short of its","+ // bottom — deliberately not the row box.","+ assert.Contains(t, doc, ``)","+ assert.NotContains(t, doc, `height=\"20\" fill=\"#006fb8\"`)","+","+ // The text itself still sits on the row's own baseline: the fill box","+ // moves the background, never the glyphs.","+ assert.Contains(t, doc, `y=\"61.67\"`)","+}","+","+// TestEncodeFillBoxDefaultsToHackInkBox pins the fallback: a caller that","+// specifies neither metric gets Hack Nerd Font's own U+E0B0 ink box, which is","+// measurably shorter than a row.","+func TestEncodeFillBoxDefaultsToHackInkBox(t *testing.T) {","+ opts := testOptions()","+ opts.FillAscent = 0","+ opts.FillDescent = 0","+","+ resolved := opts.withDefaults()","+","+ assert.InDelta(t, 9.3408, resolved.FillAscent, 0.0001)","+ assert.InDelta(t, 2.4170, resolved.FillDescent, 0.0001)","+ assert.Less(t, resolved.FillAscent+resolved.FillDescent, resolved.LineHeight)","+}","+"," // TestEncodeCursorAtAnchor pins where the cursor indicator lands on a row"," // that carries a right-aligned block: at the primary prompt's own end, not"," // after the rprompt. The gap between them absorbs the cursor's cell, so the"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"7b1b167f-2879-4caf-b197-ac1c47a4e6e6","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0203a24b-abcf-473b-8987-6c98eeb9dec0","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtbECAY1socmKPJcTWs","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01YZX89CyJuZbyoSoLr2aijX","name":"Bash","input":{"command":"go test ./svg/... -count=1 -run \"FillBox\" -v 2>&1 | tail -20","description":"Run fill box tests"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1067,"cache_read_input_tokens":311887,"output_tokens":122,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1067,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":122,"cache_read_input_tokens":311887,"cache_creation_input_tokens":1067,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1067},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtbARD1xUbMNT3ERtGY","type":"assistant","uuid":"d48108ec-1aaf-445f-84f2-3bcd9b648660","timestamp":"2026-07-28T05:18:33.338Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d48108ec-1aaf-445f-84f2-3bcd9b648660","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01YZX89CyJuZbyoSoLr2aijX","type":"tool_result","content":"=== RUN TestEncodeFillBoxTracksGlyphInk\n--- PASS: TestEncodeFillBoxTracksGlyphInk (0.00s)\n=== RUN TestEncodeFillBoxDefaultsToHackInkBox\n--- PASS: TestEncodeFillBoxDefaultsToHackInkBox (0.00s)\nPASS\nok \tgithub.com/jandedobbeleer/oh-my-posh/src/svg\t0.085s","is_error":false}]},"uuid":"c39407c7-af24-45ec-8053-0f7547041ed9","timestamp":"2026-07-28T05:18:37.648Z","toolUseResult":{"stdout":"=== RUN TestEncodeFillBoxTracksGlyphInk\n--- PASS: TestEncodeFillBoxTracksGlyphInk (0.00s)\n=== RUN TestEncodeFillBoxDefaultsToHackInkBox\n--- PASS: TestEncodeFillBoxDefaultsToHackInkBox (0.00s)\nPASS\nok \tgithub.com/jandedobbeleer/oh-my-posh/src/svg\t0.085s","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"d48108ec-1aaf-445f-84f2-3bcd9b648660","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c39407c7-af24-45ec-8053-0f7547041ed9","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"04b94f57-8821-41fc-a36e-644b2d15ba61","timestamp":"2026-07-28T05:18:37.654Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"04b94f57-8821-41fc-a36e-644b2d15ba61","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtboBJ3FJ9szSo4RXVo","type":"message","role":"assistant","content":[{"type":"text","text":"Now the website's own values, and the harness:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":406,"cache_read_input_tokens":312954,"output_tokens":452,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":406,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":452,"cache_read_input_tokens":312954,"cache_creation_input_tokens":406,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":406},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtbii9zf6bVesTAVBxW","type":"assistant","uuid":"db46eba3-a08b-4b3d-8424-2bf88b7e0c30","timestamp":"2026-07-28T05:18:40.323Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"db46eba3-a08b-4b3d-8424-2bf88b7e0c30","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtboBJ3FJ9szSo4RXVo","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01J43AaM5DQaSeB7XgQuEXWh","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\website\\export_themes.mjs","old_string":" CELL_WIDTH: 0.5455,\n LINE_HEIGHT: 1.6909,\n};","new_string":" CELL_WIDTH: 0.5455,\n LINE_HEIGHT: 1.6909,\n // The box Victor Mono's powerline separators actually ink, read from the\n // glyf entry for U+E0B0 (and shared verbatim by U+E0B2/E0B4/E0B6/E0B8):\n // y -358..1208 at unitsPerEm 1100, so 1208/1100 = 1.0982em above the\n // baseline and 358/1100 = 0.3255em below it. A segment's background is\n // drawn to this box rather than to LineHeight, which is 19% taller - see\n // svg.Options' FillAscent/FillDescent.\n FILL_ASCENT: 1.0982,\n FILL_DESCENT: 0.3255,\n};"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":406,"cache_read_input_tokens":312954,"output_tokens":452,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":406,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":452,"cache_read_input_tokens":312954,"cache_creation_input_tokens":406,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":406},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtbii9zf6bVesTAVBxW","type":"assistant","uuid":"86051910-322d-48e7-9799-b48bc7eecbdb","timestamp":"2026-07-28T05:18:44.865Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"86051910-322d-48e7-9799-b48bc7eecbdb","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01J43AaM5DQaSeB7XgQuEXWh","type":"tool_result","content":"The file D:\\oh-my-posh\\website\\export_themes.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"2afcc978-c4e1-47c4-8a71-235e67b14b10","timestamp":"2026-07-28T05:18:44.926Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\website\\export_themes.mjs","oldString":" CELL_WIDTH: 0.5455,\n LINE_HEIGHT: 1.6909,\n};","newString":" CELL_WIDTH: 0.5455,\n LINE_HEIGHT: 1.6909,\n // The box Victor Mono's powerline separators actually ink, read from the\n // glyf entry for U+E0B0 (and shared verbatim by U+E0B2/E0B4/E0B6/E0B8):\n // y -358..1208 at unitsPerEm 1100, so 1208/1100 = 1.0982em above the\n // baseline and 358/1100 = 0.3255em below it. A segment's background is\n // drawn to this box rather than to LineHeight, which is 19% taller - see\n // svg.Options' FillAscent/FillDescent.\n FILL_ASCENT: 1.0982,\n FILL_DESCENT: 0.3255,\n};","originalFile":null,"structuredPatch":[{"oldStart":43,"oldLines":6,"newStart":43,"newLines":14,"lines":[" // 1.6909em."," CELL_WIDTH: 0.5455,"," LINE_HEIGHT: 1.6909,","+ // The box Victor Mono's powerline separators actually ink, read from the","+ // glyf entry for U+E0B0 (and shared verbatim by U+E0B2/E0B4/E0B6/E0B8):","+ // y -358..1208 at unitsPerEm 1100, so 1208/1100 = 1.0982em above the","+ // baseline and 358/1100 = 0.3255em below it. A segment's background is","+ // drawn to this box rather than to LineHeight, which is 19% taller - see","+ // svg.Options' FillAscent/FillDescent.","+ FILL_ASCENT: 1.0982,","+ FILL_DESCENT: 0.3255,"," };"," "," const TRENDING_FETCH_TIMEOUT_MS = 4000;"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"86051910-322d-48e7-9799-b48bc7eecbdb","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2afcc978-c4e1-47c4-8a71-235e67b14b10","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtcMQn4RXbM1omwbjCt","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_011s2JGh7kwoxq1u33qJydty","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\website\\export_themes.mjs","old_string":" `--cell-width=${CONFIG.CELL_WIDTH}`,\n `--line-height=${CONFIG.LINE_HEIGHT}`,","new_string":" `--cell-width=${CONFIG.CELL_WIDTH}`,\n `--line-height=${CONFIG.LINE_HEIGHT}`,\n `--fill-ascent=${CONFIG.FILL_ASCENT}`,\n `--fill-descent=${CONFIG.FILL_DESCENT}`,"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":504,"cache_read_input_tokens":313360,"output_tokens":306,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":504,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":306,"cache_read_input_tokens":313360,"cache_creation_input_tokens":504,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":504},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtcFrAUo4kTDgv1jFAC","type":"assistant","uuid":"fb76bb9f-836d-4cc5-8359-627f85128622","timestamp":"2026-07-28T05:18:49.798Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fb76bb9f-836d-4cc5-8359-627f85128622","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_011s2JGh7kwoxq1u33qJydty","type":"tool_result","content":"The file D:\\oh-my-posh\\website\\export_themes.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"1b66bfde-0ac0-4926-8215-fe6e062177b9","timestamp":"2026-07-28T05:18:49.888Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\website\\export_themes.mjs","oldString":" `--cell-width=${CONFIG.CELL_WIDTH}`,\n `--line-height=${CONFIG.LINE_HEIGHT}`,","newString":" `--cell-width=${CONFIG.CELL_WIDTH}`,\n `--line-height=${CONFIG.LINE_HEIGHT}`,\n `--fill-ascent=${CONFIG.FILL_ASCENT}`,\n `--fill-descent=${CONFIG.FILL_DESCENT}`,","originalFile":null,"structuredPatch":[{"oldStart":202,"oldLines":6,"newStart":202,"newLines":8,"lines":[" `--font-family=\"${CONFIG.FONT_FAMILY}\"`,"," `--cell-width=${CONFIG.CELL_WIDTH}`,"," `--line-height=${CONFIG.LINE_HEIGHT}`,","+ `--fill-ascent=${CONFIG.FILL_ASCENT}`,","+ `--fill-descent=${CONFIG.FILL_DESCENT}`,"," // segment_data.json is hand-written on purpose (see buildDataFileWithTrending):"," // its synthetic values are what make the renders look like a plausible"," // machine. oh-my-posh warns that the file carries no recorder marker, which is"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"fb76bb9f-836d-4cc5-8359-627f85128622","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1b66bfde-0ac0-4926-8215-fe6e062177b9","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtcgAtednMAVByxV7Zq","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01QpxKQTM7RZLeqmSiwUveXM","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","old_string":" cellWidth: \"0.5455\",\n lineHeight: \"1.6909\",\n};","new_string":" cellWidth: \"0.5455\",\n lineHeight: \"1.6909\",\n fillAscent: \"1.0982\",\n fillDescent: \"0.3255\",\n};"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":359,"cache_read_input_tokens":313864,"output_tokens":230,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":359,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":230,"cache_read_input_tokens":313864,"cache_creation_input_tokens":359,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":359},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtccrDG8xN7F6QE7Q3g","type":"assistant","uuid":"3d35a2ad-7785-4d21-bd2f-7d1e2b1920c0","timestamp":"2026-07-28T05:18:53.812Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3d35a2ad-7785-4d21-bd2f-7d1e2b1920c0","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01QpxKQTM7RZLeqmSiwUveXM","type":"tool_result","content":"The file D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"57cf7e8e-2555-4f87-9323-77ab951493cd","timestamp":"2026-07-28T05:18:53.873Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","oldString":" cellWidth: \"0.5455\",\n lineHeight: \"1.6909\",\n};","newString":" cellWidth: \"0.5455\",\n lineHeight: \"1.6909\",\n fillAscent: \"1.0982\",\n fillDescent: \"0.3255\",\n};","originalFile":"#!/usr/bin/env node\n// Side-by-side renderer for eyeballing the SVG exporter against the retired\n// PNG renderer. Unlike compare.mjs this does NOT force the SVG into the PNG's\n// box (no preserveAspectRatio override, no rescale): each side is rasterized\n// at its own natural geometry, so layout differences — whitespace collapse,\n// baseline drift, misplaced decorations — stay visible instead of being\n// squeezed away by the fit.\n//\n// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks\n// node shot.mjs --website glowsticks as the theme gallery renders it\n//\n// Output lands in ./out/: .svg, .raster.png, and — unless\n// --svg-only — .png from the retired renderer.\nimport { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { chromium } from \"playwright\";\n\nimport { extractZipEntry } from \"./zip.mjs\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");\nconst THEMES_DIR = path.join(REPO_ROOT, \"themes\");\nconst DATA_FIXTURE = path.join(REPO_ROOT, \"src\", \"prompt\", \"testdata\", \"fixtures\", \"prompt.data.json\");\n\nconst BIN_DIR = path.join(__dirname, \"bin\");\nconst OUT_DIR = path.join(__dirname, \"out\");\n// The Mono patched variant, which is what the exporter's default font stack\n// asks for first and what a terminal actually runs: it scales Nerd Font icon\n// ink down to one cell, where the plain variant lets it bleed up to ~1.9\n// cells over the next character. The retired PNG renderer loaded the plain\n// variant and compensated with a hand-maintained double-width table, so its\n// reference renders show icons in a two-cell box; that is the one place the\n// two renderers are expected to differ.\nconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";\n\n// --website renders exactly what the theme gallery ships: the font the site\n// serves, at the metrics website/export_themes.mjs passes. Those metrics are\n// Victor Mono's own (cell 600/1100 em, hhea line height 1.4091 em x 1.2), not\n// the exporter's Hack-derived defaults, so they have to be passed here too or\n// the grid would be laid out for the wrong font.\nconst WEBSITE = {\n fontPath: path.join(REPO_ROOT, \"website\", \"static\", \"fonts\", \"VictorMono.ttf\"),\n fontFamily: \"Victor Mono\",\n cellWidth: \"0.5455\",\n lineHeight: \"1.6909\",\n};\n\nconst EXE = process.platform === \"win32\" ? \".exe\" : \"\";\nconst OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);\nconst NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);\n\n// The exporter renders at a 16px em; the retired PNG renderer's reference em\n// was 48px. Rasterizing at 3x device scale puts both at the same resolution\n// without touching the SVG's own geometry.\nconst DEVICE_SCALE_FACTOR = 3;\n\n// Pulls the Mono face out of the Hack.zip the retired PNG renderer already\n// caches (see cli/image/image.go's loadDefaultFonts), or downloads it once.\n// Same source and version as compare.mjs' own ensureFont, different entry.\nasync function ensureFont() {\n if (fs.existsSync(FONT_PATH)) {\n return;\n }\n\n fs.mkdirSync(path.dirname(FONT_PATH), { recursive: true });\n\n const home = process.env.USERPROFILE || process.env.HOME || \"\";\n const caches = [\n process.env.OMP_CACHE_DIR,\n process.platform === \"win32\" ? path.join(process.env.LOCALAPPDATA ?? \"\", \"oh-my-posh\") : null,\n process.env.XDG_CACHE_HOME ? path.join(process.env.XDG_CACHE_HOME, \"oh-my-posh\") : null,\n path.join(home, \".cache\", \"oh-my-posh\"),\n ].filter(Boolean);\n\n const entry = path.basename(FONT_PATH);\n\n for (const dir of caches) {\n const zipPath = path.join(dir, \"Hack.zip\");\n\n if (fs.existsSync(zipPath)) {\n fs.writeFileSync(FONT_PATH, extractZipEntry(fs.readFileSync(zipPath), entry));\n return;\n }\n }\n\n const url = \"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip\";\n const res = await fetch(url);\n\n if (!res.ok) {\n throw new Error(`failed to download ${url}: ${res.status} ${res.statusText}`);\n }\n\n fs.writeFileSync(FONT_PATH, extractZipEntry(Buffer.from(await res.arrayBuffer()), entry));\n}\n\nfunction themeConfig(theme) {\n for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n const candidate = path.join(THEMES_DIR, theme + ext);\n\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(`theme not found: ${theme}`);\n}\n\nfunction run(cmd, args, cwd) {\n const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n\n if (res.error) {\n throw res.error;\n }\n\n if (res.status !== 0) {\n throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n }\n}\n\n// Reads width/height off the root element so the page can give it a box\n// of exactly that size — the SVG then renders 1:1 with no scaling at all.\nfunction svgSize(markup) {\n const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n\n if (!width || !height) {\n throw new Error(\"could not read width/height off the root \");\n }\n\n return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n}\n\nasync function rasterize(browser, markup, fontBase64, fontFamily) {\n const { width, height } = svgSize(markup);\n\n const context = await browser.newContext({\n viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n deviceScaleFactor: DEVICE_SCALE_FACTOR,\n });\n\n const page = await context.newPage();\n\n const html = `\n\n\n\n\n\n${markup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForTimeout(50);\n\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const svgOnly = args.includes(\"--svg-only\");\n const website = args.includes(\"--website\");\n const themes = args.filter((a) => !a.startsWith(\"--\"));\n\n if (themes.length === 0) {\n throw new Error(\"pass at least one theme name\");\n }\n\n fs.mkdirSync(OUT_DIR, { recursive: true });\n\n run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n const fontFamily = website ? WEBSITE.fontFamily : FONT_FAMILY;\n const fontPath = website ? WEBSITE.fontPath : FONT_PATH;\n\n if (!website) {\n await ensureFont();\n }\n\n const fontBase64 = fs.readFileSync(fontPath).toString(\"base64\");\n const browser = await chromium.launch();\n\n try {\n for (const theme of themes) {\n const config = themeConfig(theme);\n const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n\n run(NEW_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", fontFamily,\n ...(website ? [\"--cell-width\", WEBSITE.cellWidth, \"--line-height\", WEBSITE.lineHeight] : []),\n \"-o\", svgPath,\n ]);\n\n const markup = fs.readFileSync(svgPath, \"utf8\");\n fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64, fontFamily));\n\n if (!svgOnly && fs.existsSync(OLD_BIN)) {\n run(OLD_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--format\", \"png\",\n \"-o\", path.join(OUT_DIR, `${theme}.png`),\n ]);\n }\n\n console.log(`${theme}: ${svgPath}`);\n }\n } finally {\n await browser.close();\n }\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exitCode = 1;\n});\n","structuredPatch":[{"oldStart":48,"oldLines":6,"newStart":48,"newLines":8,"lines":[" fontFamily: \"Victor Mono\","," cellWidth: \"0.5455\","," lineHeight: \"1.6909\",","+ fillAscent: \"1.0982\",","+ fillDescent: \"0.3255\","," };"," "," const EXE = process.platform === \"win32\" ? \".exe\" : \"\";"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"3d35a2ad-7785-4d21-bd2f-7d1e2b1920c0","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"57cf7e8e-2555-4f87-9323-77ab951493cd","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtd1Fbogu4E5Ng97fXB","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_019jBhtVjBsz8aVKNy8GBqhS","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","old_string":" ...(website ? [\"--cell-width\", WEBSITE.cellWidth, \"--line-height\", WEBSITE.lineHeight] : []),","new_string":" ...(website\n ? [\n \"--cell-width\", WEBSITE.cellWidth,\n \"--line-height\", WEBSITE.lineHeight,\n \"--fill-ascent\", WEBSITE.fillAscent,\n \"--fill-descent\", WEBSITE.fillDescent,\n ]\n : []),"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":290,"cache_read_input_tokens":314223,"output_tokens":303,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":290,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":303,"cache_read_input_tokens":314223,"cache_creation_input_tokens":290,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":290},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtcuxMuPYoyRVmjUJUB","type":"assistant","uuid":"e520eea0-9bea-4791-b5a6-5f1876c45454","timestamp":"2026-07-28T05:18:58.643Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e520eea0-9bea-4791-b5a6-5f1876c45454","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_019jBhtVjBsz8aVKNy8GBqhS","type":"tool_result","content":"The file D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"6dae6072-d13d-4aeb-b682-30304192e043","timestamp":"2026-07-28T05:18:58.723Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","oldString":" ...(website ? [\"--cell-width\", WEBSITE.cellWidth, \"--line-height\", WEBSITE.lineHeight] : []),","newString":" ...(website\n ? [\n \"--cell-width\", WEBSITE.cellWidth,\n \"--line-height\", WEBSITE.lineHeight,\n \"--fill-ascent\", WEBSITE.fillAscent,\n \"--fill-descent\", WEBSITE.fillDescent,\n ]\n : []),","originalFile":"#!/usr/bin/env node\n// Side-by-side renderer for eyeballing the SVG exporter against the retired\n// PNG renderer. Unlike compare.mjs this does NOT force the SVG into the PNG's\n// box (no preserveAspectRatio override, no rescale): each side is rasterized\n// at its own natural geometry, so layout differences — whitespace collapse,\n// baseline drift, misplaced decorations — stay visible instead of being\n// squeezed away by the fit.\n//\n// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks\n// node shot.mjs --website glowsticks as the theme gallery renders it\n//\n// Output lands in ./out/: .svg, .raster.png, and — unless\n// --svg-only — .png from the retired renderer.\nimport { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { chromium } from \"playwright\";\n\nimport { extractZipEntry } from \"./zip.mjs\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");\nconst THEMES_DIR = path.join(REPO_ROOT, \"themes\");\nconst DATA_FIXTURE = path.join(REPO_ROOT, \"src\", \"prompt\", \"testdata\", \"fixtures\", \"prompt.data.json\");\n\nconst BIN_DIR = path.join(__dirname, \"bin\");\nconst OUT_DIR = path.join(__dirname, \"out\");\n// The Mono patched variant, which is what the exporter's default font stack\n// asks for first and what a terminal actually runs: it scales Nerd Font icon\n// ink down to one cell, where the plain variant lets it bleed up to ~1.9\n// cells over the next character. The retired PNG renderer loaded the plain\n// variant and compensated with a hand-maintained double-width table, so its\n// reference renders show icons in a two-cell box; that is the one place the\n// two renderers are expected to differ.\nconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";\n\n// --website renders exactly what the theme gallery ships: the font the site\n// serves, at the metrics website/export_themes.mjs passes. Those metrics are\n// Victor Mono's own (cell 600/1100 em, hhea line height 1.4091 em x 1.2), not\n// the exporter's Hack-derived defaults, so they have to be passed here too or\n// the grid would be laid out for the wrong font.\nconst WEBSITE = {\n fontPath: path.join(REPO_ROOT, \"website\", \"static\", \"fonts\", \"VictorMono.ttf\"),\n fontFamily: \"Victor Mono\",\n cellWidth: \"0.5455\",\n lineHeight: \"1.6909\",\n fillAscent: \"1.0982\",\n fillDescent: \"0.3255\",\n};\n\nconst EXE = process.platform === \"win32\" ? \".exe\" : \"\";\nconst OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);\nconst NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);\n\n// The exporter renders at a 16px em; the retired PNG renderer's reference em\n// was 48px. Rasterizing at 3x device scale puts both at the same resolution\n// without touching the SVG's own geometry.\nconst DEVICE_SCALE_FACTOR = 3;\n\n// Pulls the Mono face out of the Hack.zip the retired PNG renderer already\n// caches (see cli/image/image.go's loadDefaultFonts), or downloads it once.\n// Same source and version as compare.mjs' own ensureFont, different entry.\nasync function ensureFont() {\n if (fs.existsSync(FONT_PATH)) {\n return;\n }\n\n fs.mkdirSync(path.dirname(FONT_PATH), { recursive: true });\n\n const home = process.env.USERPROFILE || process.env.HOME || \"\";\n const caches = [\n process.env.OMP_CACHE_DIR,\n process.platform === \"win32\" ? path.join(process.env.LOCALAPPDATA ?? \"\", \"oh-my-posh\") : null,\n process.env.XDG_CACHE_HOME ? path.join(process.env.XDG_CACHE_HOME, \"oh-my-posh\") : null,\n path.join(home, \".cache\", \"oh-my-posh\"),\n ].filter(Boolean);\n\n const entry = path.basename(FONT_PATH);\n\n for (const dir of caches) {\n const zipPath = path.join(dir, \"Hack.zip\");\n\n if (fs.existsSync(zipPath)) {\n fs.writeFileSync(FONT_PATH, extractZipEntry(fs.readFileSync(zipPath), entry));\n return;\n }\n }\n\n const url = \"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip\";\n const res = await fetch(url);\n\n if (!res.ok) {\n throw new Error(`failed to download ${url}: ${res.status} ${res.statusText}`);\n }\n\n fs.writeFileSync(FONT_PATH, extractZipEntry(Buffer.from(await res.arrayBuffer()), entry));\n}\n\nfunction themeConfig(theme) {\n for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n const candidate = path.join(THEMES_DIR, theme + ext);\n\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(`theme not found: ${theme}`);\n}\n\nfunction run(cmd, args, cwd) {\n const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n\n if (res.error) {\n throw res.error;\n }\n\n if (res.status !== 0) {\n throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n }\n}\n\n// Reads width/height off the root element so the page can give it a box\n// of exactly that size — the SVG then renders 1:1 with no scaling at all.\nfunction svgSize(markup) {\n const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n\n if (!width || !height) {\n throw new Error(\"could not read width/height off the root \");\n }\n\n return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n}\n\nasync function rasterize(browser, markup, fontBase64, fontFamily) {\n const { width, height } = svgSize(markup);\n\n const context = await browser.newContext({\n viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n deviceScaleFactor: DEVICE_SCALE_FACTOR,\n });\n\n const page = await context.newPage();\n\n const html = `\n\n\n\n\n\n${markup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForTimeout(50);\n\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const svgOnly = args.includes(\"--svg-only\");\n const website = args.includes(\"--website\");\n const themes = args.filter((a) => !a.startsWith(\"--\"));\n\n if (themes.length === 0) {\n throw new Error(\"pass at least one theme name\");\n }\n\n fs.mkdirSync(OUT_DIR, { recursive: true });\n\n run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n const fontFamily = website ? WEBSITE.fontFamily : FONT_FAMILY;\n const fontPath = website ? WEBSITE.fontPath : FONT_PATH;\n\n if (!website) {\n await ensureFont();\n }\n\n const fontBase64 = fs.readFileSync(fontPath).toString(\"base64\");\n const browser = await chromium.launch();\n\n try {\n for (const theme of themes) {\n const config = themeConfig(theme);\n const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n\n run(NEW_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", fontFamily,\n ...(website ? [\"--cell-width\", WEBSITE.cellWidth, \"--line-height\", WEBSITE.lineHeight] : []),\n \"-o\", svgPath,\n ]);\n\n const markup = fs.readFileSync(svgPath, \"utf8\");\n fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64, fontFamily));\n\n if (!svgOnly && fs.existsSync(OLD_BIN)) {\n run(OLD_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--format\", \"png\",\n \"-o\", path.join(OUT_DIR, `${theme}.png`),\n ]);\n }\n\n console.log(`${theme}: ${svgPath}`);\n }\n } finally {\n await browser.close();\n }\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exitCode = 1;\n});\n","structuredPatch":[{"oldStart":209,"oldLines":7,"newStart":209,"newLines":14,"lines":[" \"--config\", config,"," \"--data\", DATA_FIXTURE,"," \"--font-family\", fontFamily,","- ...(website ? [\"--cell-width\", WEBSITE.cellWidth, \"--line-height\", WEBSITE.lineHeight] : []),","+ ...(website","+ ? [","+ \"--cell-width\", WEBSITE.cellWidth,","+ \"--line-height\", WEBSITE.lineHeight,","+ \"--fill-ascent\", WEBSITE.fillAscent,","+ \"--fill-descent\", WEBSITE.fillDescent,","+ ]","+ : []),"," \"-o\", svgPath,"," ]);"," "]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"e520eea0-9bea-4791-b5a6-5f1876c45454","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6dae6072-d13d-4aeb-b682-30304192e043","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtdMu5H51fCWteUFY7A","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01N9SSPhmW19vJeGkAFD6z4B","name":"Bash","input":{"command":"cd /d/oh-my-posh/tools/svg-png-compare && node shot.mjs --website --svg-only bubblesline bubbles glowsticks 2>&1 | tail -4","description":"Render bubbles themes with the fill box fix"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":363,"cache_read_input_tokens":314513,"output_tokens":144,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":363,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":144,"cache_read_input_tokens":314513,"cache_creation_input_tokens":363,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":363},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtdJ4eCj54v4p5rquP6","type":"assistant","uuid":"6afdd7ac-009c-4964-a367-2891057c68ac","timestamp":"2026-07-28T05:19:03.025Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6afdd7ac-009c-4964-a367-2891057c68ac","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01N9SSPhmW19vJeGkAFD6z4B","type":"tool_result","content":"bubblesline: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\bubblesline.svg\nbubbles: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\bubbles.svg\nglowsticks: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\glowsticks.svg","is_error":false}]},"uuid":"a7725261-5d45-42fb-b739-361676e2b6cf","timestamp":"2026-07-28T05:19:12.558Z","toolUseResult":{"stdout":"bubblesline: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\bubblesline.svg\nbubbles: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\bubbles.svg\nglowsticks: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\glowsticks.svg","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"6afdd7ac-009c-4964-a367-2891057c68ac","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a7725261-5d45-42fb-b739-361676e2b6cf","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTteMubbQ5ryWUFEZHUh","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01SzcaSRsfij5gL7236Baw7X","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/crop.py\" out/bubblesline.raster.png \"$TMPDIR/bl.png\" 130 180 1500 140 2","description":"Crop bubblesline render"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":263,"cache_read_input_tokens":314876,"output_tokens":195,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":263,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":195,"cache_read_input_tokens":314876,"cache_creation_input_tokens":263,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":263},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTteJC7DTNK6BLtVkYtp","type":"assistant","uuid":"78ba91c0-42a1-4299-b24a-a2ac608eaa11","timestamp":"2026-07-28T05:19:17.488Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"78ba91c0-42a1-4299-b24a-a2ac608eaa11","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01SzcaSRsfij5gL7236Baw7X","type":"tool_result","content":"(3432, 693) -> crop (3000, 280) saved C:/Users/jande/AppData/Local/Temp/bl.png","is_error":false}]},"uuid":"6380cb9a-9ffb-4a18-8f31-e839f74a450b","timestamp":"2026-07-28T05:19:21.525Z","toolUseResult":{"stdout":"(3432, 693) -> crop (3000, 280) saved C:/Users/jande/AppData/Local/Temp/bl.png","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"78ba91c0-42a1-4299-b24a-a2ac608eaa11","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6380cb9a-9ffb-4a18-8f31-e839f74a450b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtf6F3ZFgiEdkCYxYyE","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_012oQAipPYrJgvB8m5Fk3czC","name":"Read","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\bl.png"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":244,"cache_read_input_tokens":315139,"output_tokens":71,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":244,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":71,"cache_read_input_tokens":315139,"cache_creation_input_tokens":244,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":244},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtexNX3gr7dHh8gsWWX","type":"assistant","uuid":"6c7c421a-60ac-4e09-b0df-cd1ffce7cc79","timestamp":"2026-07-28T05:19:25.150Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6c7c421a-60ac-4e09-b0df-cd1ffce7cc79","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_012oQAipPYrJgvB8m5Fk3czC","type":"tool_result","content":[{"type":"image","source":{"type":"base64","data":"iVBORw0KGgoAAAANSUhEUgAAB8kAAAC6CAIAAACiKeu+AABCIklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a9ec801XHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvEoDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyqA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCiC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICCK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxVAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVADBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKoDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyqA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCiC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICCK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxVAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVADBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKoDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyqA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCiC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICCK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxVAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVACV/xkkcT/bXHXV/yeSuJ9trrrqqquuuuqqq6666qqrrrrqqquuuuqq/7kAKv8D2G6t2S6lzOfz2WzW930pxfbGxkYpxXZmctVV/yfUWqdpGsdxHEdJwzCs1+v1er1eryVJigiuuuqqq6666qqrrrrqqquuuuqqq6666qr/oQAq/31s246IxWKxubnZdV0ppdZaSomIiABKKREB2Oaqq/5PiIjMzMzWmqTWWmuttTZN0ziOq9VquVyO4yhJElddddVVV1111VVXXXXVVVddddVVV1111f8sAJX/Pn3fl1L6vt/c3Nze3p7NZhEB2AZsA5kpCZDEVVf9XxERpZSu6wBJgCTbwzAcHR0dHBys1+txHKdpykyuuuqqq6666qqrrrrqqquuuuqqq6666qr/QQB0zTXX8F9IEvc7derU8ePHNzY2bNu2zf0kcZltQBJXXfV/l20ukyQJsH3+/Pnd3d2jo6OIAGxz1VVXXXXVVVddddVVV1111VVXXXXVVVf99wPQNddcw3+h1tpisTh27NiJEydKKREBSOIFsA1I4qqr/t+wDdiepmm1Wt13333L5dJ2KcU2V1111VVXXXXVVVddddVVV1111VVXXXXVfyeAsrm5yX8J2xFx/PjxkydPbm9vz2aziJAkiX+JJK666v8NSZIiopRSSpnNZrVW28MwSOKqq6666qqrrrrqqquuuuqqq6666qqrrvrvBFD5z2c7Ivq+XywWp06d2tjYiIjM5KqrrnrBbAO11mPHjs1ms1qrpGEYMpOrrrrqqquuuuqqq6666qqrrrrqqquuuuq/DUDZ3NzkP5OkzJzP5ydOnLjhhhu6rgNs868hiauu+v8qM7uuWywWi8Xi6OgoM21z1VVXXXXVVVddddVVV1111VVXXXXVVVf99wAom5ub/GdqrR07duz06dMnTpywLYl/PUlcddX/V5IAoNa6s7PTWhvHsbUWEVx11VVXXXXVVVddddVVV1111VVXXXXVVf/VAMrm5ib/OWxHxPHjx0+ePLm5uVlK4d9KEldd9f+bJEmllL7vI6K1No6jJK666qqrrrrqqquuuuqqq6666qqrrrrqqv9SAJX/NLXWxWJx8uTJjY2NiLDNVVdd9e+2sbEhCcjM1pptrrrqqquuuuqqq6666qqrrrrqqquuuuqq/zoAZXNzk/9okmxvbW2dOXNma2uLfzdJXHXVVZfZrrXO5/PW2jAMrTVJXHXVVVddddVVV1111VVXXXXVVVddddVV/0UAyubmJv/RWmunTp06efLk5uambUn8+0jiqquuegBJGxsb0zRN09Rak8RVV1111VVXXXXVVVddddVVV1111VVXXfVfAaBsbm7yH8e2pK2trZMnT25sbEQE/xEkcdVVVz2ApIjoui4z1+s1V1111VVXXXXVVVddddVVV1111VVXXXXVfxGAsrm5yX8cSX3fnzp1amtrq9Zqm/8IkrjqqqueR9d1klpr4zhy1VVXXXXVVVddddVVV1111VVXXXXVVVf9VwCo/Mex3ff91tbW8ePHJdnmqquu+s9ke3NzMyLW6/U0TZnJVVddddVVV1111VVXXXXVVVddddVVV131nwsg+A8iCdjY2Dh9+jRXXXXVfxVJfd+fOnUqIjKTq6666qqrrrrqqquuuuqqq6666qqrrrrqPxdA5T9IZm5tbe3s7PR9z1VXXfVfqJSyvb19eHhoe5omSVx11VVXXXXVVVddddVV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VVddddVVV1111VVXXXXVfw8AXXPNNfznsC1pNpsdP358Z2dnsVhkJv9KtgFJXHXVVZCZe3t7ly5dOjw8zEz+x7DdWmut2eY/h6RSSilFElddddVVV1111VVXXXXVVVddddVVV1313wag8p9GEnB0dGTbtqRaa0Rw1VVX/evZnqZpuVyeP39+uVzalsT/GJK6ruu6ThL/OWwDtrnqqquuuuqqq6666qqrrrrqqquuuuqq/04Auuaaa/jPJCkzSykbGxs33HBDrTUibEviRWAbkMRVV/1/ZTsihmHY29u75557ANtcddVVV1111VVXXXXVVVddddVVV1111VX/PQDK5uYm/8kkAa21vb29iOi6ru9727zIJHHVVf8vSSql7O7unjt37uLFi4Btrrrqqquuuuqqq6666qqrrrrqqquuuuqq/zYAZXNzk/8StqdpmqZpGIbWWt/3ESGJF4Ekrrrq/5mIyMzlcnnu3Lm9vb3lctla46qrrrrqqquuuuqqq6666qqrrrrqqquu+m8GUPkvJOnw8HC1Wq1WK2A2m3VdV0rhqquuegDbtodhWK1WBwcHFy5csA1I4qqrrrrqqquuuuqqq6666qqrrrrqqquu+m8GUDY3N/kvVEoBxnG8dOnSer0upcxmM0mAbR5AEveTZFsSV131f45t7icJsL1er8+ePXvu3Ln9/f1SCiCJq6666qqrrrrqqquuuuqqq6666qqrrrrqvx+ArrnmGv47SJIkqZQyn89PnDixsbHR9z0A2LYN2AYkSeKqq/5PsM39JAGSgMw8Ojra39/f398fhsG2bdtcddVVV1111VVXXXXVVVddddVVV1111VX/gwBU/pvYtm27tdZaa63VWmutEVFr7bqu1hoRpRSgtTZNE1dd9b+fpL7vgczMTNvjOI7jOE1Ta22apmEYhmHITEASV1111VVXXXXVVVddddVVV1111VVXXXXV/ywAlf9WkoBpmvb3920DpZSu62azWdd1EdF1HTBN0zAMXHXV/34RMZ/PbWdmZrbWhmEYhmEcx9aapIiQJImrrrrqqquuuuqqq6666qqrrrrqqquuuup/IoDK/wCSIoL7jeM4DAOX2QYkcdVV/1fYBgBJXCYpIiICsM1VV1111VVXXXXVVVddddVVV1111VVXXfU/F0DlfwbbPIAkLpPEVVf93yKJ52Gbq6666qqrrrrqqquuuuqqq6666qqrrrrqfwGA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCiC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICCK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxVAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVADBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKoDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUF8I8K86C9k31zkgAAAABJRU5ErkJggg==","media_type":"image/png"}}]}]},"uuid":"dc482fa1-b996-4c59-9776-d773c855123a","timestamp":"2026-07-28T05:19:25.221Z","toolUseResult":{"type":"image","file":{"base64":"iVBORw0KGgoAAAANSUhEUgAAB8kAAAC6CAIAAACiKeu+AABCIklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a9ec801XHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvEoDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyqA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCiC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICCK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxVAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVADBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKoDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyqA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCiC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICCK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxVAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVADBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKoDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyqA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCiC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICCK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxVAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVACV/xkkcT/bXHXV/yeSuJ9trrrqqquuuuqqq6666qqrrrrqqquuuuqq/7kAKv8D2G6t2S6lzOfz2WzW930pxfbGxkYpxXZmctVV/yfUWqdpGsdxHEdJwzCs1+v1er1eryVJigiuuuqqq6666qqrrrrqqquuuuqqq6666qr/oQAq/31s246IxWKxubnZdV0ppdZaSomIiABKKREB2Oaqq/5PiIjMzMzWmqTWWmuttTZN0ziOq9VquVyO4yhJElddddVVV1111VVXXXXVVVddddVVV1111f8sAJX/Pn3fl1L6vt/c3Nze3p7NZhEB2AZsA5kpCZDEVVf9XxERpZSu6wBJgCTbwzAcHR0dHBys1+txHKdpykyuuuqqq6666qqrrrrqqquuuuqqq6666qr/QQB0zTXX8F9IEvc7derU8ePHNzY2bNu2zf0kcZltQBJXXfV/l20ukyQJsH3+/Pnd3d2jo6OIAGxz1VVXXXXVVVddddVVV1111VVXXXXVVVf99wPQNddcw3+h1tpisTh27NiJEydKKREBSOIFsA1I4qqr/t+wDdiepmm1Wt13333L5dJ2KcU2V1111VVXXXXVVVddddVVV1111VVXXXXVfyeAsrm5yX8J2xFx/PjxkydPbm9vz2aziJAkiX+JJK666v8NSZIiopRSSpnNZrVW28MwSOKqq6666qqrrrrqqquuuuqqq6666qqrrvrvBFD5z2c7Ivq+XywWp06d2tjYiIjM5KqrrnrBbAO11mPHjs1ms1qrpGEYMpOrrrrqqquuuuqqq6666qqrrrrqqquuuuq/DUDZ3NzkP5OkzJzP5ydOnLjhhhu6rgNs868hiauu+v8qM7uuWywWi8Xi6OgoM21z1VVXXXXVVVddddVVV1111VVXXXXVVVf99wAom5ub/GdqrR07duz06dMnTpywLYl/PUlcddX/V5IAoNa6s7PTWhvHsbUWEVx11VVXXXXVVVddddVVV1111VVXXXXVVf/VAMrm5ib/OWxHxPHjx0+ePLm5uVlK4d9KEldd9f+bJEmllL7vI6K1No6jJK666qqrrrrqqquuuuqqq6666qqrrrrqqv9SAJX/NLXWxWJx8uTJjY2NiLDNVVdd9e+2sbEhCcjM1pptrrrqqquuuuqqq6666qqrrrrqqquuuuqq/zoAZXNzk/9okmxvbW2dOXNma2uLfzdJXHXVVZfZrrXO5/PW2jAMrTVJXHXVVVddddVVV1111VVXXXXVVVddddVV/0UAyubmJv/RWmunTp06efLk5uambUn8+0jiqquuegBJGxsb0zRN09Rak8RVV1111VVXXXXVVVddddVVV1111VVXXfVfAaBsbm7yH8e2pK2trZMnT25sbEQE/xEkcdVVVz2ApIjoui4z1+s1V1111VVXXXXVVVddddVVV1111VVXXXXVfxGAsrm5yX8cSX3fnzp1amtrq9Zqm/8IkrjqqqueR9d1klpr4zhy1VVXXXXVVVddddVVV1111VVXXXXVVVf9VwCo/Mex3ff91tbW8ePHJdnmqquu+s9ke3NzMyLW6/U0TZnJVVddddVVV1111VVXXXXVVVddddVVV131nwsg+A8iCdjY2Dh9+jRXXXXVfxVJfd+fOnUqIjKTq6666qqrrrrqqquuuuqqq6666qqrrrrqPxdA5T9IZm5tbe3s7PR9z1VXXfVfqJSyvb19eHhoe5omSVx11VVXXXXVVVddddVV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VVddddVVV1111VVXXXXVfw8AXXPNNfznsC1pNpsdP358Z2dnsVhkJv9KtgFJXHXVVZCZe3t7ly5dOjw8zEz+x7DdWmut2eY/h6RSSilFElddddVVV1111VVXXXXVVVddddVVV1313wag8p9GEnB0dGTbtqRaa0Rw1VVX/evZnqZpuVyeP39+uVzalsT/GJK6ruu6ThL/OWwDtrnqqquuuuqqq6666qqrrrrqqquuuuqq/04Auuaaa/jPJCkzSykbGxs33HBDrTUibEviRWAbkMRVV/1/ZTsihmHY29u75557ANtcddVVV1111VVXXXXVVVddddVVV1111VX/PQDK5uYm/8kkAa21vb29iOi6ru9727zIJHHVVf8vSSql7O7unjt37uLFi4Btrrrqqquuuuqqq6666qqrrrrqqquuuuqq/zYAZXNzk/8StqdpmqZpGIbWWt/3ESGJF4Ekrrrq/5mIyMzlcnnu3Lm9vb3lctla46qrrrrqqquuuuqqq6666qqrrrrqqquu+m8GUPkvJOnw8HC1Wq1WK2A2m3VdV0rhqquuegDbtodhWK1WBwcHFy5csA1I4qqrrrrqqquuuuqqq6666qqrrrrqqquu+m8GUDY3N/kvVEoBxnG8dOnSer0upcxmM0mAbR5AEveTZFsSV131f45t7icJsL1er8+ePXvu3Ln9/f1SCiCJq6666qqrrrrqqquuuuqqq6666qqrrrrqvx+ArrnmGv47SJIkqZQyn89PnDixsbHR9z0A2LYN2AYkSeKqq/5PsM39JAGSgMw8Ojra39/f398fhsG2bdtcddVVV1111VVXXXXVVVddddVVV1111VX/gwBU/pvYtm27tdZaa63VWmutEVFr7bqu1hoRpRSgtTZNE1dd9b+fpL7vgczMTNvjOI7jOE1Ta22apmEYhmHITEASV1111VVXXXXVVVddddVVV1111VVXXXXV/ywAlf9WkoBpmvb3920DpZSu62azWdd1EdF1HTBN0zAMXHXV/34RMZ/PbWdmZrbWhmEYhmEcx9aapIiQJImrrrrqqquuuuqqq6666qqrrrrqqquuuup/IoDK/wCSIoL7jeM4DAOX2QYkcdVV/1fYBgBJXCYpIiICsM1VV1111VVXXXXVVVddddVVV1111VVXXfU/F0DlfwbbPIAkLpPEVVf93yKJ52Gbq6666qqrrrrqqquuuuqqq6666qqrrrrqfwGA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCiC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICCK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxVAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBRBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBBFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVADBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKoDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQRXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUF8I8K86C9k31zkgAAAABJRU5ErkJggg==","type":"image/png","originalSize":10103,"dimensions":{"originalWidth":3000,"originalHeight":280,"displayWidth":2000,"displayHeight":187}}},"sourceToolAssistantUUID":"6c7c421a-60ac-4e09-b0df-cd1ffce7cc79","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dc482fa1-b996-4c59-9776-d773c855123a","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":"[Image: original 3000x280, displayed at 2000x187. Multiply coordinates by 1.50 to map to original image.]"},"isMeta":true,"uuid":"3bc3cdce-831e-489c-b2df-e7c3f652fb4e","timestamp":"2026-07-28T05:19:25.216Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3bc3cdce-831e-489c-b2df-e7c3f652fb4e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtfHsHSt3nvqe7aQpEj","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The bubblesline pill now renders with the caps flush against the fill, eliminating that step that was visible before. I need to check the full render across all rows to confirm the change is working correctly throughout.","signature":"CAISxwUKhwEIEBgCKkDEGQG4K19wsKm7nidAs78BdMd1yu8cenMkszvwWABaYeZglyb0PZrO5qPO2YHL4heiYUOBgAzbKFmWqoBgcK3+Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDBNSJcdFmWGb4cqjvBoM3Z+rMUreWaW3bVKrIjCVg2/uoaxU9KuwZNmwMs0MdJjNd2QEfgBIj48QJInKMFnJrVKJW6kYtunR4FciKCcq7ANtBL0H4lcFlVRBoB0LkgMasCCQu/wrBqhE7IyRt2qaDbzXVsb0DqafWUpn0j0K/xGOy1FgYtrqTnuX2Ja3tA1GK7du24Ub6losRmFbKWhHywLEAXWPq1OEc1AAf2h1yC6L4WUCxoZtiTFV8WnQB1Rf2he7p28chpveDPjOpkmbHnso7n96KCT93YRVZNtFVVuntmKGfa46jh+NMsEeXf8YNTpC5y5J4vVkHM63PmZO1mrNamB5kCFRzPv2SpNB4tVyEaF61DaGMQaxKn+0SXAkFAV1I7OPiK+kse4zOZcoxr+UswNdp2xk2FRdh7nuBDcFXYGW4Va3RKWb8DgPyWaCzNmDxaAjxO90Y4q+N8Ut+8x6p4FUvZwHBmf28adO92msu+pO5EKv/qGjrxmxGJOmMPJ7GsYK75BmTcUEbCwhY+KHMTmFUr03vpMI+SjhRAQ2/465HNHbE7GW1X0uyTskIDa0MRhb1wrL6zIexE25cBIFgVteRE8LVjkPhKGSU+VZYDfKhEQueBqC3RgMGpp9FyBOso1u2H9ytQXXduhDQEkuzMju6tdITnVK48s+jME1MHvldAujDDksibJKzPz2BwNDs7M7QUWTERsLzj+9hccZbNBg6ryly9vlcxVRhV8VoH3gI8luNSNK6/0YAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":638,"cache_read_input_tokens":315383,"output_tokens":348,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":638,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":348,"cache_read_input_tokens":315383,"cache_creation_input_tokens":638,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":638},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtfENwLprruYytWQ1ec","type":"assistant","uuid":"d99c5f5e-5a3d-4ec4-a6fe-8bdcd960a77f","timestamp":"2026-07-28T05:19:31.255Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d99c5f5e-5a3d-4ec4-a6fe-8bdcd960a77f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtfHsHSt3nvqe7aQpEj","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01LMoAnNgwAKtGne8WtyZ7Vy","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/crop.py\" out/bubblesline.raster.png \"$TMPDIR/bl2.png\" 130 150 1700 380 2","description":"Crop full bubblesline prompt"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":638,"cache_read_input_tokens":315383,"output_tokens":348,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":638,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":348,"cache_read_input_tokens":315383,"cache_creation_input_tokens":638,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":638},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtfENwLprruYytWQ1ec","type":"assistant","uuid":"bc3c59a8-1f31-4be0-9b78-3aeee3abb277","timestamp":"2026-07-28T05:19:31.636Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bc3c59a8-1f31-4be0-9b78-3aeee3abb277","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01LMoAnNgwAKtGne8WtyZ7Vy","type":"tool_result","content":"(3432, 693) -> crop (3400, 760) saved C:/Users/jande/AppData/Local/Temp/bl2.png","is_error":false}]},"uuid":"10b80434-6ff4-4d37-a46d-9e0b030c9a2a","timestamp":"2026-07-28T05:19:36.394Z","toolUseResult":{"stdout":"(3432, 693) -> crop (3400, 760) saved C:/Users/jande/AppData/Local/Temp/bl2.png","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"bc3c59a8-1f31-4be0-9b78-3aeee3abb277","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"10b80434-6ff4-4d37-a46d-9e0b030c9a2a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtg8MZuMWkBqUKQp2kG","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01HYg9h6o5b8Z8CC6cAP1Y89","name":"Read","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\bl2.png"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":398,"cache_read_input_tokens":316021,"output_tokens":72,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":398,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":72,"cache_read_input_tokens":316021,"cache_creation_input_tokens":398,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":398},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtg4tTj97xiu22VuVks","type":"assistant","uuid":"9d364caa-5b75-4903-9a80-c0be3a0743ab","timestamp":"2026-07-28T05:19:40.077Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9d364caa-5b75-4903-9a80-c0be3a0743ab","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01HYg9h6o5b8Z8CC6cAP1Y89","type":"tool_result","content":[{"type":"image","source":{"type":"base64","data":"iVBORw0KGgoAAAANSUhEUgAAB88AAAG/CAIAAABZjQH+AACyBElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a/+wlu/0UueOL7d1ckW/3Vs7l4uP/kv/+G37z2/09Vm80KFWK7zEQ/a+IKPetgjHrRRivgvJDFOfvKthx/3ZU+5695138vmhVNoOJxueaXjL/9eN+3cMMcg/stITOu8828u/d5X3Yq56qqrrrrqqquuuuqqq6666qqrrrrqqquuuuo/CQDE3jg1m/96Yn+chrTA/MsMQEvvHzVA4r+Yzf5hcxrxIpKUo8dlk/gvZZCyeTxKcdVVV1111VVXXXXVVVddddVVV1111VVXXXXVfyIAiCftHaxbhsR/IYPgaQeH++NUJF40EVqv82m3L9P8FxNqzc+4ezk2S7xIbAXrw3Zw36CQ+S8lMa1z/541V1111VVXXXXVVVddddVVV1111VVXXXXVVVf9ZwKA+P37zh+1qQib/0p9xB+fvXjfatWFbPMvMiW0f9T+7O8uCcR/HZsI0v6zv9tfrTMkm3+RIaoOzw3nnnKkKsx/GZuoGo7avY/bR+Kqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv80ABB/e3Hv7qPVmJb4L2P7YBz/5uKlC8NYJPMvM0SwXLd/eOrhuYtDS/7LSLT0xUvjXz/hYBgzgheJiaLVpfHC0w7X+xOY/zIimw/Prs8/+Yirrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/4zAUCM9p+cu3jvct2FzH8FQbP/4OyF3WHkX8scHrXf/rOLR6tWimz+s9mUov3D9id/u7d3MGXyr6Sj8+Ndf3mJ/yo2perw7HDf4w/HdYK56qqrrrrqqquuuuqqq6666qqrrrrqqquuuuo/DQBEF/Ezt9/95P2DPiJt/vNJWrX8wafdvjuMVWH+FRQaJv/IL917cW8qwX8BQy2699zw479yL0LiRWdTqo4ujE/6tXNO/ovY0en8045u++OLtQ+bq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+8wBABDz94OiPzl647eCoSuY/l+Bomv76wqW/unhplRniX0WQ6TvuXf/xX++euziWwOY/j00Jzu+Of/WEvSc8/cjmX020MXdvX931N5emdUr85zIKHdw33PsP+xdvWymEueqqq6666qqrrrrqqquuuuqqq6666qqrrrrqPw8ARNo19Et33vPn53eP9V1L85+m2bMSF4fx259866ol/yY2Ej/8i/fcce96Y1Famv80Lb29WZ9829GP/8p9Ctnm30Aaj9rjf/6+NqaqnPznyfRsu97xl5du+7PdqMLmqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/TABQNjc3a8S59dBFPGRz45rFfEpL/Iez6UvsjtOv3XXfD916B4h/qwidvTCcPNbdcv38+HadGhL/4Wz6Lu45N/zcb539tT+6OOsizb+BhGG5O22e6XeunXfzyETiP56JGpfuWD7xl8/e9/jD2ofNVVddddVVV1111VVXXXXVVVddddVVV1111VX/qQCgbG5uAoazq3XaL3fyeAmJ/2AGiTS/e+/5b3vKM86uBvHvI9113/r4Tn3UQzZD2Ej8xzM/85v3/dSvn90/ahH8e9js37s+duN869qZAIP4j2VoY/79T997x19cakMquOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqPxsAlM3NTaCLuDCM59fj6Vn/8O2tIvEfrY/4q/O73/3UZ/zOvec2a03+XWrVPeeG5SqvPd0/6IY5/wki+OO/vfT9P3/P3z/lcGujZPLvodDBPWvD9rWzzdO9zX8siTbmbX+y+/hfuPfw3FhnBXPVVVddddVVV1111VVXXXXVVVddddVVV1111X82ACibm5uAYVbK7jA+/tLey5w8vtN1XQT/QQxT5oX18E1PevrP3H73idlssvn3sVnMy213rc7vji/5yO3FPCIk8R/CMAx5z7n1l3/XbX/zxIOtRWlp/p1Mtyjnn3IYVScetCh9SEL8R5nWefHWoz/9ttuXu1N0wlx11VVXXXXVVVddddVVV1111VVXXXXVVVdd9V8AAMrm5iaXGUJatvz1u+97yPbGDRuLLqLZksS/UZrEhruW60//q8f/+j1nZ6U0m/8INl3V3WeHv3zc3mMeunn6eC/JtiT+rTINmpqfdOvRp3zlU5982zKCNP8hnJS+nH/q4d7d61MP3ZhvV9sgiX8zpyVN67zrry/9wdc/YzhsNlddddVVV1111VVXXXXVVVddddVVV1111VVX/ZcBgLK5uckDGIb0H953vkiP3Nk+PZutW0suk8SLxJC2YVFKkX7n3nOf+zdP+NuLlxLMf7xL++1P//5SV/Toh25ubdZhyEwkSbyIbDINbG7U5Tp/4XfOftl3PuPuc0Om+Y9lJB3cN5x90sFsu5x66KaCnIwRQryIbEgj9Zv16ML4+F+6929/9O5xaae56qqrrrrqqquuuuqqq6666qqrrrrqqquuuuq/EACUzc1NnpPhYJqednD0+Ev7yzbduLG4Zj43NDttwIAECABzmTFOANXQTlen9J+eu/BtT771x55x5xP3DiZbEv8JMrl0MD39ztWTbj3KzBuumZ860bfmTNLGgACEALC5wnYaoVq1vVkPl+23//Tid//0Xb/0exfuvHdtEP8p3Ly6NF26fbV7x7J02r521m/WbLbBxgIEiGcygAEbI6l06jfKcnd8+u9feNzP3Xf7n11a7U4SV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9FwMAXXPNNTyPkFatzSIeur35ciePv/TJYy92fPvh21vbXTVM6bQbpA0EhBRSkYo0tHbncvUPu3t/feHSX17Y/fvdvUvDNCshMP9ZJIbBs5keccvGSz96+yUftfViD9+8+fr5YlZaujWnyXQmQAQRClGKSmi1brfetXrcUw//7kkHf/2E/ac8Y3m0bvM+bP6zCExO7jbi1EM3zjx668wjN08+ZGPzTF9qZLPTTpzGAAoUQkSVxHDYdu9YnX/K4bknH973xMP9u9c5uvSyueqqq6666qqrrrrqqquuuuqqq6666qqrrrrqvxgA6JprruH5CWGzbAm+ZWPxSmdOPObYzi2bi2sX82Ndt1nLRi2btQYsMw+n6Whq++N0drW+82j5tIOjPzl74XGX9pctN2sJKW3+k0kAy1VG8JCbFq/0kjsPv2Xjxmtmp0/025tlY1E25rGYFePlKo9WuVy1vYN29uJw933rJ9929Kd/e+npd64yWcxDkOY/m4TNtMoy08mHbFz72K1jN823zszmx2q/Ueq8dIsofTiZVm1c5bRq6/12dHHYv2d94enLe/5+7/DsqFDpJbC56qqrrrrqqquuuuqqq6666qqrrrrqqquuuuq/HgDommuu4QULSTDZ65ar1q5dzF782PYjd7avW8yuW8yvW8yrdH493L1c3btcPePo6G8v7j19/wgxL6WPEKRt/utECJgmr4Y2Nd987fyxj9h88A3za072153uTx3vbM5dHO85P9x3frj1zuU/POXwzvvWfY1ZH7UKyDT/ZYQk7Jw8rZPQsRtnpx62sX3tbONkv3G6m2/XbByeXy8vjEfnx4u3rS487ejowlBnUbpQEbbNVVddddVVV1111VVXXXXVVVddddVVV1111VX/XQBA11xzDf8SgaSAhLSbncY4DSARIClQCQUAiW3+u0hIknC6JZlOY9sGkAhJIkKlSMLGts1/FwkkBOlMSNvYxgBIEgoUUkjCxjbmqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/XgBQeREYbCcAgiohkIQAsA0A2G7897OxzWURRAgACQDzbJnmfwAbbC5TQCgAxAMYME6bq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+pwCAyr+SuZ8x5n88m2cx/xsYwFx11VVXXXXVVVddddVVV1111VVXXXXVVVdd9b8AAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAFT+Z5DEVVf9T2Kbq6666qqrrrrqqquuuuqqq6666qqrrrrqqn8JAFT+m0gCbNu2DQC2ueqq/26SAECSJEmAba666qqrrrrqqquuuuqqq6666qqrrrrqqqueBwBU/jvYzkzbtda+77uuK6UAfd9Lsm2bq676LxcRmTlNU2baHsdxHMdxHIGIkMRVV1111VVXXXXVVVddddVVV1111VVXXXXVcwKAyn+tzIyI2Ww2m80iou/7vu+7rqu12p7NZhFh2zZXXfVfrpTSWhvHMTNtD8MwDMMwDNM0DcMwDENmRgRXXXXVVVddddVVV1111VVXXXXVVVddddVV9wMAXXPNNfyXsF1KqbX2fb+9vX3s2LG+7yXZtg0AmQlI4qqr/vtIAgBJkmwPw7C3t7e/v79er6dpykyuuuqqq6666qqrrrrqqquuuuqqq6666qqrLgMAXXPNNfznkyRpe3v71KlTm5ubtgHbXCYJAGxL4qqr/mewzWWSJAGr1ers2bP7+/uZaZurrrrqqquuuuqqq6666qqrrrrqqquuuur/PQDQNddcw3++Y8eOnT59ej6fA5J4AWxL4qqr/qeybXsYhvvuu29/fz8zI8I2V1111VVXXXXVVVddddVVV1111VVXXXXV/1cAUDY3N/lPY7vv++uvv/7kyZN930uSxAsliauu+p9KkqRSytbW1mw2m6ZpvV5HBFddddVVV1111VVXXXXVVVddddVVV1111f9XAFA2Nzf5jyYpMyNiZ2fn2muv3d7e7rqOF40krrrqfzZJpZS+7+fzuaTVasVVV1111VVXXXXVVVddddVVV1111VVXXfX/FQCUzc1N/qNlZtd1x48fP3369NbWFv8akrjqqv8NIqLv+9lsFhHDMLTWJHHVVVddddVVV1111VVXXXXVVVddddVVV/0/AwBlc3OT/1C2+74/efLk6dOnF4tFa00SLzJJXHXV/x5d121sbNiepqm1xlVXXXXVVVddddVVV1111VVXXXXVVVdd9f8MAJTNzU3+Q9Vaz5w5c+rUqa7rMlMS/xqSuOqq/1UkbWxsAOv1urUmiauuuuqqq6666qqrrrrqqquuuuqqq6666v8NACibm5v8xymlXHPNNSdOnCilAJL4V5LEVVf9L7SxsSFpvV631iRx1VVXXXXVVVddddVVV1111VVXXXXV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VVddddVVV1111VVXXXXVZQBQ+a8VEcA0TXt7e7Yl1Vr7vu/7PiJqrbbHcWytcdVV/7UkzWYzIDMzc5qmYRiGYWitSYoISZK46qqrrrrqqquuuuqqq6666qqrrrrqqquuegAA0DXXXMN/B0lcZtu2bR5AEldd9V/ONveTJAmQBNjmqquuuuqqq6666qqrrrrqqquuuuqqq6666nkAQOW/iW3uJ0mSJC6zzVVX/XeICC6zzf1sc9VVV1111VVXXXXVVVddddVVV1111VVXXfUCAEDlfwzbXHXVfyvbXHXVVVddddVVV1111VVXXXXVVVddddVVV/1rAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUDlfyRJEcFzykzbXHXVA0SEJEm2ucy2bdv8XxQRkiTZ5n6ZaZurrrrqqquuuuqqq6666qqrrrrqqquuuuq/AwBU/uexPQzDer3OTO5XSun7vu97rrrqfpm5XC7HcbTNZZJqrbPZrJTC/zmZuVwux3G0zWWSSinz+byUwlVXXXXVVVddddVVV1111VVXXXXVVVdd9d8BACr/8ywWi9d8zdd8ndd5nTNnznC/u++++7d/+7f/4A/+ICJsc9X/exFx+vTpN37jN36Jl3iJzc1N28A4jk960pN+9md/9o477ogI/g+JiGPHjr3Jm7zJS73US21vb9sGxnF86lOf+vM///O33Xabba666qqrrrrqqquuuuqqq6666qqrrrrqqv9yAFD5n0RSZvZ9/+hHP/qt3uqtbrrpJu73tKc97e677/6TP/kT27a56v8325J2dnZe7dVe7Y3e6I02Nze5bJqm3//93//jP/7ju+66i/9DbEva2tp6lVd5lTd7szfb3t7msmma/vRP//RP/uRPbr/9dttcddVVV1111VVXXXXVVVddddVVV1111VX/5QAg+J8nIiTZBjKztQZkZkTUWrnqqvtFBJCZQGbabq3ZLqVI4v8cSUBmAplpOzMBSZK46qqrrrrqqquuuuqqq6666qqrrrrqqqv+OwBA5X8e29xPEg9gm6uuup9t7idJkiT+f5AkSRJXXXXVVVddddVVV1111VVXXXXVVVddddV/KwCo/M8jCZDEZZIASVx11XOSJEkSDyCJ/9Mk8QCSuOqqq6666qqrrrrqqquuuuqqq6666qqr/vsAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBQOU/miRJgCSek23btvl3kFRK4XnYtm2bf6WIkAQAtm3b5n6SJEnifrZt2+Z/DEmSJPGcbNu2zb+VJEmAJJ6Tbdu2+beKCEASz8M2kJn8W0mSJInnZBvITP5HkiQJkMQDZCb/PpIkSeL5sW3bNlddddVVV1111VVXXXXVVVddddVVV1111b8SAFT+g0iKCKC1NgzDNE2ZmZmAJEmSaq1935dSMtM2/0oRERGr1WoYhtZaZnJZREgqpcxms4iwbZvnISkieE6ZuVqtxnHMTEmllK7ruq4DgIiYpmm9Xk/TZFuSpFrrbDaLiMzkOUWEJJ5TZtrmRRARknhOtjNTkiRJPI/MHMdxHMfMtG0bkCSplNJ1Xdd1QGbyIpMUEUBrbRiG1lprLTMBSZIk1Vr7vi+lZKZtXjSSJEnKzPV63VrLzMy0zWWSJEVErbXv+4jITNv8a0SE7fV63VprrdkGJEmKiFpr3/eSbNvmfwBJkiKitbZer6dpyszMBCIiImqti8UiIiTxryFJEjAMwziOmWnbNpdJkiSp1tp1Xa01M23zPCRJksRzykzbvAgkRQTPybZt21x11VVXXXXVVVddddVVV1111VVXXXXV/1oAUPl3k5SZ4zgOw5CZx48fv/nmm0+fPr2zs7NYLCJiHMdhGNbr9b333nvbbbft7e3N5/Naq21eZLaXy+Vyubzxxhuvv/767e3txWJRSpmmaRiG1Wq1u7v71Kc+dW9vr5TSdR3PyfY4juv1OjNtc5mk7e3tF3uxF7vuuus2Nzenadrb27vjjjtuv/12ScD+/v611177Ui/1UqdPn57NZq211Wp17733Pu1pT7t06dLGxgYPkJmr1WoYBtvcr5TS933f9/xLbC+Xy2EYbNsGgIjoum42m2Xmer0ex9E29yulZObm5uZNN9104403bm1tzefzWmtrbRiGYRj29/dvv/32u+66C5jNZhFhmxdKUmaO4zgMQ2YeO3bsIQ95yJkzZ3Z2dhaLRUSM4zgMwzAM995772233ba7uzufz2utvGiGYZimaRiGra2thz70oadPn97Y2JjNZn3fl1IycxzH1Wp1dHR033333X777fv7+4vFotZqmxeN7b29vVrrQx7ykGuvvXaxWMznc2Acx2EYjo6O7rnnnqc//enTNPV9HxH8D7Ber6dpGobh+PHjD3/4w0+dOrW9vb2xsZGZwzAcHBzcfffdd9xxx+HhYWuN52SbF0BSa221WgEPe9jDrr/++s3Nzb7vu64rpdgex3Ecx/V6ff78+dtvv/2+++6bz+dd10myzQNM07RarVprtrlfrXU2m9VaeRGM47her6dp4n6Saq1939daueqqq6666qqrrrrqqquuuuqqq6666qr/tQCg8u8jaZqmvu+vv/7666+/fnt7+5ZbbnnMYx5zyy23nDlzZmdnp9a6XC6Xy+XR0dFTn/rUP/uzP/vbv/3b++677+zZsxEhiRdNrfVBD3rQm73Zm73sy77sox/96NOnT+/s7NRax3FcLpcHBwd33333H/zBHzzucY+77bbbzp07l5kRwWW2a63XXXfdgx/84I2NDUlcZvvkyZOv8Rqv8YhHPOLEiRPDMJw9e/Zv/uZvfu3Xfu3xj3+8pEc84hGv+Zqv+Rqv8Rq33HLL5ubmNE37+/tPfepTf/M3f/OP//iPz58/v16vJUlqrW1tbd1000033HCDJEmApMPDwzvuuOOOO+6QZJsXwHbf97fccsuDHvSgruskAZLW6/U999zzjGc8o+/7F3/xFz99+nStlfsdHh5O03TjjTe+9Eu/9KMf/eiTJ09ubW31fT9N03K5XC6X586d+5u/+Zs//dM/vf322+++++6jo6Ou63jBJE3T1HXdddddd/31129vb998882PecxjHvSgB11zzTU7Ozu11tVqtVwuDw8Pn/70p//Zn/3Z3/zN39x3331nz56VJIkXzHZE3Hjjjddee+3GxsaNN974ci/3crfccsuxY8c2NjY2Nja6rmutLZfLw8PD3d3dpz/96X/+53/++Mc//t577z137lzXdbwIJM3n85d92Zd9+Zd/+Zd92Zd9yEMecvz48c3NTWC9Xh8dHV26dOlJT3rS7//+799666233Xbb4eGhJEn8N7Et6cEPfvB11103n89vueWWl37pl77ppptOnz597NixzDw6Ojp//vyTn/zkv/zLv1ytVltbW7xobLfWjh079uhHP/r6669/rdd6rUc96lHHjx9fLBbz+bzrusxcr9fL5fLo6OiOO+74i7/4i7/4i784d+7cnXfeCUQED3Dy5MkHP/jBJ06ciAgus727u3vrrbdevHiRF0pSZl577bW33HLLiRMnbEsCbF+4cOG22267cOGCJK66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nt3a2uJ+x48ff+QjH3nttdeePXs2M3lOkoZhOHny5CMe8YidnR3bkrjsnnvuefKTn7y/v991HS9ARGTm3Xfffffdd1+8ePGee+4ZhuHUqVM33njjTTfddO211wKAJNvz+fzFXuzFXv/1X/+JT3zi+fPnbXOZbduv/Mqv/Mqv/MpnzpwBbEsCJO3u7t5xxx233377uXPnJN1www033njjzTffvLGxwQPceOONr/M6r/OkJz3p3nvv5X62SykPetCDXvZlX/b06dOSuJ+kaZruuuuuu+66a39//9y5c/v7+xsbGw960IOuv/76m266aT6fA7YlRcS11177Vm/1Vvfdd9/P/MzP3HvvvbVWXjBJwIULF2677bZ77rnnnnvu2djYuPbaax/84AffcMMNXdfZlmQ7Ih7zmMe85mu+5t/93d/deeed/JewfeLEiVd6pVd61Vd91Z2dHduSuEzSxYsXn/GMZ9x777133HFH3/cnT568/vrrb7nlltOnT/Mvycy+71/+5V/+tV/7ta+//nrAtiRA0jRN99xzz91333333XdfuHCh7/trr7322muvveGGG06ePAnYlmR7c3PzlV7plR7/+Mc/7WlPOzg4AGqtd95555Oe9KRXeZVXuf7667nfjTfe+IhHPOLUqVMXLlyQZJvncfLkyUc96lHXXXcd95O0u7v7xCc+8d57740I21x11VVXXXXVVVddddVVV1111VVXXXXV/1oAUPk3iYiTJ0++/Mu//HXXXSfJtiSgtXbrrbf+wi/8wl//9V/ffvvt586di4ibbrrpuuuue4M3eIPXeI3XuPbaa21LAiQ9/OEPf/EXf/G//uu/vnDhgiReqNVq9aQnPem3f/u3n/jEJ95111233357a+306dMPfvCDX/EVX/EN3/ANb7rpplIKl9VaH/awh73SK73SE5/4xN3dXUk8P4eHh3/913/967/+68vl8g3f8A1f5VVeZbFY2JbEZev1+u/+7u9+8zd/87777nvN13zN137t197Z2ZEERMTJkydvvPHGrusODw9LKcvl8slPfvLtt99+0003lVK4bLFYPPShD33EIx6xu7u7XC4jgue0WCxuueWWhzzkIV3X2bYt6ejo6NZbb33605/OCzZN0zOe8Yw/+qM/+su//MuzZ8+eP3/+3nvvHYbh1KlT119//WMf+9g3fdM3fYmXeIm+77nf8ePHX+7lXu6Rj3zkX/zFXyyXy1KK7Yg4ceLEy7/8y99www2SbEsCWmu33XbbL/7iL/7lX/7l7bfffu7cOeCmm2669tprX//1X/+1Xuu1rrvuOtuSAEkPe9jDXuIlXuLP//zPz58/Lwmwvbm5edNNN910002lFNsAYPuee+75wz/8w9///d+/++67L126dP78+b29vY2NjQc/+ME33njjy7/8y7/Wa73WLbfcEhG2JUXEYrHY2trqus42L9SFCxf+9E//9E/+5E+e9rSn3XPPPXfffffm5uY111zz6Ec/+rVf+7Vf7dVebWdnB5AEHDt27CVe4iVe4iVe4rbbbpPEfzJJ0zQ98pGPfJmXeZmbbrqJB8jMJz/5yb/xG7/xx3/8x/fdd9/tt9/e9/3p06evueaaF3/xF3+zN3uzRz3qUbPZjBfq2LFjr/Ear/HQhz606zpAEpCZ99xzz+/+7u/+1V/91W233XbPPfecP39+Nptdd91111xzzcMf/vBXe7VXe7mXe7nNzU3ud+21177cy73cH//xH//Jn/xJrTUizp0796QnPenOO++8/vrrud+JEyce+chH3nTTTffdd1/XdTwP27fccsvDH/7wY8eOcZlt4K677nrSk5504cKFWitXXXXVVVddddVVV1111VVXXXXVVVdd9b8ZAFT+9TJzsVg8/OEPf9jDHjafz7lfZt57770/+ZM/+R3f8R233377bDYrpdh+2tOetlwun/jEJ7bW3vRN33R7e9u2JNsnTpx4+MMffv311993331d1/EC2JZ06623fv/3f//3fM/3LJdLSV3XSXr605/+53/+53/yJ38yDMPbvu3bXn/99VwmaWtr69GPfvTx48fvuOMOnp/MvOOOO374h3/4+7//+zc3N0+cOPGYxzxmsVhwmW1J99xzz8/+7M9+y7d8S2aWUl7yJV9ye3tbEhARi8Xi5MmTtVbbkoZhuOuuu5785Ce/9Eu/9Hw+lwTUWm+44YZHPvKRf/VXf2Vbkm0AkNRau/baax/96Edff/31PMDFixef9KQn3XHHHaUU2zyPzDx79uyP//iPf8/3fM+Tn/zkzc1NSaUUSXfdddef/umf/t7v/d7Zs2c/9EM/9GEPe1jXdZKAWuuNN974Yi/2Yn/3d393eHhYSsnM+Xz+sIc97GEPe9jGxgb3y8xz58799E//9Hd8x3c8/elPn81mEQHceuutR0dHj3/848dxfMu3fMudnR3bXHb8+PGHPexhN95443333VdrBTJzc3Pz2muvPX78OJfZlrS/v/97v/d7X/d1X/cXf/EXXddFRCklIs6dO/fUpz7V9u/8zu+cP3/+bd/2bR/84AdLysyzZ8/+wi/8wm/8xm/cd999tVbbPD+2p2n6kz/5k6/7uq/7vd/7PUm11lKK7cc97nF/8Ad/8KQnPamU8lqv9Vp930uyHRHXXXfdox71qF/91V9trdnmP5OkzLz55psf/OAHLxYL25JsS7rrrrt+5md+5ru/+7tvu+22vu9LKbZvu+22o6Oj3/qt37r33ns/4AM+4JGPfGTXdTw/tvu+v/HGGx/72Mdubm7yABcvXvzlX/7lb/qmb3rSk56UmV3XlVJsP+UpT5mmaT6f//3f//0HfuAHvuqrvmqtVZLtvu9vvvnmhz70oX/2Z38mCViv1894xjOe/vSnv8RLvETf95Jsz2azBz/4wQ95yEP+8i//UpJtnpOkRzziEbfccst8Pgck2R6G4alPfeoznvGMo6Ojrutsc9VVV1111VVXXXXVVVddddVVV1111VX/awFA8K8kyXbf9w960IOuvfbaWiv3Wy6Xf/mXf/lzP/dzBwcHOzs7s9mslFJrnc/np0+f/ru/+7tf+IVfePzjH88DzOfzG2+88frrr7ctiefHtqTVavWkJz3pr//6ryVtb29vbGzUWkspi8ViPp+fP3/+53/+5x/3uMetVivAtqSu62666aabbrppY2MjMyVxP9vAer2+7bbbnvCEJxw7diwidnd39/f3eU533HHHU57ylOVyubOzc/HixcPDw8zkMkl93584caKUYluS7cPDw8c//vHnz59vrXFZROzs7Dz60Y9eLBY8J0mttWuvvfahD33o8ePHbUvisjvvvPMpT3nKhQsXJPE8bNt+6lOf+id/8icXL1685pprNjY25vN5rbWU0vf98ePHp2n6jd/4jd/4jd+4dOkS94uIra2thzzkIfP5HJBku+u6Bz3oQdddd12tlfutVqu/+qu/+rmf+7nd3d2dnZ3ZbFZrrbXOZrPTp08//vGP/4Vf+IW///u/BwBJtmez2Q033HDjjTdmpiTA9nw+P3bs2GKxsC0JAO65556//Mu/vPXWW0+ePLmxsTGfz2utEVFr3djY2N7evueee378x3/8N37jN86fP5+Z995778/8zM9827d92z/8wz9M0wTY5vmxvbu7+2d/9md33HHHYrHY3t6ezWallFrr5uZmRPzDP/zDL/7iL959992Zyf22t7cf9KAHXXPNNRFhm/9k8/n8lltuue666yRxv2EY/viP//jXfu3X7rrrruPHj89ms1JKrbXv+xMnTtj+pV/6pd/4jd+4ePEiz4+kzFwsFg9+8IOvv/76UgpgG1itVk94whN+/ud//r777lssFtvb27PZrJRSa53P5zs7O5L+8i//8hd/8Rfvuusu29zv9OnTD3vYw44fPw7Y7vv+vvvue+ITn7i7u8sDXH/99Y961KNOnDjB85C0tbX16Ec/+pprrpFkG7C9t7f3uMc97ty5c1x11VVXXXXVVVddddVVV1111VVXXXXV/34AEPzr2e77/pZbbtnZ2YkIQBKwu7v7t3/7t3fcccd6vc7MzLRtOzNba8Ctt976uMc97ujoiPtJOn369PXXX9/3PS/Ucrm85557zp49C7TWMtO27czMTNtPe9rTnvCEJ+zt7XE/SadOnbrhhhs2NjYyk+cxjuPFixd3d3dbaxcvXtzd3R2GgQfIzL29vf39fUnTNO3u7q5WK9vcr5SyubkZEQAQEeM4PvnJT77zzjvHcQRsAxsbGw972MMe8pCHzOfzzOQBpmm65ZZbHvKQh8xmM+63Wq2e/vSn33bbba017idJEg/QWhvHcZqm1lprLTNt287M1lpr7fDw8G/+5m/uueeeaZoA28B8Pr/hhhvOnDnTdZ1t213X3XzzzceOHYsIQBKwt7f3t3/7t7fffvtqtbKdmbZtZ2ZrDbjtttv+4R/+4eDggPtJOnXq1PXXXz+fzwHAdiml67qI4AEODg7Onz+/v7/fWsvMzLRt23ZmTtNUa3384x//C7/wC3/+539+xx13/MzP/Mw3fdM33X777bYl8ULt7u7eddddh4eHtltrmWnbdmtN0v7+/hOe8ISnP/3prTXuN5vNrrvuumuvvTYi+E9m+/jx4zfccMOxY8e4n6Rz5879wz/8w91339113TRNmWnbdma21lprq9XqcY973Llz5zKT5yczF4vFgx/84OPHj0cE99vb2/urv/qrxz3ucev12nZrLTNt287MaZoi4vz583/7t3/71Kc+tbVmGwC2trZuvPHGkydPArYj4uLFi09+8pPvvPNO27a57NixY4985CMf8pCH2OYBbJdSbr755kc+8pHb29vcLzPvvvvuJz3pSfv7+xHBVVddddVVV1111VVXXXXVVVddddVVV/0vBwDBv15mllKuueaa+XwuicumaTp37tyTnvSkcRx5HrYj4r777nvyk5984cIFSdxve3v79OnTi8WCF2q1Wl26dOno6AiwzXPKzAsXLtxxxx17e3s8wNbW1qlTp+bzuW1JPKdhGC5durS/v29b0mq1Wq/XPMA0Tfv7+8vlUpLt9Xq9XC5ba4BtQFKtVZJt25LGcXza0572lKc85ejoiPuVUm666aaHP/zhGxsbmSkJAGyfOXPmkY985PXXX89ltiVdvHjxSU960j333FNKsc0LYNu2bZ4fSeM4PvGJT7z99tuHYeB+pZSTJ09ub2+XUmzbjohrr712NptJAoDW2vnz55/0pCcNwyDJNg9gOyLOnj375Cc/+cKFCzzA1tbW6dOn5/M5AEjKzMwEANsA0Fqbpsl2RPD8ZGat9a/+6q++6qu+6lM/9VO/8Ru/8d57752miX9JZu7v71+6dGkYBkk8J0nr9fqee+65++67h2EAJAG11mPHjp08eVIS//lOnDhx5syZ+XzOZbZt33PPPU984hPPnj1bSrHN82it3X777ffdd98wDIBtnlNmdl135syZxWIhCZAEXLx48WlPe9rBwUFm8vxIGsfxwoUL99xzzzRNgCSg7/uTJ0+ePHlSEhARh4eHT3/605/61KeO4whIAhaLxS233PLQhz40M3kA27XWRz3qUQ960INmsxkgCViv1095ylMe97jH7e/vl1Jsc9VVV1111VVXXXXVVVddddVVV1111VX/mwFA8K9ku+u6EydOnDx5spQC2AZaa5cuXTp37pxtSTyPiDg6Ojp37tz+/r5t21w2n89Pnjy5s7NjmxdsGIblcjmOIy9AZl64cOHg4IAHmM1mJ0+enM/nmcnzaK0Nw2DbNtBam6aJB8jMYRimaZJkexzH1hoPIKnWygPY3tvbe+ITn3jhwgVAEhARJ0+efPSjH72xsTFNkyTud+ONNz784Q8/fvw497N95513PulJTzp//nwpxTb/Vpl56dKl8+fPD8PA/SRtb2+fOHGi7/vM7Lru+PHjJ0+e7LoOsA201vb29s6dO5eZkngeEbFcLs+ePbu3t2eb+83n85MnTx47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wHXXXfe6r/u6N95445kzZ372Z3/20qVLEWGbfwfbmZmZPICkiJDEf76IkMQD2B7HMTMl8W9lW1JE8JwyMzP517ANRERmSuIBJLXW7rvvvic84Qmv/MqvvLOzIwkopZw5c+axj33sH//xH997770nT5589KMffc0110jifhcuXHjiE5942223cdVVV1111VVXXXXVVVddddVVV1111VX/hwBA5V/Pdmba5jlJ4l8iSRLPybZt/t1s2+Y5SeK/w9HR0a233nrHHXc89KEPBSTZ3tnZedjDHnbttdfefffdD3vYwx760IfO53Put1qtnvrUpz796U8fhiEibPMfQRLPIzNtc5lt2zyAJEm2eaEkSeI52c5MnpPt3d3dP/3TP7333nt/8Rd/8VVe5VVe+ZVf+ZZbbjl9+nQphQewbRuQJAnY3Nx8iZd4ifd4j/cYhuGXfumXLly40Pe9bf4dbNvmOUniv4RtnpOkiJDEv49t2zyniIgI/k2uueaaY8eO8TyGYXjiE594zz33XHfddbVWQNLm5uajH/3oa6+99o477jhz5syjHvWozc1NSYCkzLzrrrue9KQnTdNUa+Wqq6666qqrrrrqqquuuuqqq6666qqr/q8AgMq/nu3MtM0DRETXdbVWSbZ5fmxHRNd1krif7cxsrfGfQxL/HSTdeeedT33qU1/+5V9+Y2MDALque9CDHnTzzTc/+clPfvSjH3399dfXWgFJwN7e3uMf//hz58611iTxH6Tv+1IKD2A7M20DtltrtnkASV3XdV3HCxURXddJ4gEys7XGc5IkaRzHxz3ucf/wD//wt3/7t7//+79/ww03nDhx4syZMw972MNuvPHGU6dOHTt2bD6fS+I51Vpf7MVe7E3f9E2f/OQn/9Vf/RUgif+1MjMzeYBSStd1EWGbfytJQGZymW1J6/X6yU9+8p/+6Z8eHR3Z5l8jIvb29v76r//atiQewPZTnvKUW2+99ZGPfOTOzo5tSV3XPfShD33oQx965513PvjBD37IQx5Sa7VtW9LBwcHTnva0pz/96aUUrrrqqquuuuqqq6666qqrrrrqqquuuur/EACo/OvZnqaptcYDRETf97PZ7PDwkBdMUq2VB7A9TdM0TfwfYrvWevfddz/hCU84f/785uambS679tprH/7whz/pSU969KMffezYsYjgsmma7r333ic8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X2ttd3f37NmzwzBExDRNq9Xq3LlzwzBsbm5KAkopJ06cuPnmm//4j//YtiTbPEBmHjt27Oabbz5+/DgPsFwuL1y4cHh4yAOs1+vt7e3XfM3XfJu3eZvrrrvuZ37mZ37u537u3nvv7brONi9ARESEJO5nOzNt899ttVqt1+tpmmwDkiKi7/v5fC6Jf8nu7u6FCxeGYVgsFlwWEddcc81NN920s7OzWq0k2eZFY5vLJI3jeOHChWEY5vO5JNsRcfLkyQc/+MG11tYaz4+k1lrf94997GNf4zVeo+/7v/mbv/mTP/mTCxcubG1t2eb5sQ3ceuutT33qU1/6pV96c3OTy2qtPIDt5XL5xCc+8c4778xMrrrqqquuuuqqq6666qqrrrrqqquuuur/HACo/OtFxDRNd91113K53N7elgRExMmTJ1/sxV7s13/919frNSDJNiApIqZpuv766x/96EcfO3aMB7h06dJ99923Wq26ruP/nMzc3d19whOecOnSpY2NDUlcZlsS97vrrrue9KQn7e/vb25u8iI7derUwx72sGPHjp07d25zczMzbXOZpMystT7mMY+58cYb+74HJAHjON53330XLlyYpqnruohord19993L5fL48eOSgIg4ceLEi73Yi/3qr/7qcrkEJNnmsoiYpunaa699zGMec/z4cduSuGxvb+++++5bLpe1Vu538803v87rvM47vdM7vezLvuxsNjs6Onryk5989uxZSYBtHkCSpGmatre3d3Z2aq2ApMy0vVqtxnGUxH8T27Yf+chHPvzhDz958uRsNpM0juPh4eEznvGMJz7xiUdHR6UU27wAki5evHjfffcdHh4eO3YMkGT72muvfcxjHvNnf/ZnT3va0+bzuW3uJwmQZFsSL4CkYRjOnTu3XC53dna437Fjxx7zmMdcf/31z3jGMzIzImxzP0mZKelhD3vYu7zLu7z927/9bDb7q7/6q5/5mZ/5nd/5nTvvvHMYhojg+am13nnnnU94whPOnz+/ublpWxLP4+zZs4973OMuXLjQdZ1trrrqqquuuuqqq6666qqrrrrqqquuuur/FgCo/OtJGsfxzjvvvHTp0unTp0sptiVtb2+/7Mu+7Mu+7Mv+3u/93t7eXilFkm1gmqaTJ0++3Mu93Iu92IvVWm0DQGaeO3fu3nvvba11Xcf/OaWU1Wr1hCc8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","media_type":"image/png"}}]}]},"uuid":"e7cc6504-aa53-4095-87ce-f0e0d695a022","timestamp":"2026-07-28T05:19:40.244Z","toolUseResult":{"type":"image","file":{"base64":"iVBORw0KGgoAAAANSUhEUgAAB88AAAG/CAIAAABZjQH+AACyBElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a/+wlu/0UueOL7d1ckW/3Vs7l4uP/kv/+G37z2/09Vm80KFWK7zEQ/a+IKPetgjHrRRivgvJDFOfvKthx/3ZU+5695138vmhVNoOJxueaXjL/9eN+3cMMcg/stITOu8828u/d5X3Yq56qqrrrrqqquuuuqqq6666qqrrrrqqquuuuo/CQDE3jg1m/96Yn+chrTA/MsMQEvvHzVA4r+Yzf5hcxrxIpKUo8dlk/gvZZCyeTxKcdVVV1111VVXXXXVVVddddVVV1111VVXXXXVfyIAiCftHaxbhsR/IYPgaQeH++NUJF40EVqv82m3L9P8FxNqzc+4ezk2S7xIbAXrw3Zw36CQ+S8lMa1z/541V1111VVXXXXVVVddddVVV1111VVXXXXVVVf9ZwKA+P37zh+1qQib/0p9xB+fvXjfatWFbPMvMiW0f9T+7O8uCcR/HZsI0v6zv9tfrTMkm3+RIaoOzw3nnnKkKsx/GZuoGo7avY/bR+Kqq6666qqrrrrqqquuuuqqq6666qqrrrrqqv80ABB/e3Hv7qPVmJb4L2P7YBz/5uKlC8NYJPMvM0SwXLd/eOrhuYtDS/7LSLT0xUvjXz/hYBgzgheJiaLVpfHC0w7X+xOY/zIimw/Prs8/+Yirrrrqqquuuuqqq6666qqrrrrqqquuuuqqq/4zAUCM9p+cu3jvct2FzH8FQbP/4OyF3WHkX8scHrXf/rOLR6tWimz+s9mUov3D9id/u7d3MGXyr6Sj8+Ndf3mJ/yo2perw7HDf4w/HdYK56qqrrrrqqquuuuqqq6666qqrrrrqqquuuuo/DQBEF/Ezt9/95P2DPiJt/vNJWrX8wafdvjuMVWH+FRQaJv/IL917cW8qwX8BQy2699zw479yL0LiRWdTqo4ujE/6tXNO/ovY0en8045u++OLtQ+bq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+8wBABDz94OiPzl647eCoSuY/l+Bomv76wqW/unhplRniX0WQ6TvuXf/xX++euziWwOY/j00Jzu+Of/WEvSc8/cjmX020MXdvX931N5emdUr85zIKHdw33PsP+xdvWymEueqqq6666qqrrrrqqquuuuqqq6666qqrrrrqPw8ARNo19Et33vPn53eP9V1L85+m2bMSF4fx259866ol/yY2Ej/8i/fcce96Y1Famv80Lb29WZ9829GP/8p9Ctnm30Aaj9rjf/6+NqaqnPznyfRsu97xl5du+7PdqMLmqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/TABQNjc3a8S59dBFPGRz45rFfEpL/Iez6UvsjtOv3XXfD916B4h/qwidvTCcPNbdcv38+HadGhL/4Wz6Lu45N/zcb539tT+6OOsizb+BhGG5O22e6XeunXfzyETiP56JGpfuWD7xl8/e9/jD2ofNVVddddVVV1111VVXXXXVVVddddVVV1111VX/qQCgbG5uAoazq3XaL3fyeAmJ/2AGiTS/e+/5b3vKM86uBvHvI9113/r4Tn3UQzZD2Ej8xzM/85v3/dSvn90/ahH8e9js37s+duN869qZAIP4j2VoY/79T997x19cakMquOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqPxsAlM3NTaCLuDCM59fj6Vn/8O2tIvEfrY/4q/O73/3UZ/zOvec2a03+XWrVPeeG5SqvPd0/6IY5/wki+OO/vfT9P3/P3z/lcGujZPLvodDBPWvD9rWzzdO9zX8siTbmbX+y+/hfuPfw3FhnBXPVVVddddVVV1111VVXXXXVVVddddVVV1111X82ACibm5uAYVbK7jA+/tLey5w8vtN1XQT/QQxT5oX18E1PevrP3H73idlssvn3sVnMy213rc7vji/5yO3FPCIk8R/CMAx5z7n1l3/XbX/zxIOtRWlp/p1Mtyjnn3IYVScetCh9SEL8R5nWefHWoz/9ttuXu1N0wlx11VVXXXXVVVddddVVV1111VVXXXXVVVdd9V8AAMrm5iaXGUJatvz1u+97yPbGDRuLLqLZksS/UZrEhruW60//q8f/+j1nZ6U0m/8INl3V3WeHv3zc3mMeunn6eC/JtiT+rTINmpqfdOvRp3zlU5982zKCNP8hnJS+nH/q4d7d61MP3ZhvV9sgiX8zpyVN67zrry/9wdc/YzhsNlddddVVV1111VVXXXXVVVddddVVV1111VVX/ZcBgLK5uckDGIb0H953vkiP3Nk+PZutW0suk8SLxJC2YVFKkX7n3nOf+zdP+NuLlxLMf7xL++1P//5SV/Toh25ubdZhyEwkSbyIbDINbG7U5Tp/4XfOftl3PuPuc0Om+Y9lJB3cN5x90sFsu5x66KaCnIwRQryIbEgj9Zv16ML4+F+6929/9O5xaae56qqrrrrqqquuuuqqq6666qqrrrrqqquuuuq/EACUzc1NnpPhYJqednD0+Ev7yzbduLG4Zj43NDttwIAECABzmTFOANXQTlen9J+eu/BtT771x55x5xP3DiZbEv8JMrl0MD39ztWTbj3KzBuumZ860bfmTNLGgACEALC5wnYaoVq1vVkPl+23//Tid//0Xb/0exfuvHdtEP8p3Ly6NF26fbV7x7J02r521m/WbLbBxgIEiGcygAEbI6l06jfKcnd8+u9feNzP3Xf7n11a7U4SV1111VVXXXXVVVddddVVV1111VVXXXXVVVf9FwMAXXPNNTyPkFatzSIeur35ciePv/TJYy92fPvh21vbXTVM6bQbpA0EhBRSkYo0tHbncvUPu3t/feHSX17Y/fvdvUvDNCshMP9ZJIbBs5keccvGSz96+yUftfViD9+8+fr5YlZaujWnyXQmQAQRClGKSmi1brfetXrcUw//7kkHf/2E/ac8Y3m0bvM+bP6zCExO7jbi1EM3zjx668wjN08+ZGPzTF9qZLPTTpzGAAoUQkSVxHDYdu9YnX/K4bknH973xMP9u9c5uvSyueqqq6666qqrrrrqqquuuuqqq6666qqrrrrqvxgA6JprruH5CWGzbAm+ZWPxSmdOPObYzi2bi2sX82Ndt1nLRi2btQYsMw+n6Whq++N0drW+82j5tIOjPzl74XGX9pctN2sJKW3+k0kAy1VG8JCbFq/0kjsPv2Xjxmtmp0/025tlY1E25rGYFePlKo9WuVy1vYN29uJw933rJ9929Kd/e+npd64yWcxDkOY/m4TNtMoy08mHbFz72K1jN823zszmx2q/Ueq8dIsofTiZVm1c5bRq6/12dHHYv2d94enLe/5+7/DsqFDpJbC56qqrrrrqqquuuuqqq6666qqrrrrqqquuuuq/HgDommuu4QULSTDZ65ar1q5dzF782PYjd7avW8yuW8yvW8yrdH493L1c3btcPePo6G8v7j19/wgxL6WPEKRt/utECJgmr4Y2Nd987fyxj9h88A3za072153uTx3vbM5dHO85P9x3frj1zuU/POXwzvvWfY1ZH7UKyDT/ZYQk7Jw8rZPQsRtnpx62sX3tbONkv3G6m2/XbByeXy8vjEfnx4u3rS487ejowlBnUbpQEbbNVVddddVVV1111VVXXXXVVVddddVVV1111VX/XQBA11xzDf8SgaSAhLSbncY4DSARIClQCQUAiW3+u0hIknC6JZlOY9sGkAhJIkKlSMLGts1/FwkkBOlMSNvYxgBIEgoUUkjCxjbmqquuuuqqq6666qqrrrrqqquuuuqqq6666qr/XgBQeREYbCcAgiohkIQAsA0A2G7897OxzWURRAgACQDzbJnmfwAbbC5TQCgAxAMYME6bq6666qqrrrrqqquuuuqqq6666qqrrrrqqqv+pwCAyr+SuZ8x5n88m2cx/xsYwFx11VVXXXXVVVddddVVV1111VVXXXXVVVdd9b8AAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111b8VAFT+Z5DEVVf9T2Kbq6666qqrrrrqqquuuuqqq6666qqrrrrqqn8JAFT+m0gCbNu2DQC2ueqq/26SAECSJEmAba666qqrrrrqqquuuuqqq6666qqrrrrqqqueBwBU/jvYzkzbtda+77uuK6UAfd9Lsm2bq676LxcRmTlNU2baHsdxHMdxHIGIkMRVV1111VVXXXXVVVddddVVV1111VVXXXXVcwKAyn+tzIyI2Ww2m80iou/7vu+7rqu12p7NZhFh2zZXXfVfrpTSWhvHMTNtD8MwDMMwDNM0DcMwDENmRgRXXXXVVVddddVVV1111VVXXXXVVVddddVV9wMAXXPNNfyXsF1KqbX2fb+9vX3s2LG+7yXZtg0AmQlI4qqr/vtIAgBJkmwPw7C3t7e/v79er6dpykyuuuqqq6666qqrrrrqqquuuuqqq6666qqrLgMAXXPNNfznkyRpe3v71KlTm5ubtgHbXCYJAGxL4qqr/mewzWWSJAGr1ers2bP7+/uZaZurrrrqqquuuuqqq6666qqrrrrqqquuuur/PQDQNddcw3++Y8eOnT59ej6fA5J4AWxL4qqr/qeybXsYhvvuu29/fz8zI8I2V1111VVXXXXVVVddddVVV1111VVXXXXV/1cAUDY3N/lPY7vv++uvv/7kyZN930uSxAsliauu+p9KkqRSytbW1mw2m6ZpvV5HBFddddVVV1111VVXXXXVVVddddVVV1111f9XAFA2Nzf5jyYpMyNiZ2fn2muv3d7e7rqOF40krrrqfzZJpZS+7+fzuaTVasVVV1111VVXXXXVVVddddVVV1111VVXXfX/FQCUzc1N/qNlZtd1x48fP3369NbWFv8akrjqqv8NIqLv+9lsFhHDMLTWJHHVVVddddVVV1111VVXXXXVVVddddVVV/0/AwBlc3OT/1C2+74/efLk6dOnF4tFa00SLzJJXHXV/x5d121sbNiepqm1xlVXXXXVVVddddVVV1111VVXXXXVVVdd9f8MAJTNzU3+Q9Vaz5w5c+rUqa7rMlMS/xqSuOqq/1UkbWxsAOv1urUmiauuuuqqq6666qqrrrrqqquuuuqqq6666v8NACibm5v8xymlXHPNNSdOnCilAJL4V5LEVVf9L7SxsSFpvV631iRx1VVXXXXVVVddddVVV1111VVXXXXV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VVddddVVV1111VVXXXXVZQBQ+a8VEcA0TXt7e7Yl1Vr7vu/7PiJqrbbHcWytcdVV/7UkzWYzIDMzc5qmYRiGYWitSYoISZK46qqrrrrqqquuuuqqq6666qqrrrrqqquuegAA0DXXXMN/B0lcZtu2bR5AEldd9V/ONveTJAmQBNjmqquuuuqqq6666qqrrrrqqquuuuqqq6666nkAQOW/iW3uJ0mSJC6zzVVX/XeICC6zzf1sc9VVV1111VVXXXXVVVddddVVV1111VVXXfUCAEDlfwzbXHXVfyvbXHXVVVddddVVV1111VVXXXXVVVddddVVV/1rAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV/1bAUDlfyRJEcFzykzbXHXVA0SEJEm2ucy2bdv8XxQRkiTZ5n6ZaZurrrrqqquuuuqqq6666qqrrrrqqquuuuq/AwBU/uexPQzDer3OTO5XSun7vu97rrrqfpm5XC7HcbTNZZJqrbPZrJTC/zmZuVwux3G0zWWSSinz+byUwlVXXXXVVVddddVVV1111VVXXXXVVVdd9d8BACr/8ywWi9d8zdd8ndd5nTNnznC/u++++7d/+7f/4A/+ICJsc9X/exFx+vTpN37jN36Jl3iJzc1N28A4jk960pN+9md/9o477ogI/g+JiGPHjr3Jm7zJS73US21vb9sGxnF86lOf+vM///O33Xabba666qqrrrrqqquuuuqqq6666qqrrrrqqv9yAFD5n0RSZvZ9/+hHP/qt3uqtbrrpJu73tKc97e677/6TP/kT27a56v8325J2dnZe7dVe7Y3e6I02Nze5bJqm3//93//jP/7ju+66i/9DbEva2tp6lVd5lTd7szfb3t7msmma/vRP//RP/uRPbr/9dttcddVVV1111VVXXXXVVVddddVVV1111VX/5QAg+J8nIiTZBjKztQZkZkTUWrnqqvtFBJCZQGbabq3ZLqVI4v8cSUBmAplpOzMBSZK46qqrrrrqqquuuuqqq6666qqrrrrqqqv+OwBA5X8e29xPEg9gm6uuup9t7idJkiT+f5AkSRJXXXXVVVddddVVV1111VVXXXXVVVddddV/KwCo/M8jCZDEZZIASVx11XOSJEkSDyCJ/9Mk8QCSuOqqq6666qqrrrrqqquuuuqqq6666qqr/vsAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVX/VsBQOU/miRJgCSek23btvl3kFRK4XnYtm2bf6WIkAQAtm3b5n6SJEnifrZt2+Z/DEmSJPGcbNu2zb+VJEmAJJ6Tbdu2+beKCEASz8M2kJn8W0mSJInnZBvITP5HkiQJkMQDZCb/PpIkSeL5sW3bNlddddVVV1111VVXXXXVVVddddVVV1111b8SAFT+g0iKCKC1NgzDNE2ZmZmAJEmSaq1935dSMtM2/0oRERGr1WoYhtZaZnJZREgqpcxms4iwbZvnISkieE6ZuVqtxnHMTEmllK7ruq4DgIiYpmm9Xk/TZFuSpFrrbDaLiMzkOUWEJJ5TZtrmRRARknhOtjNTkiRJPI/MHMdxHMfMtG0bkCSplNJ1Xdd1QGbyIpMUEUBrbRiG1lprLTMBSZIk1Vr7vi+lZKZtXjSSJEnKzPV63VrLzMy0zWWSJEVErbXv+4jITNv8a0SE7fV63VprrdkGJEmKiFpr3/eSbNvmfwBJkiKitbZer6dpyszMBCIiImqti8UiIiTxryFJEjAMwziOmWnbNpdJkiSp1tp1Xa01M23zPCRJksRzykzbvAgkRQTPybZt21x11VVXXXXVVVddddVVV1111VVXXXXV/1oAUPl3k5SZ4zgOw5CZx48fv/nmm0+fPr2zs7NYLCJiHMdhGNbr9b333nvbbbft7e3N5/Naq21eZLaXy+Vyubzxxhuvv/767e3txWJRSpmmaRiG1Wq1u7v71Kc+dW9vr5TSdR3PyfY4juv1OjNtc5mk7e3tF3uxF7vuuus2Nzenadrb27vjjjtuv/12ScD+/v611177Ui/1UqdPn57NZq211Wp17733Pu1pT7t06dLGxgYPkJmr1WoYBtvcr5TS933f9/xLbC+Xy2EYbNsGgIjoum42m2Xmer0ex9E29yulZObm5uZNN9104403bm1tzefzWmtrbRiGYRj29/dvv/32u+66C5jNZhFhmxdKUmaO4zgMQ2YeO3bsIQ95yJkzZ3Z2dhaLRUSM4zgMwzAM995772233ba7uzufz2utvGiGYZimaRiGra2thz70oadPn97Y2JjNZn3fl1IycxzH1Wp1dHR033333X777fv7+4vFotZqmxeN7b29vVrrQx7ykGuvvXaxWMznc2Acx2EYjo6O7rnnnqc//enTNPV9HxH8D7Ber6dpGobh+PHjD3/4w0+dOrW9vb2xsZGZwzAcHBzcfffdd9xxx+HhYWuN52SbF0BSa221WgEPe9jDrr/++s3Nzb7vu64rpdgex3Ecx/V6ff78+dtvv/2+++6bz+dd10myzQNM07RarVprtrlfrXU2m9VaeRGM47her6dp4n6Saq1939daueqqq6666qqrrrrqqquuuuqqq6666qr/tQCg8u8jaZqmvu+vv/7666+/fnt7+5ZbbnnMYx5zyy23nDlzZmdnp9a6XC6Xy+XR0dFTn/rUP/uzP/vbv/3b++677+zZsxEhiRdNrfVBD3rQm73Zm73sy77sox/96NOnT+/s7NRax3FcLpcHBwd33333H/zBHzzucY+77bbbzp07l5kRwWW2a63XXXfdgx/84I2NDUlcZvvkyZOv8Rqv8YhHPOLEiRPDMJw9e/Zv/uZvfu3Xfu3xj3+8pEc84hGv+Zqv+Rqv8Rq33HLL5ubmNE37+/tPfepTf/M3f/OP//iPz58/v16vJUlqrW1tbd1000033HCDJEmApMPDwzvuuOOOO+6QZJsXwHbf97fccsuDHvSgruskAZLW6/U999zzjGc8o+/7F3/xFz99+nStlfsdHh5O03TjjTe+9Eu/9KMf/eiTJ09ubW31fT9N03K5XC6X586d+5u/+Zs//dM/vf322+++++6jo6Ou63jBJE3T1HXdddddd/31129vb998882PecxjHvSgB11zzTU7Ozu11tVqtVwuDw8Pn/70p//Zn/3Z3/zN39x3331nz56VJIkXzHZE3Hjjjddee+3GxsaNN974ci/3crfccsuxY8c2NjY2Nja6rmutLZfLw8PD3d3dpz/96X/+53/++Mc//t577z137lzXdbwIJM3n85d92Zd9+Zd/+Zd92Zd9yEMecvz48c3NTWC9Xh8dHV26dOlJT3rS7//+799666233Xbb4eGhJEn8N7Et6cEPfvB11103n89vueWWl37pl77ppptOnz597NixzDw6Ojp//vyTn/zkv/zLv1ytVltbW7xobLfWjh079uhHP/r6669/rdd6rUc96lHHjx9fLBbz+bzrusxcr9fL5fLo6OiOO+74i7/4i7/4i784d+7cnXfeCUQED3Dy5MkHP/jBJ06ciAgus727u3vrrbdevHiRF0pSZl577bW33HLLiRMnbEsCbF+4cOG22267cOGCJK66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nt3a2uJ+x48ff+QjH3nttdeePXs2M3lOkoZhOHny5CMe8YidnR3bkrjsnnvuefKTn7y/v991HS9ARGTm3Xfffffdd1+8ePGee+4ZhuHUqVM33njjTTfddO211wKAJNvz+fzFXuzFXv/1X/+JT3zi+fPnbXOZbduv/Mqv/Mqv/MpnzpwBbEsCJO3u7t5xxx233377uXPnJN1www033njjzTffvLGxwQPceOONr/M6r/OkJz3p3nvv5X62SykPetCDXvZlX/b06dOSuJ+kaZruuuuuu+66a39//9y5c/v7+xsbGw960IOuv/76m266aT6fA7YlRcS11177Vm/1Vvfdd9/P/MzP3HvvvbVWXjBJwIULF2677bZ77rnnnnvu2djYuPbaax/84AffcMMNXdfZlmQ7Ih7zmMe85mu+5t/93d/deeed/JewfeLEiVd6pVd61Vd91Z2dHduSuEzSxYsXn/GMZ9x777133HFH3/cnT568/vrrb7nlltOnT/Mvycy+71/+5V/+tV/7ta+//nrAtiRA0jRN99xzz91333333XdfuHCh7/trr7322muvveGGG06ePAnYlmR7c3PzlV7plR7/+Mc/7WlPOzg4AGqtd95555Oe9KRXeZVXuf7667nfjTfe+IhHPOLUqVMXLlyQZJvncfLkyUc96lHXXXcd95O0u7v7xCc+8d57740I21x11VVXXXXVVVddddVVV1111VVXXXXV/1oAUPk3iYiTJ0++/Mu//HXXXSfJtiSgtXbrrbf+wi/8wl//9V/ffvvt586di4ibbrrpuuuue4M3eIPXeI3XuPbaa21LAiQ9/OEPf/EXf/G//uu/vnDhgiReqNVq9aQnPem3f/u3n/jEJ95111233357a+306dMPfvCDX/EVX/EN3/ANb7rpplIKl9VaH/awh73SK73SE5/4xN3dXUk8P4eHh3/913/967/+68vl8g3f8A1f5VVeZbFY2JbEZev1+u/+7u9+8zd/87777nvN13zN137t197Z2ZEERMTJkydvvPHGrusODw9LKcvl8slPfvLtt99+0003lVK4bLFYPPShD33EIx6xu7u7XC4jgue0WCxuueWWhzzkIV3X2bYt6ejo6NZbb33605/OCzZN0zOe8Yw/+qM/+su//MuzZ8+eP3/+3nvvHYbh1KlT119//WMf+9g3fdM3fYmXeIm+77nf8ePHX+7lXu6Rj3zkX/zFXyyXy1KK7Yg4ceLEy7/8y99www2SbEsCWmu33XbbL/7iL/7lX/7l7bfffu7cOeCmm2669tprX//1X/+1Xuu1rrvuOtuSAEkPe9jDXuIlXuLP//zPz58/Lwmwvbm5edNNN910002lFNsAYPuee+75wz/8w9///d+/++67L126dP78+b29vY2NjQc/+ME33njjy7/8y7/Wa73WLbfcEhG2JUXEYrHY2trqus42L9SFCxf+9E//9E/+5E+e9rSn3XPPPXfffffm5uY111zz6Ec/+rVf+7Vf7dVebWdnB5AEHDt27CVe4iVe4iVe4rbbbpPEfzJJ0zQ98pGPfJmXeZmbbrqJB8jMJz/5yb/xG7/xx3/8x/fdd9/tt9/e9/3p06evueaaF3/xF3+zN3uzRz3qUbPZjBfq2LFjr/Ear/HQhz606zpAEpCZ99xzz+/+7u/+1V/91W233XbPPfecP39+Nptdd91111xzzcMf/vBXe7VXe7mXe7nNzU3ud+21177cy73cH//xH//Jn/xJrTUizp0796QnPenOO++8/vrrud+JEyce+chH3nTTTffdd1/XdTwP27fccsvDH/7wY8eOcZlt4K677nrSk5504cKFWitXXXXVVVddddVVV1111VVXXXXVVVdd9b8ZAFT+9TJzsVg8/OEPf9jDHjafz7lfZt57770/+ZM/+R3f8R233377bDYrpdh+2tOetlwun/jEJ7bW3vRN33R7e9u2JNsnTpx4+MMffv311993331d1/EC2JZ06623fv/3f//3fM/3LJdLSV3XSXr605/+53/+53/yJ38yDMPbvu3bXn/99VwmaWtr69GPfvTx48fvuOMOnp/MvOOOO374h3/4+7//+zc3N0+cOPGYxzxmsVhwmW1J99xzz8/+7M9+y7d8S2aWUl7yJV9ye3tbEhARi8Xi5MmTtVbbkoZhuOuuu5785Ce/9Eu/9Hw+lwTUWm+44YZHPvKRf/VXf2Vbkm0AkNRau/baax/96Edff/31PMDFixef9KQn3XHHHaUU2zyPzDx79uyP//iPf8/3fM+Tn/zkzc1NSaUUSXfdddef/umf/t7v/d7Zs2c/9EM/9GEPe1jXdZKAWuuNN974Yi/2Yn/3d393eHhYSsnM+Xz+sIc97GEPe9jGxgb3y8xz58799E//9Hd8x3c8/elPn81mEQHceuutR0dHj3/848dxfMu3fMudnR3bXHb8+PGHPexhN95443333VdrBTJzc3Pz2muvPX78OJfZlrS/v/97v/d7X/d1X/cXf/EXXddFRCklIs6dO/fUpz7V9u/8zu+cP3/+bd/2bR/84AdLysyzZ8/+wi/8wm/8xm/cd999tVbbPD+2p2n6kz/5k6/7uq/7vd/7PUm11lKK7cc97nF/8Ad/8KQnPamU8lqv9Vp930uyHRHXXXfdox71qF/91V9trdnmP5OkzLz55psf/OAHLxYL25JsS7rrrrt+5md+5ru/+7tvu+22vu9LKbZvu+22o6Oj3/qt37r33ns/4AM+4JGPfGTXdTw/tvu+v/HGGx/72Mdubm7yABcvXvzlX/7lb/qmb3rSk56UmV3XlVJsP+UpT5mmaT6f//3f//0HfuAHvuqrvmqtVZLtvu9vvvnmhz70oX/2Z38mCViv1894xjOe/vSnv8RLvETf95Jsz2azBz/4wQ95yEP+8i//UpJtnpOkRzziEbfccst8Pgck2R6G4alPfeoznvGMo6Ojrutsc9VVV1111VVXXXXVVVddddVVV1111VX/awFA8K8kyXbf9w960IOuvfbaWiv3Wy6Xf/mXf/lzP/dzBwcHOzs7s9mslFJrnc/np0+f/ru/+7tf+IVfePzjH88DzOfzG2+88frrr7ctiefHtqTVavWkJz3pr//6ryVtb29vbGzUWkspi8ViPp+fP3/+53/+5x/3uMetVivAtqSu62666aabbrppY2MjMyVxP9vAer2+7bbbnvCEJxw7diwidnd39/f3eU533HHHU57ylOVyubOzc/HixcPDw8zkMkl93584caKUYluS7cPDw8c//vHnz59vrXFZROzs7Dz60Y9eLBY8J0mttWuvvfahD33o8ePHbUvisjvvvPMpT3nKhQsXJPE8bNt+6lOf+id/8icXL1685pprNjY25vN5rbWU0vf98ePHp2n6jd/4jd/4jd+4dOkS94uIra2thzzkIfP5HJBku+u6Bz3oQdddd12tlfutVqu/+qu/+rmf+7nd3d2dnZ3ZbFZrrbXOZrPTp08//vGP/4Vf+IW///u/BwBJtmez2Q033HDjjTdmpiTA9nw+P3bs2GKxsC0JAO65556//Mu/vPXWW0+ePLmxsTGfz2utEVFr3djY2N7evueee378x3/8N37jN86fP5+Z995778/8zM9827d92z/8wz9M0wTY5vmxvbu7+2d/9md33HHHYrHY3t6ezWallFrr5uZmRPzDP/zDL/7iL959992Zyf22t7cf9KAHXXPNNRFhm/9k8/n8lltuue666yRxv2EY/viP//jXfu3X7rrrruPHj89ms1JKrbXv+xMnTtj+pV/6pd/4jd+4ePEiz4+kzFwsFg9+8IOvv/76UgpgG1itVk94whN+/ud//r777lssFtvb27PZrJRSa53P5zs7O5L+8i//8hd/8Rfvuusu29zv9OnTD3vYw44fPw7Y7vv+vvvue+ITn7i7u8sDXH/99Y961KNOnDjB85C0tbX16Ec/+pprrpFkG7C9t7f3uMc97ty5c1x11VVXXXXVVVddddVVV1111VVXXXXV/34AEPzr2e77/pZbbtnZ2YkIQBKwu7v7t3/7t3fcccd6vc7MzLRtOzNba8Ctt976uMc97ujoiPtJOn369PXXX9/3PS/Ucrm85557zp49C7TWMtO27czMTNtPe9rTnvCEJ+zt7XE/SadOnbrhhhs2NjYyk+cxjuPFixd3d3dbaxcvXtzd3R2GgQfIzL29vf39fUnTNO3u7q5WK9vcr5SyubkZEQAQEeM4PvnJT77zzjvHcQRsAxsbGw972MMe8pCHzOfzzOQBpmm65ZZbHvKQh8xmM+63Wq2e/vSn33bbba017idJEg/QWhvHcZqm1lprLTNt287M1lpr7fDw8G/+5m/uueeeaZoA28B8Pr/hhhvOnDnTdZ1t213X3XzzzceOHYsIQBKwt7f3t3/7t7fffvtqtbKdmbZtZ2ZrDbjtttv+4R/+4eDggPtJOnXq1PXXXz+fzwHAdiml67qI4AEODg7Onz+/v7/fWsvMzLRt23ZmTtNUa3384x//C7/wC3/+539+xx13/MzP/Mw3fdM33X777bYl8ULt7u7eddddh4eHtltrmWnbdmtN0v7+/hOe8ISnP/3prTXuN5vNrrvuumuvvTYi+E9m+/jx4zfccMOxY8e4n6Rz5879wz/8w91339113TRNmWnbdma21lprq9XqcY973Llz5zKT5yczF4vFgx/84OPHj0cE99vb2/urv/qrxz3ucev12nZrLTNt287MaZoi4vz583/7t3/71Kc+tbVmGwC2trZuvPHGkydPArYj4uLFi09+8pPvvPNO27a57NixY4985CMf8pCH2OYBbJdSbr755kc+8pHb29vcLzPvvvvuJz3pSfv7+xHBVVddddVVV1111VVXXXXVVVddddVVV/0vBwDBv15mllKuueaa+XwuicumaTp37tyTnvSkcRx5HrYj4r777nvyk5984cIFSdxve3v79OnTi8WCF2q1Wl26dOno6AiwzXPKzAsXLtxxxx17e3s8wNbW1qlTp+bzuW1JPKdhGC5durS/v29b0mq1Wq/XPMA0Tfv7+8vlUpLt9Xq9XC5ba4BtQFKtVZJt25LGcXza0572lKc85ejoiPuVUm666aaHP/zhGxsbmSkJAGyfOXPmkY985PXXX89ltiVdvHjxSU960j333FNKsc0LYNu2bZ4fSeM4PvGJT7z99tuHYeB+pZSTJ09ub2+XUmzbjohrr712NptJAoDW2vnz55/0pCcNwyDJNg9gOyLOnj375Cc/+cKFCzzA1tbW6dOn5/M5AEjKzMwEANsA0Fqbpsl2RPD8ZGat9a/+6q++6qu+6lM/9VO/8Ru/8d57752miX9JZu7v71+6dGkYBkk8J0nr9fqee+65++67h2EAJAG11mPHjp08eVIS//lOnDhx5syZ+XzOZbZt33PPPU984hPPnj1bSrHN82it3X777ffdd98wDIBtnlNmdl135syZxWIhCZAEXLx48WlPe9rBwUFm8vxIGsfxwoUL99xzzzRNgCSg7/uTJ0+ePHlSEhARh4eHT3/605/61KeO4whIAhaLxS233PLQhz40M3kA27XWRz3qUQ960INmsxkgCViv1095ylMe97jH7e/vl1Jsc9VVV1111VVXXXXVVVddddVVV1111VX/mwFA8K9ku+u6EydOnDx5spQC2AZaa5cuXTp37pxtSTyPiDg6Ojp37tz+/r5t21w2n89Pnjy5s7NjmxdsGIblcjmOIy9AZl64cOHg4IAHmM1mJ0+enM/nmcnzaK0Nw2DbNtBam6aJB8jMYRimaZJkexzH1hoPIKnWygPY3tvbe+ITn3jhwgVAEhARJ0+efPSjH72xsTFNkyTud+ONNz784Q8/fvw497N95513PulJTzp//nwpxTb/Vpl56dKl8+fPD8PA/SRtb2+fOHGi7/vM7Lru+PHjJ0+e7LoOsA201vb29s6dO5eZkngeEbFcLs+ePbu3t2eb+83n85MnTx47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wHXXXfe6r/u6N95445kzZ372Z3/20qVLEWGbfwfbmZmZPICkiJDEf76IkMQD2B7HMTMl8W9lW1JE8JwyMzP517ANRERmSuIBJLXW7rvvvic84Qmv/MqvvLOzIwkopZw5c+axj33sH//xH997770nT5589KMffc0110jifhcuXHjiE5942223cdVVV1111VVXXXXVVVddddVVV1111VX/hwBA5V/Pdmba5jlJ4l8iSRLPybZt/t1s2+Y5SeK/w9HR0a233nrHHXc89KEPBSTZ3tnZedjDHnbttdfefffdD3vYwx760IfO53Put1qtnvrUpz796U8fhiEibPMfQRLPIzNtc5lt2zyAJEm2eaEkSeI52c5MnpPt3d3dP/3TP7333nt/8Rd/8VVe5VVe+ZVf+ZZbbjl9+nQphQewbRuQJAnY3Nx8iZd4ifd4j/cYhuGXfumXLly40Pe9bf4dbNvmOUniv4RtnpOkiJDEv49t2zyniIgI/k2uueaaY8eO8TyGYXjiE594zz33XHfddbVWQNLm5uajH/3oa6+99o477jhz5syjHvWozc1NSYCkzLzrrrue9KQnTdNUa+Wqq6666qqrrrrqqquuuuqqq6666qqr/q8AgMq/nu3MtM0DRETXdbVWSbZ5fmxHRNd1krif7cxsrfGfQxL/HSTdeeedT33qU1/+5V9+Y2MDALque9CDHnTzzTc/+clPfvSjH3399dfXWgFJwN7e3uMf//hz58611iTxH6Tv+1IKD2A7M20DtltrtnkASV3XdV3HCxURXddJ4gEys7XGc5IkaRzHxz3ucf/wD//wt3/7t7//+79/ww03nDhx4syZMw972MNuvPHGU6dOHTt2bD6fS+I51Vpf7MVe7E3f9E2f/OQn/9Vf/RUgif+1MjMzeYBSStd1EWGbfytJQGZymW1J6/X6yU9+8p/+6Z8eHR3Z5l8jIvb29v76r//atiQewPZTnvKUW2+99ZGPfOTOzo5tSV3XPfShD33oQx965513PvjBD37IQx5Sa7VtW9LBwcHTnva0pz/96aUUrrrqqquuuuqqq6666qqrrrrqqquuuur/EACo/OvZnqaptcYDRETf97PZ7PDwkBdMUq2VB7A9TdM0TfwfYrvWevfddz/hCU84f/785uambS679tprH/7whz/pSU969KMffezYsYjgsmma7r333ic8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X2ttd3f37NmzwzBExDRNq9Xq3LlzwzBsbm5KAkopJ06cuPnmm//4j//YtiTbPEBmHjt27Oabbz5+/DgPsFwuL1y4cHh4yAOs1+vt7e3XfM3XfJu3eZvrrrvuZ37mZ37u537u3nvv7brONi9ARESEJO5nOzNt899ttVqt1+tpmmwDkiKi7/v5fC6Jf8nu7u6FCxeGYVgsFlwWEddcc81NN920s7OzWq0k2eZFY5vLJI3jeOHChWEY5vO5JNsRcfLkyQc/+MG11tYaz4+k1lrf94997GNf4zVeo+/7v/mbv/mTP/mTCxcubG1t2eb5sQ3ceuutT33qU1/6pV96c3OTy2qtPIDt5XL5xCc+8c4778xMrrrqqquuuuqqq6666qqrrrrqqquuuur/HACo/OtFxDRNd91113K53N7elgRExMmTJ1/sxV7s13/919frNSDJNiApIqZpuv766x/96EcfO3aMB7h06dJ99923Wq26ruP/nMzc3d19whOecOnSpY2NDUlcZlsS97vrrrue9KQn7e/vb25u8iI7derUwx72sGPHjp07d25zczMzbXOZpMystT7mMY+58cYb+74HJAHjON53330XLlyYpqnruohord19993L5fL48eOSgIg4ceLEi73Yi/3qr/7qcrkEJNnmsoiYpunaa699zGMec/z4cduSuGxvb+++++5bLpe1Vu538803v87rvM47vdM7vezLvuxsNjs6Onryk5989uxZSYBtHkCSpGmatre3d3Z2aq2ApMy0vVqtxnGUxH8T27Yf+chHPvzhDz958uRsNpM0juPh4eEznvGMJz7xiUdHR6UU27wAki5evHjfffcdHh4eO3YMkGT72muvfcxjHvNnf/ZnT3va0+bzuW3uJwmQZFsSL4CkYRjOnTu3XC53dna437Fjxx7zmMdcf/31z3jGMzIzImxzP0mZKelhD3vYu7zLu7z927/9bDb7q7/6q5/5mZ/5nd/5nTvvvHMYhojg+am13nnnnU94whPOnz+/ublpWxLP4+zZs4973OMuXLjQdZ1trrrqqquuuuqqq6666qqrrrrqqquuuur/FgCo/OtJGsfxzjvvvHTp0unTp0sptiVtb2+/7Mu+7Mu+7Mv+3u/93t7eXilFkm1gmqaTJ0++3Mu93Iu92IvVWm0DQGaeO3fu3nvvba11Xcf/OaWU1Wr1hCc8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","type":"image/png","originalSize":26477,"dimensions":{"originalWidth":3400,"originalHeight":760,"displayWidth":2000,"displayHeight":447}}},"sourceToolAssistantUUID":"9d364caa-5b75-4903-9a80-c0be3a0743ab","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e7cc6504-aa53-4095-87ce-f0e0d695a022","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":"[Image: original 3400x760, displayed at 2000x447. Multiply coordinates by 1.70 to map to original image.]"},"isMeta":true,"uuid":"34e3ab04-d25c-4ef5-a7ad-dfcfc4a7192c","timestamp":"2026-07-28T05:19:40.241Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"34e3ab04-d25c-4ef5-a7ad-dfcfc4a7192c","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"e8172d57-1428-4ee2-8496-ce629f224ef7","timestamp":"2026-07-28T05:19:40.260Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e8172d57-1428-4ee2-8496-ce629f224ef7","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtgPMidPKbnXwPTDt8x","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I see the issue now — the data fixture I'm using only renders the session segment, but the user's image shows a folder and oh-my-posh in a pill, which comes from the website's actual `segment_data.json` file, not my test fixture. I should use the website's data file instead to match their exact output, or just regenerate the gallery and pull the bubblesline SVG directly from the manifest to rasterize it.\n\nThe cleanest approach is to make the `--website` flag automatically use the website's own data file, since that's what the theme gallery actually renders with. Let me add that override to shot.mjs.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1417,"cache_read_input_tokens":316419,"output_tokens":1005,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1417,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":1005,"cache_read_input_tokens":316419,"cache_creation_input_tokens":1417,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1417},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtgLECViCKhh72VW5BE","type":"assistant","uuid":"f80a4710-5115-4d78-b5fa-d71d2b726c3d","timestamp":"2026-07-28T05:19:52.537Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f80a4710-5115-4d78-b5fa-d71d2b726c3d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtgPMidPKbnXwPTDt8x","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01SZWTnHjUWuGDg5TRqLqzJz","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","old_string":"const WEBSITE = {\n fontPath: path.join(REPO_ROOT, \"website\", \"static\", \"fonts\", \"VictorMono.ttf\"),\n fontFamily: \"Victor Mono\",","new_string":"const WEBSITE = {\n // The gallery's own hand-written segment data, not the hermetic test\n // fixture: it is what decides which segments are enabled, so rendering a\n // theme against the fixture instead can leave out the very segment being\n // looked at.\n data: path.join(REPO_ROOT, \"website\", \"segment_data.json\"),\n fontPath: path.join(REPO_ROOT, \"website\", \"static\", \"fonts\", \"VictorMono.ttf\"),\n fontFamily: \"Victor Mono\","},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1417,"cache_read_input_tokens":316419,"output_tokens":1005,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1417,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":1005,"cache_read_input_tokens":316419,"cache_creation_input_tokens":1417,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1417},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtgLECViCKhh72VW5BE","type":"assistant","uuid":"66c4f12b-9fd3-4219-a430-8cb88c3bf210","timestamp":"2026-07-28T05:19:55.920Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"66c4f12b-9fd3-4219-a430-8cb88c3bf210","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01SZWTnHjUWuGDg5TRqLqzJz","type":"tool_result","content":"The file D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"62b0a727-3b04-46f6-a8aa-f3818550ade6","timestamp":"2026-07-28T05:19:55.975Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","oldString":"const WEBSITE = {\n fontPath: path.join(REPO_ROOT, \"website\", \"static\", \"fonts\", \"VictorMono.ttf\"),\n fontFamily: \"Victor Mono\",","newString":"const WEBSITE = {\n // The gallery's own hand-written segment data, not the hermetic test\n // fixture: it is what decides which segments are enabled, so rendering a\n // theme against the fixture instead can leave out the very segment being\n // looked at.\n data: path.join(REPO_ROOT, \"website\", \"segment_data.json\"),\n fontPath: path.join(REPO_ROOT, \"website\", \"static\", \"fonts\", \"VictorMono.ttf\"),\n fontFamily: \"Victor Mono\",","originalFile":"#!/usr/bin/env node\n// Side-by-side renderer for eyeballing the SVG exporter against the retired\n// PNG renderer. Unlike compare.mjs this does NOT force the SVG into the PNG's\n// box (no preserveAspectRatio override, no rescale): each side is rasterized\n// at its own natural geometry, so layout differences — whitespace collapse,\n// baseline drift, misplaced decorations — stay visible instead of being\n// squeezed away by the fit.\n//\n// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks\n// node shot.mjs --website glowsticks as the theme gallery renders it\n//\n// Output lands in ./out/: .svg, .raster.png, and — unless\n// --svg-only — .png from the retired renderer.\nimport { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { chromium } from \"playwright\";\n\nimport { extractZipEntry } from \"./zip.mjs\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");\nconst THEMES_DIR = path.join(REPO_ROOT, \"themes\");\nconst DATA_FIXTURE = path.join(REPO_ROOT, \"src\", \"prompt\", \"testdata\", \"fixtures\", \"prompt.data.json\");\n\nconst BIN_DIR = path.join(__dirname, \"bin\");\nconst OUT_DIR = path.join(__dirname, \"out\");\n// The Mono patched variant, which is what the exporter's default font stack\n// asks for first and what a terminal actually runs: it scales Nerd Font icon\n// ink down to one cell, where the plain variant lets it bleed up to ~1.9\n// cells over the next character. The retired PNG renderer loaded the plain\n// variant and compensated with a hand-maintained double-width table, so its\n// reference renders show icons in a two-cell box; that is the one place the\n// two renderers are expected to differ.\nconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";\n\n// --website renders exactly what the theme gallery ships: the font the site\n// serves, at the metrics website/export_themes.mjs passes. Those metrics are\n// Victor Mono's own (cell 600/1100 em, hhea line height 1.4091 em x 1.2), not\n// the exporter's Hack-derived defaults, so they have to be passed here too or\n// the grid would be laid out for the wrong font.\nconst WEBSITE = {\n fontPath: path.join(REPO_ROOT, \"website\", \"static\", \"fonts\", \"VictorMono.ttf\"),\n fontFamily: \"Victor Mono\",\n cellWidth: \"0.5455\",\n lineHeight: \"1.6909\",\n fillAscent: \"1.0982\",\n fillDescent: \"0.3255\",\n};\n\nconst EXE = process.platform === \"win32\" ? \".exe\" : \"\";\nconst OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);\nconst NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);\n\n// The exporter renders at a 16px em; the retired PNG renderer's reference em\n// was 48px. Rasterizing at 3x device scale puts both at the same resolution\n// without touching the SVG's own geometry.\nconst DEVICE_SCALE_FACTOR = 3;\n\n// Pulls the Mono face out of the Hack.zip the retired PNG renderer already\n// caches (see cli/image/image.go's loadDefaultFonts), or downloads it once.\n// Same source and version as compare.mjs' own ensureFont, different entry.\nasync function ensureFont() {\n if (fs.existsSync(FONT_PATH)) {\n return;\n }\n\n fs.mkdirSync(path.dirname(FONT_PATH), { recursive: true });\n\n const home = process.env.USERPROFILE || process.env.HOME || \"\";\n const caches = [\n process.env.OMP_CACHE_DIR,\n process.platform === \"win32\" ? path.join(process.env.LOCALAPPDATA ?? \"\", \"oh-my-posh\") : null,\n process.env.XDG_CACHE_HOME ? path.join(process.env.XDG_CACHE_HOME, \"oh-my-posh\") : null,\n path.join(home, \".cache\", \"oh-my-posh\"),\n ].filter(Boolean);\n\n const entry = path.basename(FONT_PATH);\n\n for (const dir of caches) {\n const zipPath = path.join(dir, \"Hack.zip\");\n\n if (fs.existsSync(zipPath)) {\n fs.writeFileSync(FONT_PATH, extractZipEntry(fs.readFileSync(zipPath), entry));\n return;\n }\n }\n\n const url = \"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip\";\n const res = await fetch(url);\n\n if (!res.ok) {\n throw new Error(`failed to download ${url}: ${res.status} ${res.statusText}`);\n }\n\n fs.writeFileSync(FONT_PATH, extractZipEntry(Buffer.from(await res.arrayBuffer()), entry));\n}\n\nfunction themeConfig(theme) {\n for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n const candidate = path.join(THEMES_DIR, theme + ext);\n\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(`theme not found: ${theme}`);\n}\n\nfunction run(cmd, args, cwd) {\n const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n\n if (res.error) {\n throw res.error;\n }\n\n if (res.status !== 0) {\n throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n }\n}\n\n// Reads width/height off the root element so the page can give it a box\n// of exactly that size — the SVG then renders 1:1 with no scaling at all.\nfunction svgSize(markup) {\n const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n\n if (!width || !height) {\n throw new Error(\"could not read width/height off the root \");\n }\n\n return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n}\n\nasync function rasterize(browser, markup, fontBase64, fontFamily) {\n const { width, height } = svgSize(markup);\n\n const context = await browser.newContext({\n viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n deviceScaleFactor: DEVICE_SCALE_FACTOR,\n });\n\n const page = await context.newPage();\n\n const html = `\n\n\n\n\n\n${markup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForTimeout(50);\n\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const svgOnly = args.includes(\"--svg-only\");\n const website = args.includes(\"--website\");\n const themes = args.filter((a) => !a.startsWith(\"--\"));\n\n if (themes.length === 0) {\n throw new Error(\"pass at least one theme name\");\n }\n\n fs.mkdirSync(OUT_DIR, { recursive: true });\n\n run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n const fontFamily = website ? WEBSITE.fontFamily : FONT_FAMILY;\n const fontPath = website ? WEBSITE.fontPath : FONT_PATH;\n\n if (!website) {\n await ensureFont();\n }\n\n const fontBase64 = fs.readFileSync(fontPath).toString(\"base64\");\n const browser = await chromium.launch();\n\n try {\n for (const theme of themes) {\n const config = themeConfig(theme);\n const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n\n run(NEW_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", fontFamily,\n ...(website\n ? [\n \"--cell-width\", WEBSITE.cellWidth,\n \"--line-height\", WEBSITE.lineHeight,\n \"--fill-ascent\", WEBSITE.fillAscent,\n \"--fill-descent\", WEBSITE.fillDescent,\n ]\n : []),\n \"-o\", svgPath,\n ]);\n\n const markup = fs.readFileSync(svgPath, \"utf8\");\n fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64, fontFamily));\n\n if (!svgOnly && fs.existsSync(OLD_BIN)) {\n run(OLD_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--format\", \"png\",\n \"-o\", path.join(OUT_DIR, `${theme}.png`),\n ]);\n }\n\n console.log(`${theme}: ${svgPath}`);\n }\n } finally {\n await browser.close();\n }\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exitCode = 1;\n});\n","structuredPatch":[{"oldStart":44,"oldLines":6,"newStart":44,"newLines":11,"lines":[" // the exporter's Hack-derived defaults, so they have to be passed here too or"," // the grid would be laid out for the wrong font."," const WEBSITE = {","+ // The gallery's own hand-written segment data, not the hermetic test","+ // fixture: it is what decides which segments are enabled, so rendering a","+ // theme against the fixture instead can leave out the very segment being","+ // looked at.","+ data: path.join(REPO_ROOT, \"website\", \"segment_data.json\"),"," fontPath: path.join(REPO_ROOT, \"website\", \"static\", \"fonts\", \"VictorMono.ttf\"),"," fontFamily: \"Victor Mono\","," cellWidth: \"0.5455\","]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"66c4f12b-9fd3-4219-a430-8cb88c3bf210","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"62b0a727-3b04-46f6-a8aa-f3818550ade6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTthbPnqRAiAED5RCuGH","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01G4LsB6NazRAUwE44GJkMNj","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","old_string":" \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", fontFamily,","new_string":" \"--config\", config,\n \"--data\", website ? WEBSITE.data : DATA_FIXTURE,\n \"--font-family\", fontFamily,"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1064,"cache_read_input_tokens":317836,"output_tokens":232,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1064,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":232,"cache_read_input_tokens":317836,"cache_creation_input_tokens":1064,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1064},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTthWFUWjb3nL8no9LLp","type":"assistant","uuid":"45eeb698-85d8-487d-a6a5-f76031c291bc","timestamp":"2026-07-28T05:20:00.498Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"45eeb698-85d8-487d-a6a5-f76031c291bc","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01G4LsB6NazRAUwE44GJkMNj","type":"tool_result","content":"The file D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"dceb38bd-71c4-4e1f-825f-22891660f8d8","timestamp":"2026-07-28T05:20:00.534Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","oldString":" \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", fontFamily,","newString":" \"--config\", config,\n \"--data\", website ? WEBSITE.data : DATA_FIXTURE,\n \"--font-family\", fontFamily,","originalFile":"#!/usr/bin/env node\n// Side-by-side renderer for eyeballing the SVG exporter against the retired\n// PNG renderer. Unlike compare.mjs this does NOT force the SVG into the PNG's\n// box (no preserveAspectRatio override, no rescale): each side is rasterized\n// at its own natural geometry, so layout differences — whitespace collapse,\n// baseline drift, misplaced decorations — stay visible instead of being\n// squeezed away by the fit.\n//\n// node shot.mjs glowsticks cobalt2\n// node shot.mjs --svg-only glowsticks\n// node shot.mjs --website glowsticks as the theme gallery renders it\n//\n// Output lands in ./out/: .svg, .raster.png, and — unless\n// --svg-only — .png from the retired renderer.\nimport { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { chromium } from \"playwright\";\n\nimport { extractZipEntry } from \"./zip.mjs\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst REPO_ROOT = path.resolve(__dirname, \"..\", \"..\");\nconst THEMES_DIR = path.join(REPO_ROOT, \"themes\");\nconst DATA_FIXTURE = path.join(REPO_ROOT, \"src\", \"prompt\", \"testdata\", \"fixtures\", \"prompt.data.json\");\n\nconst BIN_DIR = path.join(__dirname, \"bin\");\nconst OUT_DIR = path.join(__dirname, \"out\");\n// The Mono patched variant, which is what the exporter's default font stack\n// asks for first and what a terminal actually runs: it scales Nerd Font icon\n// ink down to one cell, where the plain variant lets it bleed up to ~1.9\n// cells over the next character. The retired PNG renderer loaded the plain\n// variant and compensated with a hand-maintained double-width table, so its\n// reference renders show icons in a two-cell box; that is the one place the\n// two renderers are expected to differ.\nconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\nconst FONT_FAMILY = \"Hack Nerd Font Mono\";\n\n// --website renders exactly what the theme gallery ships: the font the site\n// serves, at the metrics website/export_themes.mjs passes. Those metrics are\n// Victor Mono's own (cell 600/1100 em, hhea line height 1.4091 em x 1.2), not\n// the exporter's Hack-derived defaults, so they have to be passed here too or\n// the grid would be laid out for the wrong font.\nconst WEBSITE = {\n // The gallery's own hand-written segment data, not the hermetic test\n // fixture: it is what decides which segments are enabled, so rendering a\n // theme against the fixture instead can leave out the very segment being\n // looked at.\n data: path.join(REPO_ROOT, \"website\", \"segment_data.json\"),\n fontPath: path.join(REPO_ROOT, \"website\", \"static\", \"fonts\", \"VictorMono.ttf\"),\n fontFamily: \"Victor Mono\",\n cellWidth: \"0.5455\",\n lineHeight: \"1.6909\",\n fillAscent: \"1.0982\",\n fillDescent: \"0.3255\",\n};\n\nconst EXE = process.platform === \"win32\" ? \".exe\" : \"\";\nconst OLD_BIN = path.join(BIN_DIR, `omp-png${EXE}`);\nconst NEW_BIN = path.join(BIN_DIR, `omp-svg${EXE}`);\n\n// The exporter renders at a 16px em; the retired PNG renderer's reference em\n// was 48px. Rasterizing at 3x device scale puts both at the same resolution\n// without touching the SVG's own geometry.\nconst DEVICE_SCALE_FACTOR = 3;\n\n// Pulls the Mono face out of the Hack.zip the retired PNG renderer already\n// caches (see cli/image/image.go's loadDefaultFonts), or downloads it once.\n// Same source and version as compare.mjs' own ensureFont, different entry.\nasync function ensureFont() {\n if (fs.existsSync(FONT_PATH)) {\n return;\n }\n\n fs.mkdirSync(path.dirname(FONT_PATH), { recursive: true });\n\n const home = process.env.USERPROFILE || process.env.HOME || \"\";\n const caches = [\n process.env.OMP_CACHE_DIR,\n process.platform === \"win32\" ? path.join(process.env.LOCALAPPDATA ?? \"\", \"oh-my-posh\") : null,\n process.env.XDG_CACHE_HOME ? path.join(process.env.XDG_CACHE_HOME, \"oh-my-posh\") : null,\n path.join(home, \".cache\", \"oh-my-posh\"),\n ].filter(Boolean);\n\n const entry = path.basename(FONT_PATH);\n\n for (const dir of caches) {\n const zipPath = path.join(dir, \"Hack.zip\");\n\n if (fs.existsSync(zipPath)) {\n fs.writeFileSync(FONT_PATH, extractZipEntry(fs.readFileSync(zipPath), entry));\n return;\n }\n }\n\n const url = \"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip\";\n const res = await fetch(url);\n\n if (!res.ok) {\n throw new Error(`failed to download ${url}: ${res.status} ${res.statusText}`);\n }\n\n fs.writeFileSync(FONT_PATH, extractZipEntry(Buffer.from(await res.arrayBuffer()), entry));\n}\n\nfunction themeConfig(theme) {\n for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n const candidate = path.join(THEMES_DIR, theme + ext);\n\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(`theme not found: ${theme}`);\n}\n\nfunction run(cmd, args, cwd) {\n const res = spawnSync(cmd, args, { cwd, stdio: \"inherit\", shell: false });\n\n if (res.error) {\n throw res.error;\n }\n\n if (res.status !== 0) {\n throw new Error(`command failed (exit ${res.status}): ${cmd} ${args.join(\" \")}`);\n }\n}\n\n// Reads width/height off the root element so the page can give it a box\n// of exactly that size — the SVG then renders 1:1 with no scaling at all.\nfunction svgSize(markup) {\n const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n\n if (!width || !height) {\n throw new Error(\"could not read width/height off the root \");\n }\n\n return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n}\n\nasync function rasterize(browser, markup, fontBase64, fontFamily) {\n const { width, height } = svgSize(markup);\n\n const context = await browser.newContext({\n viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n deviceScaleFactor: DEVICE_SCALE_FACTOR,\n });\n\n const page = await context.newPage();\n\n const html = `\n\n\n\n\n\n${markup}\n`;\n\n await page.setContent(html, { waitUntil: \"networkidle\" });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForTimeout(50);\n\n const buf = await page.screenshot({ omitBackground: true });\n await context.close();\n\n return buf;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const svgOnly = args.includes(\"--svg-only\");\n const website = args.includes(\"--website\");\n const themes = args.filter((a) => !a.startsWith(\"--\"));\n\n if (themes.length === 0) {\n throw new Error(\"pass at least one theme name\");\n }\n\n fs.mkdirSync(OUT_DIR, { recursive: true });\n\n run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n\n const fontFamily = website ? WEBSITE.fontFamily : FONT_FAMILY;\n const fontPath = website ? WEBSITE.fontPath : FONT_PATH;\n\n if (!website) {\n await ensureFont();\n }\n\n const fontBase64 = fs.readFileSync(fontPath).toString(\"base64\");\n const browser = await chromium.launch();\n\n try {\n for (const theme of themes) {\n const config = themeConfig(theme);\n const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n\n run(NEW_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--font-family\", fontFamily,\n ...(website\n ? [\n \"--cell-width\", WEBSITE.cellWidth,\n \"--line-height\", WEBSITE.lineHeight,\n \"--fill-ascent\", WEBSITE.fillAscent,\n \"--fill-descent\", WEBSITE.fillDescent,\n ]\n : []),\n \"-o\", svgPath,\n ]);\n\n const markup = fs.readFileSync(svgPath, \"utf8\");\n fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64, fontFamily));\n\n if (!svgOnly && fs.existsSync(OLD_BIN)) {\n run(OLD_BIN, [\n \"config\", \"export\", \"image\",\n \"--config\", config,\n \"--data\", DATA_FIXTURE,\n \"--format\", \"png\",\n \"-o\", path.join(OUT_DIR, `${theme}.png`),\n ]);\n }\n\n console.log(`${theme}: ${svgPath}`);\n }\n } finally {\n await browser.close();\n }\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exitCode = 1;\n});\n","structuredPatch":[{"oldStart":212,"oldLines":7,"newStart":212,"newLines":7,"lines":[" run(NEW_BIN, ["," \"config\", \"export\", \"image\","," \"--config\", config,","- \"--data\", DATA_FIXTURE,","+ \"--data\", website ? WEBSITE.data : DATA_FIXTURE,"," \"--font-family\", fontFamily,"," ...(website"," ? ["]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"45eeb698-85d8-487d-a6a5-f76031c291bc","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dceb38bd-71c4-4e1f-825f-22891660f8d8","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTthtf7W4SDQkW1LVeFb","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017w4LasQwvWQ65GwKM3uYLh","name":"Bash","input":{"command":"node shot.mjs --website --svg-only bubblesline 2>&1 | tail -3 && SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\" && python \"$SP/crop.py\" out/bubblesline.raster.png \"$TMPDIR/bl3.png\" 130 170 1900 160 2","description":"Render bubblesline with the gallery's own data"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":292,"cache_read_input_tokens":318900,"output_tokens":258,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":292,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":258,"cache_read_input_tokens":318900,"cache_creation_input_tokens":292,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":292},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTthqCzhvDU3frf5hbWR","type":"assistant","uuid":"85d07141-6444-48f0-a56a-d610b2134732","timestamp":"2026-07-28T05:20:05.856Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"85d07141-6444-48f0-a56a-d610b2134732","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017w4LasQwvWQ65GwKM3uYLh","type":"tool_result","content":"warning: D:\\oh-my-posh\\website\\segment_data.json has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\nbubblesline: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\bubblesline.svg\n(3432, 693) -> crop (3800, 320) saved C:/Users/jande/AppData/Local/Temp/bl3.png","is_error":false}]},"uuid":"141662a6-3b4b-479a-971b-debb5ca5aefe","timestamp":"2026-07-28T05:20:12.680Z","toolUseResult":{"stdout":"warning: D:\\oh-my-posh\\website\\segment_data.json has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\nbubblesline: D:\\oh-my-posh\\tools\\svg-png-compare\\out\\bubblesline.svg\n(3432, 693) -> crop (3800, 320) saved C:/Users/jande/AppData/Local/Temp/bl3.png","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"85d07141-6444-48f0-a56a-d610b2134732","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"141662a6-3b4b-479a-971b-debb5ca5aefe","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtioYZpuN1EAYXooR76","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Tq5n51NkAGjdiP7pqtbsEJ","name":"Read","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\bl3.png"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":416,"cache_read_input_tokens":319192,"output_tokens":72,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":416,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":72,"cache_read_input_tokens":319192,"cache_creation_input_tokens":416,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":416},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtijfA8nBBneWaJ44sR","type":"assistant","uuid":"3849ed9b-1796-4a3b-8fb6-1cd4278ffeb3","timestamp":"2026-07-28T05:20:15.567Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3849ed9b-1796-4a3b-8fb6-1cd4278ffeb3","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Tq5n51NkAGjdiP7pqtbsEJ","type":"tool_result","content":[{"type":"image","source":{"type":"base64","data":"iVBORw0KGgoAAAANSUhEUgAAB8oAAACoCAIAAAAHAPMtAAA//0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a9ec801XHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvEgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qAKDyX8h2KWWxWMxms67rJC0WC0mZaZurrnqRSSqljOM4DIPtYRiWy+V6vc5MSVx11VVXXXXVVVddddVVV1111VVXXXXV/0K2u66bz+fz+byUUmudzWZAa02Sba76HwEAqPzny8yu644fP76zs1NrjYiIkARIksRVV/3rSbKdmYDtzGytDcNw6dKlvb29zJTEVVddddVVV1111VVXXXXVVVddddVVV/2PZ7vv+xMnTmxtbdVaI0KSJEmSuOp/HABA11xzDf9pMnOxWJw6dWpjY6PrulorD2DbtiSuuurfRxKX2R7HcZqm/f398+fPj+NYSrHNVVddddVVV1111VVXXXXVVVddddVVV/3Pk5lbW1snT55cLBZd15VSeADbXPU/EQBQ+U8gqbU2n89Pnjy5vb3d930pxbZtrrrqP4Ft7tf3/Ww2m81mW1tbu7u7Fy9ezMxSim2uuuqqq6666qqrrrrqqquuuuqqq6666n+GzFwsFqdPn97Y2JjNZhFh2zZX/S8AAFT+Q0mynZnHjx8/derUxsZGKSUzM5OrrvovYdt2KWVzc3M2m21sbFy4cOHg4KCUYpurrrrqqquuuuqqq6666qqrrrrqqquu+m9lW9Lp06dPnDixWCwk2c5MrvpfAwAom5ub/AeR1Frruu7MmTNnzpxZLBZAZkriBZPEVVf95yilzOfz+XwuablcctVVV1111VVXXXXVVVddddVVV1111VX/rWz3fX/dddedPHlyPp9z1f9KAEDlP4ik1tpisTh9+vTx48cjwjYgiauu+m9iG9jY2Oi6ruu68+fPT9Mkiauuuuqqq6666qqrrrrqqquuuuqqq676L2d7Y2Pjmmuu2d7elmSbq/5XAgDK5uYm/xFsb21tXXvttceOHZNkWxIvAklcddV/slLKxsZGRKzX69aaJK666qqrrrrqqquuuuqqq6666qqrrrrqv9b29vZ11123vb3NVf+7AQBlc3OTfzfbm5ub11577fb2NpdJ4kUjiauu+s8nabFYlFJWq1VrTRJXXXXVVVddddVVV1111VVXXXXVVVdd9Z/PNrC9vX3ddddtbm5mpiSu+l8MACibm5v8+9je3Ny89tprNzc3+deTxFVX/ZeQNJ/PSynL5TIzueqqq6666qqrrrrqqquuuuqqq6666qr/fJK2t7evvfbajY2NzJTEVf+7AQBlc3OTfwfbs9nsuuuu29ra4t9EEldd9V9F0nw+l3R0dGSbq6666qqrrrrqqquuuuqqq6666qqrrvrPZHtzc/Paa6/d3NzMTElc9b8eABD8+9Raz5w5s7m5yVVX/S8h6eTJkydOnJDEVVddddVVV1111VVXXXXVVVddddVVV/2nsT2fz0+fPr25uZmZkrjq/wIAIPh3kHT8+PFjx45J4qqr/veIiDNnzmxtbXHVVVddddVVV1111VVXXXXVVVddddVV/zlsl1JOnDixs7NjWxJX/R8BAAT/DhsbG6dOnYoI/t8TEhIS4qp/gYSEhISEhISEQPxXqbWeOnWq6zquuuqqq6666qqrrrrqqquuuuqqq6666j/HsWPHjh8/Lomr/k8BACr/VrXWU6dO9X3P/3vGzSM2gBQqIrjq+XN64gUQIQX/VTY3N0+cOHHu3LnM5Kqrrrrqqquuuuqqq6666qqrrrrqqqv+49heLBbHjh3rus42V/2fAgBU/k0kbW9vb25uchVU9fPuTIkOk26rdmnKFYirnkeozutxQDwHg9CUqzHXYP5LSDpx4sTBwcHR0RFXXXXVVVddddVVV1111VVXXXXVVVdd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+jRX/V8AAOiaa67hP0JEnDhx4syZM13X2eZFY1sSV131X2IYhrvvvvvg4MA2/yVs931/+vTpra0t/t0ktdYuXLhw8eJFrrrqqquuuuqqq6666qqrrrrqqquu+l+l1nry5MkzZ85I4qr/3QAAXXPNNfwHkXTs2LFrr7227/vMlMS/xLYkrrrqP9/R0dE999yzXC5t81/I9jiOrTX+I0iqtdZaueqqq6666qqrrrrqqquuuuqqq6666n+bUsqJEyfOnDlTSuGq/8UAAF1zzTX8B7EdEZubm9dcc83m5qZt/iW2JXHVVf85bEsCLl26dN99963Xa/47SJLEfxDbtrnqqquuuuqqq6666qqrrrrqqquuuup/oYjY3t6+5ppr5vN5Zkriqv99AICyubnJfxBJwDAMR0dHwHw+jwjbknjBJHHVVf85SinjOJ49e/bcuXPr9VoS/01s27Zt27Zt27Zt27Zt27Zt27Zt27Zt27Zt27Ztc9VVV1111VVXXXXVVVddddVVV1111f9attfr9Wq1krSxsSHJtiSu+t8EACibm5v8R5umablcrtfrWutsNpNkG5DE85DEVVf9x7EtSZLtS5cu3XfffXt7e9M0SeKqq6666qqrrrrqqquuuuqqq6666qqr/gcYhmG1Wq3X677vu64DbEviqv8dAICyubnJf7SIaK2tVqvVajWOYyllPp9Lsm2byyRxmSSuuurfxzaXSSql2D44ODh37tyFCxeOjo4ASVx11VVXXXXVVVddddVVV1111VVXXXXV/wySWmur1Wq1Wk3T1Pd913WSbNvmMklc9T8UAKBrrrmG/zSZGRGbm5sbGxuLxWJra6vrOsC2bSAzIwKQxFVXvchs2wYkAZIk2R6G4eDg4Ojo6PDwcLVa2S6l2Oaqq6666qqrrrrqqquuuuqqq6666qqr/ufJzFrr5ubmfD7f3Nzc3NystQK2bQO2JUniqv9BAABdc801/CfLTGA+n29ubnZdV0rpuq7v+4gopWTmNE22ueqqF5mkvu9tZ2ZmjuM4DMM0TcMwHB0drddroJRim6uuuuqqq6666qqrrrrqqquuuuqqq676n0qS7cyUtFgsNjY2aq1d19Vaa6211lLKNE3TNHHV/yAAgK655hr+k0kCMjMzgVJK3/dd15VSSim2h2Hgqqv+NST1fW87M1tr4zgOw9BaAyIiImxz1VVXXXXVVVddddVVV1111VVXXXXVVf8bSLJtOzOBWmvXdV3X1VpLKdM0jeMoiav+pwAAdM011/BfRRJg27ZtwLYkSVx11b+Sbe4nSZIkwDZXXXXVVVddddVVV1111VVXXXXVVVdd9b+QJMC2bduAbUmSuOp/EACg8l/INgBIkiSJy2xz1VX/ShHBZbYBwDZXXXXVVVddddVVV1111VVXXXXVVVdd9b+WbS6TJEkSANjmqv9BAIDKfx/bXHXVv5Vtrrrqqquuuuqqq6666qqrrrrqqquuuur/Lttc9T8RABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIB/BMYopsvRggGlAAAAAElFTkSuQmCC","media_type":"image/png"}}]}]},"uuid":"b99352f5-4833-4661-aa00-68bacb53d362","timestamp":"2026-07-28T05:20:15.621Z","toolUseResult":{"type":"image","file":{"base64":"iVBORw0KGgoAAAANSUhEUgAAB8oAAACoCAIAAAAHAPMtAAA//0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a9ec801XHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvEgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qAKDyX8h2KWWxWMxms67rJC0WC0mZaZurrnqRSSqljOM4DIPtYRiWy+V6vc5MSVx11VVXXXXVVVddddVVV1111VVXXXXV/0K2u66bz+fz+byUUmudzWZAa02Sba76HwEAqPzny8yu644fP76zs1NrjYiIkARIksRVV/3rSbKdmYDtzGytDcNw6dKlvb29zJTEVVddddVVV1111VVXXXXVVVddddVVV/2PZ7vv+xMnTmxtbdVaI0KSJEmSuOp/HABA11xzDf9pMnOxWJw6dWpjY6PrulorD2DbtiSuuurfRxKX2R7HcZqm/f398+fPj+NYSrHNVVddddVVV1111VVXXXXVVVddddVVV/3Pk5lbW1snT55cLBZd15VSeADbXPU/EQBQ+U8gqbU2n89Pnjy5vb3d930pxbZtrrrqP4Ft7tf3/Ww2m81mW1tbu7u7Fy9ezMxSim2uuuqqq6666qqrrrrqqquuuuqqq6666n+GzFwsFqdPn97Y2JjNZhFh2zZX/S8AAFT+Q0mynZnHjx8/derUxsZGKSUzM5OrrvovYdt2KWVzc3M2m21sbFy4cOHg4KCUYpurrrrqqquuuuqqq6666qqrrrrqqquu+m9lW9Lp06dPnDixWCwk2c5MrvpfAwAom5ub/AeR1Frruu7MmTNnzpxZLBZAZkriBZPEVVf95yilzOfz+XwuablcctVVV1111VVXXXXVVVddddVVV1111VX/rWz3fX/dddedPHlyPp9z1f9KAEDlP4ik1tpisTh9+vTx48cjwjYgiauu+m9iG9jY2Oi6ruu68+fPT9Mkiauuuuqqq6666qqrrrrqqquuuuqqq676L2d7Y2Pjmmuu2d7elmSbq/5XAgDK5uYm/xFsb21tXXvttceOHZNkWxIvAklcddV/slLKxsZGRKzX69aaJK666qqrrrrqqquuuuqqq6666qqrrrrqv9b29vZ11123vb3NVf+7AQBlc3OTfzfbm5ub11577fb2NpdJ4kUjiauu+s8nabFYlFJWq1VrTRJXXXXVVVddddVVV1111VVXXXXVVVdd9Z/PNrC9vX3ddddtbm5mpiSu+l8MACibm5v8+9je3Ny89tprNzc3+deTxFVX/ZeQNJ/PSynL5TIzueqqq6666qqrrrrqqquuuuqqq6666qr/fJK2t7evvfbajY2NzJTEVf+7AQBlc3OTfwfbs9nsuuuu29ra4t9EEldd9V9F0nw+l3R0dGSbq6666qqrrrrqqquuuuqqq6666qqrrvrPZHtzc/Paa6/d3NzMTElc9b8eABD8+9Raz5w5s7m5yVVX/S8h6eTJkydOnJDEVVddddVVV1111VVXXXXVVVddddVVV/2nsT2fz0+fPr25uZmZkrjq/wIAIPh3kHT8+PFjx45J4qqr/veIiDNnzmxtbXHVVVddddVVV1111VVXXXXVVVddddVV/zlsl1JOnDixs7NjWxJX/R8BAAT/DhsbG6dOnYoI/t8TEhIS4qp/gYSEhISEhISEQPxXqbWeOnWq6zquuuqqq6666qqrrrrqqquuuuqqq6666j/HsWPHjh8/Lomr/k8BACr/VrXWU6dO9X3P/3vGzSM2gBQqIrjq+XN64gUQIQX/VTY3N0+cOHHu3LnM5Kqrrrrqqquuuuqqq6666qqrrrrqqqv+49heLBbHjh3rus42V/2fAgBU/k0kbW9vb25uchVU9fPuTIkOk26rdmnKFYirnkeozutxQDwHg9CUqzHXYP5LSDpx4sTBwcHR0RFXXXXVVVddddVVV1111VVXXXXVVVdd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+jRX/V8AAOiaa67hP0JEnDhx4syZM13X2eZFY1sSV131X2IYhrvvvvvg4MA2/yVs931/+vTpra0t/t0ktdYuXLhw8eJFrrrqqquuuuqqq6666qqrrrrqqquu+l+l1nry5MkzZ85I4qr/3QAAXXPNNfwHkXTs2LFrr7227/vMlMS/xLYkrrrqP9/R0dE999yzXC5t81/I9jiOrTX+I0iqtdZaueqqq6666qqrrrrqqquuuuqqq6666n+bUsqJEyfOnDlTSuGq/8UAAF1zzTX8B7EdEZubm9dcc83m5qZt/iW2JXHVVf85bEsCLl26dN99963Xa/47SJLEfxDbtrnqqquuuuqqq6666qqrrrrqqquuuup/oYjY3t6+5ppr5vN5Zkriqv99AICyubnJfxBJwDAMR0dHwHw+jwjbknjBJHHVVf85SinjOJ49e/bcuXPr9VoS/01s27Zt27Zt27Zt27Zt27Zt27Zt27Zt27Zt27Ztc9VVV1111VVXXXXVVVddddVVV1111f9attfr9Wq1krSxsSHJtiSu+t8EACibm5v8R5umablcrtfrWutsNpNkG5DE85DEVVf9x7EtSZLtS5cu3XfffXt7e9M0SeKqq6666qqrrrrqqquuuuqqq6666qqr/gcYhmG1Wq3X677vu64DbEviqv8dAICyubnJf7SIaK2tVqvVajWOYyllPp9Lsm2byyRxmSSuuurfxzaXSSql2D44ODh37tyFCxeOjo4ASVx11VVXXXXVVVddddVVV1111VVXXXXV/wySWmur1Wq1Wk3T1Pd913WSbNvmMklc9T8UAKBrrrmG/zSZGRGbm5sbGxuLxWJra6vrOsC2bSAzIwKQxFVXvchs2wYkAZIk2R6G4eDg4Ojo6PDwcLVa2S6l2Oaqq6666qqrrrrqqquuuuqqq6666qqr/ufJzFrr5ubmfD7f3Nzc3NystQK2bQO2JUniqv9BAABdc801/CfLTGA+n29ubnZdV0rpuq7v+4gopWTmNE22ueqqF5mkvu9tZ2ZmjuM4DMM0TcMwHB0drddroJRim6uuuuqqq6666qqrrrrqqquuuuqqq676n0qS7cyUtFgsNjY2aq1d19Vaa6211lLKNE3TNHHV/yAAgK655hr+k0kCMjMzgVJK3/dd15VSSim2h2Hgqqv+NST1fW87M1tr4zgOw9BaAyIiImxz1VVXXXXVVVddddVVV1111VVXXXXVVf8bSLJtOzOBWmvXdV3X1VpLKdM0jeMoiav+pwAAdM011/BfRRJg27ZtwLYkSVx11b+Sbe4nSZIkwDZXXXXVVVddddVVV1111VVXXXXVVVdd9b+QJMC2bduAbUmSuOp/EACg8l/INgBIkiSJy2xz1VX/ShHBZbYBwDZXXXXVVVddddVVV1111VVXXXXVVVdd9b+WbS6TJEkSANjmqv9BAIDKfx/bXHXVv5Vtrrrqqquuuuqqq6666qqrrrrqqquuuur/Lttc9T8RABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIDgqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrnpRAQDBVVddddVVV1111VVXXXXVVVddddVVV1111VVXXfWiAgCCq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuupFBQAEV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddWLCgAIrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qoXFQAQXHXVVVddddVVV1111VVXXXXVVVddddVVV1111VUvKgAguOqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqqteVABAcNVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVe9qACA4Kqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq656UQEAwVVXXXXVVVddddVVV1111VVXXXXVVVddddVVV131ogIAgquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqRQUABFddddVVV1111VVXXXXVVVddddVVV1111VVXXXXViwoACK666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqFxUAEFx11VVXXXXVVVddddVVV1111VVXXXXVVVddddVVLyoAILjqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrXlQAQHDVVVddddVVV1111VVXXXXVVVddddVVV1111VVXvagAgOCqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuelEBAMFVV1111VVXXXXVVVddddVVV1111VVXXXXVVVdd9aICAIKrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666kUFAARXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111YsKAAiuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqhcVABBcddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVS8qACC46qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq15UAEBw1VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV72oAIB/BMYopsvRggGlAAAAAElFTkSuQmCC","type":"image/png","originalSize":13677,"dimensions":{"originalWidth":3800,"originalHeight":320,"displayWidth":2000,"displayHeight":168}}},"sourceToolAssistantUUID":"3849ed9b-1796-4a3b-8fb6-1cd4278ffeb3","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b99352f5-4833-4661-aa00-68bacb53d362","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":"[Image: original 3800x320, displayed at 2000x168. Multiply coordinates by 1.90 to map to original image.]"},"isMeta":true,"uuid":"f978f66c-12c2-482e-a309-46105a2c44fb","timestamp":"2026-07-28T05:20:15.618Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f978f66c-12c2-482e-a309-46105a2c44fb","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtizsSsG47pYLvyFg3N","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I need to isolate that folder pill on the right side of the image, so I'm calculating the crop coordinates in the original raster dimensions — specifically targeting the right edge around x 2900 to 3432 to capture just that region.","signature":"CAIS6QQKhwEIEBgCKkDd50+/pg+DzlqulK8+9lEqs8cl+QkFOxb41sT38GIgDgUTA27uttH2f5KySIs0PK248skX6sd5MapwjUe5TUo0Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDIjqQm4kIuulXadAYBoMfy5RWH4q+JBtnV11IjB4aDfnT3RWs5sSfPsCehfzx5niIouMTJ1LvzSuzM0ybx5SrjyEk+ZdQ3p5gNrfKagqjgPwWwzImhx5mWA0nvJM2bqZqSsmwWU0Q9Sk0e9A2lA3lgaOI45pFL7IPYwclJX+wU49b7jzo3rr13XNhH6obkHLeKcZX+O5+GD9gMm5a7cVz3cFTvBFkQq+tFj1jRIjDj65WCRD3pwoG/j7ycDm3H1HBwj/4F40pVKW8ZN2NOTK13XVtuKV6TotKZAMDyJf8TioGgCMnV0Pw/Redrcw6hgF13TiDm3riEcJ2u80sfY/csFDmvo+33RHTXsQxh6MZdc9KRUdA6B0LEk/cr245BOC3xKMtxIUn8o7klyZ3LKAzozQ5OWllVJzQdUVaTqmiug1j2L7gfs3X1SmoKGQp4LQPvd/oRXYjnwhjQ114U7kRxUVu27y+xvUqcnUXNt4HVtSDq7wXT4KG+5U2/Le2SUeNpp7n6hVv2yt7RHlFNypRe6hmg2cHpetClIk2RhUgs4XRheKosQ8kcpW9mqiDFO4ko6LqwRBgxFFK/3tA7xgtllsmden5my5WLMRZE9sZnfDHVm1tIdgQjqPNnzL+hgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":567,"cache_read_input_tokens":319608,"output_tokens":342,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":567,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":342,"cache_read_input_tokens":319608,"cache_creation_input_tokens":567,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":567},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtiwM81K6hihwyU5qo8","type":"assistant","uuid":"66cfe161-c9cc-45ef-98e2-e2d390a32971","timestamp":"2026-07-28T05:20:20.865Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"66cfe161-c9cc-45ef-98e2-e2d390a32971","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtizsSsG47pYLvyFg3N","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01B3YJS8Pxthg9kcKYszzGXc","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/crop.py\" out/bubblesline.raster.png \"$TMPDIR/bl4.png\" 2830 170 560 160 3","description":"Crop the folder pill"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":567,"cache_read_input_tokens":319608,"output_tokens":342,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":567,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":342,"cache_read_input_tokens":319608,"cache_creation_input_tokens":567,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":567},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtiwM81K6hihwyU5qo8","type":"assistant","uuid":"1f8a9341-d50b-4723-be0e-1edeffd38b0e","timestamp":"2026-07-28T05:20:21.524Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1f8a9341-d50b-4723-be0e-1edeffd38b0e","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01B3YJS8Pxthg9kcKYszzGXc","type":"tool_result","content":"(3432, 693) -> crop (1680, 480) saved C:/Users/jande/AppData/Local/Temp/bl4.png","is_error":false}]},"uuid":"e2306a77-22dc-42d6-8aa4-61266a72bdf4","timestamp":"2026-07-28T05:20:26.283Z","toolUseResult":{"stdout":"(3432, 693) -> crop (1680, 480) saved C:/Users/jande/AppData/Local/Temp/bl4.png","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"1f8a9341-d50b-4723-be0e-1edeffd38b0e","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e2306a77-22dc-42d6-8aa4-61266a72bdf4","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtjs1wz1qgQYwFVggF5","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01V1MRr3cNT5uK7fgpaWfcCL","name":"Read","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\bl4.png"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":392,"cache_read_input_tokens":320175,"output_tokens":72,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":392,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":72,"cache_read_input_tokens":320175,"cache_creation_input_tokens":392,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":392},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtjjaiTzZpfDS7jFPbj","type":"assistant","uuid":"2500e4dd-e177-4602-8bec-879ea77394f4","timestamp":"2026-07-28T05:20:30.502Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2500e4dd-e177-4602-8bec-879ea77394f4","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01V1MRr3cNT5uK7fgpaWfcCL","type":"tool_result","content":[{"type":"image","source":{"type":"base64","data":"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","media_type":"image/png"}}]}]},"uuid":"0c548ae9-412d-4b4e-a691-465ec8062b07","timestamp":"2026-07-28T05:20:30.539Z","toolUseResult":{"type":"image","file":{"base64":"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","type":"image/png","originalSize":14886,"dimensions":{"originalWidth":1680,"originalHeight":480,"displayWidth":1680,"displayHeight":480}}},"sourceToolAssistantUUID":"2500e4dd-e177-4602-8bec-879ea77394f4","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0c548ae9-412d-4b4e-a691-465ec8062b07","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtk7utk5QsmpG4pcVzV","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The pill components are now properly aligned with uniform heights across the caps and fill. I need to regenerate the website manifest with the updated flags, run the full test and lint suite, then commit these changes.","signature":"CAISpQQKhwEIEBgCKkDldXq4E+hjUHtYvv+KbqWnAchP89ur84WucvJQS116D5KXI0rMmPg4MjeYWrgGV6fccjK7HVuaM3X3RfjH2qkCMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDFVK7Qzby72r4ZXYshoMIKSXWi/g19nQLwb9IjBxTlDftevuu6bbvliuPrzDr5e9QBkoDGTqWl+G3W7YAqL6ahEqeOWimzeQRBJuvhcqygIKFyTZYXIgu54CIq2O/y6RjSL01xffgi5jij4JLRmWjqdYoF/0br7lEcQhgusFtUGUWouqmfbjiDw7H8ra9r4zMmD9fcWSXfH6U9HMQ4v9DasQRdKkaBpvj++XtfxK/GD2dFFB05LCq0+6MfuaF+cGy64YTIOzYAPxf6zpLcIiQggOsFkjFA9iCw7f5D6BXKumvaeO0sV0ESOHE6aZRMsPR5svo8TuOIGAg3Kk36jDesGO1kMx1s4EtM7QkqpVix5FgqQcZPGBZe6m3esrjB7THlEGPKQbW1nCxTUcc7YBXUH34TUmmPFlngBEi6XoG6KsG8sk9VAvXS2qL+7dJouBx5LAAx8xkXc2N0w9GsSx3SpRd7NhAlAvY7bPdwyZKPg5eka2urO4OTtNQoAW9EUeLuyLeTiArFKdk9fmqcSwIsqzLJkSzgwJYgYYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1171,"cache_read_input_tokens":320567,"output_tokens":297,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1171,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":297,"cache_read_input_tokens":320567,"cache_creation_input_tokens":1171,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1171},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtk3FqvxiN5E4Uj4qfo","type":"assistant","uuid":"8aaea003-d5b1-4da3-a588-d2cf5e0f0caa","timestamp":"2026-07-28T05:20:36.667Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8aaea003-d5b1-4da3-a588-d2cf5e0f0caa","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtk7utk5QsmpG4pcVzV","type":"message","role":"assistant","content":[{"type":"text","text":"Fill now matches the caps exactly — no step. Regenerating the gallery and running the gates:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1171,"cache_read_input_tokens":320567,"output_tokens":297,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1171,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":297,"cache_read_input_tokens":320567,"cache_creation_input_tokens":1171,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1171},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtk3FqvxiN5E4Uj4qfo","type":"assistant","uuid":"a4d4fee7-9ed4-4068-a55a-e7148daefe4a","timestamp":"2026-07-28T05:20:36.670Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a4d4fee7-9ed4-4068-a55a-e7148daefe4a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtk7utk5QsmpG4pcVzV","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_018G6D5DEerCAhXHqfnduiMj","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && gofmt -l ./svg/ ./cli/ ; go test ./... -count=1 2>&1 | grep -v \"^ok\\|no test files\" | head; golangci-lint run ./... 2>&1 | tail -3","description":"Format, test and lint"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1171,"cache_read_input_tokens":320567,"output_tokens":297,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1171,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":297,"cache_read_input_tokens":320567,"cache_creation_input_tokens":1171,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1171},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtk3FqvxiN5E4Uj4qfo","type":"assistant","uuid":"b666b55a-1603-483d-b782-d8646c22c86c","timestamp":"2026-07-28T05:20:37.769Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b666b55a-1603-483d-b782-d8646c22c86c","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_018G6D5DEerCAhXHqfnduiMj","type":"tool_result","content":"^\n2 issues:\n* lll: 2","is_error":false}]},"uuid":"5fb9786e-0987-4b03-8aaa-2032d9f0e952","timestamp":"2026-07-28T05:21:39.166Z","toolUseResult":{"stdout":"^\n2 issues:\n* lll: 2","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"b666b55a-1603-483d-b782-d8646c22c86c","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5fb9786e-0987-4b03-8aaa-2032d9f0e952","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtqAADcVhMYZX7PgKee","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Hp3pda7U9x2KFenLVqnDPa","name":"Bash","input":{"command":"golangci-lint run ./... 2>&1 | head -12","description":"Show lint issues"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":316,"cache_read_input_tokens":321738,"output_tokens":107,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":316,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":107,"cache_read_input_tokens":321738,"cache_creation_input_tokens":316,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":316},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtq6RyrpodfMoMKWqHV","type":"assistant","uuid":"efd59461-4620-4cf0-920c-2ece744ac3dc","timestamp":"2026-07-28T05:21:43.374Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"efd59461-4620-4cf0-920c-2ece744ac3dc","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Hp3pda7U9x2KFenLVqnDPa","type":"tool_result","content":"cli\\config_export_image.go:144:1: The line is 199 characters long, which exceeds the maximum of 180 characters. (lll)\n\timageCmd.Flags().Float64Var(&svgFillAscent, \"fill-ascent\", 0, \"how far a segment background reaches above the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")\n^\ncli\\config_export_image.go:145:1: The line is 201 characters long, which exceeds the maximum of 180 characters. (lll)\n\timageCmd.Flags().Float64Var(&svgFillDescent, \"fill-descent\", 0, \"how far a segment background reaches below the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")\n^\n2 issues:\n* lll: 2","is_error":false}]},"uuid":"2021f635-e6d7-421a-a2b7-845de3ed231a","timestamp":"2026-07-28T05:21:47.853Z","toolUseResult":{"stdout":"cli\\config_export_image.go:144:1: The line is 199 characters long, which exceeds the maximum of 180 characters. (lll)\n\timageCmd.Flags().Float64Var(&svgFillAscent, \"fill-ascent\", 0, \"how far a segment background reaches above the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")\n^\ncli\\config_export_image.go:145:1: The line is 201 characters long, which exceeds the maximum of 180 characters. (lll)\n\timageCmd.Flags().Float64Var(&svgFillDescent, \"fill-descent\", 0, \"how far a segment background reaches below the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")\n^\n2 issues:\n* lll: 2","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"efd59461-4620-4cf0-920c-2ece744ac3dc","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2021f635-e6d7-421a-a2b7-845de3ed231a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtqqJRjtAeyVdJygPU9","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_0138DkVBaWwMaca9GSuc7BPm","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\cli\\config_export_image.go","old_string":"\timageCmd.Flags().Float64Var(&svgFillAscent, \"fill-ascent\", 0, \"how far a segment background reaches above the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")\n\timageCmd.Flags().Float64Var(&svgFillDescent, \"fill-descent\", 0, \"how far a segment background reaches below the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")","new_string":"\tconst fillHelp = \"how far a segment background reaches %s the baseline, as a multiple of font-size \" +\n\t\t\"(defaults to Hack Nerd Font's own U+E0B0 ink box)\"\n\n\timageCmd.Flags().Float64Var(&svgFillAscent, \"fill-ascent\", 0, fmt.Sprintf(fillHelp, \"above\"))\n\timageCmd.Flags().Float64Var(&svgFillDescent, \"fill-descent\", 0, fmt.Sprintf(fillHelp, \"below\"))"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":386,"cache_read_input_tokens":322054,"output_tokens":501,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":386,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":501,"cache_read_input_tokens":322054,"cache_creation_input_tokens":386,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":386},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtqjxDLZVq2efRZ4BJ5","type":"assistant","uuid":"94a9ff5b-81cb-4447-9eef-def6beecf095","timestamp":"2026-07-28T05:21:56.849Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"94a9ff5b-81cb-4447-9eef-def6beecf095","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_0138DkVBaWwMaca9GSuc7BPm","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\cli\\config_export_image.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"ae49d589-0bfe-40c7-8fe3-500b060e0009","timestamp":"2026-07-28T05:21:56.905Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\cli\\config_export_image.go","oldString":"\timageCmd.Flags().Float64Var(&svgFillAscent, \"fill-ascent\", 0, \"how far a segment background reaches above the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")\n\timageCmd.Flags().Float64Var(&svgFillDescent, \"fill-descent\", 0, \"how far a segment background reaches below the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")","newString":"\tconst fillHelp = \"how far a segment background reaches %s the baseline, as a multiple of font-size \" +\n\t\t\"(defaults to Hack Nerd Font's own U+E0B0 ink box)\"\n\n\timageCmd.Flags().Float64Var(&svgFillAscent, \"fill-ascent\", 0, fmt.Sprintf(fillHelp, \"above\"))\n\timageCmd.Flags().Float64Var(&svgFillDescent, \"fill-descent\", 0, fmt.Sprintf(fillHelp, \"below\"))","originalFile":"package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/prompt\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/shell\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/template\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n\n\t\"github.com/spf13/cobra\"\n)\n\nvar (\n\toutputImage string\n\tsvgFontFamily string\n\timageTerminalWidth int\n\tsvgCellWidth float64\n\tsvgLineHeight float64\n\tsvgFillAscent float64\n\tsvgFillDescent float64\n)\n\nvar imageCmd = &cobra.Command{\n\tUse: \"image\",\n\tShort: \"Export your config to an SVG image\",\n\tLong: `Export your config to an SVG image.\n\nThe image renders straight from the prompt's own Run stream, so it stays crisp at any zoom level\nand, unlike a rasterized image, faithfully reproduces every color and style the prompt itself can\nrender.\n\nYou can tweak the output by using additional flags:\n\n- terminal-width: number of columns the image canvas is rendered at; this\n is also the width the prompt is rendered with, so right-aligned blocks\n and rprompts line up with the image the same way they would in a real\n terminal of that width (default 120). Lines that still don't fit either\n collapse their alignment padding or wrap onto the next row\n- font-family: CSS font-family value the svg renders text with; defaults to\n a Nerd Font stack\n- cell-width: horizontal advance of one monospace cell, as a multiple of\n font-size (e.g. 0.6021, not a pixel count); defaults to Hack Nerd Font's\n own advance ratio, matching the default font-family stack. Set this\n explicitly when font-family names a font with a different advance ratio\n- line-height: vertical advance of one row, as a multiple of font-size;\n defaults to Hack Nerd Font's own line height. Set this explicitly\n alongside font-family/cell-width for the same reason\n- fill-ascent, fill-descent: how far a segment's background reaches above\n and below the text baseline, as multiples of font-size. Together they are\n the box a powerline separator glyph inks, so the background ends exactly\n where the separator does instead of standing taller than it. Both default\n to Hack Nerd Font's own U+E0B0 ink box; set them alongside font-family for\n the same reason as cell-width and line-height\n\nExample usage:\n\n> oh-my-posh config export image --config ~/myconfig.omp.json\n\nExports the config to an image file called myconfig.svg in the current working directory.\n\n> oh-my-posh config export image --config ~/myconfig.omp.json --output ~/mytheme.svg\n\nExports the config to an image file ~/mytheme.svg.`,\n\tArgs: cobra.NoArgs,\n\tRun: func(cmd *cobra.Command, _ []string) {\n\t\tcache.Init(os.Getenv(\"POSH_SHELL\"))\n\n\t\terr := setConfigFlag()\n\t\tif err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t\treturn\n\t\t}\n\n\t\tcfg := config.Load(configFlag)\n\n\t\tflags := &runtime.Flags{\n\t\t\tConfigPath: cfg.Source,\n\t\t\tShell: shell.GENERIC,\n\t\t\tTerminalWidth: imageTerminalWidth,\n\t\t}\n\n\t\tif err := applyDataFile(flags, cmd.Flags().Changed); err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t\treturn\n\t\t}\n\n\t\tenv := &runtime.Terminal{}\n\t\tenv.Init(flags)\n\n\t\ttemplate.Init(env, cfg.Var, cfg.Maps)\n\n\t\tdefer func() {\n\t\t\ttemplate.SaveCache()\n\t\t\tcache.Close()\n\t\t}()\n\n\t\t// set sane defaults for things we don't print\n\t\tcfg.ConsoleTitleTemplate = \"\"\n\t\tcfg.PWD = \"\"\n\t\tcfg.ShellIntegration = false\n\n\t\tterminal.Init(shell.GENERIC)\n\t\tterminal.BackgroundColor = cfg.TerminalBackground.ResolveTemplate()\n\t\tterminal.Colors = cfg.MakeColors(env)\n\t\tterminal.CaptureRuns = true\n\n\t\teng := &prompt.Engine{\n\t\t\tConfig: cfg,\n\t\t\tEnv: env,\n\t\t}\n\n\t\t// Primary renders the prompt and, since CaptureRuns is set above, records\n\t\t// its structured Run stream for exportSVG to read back via CapturedRuns.\n\t\teng.Primary()\n\n\t\tmetrics := fontMetrics{\n\t\t\tcellWidth: svgCellWidth,\n\t\t\tlineHeight: svgLineHeight,\n\t\t\tfillAscent: svgFillAscent,\n\t\t\tfillDescent: svgFillDescent,\n\t\t}\n\n\t\tif err := exportSVG(eng, cfg, outputImage, svgFontFamily, imageTerminalWidth, metrics); err != nil {\n\t\t\texitcode = 666\n\t\t\tfmt.Println(err.Error())\n\t\t}\n\t},\n}\n\nfunc init() {\n\timageCmd.Flags().StringVarP(&outputImage, \"output\", \"o\", \"\", \"image file (.svg) to export to\")\n\timageCmd.Flags().StringVar(&svgFontFamily, \"font-family\", \"\", \"CSS font-family for the exported svg\")\n\timageCmd.Flags().StringVar(&dataPath, \"data\", \"\", \"path to a template data file (json/yaml/toml) to render with\")\n\timageCmd.Flags().IntVar(&imageTerminalWidth, \"terminal-width\", 120, \"number of columns to render the prompt and image at\")\n\timageCmd.Flags().Float64Var(&svgCellWidth, \"cell-width\", 0, \"horizontal advance of one cell, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")\n\timageCmd.Flags().Float64Var(&svgLineHeight, \"line-height\", 0, \"vertical advance of one row, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")\n\timageCmd.Flags().Float64Var(&svgFillAscent, \"fill-ascent\", 0, \"how far a segment background reaches above the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")\n\timageCmd.Flags().Float64Var(&svgFillDescent, \"fill-descent\", 0, \"how far a segment background reaches below the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")\n\n\texportCmd.AddCommand(imageCmd)\n}\n\nfunc setConfigFlag() error {\n\tif configFlag != \"\" {\n\t\treturn nil\n\t}\n\n\tconfigPath, OK := cache.Get[string](cache.Session, config.SourceKey)\n\tif !OK {\n\t\treturn fmt.Errorf(\"no config found in session cache, please provide a config using the --config flag\")\n\t}\n\n\tconfigFlag = configPath\n\treturn nil\n}\n","structuredPatch":[{"oldStart":141,"oldLines":9,"newStart":141,"newLines":12,"lines":[" imageCmd.Flags().IntVar(&imageTerminalWidth, \"terminal-width\", 120, \"number of columns to render the prompt and image at\")"," imageCmd.Flags().Float64Var(&svgCellWidth, \"cell-width\", 0, \"horizontal advance of one cell, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")"," imageCmd.Flags().Float64Var(&svgLineHeight, \"line-height\", 0, \"vertical advance of one row, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")","- imageCmd.Flags().Float64Var(&svgFillAscent, \"fill-ascent\", 0, \"how far a segment background reaches above the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")","- imageCmd.Flags().Float64Var(&svgFillDescent, \"fill-descent\", 0, \"how far a segment background reaches below the baseline, as a multiple of font-size (defaults to Hack Nerd Font's own U+E0B0 ink box)\")","+ const fillHelp = \"how far a segment background reaches %s the baseline, as a multiple of font-size \" +","+ \"(defaults to Hack Nerd Font's own U+E0B0 ink box)\""," ","+ imageCmd.Flags().Float64Var(&svgFillAscent, \"fill-ascent\", 0, fmt.Sprintf(fillHelp, \"above\"))","+ imageCmd.Flags().Float64Var(&svgFillDescent, \"fill-descent\", 0, fmt.Sprintf(fillHelp, \"below\"))","+"," exportCmd.AddCommand(imageCmd)"," }"," "]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"94a9ff5b-81cb-4447-9eef-def6beecf095","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ae49d589-0bfe-40c7-8fe3-500b060e0009","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"e4a5d7b0-2ea7-4461-adfc-a3bf3eb6ea9d","timestamp":"2026-07-28T05:21:56.916Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e4a5d7b0-2ea7-4461-adfc-a3bf3eb6ea9d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtrTeDBhMgMGvCz5X79","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01XiE9QeivP91ZrwwowR7n1k","name":"Bash","input":{"command":"go build ./... && golangci-lint run ./... 2>&1 | tail -3 && go test ./... -count=1 2>&1 | grep -v \"^ok\\|no test files\" | head","description":"Rebuild, lint and test"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":686,"cache_read_input_tokens":322440,"output_tokens":152,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":686,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":152,"cache_read_input_tokens":322440,"cache_creation_input_tokens":686,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":686},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtrQTyMnxfdPbYMrK3F","type":"assistant","uuid":"15724bd1-461d-4249-9fba-4eb36aa11402","timestamp":"2026-07-28T05:22:00.475Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"15724bd1-461d-4249-9fba-4eb36aa11402","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01XiE9QeivP91ZrwwowR7n1k","type":"tool_result","content":"0 issues.","is_error":false}]},"uuid":"8df0b480-7c26-44b3-b099-325a795d128d","timestamp":"2026-07-28T05:22:16.888Z","toolUseResult":{"stdout":"0 issues.","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"15724bd1-461d-4249-9fba-4eb36aa11402","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8df0b480-7c26-44b3-b099-325a795d128d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtsx9z4qmuGUbwoLmfx","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01L9eNXVBRfvGUGJXEFYSe6Z","name":"Bash","input":{"command":"go build -o \"$TMPDIR/omp.exe\" . && cp \"$TMPDIR/omp.exe\" \"$(which oh-my-posh)\" 2>/dev/null || echo \"(installed binary not replaced; using PATH copy)\"; cd /d/oh-my-posh/website && npm run themes 2>&1 | grep -v \"warning:\" | tail -3","description":"Rebuild binary and regenerate gallery","timeout":300000},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":146,"cache_read_input_tokens":323126,"output_tokens":243,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":146,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":243,"cache_read_input_tokens":323126,"cache_creation_input_tokens":146,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":146},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtssoo9ysApdYbz8Cjx","type":"assistant","uuid":"ab8ebb05-13c8-4aba-b1c3-cedc71091132","timestamp":"2026-07-28T05:22:21.621Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ab8ebb05-13c8-4aba-b1c3-cedc71091132","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01L9eNXVBRfvGUGJXEFYSe6Z","type":"tool_result","content":"(installed binary not replaced; using PATH copy)\n --trace enable tracing","is_error":false}]},"uuid":"5859b38f-026b-4e35-afe7-0cbc1628a5df","timestamp":"2026-07-28T05:22:27.649Z","toolUseResult":{"stdout":"(installed binary not replaced; using PATH copy)\n --trace enable tracing","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"ab8ebb05-13c8-4aba-b1c3-cedc71091132","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5859b38f-026b-4e35-afe7-0cbc1628a5df","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTttjnNf9TmNf2mzstiX","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The npm run themes command failed because the installed oh-my-posh binary (version 29.35.3-39-g86de20dd) doesn't support the `--fill-ascent` flag. I need to build and install the new version to replace the current one at `/c/Users/jande/AppData/Local/Microsoft/WindowsApps/oh-my-posh`, which appears to be a WindowsApps alias from winget.\n\nRather than overwriting their installed binary directly, I'll add an environment variable override (`OMP_BIN`) to export_themes.mjs so it can use a custom binary path when provided, defaulting to the system `oh-my-posh`. This lets me test with a dev build without touching their installation, and it's a small, useful addition that will help with CI and website builds too.","signature":"CAIS+woKhwEIEBgCKkAPOsCIneplSWVHy9LX+RGbKGF6gAvlE2h2uUeYTrDygjUPrnyWh51UReVqGDNVt950r3sxYTU5xldLe+nGeBOQMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDPX5nLCL0gtGtC2MjxoM00hYQRCXYXx0drtKIjC/iQj11+y7Q0i+IzEEK94IBt1um8St3dIxxJdqVB4IAy8LWJd90L9pgVwo7fH8dMUqoAnHcVkh7RXaq9WFBnjvfc1QnQac+09VTP88VVqOSYYrRLtpE4IbnQk9UD10sKIbrDP3iqNzIUg5NB7qcWnEFoBLzubCgpstJBCcHO633FRdF/Syy7QLjnzRLy1yUnlkrwyCZJ8zKFeV41U+hgN1PuaDQSRtVjBYWtYi7iH+jMcCczo92prEYd4TJj5EOSxM/s2Ts+nfRB7WVGsCnZpNXN3uBOQIl5SAvZgJiPUomyiF8/53MRsrT57UmKRkf+PdhlKVPH2F4DqpS7fqOGqOvhiFUN3IgtDeN3aW5gUqMPs2a2cZtSwWeuPTHeYt/FHw4Ep/zhf1PdC7LEERnnEADwNaO17EzkvgOToBLw9sfVCZZvQImYhMVwfYjBG77e59ivCHUho/5LyDIBM9YKabclYHh/jc3s3OTecSgcndp4ZmFQFBDyUbG4pnhDYJKUTD6wGPSGYhYT0yDvewItjDOnm9ALMdWvgfE7Fw3MOAlrXEQxDcexT/cd1jDKVby8Fe5Xi4mD9voipyxYtjYtFU9Xt2E9OrZgR2778EZBntNSeu8eEyW+lhXI7Ld2yp0d1ShmbcYkWfX6E6umD+xIWuEJtnmB/5iNf6G2KvTKeR9yKckL59dVb67/RkLPmPW2PMBSg24sNwcpKPts1bzHEsv3iorvRA7bHin2s9Xr8U/ZczcLjZeD+vbqFJxv5XhMhm9WHIVbNY7rBRlz+9hlF5H5RWye/lc1L516MWH63E2EakHR1a7jSq2MbPUzGCsVkUGiA2guQyaHsBZ0vz0+d0idOD3TD8WpeLyCQwpjF031EsKUr31gxu94+L1R6p14fq01SCNbcvrFikHhJYZk5ZO75k5jlH+VpLu7bBA0JFoHiaucjwY3g+uDttt73pDu9Yh4L2pcd81ZGPX1jphH2yLzxxQa5tuOlrBFBnkqMb3bVXFnGRBWo80WGxsHGgiQ8LEotRkFba0xX4qOR7vwvsrXP065bdIngnmn8762wv4XbKnmh8L2WIDqiex1s/oD2IEYk4mifqpdDqpG27aWpe6W8okrdmqv2PKf887cdz09rsG12YWtZ0rn6ji84MFLAMuhyS0jUhhWLXyQdSaFzC7byLvelpBy0B5AgwhpZjauwzU6kDA5Q8PMzhJ4UAN8+6uNHodIpju1BRLW23bQuj5N6eHtXMiPM1QrhQacetkPCyTKnKA/pWdCiZo0nUhnu/VbqqjK25HFu2MtqORcHe1sq0TtOltNxYi6pRDqAbcy7vzP7HhkmY4ETelDVGAhsLUvPm+c41VUO9gjaJcDwP5+6SF+bifWyzvA0FaB44p0crdJapvzv91tTXm9heGitaxuk8NYPev24Y4AzcLUzQ/p5dLjVPwIYbdvgxDEDCQId5Awv8Af+yvNTLI6MUse8s5kXhQH1plAxyd2e/3ssAp68cyqYESNyCHi6bpuKEYUn0hDy6eoilOQfwd3jDfkQPgXoQ2y/NsbWfRo/rCZQ2ETUb4MXIS5vOHeLcgXXvDHfbNSlIzpGOD2IOeTjh/BcHBUeSDpe/gDbPKIwLTQlrTJkshNwn/07xo1OMXj4RDmJquxgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":261,"cache_read_input_tokens":323272,"output_tokens":548,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":261,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":548,"cache_read_input_tokens":323272,"cache_creation_input_tokens":261,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":261},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTttftxotsmNdLf2BCTx","type":"assistant","uuid":"94342a7b-d774-4f02-9ee8-85271a648c82","timestamp":"2026-07-28T05:22:36.922Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"94342a7b-d774-4f02-9ee8-85271a648c82","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTttjnNf9TmNf2mzstiX","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01WXWsrDkKLZjBUUA7JVnTmf","name":"Bash","input":{"command":"cd /d/oh-my-posh && grep -n \"execAsync(\\|buildPoshCommand(\" website/export_themes.mjs | head","description":"Find the exec call site"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":261,"cache_read_input_tokens":323272,"output_tokens":548,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":261,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":548,"cache_read_input_tokens":323272,"cache_creation_input_tokens":261,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":261},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTttftxotsmNdLf2BCTx","type":"assistant","uuid":"736d828c-be99-4a10-b48b-5c67fe14136a","timestamp":"2026-07-28T05:22:36.940Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"736d828c-be99-4a10-b48b-5c67fe14136a","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01WXWsrDkKLZjBUUA7JVnTmf","type":"tool_result","content":"197:function buildPoshCommand(configPath, outputPath) {\n267: const poshCommand = buildPoshCommand(configPath, outputPath);\n272: ({ stderr } = await execAsync(poshCommand));","is_error":false}]},"uuid":"cee5c7a9-47bb-41fe-a0c7-23507434e006","timestamp":"2026-07-28T05:22:37.992Z","toolUseResult":{"stdout":"197:function buildPoshCommand(configPath, outputPath) {\n267: const poshCommand = buildPoshCommand(configPath, outputPath);\n272: ({ stderr } = await execAsync(poshCommand));","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"736d828c-be99-4a10-b48b-5c67fe14136a","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cee5c7a9-47bb-41fe-a0c7-23507434e006","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtuX1Ck4t9EqJxAaFBh","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01DSfmomAsCuvP1CyfSBoqwM","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\website\\export_themes.mjs","old_string":"function buildPoshCommand(configPath, outputPath) {\n return [\n 'oh-my-posh config export image',","new_string":"// OMP_BIN points the export at a specific oh-my-posh binary instead of\n// whatever is on PATH, so a gallery can be regenerated from a local build\n// without installing it over the one the developer actually uses. CI and the\n// normal build leave it unset and get PATH, as before.\nconst POSH_BIN = process.env.OMP_BIN ? `\"${process.env.OMP_BIN}\"` : 'oh-my-posh';\n\nfunction buildPoshCommand(configPath, outputPath) {\n return [\n `${POSH_BIN} config export image`,"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":628,"cache_read_input_tokens":323533,"output_tokens":361,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":628,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":361,"cache_read_input_tokens":323533,"cache_creation_input_tokens":628,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":628},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtuShjqwbbeJDU69d81","type":"assistant","uuid":"cd4922d6-0e8f-4236-ad08-b4061236ed90","timestamp":"2026-07-28T05:22:44.127Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cd4922d6-0e8f-4236-ad08-b4061236ed90","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01DSfmomAsCuvP1CyfSBoqwM","type":"tool_result","content":"The file D:\\oh-my-posh\\website\\export_themes.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"34044ab7-edb8-4f2c-bf0d-b5f6e9985a81","timestamp":"2026-07-28T05:22:44.160Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\website\\export_themes.mjs","oldString":"function buildPoshCommand(configPath, outputPath) {\n return [\n 'oh-my-posh config export image',","newString":"// OMP_BIN points the export at a specific oh-my-posh binary instead of\n// whatever is on PATH, so a gallery can be regenerated from a local build\n// without installing it over the one the developer actually uses. CI and the\n// normal build leave it unset and get PATH, as before.\nconst POSH_BIN = process.env.OMP_BIN ? `\"${process.env.OMP_BIN}\"` : 'oh-my-posh';\n\nfunction buildPoshCommand(configPath, outputPath) {\n return [\n `${POSH_BIN} config export image`,","originalFile":null,"structuredPatch":[{"oldStart":194,"oldLines":9,"newStart":194,"newLines":15,"lines":[" }"," }"," ","+// OMP_BIN points the export at a specific oh-my-posh binary instead of","+// whatever is on PATH, so a gallery can be regenerated from a local build","+// without installing it over the one the developer actually uses. CI and the","+// normal build leave it unset and get PATH, as before.","+const POSH_BIN = process.env.OMP_BIN ? `\"${process.env.OMP_BIN}\"` : 'oh-my-posh';","+"," function buildPoshCommand(configPath, outputPath) {"," return [","- 'oh-my-posh config export image',","+ `${POSH_BIN} config export image`,"," `--config=${configPath}`,"," `--output=${outputPath}`,"," `--font-family=\"${CONFIG.FONT_FAMILY}\"`,"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"cd4922d6-0e8f-4236-ad08-b4061236ed90","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"34044ab7-edb8-4f2c-bf0d-b5f6e9985a81","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtv2z1CMPFUUrmfCT7s","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Qx7Z4d3KR6ANX8EkEQ2CzY","name":"Bash","input":{"command":"cd /d/oh-my-posh/website && OMP_BIN=\"$TMPDIR/omp.exe\" npm run themes 2>&1 | grep -v \"warning:\" | tail -3","description":"Regenerate gallery with the local build","timeout":300000},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":414,"cache_read_input_tokens":324161,"output_tokens":165,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":414,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":165,"cache_read_input_tokens":324161,"cache_creation_input_tokens":414,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":414},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTtutrbusjyBfxRrRJfS","type":"assistant","uuid":"8106c41d-5823-4f9b-9632-8b5e1a3248bb","timestamp":"2026-07-28T05:22:49.886Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8106c41d-5823-4f9b-9632-8b5e1a3248bb","isSidechain":false,"promptId":"7b287d09-adf7-4bef-8e70-758237eecbed","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Qx7Z4d3KR6ANX8EkEQ2CzY","type":"tool_result","content":"Exported ys.omp.json\nExported zash.omp.json\nSuccessfully exported 124 themes to D:\\oh-my-posh\\website\\generated\\themes.json","is_error":false}]},"uuid":"7b9584f7-9d4e-4e7b-89f3-5c21c64e2c79","timestamp":"2026-07-28T05:22:56.381Z","toolUseResult":{"stdout":"Exported ys.omp.json\nExported zash.omp.json\nSuccessfully exported 124 themes to D:\\oh-my-posh\\website\\generated\\themes.json","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"8106c41d-5823-4f9b-9632-8b5e1a3248bb","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7b9584f7-9d4e-4e7b-89f3-5c21c64e2c79","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTtvuFwRPUfB4AtF3Hgg","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01XfszMnNGCHj996hSzUhVHC","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/check_manifest.py\" generated/themes.json bubblesline | head -8 && python - <<'PY'\nimport io, json, re\nd = json.load(io.open('generated/themes.json', encoding='utf-8'))\nthemes = d['themes'] if isinstance(d, dict) and 'themes' in d else d\nsvg = {t['name']: t['svg'] for t in themes}['bubblesline']\nheights = sorted(set(re.findall(r' elements 21\r\n xml:space=preserve 21\r\n white-space on root False\r\n cursor runs 1\r\n next: elements 21\r\n xml:space=preserve 21\r\n white-space on root False\r\n cursor runs 1\r\n next: /dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":6365},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T05:24:20.932Z","uuid":"b7fdd293-8457-4160-b267-9cc437f7a1a4","toolUseID":"a810a4ea-220e-4e7f-8607-2763cc4e11e9","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b7fdd293-8457-4160-b267-9cc437f7a1a4","isSidechain":false,"promptId":"4ccbb3ad-c345-410f-b851-7a458560893a","type":"user","message":{"role":"user","content":"The invert power line bug I talked about is not a bug, that's an issue in the team configuration file. Before we continue, I want you to have Fable 5 execute an analysis on all of the code changes, how we designed, etc., to find simplification in the implementation, deduplicate code parts where possible, and efficiency gains."},"uuid":"0824506b-2ee5-43fe-989f-19a33cf3e7e9","timestamp":"2026-07-28T05:25:29.314Z","permissionMode":"auto","origin":{"kind":"human"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0824506b-2ee5-43fe-989f-19a33cf3e7e9","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"0020ce1f-9d1a-41ac-8d3e-2ee22460c049","timestamp":"2026-07-28T05:25:29.314Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0020ce1f-9d1a-41ac-8d3e-2ee22460c049","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-95d9edd1-5fee-4309-a98c-d3eb82e3bf51","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"bf2ab4b7-ebaf-49d4-b91d-231fa542e509","timestamp":"2026-07-28T05:25:29.525Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bf2ab4b7-ebaf-49d4-b91d-231fa542e509","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTu8DHxYVfSf3K7J1mTz","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The invert_powerline issue is just a configuration problem, not a bug. Now I'm being asked to use an agent to analyze all code changes across the branch for simplification, deduplication, and efficiency. The scope seems to be the entire SVG work on the `next` branch compared to `origin/main` — that's roughly 200 files worth of changes to review.\n\nI'm thinking about splitting this into focused agents working in parallel: one for the new SVG encoder package, another for the terminal run capture and writer changes, and a third covering the plumbing across prompt, CLI, color, and config modules, plus any cross-cutting duplication between packages and the website tools. I'll send them all at once so they run concurrently, giving each one the precise diff range and making clear they should report findings without making changes, and verify their claims against the actual code rather than speculating. I'm completing the scope breakdown with the remaining areas: prompt, CLI, color, and config plumbing for duplication with existing helpers and API awkwardness, plus the cross-cutting JavaScript tools where I've already spotted real duplication—those font and metrics constants are defined in three separate places. I'll brief the agents on the branch, make clear they're analyzing only, and ask them to report concrete findings with file locations, the specific simplification, and any risks involved.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":304,"cache_read_input_tokens":327728,"output_tokens":5765,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":304,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":5765,"cache_read_input_tokens":327728,"cache_creation_input_tokens":304,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":304},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTu887AY5crsBpKG3xSL","type":"assistant","uuid":"9b218cec-edc6-4704-a2ca-26a66358335d","timestamp":"2026-07-28T05:25:52.667Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9b218cec-edc6-4704-a2ca-26a66358335d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTu8DHxYVfSf3K7J1mTz","type":"message","role":"assistant","content":[{"type":"text","text":"Dropping bug 2 — noted, theme config, not code.\n\nLaunching four Fable 5 analyses in parallel, scoped by area:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":304,"cache_read_input_tokens":327728,"output_tokens":5765,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":304,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":5765,"cache_read_input_tokens":327728,"cache_creation_input_tokens":304,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":304},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTu887AY5crsBpKG3xSL","type":"assistant","uuid":"8484100f-b0af-4ba2-853f-4942629f84a0","timestamp":"2026-07-28T05:25:52.671Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8484100f-b0af-4ba2-853f-4942629f84a0","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTu8DHxYVfSf3K7J1mTz","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Wezii3a8tCyQiriPHxcifn","name":"Agent","input":{"description":"Analyze svg encoder package","model":"fable","subagent_type":"general-purpose","prompt":"You are reviewing new Go code in the oh-my-posh repo at D:\\oh-my-posh for SIMPLIFICATION, DEDUPLICATION and EFFICIENCY. Analysis only — do NOT edit any file.\n\nScope: the `src/svg` package, which is entirely new on the current branch `next`. See it with:\n git diff origin/main...next -- src/svg/\n\nFiles: svg.go, colors.go, fit.go, window.go, decorate.go and their _test.go siblings.\n\nContext you need:\n- The package encodes a captured `terminal.Run` stream (one []terminal.Run per output row) into a self-contained SVG document. It replaced a retired PNG renderer (`src/cli/image/`, deleted in commit 4bc8a9cc — read it with `git show 4bc8a9cc^:src/cli/image/image.go` if useful for comparison).\n- It runs once per export, NOT on the prompt hot path, so allocation is not a concern here. Readability and redundancy are.\n- `Options` has grown to: TerminalBackground, AccentForeground, AccentBackground, CanvasBackground, Cursor, FontFamily, FontSize, CellWidth, LineHeight, FillAscent, FillDescent, Padding, Columns. Judge whether that surface is justified or whether some of it can be derived, grouped, or dropped.\n\nWhat to look for, in priority order:\n1. Duplicated logic — within the package, and between this package and the retired PNG renderer's approach. fit.go's gap handling vs decorate.go's insertCursor both reason about gap runs; check for overlap.\n2. Abstractions that earn nothing: types, helpers or indirection layers with a single caller and no clarifying value.\n3. Options surface: is every field pulling its weight? Can any pair be collapsed (e.g. FillAscent/FillDescent, CellWidth/LineHeight)? Note that these are per-font metrics deliberately NOT derived from each other — see their doc comments for the reasoning, and say if you disagree with it.\n4. String building in svg.go — many small WriteString calls. Is there a materially clearer or faster shape?\n5. Dead or unreachable code, defensive branches that cannot fire.\n6. Test duplication — repeated setup that a table or helper would collapse.\n\nRules:\n- VERIFY every claim by reading the actual code. Do not speculate. If you assert a branch is unreachable, show why from the callers.\n- The doc comments in this package are unusually long and deliberate — they record why decisions were made and which wrong approaches were already tried and reverted. Do NOT propose deleting them as noise. If a comment is genuinely stale or contradicts the code, that IS worth reporting.\n- Rank findings by value. A finding that removes 3 lines is not worth the same as one that removes a concept.\n- For each finding give: file:line, what to change, why it is better, and what could break.\n\nOutput a concise ranked list. No preamble, no summary of what the package does."},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":304,"cache_read_input_tokens":327728,"output_tokens":5765,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":304,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":5765,"cache_read_input_tokens":327728,"cache_creation_input_tokens":304,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":304},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTu887AY5crsBpKG3xSL","type":"assistant","uuid":"2c9e584b-dab0-4346-8f85-9d14a3819011","timestamp":"2026-07-28T05:26:07.375Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2c9e584b-dab0-4346-8f85-9d14a3819011","isSidechain":false,"promptId":"4ccbb3ad-c345-410f-b851-7a458560893a","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Wezii3a8tCyQiriPHxcifn","type":"tool_result","content":[{"type":"text","text":"Async agent launched successfully. (This tool result is internal metadata — never quote or paste any part of it, including the agentId below, into a user-facing reply.)\nagentId: a348617e830e39c84 (internal ID - do not mention to user. Use SendMessage with to: 'a348617e830e39c84', summary: '<5-10 word recap>' to continue this agent.)\nThe agent is working in the background. You will be notified automatically when it completes. You know nothing about its results until that notification arrives — do not report, assume, or predict them; continue other work or respond to the user in the meantime.\nDo not duplicate this agent's work — avoid working with the same files or topics it is using.\noutput_file: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a348617e830e39c84.output\nDo NOT Read or tail this file via the shell tool — it is the full subagent JSONL transcript and reading it will overflow your context. If the user asks for progress, say the agent is still running; you'll get a completion notification."}]}]},"uuid":"5ac4e3ad-5298-4817-8361-acd2a1eccbd1","timestamp":"2026-07-28T05:26:10.706Z","toolUseResult":{"isAsync":true,"status":"async_launched","agentId":"a348617e830e39c84","description":"Analyze svg encoder package","resolvedModel":"claude-fable-5","prompt":"You are reviewing new Go code in the oh-my-posh repo at D:\\oh-my-posh for SIMPLIFICATION, DEDUPLICATION and EFFICIENCY. Analysis only — do NOT edit any file.\n\nScope: the `src/svg` package, which is entirely new on the current branch `next`. See it with:\n git diff origin/main...next -- src/svg/\n\nFiles: svg.go, colors.go, fit.go, window.go, decorate.go and their _test.go siblings.\n\nContext you need:\n- The package encodes a captured `terminal.Run` stream (one []terminal.Run per output row) into a self-contained SVG document. It replaced a retired PNG renderer (`src/cli/image/`, deleted in commit 4bc8a9cc — read it with `git show 4bc8a9cc^:src/cli/image/image.go` if useful for comparison).\n- It runs once per export, NOT on the prompt hot path, so allocation is not a concern here. Readability and redundancy are.\n- `Options` has grown to: TerminalBackground, AccentForeground, AccentBackground, CanvasBackground, Cursor, FontFamily, FontSize, CellWidth, LineHeight, FillAscent, FillDescent, Padding, Columns. Judge whether that surface is justified or whether some of it can be derived, grouped, or dropped.\n\nWhat to look for, in priority order:\n1. Duplicated logic — within the package, and between this package and the retired PNG renderer's approach. fit.go's gap handling vs decorate.go's insertCursor both reason about gap runs; check for overlap.\n2. Abstractions that earn nothing: types, helpers or indirection layers with a single caller and no clarifying value.\n3. Options surface: is every field pulling its weight? Can any pair be collapsed (e.g. FillAscent/FillDescent, CellWidth/LineHeight)? Note that these are per-font metrics deliberately NOT derived from each other — see their doc comments for the reasoning, and say if you disagree with it.\n4. String building in svg.go — many small WriteString calls. Is there a materially clearer or faster shape?\n5. Dead or unreachable code, defensive branches that cannot fire.\n6. Test duplication — repeated setup that a table or helper would collapse.\n\nRules:\n- VERIFY every claim by reading the actual code. Do not speculate. If you assert a branch is unreachable, show why from the callers.\n- The doc comments in this package are unusually long and deliberate — they record why decisions were made and which wrong approaches were already tried and reverted. Do NOT propose deleting them as noise. If a comment is genuinely stale or contradicts the code, that IS worth reporting.\n- Rank findings by value. A finding that removes 3 lines is not worth the same as one that removes a concept.\n- For each finding give: file:line, what to change, why it is better, and what could break.\n\nOutput a concise ranked list. No preamble, no summary of what the package does.","outputFile":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a348617e830e39c84.output","canReadOutputFile":true},"sourceToolAssistantUUID":"2c9e584b-dab0-4346-8f85-9d14a3819011","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5ac4e3ad-5298-4817-8361-acd2a1eccbd1","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTu8DHxYVfSf3K7J1mTz","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01BqqBAjXnrkBaXad8uzfDEy","name":"Agent","input":{"description":"Analyze terminal run capture","model":"fable","subagent_type":"general-purpose","prompt":"You are reviewing Go code in the oh-my-posh repo at D:\\oh-my-posh for SIMPLIFICATION, DEDUPLICATION and EFFICIENCY. Analysis only — do NOT edit any file.\n\nScope: the `src/terminal` package changes on branch `next`:\n git diff origin/main...next -- src/terminal/\n\nThis covers two related pieces of work:\n1. A tokenizer collapse in writer.go — three duplicated ANSI-anchor scanners were merged into one.\n2. A new parallel \"Run stream\" capture (run.go) that records the prompt as styled runs alongside the ANSI bytes, for the new src/svg encoder to consume without re-parsing escape sequences.\n\nCRITICAL CONTEXT — this IS the prompt hot path:\n- `terminal.Write`/`String` run on every prompt render. Latency and allocations matter enormously here.\n- `src/terminal/bench_test.go` contains allocation gates. Read it first.\n- Run capture is off by default (`terminal.CaptureRuns`). With it off, every capture site must cost a single bool check and nothing more. Verify that this actually holds — look for capture bookkeeping that runs unconditionally.\n- A previously attempted refactor of the anchor scanner was reverted because a helper grew too large to inline and cost 6.1x CPU on the fast path. Inlining behaviour matters. You can check with: cd src && go build -gcflags='-m' ./terminal/ 2>&1 | grep -i \"inline\"\n\nWhat to look for, in priority order:\n1. Work done on the hot path that could be hoisted, avoided, or made conditional.\n2. `runState` and `colorState` are threaded through the same events. Is that duplication real, and would merging them help or hurt?\n3. The package carries ~28 package-level globals. Identify any introduced or worsened by this branch, and whether any can be scoped down without changing behaviour.\n4. Duplicated logic between the ANSI emitters and the run-capture mirror sites — write() mirrors its content into runsState.text, syncPendingStyle mirrors colorState. Is there a shape with one source of truth?\n5. Functions that are now dead, or globals no longer read, after the tokenizer collapse.\n6. Anything in the diff that is more complex than the behaviour it delivers.\n\nRules:\n- VERIFY every claim against the code and, where it concerns performance, against the benchmarks. Run them if useful: cd src && go test ./terminal/ -bench=. -benchtime=2s -run=XXX\n- Do NOT propose a change that adds hot-path cost for tidiness. Say so explicitly if a simplification would.\n- The doc comments here are long and deliberate — they record reverted approaches and the reasoning behind current shapes. Do not propose deleting them. Stale or contradicted comments ARE worth reporting.\n- Rank by value; note what could break for each.\n\nOutput a concise ranked list with file:line references. No preamble."},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":304,"cache_read_input_tokens":327728,"output_tokens":5765,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":304,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":5765,"cache_read_input_tokens":327728,"cache_creation_input_tokens":304,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":304},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTu887AY5crsBpKG3xSL","type":"assistant","uuid":"8f1dd800-8a63-4adc-a211-ba9eae23d61e","timestamp":"2026-07-28T05:26:22.985Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8f1dd800-8a63-4adc-a211-ba9eae23d61e","isSidechain":false,"promptId":"4ccbb3ad-c345-410f-b851-7a458560893a","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01BqqBAjXnrkBaXad8uzfDEy","type":"tool_result","content":[{"type":"text","text":"Async agent launched successfully. (This tool result is internal metadata — never quote or paste any part of it, including the agentId below, into a user-facing reply.)\nagentId: ae441658517242e1d (internal ID - do not mention to user. Use SendMessage with to: 'ae441658517242e1d', summary: '<5-10 word recap>' to continue this agent.)\nThe agent is working in the background. You will be notified automatically when it completes. You know nothing about its results until that notification arrives — do not report, assume, or predict them; continue other work or respond to the user in the meantime.\nDo not duplicate this agent's work — avoid working with the same files or topics it is using.\noutput_file: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\ae441658517242e1d.output\nDo NOT Read or tail this file via the shell tool — it is the full subagent JSONL transcript and reading it will overflow your context. If the user asks for progress, say the agent is still running; you'll get a completion notification."}]}]},"uuid":"31589911-199d-4041-96c7-bf40ca7b7d76","timestamp":"2026-07-28T05:26:26.394Z","toolUseResult":{"isAsync":true,"status":"async_launched","agentId":"ae441658517242e1d","description":"Analyze terminal run capture","resolvedModel":"claude-fable-5","prompt":"You are reviewing Go code in the oh-my-posh repo at D:\\oh-my-posh for SIMPLIFICATION, DEDUPLICATION and EFFICIENCY. Analysis only — do NOT edit any file.\n\nScope: the `src/terminal` package changes on branch `next`:\n git diff origin/main...next -- src/terminal/\n\nThis covers two related pieces of work:\n1. A tokenizer collapse in writer.go — three duplicated ANSI-anchor scanners were merged into one.\n2. A new parallel \"Run stream\" capture (run.go) that records the prompt as styled runs alongside the ANSI bytes, for the new src/svg encoder to consume without re-parsing escape sequences.\n\nCRITICAL CONTEXT — this IS the prompt hot path:\n- `terminal.Write`/`String` run on every prompt render. Latency and allocations matter enormously here.\n- `src/terminal/bench_test.go` contains allocation gates. Read it first.\n- Run capture is off by default (`terminal.CaptureRuns`). With it off, every capture site must cost a single bool check and nothing more. Verify that this actually holds — look for capture bookkeeping that runs unconditionally.\n- A previously attempted refactor of the anchor scanner was reverted because a helper grew too large to inline and cost 6.1x CPU on the fast path. Inlining behaviour matters. You can check with: cd src && go build -gcflags='-m' ./terminal/ 2>&1 | grep -i \"inline\"\n\nWhat to look for, in priority order:\n1. Work done on the hot path that could be hoisted, avoided, or made conditional.\n2. `runState` and `colorState` are threaded through the same events. Is that duplication real, and would merging them help or hurt?\n3. The package carries ~28 package-level globals. Identify any introduced or worsened by this branch, and whether any can be scoped down without changing behaviour.\n4. Duplicated logic between the ANSI emitters and the run-capture mirror sites — write() mirrors its content into runsState.text, syncPendingStyle mirrors colorState. Is there a shape with one source of truth?\n5. Functions that are now dead, or globals no longer read, after the tokenizer collapse.\n6. Anything in the diff that is more complex than the behaviour it delivers.\n\nRules:\n- VERIFY every claim against the code and, where it concerns performance, against the benchmarks. Run them if useful: cd src && go test ./terminal/ -bench=. -benchtime=2s -run=XXX\n- Do NOT propose a change that adds hot-path cost for tidiness. Say so explicitly if a simplification would.\n- The doc comments here are long and deliberate — they record reverted approaches and the reasoning behind current shapes. Do not propose deleting them. Stale or contradicted comments ARE worth reporting.\n- Rank by value; note what could break for each.\n\nOutput a concise ranked list with file:line references. No preamble.","outputFile":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\ae441658517242e1d.output","canReadOutputFile":true},"sourceToolAssistantUUID":"8f1dd800-8a63-4adc-a211-ba9eae23d61e","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"31589911-199d-4041-96c7-bf40ca7b7d76","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTu8DHxYVfSf3K7J1mTz","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_018TngHb3KqjQZQeFQJiTLET","name":"Agent","input":{"description":"Analyze prompt cli color plumbing","model":"fable","subagent_type":"general-purpose","prompt":"You are reviewing Go code in the oh-my-posh repo at D:\\oh-my-posh for SIMPLIFICATION, DEDUPLICATION and EFFICIENCY. Analysis only — do NOT edit any file.\n\nScope: the plumbing packages changed on branch `next`:\n git diff origin/main...next -- src/prompt/ src/cli/ src/color/ src/config/\n\nThis covers several strands of one feature:\n- `src/prompt/runs.go` + Engine fields: capturing the rendered prompt as a Run stream, row by row, plus a cursor anchor marking where the shell leaves the cursor.\n- `src/prompt/golden_test.go` + testdata: a golden-file harness over all 124 bundled themes, driven by a single hermetic `--data` fixture.\n- `src/cli/config_export_image.go` + `config_export_svg.go`: the export command and its font-metric flags.\n- `src/cli/config_export_data.go` + `src/config/data.go`: a `config export data` recorder that captures segment state for deterministic replay, with a sanitizer.\n- `src/color/`: colour source tracking (the pre-ToAnsi form a segment asked for) so an encoder can resolve colours itself.\n\nWhat to look for, in priority order:\n1. Duplication — between these packages and existing helpers that already do the same job. Especially: colour resolution logic that may now exist in both `src/color` and `src/svg/colors.go`; check whether `src/svg/colors.go` reimplements something `src/color` already exposes or could expose.\n2. The Engine's capture fields (capturedRows, pendingBlockRuns, pendingFillerRuns, rpromptRuns, cursorRow, cursorRun) — six fields riding alongside the existing prompt/rprompt/blockText/length state. Is there a smaller shape?\n3. The recorder/sanitizer in config_export_data.go: a previous version silently no-op'd because it matched Go field names against JSON keys with lowercase tags, and leaked a real email address into fixtures. Check the current structural approach is actually sound and not over-built.\n4. API awkwardness: `exportSVG` and `svgOptions` recently grew a `fontMetrics` struct. Judge whether the CLI-to-encoder plumbing is as direct as it can be.\n5. Test/fixture duplication, and whether the golden harness pins anything it does not actually exercise.\n6. Dead code or fields no longer read.\n\nRules:\n- VERIFY every claim by reading the code. Do not speculate.\n- Note that `src/prompt` and `src/config` are on the prompt hot path; `src/cli` export paths are not. Do not propose hot-path cost for tidiness.\n- Doc comments here are long and deliberate, recording reverted approaches. Do not propose deleting them as noise; DO report ones that are stale or contradict the code.\n- Rank by value; for each give file:line, the change, why it is better, and what could break.\n\nOutput a concise ranked list. No preamble."},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":304,"cache_read_input_tokens":327728,"output_tokens":5765,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":304,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":5765,"cache_read_input_tokens":327728,"cache_creation_input_tokens":304,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":304},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTu887AY5crsBpKG3xSL","type":"assistant","uuid":"0138bed5-8feb-438e-ae09-dcb792651f38","timestamp":"2026-07-28T05:26:36.290Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0138bed5-8feb-438e-ae09-dcb792651f38","isSidechain":false,"promptId":"4ccbb3ad-c345-410f-b851-7a458560893a","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_018TngHb3KqjQZQeFQJiTLET","type":"tool_result","content":[{"type":"text","text":"Async agent launched successfully. (This tool result is internal metadata — never quote or paste any part of it, including the agentId below, into a user-facing reply.)\nagentId: a55d928e9f98aab0a (internal ID - do not mention to user. Use SendMessage with to: 'a55d928e9f98aab0a', summary: '<5-10 word recap>' to continue this agent.)\nThe agent is working in the background. You will be notified automatically when it completes. You know nothing about its results until that notification arrives — do not report, assume, or predict them; continue other work or respond to the user in the meantime.\nDo not duplicate this agent's work — avoid working with the same files or topics it is using.\noutput_file: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a55d928e9f98aab0a.output\nDo NOT Read or tail this file via the shell tool — it is the full subagent JSONL transcript and reading it will overflow your context. If the user asks for progress, say the agent is still running; you'll get a completion notification."}]}]},"uuid":"dc04d88e-74a4-4e70-beb4-c7b6c337ec57","timestamp":"2026-07-28T05:26:39.656Z","toolUseResult":{"isAsync":true,"status":"async_launched","agentId":"a55d928e9f98aab0a","description":"Analyze prompt cli color plumbing","resolvedModel":"claude-fable-5","prompt":"You are reviewing Go code in the oh-my-posh repo at D:\\oh-my-posh for SIMPLIFICATION, DEDUPLICATION and EFFICIENCY. Analysis only — do NOT edit any file.\n\nScope: the plumbing packages changed on branch `next`:\n git diff origin/main...next -- src/prompt/ src/cli/ src/color/ src/config/\n\nThis covers several strands of one feature:\n- `src/prompt/runs.go` + Engine fields: capturing the rendered prompt as a Run stream, row by row, plus a cursor anchor marking where the shell leaves the cursor.\n- `src/prompt/golden_test.go` + testdata: a golden-file harness over all 124 bundled themes, driven by a single hermetic `--data` fixture.\n- `src/cli/config_export_image.go` + `config_export_svg.go`: the export command and its font-metric flags.\n- `src/cli/config_export_data.go` + `src/config/data.go`: a `config export data` recorder that captures segment state for deterministic replay, with a sanitizer.\n- `src/color/`: colour source tracking (the pre-ToAnsi form a segment asked for) so an encoder can resolve colours itself.\n\nWhat to look for, in priority order:\n1. Duplication — between these packages and existing helpers that already do the same job. Especially: colour resolution logic that may now exist in both `src/color` and `src/svg/colors.go`; check whether `src/svg/colors.go` reimplements something `src/color` already exposes or could expose.\n2. The Engine's capture fields (capturedRows, pendingBlockRuns, pendingFillerRuns, rpromptRuns, cursorRow, cursorRun) — six fields riding alongside the existing prompt/rprompt/blockText/length state. Is there a smaller shape?\n3. The recorder/sanitizer in config_export_data.go: a previous version silently no-op'd because it matched Go field names against JSON keys with lowercase tags, and leaked a real email address into fixtures. Check the current structural approach is actually sound and not over-built.\n4. API awkwardness: `exportSVG` and `svgOptions` recently grew a `fontMetrics` struct. Judge whether the CLI-to-encoder plumbing is as direct as it can be.\n5. Test/fixture duplication, and whether the golden harness pins anything it does not actually exercise.\n6. Dead code or fields no longer read.\n\nRules:\n- VERIFY every claim by reading the code. Do not speculate.\n- Note that `src/prompt` and `src/config` are on the prompt hot path; `src/cli` export paths are not. Do not propose hot-path cost for tidiness.\n- Doc comments here are long and deliberate, recording reverted approaches. Do not propose deleting them as noise; DO report ones that are stale or contradict the code.\n- Rank by value; for each give file:line, the change, why it is better, and what could break.\n\nOutput a concise ranked list. No preamble.","outputFile":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a55d928e9f98aab0a.output","canReadOutputFile":true},"sourceToolAssistantUUID":"0138bed5-8feb-438e-ae09-dcb792651f38","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dc04d88e-74a4-4e70-beb4-c7b6c337ec57","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTu8DHxYVfSf3K7J1mTz","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01G2zdk7n4kQsse22nfqmAnv","name":"Agent","input":{"description":"Analyze website and tooling JS","model":"fable","subagent_type":"general-purpose","prompt":"You are reviewing JavaScript and configuration in the oh-my-posh repo at D:\\oh-my-posh for SIMPLIFICATION, DEDUPLICATION and EFFICIENCY. Analysis only — do NOT edit any file.\n\nScope: the website and developer tooling changed on branch `next`:\n git diff origin/main...next -- website/ tools/\n\nKey files:\n- website/export_themes.mjs — exports all 124 bundled themes to SVG via the oh-my-posh CLI and writes website/generated/themes.json (gitignored, rebuilt each build).\n- website/plugins/themes/index.js and website/src/components/ThemeGallery/ — the Docusaurus plugin and component that inline those SVGs.\n- website/plugins/segments/ and website/src/components/SegmentCatalog/ + website/src/pages/segments.js — a faceted segment catalog.\n- website/src/pages/index.js + styles.module.css — homepage layout work.\n- tools/svg-png-compare/ — a developer acceptance harness: compare.mjs (diffs the SVG exporter against the retired PNG renderer), shot.mjs (side-by-side rasters at natural size), probe-whitespace.mjs, zip.mjs.\n\nWhat to look for, in priority order:\n1. DUPLICATED CONSTANTS ACROSS FILES. Victor Mono's font metrics (cell width 0.5455, line height 1.6909, fill ascent 1.0982, fill descent 0.3255) now appear in BOTH website/export_themes.mjs and tools/svg-png-compare/shot.mjs. Hack Nerd Font's equivalents are hardcoded as defaults in src/svg/svg.go. Find every such duplication and propose where the single source of truth should live. This is the highest-value finding area — be thorough.\n2. Duplicated logic between compare.mjs and shot.mjs — both build binaries, both extract a font from a cached Hack.zip, both drive Playwright, both rasterize. Judge how much should be shared and how.\n3. website/generated/themes.json is regenerated on every build for 124 themes. Is the export loop efficient (concurrency, temp file churn, redundant CLI invocations)? Is anything done per-theme that could be done once?\n4. The Docusaurus plugin/component pairs (themes, segments): duplication between them, and whether the data passed through setGlobalData is larger than the pages actually need.\n5. Dead code and stale comments — e.g. comments referring to the retired PNG renderer, to files that no longer exist, or to font variants that were swapped out.\n6. Any place the homepage/catalog CSS repeats itself in a way a variable or shared class would fix.\n\nRules:\n- VERIFY every claim by reading the actual files. Do not speculate about what a file contains.\n- tools/svg-png-compare is a developer-only harness, never run in CI. Weight its findings lower than website/ code that ships.\n- Some duplication is deliberate and documented in comments — read them before calling something redundant, and engage with the stated reasoning if you still disagree.\n- Rank by value; for each give file:line, the change, why it is better, and what could break.\n\nOutput a concise ranked list. No preamble."},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":304,"cache_read_input_tokens":327728,"output_tokens":5765,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":304,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":5765,"cache_read_input_tokens":327728,"cache_creation_input_tokens":304,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":304},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTu887AY5crsBpKG3xSL","type":"assistant","uuid":"b8d9c44c-9fa8-408d-9796-c5d2d37b97e3","timestamp":"2026-07-28T05:26:50.447Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b8d9c44c-9fa8-408d-9796-c5d2d37b97e3","isSidechain":false,"promptId":"4ccbb3ad-c345-410f-b851-7a458560893a","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01G2zdk7n4kQsse22nfqmAnv","type":"tool_result","content":[{"type":"text","text":"Async agent launched successfully. (This tool result is internal metadata — never quote or paste any part of it, including the agentId below, into a user-facing reply.)\nagentId: a3b900cdd5790ca9e (internal ID - do not mention to user. Use SendMessage with to: 'a3b900cdd5790ca9e', summary: '<5-10 word recap>' to continue this agent.)\nThe agent is working in the background. You will be notified automatically when it completes. You know nothing about its results until that notification arrives — do not report, assume, or predict them; continue other work or respond to the user in the meantime.\nDo not duplicate this agent's work — avoid working with the same files or topics it is using.\noutput_file: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a3b900cdd5790ca9e.output\nDo NOT Read or tail this file via the shell tool — it is the full subagent JSONL transcript and reading it will overflow your context. If the user asks for progress, say the agent is still running; you'll get a completion notification."}]}]},"uuid":"75c75543-9f39-44b2-a7fc-b7d5d0bdd8c5","timestamp":"2026-07-28T05:26:54.576Z","toolUseResult":{"isAsync":true,"status":"async_launched","agentId":"a3b900cdd5790ca9e","description":"Analyze website and tooling JS","resolvedModel":"claude-fable-5","prompt":"You are reviewing JavaScript and configuration in the oh-my-posh repo at D:\\oh-my-posh for SIMPLIFICATION, DEDUPLICATION and EFFICIENCY. Analysis only — do NOT edit any file.\n\nScope: the website and developer tooling changed on branch `next`:\n git diff origin/main...next -- website/ tools/\n\nKey files:\n- website/export_themes.mjs — exports all 124 bundled themes to SVG via the oh-my-posh CLI and writes website/generated/themes.json (gitignored, rebuilt each build).\n- website/plugins/themes/index.js and website/src/components/ThemeGallery/ — the Docusaurus plugin and component that inline those SVGs.\n- website/plugins/segments/ and website/src/components/SegmentCatalog/ + website/src/pages/segments.js — a faceted segment catalog.\n- website/src/pages/index.js + styles.module.css — homepage layout work.\n- tools/svg-png-compare/ — a developer acceptance harness: compare.mjs (diffs the SVG exporter against the retired PNG renderer), shot.mjs (side-by-side rasters at natural size), probe-whitespace.mjs, zip.mjs.\n\nWhat to look for, in priority order:\n1. DUPLICATED CONSTANTS ACROSS FILES. Victor Mono's font metrics (cell width 0.5455, line height 1.6909, fill ascent 1.0982, fill descent 0.3255) now appear in BOTH website/export_themes.mjs and tools/svg-png-compare/shot.mjs. Hack Nerd Font's equivalents are hardcoded as defaults in src/svg/svg.go. Find every such duplication and propose where the single source of truth should live. This is the highest-value finding area — be thorough.\n2. Duplicated logic between compare.mjs and shot.mjs — both build binaries, both extract a font from a cached Hack.zip, both drive Playwright, both rasterize. Judge how much should be shared and how.\n3. website/generated/themes.json is regenerated on every build for 124 themes. Is the export loop efficient (concurrency, temp file churn, redundant CLI invocations)? Is anything done per-theme that could be done once?\n4. The Docusaurus plugin/component pairs (themes, segments): duplication between them, and whether the data passed through setGlobalData is larger than the pages actually need.\n5. Dead code and stale comments — e.g. comments referring to the retired PNG renderer, to files that no longer exist, or to font variants that were swapped out.\n6. Any place the homepage/catalog CSS repeats itself in a way a variable or shared class would fix.\n\nRules:\n- VERIFY every claim by reading the actual files. Do not speculate about what a file contains.\n- tools/svg-png-compare is a developer-only harness, never run in CI. Weight its findings lower than website/ code that ships.\n- Some duplication is deliberate and documented in comments — read them before calling something redundant, and engage with the stated reasoning if you still disagree.\n- Rank by value; for each give file:line, the change, why it is better, and what could break.\n\nOutput a concise ranked list. No preamble.","outputFile":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a3b900cdd5790ca9e.output","canReadOutputFile":true},"sourceToolAssistantUUID":"b8d9c44c-9fa8-408d-9796-c5d2d37b97e3","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"75c75543-9f39-44b2-a7fc-b7d5d0bdd8c5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuEQjTVumPkCsFFKvWY","type":"message","role":"assistant","content":[{"type":"text","text":"Four Fable 5 agents running in parallel:\n\n| scope | looking for |\n|---|---|\n| `src/svg` | dedup between `fit.go`/`decorate.go`, the 13-field `Options` surface, dead branches |\n| `src/terminal` | hot-path cost of run capture, `runState`/`colorState` overlap, globals, inlining |\n| `src/prompt` `src/cli` `src/color` `src/config` | whether `svg/colors.go` reimplements `src/color`, the six Engine capture fields, recorder soundness |\n| `website/` `tools/` | the font metrics now duplicated across three files, `compare.mjs`/`shot.mjs` overlap, export loop cost |\n\nI flagged the constraints each one has to respect — the terminal package's allocation gates and the 6.1× inlining regression that was already reverted once, and that the long doc comments record reverted approaches rather than being noise.\n\nI'll report back when they land."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":7377,"cache_read_input_tokens":328032,"output_tokens":316,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":7377,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":316,"cache_read_input_tokens":328032,"cache_creation_input_tokens":7377,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":7377},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuEMUzU2KGdhhkTD5p7","type":"assistant","uuid":"7a1b6021-71a2-4f6f-b1d6-93b84d31eb06","timestamp":"2026-07-28T05:27:01.639Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7a1b6021-71a2-4f6f-b1d6-93b84d31eb06","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":3498},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T05:27:06.603Z","uuid":"20a5e109-b5cc-46a9-a973-04145ebf166e","toolUseID":"f66e1994-b15b-49d9-a0e7-2ebc721194c0","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"20a5e109-b5cc-46a9-a973-04145ebf166e","isSidechain":false,"promptId":"7d7652a5-9a98-4421-a696-664d61459cc5","type":"user","message":{"role":"user","content":"\na348617e830e39c84\ntoolu_01Wezii3a8tCyQiriPHxcifn\nC:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a348617e830e39c84.output\ncompleted\nAgent \"Analyze svg encoder package\" finished\nA task-notification fires each time this agent stops with no live background children of its own. The user can send it another message and resume it, so the same task-id may notify more than once.\nRanked findings, all verified against the code.\n\n---\n\n**1. `Options.Padding` is a dead field — the window ignores it entirely** (concept removal)\n\n- `D:\\oh-my-posh\\src\\svg\\svg.go:84-90` (field + doc), `svg.go:224-226` (withDefaults fills it).\n- Nothing ever reads `opts.Padding`. The actual edge-to-content gap comes from `windowGeometry.padding` (`window.go:42`, `48 * FontSize/48` = `FontSize`), computed independently. The field's doc comment (\"Padding is the gap between the window's rounded edge and the content grid... It defaults to FontSize\") describes what `geo.padding` does, not what this field does — a caller setting `Padding: 30` gets no change in output. The CLI caller (`D:\\oh-my-posh\\src\\cli\\config_export_svg.go`) never sets it; the only other writer is `testOptions()` (`svg_test.go:36`) setting it to 0, which withDefaults immediately overrides to 10 — also a no-op.\n- Fix: delete the field, its withDefaults clause, and the `testOptions` line — or wire it into `newWindowGeometry` if per-caller padding was the intent. Deleting matches current behavior exactly. Also stale: `testOptions`' comment claims \"padding 0\" makes pixel math exact (`svg_test.go:23`), but the real content origin includes `geo.padding` = 10 plus margin — the tests only work because `contentOriginX` recomputes the real geometry. That comment should go with the field.\n- Breakage: none — the field has no observable effect today.\n\n**2. `Encode` returns an error that is always nil**\n\n- `D:\\oh-my-posh\\src\\svg\\svg.go:284` (signature), `svg.go:354` (the only return: `return b.String(), nil`). No other return statement exists in the function.\n- Every test carries a `require.NoError`, and the one production caller (`config_export_svg.go:47-50`) has a dead error branch. Dropping the error removes ~15 lines of ceremony across the package's tests and caller and stops advertising a failure mode that doesn't exist.\n- Breakage: public API signature change — trivially safe now (single caller, package new on this branch), costs a signature change later if a real error path appears. Given the website pipeline is a planned second caller, decide now.\n\n**3. Normalize `CanvasBackground`/`TerminalBackground` once, delete two downstream branches**\n\n- `svg.go:341-344` (windowFill selection in Encode) and `svg.go:567-584` (paintRun's `RunBackgroundPainted` vs `RunReverseVideo` arms) both encode the same invariant: \"use the real terminal background where known, else CanvasBackground\". If `withDefaults` set `out.CanvasBackground = out.TerminalBackground` when the latter is non-nil, then: windowFill becomes unconditionally `*opts.CanvasBackground` (branch deleted), and paintRun's two transparent-mode cases collapse to one arm (`rectRGB = state.bg; textRGB = opts.CanvasBackground`), since `RunBackgroundPainted` only arises when the writer knew a terminal background, which the caller feeds into both fields from the same source.\n- Why better: the \"these two must be the same color\" invariant that `Options.CanvasBackground`'s long doc comment defends becomes enforced in one place instead of re-derived in two.\n- Could break: the edge where a run arrives as `RunBackgroundPainted` but `opts.TerminalBackground` is nil (caller inconsistency). Today that writes no `fill` attribute (SVG default black glyph); after the change it paints the CanvasBackground fallback — arguably more correct, but it's a behavior delta and `TestEncodeRunModes` would need its expectations checked. The mode distinction in `terminal.RunMode` docs stays; only the SVG-side handling merges.\n\n**4. String building: `fmt.Fprintf` for the fixed-shape elements**\n\n- `svg.go:318-331` (root tag, 13 calls), `svg.go:443-455` (`writeRect`, 12 calls), `window.go:109-153` (`writeWindowChrome`, ~30 calls). The package explicitly documents that it runs once per export and allocation doesn't matter, yet it hand-interleaves literals and values in the most allocation-averse style available.\n- `writeRect` becomes one statement: `fmt.Fprintf(b, \"<rect x=%q y=%q width=%q height=%q fill=%q/>\\n\", formatFloat(x), ...)` (or with explicit `\"%s\"` placeholders); same for the root tag and the chrome. That's roughly 55 lines down to ~12, and the element shape becomes readable as a template instead of reassembled mentally. `writeText` should keep its current shape — its conditional attributes don't fit a single format string.\n- Could break: nothing functional; byte-identical output is achievable since `formatFloat`/`hexString` still produce the strings.\n\n**5. `paintRun`'s `hasRect` return is redundant**\n\n- `svg.go:556` returns `(textRGB, hasRect, rectRGB)` where `svg.go:598` sets `hasRect = rectRGB != nil`; the only caller (`encodeRow`, `svg.go:422-432`) uses it solely to guard `writeRect(..., *rectRGB)`. Return two values and test `rectRGB != nil` at the call site. Removes a named return and a line of API to understand. Breakage: none, internal function.\n\n**6. Two defensive guards that cannot fire**\n\n- `svg.go:362-365`: `fitRows`' `columns <= 0` early return. Its own doc comment says it exists for \"a caller that constructs opts by hand and skips withDefaults, e.g. a test\" — but no test calls `fitRows` (verified by grep: only the definition and the Encode call site exist), and Encode always passes post-withDefaults Columns ≥ 1. The comment's justification is void; delete guard and comment, or add the test the comment imagines.\n- `fit.go:186-188`: `wrapRow`'s `maxCells <= 0` guard. Callers: `fitRow` (`fit.go:51`, reached only via `fitRows` with columns > 0) and two tests passing 3 and 10. Unreachable.\n- Breakage: none today; a future direct caller passing 0 would get an infinite-loop-free but different behavior — the guard's removal should be noted in `wrapRow`'s doc if done.\n\n**7. Test duplication**\n\n- `svg_test.go` re-spells the exact literal that `contentRun` (defined in `fit_test.go:17`, same package, already used by `window_test.go`) abstracts — `{Text: \"hi\", Cells: 2, ForegroundSource: \"red\", BackgroundSource: \"blue\", Mode: terminal.RunNormal}` appears near-verbatim at svg_test.go:88-90, 186, 336, 364, 446, 520 and inside two table-test bodies (161, 244, where a `Mode`/`Attributes` parameter variant would be needed). Swapping the plain cases to `contentRun(\"hi\")` removes ~8 multi-field literals.\n- `window_test.go:33-39` (`widthOf`) and `window_test.go:61-70` (`extractWidth`) are the same root-tag width extraction written twice, once returning string and once float64. One helper (float64; compare with `assert.InDelta` in both tests) collapses them.\n- Breakage: none.\n\n**8. Minor: collapse triple `ParseUint` chains**\n\n- `colors.go:155-170` (`hexToRGB`): after normalization the string is exactly 6 hex digits; one `strconv.ParseUint(hex, 16, 32)` plus shifts (`uint8(v>>16), uint8(v>>8), uint8(v)`) replaces three parse-and-check blocks (15 lines → 5).\n- `colors.go:108-123` (`ParseTrueColorSGR`): the three identical parses of `parts[2..4]` can be a 3-iteration loop into a `[3]uint8`. Smaller win; fine to leave.\n\n**Explicitly checked, no finding warranted:**\n\n- *fit.go vs decorate.go gap overlap* (brief's priority 1): the shared predicate `isGapRun` is already factored out. The residual overlap is `insertCursor`'s 1-cell front-trim (`decorate.go:105-115`) vs `collapseGap`'s N-cell front-trim (`fit.go:144-170`). Reusing `collapseGap` there is possible (`collapseGap(row, at, 1, 1)` before splicing) but adds index bookkeeping to save ~7 straight-line lines, and the two differ subtly on purpose: `insertCursor` trims any gap run regardless of `minGapRun` (the threshold lives in `longestGapRegion`, not `isGapRun`). Not worth coupling.\n- *FillAscent/FillDescent, CellWidth/LineHeight pairs*: the doc comments' reasoning holds. The fill box is asymmetric about the baseline (−495..1913 font units), so the pair can't become one number; and per MEMORY's font-metrics lesson these are measured per-font values, not derivable ratios of each other. `AccentForeground`/`AccentBackground` also genuinely differ per channel. After removing `Padding`, the remaining 12-field surface is justified.\n- *`encodeRow` calling `paintRun` before the `Cells == 0` skip* (`svg.go:420-425`) looks inverted but is load-bearing: a zero-cell run's color sources must still update `paintState`, matching terminal SGR semantics.\n- Comments were checked for staleness; besides the `Padding`/`testOptions` pair in finding 1 and the void `fitRows` justification in finding 6, they match the code.\n9427414174463\n"},"uuid":"0001740e-ec11-4b14-90d8-25c0365a8f8c","timestamp":"2026-07-28T05:29:05.505Z","permissionMode":"auto","origin":{"kind":"task-notification"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0001740e-ec11-4b14-90d8-25c0365a8f8c","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-78dd9f37-d75f-4a88-abf1-67df32da9539","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"f36ab267-8855-4fe3-b427-c251603a3a6c","timestamp":"2026-07-28T05:29:05.704Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f36ab267-8855-4fe3-b427-c251603a3a6c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuQ7HkMqKkPPkJ2mtqY","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The SVG agent finished, so I've got three still running. I want to verify the top claims myself before reporting back—especially the first two about padding being dead and encode errors always returning nil, since those are the biggest findings. I could wait for all four agents to complete, but I have idle time now and verifying those critical claims is quick. Let me spot-check those two first, though I need to be careful not to duplicate work the agent already did.\n\nI'm searching for where opts.Padding is actually used in the codebase.","signature":"CAIS2QUKhwEIEBgCKkDuB2M540q0XjgGGlBuQMXc/noRS7PU3Bu4SeDAIEsW264+apnzKcC8Ic4EvC80TP46zQPMyWL/M6yGhkfrQv8oMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDCJUHJNRHVSHLF5eZRoMIkcIaLGLBUko+6ojIjCVhbqVVK2l2ZKJHDVjnNwryPM5e2bw/XnMKJPSryFL/D8oDMBkjhkdrBsBxmNdqkAq/gPBR3OZg/Zr7MMkUt9TTHJOgtT375q6Cc8IqwzuXXOMq0SiQv/WPzYSR+CCGDzD4WrNy34/YRVXD4pr8H+cQAZsnX96AP55A1mYdfH9VvCJQ8k9b0zsoJRCkt9gHvApLs+vhazATt8uJ6UoUq2JSsNcKrovWi0KF5eYtux+kqlhq6k1658LrVKjvlVJkDx2Ic5RA7/GHXwPfrqT18PB+59DAJCYwGWetYiXz+CfoWx/sz+oig5kCkX5k3dKA5cI58q6sjTHtICzm35hJPQLAJ8j7ttDDbAZIrC60tj7+C1WJdaMtHoXDe1DMJgMGypN2TpqtmILX8VhNPQ6H5mBTx3wH2vzM1LjowWbPFbPxf3p8Hv7jG6wFhs3ktetBrwy/+3pxVyrkNS/I/HxGg50i/ZD3/vCC8THVpGKftNbCgT+5Ft61evk6UehgR1bTO3eAknFYewuwWh100moeboI9P27u8AqZnMW+vX5MuCozsgDL3r2mAscT0k5g0HA2S5juou0u+fVPDHZ//ENbxt0onwWEHqLIqRyGPF+d4C0Cbno0izHF6+tXfBMailLWHdiWZw/Wp8r2aDLoTVpPf3m+Lzl8C1pJ1MXOH1hbUDrZvl2xc0G5xxPpmMCQLbbTi/aBxwYR0onu9AkTklU+vFb+FiqViDZ0VScKfosJk55BDgYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":3896,"cache_read_input_tokens":335725,"output_tokens":501,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":3896,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":501,"cache_read_input_tokens":335725,"cache_creation_input_tokens":3896,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":3896},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuQ3QLSntt6FgT5YSsZ","type":"assistant","uuid":"dbea85bb-8b8d-412d-b5d9-80bd1442ed2d","timestamp":"2026-07-28T05:29:12.117Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dbea85bb-8b8d-412d-b5d9-80bd1442ed2d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuQ7HkMqKkPPkJ2mtqY","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01MhDv3gwdSQtLUzDs7us2k3","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && grep -rn \"Padding\" svg/ cli/config_export_svg.go | grep -v \"^svg/window.go\" ; echo \"--- geo.padding readers ---\"; grep -rn \"\\.padding\" svg/","description":"Verify Padding field is unread"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":3896,"cache_read_input_tokens":335725,"output_tokens":501,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":3896,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":501,"cache_read_input_tokens":335725,"cache_creation_input_tokens":3896,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":3896},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuQ3QLSntt6FgT5YSsZ","type":"assistant","uuid":"6bd387b2-8911-4030-b3d2-7901200625b5","timestamp":"2026-07-28T05:29:12.711Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6bd387b2-8911-4030-b3d2-7901200625b5","isSidechain":false,"promptId":"7d7652a5-9a98-4421-a696-664d61459cc5","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01MhDv3gwdSQtLUzDs7us2k3","type":"tool_result","content":"svg/fit.go:9:// minGapRun mirrors the retired PNG renderer's own minPaddingRun\nsvg/fit.go:98:// retired PNG renderer's own longestPaddingRun but over Runs rather than\nsvg/svg.go:84:\t// Padding is the gap between the window's rounded edge and the content\nsvg/svg.go:90:\tPadding float64\nsvg/svg.go:224:\tif out.Padding == 0 {\nsvg/svg.go:225:\t\tout.Padding = out.FontSize\nsvg/svg.go:400:// to be a flat opts.Padding offset from the canvas edge before the window\nsvg/svg_test.go:36:\t\tPadding: 0,\n--- geo.padding readers ---\nsvg/window.go:67:\twindowWidth := contentWidth + 2*geo.padding\nsvg/window.go:68:\twindowHeight := contentHeight + 2*geo.padding + geo.titleOffset\nsvg/window.go:79:\t\tcontentX: geo.margin + geo.padding,\nsvg/window.go:80:\t\tcontentY: geo.margin + geo.padding + geo.titleOffset,\nsvg/window.go:140:\tcy := size.windowY + geo.padding + geo.trafficNudge\nsvg/window.go:143:\t\tcx := size.windowX + geo.padding + float64(i)*geo.trafficGap + geo.trafficNudge\nsvg/window_test.go:189:\tassert.InDelta(t, 48, geo.padding, 0.001)\nsvg/window_test.go:202:\tassert.InDelta(t, geo.padding/2, geoHalf.padding, 0.001)","is_error":false}]},"uuid":"a7727c7f-6bba-4ada-97fd-24a4645c6c45","timestamp":"2026-07-28T05:29:13.632Z","toolUseResult":{"stdout":"svg/fit.go:9:// minGapRun mirrors the retired PNG renderer's own minPaddingRun\nsvg/fit.go:98:// retired PNG renderer's own longestPaddingRun but over Runs rather than\nsvg/svg.go:84:\t// Padding is the gap between the window's rounded edge and the content\nsvg/svg.go:90:\tPadding float64\nsvg/svg.go:224:\tif out.Padding == 0 {\nsvg/svg.go:225:\t\tout.Padding = out.FontSize\nsvg/svg.go:400:// to be a flat opts.Padding offset from the canvas edge before the window\nsvg/svg_test.go:36:\t\tPadding: 0,\n--- geo.padding readers ---\nsvg/window.go:67:\twindowWidth := contentWidth + 2*geo.padding\nsvg/window.go:68:\twindowHeight := contentHeight + 2*geo.padding + geo.titleOffset\nsvg/window.go:79:\t\tcontentX: geo.margin + geo.padding,\nsvg/window.go:80:\t\tcontentY: geo.margin + geo.padding + geo.titleOffset,\nsvg/window.go:140:\tcy := size.windowY + geo.padding + geo.trafficNudge\nsvg/window.go:143:\t\tcx := size.windowX + geo.padding + float64(i)*geo.trafficGap + geo.trafficNudge\nsvg/window_test.go:189:\tassert.InDelta(t, 48, geo.padding, 0.001)\nsvg/window_test.go:202:\tassert.InDelta(t, geo.padding/2, geoHalf.padding, 0.001)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"6bd387b2-8911-4030-b3d2-7901200625b5","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a7727c7f-6bba-4ada-97fd-24a4645c6c45","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuQ7HkMqKkPPkJ2mtqY","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_0182NSxPDG4kU2DTC59K9vma","name":"Bash","input":{"command":"grep -rn \"return.*err\\|return \\\"\\\"\" svg/svg.go | head; echo \"--- fitRows callers ---\"; grep -rn \"fitRows(\\|wrapRow(\" svg/","description":"Verify Encode error path and guard reachability"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":3896,"cache_read_input_tokens":335725,"output_tokens":501,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":3896,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":501,"cache_read_input_tokens":335725,"cache_creation_input_tokens":3896,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":3896},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuQ3QLSntt6FgT5YSsZ","type":"assistant","uuid":"64906928-b741-43b4-859e-1fb6ae6cc200","timestamp":"2026-07-28T05:29:13.659Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"64906928-b741-43b4-859e-1fb6ae6cc200","isSidechain":false,"promptId":"7d7652a5-9a98-4421-a696-664d61459cc5","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_0182NSxPDG4kU2DTC59K9vma","type":"tool_result","content":"--- fitRows callers ---\nsvg/fit.go:51:\treturn wrapRow(row, maxCells)\nsvg/fit.go:185:func wrapRow(row []terminal.Run, maxCells int) [][]terminal.Run {\nsvg/fit_test.go:202:\tgot := wrapRow(row, 3)\nsvg/fit_test.go:230:\tgot := wrapRow(row, 10)\nsvg/svg.go:292:\trows = fitRows(decorate(rows, opts.Cursor), opts.Columns)\nsvg/svg.go:362:func fitRows(rows [][]terminal.Run, columns int) [][]terminal.Run {","is_error":false}]},"uuid":"e0de52fe-e5d6-42ef-afd5-4ea52b19d319","timestamp":"2026-07-28T05:29:14.560Z","toolUseResult":{"stdout":"--- fitRows callers ---\nsvg/fit.go:51:\treturn wrapRow(row, maxCells)\nsvg/fit.go:185:func wrapRow(row []terminal.Run, maxCells int) [][]terminal.Run {\nsvg/fit_test.go:202:\tgot := wrapRow(row, 3)\nsvg/fit_test.go:230:\tgot := wrapRow(row, 10)\nsvg/svg.go:292:\trows = fitRows(decorate(rows, opts.Cursor), opts.Columns)\nsvg/svg.go:362:func fitRows(rows [][]terminal.Run, columns int) [][]terminal.Run {","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"64906928-b741-43b4-859e-1fb6ae6cc200","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e0de52fe-e5d6-42ef-afd5-4ea52b19d319","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuQiuNfGLBsJG2EyED5","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I've confirmed that `Options.Padding` is dead code written but never read, and `fitRows` has only one caller with no tests covering it. I need to verify `Encode`'s return signature properly since my grep pattern missed it, but I'll hold off on the full report until the remaining agents finish—though I could note the SVG agent's findings now if needed.","signature":"CAIS6AcKhwEIEBgCKkD9IcMZx8c7UJtTo/zvqSOEl+frdQzZOXlzjZYAIccAnjZ1Z2V/JCmG6OQdghZSiWlcTi/rzyY6vX9K3fKjM5kGMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDAWnZrVZwphcPnlUpBoMSrADaupWdhNkIiOhIjBn81B1o4Nwine6/WT2DXNbXGi/k3WCF6tB0+Nfh0pOx1U/oOYL1usSv5YZcmmWeLIqjQYUnSbHIlOFjDLrhmaNeogK4f7gPSil0N6322HRp7sZVRg3wknAo+avfofOQhdOaTFHTIExRmpPEpCY/KrUW81N2pFu72VdUEo84vbaCRtHW2V0TbDtjVLYFPAPJrfuTtZvFgD6m3VPTdSTIXYDKaXO0GmaYy7xgjC0YrFbNtRxq0rMCIY3AMHe4/jnOtcPgFcNT2nVH5zO0hSEdd5lvr69kIThsvE550KxQIM2XRRFbNLIFJjU9vK/Q24pVnVzzL42QQC1v3/qUFogMMTQ3PAwbza2xmne2KDMw/1e1I1VAaMPFtEShhe57suA/URHceEh9rfcygpwFYjAtKiaFIvTCBSgo1jH6AwNS7u/ckHD2L/OfiTRdJ+HuzoAZyTnFs9AenibQTwfLkAr5R7NPDT5Peds4Xlh+8m8Gc1kl3KZ6VliTRrQOhQ47uJ9bU+p/cQlIJnl+wCbedNtjRjyc7ft+nTawo3T2zjAZtbUlN307ndWQn5ark5ASqy+Kvzwm68P8ahJgEDfWUHg8G7zTmFWHcQjh5VoadBbT5wUhEiPq4LVdSkT+gk41XbA7Ce1Ndzk9dgQW3huCeHxi405LOdYHr6pglkzUY7hVQKS+J08ydL/Br89mDFtQFu19alIJhjsoP5BDXvF5NZnjlHNxLpkgnlt75cF/A7RGzVRMrCeAn+rRKrlsjbkT3KY0JI1ER/LncnS4busXpy2k/F3gP7PqJXIOwDSz4hP878TJt7C7IosVKVlqGzjZOpqlIxp0xULsgZE+WDTiOpYYlJ40yNdhiPIL68pHdbzIaBObQfmTL90IOVwYw6oA3+IGUxBbdAuK9ItjyQgWB+Kg1TsuysDBukPoY2GD1Ce0IpEhnr2KmcyGA3DvYeM79AeO6czqFyXM2SNHZowxmfgKSmA15w6zJrBqTEiQOgjIHkph9Z5mGkvHBhkLtxUzRMiV8aKLkzIM+0Fgdt+Pzc4/r1Yq4Y46D+1yMFcuLPOFDZ2XhIrRAEjZt5QPf2Q0lPcB/lUR8t+f2BQjnujLRAiBso1GAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1301,"cache_read_input_tokens":339621,"output_tokens":426,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1301,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":426,"cache_read_input_tokens":339621,"cache_creation_input_tokens":1301,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1301},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuQfMK2f2b51a2DQ9ur","type":"assistant","uuid":"4e174b21-9498-4c56-9670-e563eafc9d2b","timestamp":"2026-07-28T05:29:21.657Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4e174b21-9498-4c56-9670-e563eafc9d2b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuQiuNfGLBsJG2EyED5","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Q5CNPgVkCN7ics556fvbWP","name":"Bash","input":{"command":"sed -n '284,296p' svg/svg.go && echo \"--- all returns in Encode ---\" && awk '/^func Encode/,/^}/' svg/svg.go | grep -n \"return\"","description":"Verify Encode has a single nil error return"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1301,"cache_read_input_tokens":339621,"output_tokens":426,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1301,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":426,"cache_read_input_tokens":339621,"cache_creation_input_tokens":1301,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1301},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuQfMK2f2b51a2DQ9ur","type":"assistant","uuid":"d9ac80be-4917-4bb9-abe3-916df04a1131","timestamp":"2026-07-28T05:29:23.112Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d9ac80be-4917-4bb9-abe3-916df04a1131","isSidechain":false,"promptId":"7d7652a5-9a98-4421-a696-664d61459cc5","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Q5CNPgVkCN7ics556fvbWP","type":"tool_result","content":"func Encode(rows [][]terminal.Run, opts Options) (string, error) {\n\topts = opts.withDefaults()\n\t// Decorate first, fit second: Options.Cursor indexes the captured rows,\n\t// and fitRow is free to collapse gaps and wrap a row into several, which\n\t// would invalidate that index. Doing it in this order also means the\n\t// cursor is fitted like any other content — though insertCursor takes its\n\t// cell out of the following alignment gap where there is one, so in\n\t// practice a row that fitted before still fits.\n\trows = fitRows(decorate(rows, opts.Cursor), opts.Columns)\n\n\tblinks := false\n\thasher := fnv.New64a()\n\n--- all returns in Encode ---\n71:\treturn b.String(), nil","is_error":false}]},"uuid":"0d8ea21c-db2d-43b1-836e-14e2aa2d42fc","timestamp":"2026-07-28T05:29:25.615Z","toolUseResult":{"stdout":"func Encode(rows [][]terminal.Run, opts Options) (string, error) {\n\topts = opts.withDefaults()\n\t// Decorate first, fit second: Options.Cursor indexes the captured rows,\n\t// and fitRow is free to collapse gaps and wrap a row into several, which\n\t// would invalidate that index. Doing it in this order also means the\n\t// cursor is fitted like any other content — though insertCursor takes its\n\t// cell out of the following alignment gap where there is one, so in\n\t// practice a row that fitted before still fits.\n\trows = fitRows(decorate(rows, opts.Cursor), opts.Columns)\n\n\tblinks := false\n\thasher := fnv.New64a()\n\n--- all returns in Encode ---\n71:\treturn b.String(), nil","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"d9ac80be-4917-4bb9-abe3-916df04a1131","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0d8ea21c-db2d-43b1-836e-14e2aa2d42fc","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuRZWMaWCC8BcxLmT64","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I've confirmed the return statement always yields nil for the error. Now I'm weighing whether to send an interim report with the verified SVG findings while the other three agents are still running, or wait for everything to complete. A quick update with what's landed so far seems more useful than silence, even if it takes a few more minutes for the full picture.","signature":"CAISswYKhwEIEBgCKkCnoWE1LSkODSz+B/6JNu7HsNR9GbyO1naEA6aRZdPdzfW3odJAjd61otP5/h5vduz3IQMwD7ZMQiRiJ8FnYVzwMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDBpmo8Nn0QxI7PwEQBoMjURpKlH+c9OdEnTcIjCSE6Z4TIu4raaNc9xZMHNiMQ0oL614H9YpDZP4QPmDHhwZidwo7bAkv8ZC/oBE2N0q2ARv/9u0cCq5+03b1SvERS/Icw/KX6dwKE0P3Qk9BjJQQfe1XsPFiO1+Am3MVcyGr3VPcMR0yfZREWcZWFwh+wqClDzazvwCbrkq8KrbdY/Urdo2bqvdmJBoyX5PnTqICrm48N+AkyRaH3vsdHAUuDAsV/AciBx5yPn1kGZ85tJEiS75kZcL+I8A0AO2kd37J95hcQfxieOrdzOf+rSpyPHG3CH7x9V1BCAgjTlw14WBQFAcBtNRZAunC+7n8wxycP1JCjyJfF38RvxffYIM7RrRLtWnPY/E5VwaapLt7Bx4l/NbQzo31jB3pPpDLuK1MmiRbucB68k/66XjgXPj4dzAYS70yYpJ7Zyt2Pu7z9s+IkEUAsgdWdLvcxwLiZVN0ZGxH7fapiYBnAOqK25duSqnLwCi86RUDljRLKF6FNDnbBBwnxquVoYcADyCddjdzlQKS6okhbV895ceSR4je0aOAV4MnH7lxUGp0FGjoY50qQ7Qaonn7UFS+G9KsNtZAeKE99l6XYq5PBj2aVyh6zTX8nhuWVhJNWpRxrJWYV568eExwBz79f6CQIXDvjvy5CMfZ67hgPZmSK4jyHaAx5KAMQpVx5WoO5JLJBYnsE4PmzucQaLBoqhkVNc9kaN31gstsMFiIKVr8ua2nnfWXWuF2o08qSzh+SCZCBUx1fljnBFbQQkdG+c4kUdIPgSRd3DZmVfoH0UwTx5dbQt/QHnu3PuipZ4KVUr+jLQ9M1+qPmDTFdJXiIKGFSU2eFazCAaJe2MOtjP2q0rkR8Gk2vJe2BgFHPjw2nYYAQ=="}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":673,"cache_read_input_tokens":340922,"output_tokens":1193,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":673,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1193,"cache_read_input_tokens":340922,"cache_creation_input_tokens":673,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":673},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuRUmqwmRUs3K2PQTBt","type":"assistant","uuid":"336bb70e-4e94-4a37-8df2-ab09517293a0","timestamp":"2026-07-28T05:29:32.336Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"336bb70e-4e94-4a37-8df2-ab09517293a0","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuRZWMaWCC8BcxLmT64","type":"message","role":"assistant","content":[{"type":"text","text":"First of four landed — `src/svg`. I verified its two biggest claims myself before passing them on.\n\n**Confirmed dead: `Options.Padding`.** Written by `withDefaults` ([svg.go:224](src/svg/svg.go:224)), read by nothing. The actual edge-to-content gap comes from `windowGeometry.padding` ([window.go:42](src/svg/window.go:42)), computed independently. A caller setting `Padding: 30` gets identical output. Its doc comment describes what `geo.padding` does, not what the field does. Delete field + clause + the `testOptions` line.\n\n**Confirmed: `Encode` returns an error that is structurally always nil.** One return statement, `return b.String(), nil`. Every test carries a `require.NoError`; the single production caller has a dead error branch. Worth deciding now rather than later, since the website pipeline is a planned second caller.\n\nRest of its ranked list, unverified by me so far:\n\n1. **Normalize the two backgrounds once.** `windowFill` selection ([svg.go:341](src/svg/svg.go:341)) and `paintRun`'s two transparent arms ([svg.go:567](src/svg/svg.go:567)) both re-derive \"real terminal background where known, else CanvasBackground\". Setting `CanvasBackground = TerminalBackground` in `withDefaults` collapses both. Real behaviour delta in one edge case, so it needs a decision, not a blind apply.\n2. **`fmt.Fprintf` for fixed-shape elements** — `writeRect`, the root tag, `writeWindowChrome`: ~55 lines to ~12, byte-identical output. The package documents that it runs once per export, so the allocation-averse hand-interleaving buys nothing.\n3. **`paintRun`'s `hasRect` return is redundant** — it's just `rectRGB != nil`.\n4. **Two guards that cannot fire** — `fitRows`' `columns <= 0` (I confirmed: one caller, no test, despite its comment claiming tests need it) and `wrapRow`'s `maxCells <= 0`.\n5. **Test duplication** — `fit_test.go` already has a `contentRun` helper that `svg_test.go` ignores in ~8 places; `window_test.go` has the same width extraction written twice.\n\nIt also explicitly cleared three things I'd want cleared: the `fit.go`/`decorate.go` gap overlap is already factored through `isGapRun` and coupling them further would cost more than it saves; the `FillAscent`/`FillDescent` and `CellWidth`/`LineHeight` pairs can't collapse (the fill box is asymmetric about the baseline); and `encodeRow` calling `paintRun` before the `Cells == 0` skip is load-bearing, not inverted — a zero-cell run still has to update the colour state.\n\nThree agents still running — terminal hot path, plumbing, website/tooling. I'll hold off proposing what to actually apply until all four are in, since the font-metric duplication spans the Go defaults and both JS files."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":673,"cache_read_input_tokens":340922,"output_tokens":1193,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":673,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1193,"cache_read_input_tokens":340922,"cache_creation_input_tokens":673,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":673},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuRUmqwmRUs3K2PQTBt","type":"assistant","uuid":"1623b338-2892-4eb1-9470-c59ee2794cb3","timestamp":"2026-07-28T05:29:43.726Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1623b338-2892-4eb1-9470-c59ee2794cb3","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":3396},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T05:29:48.503Z","uuid":"9c2795d0-3059-4604-b07f-d4e18aacd59e","toolUseID":"bc156fa9-8df0-4800-8b8e-b8d4f60e59dd","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9c2795d0-3059-4604-b07f-d4e18aacd59e","isSidechain":false,"promptId":"6b90c2c1-c8fc-4a48-b953-e546e3e11cfc","type":"user","message":{"role":"user","content":"\na3b900cdd5790ca9e\ntoolu_01G2zdk7n4kQsse22nfqmAnv\nC:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a3b900cdd5790ca9e.output\ncompleted\nAgent \"Analyze website and tooling JS\" finished\nA task-notification fires each time this agent stops with no live background children of its own. The user can send it another message and resume it, so the same task-id may notify more than once.\nRanked findings. Analysis only — no files were edited.\n\n## 1. Victor Mono font metrics duplicated between the exporter and the harness (highest value)\n\nThe four Victor Mono metrics + font family name exist as literals in two places:\n\n- `D:\\oh-my-posh\\website\\export_themes.mjs:29-53` — `FONT_FAMILY: 'Victor Mono'`, `CELL_WIDTH: 0.5455`, `LINE_HEIGHT: 1.6909`, `FILL_ASCENT: 1.0982`, `FILL_DESCENT: 0.3255`, with the full derivation comments.\n- `D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs:46-58` — the `WEBSITE` object repeats all four as strings plus `fontFamily: \"Victor Mono\"`, with a comment paraphrasing the same derivation.\n\nIf the site's font (or the TTF version, `website/static/fonts/VictorMono.ttf` changed in this very diff) is ever swapped, `--website` mode in shot.mjs silently renders with stale metrics — exactly the class of bug the memory note \"read font metrics, don't infer them\" is about.\n\n**Change:** make export_themes.mjs the single source of truth. It is already a module with an export list (`export_themes.mjs:359-371`); add the metrics (e.g. `export const VICTOR_MONO = { fontFamily, cellWidth, lineHeight, fillAscent, fillDescent }`, consumed by `CONFIG`) and have shot.mjs `import { VICTOR_MONO } from \"../../website/export_themes.mjs\"`. Importing it is side-effect-free: top-level code is only const definitions, and `main()` is guarded by the `process.argv[1] === __filename` check at line 355. The derivation comments then live once, next to the values that ship. shot.mjs's `WEBSITE.data`/`fontPath` stay local (they are path concerns, not font facts).\n\n**Not duplication:** the Hack values in `src\\svg\\svg.go:153-185` are a different font's metrics expressed as font-unit fractions, correctly living beside the Go defaults; svg.go only *mentions* 0.5455/1.0982/0.3255 in doc comments (svg.go:54, 80). No code change warranted there. `compare.mjs` passes no metrics and correctly rides the Hack defaults.\n\n**Could break:** shot.mjs gains a cross-tree import into `website/` — fine for a dev tool, but it means `node shot.mjs` now parses export_themes.mjs (and would break if that file ever grew import-time side effects).\n\n## 2. compare.mjs / shot.mjs shared plumbing — and a real bug the dedup would fix\n\nDuplicated between `D:\\oh-my-posh\\tools\\svg-png-compare\\compare.mjs` and `shot.mjs`:\n\n- `REPO_ROOT`/`THEMES_DIR`/`DATA_FIXTURE`/`BIN_DIR`/`OUT_DIR`/`EXE`/`OLD_BIN`/`NEW_BIN` (compare.mjs:34-47, shot.mjs:24-62)\n- `run()` (compare.mjs:133-144 vs shot.mjs:120-130 — identical except compare logs the command)\n- `ensureFont()` incl. the identical four-entry cache-candidate list and the same nerd-fonts v3.2.1 download URL (compare.mjs:170-215, shot.mjs:72-106) — differing only in which zip entry they extract (plain vs Mono variant, a documented, deliberate difference)\n- `DEVICE_SCALE_FACTOR = 3` with the same 48px/16px rationale comment (compare.mjs:58-67, shot.mjs:64-67)\n- the `@font-face`-from-base64 HTML scaffold, `document.fonts.ready` + 50ms FOUT wait, `omitBackground` screenshot (compare.mjs:250-288, shot.mjs:155-180)\n\n**Bug found while verifying:** `compare.mjs:170` `ensureFont()` is synchronous but its cold-cache path calls the async `downloadAndExtractFont()` (line 197) without awaiting or returning it, and `main()` at line 514-515 immediately does `fs.readFileSync(FONT_PATH)` — on a machine with no cached Hack.zip this throws ENOENT and leaves an unhandled rejection. shot.mjs's async version (awaited at line 201) is correct.\n\n**Judgement:** share `run()`, the path/bin constants, `DEVICE_SCALE_FACTOR`, and one `async ensureFont(entryName, destPath)` in a sibling `common.mjs` next to the existing `zip.mjs` (which already set the shared-module precedent). That removes ~90 duplicated lines and kills the ensureFont bug as a side effect. Do **not** merge the two rasterize functions: their difference (forced-box + `preserveAspectRatio=\"none\"` vs natural-size 1:1) is the entire documented point of shot.mjs (shot.mjs:2-7), and a parameterized mega-rasterize would obscure that. Sharing just the HTML scaffold string is possible but marginal. Weight: dev-only tool, no CI exposure.\n\n**Could break:** nothing structural; the only behavioral choice is whether the shared `run()` logs the command (keep compare's logging via an option or just log always).\n\n## 3. Export loop efficiency (export_themes.mjs) — sound overall, two cheap wins\n\nThe loop is fundamentally right: trending data file built once (`main():321`), 8-way `asyncPool`, one CLI invocation per theme (unavoidable — verified `src\\cli\\config_export_svg.go:52-54` always writes a file; there is no stdout mode, so the temp-SVG write/read/unlink per theme is forced by the CLI's interface).\n\n- `export_themes.mjs:9,203-221,278` — `exec` + hand-joined command string spawns a shell (cmd.exe on the Windows CI-adjacent dev box) for each of 124 invocations, and forces manual quoting (`POSH_BIN` at line 201, `--font-family=\"…\"` at 208). Switch to `execFile(bin, argsArray)`: 124 fewer shell processes, no quoting layer, and the args array mirrors what shot.mjs already does with `spawnSync`. Could break: nothing, provided `OMP_BIN` stops being pre-quoted.\n- `export_themes.mjs:185-190` — the trending temp data file is written to the OS temp dir and never unlinked; one small file leaks per build. Delete it after the loop (or on process exit). Could break: nothing.\n- Trivial: `ensureDirectories()` (lines 305-313) is an access/catch/mkdir dance; `mkdir(dir, { recursive: true })` alone is idempotent and three lines shorter.\n- Optional cross-layer idea only: adding `-o -` (stdout) to the Go command would eliminate 124 temp-file round-trips, but that is a CLI surface change and not worth it for a build that runs in seconds.\n\n## 4. Segments plugin ships derivable and dead fields site-wide via setGlobalData\n\nThe themes plugin deliberately avoids `setGlobalData` because global data rides in the shared main.js chunk on every page (`plugins\\themes\\index.js:4-11` — well reasoned, keep). The segments plugin does use it (`plugins\\segments\\index.js:357-359`), which is fine for its size, but the payload carries per-segment fat:\n\n- `groupLabel` (`index.js:254`) — 117 copies of strings derivable from `group` + the label map; ship `GROUP_LABELS` once (or reuse the `groups[].label` array already shipped) and derive in the component.\n- `href` (`index.js:255`) — 117 copies of `/docs/segments/${group}/${id}`, reconstructible from two fields already present.\n- `count` on `groups`/`authTiers` entries (`index.js:320,334`) — verified **unused** by the consumers: `SegmentCatalog\\index.js` recomputes live counts (`groupCount`:224, `authCount`:251, `nerdFontCount`:278) and `segments.js` only reads `total`. The build-time counts are only needed internally for sorting/filtering (`computeGroups`, `computeAuthTiers`); drop them from the emitted objects.\n\nTogether maybe 6-8KB pre-gzip off every page's global data. Also, `readRegistry` (`segments\\index.js:24-45`) and `validateManifest` (`themes\\index.js:27-52`) share the same exists/read/parse/is-array/dup-check scaffold (~40 lines); a tiny shared `readGeneratedJson(path, pluginName)` helper under `website/plugins/` would halve it. **Could break:** components relying on the dropped fields — only the two consumers above exist, both easy to adjust.\n\n## 5. Stale comments and dead code\n\n- **`plugins\\themes\\index.js:12-15`** — claims `<ThemeGallery/>` loads themes.json \"via a Loadable() dynamic import … resolves synchronously during SSR\". The component actually uses a plain static `import` and its own comment (`ThemeGallery\\index.js:26-37`) explicitly says \"no Loadable/preloadAll trick\". The plugin comment describes an abandoned iteration; fix it to say \"static import, code-split into the page chunk by webpack\". Actively misleading today.\n- **`export_themes.mjs:225` and `plugins\\segments\\index.js:5`** — both cite \"the phase plan\" (\"see the phase plan for why…\", \"the 'Data contract' section of the phase plan\"). No such document exists anywhere in the repo (verified by glob/grep). Either inline the one-line reason or drop the reference; a pointer to an unreachable document is worse than none.\n- **`website\\src\\pages\\index.js:159`** — `features && features.length > 0 &&` guards a module-level const literal of length 3; dead condition. Also line 90's `` description={`${siteConfig.tagline}`} `` template wrapper and line 67's `siteConfig = {}` default are vestigial.\n- **`export_themes.mjs:66-71`** — tombstone comment for the removed `THEME_CONFIG_OVERRIDES`. It documents a genuine \"why is this gone\" question, so keeping it is defensible; if kept, it is the kind of comment that should retire after one release cycle.\n- **`SegmentCatalog\\index.js:59`** — \"the server's unfiltered 117\" bakes the segment count into a comment; say \"unfiltered list\" so it can't go stale.\n- Low weight (dev tool, deliberate context): `zip.mjs:6-7`, `compare.mjs:169`, `shot.mjs:70` all cite `cli/image/image.go` line numbers for a file that no longer exists on this branch — accurate only inside the retired-renderer worktree the tool builds against; a \"(in the PNG worktree)\" qualifier would stop a reader from grepping the live tree for it.\n\n## 6. Hardcoded segment count \"117\" across shipped content\n\n`website\\src\\pages\\index.js:32` (\"117 segments\" feature card), `website\\docs\\segments\\overview.mdx:11`, `website\\static\\llms.txt:5,17,18`, `website\\static\\llms-full.txt:5,21`, `website\\static\\skill.md:10`, `website\\static\\skills\\ohmyposh\\SKILL.md:10`. The segments plugin already computes `total` at build time. The homepage and overview.mdx can read `usePluginData('oh-my-posh-segments').total` (a component in MDX for overview). The static txt/skill files can't consume plugin data without a generation step — at minimum they will all drift together when segment 118 lands; a build-time check (plugin compares `total` against a grep of the static files) would fail loudly instead. **Could break:** homepage acquires a dependency on the segments plugin — acceptable, it's registered unconditionally (`docusaurus.config.js:12`).\n\n## 7. CSS repetition (lowest value)\n\n- Card surface recipe duplicated: `pages\\styles.module.css:76-86` (`.card`: 1px `--ifm-color-emphasis-200` border, radius, `--ifm-color-emphasis-100` bg, dark-mode `--ifm-background-surface-color` override) vs `SegmentCatalog\\styles.module.css:100-115` (`.item`, same recipe, 8px vs 9px radius). A shared `--omp-card-*` custom-property set (or one global `.card-surface` class) in `custom.css` would keep the two surfaces in step; the dark-mode override is the piece most likely to drift.\n- `SegmentCatalog\\styles.module.css:23-30` and `55-61` repeat the mono/uppercase-ish small-label treatment (`.lbl`, `.ct`); a `--omp-label-font` var would do, but at two uses in one file this is take-it-or-leave-it.\n- Border radii sprinkle 3/6/8/9px across the three module files; one `--omp-radius` pair would normalize, purely cosmetic.\n\nVerified deliberate, no change proposed: themes plugin bypassing setGlobalData (measured 34KB rationale), the two rasterization strategies in the harness, the Mono-vs-plain font entry split, the hand-rolled zip.mjs (documented dependency-avoidance), and `probe-whitespace.mjs` (self-contained one-shot probe; nothing to share).\n10597428220551\n"},"uuid":"cd616262-8ce1-4bd6-b65f-36b9d6bc0bad","timestamp":"2026-07-28T05:30:35.868Z","permissionMode":"auto","origin":{"kind":"task-notification"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cd616262-8ce1-4bd6-b65f-36b9d6bc0bad","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"433ab5b5-9ed6-49ae-b90f-114b4c46e7e0","timestamp":"2026-07-28T05:30:35.867Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"433ab5b5-9ed6-49ae-b90f-114b4c46e7e0","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-f35e7b7e-f248-4b59-95be-b879122c5bfb","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"dba0c28b-858c-42bb-83b9-df1d84e68b31","timestamp":"2026-07-28T05:30:36.058Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dba0c28b-858c-42bb-83b9-df1d84e68b31","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuWo93CYC7sVkKh8w9V","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The second agent identified a real bug in compare.mjs where `ensureFont` is a synchronous function that calls `downloadAndExtractFont` (which is async) without awaiting it. I've confirmed this from my earlier review of the file — the sync function at line 170 invokes the async download function at line 197 without proper handling.\n\nNow I need to verify another claim about export_themes.mjs having a guard at line 355 that checks `process.argv[1] === __filename` to ensure it's side-effect-free when imported, since that's critical for the proposed import. I should also check the unused `count` variable while I'm at it.","signature":"CAIStwgKhwEIEBgCKkApiw4qYelIExFtZ/afaXLQUQ6cJWZoeFoKjTGWmGH6DgSO8STS2GKLW0/spQn1o6KGAvL0W+n2DN/7FqZI392NMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDOIYeIdjzPcxGpSEpxoMRAKmz9YZxiwBjabtIjCIfiktB5LL415xlNLqVmuMUdBFfPJiDmxZA/Izj+xDjZ9zXf1vAuxXAB3ZlDSxEWEq3AbSP7EACZhuUkT7Gf474awFUm3p55/VlD3kkK1PRaLGtUw7Tli5G5pYWYRzPRMWQdoaTMo6WglGdABBmjrHSFLRJvn3YAIiY6qWbPv0tkJZmWrfsigeZBMcgxxWZZEapbhV6+2gVpiicsFel1abhDhcZxyWuS/oO5O4uZi2sFxdq94MMpEAP5z6Cw3McmLbPcqaNkc4fnxvaa5Y7giVp+M3pL0f0S+mMolpsY64rHLl5mMq837nITiY1RbShh0tZsrwdP+xZ5SYaC/EEJG1IHflmAdAEeZLUemJ0EnuOVwOaPmDRU2jBXEs1PNR+TfpQA6QSdh38srER07/0azrGJbIZCJdpQ7Aqv09q7NF6tY3TjanNrUGLKun1nCahDSzImRLcmKqTe9anKMWjdtdywIqhU63abwoDVR0Y5W/Ub7MaeHUPPieQ+3+h7vYdoLFsPSQF5aK2Z06a4PTI4UIIXEssMSI3EP7uxBdOCx8MuGkfev4UmoRARLZt2v15wrvjC3aQXU3rIdRaTy3LFJdmgxxzeZqsA9Ebpgs8LNaxa3HLeAyOpXw16a+ooiGC409+B3s48mkvR918ZRCKshwFnsd0eS3Wl53UCF0rrJCyA4KcaE8RVPJNZAu1mU7q91QDrBoYQDkvwazFLhi61YzZNirFAizq2kH5Kvq+jS5UyOOVA4hGR79ycozWHr67EYYhn10DJVvi5lELX3UzhGNyPE+BaRPG5nnxIfSkLgjXqkrSZY4Ez2MVDdmD7xKu/Noc5TZCGor2S4OXeGDPjS9bUwqnED+AHYnVe1Doe57JeHVWrXyihqf1jHIdYfG9FZVcYubUoKIiqrBnHay34/N9n3ZRt3OJjsxgqj3cya0BtpJFPOANeZaIL1J4mr4oN3uY4iD1hUxJuzL4bC0E0T2wJLavIPwOuqMaGKUlPuZq3kFnz893as2mFtbRlRC2bMRJ7yI9ZAAeG6Ug+JeCy8EFHoiuUgeCEb5UrfHoQZLW4X3SuALQMSQfjGDHt3mJw0Q+2vRHywQUYKmBq+WLbwu+Db29R+WtwJM7iKrAbHIowN7OVhWsSSBHsoCDxE27Rseb161/J+XqSuW12j6XbLokVvfxyyUFQN2S9lolIAlh8/oOSNzVr1VeiRRI9vDJxgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":5275,"cache_read_input_tokens":342788,"output_tokens":490,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":5275,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":490,"cache_read_input_tokens":342788,"cache_creation_input_tokens":5275,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":5275},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuWj9viv3M2zGvqp6YK","type":"assistant","uuid":"5daf7b36-b996-443b-9af9-64e99b3cfa3e","timestamp":"2026-07-28T05:30:45.085Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5daf7b36-b996-443b-9af9-64e99b3cfa3e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuWo93CYC7sVkKh8w9V","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_0144n29UzE71etHR8DHDmCFC","name":"Bash","input":{"command":"sed -n '350,375p' website/export_themes.mjs; echo \"=== compare.mjs ensureFont ===\"; sed -n '168,172p;195,206p' tools/svg-png-compare/compare.mjs","description":"Verify module guard and the ensureFont bug"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":5275,"cache_read_input_tokens":342788,"output_tokens":490,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":5275,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":490,"cache_read_input_tokens":342788,"cache_creation_input_tokens":5275,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":5275},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuWj9viv3M2zGvqp6YK","type":"assistant","uuid":"f42ecdeb-1cbd-4771-9d55-2dd1acec8c4c","timestamp":"2026-07-28T05:30:45.152Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f42ecdeb-1cbd-4771-9d55-2dd1acec8c4c","isSidechain":false,"promptId":"6b90c2c1-c8fc-4a48-b953-e546e3e11cfc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_0144n29UzE71etHR8DHDmCFC","type":"tool_result","content":" }\n}\n\n// Execute main function if this file is run directly\n// In ES modules, we check if import.meta.url matches the process argv\nif (process.argv[1] === __filename) {\n main();\n}\n\nexport {\n exportTheme,\n isValidTheme,\n getThemeNameFromFile,\n buildManifestEntry,\n asyncPool,\n main,\n fetchJsonWithTimeout,\n trendingFromDeezer,\n trendingFromAppleRSS,\n isClean,\n buildDataFileWithTrending,\n};\n=== compare.mjs ensureFont ===\n// fetching it twice. Falls back to downloading it fresh if no cache is\n// found anywhere.\nfunction ensureFont() {\n if (fs.existsSync(FONT_PATH)) {\n return;\n\n console.log(\"No cached Hack.zip found; downloading it (same URL the retired PNG renderer used)...\");\n downloadAndExtractFont();\n}\n\nfunction os_home() {\n return process.env.USERPROFILE || process.env.HOME || os_tmpdir();\n}\n\nasync function downloadAndExtractFont() {\n const url = \"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip\";\n const res = await fetch(url);","is_error":false}]},"uuid":"63f277a9-9967-4a5b-9218-20e5aa3fc869","timestamp":"2026-07-28T05:30:46.054Z","toolUseResult":{"stdout":" }\n}\n\n// Execute main function if this file is run directly\n// In ES modules, we check if import.meta.url matches the process argv\nif (process.argv[1] === __filename) {\n main();\n}\n\nexport {\n exportTheme,\n isValidTheme,\n getThemeNameFromFile,\n buildManifestEntry,\n asyncPool,\n main,\n fetchJsonWithTimeout,\n trendingFromDeezer,\n trendingFromAppleRSS,\n isClean,\n buildDataFileWithTrending,\n};\n=== compare.mjs ensureFont ===\n// fetching it twice. Falls back to downloading it fresh if no cache is\n// found anywhere.\nfunction ensureFont() {\n if (fs.existsSync(FONT_PATH)) {\n return;\n\n console.log(\"No cached Hack.zip found; downloading it (same URL the retired PNG renderer used)...\");\n downloadAndExtractFont();\n}\n\nfunction os_home() {\n return process.env.USERPROFILE || process.env.HOME || os_tmpdir();\n}\n\nasync function downloadAndExtractFont() {\n const url = \"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip\";\n const res = await fetch(url);","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"f42ecdeb-1cbd-4771-9d55-2dd1acec8c4c","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"63f277a9-9967-4a5b-9218-20e5aa3fc869","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuXUyfqPc9dNgfSsqca","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I've confirmed that `export_themes.mjs` is safe to import since it guards its main function behind a filename check and exports properly. But `compare.mjs` has a real issue—`ensureFont()` is synchronous but it kicks off an async download without waiting, then immediately tries to read the font file synchronously, which fails on a cold cache. Two agents still to check.\n\nI'm torn on how to report this. I already posted an interim for agent 1, so posting another per agent feels redundant, but the ENOENT bug in agent 2 is genuinely actionable. I think I'll post a brief note on that specific issue and wait for the remaining two agents to land before synthesizing a full plan.","signature":"CAISgAsKhwEIEBgCKkCLU3duZ7cjqH/JXmpeUjE/VvvwkwIyvWiWUeyZLLnGt0jwdxFPAoiTuWmTZjcXiYBO57+J+rfnYfh6kSqyDE4AMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDNFeF2YDmrTwAQIH9BoM+qTEDHo99xxbUBn0IjByGriAwUwDqejRfEL6ciyVGlgf8Uk+AYzNdzaL0T+Cdy3xCe9EnqkZY7VPNLthHYQqpQl6Q1bEboiMm+QwGyrCc2aCpsN0ziBs7MJOXoWiakuPMzaCk9GEG4Dp6vbSEbCs0jI4MT4QE3aMxnFvgvmmpMkBoJnWmVU67ElnEgyioyZSuj4X0KNt+0GH1xWRLMs1cyqHY8qM7i1KU2hbzFCnHmcPee95BgXROHXwDL3M5p8Wyqhz8LxWQBbvwfBAwl9Vbm9USXnnkuMKrVz+SgjFgVlL5rQNcVVQyJ/vqCQKIZSQZbtd7/Xu2TJCdCC+ojjknEoVCyNa7cSzqCwr3Vhk3uiRowQTl6jocI5L2vYT9Okonb2gJm3BHf4Z4KDNrJ5kqQFFbaECAKbuesIkQ7KPVFUQzocjpAJv7b6CQyHYhK2ifwh3JfTEvk2xnMuXCF6f328J1cO6DlO4f2DWkOpp2vteAP8i6L1Y3NkAKvmAke08UH7EFwO1lhgtxrT8WUaPYSLnt6oxLlwWA/qvMiujWpF9yzJkTKjq6a7Cd2wy1TkuHmy0kQ8p1/N1jrRzdRGzMnefxHCiMD+G5bNIqr6IfAp4OAWTzSNFGU/YoB7+VvXbtMQTcdXH49ne6n+z6j2T2Z/S5gqOvRBTyFgzLoRBs8ktDHyptVptSNiFduMP1aLNDGyr322vSzZdsRunJt35qbix6WDmwK0zj4ZbjzgsCNm44A650VTCfQpUvDk/05g/N17yJkG9YthXtpbu2Oxiq6en/R73ZzUecH7TmLxUS13KoopKijGBoLznpwNa3SpCx+hg1xgB9Y6J2xOkQP4hUUPDSDn60JsvQ3berGGOBQIIflfr6XrLb9tCABaz+4UtpH3z0BP20V1aCWTCvZ/5UITa0Yp8OKOpNJ/hgZgbAqttAQTcjs6nb0+ZyuOe+z/llW2nehxIM4tIhjHpkEG/tCBuWW6CceozC/IP8iKo38spcrA1/KIUqNgX6FK02qLTn9e2bfIzesuz8GX7wCin009IHB5B3S+YN8h1EYIWROqaQ6RoWd5Yw04kFZZNaMWkQrSp2tm8JVKN/CUljm2bUb25qaoDNNy7XxWPv1eY16/Blfln/9Pt7MW6wbPVEJ/Xojt5SQv9zgLxVTWUU7jpbS1UOeHtHQ/vm/00zcwJqZ28dnUYoLF9zgS8huSEptWyM2Ju64XmJL16YhTtjnjI0ZoUJ5UiLtTDSzWc9Gno98vmZdfPQ7TqdFLiSFD3As/OIeC8lXLZRVhLiD7hzVJdc+Ybnu47V0DiK486P2wi+E3FgsB5SnkM6fqTapdTaeHZYqLHcvcgAYUaH0fu9lfyRj0ICJAMgZeb9oRlmiohxaTcnCfVSPqSXfqNAYCVntYaiUx+9riPlLH758Tcp73cJ22I9kVtlyW2ZZkdO73zupC8huI02zf8oeVmqu+ZHUqsl0njE0Ge52drBbTHb4zhr4UwPQnOG1olc3jBqWwlgnYawxHFXuvM/HKvFqQI75e8dOYGqQp1MA2zZpSfBApNtXQ3h1HFUqBiiT9CO/d8vtKXyBCBTvx2A/gkZDhSKfCGNBEyb3q7iPK0SJK5tdR8+Yn0xmLHLfnHdt3Xn48lUKyqgtOzQYiX+IHXDuTtlnr68ZSe/XN3GAE="}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":915,"cache_read_input_tokens":348063,"output_tokens":1428,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":915,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1428,"cache_read_input_tokens":348063,"cache_creation_input_tokens":915,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":915},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuXRJQzWwnYWAF69pbN","type":"assistant","uuid":"5a9d2f84-20b0-4d8e-8bf9-a00a77c973e5","timestamp":"2026-07-28T05:30:55.785Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5a9d2f84-20b0-4d8e-8bf9-a00a77c973e5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuXUyfqPc9dNgfSsqca","type":"message","role":"assistant","content":[{"type":"text","text":"Second landed — website/tooling. One finding is a real bug, which I verified:\n\n**`compare.mjs` breaks on a cold font cache.** [compare.mjs:170](tools/svg-png-compare/compare.mjs:170) `ensureFont()` is synchronous but its no-cache path fire-and-forgets the async `downloadAndExtractFont()` ([:197](tools/svg-png-compare/compare.mjs:197)); `main()` then hits `fs.readFileSync(FONT_PATH)` immediately → ENOENT plus an unhandled rejection. Only survives today because a `Hack.zip` is already cached locally. `shot.mjs`'s version is correct — I wrote it awaited by accident of writing it later.\n\nThe rest, ranked:\n\n1. **Victor Mono's metrics live in two files** — [export_themes.mjs:29](website/export_themes.mjs:29) and [shot.mjs:46](tools/svg-png-compare/shot.mjs:46). Swap the site font and `--website` mode silently renders with stale metrics. It confirmed `export_themes.mjs` is safe to import (`main()` is guarded by `process.argv[1] === __filename`, and it already has an export block — I checked both), so the exporter can be the single source of truth. It also explicitly cleared `svg.go`'s Hack constants: different font, correctly placed.\n2. **~90 duplicated lines across `compare.mjs`/`shot.mjs`** — path constants, `run()`, `ensureFont`, `DEVICE_SCALE_FACTOR`, the font-face scaffold. Sharing them kills the ENOENT bug as a side effect. It argued *against* merging the two `rasterize` functions, correctly — forced-box vs natural-size is the entire reason `shot.mjs` exists.\n3. **`exec` with a hand-joined string, 124 times** — [export_themes.mjs:203](website/export_themes.mjs:203) spawns a shell per theme and forces manual quoting (including the `OMP_BIN` quoting I added). `execFile` with an args array removes both. Also: the trending temp data file is never unlinked.\n4. **Segments plugin ships derivable fields in global data** — `groupLabel` and `href` are 117 copies each of something reconstructible, and the build-time `count` fields are verified unused (both consumers recompute live counts). ~6–8 KB off every page.\n5. **Three stale comments worth fixing**, one actively misleading: [plugins/themes/index.js:12](website/plugins/themes/index.js:12) describes a `Loadable()` dynamic import that the component explicitly does *not* use. Two others cite a \"phase plan\" document that doesn't exist in the repo.\n6. **`117` hardcoded across seven shipped files** while the plugin already computes `total` at build time.\n\nTerminal hot path and plumbing agents still running. I'll put the actual apply/skip plan together once they're in — the font-metric question spans all three layers."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":915,"cache_read_input_tokens":348063,"output_tokens":1428,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":915,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1428,"cache_read_input_tokens":348063,"cache_creation_input_tokens":915,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":915},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuXRJQzWwnYWAF69pbN","type":"assistant","uuid":"c418d172-2ca1-4b59-926c-044c502b0a68","timestamp":"2026-07-28T05:31:07.938Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c418d172-2ca1-4b59-926c-044c502b0a68","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":3570},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T05:31:14.313Z","uuid":"7186127f-8f82-431c-a035-fa3acf831e22","toolUseID":"94329541-2eaa-402b-97d0-9c914ddfeebf","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7186127f-8f82-431c-a035-fa3acf831e22","isSidechain":false,"promptId":"0280c43e-9e86-4a28-9744-10f1bed6f75e","type":"user","message":{"role":"user","content":"\na55d928e9f98aab0a\nREDACTED\nC:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a55d928e9f98aab0a.output\ncompleted\nAgent \"Analyze prompt cli color plumbing\" finished\nA task-notification fires each time this agent stops with no live background children of its own. The user can send it another message and resume it, so the same task-id may notify more than once.\nRanked findings. All verified against the code on `next`.\n\n**1. Three near-identical render-setup blocks in the CLI export commands — extract one helper.**\n`src/cli/config_export_image.go:80-131`, `src/cli/config_export_data.go:96-131`, and `src/cli/config_export_data.go:282-307` (`recordThemeSanitized`) each repeat the same ~30-line sequence: `config.Load` → `runtime.Flags{ConfigPath, Shell: GENERIC, TerminalWidth: 120}` → `env.Init` → `template.Init` → clear `ConsoleTitleTemplate`/`PWD`/`ShellIntegration` → `terminal.Init(GENERIC)` → `terminal.BackgroundColor`/`terminal.Colors` → build `prompt.Engine` → `eng.Primary()`. A single `func renderConfigGeneric(cfg *config.Config, width int) (*prompt.Engine, error)` (with `CaptureRuns` set by the image caller before it) collapses ~70 duplicated lines and removes the drift risk that one copy gains a fix the others miss — `recordThemeSanitized` already had to re-add `template.ResetCache` that the single-config path doesn't need. Not hot path. Break risk: none beyond ordering (template.Init before terminal colors, as today).\n\n**2. Engine capture state: two of the six fields are values pretending to be state.**\n`src/prompt/engine.go:47-64`. `blockText`/`length` already flow as return values (`renderBlockSegments` → `renderLaunchedBlock` → `writeBlock` params), but their Run-stream counterpart `pendingBlockRuns` is stashed on the Engine instead — asymmetric with the data it mirrors. Making `captureBlockRuns` a return value threaded alongside `blockText` (through `renderBlockSegments` at `segments.go:82-88`, `renderBlockFromCache` at `engine.go:389-393`, into `writeBlock`) deletes the field. Likewise `pendingFillerRuns`: `shouldFill(filler, padLength)` (`engine.go:226-249`) could return the already-expanded `[]terminal.Run` itself — it has `padLength` in hand — deleting `captureFillerRuns`, `fillerCaptureRuns`, and the field, plus the re-passing of `fillLength`/`space` at `engine.go:310-313` and `327-330` where the caller must hand `fillerCaptureRuns` the exact same value it just gave `shouldFill`. Net: 6 fields → 4 (`capturedRows`, `rpromptRuns` — which rightly persists, mirroring `e.rprompt` — `cursorRow`, `cursorRun`), and no captured state survives across renders except what's meant to. Cost when `CaptureRuns` is false: passing a nil slice — zero allocations, so the alloc-gated hot path is untouched. Break risk: signature churn in `writeBlock`/`shouldFill` and the streaming re-render path; `runs_test.go` updates.\n\n**3. Env-flag routing duplicated between `cli.applyDataFile` and the golden harness.**\n`src/cli/data.go:61-84` and `src/prompt/golden_test.go:222-245` are the same six-field `PWD/Code/ExecutionTime/PipeStatus/Interrupted/Executed` if-chain (the harness can't import `cli` — `cli` imports `prompt`). Move the routing into `config` as a method, e.g. `func (d *Data) ApplyFlags(flags *runtime.Flags, changed func(string) bool)` (with a nil/`never` changed func for the harness); `config` already imports `runtime`. `applyDataFile` shrinks to load + version warning + `--data-derive`; a new routed field then gets added exactly once. Break risk: none functional; the harness's `require.NoError` wrapping moves up a level.\n\n**4. `svg.hexToRGB` reimplements gookit's `HexToRgb` line for line.**\n`src/svg/colors.go:141-171` vs `github.com/gookit/color@v1.6.1/convert.go:438` — same strip-`#`, lowercase, 3-digit doubling, `0x` strip, 6-digit requirement. The doc comment even says it \"mirrors the accepted forms of gookit's color.HexToRgb\" — the parser `color.Defaults.ToAnsi` already hands hex to. Calling `gookitcolor.HexToRgb(value)` directly (returns nil on failure, `[]int{r,g,b}` on success) deletes ~30 lines and makes the parity the comment promises true by construction instead of by transcription — commit 86de20dd exists precisely because the transcription had drifted once already. Not hot path. Break risk: gookit additionally `TrimSpace`s input (slightly more lenient — a whitespace-padded hex the ANSI writer painted would now also render, which is the correct direction).\n\n**5. `svgOutputPath` carried over a `TrimRight` cutset bug.**\n`src/cli/config_export_svg.go:131`: `strings.TrimRight(match[\"STR\"], \".omp\")` trims *characters in the set* `{. o m p}`, not the suffix. A config named `demo.json` exports as `de.svg`; `promo.json` becomes `pr.svg`. Pre-existing (retired `image.go:224` had the same line), but it moved wholesale into new code — should be `strings.TrimSuffix(match[\"STR\"], \".omp\")`. Break risk: only outputs for pathological names change, all for the better.\n\n**6. `svgFontSize` mirrors an unexported constant it can drift from.**\n`src/cli/config_export_svg.go:20` hardcodes `16.0` to mirror `svg.go:120`'s unexported `defaultFontSize`. The CLI's ratio→absolute conversion silently produces wrong metrics if the svg default ever changes. Export it (`svg.DefaultFontSize`) and delete the mirrored constant plus its apology comment. Zero risk.\n\n**7. `svg.ParseTrueColorSGR` duplicates `color.parseTrueColor`.**\n`src/svg/colors.go:94-124` vs `src/color/gradient.go:455-470` — same \"38/48;2;r;g;b\" split-and-parse. Export one RGB-returning parser from `color` (e.g. `ParseTrueColorRGB(Ansi) (RGB, bool)`); `gradient.go`'s colorful wrapper builds on it, svg calls it. ~30 lines. Break risk: none; both reject identically today.\n\n**8. `sanitizeEnv` ignores its own `sanitizedPath` constant.**\n`src/cli/sanitize.go:43-48` writes the literal `\"~/dev/oh-my-posh\"` three times while `sanitizedPath` (line 14) — whose doc comment explicitly claims it covers \"env PWD/PSWD/AbsolutePWD\" — sits unused for exactly those keys. Use the constant; the doc then matches the code. (Otherwise the sanitizer's structural approach is sound: presence-checked overwrites keyed on `config.SegmentType`, serialized-key casing verified against a real recording, and the shape-based backstop in `fixtures_sanitized_test.go` closes the field-name blind spot that caused the email leak. Not over-built.)\n\n**9. Theme enumeration and data-file keys each defined twice.**\n`src/cli/config_export_data.go:237` (`themeFileExtensions`) + `listThemeFiles` vs `src/prompt/golden_test.go:154` (`themeExtensions`) + `themeFiles` — same extension list, same readdir-filter-sort. And `src/cli/config_export_data.go:28-32` defines `version`/`env`/`segments` key constants whose comment claims they're shared \"by config.LoadData on the read side\" — but `config/data.go:96-106` reads string literals; the constants can't reach it. Hoist both (extensions and keys) into `config` next to `DataVersion`, the package both sides already import. Low urgency, but the write/read key pair is the one place a typo desynchronizes recorder and replayer silently.\n\n**10. `GradientCellsRGB`'s duplication is broader than its stated justification requires.**\n`src/color/gradient.go:272-330` duplicates the stop-resolution + auto-shade block of `GradientCells` (`gradient.go:173-227`) byte-for-byte except log calls. The doc's rationale — \"an added allocation or branch would show up in the allocation gates\" — holds for the *interpolation/output* halves (different output types, cache vs no cache) but not for extracting the resolve loop: the `colors` slice is allocated identically in both today, so a shared `resolveGradientColors(...) []colorful.Color` adds zero allocs and one call. The parity test (`gradient_parity_test.go`) then only has to defend the interpolation math, not the resolution semantics. Given the project convention (benchstat, alloc gates), verify with the hot-path benchmarks before landing; if inlining shifts, keeping the duplication is defensible — but the doc comment should then narrow its claim to the halves that actually differ. The logging difference (GradientCells logs per bad stop, RGB is silent) needs either a bool param or caller-side logging.\n\n**11. Small/dead items.**\n- `src/prompt/fixtures_sanitized_test.go:57-64`: `fixtureFiles` returns a hardcoded one-element slice purely so the tests \"read the same as they did when there were 124 files\" — inline `fixturePath` and drop the helper plus its loop scaffolding.\n- `src/prompt/golden_test.go:126,138`: `representativeThemes` rationale cites \"Task A's hermeticity fix\" and \"Task D\" — labels from a planning doc that isn't in the repo; the *facts* (chips' live wakatime call, no `<LINK>` usage) are worth keeping, the task letters are opaque to any future reader. Same for `config_export_data.go` if any remain.\n- `src/config/data.go:141-148`: the `map[any]any` branch of `sanitize` is almost certainly dead — both go.yaml.in/yaml/v3 and go-toml/v2 decode untyped maps as `map[string]any`. Verify with a nested-map YAML test, then delete the branch (and possibly the whole `sanitize` walk).\n- No dead fields found: all six Engine capture fields, `rpromptRuns` (`primary.go:188`), `pendingData` (`config/segment.go`), and both `Set` source fields (`terminal/writer.go:1227-1231`, `terminal/run.go:121-122`) are read. The source-tracking hot-path cost is two string-header copies inside an `Add` that already allocates a `Set` — properly free.\n\nNot findings, checked deliberately: the colour-source design itself (svg resolving from source forms rather than inverting SGR) has no counterpart in `src/color` to deduplicate against — `ansiNamedRGB`/`palette256` are new information (RGB values) that `ansiColorCodes` (SGR numbers only) cannot supply; `decodeRecordedSegment`'s exactly-two-keys structural detection is sound and replaces the flag `runtime.Flags` can't carry; the golden harness's hard pin of 124 themes and the `TestMain` ambient-input neutralisation are deliberate and correct; `mergeRichest`/`countPopulatedLeaves` are proportionate to the fixture-quality problem they solve.\n14285532338761\n"},"uuid":"7f3711dd-9525-40ae-b03b-ba0525b958eb","timestamp":"2026-07-28T05:32:19.222Z","permissionMode":"auto","origin":{"kind":"task-notification"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7f3711dd-9525-40ae-b03b-ba0525b958eb","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-111d15bb-8d0f-4f30-a6f7-b5bead6c3a0f","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"5a766c6d-f34f-4cdd-8eb4-d3413777a3c7","timestamp":"2026-07-28T05:32:19.449Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5a766c6d-f34f-4cdd-8eb4-d3413777a3c7","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTueSAhQQ3NDX3osG4Kh","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The third agent found some solid issues. There's a real bug in the string trimming logic where `TrimRight` is using the wrong cutset, causing `demo.json` to become `de.svg`. The hexToRGB function is unnecessarily reimplementing something that gookit already provides, so I should just call that directly. I also spotted three duplicate render-setup blocks that could be consolidated, and there's a ParseTr function that needs attention.\n\nNow I'm verifying that TrimRight bug by reasoning through it — the cutset {., o, m, p} strips characters from the right until it hits one not in the set, so \"demo\" loses the trailing 'o' and 'm', leaving \"de\". I want to confirm this with an actual test run, maybe by copying a theme file and running the exporter to see what filename it generates. One more agent to go after I finish this verification.","signature":"CAISnwsKhwEIEBgCKkCvdWrdp13w4gYYzbj0ZhZNpKeDnPxAB5X1XoYmiNs623GPvIa7j72m7We8cKQ5XJo1l+r/aKKVZzH0Lsw1A554Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDKj6IZoYeNfB+xC47hoMVPyTEhbc1efaIuReIjBax1IXyNn2BmCFHoM31aTqXlZ8QzVeAfCLjQ6c6SaQF0jWzf5FqpLsyGva7KJVb4MqxAkPw8VXZHjoxX4jsurgRdv4y/+RGZz1Ew7evCfCAw2SxOKx63fFslu5cKQL5jzQoG2gVpEhckF/ASeTIZpSPvxlIW7BT4Lo7nHNRki2KgBpMcYo2wDy6B739ux7tnKcjlAQs52NcPU9MSjC1gK9/rhU51HjH/TNYJNo3aWmG93Go7xlLrG/McoyvhAEh0XVYIjDn/NBF+AlBfZBs3YCz9lHnETHBoK4w8dA6v8y2EqqZbW4WvAtel0EtJsmCTv3wynU4yRFe3PKEwsCSoibcXCHDwrET68SH4FTm1Rcn8U/IU+aqi/c/Q0TmgYfquAYWfg1yqT/lIaKDXemuEsFzQNzfYhXSQ6IkPSoZCLYwkBvHIvfPqTavFN33XN6fmCEhNOxpwcZ5f+Im1MbyiU6H8l+ohjEm3allRlvNKpi/DGoxvo12qrXPzqPIekGwKHkPmdXGlKuH+8LhyzCjnrXRcf7Sp9ZvOkOGVFlzzMIpPZOk4LRjx5rHZLuBdyJusuM7IroBz9PDndIJgO6prw1QNAggdoEOsfL5jCkdgZi2cWFyr98Ru9J3XDn7qXGxdToAU9pvLVibIL26wWmYbB69t0f5euZ0G70vCuA8lVt+MAHn1SEdhsvUlFhkP4mbFtzp+uMixbO3jaddFdjFxukgsqFNuAbZoMhmkwOv79cD81jfLyuYhtIidSNUftKKfDrRjx7gM8T3CuMsnxf9cte6M1LRQywtpmHrl65AuktvMWX+z67+xgU5MM7vRRFkiUZfKo2LhdhyKT0zDHAy238LreKT1uhBuWhS3cmuWZUcQX/q+rVOia1RzGs6Otj8PBj9Qdfde7bpzuPuZaVYX7lY7c9dAGvjhxQPwvr0i5PfrwvVtlzfct1ycJaMshIN9+PcADCWQExvQUOSpvF6WuCNXvL8uGLHc1gb88XCiNz4Uf9btBo8cqCW1ulzuBpxmf5Kii8dDCKhHoopsRRS3mBM1wfOCLTdvLvp3VEpaStQtNBmMqLPEuDTPQdFS14L8lSVBoAdUjefHxfNXlArQDdDdWgmpl2nQKap1MKCri3sH3ppTDE8Yf2cwSW4tWu4F7d/fTlW5hlXOIRPz59tMqEgfs4B95Za5Fl24SQ0Sqz5I9bcjs3ECM45d5mN3OKBAWvcSv51Fy/XBvb8IHYqInVx5D9LaC8llU9LYy7/Tf0clHag8kgTLTSDUvb8QvafssA+iouaz+4yTgGVN2NNIBq4oH9aUdPVeJJUFzpYogAi4jOjbSE7YBnZUZZDWIat3Ee5jmSglgRhk0aYe6S4xNbcIVzenFMhP6idmXM/ZNwSEp+ZtF2dETbEr8gyrenGRwIhiQ4wwu7aADzwoKv+MGWfh7qOV1pdSBm9wjP7M2rHlR5N84Axe7/EDxcTya14f2RNo25+0ZvMQbuFIsZRZ2CsrAhS1/mj1IEA+ZfaGZMmJ3L8kSKJdEM3MO/D9Jn8IRne09AifQIalDr9nQnCvqegboHUNkD62XetS/p19LRWQSvdDFVjDmbwfGYKzSCDrbkCo1ftGgoHucnX8ubqNFwjftKyJMmzrtF+pmWRLLUf3xJKXEaIGd62yB+5Xi6ACjibl906OrPZbcNohD3/72TYkfZYY/w3hgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":4468,"cache_read_input_tokens":350406,"output_tokens":706,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":4468,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":706,"cache_read_input_tokens":350406,"cache_creation_input_tokens":4468,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":4468},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTueMd6kbQuw4KDF9iPN","type":"assistant","uuid":"3045b0a6-fc41-4efd-86ba-ba2d1585c834","timestamp":"2026-07-28T05:32:31.694Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3045b0a6-fc41-4efd-86ba-ba2d1585c834","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTueSAhQQ3NDX3osG4Kh","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01N7qUBpbfQDNBYBMaBD1rz4","name":"Bash","input":{"command":"cd \"$TMPDIR\" && mkdir -p trimtest && cp /d/oh-my-posh/themes/cobalt2.omp.json trimtest/demo.json && cd trimtest && \"$TMPDIR/omp.exe\" config export image --config demo.json --data /d/oh-my-posh/src/prompt/testdata/fixtures/prompt.data.json >/dev/null 2>&1; ls","description":"Verify the TrimRight cutset bug"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":4468,"cache_read_input_tokens":350406,"output_tokens":706,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":4468,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":706,"cache_read_input_tokens":350406,"cache_creation_input_tokens":4468,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":4468},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTueMd6kbQuw4KDF9iPN","type":"assistant","uuid":"ad19a621-7fb4-4e80-8231-9d7dcaf48ccf","timestamp":"2026-07-28T05:32:31.699Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ad19a621-7fb4-4e80-8231-9d7dcaf48ccf","isSidechain":false,"promptId":"0280c43e-9e86-4a28-9744-10f1bed6f75e","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01N7qUBpbfQDNBYBMaBD1rz4","type":"tool_result","content":"de.svg\ndemo.json","is_error":false}]},"uuid":"5466cb14-ee55-46c7-ad1e-4dd0cde3e6f8","timestamp":"2026-07-28T05:32:34.912Z","toolUseResult":{"stdout":"de.svg\ndemo.json","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"ad19a621-7fb4-4e80-8231-9d7dcaf48ccf","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5466cb14-ee55-46c7-ad1e-4dd0cde3e6f8","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTufXvzTJ4LQJHeCGreP","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Found a real bug where `demo.json` is being converted to `de.svg` instead of the correct output—this was a leftover issue from the old renderer. One agent remains, so I'll post a summary of agent 3's verified findings and keep it concise.","signature":"CAISoAMKhwEIEBgCKkAsNJYGtQ09hHvN6HaH7m0mvLS9pYksvG6jAq59+oy6qZji0TKCIYtgbwFLYKsBSXNjtRFWfNSsHPSnzWCXc37hMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDGtvkfqh1UHYSUeCMRoMgxeWD3nsVuvCtgmnIjAuh5tLSPtjvgoDiqmVj1nubF1y70ap5GrEx7MLkhg8TY5urUoKVbUFzUOJoYh9tXwqxQEL3QsLppD8qmILE94y6kaU08nsjh/2ULnQa5AIr7z2y9QlgTpFSUiiXbDaLycS/Q1uSsxEZlqMX7zNrRBBIm+cvEiNzwlJKxHCOslK7BmDXKd4MpHcjn8IH9dqeiKgkImtq+n0M7TLMBudwLpxbxzlR4rGC7BCYQvFlZ4PHANJsBUdyOGpX8SIjqprRfALhvo1z0Ncmi77/9lqHvnxboE+Opz/XzjwfwMjzwfxD2mMmHdQ7f+Udp9COrY2HihnXj0EggGv/BgB"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":720,"cache_read_input_tokens":354874,"output_tokens":1189,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":720,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1189,"cache_read_input_tokens":354874,"cache_creation_input_tokens":720,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":720},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTufSxMEhDtmWLQ96tLu","type":"assistant","uuid":"10971a22-e3e1-459d-84b9-17c7f2d07067","timestamp":"2026-07-28T05:32:40.766Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"10971a22-e3e1-459d-84b9-17c7f2d07067","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTufXvzTJ4LQJHeCGreP","type":"message","role":"assistant","content":[{"type":"text","text":"Third landed — plumbing. Verified its sharpest finding by running it:\n\n```\ndemo.json → de.svg\n```\n\n`strings.TrimRight(match[\"STR\"], \".omp\")` at [config_export_svg.go:131](src/cli/config_export_svg.go:131) trims *characters in the set* `{. o m p}`, not the suffix. `promo.json` → `pr.svg`. Pre-existing — the retired renderer had the same line — but I moved it wholesale into new code. Should be `TrimSuffix`.\n\nRest, ranked:\n\n1. **Three near-identical ~30-line render-setup blocks** — [config_export_image.go:80](src/cli/config_export_image.go:80), [config_export_data.go:96](src/cli/config_export_data.go:96), and `recordThemeSanitized` at [:282](src/cli/config_export_data.go:282). Same `config.Load` → `runtime.Flags` → `env.Init` → `template.Init` → clear title/PWD/integration → `terminal.Init` → colours → `Engine` → `Primary()`. It notes the drift has already started: `recordThemeSanitized` had to re-add a `template.ResetCache` the others don't have.\n2. **`svg.hexToRGB` transcribes gookit's `HexToRgb` line for line.** Its own doc comment says it \"mirrors\" it — and commit `86de20dd` exists *because* the transcription had drifted. Calling gookit directly makes the parity true by construction and deletes ~30 lines.\n3. **Two of the six Engine capture fields are values pretending to be state.** `blockText`/`length` already flow as return values, but their Run-stream counterpart `pendingBlockRuns` is stashed on the Engine; same for `pendingFillerRuns`, where the caller has to hand `fillerCaptureRuns` the exact same `padLength` it just gave `shouldFill`. Six fields → four, at zero allocation cost when capture is off.\n4. **`svg.ParseTrueColorSGR` duplicates `color.parseTrueColor`** ([gradient.go:455](src/color/gradient.go:455)), and **env-flag routing is duplicated** between `cli.applyDataFile` and the golden harness (which can't import `cli`) — both ~30-line if-chains.\n5. **`svgFontSize = 16.0`** mirrors svg's unexported `defaultFontSize` by hand. Export it.\n6. **`sanitizeEnv` writes `\"~/dev/oh-my-posh\"` three times while its own `sanitizedPath` constant sits unused** for exactly those keys. It otherwise cleared the sanitizer as sound, not over-built.\n7. **`GradientCellsRGB` duplicates more than its stated justification covers** — the resolve loop could be shared at zero alloc cost; only the interpolation halves genuinely differ. Wants benchmark confirmation before touching.\n\nIt also cleared several things: the colour-source design has no `src/color` counterpart to dedupe against (`ansiNamedRGB`/`palette256` are RGB values, which `ansiColorCodes` can't supply); the recorder's structural key detection is sound; the golden harness's 124-theme pin and ambient-input neutralisation are deliberate. And it found no dead fields.\n\nTerminal hot path still running."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":720,"cache_read_input_tokens":354874,"output_tokens":1189,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":720,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1189,"cache_read_input_tokens":354874,"cache_creation_input_tokens":720,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":720},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTufSxMEhDtmWLQ96tLu","type":"assistant","uuid":"2cdd2a1a-aa5d-448e-a9b8-7c3c2bb51c9b","timestamp":"2026-07-28T05:32:53.011Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2cdd2a1a-aa5d-448e-a9b8-7c3c2bb51c9b","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":3577},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T05:32:59.010Z","uuid":"60690144-bb2e-4a02-9c03-68af03c1548a","toolUseID":"57007822-99dd-4f5c-9c5f-648bf9888bc9","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"60690144-bb2e-4a02-9c03-68af03c1548a","isSidechain":false,"promptId":"4294d1f7-4211-4010-9f3d-94306b4f5564","type":"user","message":{"role":"user","content":"\nae441658517242e1d\ntoolu_01BqqBAjXnrkBaXad8uzfDEy\nC:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\ae441658517242e1d.output\ncompleted\nAgent \"Analyze terminal run capture\" finished\nA task-notification fires each time this agent stops with no live background children of its own. The user can send it another message and resume it, so the same task-id may notify more than once.\nRanked findings. Benchmarks (5 runs each, next vs origin/main): allocs/op identical (WriteAnchors 14, WritePlainASCII 6), B/op +96/+32 (explained in #4), ns/op within noise. Inlining verified with `-gcflags='-m -m'`: `write` (cost 443), `writeVisibleRune`, `scanAnchor`, `classifyAnchor` were all non-inlinable on main too — no inlining regression from this branch.\n\n**1. Hoist `leadingAnchorInvisible` into the gradient branch — free hot-path win**\n`D:\\oh-my-posh\\src\\terminal\\writer.go:529` computes `leadingInvisible` unconditionally for every `Write`, but its only consumer is the `countVisibleCells` call at line 555, inside `if bgGradient || fgGradient`. For every non-gradient segment that starts with an anchor (the common case — `<#CAF25B>...`), that's a wasted 8-iteration `knownStyles` loop plus two string compares per Write. The function is pure over `match`; moving the call to line 555's block is behavior-identical. Nothing can break — `VisibleCells` (line 1211) has its own call.\n\n**2. Redundant capture prologue in `endColorOverride`**\n`writer.go:1403-1406` does `if CaptureRuns { flushRun(); defer syncPendingStyle(cs) }`, but its sole caller `writeAnchorOverride` (line 1297; verified no other callers) already did exactly that at 1289-1292, with zero style/text mutation in between. Net effect with capture on: a guaranteed no-op `flushRun` plus a duplicate full `syncPendingStyle` (inline cost 356, includes two `activeForeground` walks and a `deriveRunMode`) on every `</>`. With capture off: an extra bool check and an open-coded-defer slot. Delete the block and note in a comment that the caller owns capture bookkeeping. Risk: a future *direct* caller of `endColorOverride` would silently skip capture sync — the comment is the guard.\n\n**3. `gradientRenderCells` — the one global this branch added that can be scoped down**\n`writer.go:108`. The branch otherwise *reduced* ambient state (folding 9 former globals into `colorsState`), but added this one back as a package global. Its sole reader `collapseGradientLast` (line 1082) is only reachable from `Write` (lines 513/564/574); threading it as a `colorState` field costs nothing and fixes a lifecycle wart: unlike every sibling, it is not reset in `String()`'s defer (writer.go:748-778), only at the top of `Write` (line 489). Currently harmless because all readers sit downstream of that reset, but it's the kind of asymmetry the next bug hides behind. Behavior-neutral change.\n\n**4. Measured hidden cost of source capture — acceptable, but the \"single bool check\" claim needs a footnote**\nThe capture-off contract mostly holds: every `runsState` touch is behind `if CaptureRuns`, and the conditional `defer syncPendingStyle` in `writeSegmentColors`/`writeAnchorOverride` is open-coded (`deferwrap1` inlinable), so off-path cost is a bool plus deferBits — confirmed flat ns/op. What is *not* conditional: `color.Set` grew two unexported source fields (`D:\\oh-my-posh\\src\\color\\colors.go:49-50`), and `History.Add` allocates a `*Set` per push, so every prompt render now carries +32 B per history entry with capture off (measured: 592→688 B/op anchors, 280→312 B/op plain; alloc *count* unchanged). Making the fields conditional would thread `CaptureRuns` into the color package and risk on/off divergence — not worth it. Recommend only: record the +32B-per-Set number in the `Set` doc comment so the next benchmark diff isn't a surprise.\n\n**5. `runAttributeSlots` const + pinning test can be compile-time instead**\n`run.go:46-48` says knownStyles \"is a var, not a const, so this can't be derived at compile time\" — that's contradicted by the spec: make `knownStyles` an array (`var knownStyles = [...]*style{...}`, writer.go:69) and `const runAttributeSlots = len(knownStyles)` is legal (verified it compiles). That deletes `TestRunAttributeSlotsMatchesKnownStyles` (run_test.go:42) and the drift risk it papers over. `knownStyles` is only ranged/indexed (writer.go:274, 533, 1138, 1302), never appended to. Risk: ranging an array has copy semantics; use `knownStyles[:]` at the four range sites or trust the compiler (it elides the copy for read-only ranges). Low urgency, but the comment as written is stale the moment anyone knows the trick.\n\n**6. `runState`/`colorState` merge — don't; the duplication is load-bearing (question 2/4 answer)**\nThey have different lifetimes: `colorsState` is per-`Write` (reset at Write entry), `runsState` spans every Write in a block until `String()` (Runs must survive across segments; `prompt/runs.go:76` clones them). Merging would drag capture-only fields through per-Write resets with capture off. Nor can the pending-style mirror be replaced by deriving from `cs` at flush time: `flushRun` in `stampGradient` (writer.go:983) cuts the *previous* cell's text after `cellIndex` context has moved on, and the previous cell's escape/RGB aren't recoverable from `cs` without index arithmetic that would drift. The snapshot is the honest shape. Two genuinely optional trims inside it, both capture-on-only (i.e. not perf, just shape): (a) `runsState.attributes` could be dropped — every `depth` mutation site flushes first, so `flushRun` could read `depth` directly; the snapshot's only value is making that invariant explicit; (b) `syncPendingStyle` calls `activeForeground` twice (run.go:143 and via `deriveRunMode` at 147/177) — pass the value through.\n\n**7. `write()`'s mirror sites: leave them (question 4 answer)**\nThe five 2-line `if CaptureRuns { runsState.text.Write... }` mirrors (writer.go:655, 720, 885, 901, 911) can't collapse to one source of truth: the builder also holds escape prefixes/ANSI, so text can't be sliced back out of it, and a shared `emit()` helper would put a call whose body (two `WriteString`s plus a branch) flirts with the 80-cost inline budget on the per-rune path — exactly the failure mode of the recorded 6.1x revert. Explicitly not recommending it.\n\n**8. Dead code after the tokenizer collapse: none (question 5 answer)**\n`asAnsiColors` was cleanly replaced by `asAnsiColorsWithSource`; `scanAnchor`+`classifyAnchor` is now the single tokenizer shared by `writeBody`/`writeBodyGradient`/`countVisibleCells`. `AnchorRegex`/`ANCHOR`/`BG`/`FG` (writer.go:127, 149-151) look orphaned in-package but are still consumed by `prompt/engine.go:754-816` (diamond adjustment, cold path) — not dead. The `writeBody`/`writeBodyGradient` twin loops and the `writeSegmentColors`/`writeAnchorOverride` transparent-branch duplication both predate this branch and are protected by the inline-revert history; the branch only threaded `cs` through them.\n\nSmallest possible follow-up set, in order of value: #1 (pure win), #2, #3. #5 if you want the test gone; #4 is documentation only; #6a/6b optional polish.\n11823924485458\n"},"uuid":"d91aacb6-3053-40df-975e-5335712594b6","timestamp":"2026-07-28T05:34:32.501Z","permissionMode":"auto","origin":{"kind":"task-notification"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d91aacb6-3053-40df-975e-5335712594b6","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-7aae06aa-adf2-434b-8ba0-7e484daab95d","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"1207bd9d-1c78-4f81-8978-6d6a22d9a2b8","timestamp":"2026-07-28T05:34:32.695Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1207bd9d-1c78-4f81-8978-6d6a22d9a2b8","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTupDbBcHM2Mvtp2BTfk","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Checking the terminal agent's top performance claims now. The first one flags that `leadingAnchorInvisible` gets computed unconditionally at writer.go:529 but only used later inside a gradient branch at line 555 — I need to verify that's actually wasteful. The second claim points to `endColorOverride` being redundantly captured in the prologue at lines 1403-1406 when the caller already handled it at 1289-1292. Also need to look into claim #5 about `const runAttributeSlots`.","signature":"CAISkwcKhwEIEBgCKkBBoEMJemnvvI6hDdIXh6ZcY+Vv6WdReexB585irXjIzPPlwyHoUimj3wg1sYYkId1xCVyYJnsAToHEBepAUQXBMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDIPMJ9LLhRzWruVP/RoMb59fo3kfU0Sqzam1IjAfLfv1NiEES1wshdJDovkqRkniBHP1xrtB1ie6f1iRU4dcbjsAsRTd/QNQqme2+ecquAU6sf/YVfW5cSGtMtdOCpGKT7vYygEVIZjaqRTYNFDlYLJUf3ZF7aTJEoBS+c9RPEqOx198TlbTOX6ggy/tusiJg2apVcTbSlITQa0Ci9UVqiWgAWjlVITBBwi0evAyFnWM4kgCeVREA6UhQsmZdZh9m1NWjozChXtvU48FAWUJ/m2s0nIA77L9fkQ5LaSr1IeFA/qwolRi47rA9Z5LaVPWTMGzohvuyyvr5I4uTttmFNXfSqkYAETb5cmJ8XzwF8qBPL7HtssXi+HXIveF2O4Oc4QWZTV8wrYEFOaXUXWreaDwC5Ixxmmpu2whkJhDRB2m/SwaLp/yBirOOb0hEap7uzrK+giapZCz28hvxLQ9vORlm6sKCjzTACE9liDrCKAS76tXS9cac/3nuVQq0w67ZLtrCugP/TkQy5QGIS5vpCErVfk6f/9efeCUYPw6/6JiqgSoJbstwRZ5TLM7Z1k+dCRouXIZnrHzhPxad1DszDoKFq+nhVrZkXHNfyuAYT0T9VToV7/PXZGFUvyGz0069SsXTDwqA8A9BVVytUwd5SpsA5sDd/PhQSUTZexaQcS9UojxyskYNCSaIECyAZxPf714OkVDoWadGlC5eVFqzuMBnBIfS57yw6Nqej617ppw+L60VMjQuWX0Ck+gDByPnBZka+HZeFNBujxtvUoxRiEp6S+H679CBuybgV4/qAObIyBUBuiHSHBEFqIGbNlGX+TBaOEfVQr/tBFciMab7/L8smBccyk0eCro0YJl+ENXDbjpjSYtEgWrbK4ynAcg/MBSsGk+oh3XrtSc6XGWiAPBhLt4fiD3xFfyAB//TbNo+6IWmf57Fg1vpxuABZu6ely7LA/tBIv+sfL69jL6jqjwbpvdEKP0zJBfxBVf1vilX62iwfopaEIsIaq/t90c6KwxZ0DVEXsYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":3196,"cache_read_input_tokens":356783,"output_tokens":537,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":3196,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":537,"cache_read_input_tokens":356783,"cache_creation_input_tokens":3196,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":3196},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTup9QfFzQCAWUE84pjK","type":"assistant","uuid":"d543c26f-9035-4685-95f7-b450c59fb4ee","timestamp":"2026-07-28T05:34:43.984Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d543c26f-9035-4685-95f7-b450c59fb4ee","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTupDbBcHM2Mvtp2BTfk","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01PostdLvp97tT4kraDG4zrM","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && sed -n '525,560p' terminal/writer.go","description":"Verify leadingAnchorInvisible hoist claim"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":3196,"cache_read_input_tokens":356783,"output_tokens":537,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":3196,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":537,"cache_read_input_tokens":356783,"cache_creation_input_tokens":3196,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":3196},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTup9QfFzQCAWUE84pjK","type":"assistant","uuid":"399aa982-0d36-4b28-853e-87e9513eeb16","timestamp":"2026-07-28T05:34:44.148Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"399aa982-0d36-4b28-853e-87e9513eeb16","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTupDbBcHM2Mvtp2BTfk","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_015bvU9GG78ozWY6e8YQ9wqA","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && sed -n '1285,1300p;1398,1412p' terminal/writer.go && echo \"=== callers of endColorOverride ===\" && grep -rn \"endColorOverride\" terminal/","description":"Verify redundant capture prologue claim"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":3196,"cache_read_input_tokens":356783,"output_tokens":537,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":3196,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":537,"cache_read_input_tokens":356783,"cache_creation_input_tokens":3196,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":3196},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTup9QfFzQCAWUE84pjK","type":"assistant","uuid":"5af7d111-02ae-47e6-ba59-e87a0612bcad","timestamp":"2026-07-28T05:34:44.238Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"399aa982-0d36-4b28-853e-87e9513eeb16","isSidechain":false,"promptId":"4294d1f7-4211-4010-9f3d-94306b4f5564","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01PostdLvp97tT4kraDG4zrM","type":"tool_result","content":"\t// needs to know the consumed leading anchor left runes invisible (a literal\n\t// `` override) exactly like it already needs to know\n\t// the anchor started a hyperlink, or it undercounts nothing hidden and\n\t// overcounts everything that follows. See leadingAnchorInvisible.\n\tleadingInvisible := leadingAnchorInvisible(match)\n\n\tif match.ok && match.Anchor != hyperLinkStart {\n\t\tcolorOverride := true\n\t\tfor idx, style := range knownStyles {\n\t\t\tif match.Anchor != style.AnchorStart {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\twriteEscapedAnsiString(style.Start)\n\t\t\tcolorOverride = false\n\n\t\t\tif CaptureRuns {\n\t\t\t\trunsState.depth[idx]++\n\t\t\t}\n\t\t}\n\n\t\tif colorOverride {\n\t\t\tbg, fg, bgSource, fgSource := asAnsiColorsWithSource(color.Ansi(match.BG), color.Ansi(match.FG))\n\t\t\tcs.currentColor.Add(bg, fg, bgSource, fgSource)\n\t\t}\n\t}\n\n\t// a gradient needs the segment's visible cell count before anything streams,\n\t// so GradientCells can hand back one color per cell up front.\n\tif bgGradient || fgGradient {\n\t\tcells := countVisibleCells(body, match.Anchor == hyperLinkStart, leadingInvisible)\n\t\tgradientRenderCells = cells\n\n\t\tif bgGradient {\n\t\t\tcs.bgGradientCells = color.GradientCells(cs.backgroundColor, cells, Colors, true, CurrentColors, ParentColors)\n\t\t\tif cs.bgGradientCells == nil {","is_error":false}]},"uuid":"ab28da80-8f55-4d27-9a3b-5c5a3a67de53","timestamp":"2026-07-28T05:34:45.045Z","toolUseResult":{"stdout":"\t// needs to know the consumed leading anchor left runes invisible (a literal\n\t// `` override) exactly like it already needs to know\n\t// the anchor started a hyperlink, or it undercounts nothing hidden and\n\t// overcounts everything that follows. See leadingAnchorInvisible.\n\tleadingInvisible := leadingAnchorInvisible(match)\n\n\tif match.ok && match.Anchor != hyperLinkStart {\n\t\tcolorOverride := true\n\t\tfor idx, style := range knownStyles {\n\t\t\tif match.Anchor != style.AnchorStart {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\twriteEscapedAnsiString(style.Start)\n\t\t\tcolorOverride = false\n\n\t\t\tif CaptureRuns {\n\t\t\t\trunsState.depth[idx]++\n\t\t\t}\n\t\t}\n\n\t\tif colorOverride {\n\t\t\tbg, fg, bgSource, fgSource := asAnsiColorsWithSource(color.Ansi(match.BG), color.Ansi(match.FG))\n\t\t\tcs.currentColor.Add(bg, fg, bgSource, fgSource)\n\t\t}\n\t}\n\n\t// a gradient needs the segment's visible cell count before anything streams,\n\t// so GradientCells can hand back one color per cell up front.\n\tif bgGradient || fgGradient {\n\t\tcells := countVisibleCells(body, match.Anchor == hyperLinkStart, leadingInvisible)\n\t\tgradientRenderCells = cells\n\n\t\tif bgGradient {\n\t\t\tcs.bgGradientCells = color.GradientCells(cs.backgroundColor, cells, Colors, true, CurrentColors, ParentColors)\n\t\t\tif cs.bgGradientCells == nil {","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"399aa982-0d36-4b28-853e-87e9513eeb16","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5af7d111-02ae-47e6-ba59-e87a0612bcad","isSidechain":false,"promptId":"4294d1f7-4211-4010-9f3d-94306b4f5564","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_015bvU9GG78ozWY6e8YQ9wqA","type":"tool_result","content":"\tcs.currentColor.Add(bg, fg, bgSource, fgSource)\n}\n\nfunc writeAnchorOverride(cs *colorState, match anchorMatch, background, terminalBackground color.Ansi, i int) int {\n\tif CaptureRuns {\n\t\tflushRun()\n\t\tdefer syncPendingStyle(cs)\n\t}\n\n\tposition := i\n\t// check color reset first\n\tif match.Anchor == resetStyle.AnchorEnd {\n\t\treturn endColorOverride(cs, position)\n\t}\n\n\tposition += len(match.Anchor)\n\n\treturn position\n}\n\nfunc endColorOverride(cs *colorState, position int) int {\n\tif CaptureRuns {\n\t\tflushRun()\n\t\tdefer syncPendingStyle(cs)\n\t}\n\n\t// make sure to reset the colors if needed\n\tposition += len(resetStyle.AnchorEnd)\n\n\t// do not restore colors at the end of the string, we print it anyways\n\tif position == textLen {\n=== callers of endColorOverride ===\nterminal/run.go:110:// writeAnchorOverride, endColorOverride all flush before touching any state), and most of\nterminal/run.go:140:// style-anchor early returns, where only the attributes changed), and endColorOverride.\nterminal/run_test.go:96:// attributes: it routes to endColorOverride, which only ever touches colours. A `` left\nterminal/run_test.go:359:// call), since endColorOverride never clears isInvisible — so text after the matching\nBinary file terminal/terminal.test.exe matches\nterminal/writer.go:50:// writeSegmentColors/writeAnchorOverride flip; endColorOverride reads and\nterminal/writer.go:96:\t// writeAnchorOverride, endColorOverride, stampGradient, write,\nterminal/writer.go:493:\t// endColorOverride) for this one.\nterminal/writer.go:954:// matches the channel's original gradient value; endColorOverride restores\nterminal/writer.go:1297:\t\treturn endColorOverride(cs, position)\nterminal/writer.go:1402:func endColorOverride(cs *colorState, position int) int {","is_error":false}]},"uuid":"316bfe92-2574-4085-9296-4bb47e915273","timestamp":"2026-07-28T05:34:45.257Z","toolUseResult":{"stdout":"\tcs.currentColor.Add(bg, fg, bgSource, fgSource)\n}\n\nfunc writeAnchorOverride(cs *colorState, match anchorMatch, background, terminalBackground color.Ansi, i int) int {\n\tif CaptureRuns {\n\t\tflushRun()\n\t\tdefer syncPendingStyle(cs)\n\t}\n\n\tposition := i\n\t// check color reset first\n\tif match.Anchor == resetStyle.AnchorEnd {\n\t\treturn endColorOverride(cs, position)\n\t}\n\n\tposition += len(match.Anchor)\n\n\treturn position\n}\n\nfunc endColorOverride(cs *colorState, position int) int {\n\tif CaptureRuns {\n\t\tflushRun()\n\t\tdefer syncPendingStyle(cs)\n\t}\n\n\t// make sure to reset the colors if needed\n\tposition += len(resetStyle.AnchorEnd)\n\n\t// do not restore colors at the end of the string, we print it anyways\n\tif position == textLen {\n=== callers of endColorOverride ===\nterminal/run.go:110:// writeAnchorOverride, endColorOverride all flush before touching any state), and most of\nterminal/run.go:140:// style-anchor early returns, where only the attributes changed), and endColorOverride.\nterminal/run_test.go:96:// attributes: it routes to endColorOverride, which only ever touches colours. A `` left\nterminal/run_test.go:359:// call), since endColorOverride never clears isInvisible — so text after the matching\nBinary file terminal/terminal.test.exe matches\nterminal/writer.go:50:// writeSegmentColors/writeAnchorOverride flip; endColorOverride reads and\nterminal/writer.go:96:\t// writeAnchorOverride, endColorOverride, stampGradient, write,\nterminal/writer.go:493:\t// endColorOverride) for this one.\nterminal/writer.go:954:// matches the channel's original gradient value; endColorOverride restores\nterminal/writer.go:1297:\t\treturn endColorOverride(cs, position)\nterminal/writer.go:1402:func endColorOverride(cs *colorState, position int) int {","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"5af7d111-02ae-47e6-ba59-e87a0612bcad","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"316bfe92-2574-4085-9296-4bb47e915273","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuq7cYQTj4fzK2aeUfJ","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I've confirmed two optimization opportunities: moving the `leadingInvisible` variable calculation into the conditional block where it's actually used saves unnecessary work on non-gradient writes, and `writeAnchorOverride` handles the capture runs flush with deferred style syncing at the start.\n\nNow I'm identifying the actual defects versus optimization opportunities. There are two real bugs worth fixing—the `TrimRight` cutset issue that produces wrong filenames and the `compare.mjs` cold-cache crash—plus three high-value performance wins: hoisting `leadingAnchorInvisible`, removing the redundant `endColorOverride` prologue, and consolidating the gradient render cells into a colorState field. I should organize these into a concrete plan and get approval before making changes. There's a measurable regression here — the agent clocked +32 bytes per operation on the hot path with capture disabled, which I need to surface as a real trade-off rather than glossing over it. Since the user rejected AskUserQuestion earlier, I'll lay out the recommendation plainly in prose and let them decide how much of the refactoring to apply.","signature":"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"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1850,"cache_read_input_tokens":359979,"output_tokens":2500,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1850,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2500,"cache_read_input_tokens":359979,"cache_creation_input_tokens":1850,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1850},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuq43ESxbBmFmXGPEbN","type":"assistant","uuid":"497d7850-0f5f-4f6f-a3ac-5b44f8efc81e","timestamp":"2026-07-28T05:35:04.207Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"497d7850-0f5f-4f6f-a3ac-5b44f8efc81e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuq7cYQTj4fzK2aeUfJ","type":"message","role":"assistant","content":[{"type":"text","text":"All four in. I verified every claim I'm passing on as actionable.\n\n## Two real defects\n\n**Export writes the wrong filename.** Confirmed by running it: `demo.json` → `de.svg`. [config_export_svg.go:131](src/cli/config_export_svg.go:131) uses `strings.TrimRight(match[\"STR\"], \".omp\")`, which strips *characters in the set* `{. o m p}`. `promo.json` → `pr.svg`. Inherited from the retired renderer, but I moved it into new code. One-word fix to `TrimSuffix`.\n\n**`compare.mjs` crashes on a cold font cache.** `ensureFont()` is sync and fire-and-forgets the async download; `main()` reads the file immediately. Only works today because a `Hack.zip` happens to be cached.\n\n## One measurement you should see\n\nThe terminal agent benchmarked `next` against `main`, five runs each. Allocation *counts* are identical and ns/op is within noise — but **B/op is up 96 (anchors) / 32 (plain), with capture off**. Cause: `color.Set` grew two source fields ([colors.go:49](src/color/colors.go:49)) and `History.Add` allocates a `Set` per push. That's the colour-source tracking the SVG encoder needs, paid on every prompt render whether or not anyone exports an image. Making it conditional would thread `CaptureRuns` into the colour package and risk on/off divergence. Its recommendation is to accept it and document the number; I agree, but it's your call and it wasn't visible before now.\n\n## Worth applying\n\n**Hot path** — all three verified by reading the code:\n- `leadingAnchorInvisible` is computed on every `Write` ([writer.go:529](src/terminal/writer.go:529)) but consumed only inside the gradient branch at :555. Pure win.\n- `endColorOverride` repeats its caller's entire capture prologue — `flushRun` + a duplicate `syncPendingStyle` on every ``, with nothing mutating in between. Single caller, confirmed.\n- `gradientRenderCells` is the one global this branch *added* back, and it's the only one not reset in `String()`'s defer. Move it into `colorState`.\n\n**Deduplication:**\n- `svg.hexToRGB` transcribes gookit's `HexToRgb` line for line — and `86de20dd` exists because that transcription had already drifted. Call gookit.\n- `svg.ParseTrueColorSGR` duplicates `color.parseTrueColor`.\n- Three ~30-line render-setup blocks across the two export commands, already drifting.\n- Victor Mono's metrics in two files; `export_themes.mjs` is safe to import from (guarded `main()`, existing export block — I checked).\n\n**Cleanups:** delete `Options.Padding` (written, never read — a caller setting it gets identical output); drop `Encode`'s always-nil error; two unreachable guards; export `svg.DefaultFontSize` instead of mirroring `16.0`; `sanitizeEnv` ignoring its own constant; `plugins/themes/index.js` describing a `Loadable()` import the component explicitly doesn't use.\n\n## Explicitly not worth doing\n\nAll four agents pushed back on something, which is the part I'd trust most: merging `runState`/`colorState` (different lifetimes — one is per-`Write`, the other spans until `String()`); collapsing `write()`'s five mirror sites (a shared helper flirts with the inline budget — the exact failure mode of the 6.1× revert already in the history); merging the two `rasterize` functions (their difference *is* why `shot.mjs` exists); coupling `insertCursor` to `collapseGap`; collapsing `FillAscent`/`FillDescent` (asymmetric about the baseline).\n\n---\n\nSuggested order if you want it applied: the two defects first, then the three hot-path items as one commit, then the dedup, then cleanups. The `GradientCellsRGB` sharing (#7 from the plumbing agent) I'd leave alone until benchmarked — it touches the gradient path and the alloc gates.\n\nWant me to start, and how far down the list?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1850,"cache_read_input_tokens":359979,"output_tokens":2500,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1850,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2500,"cache_read_input_tokens":359979,"cache_creation_input_tokens":1850,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1850},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuq43ESxbBmFmXGPEbN","type":"assistant","uuid":"162d22f3-4b90-4072-a64c-8076096db35b","timestamp":"2026-07-28T05:35:20.941Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"162d22f3-4b90-4072-a64c-8076096db35b","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":3548},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T05:35:30.877Z","uuid":"9639a42f-b16b-4395-a159-b822969abd50","toolUseID":"c9c80307-014d-45c2-a1f6-567b89a3456a","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9639a42f-b16b-4395-a159-b822969abd50","isSidechain":false,"promptId":"fdc31961-523a-4174-825c-ba786fcbc29f","type":"user","message":{"role":"user","content":"apply everything except the GradientCellsRGB one"},"uuid":"09b08732-6d85-4287-9564-7e87e382df5e","timestamp":"2026-07-28T05:35:55.687Z","permissionMode":"auto","origin":{"kind":"human"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"09b08732-6d85-4287-9564-7e87e382df5e","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-7db87d37-9a12-4743-9157-a93a20f3ea3b","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"f205dae1-61dc-4386-b5bc-86ef51b67ff5","timestamp":"2026-07-28T05:35:55.892Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f205dae1-61dc-4386-b5bc-86ef51b67ff5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuvLwcaD93twmJ8w7BE","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm mapping out the work ahead—there are two defects to fix and some optimizations for the hot path in the terminal code. Let me start by listing what needs to be done: fixing the TrimSuffix issue in the SVG export config, making the font check async in the comparison tool, hoisting the leading anchor invisible flag into the gradient branch, and removing a redundant cap operation.\n\nFor the gradient rendering cells, I need to move that from a global into the color state field, then add the known styles array with a constant for run attribute slots and remove the pinning test. There's also a note about documenting the 32-byte overhead per Set, and I need to handle the syncPendingStyle function calling activeForeground twice by passing it through instead. I'm skipping the optional runsState.attributes cleanup since it would reduce clarity rather than improve it.\n\nIn the SVG package, I'll delete the Padding option and its related code, drop the error return from Encode, normalize the canvas and terminal background handling, switch to using fmt.Fprintf for writing rectangles and the root tag, remove the hasRect parameter from paintRun, and clean up the guards in fitRows and wrapRow that check for invalid column and cell counts.\n\nNow I'm working through the test deduplication by using contentRun and consolidating the width extraction logic, then replacing the hex-to-RGB parsing with the gookit library function, and sharing the true color SGR parsing with the color package. For the plumbing layer, I'm consolidating the three render-setup blocks into a helper, converting engine capture fields into return values, moving environment flag routing into a config method, using the SVG default font size constant, extracting a sanitized path constant, hoisting theme enumeration and data keys to the config, inlining fixture files in the test, removing stale task references, and verifying then deleting a dead code branch. Finally, I'm consolidating the Victor Mono metrics to a single source that the export and shot scripts both reference.\n\nFor the website tools, I'm updating the shot script to use execFile instead of exec, properly cleaning up temp files, and creating directories recursively. The segments plugin needs to drop groupLabel, href, and count from the global data, I'm removing stale comments scattered across multiple files, deriving the hardcoded 117 value on the homepage, sharing the CSS card recipe, and extracting a common helper for reading generated JSON. This is roughly 35 items total, which is substantial enough that I should delegate the implementation to cheaper models working in parallel.\n\nNow I'm planning how to split this across agents using isolated worktrees by area. I could assign the terminal hot path to one agent, the SVG package to another, plumbing and A1 fixes to a third, and website/tools plus A2 to a fourth. But there's overlap — some tasks touch multiple packages like src/color and src/svg, and the config/CLI/prompt areas have dependencies too. I'm running into conflicts where different agents would need to modify the same files.\n\nTo resolve this, I'm restructuring the assignments so one agent owns both terminal and the color export, another handles SVG but consumes that exported parser, a third takes CLI/prompt/config work, and the fourth handles website/tools. This creates a clear dependency chain where Agent 1 finishes first, then Agent 2 can proceed with its SVG work. Wave 1 agents can work in parallel on disjoint file sets, but Wave 2 gets tricky because the svg package work overlaps with cli config exports that Agent C is already touching. I'm thinking through whether to just collapse this into fewer, broader agent scopes to avoid the coordination overhead. Both Agent 3 and Agent 4 need to modify files in `src/cli`, so they'd conflict if run in parallel. The cleanest solution is to consolidate all the interdependent Go work—svg, cli, prompt, config, and the gradient file—into a single agent that runs sequentially after the terminal and website agents complete.\n\nActually, looking closer at the file changes: Agent T only touches a doc comment in `src/color/colors.go` while Agent G edits `src/color/gradient.go` and `src/svg/colors.go`—completely separate files. And T stays in the terminal directory otherwise. So the three could theoretically run in parallel on the same tree since their file sets don't overlap, but the real risk is both agents running `go build ./...` at the same time and seeing each other's incomplete changes, which would cause confusion. Using worktree isolation for each agent avoids that, though merging three worktrees afterward becomes manual work.\n\nGiven the interdependence and that I'm responsible for verification, I should run Agent W (website/tools—pure JS/CSS with zero Go overlap, safe in the main tree) and Agent T (terminal and the colors.go doc comment) in parallel first, then run Agent G afterward. Or I could try running all three in parallel in the main tree with explicit file ownership lists so each agent knows exactly what they can edit and reports anything outside their scope instead of making changes. The main hazard is concurrent builds—if T is mid-edit of a Go file when G tries to build, the build fails due to the inconsistent state.\n\nTo avoid that race condition, I could use git worktrees to isolate T and G's work, letting them build independently without interfering with each other. But that adds merge overhead since I'd need to cherry-pick or apply their changes back to the main tree. A simpler approach is to run T and G sequentially (T first since it's small) while W runs in parallel on the JS side, giving me two waves total instead of one. It's slower but eliminates the build race entirely.\n\nSince G has about 20 items across 4 packages, I'm thinking of splitting it into two agents: G1 handles the SVG and color gradient changes, while G2 tackles the CLI, prompt, and config updates. This keeps each agent's scope manageable and reduces the risk of sloppiness.\n\nThe tricky part is that G1's changes to the `svg.Encode` signature will break the call site in `src/cli/config_export_svg.go`, so G1 needs to fix that one line to keep the tree building. Then G2 can handle the rest of the CLI work. The final sequence is: W and T in parallel, then G1, then G2.\n\nI'm drafting precise prompts for each agent with exact file lists and verification steps — they'll run the full build, test, and lint suite from `src/`, and for terminal they'll confirm benchmarks stay the same. I'll have them skip commits so I can review and commit everything together.\n\nNow I'm launching W and T in parallel using Sonnet, and I'll give W the explicit findings from E1–E8 plus A2 to work from.","signature":"CAISq1MKhwEIEBgCKkATM5y7GkzAl+AaB6jb4Y3okaA5In/qukFXv/DPwlk9GBA+oeNGJ2W2NspDAF2tFX+VSJh5mUO8dQPj8ibM8Sl8Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDB4RJrpuo5PcB5VC6xoM6t3Uufy6t/vGuy7aIjAjzXpE2l0lKIMgNZvz/PV8dsIz6qmjmJYADUzOzMui3lRZQjAgfahBil4CUoQj4w8q0FHMSMTdjJa9Ys7cuvdfVZABWOOXl3NWNYD5ZFSp8GmJ+Em5QD7q11V95vSmuyLII+CVZKUnvMoKMfIADi7QfHPteR8EYyJY9v7C4tXgBGZOH94EMQq904H3ETZI97zddeOWqkOIuwPkuY7ZrPp8vEe7UCUoGkLFdpmds55MNLDxa/DuFPSf+bi2LzRMD8FOgNOrss+sjSkbq9D9cKRoKrW+9xKMgItY0cUskVwnlLFUCG0GNnrmLN1n9s7zBpGwq+RblCB6i3IjkzHmK6giHAz9yJf8Iz9cwcY+yhbsN2TuObFYrGIAn5Op+e1AY1e3Yqhep8LuFxXHzQ6CfeEIAGN2rvA4Pys3lJ0/6AOJ07Htnt0Fi/fo6hx9/JGkAIn5aGL2FjvD7amAthUNiewXZ1OShoDYEIyB+02IA11TWV/N4gxM53FHe8tJd5tNQ0hNobZhQ0qCRSoaC2nR1/0Lo0O3jVneFQv+lY/3Vxa8s51rDoHGrD74Tc1ioh9Q0QEfJblH5Vf1qaLq3ZZfrZOVarZxn8n+t6ToVOfkDVbzQfAWh2iuWMmi+KuVg+ejSmcNqTY9/kPAZ5yek7y4AxAfrUhordFid5Z6NMlHOWqMdtO04X2ROhTebN9mi7iEzOxyWH4BYF+/aCIxRW9UU8KhUaVMlq0QdS9FrLTdKqIlRruPDTN2uOUsQEVcJrJ4++IKKFJl25hK+Opwu9t9tT76fCuhq9KbWuQyBms6cdt26pHpwYbJrmea1qBkiF3fezAy/oqGYCxgsehg8fghsgrD95aQsI5qC/cIje1JjuzPzSoqJVkStSXypodQWBu5OpXIEtYudkzd0/6tUQn4iMs6Tchd3uEcQBGjwwwHiP96XrNwJ7ofzG6e96NzI/LmRLtvFACRx2KElK1h7KrOnKJxspEtt1aadDKfgTe8XESB18J6c6fPzLTZhTdsXx/tOjeOltmQInc3VwsqeVOAeuUjq5cyjvb2DSuwsmQi7KTLwNkWAbbd2mbKCfa56GQlJljlVsHV4yY+Cctw0alQ6pUFUkzU2yLuvbCRggXPb4IklhaYpj9K4COF34Iq0F+l27wmVh+fQDTS5oB7n/AaGUWZByL81R5iLlES4UM1/N90T7VcT6sJoeLKh1kxjXKxEl8aRsYLrXIUCsLLnSmunvF3Kcc3lR3jaCheJzK7atzmRRuTmoHzUUEVCgIafT9zFek1hNO3mHuxylDSzkiDqBLDOnBtIYT/Ql1gTXEGLmOPFQrc89o9Srkmae8MsCufVe1ZLbftMc5vl/8nBx2Q8Hk8eNK7sdXO/E+D0DH9uFn23r3eysla6ixfIMgyryim351Ci3YqJYjRCcwBIpJbV29zz5osR98bSQ6oHHpOucfZ+ebRUb7QGkplajyLhqqmE4XO6Y6gTiDKnoerczd4o5nqChGdlH5zCmEYSMxtWSJnMusedsEzBFVaVY2yrNfHn1qOcz71/yHLSBE1tcEL2kGJFl7yo3f1T3DQ/Iaek65UwtmGHop34bOIm77DzkpHC12HfcPL0uaWljVavT6alqdXLQTAkiH8608o5nxlRGsmqKRx05sDnSkuEu18F/O2TUBoB0z9pKs95SYxDxThXcdTaI/7teyHY2W4eXRq75HTrV6eQ9B6jsYAF7V4GOF4CXiRosOjLfFwHW8kQFiblSQLcia5s+FGjScTVCnocgP8J4MwC5Scb92rJJPME7R5EhPpe1KMF1wDT26bncRy8pgIKae3YkprxqArIMVxyOzs7lu3vIAMnCBcoy0CMWUZua3RdVFpVUKkSEYOU7iCes6A8Pyo9Y5VnzWH/uAvsFIgMsjlLaULtBsAc9mUq7wADK998woeCRI+M49RXahAbQLictHXPAmSE5l2BvSyyBx+r70qGDXvH3yT5G0HdBbRnh1tIQjgi+lbvT47xnX/0FR/M+r1xQhckp4kE0GP+48oswL6Wh07KYNW75CLflQD2C0ye01Hsj4KdDD2rAQD5GVZ+d2tFsWh5bHp9C3I3EuUMd4hXdZJgTgzclo2Tujee+q7/bRE7S5Raz3sWE4SPQlnUn1zc6IRrgAy2JswC5E7H1GHkRCsG+zlLIq15FE4t2xZDtKx807XB+YJC3pFnyNYQsUOV/6p/gbFhiPiSMFG6ouFyKkydY2I5VtKdUrWtW/qsvNtTjeYfQPxCxbe8Dg1HQBMpLgWWc+pyw7+CvUteQGHqvD6a5MmhPes5KO+3oM0au0xmvqIP1457DK4z8MBqls+DDsU6c8r1WL+0BdmCZy9Gw/4qg7XPb1l/h4JcNIp+3t+IGwFpxe48Z2xmp4j5TiCZDPScT6N3n0npgMIrRhmAZ5KInXT80GrQirH/ahGb9KuzAThl2vxrba4dsXkirjCyQTqLINkrNMq2d2pvY2ki3/GARB3sq6t0LgWUTdKabAoTMz02GMqOgqC2HrtLUGVPoHsbZH4dw++JkSPl8KRsQrVNl/4faVglXuxSufCiDF4+PTcDJArOWzSm/18yj4vlalpU2tdW38XNJFrAnVCT9nZCNUrNm+2jqxrAaInvQWOpRUCn31xrJqGdrQhojQaN+sBjn5LZK3D9DsOkHgpdPaDcxXQ7nUZMS67nMO4nuAw2nlzfdfOIQe2qoBJUlRu/fAYPqoRkm4KJeHaRSvxjFP/GgzKBCSK2u1DXVpR0PxPzGvLiy602B3BG1vkDfhBKjhsRUyI8dA8mWm6yCvD/J0GUxTN6nEv9WiWqnLEBfWXso2gr2hybmUe2FXpM8Da7wTnKrqkBZniIc4QElqbO2oinNchDyI1CZO7b2TxMjJZB1Oiuv7J8W51xks8Xdg7e/rCuYpQrtTZ7hxCAjZHu5xPVeWxrOgiuVPsiGJqx4vCkF6Yfhaq7tLHy5SlyDfxXzkrjPhbosyHspSu8lVDIkrmaCtF+bsiqJ7bgZJUiEtvyD09EAZ7dWnSuQd3NjjpT+SYUghW6chxV+1LORxT2QLkEXgRdWjECqIyo7cHXm5Et50Xhp2g0xAHDitQV/KuJXfnF1m1Qc6V59HfO81fJryMIKUJBSFjn3Uw3Xp1xZzwGj1bV8YKPK/OXMH3FoNX+jnfCRBUl+hw1ytZD4ibTtcW9U3zBV6GFmmIwdkJIuojJcq2xub7PQ7OWzUnPYQO2momsZBZIUIXHooYhdmF810vdoqY9EecVC5a2KK58oPbn2RdXDBnQBxfReWah/XDx/hgG8UmJJi/tAQ0Hhz3bVpll+R1rdAqrQ1WN8zYzWqRcJCkaM6K8CjYKnCkoWSOzvJVuYZvgVbyRgqWji5U1cS6xKUdcH6LoH7+rSCCwHU3haoVTucFKTpKu3I1i+KTVqMx1il5asIqOkbbTo2avwY8LVZ8qqAoEDXjN/XBsYepkI1c3GiSjMKZmphrPwJOPT61YdfrjB4vqBVWhXI3N5wYYCRD4pAG9KINYQ2rIhpLCZdkDN1eBImihMvnoDvyLhVk2Ed9SsPLP4fPi8XCOlQVgSq6BdPf2/osJPLX1eGjfQY1h2cpX5Bc7pHzYZvF6F2+cE6n6VvptnGIpajzfuCG7srgOHTAyy/ZBmDhVICtSOBHD7MItDyA1HwkuPkainFKtIcvlgSyeAnYkBKXhvOITPzu/eASNxYMWvjymeTA3MuvrqSnBdHr6MQkW5Ug4fujcsnsdml2nFCHtOcvnt8PgHBOaFNLn4/5ZsHE5I/yuyfK+jJHb40rp0sFHDA4WSWmLxoIoU0ywJb3tbF0Ip46ubaCw3KpZTzAb0nvHaQvw7foAl1jhHMr/vZTtr4T3OueCr2ITjd8sbtY8Cu8zuiWou7h3UTXpDOUsHdnILWqsU14ciptiDBPekIa0xzJtYgBczht2hHK2hk93CJ1xCCqm1rkg3vgMU5R2PhfOQLbqt/wJy+VA6AVPzYMk3/DwbHFHNNO3MeB9ijFY+fJ4qUusFU4COWoi4cczDm4ddjm9TvqYpzA5Y2KjqsvHDCoKsd9h5/4QZ555dkAeVP/mkWTUEQLK/PbclP7brIhQ8wUg+P1YNStAHSGv99pH4EAEwVnDULtY9xxe3Te8Mb5ZPdD4K6ARtf7h0FjQ3JP1CAR9Mt0myozYH23XrEAA52Q/R/O3WHiyzsIkeI05x66M1k1PsndLEBg4hertY9RC1VAABCJIY6AqGHpMoQ1rtW7jo0SfZD+a+BrQ6Yj6rL+zgWU8bvaw/MA+pAlVPlLXmlYi+kTxU4YWZhj0wd0G35vew/Zm3nqD2EvwCPhP+rWdTGdWfIWMQ60Az5CGQ4Q3f3gDAb0g6GtAPkS38jZMyijwW5X9BYQ9v8L4H94K8WSeb7JKvxWr5EwrCHahaMlpAFx/qZ9AozCfbUGg8FYD6I9meJsm8BofKK34POTy6niLz68o9JERCFYzgTeoOsp/gB3CcsAu5zEt4ykSAA4uOdPZW0+bMIjFUAVKg0mmljJKLhUgwgDrjmIYhjthRPKsu4EVaYi2u2O03nh1/HKhcJeBllIX1XrG17RjZhwqmxeZaKjp96i928bXeAU3IFHp97lySLrXGlcSlfuzlj/6pIVGV56Y+CASglNEyYXYpVuV2vS8fwACFSE5dar7s4X0T/L3II7Pmtd3YAHzG40A6NlMyDDcmdtV9A9OyUKzDXgzfX131OfDUabVLYEriuvBnJf3dSEWHbry9kn7zRf4kEJIb5Z5EOvAj+xeFfKZiF0B3HMRJvf8ReeRyoaoAStPe5G6jg4LWqu7ml4WzLiP/RDcvn0lg+Uoo9u6dsLXvggRKF8LhhPLgL+lNHDJ9Dj0cEi8SqsQ8JAKDZmCIRrydKYsl+/NJUk70ZOygBnklVEIiZqacXt+/WDpL2vL498ilgqNFkFfNe3JQfo2ERst0r78OiHTsXh31LlXt9JbrWDyl7DAGZpUlK2vwaUDsqHy75eW5s0aImkQYimbf/GHy2OpSMrQCoI26ztYGWpp2MzZNSYLubzRHkTl0Z5XyDp46jBtHxf5xPSEv2R+3c3josMaotPfGMQpyyLshsIdruI9C6sTXL9bGee19QWFcpoNggnmL9+GULMVhoNI0yM593Q8DwGXmKaAcgCG/SnmbtaRd/lz7uGtizIRL7y/OkCO28LHBphKGnwxLR4csng8BgsX2GOqrYMaXMImjOcYrr74gy5zx5QzHhU4R+zbMbg+W16ozY9yaT88ogNVcluj2Gnv1gflgviCqAFqIkxBYA523FPza6d8Kb/i2ZlpS4vOnQtmNz7149R5cRNEDCzimQ9VujxVECTQK4cuJemR58tK0LlVfuPxmPLzFSnSCyVtM5rUlb6hgGvzw5jEH34DIy2mvUNC6+8XDm4cHj2kLe+4EZaOdn58vG2C0LnDS2EHLKee8FjvHbFRRk8GB9VswrcuR4YNI/qjwE1a3b1oR+676Lc+3nG9/f3gjYvMypxkG/ITAO0vSJn/0qQ4s9LATs+XJOygnlPtoexnUcdfpck8HL+/sykt74p4k8kLkrolZHTOfsPB/TZI9OFviVvhYJ2PA23+kSQDVM2HcMnBQPmD3rJyqripthGhOBPWOQwGX/I1RCUw/HTRFlh59+6I83whl68EEHtacH0dkE9MyiD1kctVuHLQSW2Q+CqoQPCOgNG55WzsAY0j1sFSabJVa8MANhmWR/qhwDaRYorXl7eSCUznlag+i0+pa0bIPdvVhDRNpViBrQp9G3k09Fsepi1TVs5L4EMS6Nmzy4iqkS1ZSIbbqRoaMh751SrtbIwEqXFTvKZP8fCWu5jLPx37QHrA7Do+bWWZesH6G2CvI9LG90/Kda+PBPqk9XQfoB+a26t+NEWPM6ihDuJjlXdQJvPSc3inTwEPs0yQa17CdgSvmqsgFMbPhTUefhOkk7kyKRqHDpI5IS1oTA5g42Jrv6sbsinuWwkXMxBfdgteKfBPVFOT+l/hXpOCMmfk1TinivHocelZZ2hm9AmyI3g+7SmL53Fnl+d9EkSQr4KdhdW4zWZLFSGHYHVqOHeLKE5q0Q089nbIqCSxgGl/DuwxRMhO8YTUId7nza+W4DuigMmSFX8U0f+lpnQAze73SXhZbDLcK4dap0JNxYQcsG0rTiXLUHr3VQG1VdIiN492s0R/Urki3+qXwEjcfy6GTHGqTAfm6LosnC4x1/HcECEUZ4/XKSng5GlT53648jyovcvz2TzCLRmQuhCnFSWNzvRcnEstvJGihE+DC+Ljb7ykxgWWRB11Tu0FVi8aClXC0k4SxAv0x2u6e6GmirSpb9V2ZxmdxQOcPqxmn2OqCRL9qD5lwMUdjQUmSVfFmg8MPYLgnHVGWAEhis2vzNKlGFrTsd4kDJ1f42ZOYTZNuO0WRBN/Vv1zVKUNuMznXglu5IwLKJGSefzoKKSt+buanm8wr5eX1RC3uejmarPLtCI1nNNTI7IVLY6yQhGU4ls2/JckPEJbiF+V0MYRjBMbxx/tq1rJOE/51B+HYNybEmkX9ciiuRdBx2DBg4SB9P2UdToFRrU4NkmiMaCMdAzpHBFqopekCo/5M4Z1+GtQHX6Q4VcoIWn7kd8gEeLiifIgwr98Pf95+tOV3mLq5jm3zeYZCD11CHDvhJs5Y4M18FWTxIMt+b5yvOWeAMA80sVc5DVGqmN6CIu5fVoPV8C9zevnFfBX6xGXj+1NZrhNvSWt8/Xdj2MW+VMuQowVFw/3vG8vKMkm64xTxY7zIst76LHhhQxdRwMcmHS+U6H6+B398KrifF7UrUWerBfQGuLCErJWmZ/lxsJ7hTRhfc/4U+XVZVJNncyivBE4GqY7xzMY3Ylaik5N7uIeTQ3PPcUYtj/M5sET5MnuKgfF4MbiulAWKv6nElLSLi/mI21unttnwzvXY3fcpc/fiaYLHDc+Lgu+ZHzzOoA8Dv/9DED4n125kCFB903VOBeUTNuUiExtfYq/nVygonl5yLWurasxZuFG0vGTp0sTEUbOPwbk+6TIGBeNrH7aco85migtikGhsjL/naZmJGc8bHES8ApffXZuZJUpQPWj6iQKlarCea9BKTvGz3y+DBg5feXvGOdwu3oJSVTNvHHnon8ZRvp1nD3J3V7BGaJfnJdGA3xildUPqJhES/SeaCj2W26YuobLhg/QF6NaZlkSSDKPRDhoR3shKWc/lJEQk6Sh3wy2qPOCDCHyD9yoooT6pgwKJb1ttBAKj7SluXjgh6gu327qR2eRjm5eApIvaA+6a8FuAK5rxGdqphbpVmpagOVP+LFCMKeQ9Wnq5Z1gvduMOGNs3plvlCsXKVWs0E67VSb4fA2QHuhazQtFTW27YEiXHajUKry0eHtnxExYrgy0Ydb0QOTy3alP8VOW/B6RlVk6y9ReQnBi9JX6cJh7AwyFVgrDTlpCJxL84ufIMQpUqd2aBqqdb/r2KQ4xn/WClbJRqKz3NZM7lkCv5rgnueC++UPFoplrBJp76aI1NY17vT9wHyX9crKqBonzafyYjzADjRHnu20vQ1Y/xWwiwoXScCD1EISQWHGEbT+XO8puOJyLvXLLO1i4nduZSqPqgc4n810zA9Rj2ZgtYYXAJ0bVgYkdSExja6Eq7hlfTH684iJ2QK/+G2LbDwI5HLjGVIAERduZgiag8GIfdA1LIF6tY+q7BXa/EE7O2fHLPpMOAfTYQdEsgYuhlDCegzq1hT45ABwLpK9TTL6Np3ylaFVPW9P/o4dhZFmHnEB40cZEipHwqsNNo1wMIO0oBVIctGox9X6p5zl/dgia6Z5Ljj9sffvQeZhdfECPrvP3kGXu17ElgGjcC7eDhFt8BDt0YffPBxq+BoZJuX4nUablb+we+8ChIKYyeOrfw7SCpj0PiMYpnyEKosWyhAwLuMZA2LtIEAorjPJg3di0NsScoL2DMH1534r6L3NrUQ+br1Rkyzh1pKWqsjNKxVIFzYL47G6fGVTxGIv6A26MUrOuMK5PmxzlCLStmOLiQFwSnDNM99NL9CP8QB04ks2/YgW4GJDPZBCVwePbddv2SsUDXw7FDA76oLoqxoIzEk+IhPcnPIroP1q6u4k/6Al+X/NufLphKB3etRakl2ZRIXMI6mbXs43Ey3SFyhxeURglcAtaoMPSVNR+P+W+Vl9bie7Bpn5c2gT2sCgKCv7mUw1cNS2WwRTzJDGxjEovgMx/lgG/WhlrxTMLgjW6xCjjPbO1ybNLYsZ6vEZ5mAL1J3YcHVlh2VkPW4ow+ztyhHloN27hOq2cHk+c+EGfIanc3Fm8JI4y7GBTZtLO03eNljiCjtOWLXJb0kLV2OIRoja3NnOuaR9n+xDWRGpN/COoowotWWUHLwxA7Uez6UQ74iVg0kHrU5+AaXMrUIveDTKA4alvxDnbyCemZ7WgEH0x7AY3S0gCeqlS1vGSs/Nw45x3vafRrSPDGCpuScJsfgfQKTidK4ct47EgNDSANThLHbOLR7orZeeHrgTceGsX+V5bz9bDmOK8GseXV7kBP4PGb180sIAy/nQGY/wa1yqouEG2NeicJfT9cGHpduriore/Vi6slx6Mcfz85a6bKvMk74+5jlX/kv8C4s98rE1J7wUMe9KDZrC/io52dfpVf2995FzTt2V+IBi1p9HU7Er28BsYQW3STI4Mwv+A2DCO7//91Mcl21zJm0q1ZZvW6DSKPgWs5XZ5Ply6jZaSswh7zWAmxZD7yAi/h9IDPlkiSWdW6UdoQmGhQWIZR4QT2xH+GlFflxbDQBVmraFvYSno5ZfsKCkhghxpwTKane6QFauTEHkgnCkpFp8LYxQb+L6nFID8SHpuLYyf5FPBGGbM7xtssVD5Bi744YLyKgtNzLnpAVpL7A09TrgOGkxY4YHCJPOHkxIRyw2xfyFPCqDWiESW6dq1oMa0O5MmOTg771Go3jUzlO662tfb3rOkyEwdze9XeKs9vjdgGray93I9R3sLYglCdBOURUBn0Y9ZBeoLeMMKrP1rpcUNDJaY0gxtlQhPjMoYRnNyXW57Yyvle5kWhyekcqs1hivA2ykhMq34yZPMzgMXCXietuiRyRhBzSpZxxeVMMpJZObdsXEI+UJtpBtAycI21i/p+dUrJrftZ83KbAecycm/HnWzu82I75A457dkQqf1cJ7LEzPPN8Q9fnr+VEbulZ2QW4go9ae8hAASLFeIYoPHsLVBZ9X/3i1kCeoc9THJCecyZbdQwyNQ1hXcJWsiWzOpzjBGFtGCzHXFP4OVc11Rtxgd1hXicbX5ReSPlfCgFc6XDO5wY5oZj1FDaPZSznxaS0kPWfmHjMXWC1Y8jVzj+cNL7FzG9i1SJXQXOlil4t0cuklNF8f/zt8ROWV8BkoMsxs1dOkUVr68ySxJ2v5awUVwaC/DLe6fJlLfXH9fjEVdrNsVmrQ8AOJjkKEVdBWGdJkj0UH3FwQ58Rn+mGsnYtxIWfd0JYoFLMkZCkWQpshv0607o7E7eXOzynOP/RZlVitArZJT9flqQ384a6fiCfVfAPyzqYB5bloF3f6Gkh7rqQtwsjmdsLVXK7A8wMMGVBfgsbjsSXnWH350RK+fL8VXCqJAla7xdFBUbDnRlIaZVMDg7k0A8x3klaI3AhiRjlFFKg1XusOp92aBpqwBFrjeB32WcPaRvppZxRBon6YmQ1IIgtvN7XCgL2fSrhjozLTJVDls+pxTzKdOKN9aP0OWqTICwl8wNIA9ws1dXve4u4OG7fjZXwamJpa33/Ink8xHjyWYWPMrBniK4hxGVSRsgkM2dElAOSd3/JNC4bZn5Z4n8Q3NUWmKn1BAw8reobLNeWRPWpT6g6KeXu9gus7iT1i3XyKfcRAaW9q16zFC5mohmbm3X6ItH870AVAWbV93HD3jjzWAds2itP4d01UQtmH/iTV6NU6kUjyaV7yOeVGgBnitBbtsr4ZQck3DxctUGenuVNRaAoBknf5S2RrPAxP7zkeylFOqMfgooa53wcKWoiRHP9oXN3E9fBh9hbEt/l1+PpmQBmOZO5xgvvcPDofeUhKuegoOnFwNJ7HtTWe/h/O67KNfAoDimHU1f9KmtL60YCZaJZPjlI7fUBOk8svfXWyBHsgI7bEzaX/N7JfH2D4cK0UxYGv4kXrmLKuzOKQddkt7qt8zs6E7KmkaFheuQuICiDVsNmv8T/hXkQBMRah8BeEgGXqVnjlSNc9jar8hJRJE/DhrQa6J50IHr0CZRyz485eJo9l/7OVjXsoW0jh0RI0zdhxIJqeAUXsryjfI26xexBoYdjThoopToSDNv/js9pjJdMxp1bS/RfxBcOOEAoISi86J7FRhvaPM7uwYZ4J9+l4iYgt9q6DqE+lSFHdXByFOmG3jAXljSlllxIhyWg/Sol0YJOx/Ic1jYVu+oZtJvWq2haA5BievxqpOBYj+omWt3HJ1ZMKesV2MvSGBkBMmzsvKmj6c+vBTTM25En/ESq/bHRXCf/sle4QJID32b3e4MTnNmhEF8oTzvXOGh9bbYogOTrlZS4eNb8YKXiSmYgOBcN/4x/Z/XJ6M3Gjoroo+sOEemNQndu3S4nY2v/HBIPJF6k04gYJMky635L06AighS6kKVWoSBNLehimEgB/RF0laXVOY7+aJ3vqE1IwGHBS5iFpomIMQEDUEh10it170CIIdPDMLAqmEM+WxNKu6w6VHsugatHKOxiYsPnvEXt/b/sD/A4ai79tyzkV1pbKqc8Q5zQTVHTMQ2BbIzbfor01goaKhDsqufXLnUi85lI5KLWwvbvyI1fIn/F8EVhLFWJSYsWWYafqSBQLHF04vhrApDwR58NMsGiApoMb9yu82lP2PR3toyT8q6LH7ZzdH78aabn9oYSa2QPaQ9ykbfXrCkC1gxE8w1Owpqj6OLnG7fd+ttF/HXL0fZa4Tjot6E0HvPeG5nSJH6LoaVGz2HVnp9//NYFxzUXBm/+7i85JgQmYetVVGFE5BD+1M+iCuAdAQ8kP8KzgJ7vHjGv6Kr7gpIyoiaO+Qy68YQbwuJ1U1ftodL0zACFx1GZpw8p9oOBR/jz9Oqqhvd9D+3YjTm20wtkMSOg4dMalkhIp6hKLPvpdZmkpDTZibheW+ww2o5r0N96/b2f2lorwXifWhxfBx1ENArKOkPgGUKeFFKZ+T6gILUA9nojjTTCagM1mZALFQloDe2qvLVzTsox1FzbEhPP+sWgVxnfNo5Eh0VTY7ZZZo/AEXK8OE552ti9EsjrKOQWO2BB0GDZj0noTZZw2WlUoJLZj9jHyJA9F87dX4n3yxp/Twa4HgIqpvXEHzfj/X6OTpLmoc+yBMt6e6LaRZuX7vbuq6308LCGLj9VYjC1HZ/+kAhXjvhOqafMPMGBiivrajzhBYUv7H6uiyWrhHqvN+a9lRmGCYAQha2dKmuTe4MQvQWC+4mU0FjfuVRbbr9PJ1+ZEglNcNwewiH95DTmVydFpzpqVS2F/RDPjSSOb89B3os/a0KkyNPus021kegW/HL9uZm6YdXOyxM2WCAC2oFl1ztdcWsdiIDkjUdYCAya+6IucDrA+lE9xCGFm2e5L+pA9i45vexFe5FXIXhesf9Gdebm1J8S0OXaEhKjNepbCc8Z5FgSH2MTbo4Hw7+3wX2k+BiZMCFNSJkq4EXWiKHWaokBVHd/+qKnqUBLilYfyoIPDvwmXYxk341YcoXL+eEtx+G+5whPXyg0h8BkmJldItME3NQzjphe9yDj3Sp9YKYB1JSpHa/1v1yGHE5W8n/DO01hT4qhyErijnDUYix5zubGAktsLebHalJa1A3c6O8j4y6IqR8u4ClenFNZ78rqUkv+M6H9BUJdt83igG1Dm+kTKJbpp3ijLbfKVHZSF9utWzjC9mm3Of6U0JnkbwateEfHkkDRi+w1VhovdG4cAu3WGDgH/XgnChNuMB/YjPrfEDkUuZo10e8Y0/0mTFcBAT09REkaIV3xg4v3WahVn4P0gD0iZjRZ22MenS4AMk3rEHXNeWGy5elfuOUvKovLH4ovd3EyPT7+SKrJcjdCFUjucQDQz+zu+Zde3QWWHNITemTu+POB4HTnHaMd4jtNDGB51sqbzhMoh+exeoWMCU3GAgkFWOD3xVd7HXa8E5uWipz8/RwwPlYRotQrbiFUALO9q6yaQbXDHoAbwwUPi/+sxqw3gZWUL50zphUHjLT0JKVpbRBC77jAeIma1KxM/koHBUb6M++Q1zQEbQ3jj2gzZFzvtkipIEMW93t8glWfUAA3Yjq+xDIA7f5fXEzwC9HPQpyhyM76U6Vw/DLJDHNHr4WGPw4qwsTXRSidWcxZF9jQS0LrOJeaqZKKwskdcl6j8cGoGkCKHQOJbiQZNvh/dYXos2eN8BjZHuyzciRI/+gnWhxrIxieePP8MIJUz/GAAJ5LoJSS0wwhmi98FUsBUjrjgYkQu2Hin/cn0N/uLrSJbgGyUfbYWJeW0YU/wqzTsDCTaE7fIFDdn0C5fHIgvf3Dau++NgeRUIEFvoIqEP7ZOwAFqmggWEHziY64LRMTE9oo4ez84wJCVGxrMFi0L2qkqJEe0Wepx8oR+dBmCzm9Joo52EiwXxtNwX2gfXzqjsFP5Wj75frcxot6ycIrxenX1UqVlG6ad2OgP4d6Y4bPJLEB7hlbFZP7fzbE6a3F6edGZODZ0ig6lLs1UQ9K4xwQE4698QeWYesmsniKBKOb251d3z+G9C/MGGN6MnCx3Ib9L56BuNHvstxcFKgZwZZ1vvtifgMoZpRTP/o6HCbnP3dDbEbRIaBBGqaSHEPQ3gh8pwIgqfv2Gjas7cTTOpLv7ogS4ArqgfU3I2xYbnWPGsWCfaR9ktnfyedccJHE93dZd6hohLC2K2PpnruLntVT1cTU6srfHuqxT+Qep2PQPJYU885PEChH+6VWChsc3kTPP2JUN83rFy9HhY1rcRpZNcwszbViKWQaMoZ0SZcOctY5m0hg66dIxI6wa0V92sKWlhR72Ego91L1tzsyUp8Cl6WF3wKTe6Im2V97kPl0Wx2rGVnv6ISCP+aeOwQem3Xucg7J9xQn0vOODHQphckh958M6HEvnLmkQmzH3GD447g/ZUM7AichNkUtO0z1IC2uQBHx6lfcV/M6rXhv7z0hFGYHAhiNZ7xpM2HMKU518MLXLiYpuL4T2luZwRYHBMlvw727bZjBW/Oh91phlN2l6rnjWZGxozkCN5gEcO8jH4yKChG++LPe4W0vthUvR4wFRmCJG+rw3PKHWhpFc6fbbodZcZEQlHfv34zGwOmEK4WeNKLu2jpInnFHnNoIx6fqGE6RaNREzk7j93GtNG8caXTq1kEZxdGl6toNBnCOYnP9vOQiSdq1M+t+3qX6+H3tbKOKI+ZNn2nMXKCc0mhLMsjjurJUgE+Jh/OXiZ9s7UYxlE26z/jgs1TC/3KVFgxPK3p3DwXKtcXaq9d+PafIU4BH8O+8QAXkn3yuPtIxtnmfilQ41Pe+8EnaY/txTf00vX83IT3AfEvXXryTxVV64DyAA0SJg61PdRuolj6t/l0OqUVogbbabfK6S3r/of8IFbjhMlD3AOk8+OWxmBSwcrdGR6xGjXrT/9Rq8bhHqq+p6EVmIBV5vwCpw1Mhj5Nm+kcpVemDGpsQAjNLl1H2qlx+GpmWFF0JuuusMx7IYqKhpeJfUOztSRu19/8j1zegIGbUSvpkY19MNgtYM91Hzx6Lqb7zi/ds87nUZy6h+caHVg93YgM7vXWRaIyjOg4pIojnlli390aAZYBP+nXIG+PTO67Y0vVW1swefyL3Mw+AVszTDHGf2sI+yoyCjm8i1QB8XNAYUAOOs2hxy5MoVJQAnl5agXKO/A1BliaDWpkMEg8rCcL+9NoqTw60V3AyeRN2mTAQZuIv5DsH2rcCGe1e6S0ZwBZOHVjXagUJiWYoNAfXfSfKJY2iQSIJG1hKsNF1aCwzYpXmfJG89MYzEB3J78xgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":92,"cache_read_input_tokens":364329,"output_tokens":11107,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":92,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":11107,"cache_read_input_tokens":364329,"cache_creation_input_tokens":92,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":92},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuvHo7KFoEDgi6DdJnb","type":"assistant","uuid":"c1b7412b-fd4c-43a0-994b-c6d00daa2d0b","timestamp":"2026-07-28T05:36:57.957Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c1b7412b-fd4c-43a0-994b-c6d00daa2d0b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuvLwcaD93twmJ8w7BE","type":"message","role":"assistant","content":[{"type":"text","text":"Applying everything except `GradientCellsRGB`. Sequencing the Go work to avoid build races: website/tooling and the terminal hot path can run now in parallel (disjoint file sets), then `src/svg`, then the CLI/prompt plumbing that consumes its changed signatures."}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":92,"cache_read_input_tokens":364329,"output_tokens":11107,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":92,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":11107,"cache_read_input_tokens":364329,"cache_creation_input_tokens":92,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":92},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuvHo7KFoEDgi6DdJnb","type":"assistant","uuid":"272fde6c-19ec-4a9b-a8ba-046e49052973","timestamp":"2026-07-28T05:36:58.027Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"272fde6c-19ec-4a9b-a8ba-046e49052973","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuvLwcaD93twmJ8w7BE","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01VqmHyWnGfsyQKzqZTjY6u2","name":"Agent","input":{"description":"Apply website and tooling cleanups","model":"sonnet","subagent_type":"general-purpose","prompt":"Repo: D:\\oh-my-posh, branch `next`. Apply a reviewed list of cleanups to the website and developer tooling. JavaScript/CSS/MDX only.\n\nYOU MAY ONLY EDIT FILES UNDER `website/` AND `tools/`. Other agents are concurrently editing Go files under `src/` — do not read-modify-write anything there, and ignore any Go build errors you see; they are not yours. If a task seems to need a `src/` change, stop and report it instead.\n\nDo NOT git commit. Leave changes in the working tree.\n\nStyle: match the surrounding code. This repo writes long explanatory comments that record *why* a decision was made and which approaches were tried and reverted. When you change code that a comment describes, UPDATE the comment to match — never delete an explanatory comment as noise, and never leave one describing the old behaviour.\n\nTasks, in order:\n\n1. FIX A REAL BUG — `tools/svg-png-compare/compare.mjs`. `ensureFont()` (~line 170) is synchronous, but its no-cache path calls the async `downloadAndExtractFont()` (~line 197) without awaiting it. `main()` then immediately does `fs.readFileSync(FONT_PATH)` (~line 514), so on a machine with no cached Hack.zip this throws ENOENT plus an unhandled rejection. Make `ensureFont` async and await it at the call site. `tools/svg-png-compare/shot.mjs` already has the correct async shape — use it as the reference.\n\n2. SINGLE SOURCE OF TRUTH FOR VICTOR MONO'S METRICS. The font family name plus four metrics (cellWidth 0.5455, lineHeight 1.6909, fillAscent 1.0982, fillDescent 0.3255) are duplicated as literals in `website/export_themes.mjs` (in `CONFIG`, ~lines 29-53, with the full derivation comments) and `tools/svg-png-compare/shot.mjs` (the `WEBSITE` object, ~lines 46-58, with a paraphrase of the same comments).\n Export them once from `export_themes.mjs` — e.g. `export const VICTOR_MONO = {...}` consumed by `CONFIG` — and have `shot.mjs` import them. Importing is safe: `export_themes.mjs` guards `main()` behind `if (process.argv[1] === __filename)` and already has an export block. Keep `WEBSITE.data` and `WEBSITE.fontPath` local to shot.mjs — those are path concerns, not font facts. The derivation comments should live once, next to the exported values.\n\n3. SHARED MODULE FOR THE HARNESS. `tools/svg-png-compare/compare.mjs` and `shot.mjs` duplicate ~90 lines: the `REPO_ROOT`/`THEMES_DIR`/`DATA_FIXTURE`/`BIN_DIR`/`OUT_DIR`/`EXE`/`OLD_BIN`/`NEW_BIN` constants, `run()`, `ensureFont()` (identical except which zip entry is extracted — plain vs Mono variant, a deliberate documented difference), and `DEVICE_SCALE_FACTOR = 3` with its rationale comment.\n Create `tools/svg-png-compare/common.mjs` (sibling to the existing `zip.mjs`, which set the shared-module precedent) holding these, with `ensureFont(entryName, destPath)` parameterised on the zip entry. Both files import from it.\n DO NOT merge the two `rasterize` functions. Their difference — compare.mjs forces the SVG into the PNG's box with `preserveAspectRatio=\"none\"`, shot.mjs renders at natural 1:1 size — is the entire documented reason shot.mjs exists.\n\n4. `website/export_themes.mjs` EXPORT LOOP:\n a. Replace `exec` + hand-joined command string with `execFile(bin, argsArray)` (promisified). It currently spawns a shell for each of 124 invocations and forces manual quoting — including the `POSH_BIN` quoting (~line 201) and `--font-family=\"…\"` (~line 208), both of which should disappear. `OMP_BIN` must stop being pre-quoted. `tools/svg-png-compare/shot.mjs` already builds an args array for the same CLI; mirror that shape.\n b. The trending temp data file written in `buildDataFileWithTrending()` (~lines 185-190) is never unlinked — one file leaks per build. Delete it after the export loop finishes. Note it is only a temp file when trending data was fetched; when the fetch fails the function returns `CONFIG.SEGMENT_DATA_FILE`, which must NOT be deleted.\n c. `ensureDirectories()` (~lines 305-313) is an access/catch/mkdir dance; `mkdir(dir, { recursive: true })` is idempotent and does the job alone.\n\n5. TRIM THE SEGMENTS PLUGIN'S GLOBAL DATA — `website/plugins/segments/index.js`. Its payload rides in the shared chunk on every page. Remove three kinds of fat:\n - `groupLabel` (~line 254): 117 copies of a string derivable from `group` plus the label map. The `groups[]` array already ships `label`; derive in the component instead.\n - `href` (~line 255): 117 copies of `/docs/segments/${group}/${id}`, reconstructible from two fields already present.\n - `count` on the emitted `groups`/`authTiers` entries (~lines 320, 334): VERIFIED UNUSED by both consumers — `website/src/components/SegmentCatalog/index.js` recomputes live counts (`groupCount`, `authCount`, `nerdFontCount`) and `website/src/pages/segments.js` only reads `total`. The counts are still needed internally for sorting/filtering inside `computeGroups`/`computeAuthTiers`; just drop them from the emitted objects.\n Update `SegmentCatalog/index.js` and `segments.js` for the removed fields.\n\n6. SHARED JSON READER. `website/plugins/segments/index.js`'s `readRegistry` (~lines 24-45) and `website/plugins/themes/index.js`'s `validateManifest` (~lines 27-52) share the same exists/read/parse/is-array/duplicate-check scaffold (~40 lines). Extract a small `readGeneratedJson(path, pluginName)` helper under `website/plugins/` used by both.\n\n7. STALE COMMENTS AND DEAD CODE:\n - `website/plugins/themes/index.js` (~lines 12-15) claims `` loads themes.json \"via a Loadable() dynamic import … resolves synchronously during SSR\". The component uses a plain static `import` and its own comment (`website/src/components/ThemeGallery/index.js` ~lines 26-37) explicitly says \"no Loadable/preloadAll trick\". Rewrite the plugin comment to describe the static import that webpack code-splits into the page chunk. This one is actively misleading — fix it carefully rather than deleting it.\n - `website/export_themes.mjs` (~line 225) and `website/plugins/segments/index.js` (~line 5) both cite \"the phase plan\", a document that does not exist in this repo. Inline the one-line reason each was making, drop the pointer.\n - `website/src/pages/index.js` (~line 159): `features && features.length > 0 &&` guards a module-level const literal of length 3 — dead condition. Also the `` description={`${siteConfig.tagline}`} `` template wrapper (~line 90) and the `siteConfig = {}` default (~line 67) are vestigial.\n - `website/src/components/SegmentCatalog/index.js` (~line 59): the comment says \"the server's unfiltered 117\", baking a count into prose. Say \"unfiltered list\".\n - `tools/svg-png-compare/zip.mjs` (~lines 6-7), `compare.mjs` (~line 169) and `shot.mjs` (~line 70) cite `cli/image/image.go` line numbers for a file deleted on this branch. It still exists inside the retired-renderer worktree these tools build against, so the references are valid there — add a \"(in the PNG worktree)\" qualifier so a reader does not grep the live tree for it.\n\n8. STOP HARDCODING THE SEGMENT COUNT. \"117\" appears in `website/src/pages/index.js` (~line 32, a feature card) and `website/docs/segments/overview.mdx` (~line 11). The segments plugin already computes `total` at build time and it is registered unconditionally in `docusaurus.config.js`. Have the homepage read `usePluginData('oh-my-posh-segments').total`; for the MDX, use a small component that does the same.\n The count also appears in `website/static/llms.txt`, `website/static/llms-full.txt`, `website/static/skill.md` and `website/static/skills/ohmyposh/SKILL.md`. Those are static assets that cannot consume plugin data. LEAVE THEIR CONTENT ALONE, but add a build-time check in the segments plugin that fails loudly if the number in those files disagrees with the computed `total`, so they cannot silently drift. Keep the check simple and its failure message actionable.\n\n9. CSS — the card surface recipe is duplicated: `website/src/pages/styles.module.css` (~lines 76-86, `.card`) and `website/src/components/SegmentCatalog/styles.module.css` (~lines 100-115, `.item`) both spell out a 1px `--ifm-color-emphasis-200` border, a radius, an `--ifm-color-emphasis-100` background and a `[data-theme='dark']` override to `--ifm-background-surface-color`. The radii differ (9px vs 8px). Hoist shared `--omp-card-*` custom properties (and a radius pair) into `website/src/css/custom.css` and have both use them. The dark-mode override is the piece most likely to drift, so it is the important one to unify. Pick one radius and say which in a comment.\n\nVERIFICATION (run these, report results):\n- `cd website && npx eslint . 2>&1 | tail -20` if eslint is configured; otherwise `node --check` each changed .mjs/.js file.\n- `cd website && OMP_BIN= npm run themes` must still export 124 themes. A built binary may not exist while other agents work; if `npm run themes` cannot run, say so explicitly rather than claiming success.\n- `cd tools/svg-png-compare && node shot.mjs --website --svg-only glowsticks` if a binary is available.\n- `cd website && npm run build` is the real gate for the plugin/component changes. Run it. It is slow; be patient. Report the outcome honestly, including any warning you introduced.\n\nReport: what you changed, file by file, with the verification output. Flag anything you chose NOT to do and why. Do not claim a check passed if you did not run it."},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":92,"cache_read_input_tokens":364329,"output_tokens":11107,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":92,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":11107,"cache_read_input_tokens":364329,"cache_creation_input_tokens":92,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":92},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuvHo7KFoEDgi6DdJnb","type":"assistant","uuid":"0c6f0b78-f0db-46af-bab3-768805384ccf","timestamp":"2026-07-28T05:37:42.380Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0c6f0b78-f0db-46af-bab3-768805384ccf","isSidechain":false,"promptId":"fdc31961-523a-4174-825c-ba786fcbc29f","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01VqmHyWnGfsyQKzqZTjY6u2","type":"tool_result","content":[{"type":"text","text":"Async agent launched successfully. (This tool result is internal metadata — never quote or paste any part of it, including the agentId below, into a user-facing reply.)\nagentId: a965af10aa06d9569 (internal ID - do not mention to user. Use SendMessage with to: 'a965af10aa06d9569', summary: '<5-10 word recap>' to continue this agent.)\nThe agent is working in the background. You will be notified automatically when it completes. You know nothing about its results until that notification arrives — do not report, assume, or predict them; continue other work or respond to the user in the meantime.\nDo not duplicate this agent's work — avoid working with the same files or topics it is using.\noutput_file: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a965af10aa06d9569.output\nDo NOT Read or tail this file via the shell tool — it is the full subagent JSONL transcript and reading it will overflow your context. If the user asks for progress, say the agent is still running; you'll get a completion notification."}]}]},"uuid":"3060d5a3-cb82-4213-917f-a85837df0049","timestamp":"2026-07-28T05:37:45.883Z","toolUseResult":{"isAsync":true,"status":"async_launched","agentId":"a965af10aa06d9569","description":"Apply website and tooling cleanups","resolvedModel":"claude-sonnet-5","prompt":"Repo: D:\\oh-my-posh, branch `next`. Apply a reviewed list of cleanups to the website and developer tooling. JavaScript/CSS/MDX only.\n\nYOU MAY ONLY EDIT FILES UNDER `website/` AND `tools/`. Other agents are concurrently editing Go files under `src/` — do not read-modify-write anything there, and ignore any Go build errors you see; they are not yours. If a task seems to need a `src/` change, stop and report it instead.\n\nDo NOT git commit. Leave changes in the working tree.\n\nStyle: match the surrounding code. This repo writes long explanatory comments that record *why* a decision was made and which approaches were tried and reverted. When you change code that a comment describes, UPDATE the comment to match — never delete an explanatory comment as noise, and never leave one describing the old behaviour.\n\nTasks, in order:\n\n1. FIX A REAL BUG — `tools/svg-png-compare/compare.mjs`. `ensureFont()` (~line 170) is synchronous, but its no-cache path calls the async `downloadAndExtractFont()` (~line 197) without awaiting it. `main()` then immediately does `fs.readFileSync(FONT_PATH)` (~line 514), so on a machine with no cached Hack.zip this throws ENOENT plus an unhandled rejection. Make `ensureFont` async and await it at the call site. `tools/svg-png-compare/shot.mjs` already has the correct async shape — use it as the reference.\n\n2. SINGLE SOURCE OF TRUTH FOR VICTOR MONO'S METRICS. The font family name plus four metrics (cellWidth 0.5455, lineHeight 1.6909, fillAscent 1.0982, fillDescent 0.3255) are duplicated as literals in `website/export_themes.mjs` (in `CONFIG`, ~lines 29-53, with the full derivation comments) and `tools/svg-png-compare/shot.mjs` (the `WEBSITE` object, ~lines 46-58, with a paraphrase of the same comments).\n Export them once from `export_themes.mjs` — e.g. `export const VICTOR_MONO = {...}` consumed by `CONFIG` — and have `shot.mjs` import them. Importing is safe: `export_themes.mjs` guards `main()` behind `if (process.argv[1] === __filename)` and already has an export block. Keep `WEBSITE.data` and `WEBSITE.fontPath` local to shot.mjs — those are path concerns, not font facts. The derivation comments should live once, next to the exported values.\n\n3. SHARED MODULE FOR THE HARNESS. `tools/svg-png-compare/compare.mjs` and `shot.mjs` duplicate ~90 lines: the `REPO_ROOT`/`THEMES_DIR`/`DATA_FIXTURE`/`BIN_DIR`/`OUT_DIR`/`EXE`/`OLD_BIN`/`NEW_BIN` constants, `run()`, `ensureFont()` (identical except which zip entry is extracted — plain vs Mono variant, a deliberate documented difference), and `DEVICE_SCALE_FACTOR = 3` with its rationale comment.\n Create `tools/svg-png-compare/common.mjs` (sibling to the existing `zip.mjs`, which set the shared-module precedent) holding these, with `ensureFont(entryName, destPath)` parameterised on the zip entry. Both files import from it.\n DO NOT merge the two `rasterize` functions. Their difference — compare.mjs forces the SVG into the PNG's box with `preserveAspectRatio=\"none\"`, shot.mjs renders at natural 1:1 size — is the entire documented reason shot.mjs exists.\n\n4. `website/export_themes.mjs` EXPORT LOOP:\n a. Replace `exec` + hand-joined command string with `execFile(bin, argsArray)` (promisified). It currently spawns a shell for each of 124 invocations and forces manual quoting — including the `POSH_BIN` quoting (~line 201) and `--font-family=\"…\"` (~line 208), both of which should disappear. `OMP_BIN` must stop being pre-quoted. `tools/svg-png-compare/shot.mjs` already builds an args array for the same CLI; mirror that shape.\n b. The trending temp data file written in `buildDataFileWithTrending()` (~lines 185-190) is never unlinked — one file leaks per build. Delete it after the export loop finishes. Note it is only a temp file when trending data was fetched; when the fetch fails the function returns `CONFIG.SEGMENT_DATA_FILE`, which must NOT be deleted.\n c. `ensureDirectories()` (~lines 305-313) is an access/catch/mkdir dance; `mkdir(dir, { recursive: true })` is idempotent and does the job alone.\n\n5. TRIM THE SEGMENTS PLUGIN'S GLOBAL DATA — `website/plugins/segments/index.js`. Its payload rides in the shared chunk on every page. Remove three kinds of fat:\n - `groupLabel` (~line 254): 117 copies of a string derivable from `group` plus the label map. The `groups[]` array already ships `label`; derive in the component instead.\n - `href` (~line 255): 117 copies of `/docs/segments/${group}/${id}`, reconstructible from two fields already present.\n - `count` on the emitted `groups`/`authTiers` entries (~lines 320, 334): VERIFIED UNUSED by both consumers — `website/src/components/SegmentCatalog/index.js` recomputes live counts (`groupCount`, `authCount`, `nerdFontCount`) and `website/src/pages/segments.js` only reads `total`. The counts are still needed internally for sorting/filtering inside `computeGroups`/`computeAuthTiers`; just drop them from the emitted objects.\n Update `SegmentCatalog/index.js` and `segments.js` for the removed fields.\n\n6. SHARED JSON READER. `website/plugins/segments/index.js`'s `readRegistry` (~lines 24-45) and `website/plugins/themes/index.js`'s `validateManifest` (~lines 27-52) share the same exists/read/parse/is-array/duplicate-check scaffold (~40 lines). Extract a small `readGeneratedJson(path, pluginName)` helper under `website/plugins/` used by both.\n\n7. STALE COMMENTS AND DEAD CODE:\n - `website/plugins/themes/index.js` (~lines 12-15) claims `` loads themes.json \"via a Loadable() dynamic import … resolves synchronously during SSR\". The component uses a plain static `import` and its own comment (`website/src/components/ThemeGallery/index.js` ~lines 26-37) explicitly says \"no Loadable/preloadAll trick\". Rewrite the plugin comment to describe the static import that webpack code-splits into the page chunk. This one is actively misleading — fix it carefully rather than deleting it.\n - `website/export_themes.mjs` (~line 225) and `website/plugins/segments/index.js` (~line 5) both cite \"the phase plan\", a document that does not exist in this repo. Inline the one-line reason each was making, drop the pointer.\n - `website/src/pages/index.js` (~line 159): `features && features.length > 0 &&` guards a module-level const literal of length 3 — dead condition. Also the `` description={`${siteConfig.tagline}`} `` template wrapper (~line 90) and the `siteConfig = {}` default (~line 67) are vestigial.\n - `website/src/components/SegmentCatalog/index.js` (~line 59): the comment says \"the server's unfiltered 117\", baking a count into prose. Say \"unfiltered list\".\n - `tools/svg-png-compare/zip.mjs` (~lines 6-7), `compare.mjs` (~line 169) and `shot.mjs` (~line 70) cite `cli/image/image.go` line numbers for a file deleted on this branch. It still exists inside the retired-renderer worktree these tools build against, so the references are valid there — add a \"(in the PNG worktree)\" qualifier so a reader does not grep the live tree for it.\n\n8. STOP HARDCODING THE SEGMENT COUNT. \"117\" appears in `website/src/pages/index.js` (~line 32, a feature card) and `website/docs/segments/overview.mdx` (~line 11). The segments plugin already computes `total` at build time and it is registered unconditionally in `docusaurus.config.js`. Have the homepage read `usePluginData('oh-my-posh-segments').total`; for the MDX, use a small component that does the same.\n The count also appears in `website/static/llms.txt`, `website/static/llms-full.txt`, `website/static/skill.md` and `website/static/skills/ohmyposh/SKILL.md`. Those are static assets that cannot consume plugin data. LEAVE THEIR CONTENT ALONE, but add a build-time check in the segments plugin that fails loudly if the number in those files disagrees with the computed `total`, so they cannot silently drift. Keep the check simple and its failure message actionable.\n\n9. CSS — the card surface recipe is duplicated: `website/src/pages/styles.module.css` (~lines 76-86, `.card`) and `website/src/components/SegmentCatalog/styles.module.css` (~lines 100-115, `.item`) both spell out a 1px `--ifm-color-emphasis-200` border, a radius, an `--ifm-color-emphasis-100` background and a `[data-theme='dark']` override to `--ifm-background-surface-color`. The radii differ (9px vs 8px). Hoist shared `--omp-card-*` custom properties (and a radius pair) into `website/src/css/custom.css` and have both use them. The dark-mode override is the piece most likely to drift, so it is the important one to unify. Pick one radius and say which in a comment.\n\nVERIFICATION (run these, report results):\n- `cd website && npx eslint . 2>&1 | tail -20` if eslint is configured; otherwise `node --check` each changed .mjs/.js file.\n- `cd website && OMP_BIN= npm run themes` must still export 124 themes. A built binary may not exist while other agents work; if `npm run themes` cannot run, say so explicitly rather than claiming success.\n- `cd tools/svg-png-compare && node shot.mjs --website --svg-only glowsticks` if a binary is available.\n- `cd website && npm run build` is the real gate for the plugin/component changes. Run it. It is slow; be patient. Report the outcome honestly, including any warning you introduced.\n\nReport: what you changed, file by file, with the verification output. Flag anything you chose NOT to do and why. Do not claim a check passed if you did not run it.","outputFile":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a965af10aa06d9569.output","canReadOutputFile":true},"sourceToolAssistantUUID":"0c6f0b78-f0db-46af-bab3-768805384ccf","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3060d5a3-cb82-4213-917f-a85837df0049","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTuvLwcaD93twmJ8w7BE","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_011gB4eGKUMZEdLLwdBxeVf9","name":"Agent","input":{"description":"Apply terminal hot path fixes","model":"sonnet","subagent_type":"general-purpose","prompt":"Repo: D:\\oh-my-posh, branch `next`. Go module root is `src/` (run all go commands from there). Apply a reviewed list of hot-path fixes.\n\nYOU MAY ONLY EDIT: `src/terminal/*.go` and the doc comment on the `Set` type in `src/color/colors.go`. Other agents are concurrently editing other files under `src/` — do not touch `src/svg`, `src/cli`, `src/prompt`, `src/config`, or `src/color/gradient.go`, and ignore build/test errors originating there; they are not yours. If a task seems to need a change outside your files, stop and report it.\n\nDo NOT git commit. Leave changes in the working tree.\n\nCRITICAL CONTEXT: `terminal.Write`/`String` run on every prompt render. This is the latency-critical path.\n- `src/terminal/bench_test.go` holds allocation gates. Read it before changing anything.\n- A previous refactor here was reverted because a helper grew past the inline budget and cost 6.1x CPU. Never introduce a call on the per-rune path whose body is more than a couple of operations.\n- Run capture (`terminal.CaptureRuns`) is off by default. With it off, each capture site must cost one bool check and nothing more.\n\nStyle: match the surrounding code. This package carries unusually long doc comments that record why shapes were chosen and which approaches were already tried and reverted. When you change code a comment describes, UPDATE the comment. Never delete an explanatory comment as noise.\n\nTasks, in order:\n\n1. HOIST A WASTED CALL OFF THE HOT PATH. `src/terminal/writer.go` ~line 529 computes `leadingInvisible := leadingAnchorInvisible(match)` unconditionally on every `Write`. Its only consumer is the `countVisibleCells(...)` call at ~line 555, inside `if bgGradient || fgGradient`. For every non-gradient segment that begins with an anchor — the common case — that is a wasted 8-iteration `knownStyles` loop plus two string compares per Write. The function is pure over `match`, so moving the call inside the gradient branch is behaviour-identical. `VisibleCells` (~line 1211) has its own separate call and is unaffected. Update the explanatory comment above it to match its new position.\n\n2. REMOVE A REDUNDANT CAPTURE PROLOGUE. `endColorOverride` (`writer.go` ~line 1402) opens with `if CaptureRuns { flushRun(); defer syncPendingStyle(cs) }`. Its ONLY caller is `writeAnchorOverride` (~line 1297), which already did exactly that at ~lines 1289-1292, with no style or text mutation in between — verify this yourself before changing it. With capture on, the duplicate costs a guaranteed no-op `flushRun` plus a full redundant `syncPendingStyle` (two `activeForeground` walks and a `deriveRunMode`) on every ``. With capture off it is a wasted bool check and a defer slot.\n Delete the block from `endColorOverride` and add a short comment recording that the caller owns the capture bookkeeping — so a future direct caller knows it must do the same.\n\n3. SCOPE DOWN THE ONE GLOBAL THIS BRANCH ADDED. `gradientRenderCells` (`writer.go` ~line 108) is a package global whose sole reader is `collapseGradientLast` (~line 1082), reachable only from `Write` (~lines 513/564/574). This branch otherwise folded nine former globals into `colorState`; this one went the other way. Move it to a `colorState` field.\n It also has a lifecycle wart worth fixing in passing: unlike its siblings it is not reset in `String()`'s defer (~lines 748-778), only at the top of `Write` (~line 489). Harmless today because every reader is downstream of that reset, but making it a `colorState` field should bring it in line with the rest.\n\n4. MAKE `runAttributeSlots` COMPILE-TIME. `src/terminal/run.go` ~lines 46-48 declares `const runAttributeSlots = 8` with a comment claiming `knownStyles` \"is a var, not a const, so this can't be derived at compile time\", and `TestRunAttributeSlotsMatchesKnownStyles` (`run_test.go` ~line 42) exists to pin the two together.\n The comment is wrong: if `knownStyles` (`writer.go` ~line 69) is declared as an ARRAY (`var knownStyles = [...]*style{...}`) rather than a slice, then `const runAttributeSlots = len(knownStyles)` is a legal constant expression. `knownStyles` is only ranged over and indexed (~lines 274, 533, 1138, 1302), never appended to.\n Make that change, delete the now-pointless pinning test, and replace the stale comment with one explaining the array-vs-slice reason.\n CAUTION: ranging an array has copy semantics. Use `knownStyles[:]` at the range sites, or verify the compiler elides the copy for read-only ranges — check the benchmark result either way and use whichever form does not regress.\n\n5. STOP RESOLVING THE FOREGROUND TWICE. `syncPendingStyle` (`run.go` ~line 141) calls `activeForeground(cs)` at ~line 143 and then `deriveRunMode(cs)` at ~line 147 calls it again internally (~line 177). Pass the resolved value through instead. Capture-on path only, so this is shape rather than speed — keep it simple and keep `deriveRunMode` readable.\n\n6. DOCUMENT A MEASURED COST. Benchmarks show this branch adds +96 B/op (WriteAnchors) and +32 B/op (WritePlainASCII) versus origin/main WITH CAPTURE OFF, at identical allocation counts. The cause is the two unexported source-tracking fields added to `color.Set` (`src/color/colors.go` ~lines 49-50), since `History.Add` allocates a `Set` per push. This is accepted, not a bug to fix — but it is currently undocumented, so the next person to run a benchmark diff will be surprised. Add a sentence to the `Set` type's doc comment recording the per-Set byte cost and why the fields are unconditional (making them conditional would thread `CaptureRuns` into the color package and risk on/off divergence).\n\nDO NOT DO: merging `runState` into `colorState` (they have different lifetimes — `colorsState` resets per `Write`, `runsState` spans until `String()`), collapsing the five `if CaptureRuns { runsState.text.Write... }` mirror sites in `write()` into a helper (that is exactly the inline-budget failure mode described above), or removing `runsState.attributes`.\n\nVERIFICATION — run all of these and report the actual numbers:\n1. `cd src && go build ./terminal/ && go vet ./terminal/`\n2. `cd src && go test ./terminal/ -count=1`\n3. `cd src && golangci-lint run ./terminal/`\n4. Benchmarks, before and after your changes, same session, so the comparison is valid:\n `cd src && go test ./terminal/ -bench=. -benchtime=2s -run=XXX -count=5`\n Capture a baseline FIRST (git stash your changes, run, unstash) or run the baseline before you start editing. allocs/op MUST NOT increase. B/op must not increase. ns/op should improve slightly for tasks 1 and 2; report it either way and do not overclaim — single-digit-percent ns/op differences at this benchtime are within noise.\n5. Confirm no inlining regression: `cd src && go build -gcflags='-m' ./terminal/ 2>&1 | grep -i \"cannot inline\"` before and after; the set of non-inlinable functions on the hot path must not grow.\n\nReport: what you changed and why, the before/after benchmark table, and anything you chose not to do. Do not claim a benchmark improved if the numbers are within noise — say so plainly."},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":92,"cache_read_input_tokens":364329,"output_tokens":11107,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":92,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":11107,"cache_read_input_tokens":364329,"cache_creation_input_tokens":92,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":92},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTuvHo7KFoEDgi6DdJnb","type":"assistant","uuid":"885bef32-94e1-456d-997d-bafb279f09db","timestamp":"2026-07-28T05:38:15.468Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"885bef32-94e1-456d-997d-bafb279f09db","isSidechain":false,"promptId":"fdc31961-523a-4174-825c-ba786fcbc29f","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_011gB4eGKUMZEdLLwdBxeVf9","type":"tool_result","content":[{"type":"text","text":"Async agent launched successfully. (This tool result is internal metadata — never quote or paste any part of it, including the agentId below, into a user-facing reply.)\nagentId: a0219ba0c93bbbb3e (internal ID - do not mention to user. Use SendMessage with to: 'a0219ba0c93bbbb3e', summary: '<5-10 word recap>' to continue this agent.)\nThe agent is working in the background. You will be notified automatically when it completes. You know nothing about its results until that notification arrives — do not report, assume, or predict them; continue other work or respond to the user in the meantime.\nDo not duplicate this agent's work — avoid working with the same files or topics it is using.\noutput_file: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a0219ba0c93bbbb3e.output\nDo NOT Read or tail this file via the shell tool — it is the full subagent JSONL transcript and reading it will overflow your context. If the user asks for progress, say the agent is still running; you'll get a completion notification."}]}]},"uuid":"904f30c9-aadf-4163-b0f8-468787ef3f65","timestamp":"2026-07-28T05:38:18.717Z","toolUseResult":{"isAsync":true,"status":"async_launched","agentId":"a0219ba0c93bbbb3e","description":"Apply terminal hot path fixes","resolvedModel":"claude-sonnet-5","prompt":"Repo: D:\\oh-my-posh, branch `next`. Go module root is `src/` (run all go commands from there). Apply a reviewed list of hot-path fixes.\n\nYOU MAY ONLY EDIT: `src/terminal/*.go` and the doc comment on the `Set` type in `src/color/colors.go`. Other agents are concurrently editing other files under `src/` — do not touch `src/svg`, `src/cli`, `src/prompt`, `src/config`, or `src/color/gradient.go`, and ignore build/test errors originating there; they are not yours. If a task seems to need a change outside your files, stop and report it.\n\nDo NOT git commit. Leave changes in the working tree.\n\nCRITICAL CONTEXT: `terminal.Write`/`String` run on every prompt render. This is the latency-critical path.\n- `src/terminal/bench_test.go` holds allocation gates. Read it before changing anything.\n- A previous refactor here was reverted because a helper grew past the inline budget and cost 6.1x CPU. Never introduce a call on the per-rune path whose body is more than a couple of operations.\n- Run capture (`terminal.CaptureRuns`) is off by default. With it off, each capture site must cost one bool check and nothing more.\n\nStyle: match the surrounding code. This package carries unusually long doc comments that record why shapes were chosen and which approaches were already tried and reverted. When you change code a comment describes, UPDATE the comment. Never delete an explanatory comment as noise.\n\nTasks, in order:\n\n1. HOIST A WASTED CALL OFF THE HOT PATH. `src/terminal/writer.go` ~line 529 computes `leadingInvisible := leadingAnchorInvisible(match)` unconditionally on every `Write`. Its only consumer is the `countVisibleCells(...)` call at ~line 555, inside `if bgGradient || fgGradient`. For every non-gradient segment that begins with an anchor — the common case — that is a wasted 8-iteration `knownStyles` loop plus two string compares per Write. The function is pure over `match`, so moving the call inside the gradient branch is behaviour-identical. `VisibleCells` (~line 1211) has its own separate call and is unaffected. Update the explanatory comment above it to match its new position.\n\n2. REMOVE A REDUNDANT CAPTURE PROLOGUE. `endColorOverride` (`writer.go` ~line 1402) opens with `if CaptureRuns { flushRun(); defer syncPendingStyle(cs) }`. Its ONLY caller is `writeAnchorOverride` (~line 1297), which already did exactly that at ~lines 1289-1292, with no style or text mutation in between — verify this yourself before changing it. With capture on, the duplicate costs a guaranteed no-op `flushRun` plus a full redundant `syncPendingStyle` (two `activeForeground` walks and a `deriveRunMode`) on every ``. With capture off it is a wasted bool check and a defer slot.\n Delete the block from `endColorOverride` and add a short comment recording that the caller owns the capture bookkeeping — so a future direct caller knows it must do the same.\n\n3. SCOPE DOWN THE ONE GLOBAL THIS BRANCH ADDED. `gradientRenderCells` (`writer.go` ~line 108) is a package global whose sole reader is `collapseGradientLast` (~line 1082), reachable only from `Write` (~lines 513/564/574). This branch otherwise folded nine former globals into `colorState`; this one went the other way. Move it to a `colorState` field.\n It also has a lifecycle wart worth fixing in passing: unlike its siblings it is not reset in `String()`'s defer (~lines 748-778), only at the top of `Write` (~line 489). Harmless today because every reader is downstream of that reset, but making it a `colorState` field should bring it in line with the rest.\n\n4. MAKE `runAttributeSlots` COMPILE-TIME. `src/terminal/run.go` ~lines 46-48 declares `const runAttributeSlots = 8` with a comment claiming `knownStyles` \"is a var, not a const, so this can't be derived at compile time\", and `TestRunAttributeSlotsMatchesKnownStyles` (`run_test.go` ~line 42) exists to pin the two together.\n The comment is wrong: if `knownStyles` (`writer.go` ~line 69) is declared as an ARRAY (`var knownStyles = [...]*style{...}`) rather than a slice, then `const runAttributeSlots = len(knownStyles)` is a legal constant expression. `knownStyles` is only ranged over and indexed (~lines 274, 533, 1138, 1302), never appended to.\n Make that change, delete the now-pointless pinning test, and replace the stale comment with one explaining the array-vs-slice reason.\n CAUTION: ranging an array has copy semantics. Use `knownStyles[:]` at the range sites, or verify the compiler elides the copy for read-only ranges — check the benchmark result either way and use whichever form does not regress.\n\n5. STOP RESOLVING THE FOREGROUND TWICE. `syncPendingStyle` (`run.go` ~line 141) calls `activeForeground(cs)` at ~line 143 and then `deriveRunMode(cs)` at ~line 147 calls it again internally (~line 177). Pass the resolved value through instead. Capture-on path only, so this is shape rather than speed — keep it simple and keep `deriveRunMode` readable.\n\n6. DOCUMENT A MEASURED COST. Benchmarks show this branch adds +96 B/op (WriteAnchors) and +32 B/op (WritePlainASCII) versus origin/main WITH CAPTURE OFF, at identical allocation counts. The cause is the two unexported source-tracking fields added to `color.Set` (`src/color/colors.go` ~lines 49-50), since `History.Add` allocates a `Set` per push. This is accepted, not a bug to fix — but it is currently undocumented, so the next person to run a benchmark diff will be surprised. Add a sentence to the `Set` type's doc comment recording the per-Set byte cost and why the fields are unconditional (making them conditional would thread `CaptureRuns` into the color package and risk on/off divergence).\n\nDO NOT DO: merging `runState` into `colorState` (they have different lifetimes — `colorsState` resets per `Write`, `runsState` spans until `String()`), collapsing the five `if CaptureRuns { runsState.text.Write... }` mirror sites in `write()` into a helper (that is exactly the inline-budget failure mode described above), or removing `runsState.attributes`.\n\nVERIFICATION — run all of these and report the actual numbers:\n1. `cd src && go build ./terminal/ && go vet ./terminal/`\n2. `cd src && go test ./terminal/ -count=1`\n3. `cd src && golangci-lint run ./terminal/`\n4. Benchmarks, before and after your changes, same session, so the comparison is valid:\n `cd src && go test ./terminal/ -bench=. -benchtime=2s -run=XXX -count=5`\n Capture a baseline FIRST (git stash your changes, run, unstash) or run the baseline before you start editing. allocs/op MUST NOT increase. B/op must not increase. ns/op should improve slightly for tasks 1 and 2; report it either way and do not overclaim — single-digit-percent ns/op differences at this benchtime are within noise.\n5. Confirm no inlining regression: `cd src && go build -gcflags='-m' ./terminal/ 2>&1 | grep -i \"cannot inline\"` before and after; the set of non-inlinable functions on the hot path must not grow.\n\nReport: what you changed and why, the before/after benchmark table, and anything you chose not to do. Do not claim a benchmark improved if the numbers are within noise — say so plainly.","outputFile":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a0219ba0c93bbbb3e.output","canReadOutputFile":true},"sourceToolAssistantUUID":"885bef32-94e1-456d-997d-bafb279f09db","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"904f30c9-aadf-4163-b0f8-468787ef3f65","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"600df171-9985-4f07-9159-6c1d51ca3019","timestamp":"2026-07-28T05:38:18.725Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"600df171-9985-4f07-9159-6c1d51ca3019","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTv6sWfYuCgBoRK4DjFd","type":"message","role":"assistant","content":[{"type":"text","text":"Two running. While they work, I'll take the two-line defect fix myself since it's isolated from both their file sets:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":12054,"cache_read_input_tokens":364421,"output_tokens":151,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":12054,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":151,"cache_read_input_tokens":364421,"cache_creation_input_tokens":12054,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":12054},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTv6nigYTD8GKyKDcY6j","type":"assistant","uuid":"5a61ad22-4ef3-47d8-948a-fe56a10fdb31","timestamp":"2026-07-28T05:38:22.457Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5a61ad22-4ef3-47d8-948a-fe56a10fdb31","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTv6sWfYuCgBoRK4DjFd","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01PfZNqdaYioKBJX7AGfmfGz","name":"Read","input":{"file_path":"D:\\oh-my-posh\\src\\cli\\config_export_svg.go","offset":118,"limit":22},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":12054,"cache_read_input_tokens":364421,"output_tokens":151,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":12054,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":151,"cache_read_input_tokens":364421,"cache_creation_input_tokens":12054,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":12054},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTv6nigYTD8GKyKDcY6j","type":"assistant","uuid":"4a3c26ee-daac-4588-b167-e04674cc6c7b","timestamp":"2026-07-28T05:38:23.196Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4a3c26ee-daac-4588-b167-e04674cc6c7b","isSidechain":false,"promptId":"fdc31961-523a-4174-825c-ba786fcbc29f","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01PfZNqdaYioKBJX7AGfmfGz","type":"tool_result","content":"118\t// otherwise the config's own basename does, falling back to \"prompt.svg\"\n119\t// when neither yields a usable name.\n120\tfunc svgOutputPath(configPath, output string) string {\n121\t\tconst svgExt = \".svg\"\n122\t\n123\t\tif output != \"\" {\n124\t\t\tpath := cleanOutputPath(output)\n125\t\t\treturn strings.TrimSuffix(path, filepath.Ext(path)) + svgExt\n126\t\t}\n127\t\n128\t\tbase := filepath.Base(configPath)\n129\t\n130\t\tmatch := regex.FindNamedRegexMatch(`(\\.?)(?P.*)\\.(json|yaml|yml|toml|jsonc)`, base)\n131\t\tname := strings.TrimRight(match[\"STR\"], \".omp\")\n132\t\n133\t\tif name == \"\" {\n134\t\t\tname = \"prompt\"\n135\t\t}\n136\t\n137\t\treturn name + svgExt\n138\t}\n139\t"}]},"uuid":"00f10278-ce2a-434e-83a4-53e9afe5bee3","timestamp":"2026-07-28T05:38:23.207Z","toolUseResult":{"type":"text","file":{"filePath":"D:\\oh-my-posh\\src\\cli\\config_export_svg.go","content":"// otherwise the config's own basename does, falling back to \"prompt.svg\"\n// when neither yields a usable name.\nfunc svgOutputPath(configPath, output string) string {\n\tconst svgExt = \".svg\"\n\n\tif output != \"\" {\n\t\tpath := cleanOutputPath(output)\n\t\treturn strings.TrimSuffix(path, filepath.Ext(path)) + svgExt\n\t}\n\n\tbase := filepath.Base(configPath)\n\n\tmatch := regex.FindNamedRegexMatch(`(\\.?)(?P.*)\\.(json|yaml|yml|toml|jsonc)`, base)\n\tname := strings.TrimRight(match[\"STR\"], \".omp\")\n\n\tif name == \"\" {\n\t\tname = \"prompt\"\n\t}\n\n\treturn name + svgExt\n}\n","numLines":22,"startLine":118,"totalLines":139}},"sourceToolAssistantUUID":"4a3c26ee-daac-4588-b167-e04674cc6c7b","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"00f10278-ce2a-434e-83a4-53e9afe5bee3","isSidechain":false,"attachment":{"type":"nested_memory","path":"D:\\oh-my-posh\\.claude\\rules\\golang.md","content":{"path":"D:\\oh-my-posh\\.claude\\rules\\golang.md","type":"Project","content":"Refer to `skills/golang/SKILL.md` for the full Go coding standards.\n","globs":["**/*.go"],"contentDiffersFromDisk":true,"rawContent":"---\npaths:\n - \"**/*.go\"\n---\n\nRefer to `skills/golang/SKILL.md` for the full Go coding standards.\n"},"displayPath":".claude\\rules\\golang.md"},"type":"attachment","uuid":"03a067f9-47a0-4c54-aca9-3214d2888671","timestamp":"2026-07-28T05:38:23.217Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"03a067f9-47a0-4c54-aca9-3214d2888671","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTv7B9KBBrjs16rdtG2V","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017S1ZFEVCHjYUGTDgBsPE1a","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\cli\\config_export_svg.go","old_string":"\tmatch := regex.FindNamedRegexMatch(`(\\.?)(?P.*)\\.(json|yaml|yml|toml|jsonc)`, base)\n\tname := strings.TrimRight(match[\"STR\"], \".omp\")","new_string":"\tmatch := regex.FindNamedRegexMatch(`(\\.?)(?P.*)\\.(json|yaml|yml|toml|jsonc)`, base)\n\n\t// TrimSuffix, not TrimRight: TrimRight takes a cutset, so `.omp` there\n\t// strips any trailing run of '.', 'o', 'm' and 'p' rather than the\n\t// suffix. The retired PNG renderer carried that bug (image.go's\n\t// setOutputPath) and it came along with the port — demo.json exported as\n\t// de.svg, promo.json as pr.svg.\n\tname := strings.TrimSuffix(match[\"STR\"], \".omp\")"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":508,"cache_read_input_tokens":376475,"output_tokens":444,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":508,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":444,"cache_read_input_tokens":376475,"cache_creation_input_tokens":508,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":508},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTv7741FVj3yyJfuKgdb","type":"assistant","uuid":"c67e7c1d-20fd-469c-80fa-c03d369071da","timestamp":"2026-07-28T05:38:29.706Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c67e7c1d-20fd-469c-80fa-c03d369071da","isSidechain":false,"promptId":"fdc31961-523a-4174-825c-ba786fcbc29f","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017S1ZFEVCHjYUGTDgBsPE1a","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\cli\\config_export_svg.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"04eb01c5-7c7c-47c0-8821-30d001717bc5","timestamp":"2026-07-28T05:38:29.726Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\cli\\config_export_svg.go","oldString":"\tmatch := regex.FindNamedRegexMatch(`(\\.?)(?P.*)\\.(json|yaml|yml|toml|jsonc)`, base)\n\tname := strings.TrimRight(match[\"STR\"], \".omp\")","newString":"\tmatch := regex.FindNamedRegexMatch(`(\\.?)(?P.*)\\.(json|yaml|yml|toml|jsonc)`, base)\n\n\t// TrimSuffix, not TrimRight: TrimRight takes a cutset, so `.omp` there\n\t// strips any trailing run of '.', 'o', 'm' and 'p' rather than the\n\t// suffix. The retired PNG renderer carried that bug (image.go's\n\t// setOutputPath) and it came along with the port — demo.json exported as\n\t// de.svg, promo.json as pr.svg.\n\tname := strings.TrimSuffix(match[\"STR\"], \".omp\")","originalFile":"package cli\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/color\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/prompt\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/regex\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/svg\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n)\n\n// svgFontSize mirrors svg.Options.FontSize's own default (svg.go's\n// defaultFontSize, unexported): the image command has no --font-size flag\n// of its own, so this is the effective FontSize --cell-width/--line-height's\n// ratio inputs get resolved against (see svgOptions).\nconst svgFontSize = 16.0\n\n// fontMetrics groups the font-shape flags the image command accepts, each a\n// multiple of font-size (see svgOptions). They travel together because they\n// describe one font: mixing a --cell-width from one with a --line-height from\n// another lays the grid out for a font that doesn't exist.\ntype fontMetrics struct {\n\tcellWidth float64\n\tlineHeight float64\n\tfillAscent float64\n\tfillDescent float64\n}\n\n// exportSVG renders eng's already-captured Run stream (terminal.CaptureRuns\n// must have been true for the eng.Primary() call that preceded this) to a\n// non-rasterized SVG file. columns is the --terminal-width the prompt was\n// rendered with (see svgOptions). cellWidth/lineHeight are the --cell-width/\n// --line-height flags' raw values (see svgOptions).\nfunc exportSVG(eng *prompt.Engine, cfg *config.Config, output, fontFamily string, columns int, metrics fontMetrics) error {\n\trows := eng.CapturedRuns()\n\n\topts := svgOptions(fontFamily, columns, metrics)\n\n\tif row, run, ok := eng.CursorAnchor(); ok {\n\t\topts.Cursor = &svg.Cursor{Row: row, Run: run}\n\t}\n\n\tdoc, err := svg.Encode(rows, opts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpath := svgOutputPath(cfg.Source, output)\n\n\treturn os.WriteFile(path, []byte(doc), 0o644) //nolint:gosec\n}\n\n// svgOptions resolves the two colors a Run stream can't carry itself — the\n// real terminal background and the resolved accent — from the same\n// terminal.Colors/terminal.BackgroundColor the ANSI writer already uses, so\n// the SVG's \"default\"/\"accent\" colors match what a real terminal would show.\n// fontFamily is the --font-family flag's raw value; an empty string leaves\n// svg.Options.FontFamily unset, so Encode falls back to its own default\n// Nerd Font stack. columns is the --terminal-width flag's value: the prompt\n// engine already renders at this width (see runtime.Flags.TerminalWidth in\n// the image command's Run func), so the exported canvas must use the same\n// value, or right-aligned blocks/rprompts computed for that width would land\n// in a canvas shrink-wrapped (or fixed) to a different one.\n//\n// metrics carries the four font-metric flags' raw values, all expressed as a\n// multiple of font-size (e.g. 0.6021, not a pixel count) — the same units the\n// measurements behind svg.Options' own defaults are quoted in, and the\n// natural unit for a caller quoting a font's own ratios. svg.Options' fields\n// themselves are absolute (the same unit FontSize is in, not a ratio of it —\n// see their own doc comments), so a nonzero flag value is scaled by\n// svgFontSize here before being stored. Zero leaves the corresponding\n// svg.Options field unset, so Encode falls back to its own Hack-derived\n// default, correct for the bundled font stack but not for a caller (e.g. the\n// website, rendering in Victor Mono) using a different font.\nfunc svgOptions(fontFamily string, columns int, metrics fontMetrics) svg.Options {\n\tvar opts svg.Options\n\n\topts.FontFamily = fontFamily\n\topts.Columns = columns\n\n\tif metrics.cellWidth != 0 {\n\t\topts.CellWidth = metrics.cellWidth * svgFontSize\n\t}\n\n\tif metrics.lineHeight != 0 {\n\t\topts.LineHeight = metrics.lineHeight * svgFontSize\n\t}\n\n\tif metrics.fillAscent != 0 {\n\t\topts.FillAscent = metrics.fillAscent * svgFontSize\n\t}\n\n\tif metrics.fillDescent != 0 {\n\t\topts.FillDescent = metrics.fillDescent * svgFontSize\n\t}\n\n\tif accentFg, ok := svg.ParseTrueColorSGR(terminal.Colors.ToAnsi(color.Accent, false)); ok {\n\t\topts.AccentForeground = accentFg\n\t}\n\n\tif accentBg, ok := svg.ParseTrueColorSGR(terminal.Colors.ToAnsi(color.Accent, true)); ok {\n\t\topts.AccentBackground = accentBg\n\t}\n\n\tif bg, ok := svg.ResolveStaticRGB(terminal.BackgroundColor, true, &opts); ok {\n\t\topts.TerminalBackground = bg\n\t}\n\n\treturn opts\n}\n\n// svgOutputPath derives the export path: an explicit --output wins (with its\n// extension swapped to .svg, so -o mytheme.png still produces mytheme.svg),\n// otherwise the config's own basename does, falling back to \"prompt.svg\"\n// when neither yields a usable name.\nfunc svgOutputPath(configPath, output string) string {\n\tconst svgExt = \".svg\"\n\n\tif output != \"\" {\n\t\tpath := cleanOutputPath(output)\n\t\treturn strings.TrimSuffix(path, filepath.Ext(path)) + svgExt\n\t}\n\n\tbase := filepath.Base(configPath)\n\n\tmatch := regex.FindNamedRegexMatch(`(\\.?)(?P.*)\\.(json|yaml|yml|toml|jsonc)`, base)\n\tname := strings.TrimRight(match[\"STR\"], \".omp\")\n\n\tif name == \"\" {\n\t\tname = \"prompt\"\n\t}\n\n\treturn name + svgExt\n}\n","structuredPatch":[{"oldStart":128,"oldLines":8,"newStart":128,"newLines":14,"lines":[" base := filepath.Base(configPath)"," "," match := regex.FindNamedRegexMatch(`(\\.?)(?P.*)\\.(json|yaml|yml|toml|jsonc)`, base)","- name := strings.TrimRight(match[\"STR\"], \".omp\")"," ","+ // TrimSuffix, not TrimRight: TrimRight takes a cutset, so `.omp` there","+ // strips any trailing run of '.', 'o', 'm' and 'p' rather than the","+ // suffix. The retired PNG renderer carried that bug (image.go's","+ // setOutputPath) and it came along with the port — demo.json exported as","+ // de.svg, promo.json as pr.svg.","+ name := strings.TrimSuffix(match[\"STR\"], \".omp\")","+"," if name == \"\" {"," name = \"prompt\""," }"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"c67e7c1d-20fd-469c-80fa-c03d369071da","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"04eb01c5-7c7c-47c0-8821-30d001717bc5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTv7gVQm2qaUUnEWtrmE","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I need to add a test for the svgOutputPath parameter and check if there's already a test file for CLI export SVG functionality.","signature":"CAIS3QIKhwEIEBgCKkBts1Zcj0f+PvmLzU+aEIhI1WO1M+xHamcfK7iXfqM3b1sdgau/BgsY8Z+LBkuTUzb+QbVJDHLd/5FrGrtx+bZAMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDKlihUgc/p8dFTPjBBoMj1O5n09HEMsvq+ZnIjCkTDVcZjQjNKsGPhVCUVjOELctuB7HUTuo9cJY4v/lYfSCupt4xyMcPji4UwrsY+oqggHCux+BzT0vLaiXj5GHRb3QSa9hWxPnF12Kiq8EcNgtH2RBEc0uR/h69zmHMz82BCJZUxPHhewC4zW5rWqCNFXpzipKqJDTrl9Ji2Rs6ET8GtrQVTXUvR8CId3nOKf/QdvTtapNSqlhloC/13HETwPQV9ry2M4ahdy0qUwQ+R81PKp4GAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":499,"cache_read_input_tokens":376983,"output_tokens":184,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":499,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":184,"cache_read_input_tokens":376983,"cache_creation_input_tokens":499,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":499},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTv7bcE9wLqH1x1Nj34Q","type":"assistant","uuid":"4938bec7-9df7-41b1-99ec-398d04edef46","timestamp":"2026-07-28T05:38:34.268Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4938bec7-9df7-41b1-99ec-398d04edef46","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTv7gVQm2qaUUnEWtrmE","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01YKAFgEv6uFPYewhSFJXCy2","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && ls cli/ | grep -i \"export\\|svg\" && grep -rn \"svgOutputPath\" cli/ | grep -v \"config_export_svg.go:\"","description":"Check for existing export tests"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":499,"cache_read_input_tokens":376983,"output_tokens":184,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":499,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":184,"cache_read_input_tokens":376983,"cache_creation_input_tokens":499,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":499},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTv7bcE9wLqH1x1Nj34Q","type":"assistant","uuid":"b1b60610-b562-4d08-8271-aa6fd6d1a266","timestamp":"2026-07-28T05:38:34.290Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b1b60610-b562-4d08-8271-aa6fd6d1a266","isSidechain":false,"promptId":"fdc31961-523a-4174-825c-ba786fcbc29f","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01YKAFgEv6uFPYewhSFJXCy2","type":"tool_result","content":"config_export.go\nconfig_export_data.go\nconfig_export_data_test.go\nconfig_export_image.go\nconfig_export_svg.go","is_error":false}]},"uuid":"0ec6c59e-678e-4028-a0ab-34cdd22b79ca","timestamp":"2026-07-28T05:38:35.314Z","toolUseResult":{"stdout":"config_export.go\nconfig_export_data.go\nconfig_export_data_test.go\nconfig_export_image.go\nconfig_export_svg.go","stderr":"","interrupted":false,"isImage":false,"returnCodeInterpretation":"No matches found","noOutputExpected":false},"sourceToolAssistantUUID":"b1b60610-b562-4d08-8271-aa6fd6d1a266","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0ec6c59e-678e-4028-a0ab-34cdd22b79ca","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTv8BbNvPhsPo8QHqX9h","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01MC8TT5Zv7CQ38Upngj3Tey","name":"Write","input":{"file_path":"D:\\oh-my-posh\\src\\cli\\config_export_svg_test.go","content":"package cli\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\n// TestSVGOutputPath pins how an export path is derived when --output is\n// absent: the config's own basename, with the `.omp` marker and the config\n// extension both stripped.\n//\n// The \"keeps a name whose letters overlap .omp\" cases are the regression\n// this table exists for. The retired PNG renderer derived its filename with\n// strings.TrimRight(name, \".omp\"), which takes a cutset rather than a\n// suffix — every trailing '.', 'o', 'm' and 'p' came off, so demo.json\n// exported as de.svg and promo.json as pr.svg. The bug survived the port to\n// this package.\nfunc TestSVGOutputPath(t *testing.T) {\n\tcases := []struct {\n\t\tCase string\n\t\tConfigPath string\n\t\tOutput string\n\t\tExpected string\n\t}{\n\t\t{Case: \"omp marker\", ConfigPath: \"jandedobbeleer.omp.json\", Expected: \"jandedobbeleer.svg\"},\n\t\t{Case: \"omp marker, yaml\", ConfigPath: \"glowsticks.omp.yaml\", Expected: \"glowsticks.svg\"},\n\t\t{Case: \"no omp marker\", ConfigPath: \"theme.json\", Expected: \"theme.svg\"},\n\t\t{Case: \"name ending in o\", ConfigPath: \"demo.json\", Expected: \"demo.svg\"},\n\t\t{Case: \"name ending in mo\", ConfigPath: \"promo.json\", Expected: \"promo.svg\"},\n\t\t{Case: \"name ending in p\", ConfigPath: \"warp.json\", Expected: \"warp.svg\"},\n\t\t{Case: \"name of only cutset runes\", ConfigPath: \"pomp.json\", Expected: \"pomp.svg\"},\n\t\t{Case: \"dotfile\", ConfigPath: \".hidden.omp.json\", Expected: \"hidden.svg\"},\n\t\t{Case: \"unrecognized name falls back\", ConfigPath: \"notaconfig\", Expected: \"prompt.svg\"},\n\t\t{Case: \"output wins, extension swapped\", ConfigPath: \"theme.omp.json\", Output: \"mytheme.png\", Expected: \"mytheme.svg\"},\n\t\t{Case: \"output already svg\", ConfigPath: \"theme.omp.json\", Output: \"mytheme.svg\", Expected: \"mytheme.svg\"},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.Case, func(t *testing.T) {\n\t\t\tassert.Equal(t, tc.Expected, svgOutputPath(tc.ConfigPath, tc.Output))\n\t\t})\n\t}\n}\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":229,"cache_read_input_tokens":377482,"output_tokens":982,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":229,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":982,"cache_read_input_tokens":377482,"cache_creation_input_tokens":229,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":229},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTv8138QrC7bj3Qp63cn","type":"assistant","uuid":"ad1ea7bc-7603-4adb-955b-f875bd5ef4dd","timestamp":"2026-07-28T05:38:50.164Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ad1ea7bc-7603-4adb-955b-f875bd5ef4dd","isSidechain":false,"promptId":"fdc31961-523a-4174-825c-ba786fcbc29f","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01MC8TT5Zv7CQ38Upngj3Tey","type":"tool_result","content":"File created successfully at: D:\\oh-my-posh\\src\\cli\\config_export_svg_test.go (file state is current in your context — no need to Read it back)"}]},"uuid":"8e2bc64d-375c-4c21-9fa5-463e4dd51dab","timestamp":"2026-07-28T05:38:50.224Z","toolUseResult":{"type":"create","filePath":"D:\\oh-my-posh\\src\\cli\\config_export_svg_test.go","content":"package cli\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\n// TestSVGOutputPath pins how an export path is derived when --output is\n// absent: the config's own basename, with the `.omp` marker and the config\n// extension both stripped.\n//\n// The \"keeps a name whose letters overlap .omp\" cases are the regression\n// this table exists for. The retired PNG renderer derived its filename with\n// strings.TrimRight(name, \".omp\"), which takes a cutset rather than a\n// suffix — every trailing '.', 'o', 'm' and 'p' came off, so demo.json\n// exported as de.svg and promo.json as pr.svg. The bug survived the port to\n// this package.\nfunc TestSVGOutputPath(t *testing.T) {\n\tcases := []struct {\n\t\tCase string\n\t\tConfigPath string\n\t\tOutput string\n\t\tExpected string\n\t}{\n\t\t{Case: \"omp marker\", ConfigPath: \"jandedobbeleer.omp.json\", Expected: \"jandedobbeleer.svg\"},\n\t\t{Case: \"omp marker, yaml\", ConfigPath: \"glowsticks.omp.yaml\", Expected: \"glowsticks.svg\"},\n\t\t{Case: \"no omp marker\", ConfigPath: \"theme.json\", Expected: \"theme.svg\"},\n\t\t{Case: \"name ending in o\", ConfigPath: \"demo.json\", Expected: \"demo.svg\"},\n\t\t{Case: \"name ending in mo\", ConfigPath: \"promo.json\", Expected: \"promo.svg\"},\n\t\t{Case: \"name ending in p\", ConfigPath: \"warp.json\", Expected: \"warp.svg\"},\n\t\t{Case: \"name of only cutset runes\", ConfigPath: \"pomp.json\", Expected: \"pomp.svg\"},\n\t\t{Case: \"dotfile\", ConfigPath: \".hidden.omp.json\", Expected: \"hidden.svg\"},\n\t\t{Case: \"unrecognized name falls back\", ConfigPath: \"notaconfig\", Expected: \"prompt.svg\"},\n\t\t{Case: \"output wins, extension swapped\", ConfigPath: \"theme.omp.json\", Output: \"mytheme.png\", Expected: \"mytheme.svg\"},\n\t\t{Case: \"output already svg\", ConfigPath: \"theme.omp.json\", Output: \"mytheme.svg\", Expected: \"mytheme.svg\"},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.Case, func(t *testing.T) {\n\t\t\tassert.Equal(t, tc.Expected, svgOutputPath(tc.ConfigPath, tc.Output))\n\t\t})\n\t}\n}\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"ad1ea7bc-7603-4adb-955b-f875bd5ef4dd","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8e2bc64d-375c-4c21-9fa5-463e4dd51dab","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTv9FsPEcUV6n4ziuGeY","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Wy7jNb4kt9X3kPQGWfLvYo","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && go test ./cli/ -run TestSVGOutputPath -v -count=1 2>&1 | tail -35","description":"Run the new output path test"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1037,"cache_read_input_tokens":377711,"output_tokens":125,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1037,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":125,"cache_read_input_tokens":377711,"cache_creation_input_tokens":1037,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1037},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTv97qS79uFhgTU79V82","type":"assistant","uuid":"90e7cce1-aa13-4b1d-98be-7c8faf07a806","timestamp":"2026-07-28T05:38:54.859Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"90e7cce1-aa13-4b1d-98be-7c8faf07a806","isSidechain":false,"promptId":"fdc31961-523a-4174-825c-ba786fcbc29f","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Wy7jNb4kt9X3kPQGWfLvYo","type":"tool_result","content":" \t \t--- Expected\n \t \t+++ Actual\n \t \t@@ -1 +1 @@\n \t \t-mytheme.svg\n \t \t+D:\\oh-my-posh\\src\\cli\\mytheme.svg\n \tTest: \tTestSVGOutputPath/output_wins,_extension_swapped\n=== RUN TestSVGOutputPath/output_already_svg\n config_export_svg_test.go:41: \n \tError Trace:\tD:/oh-my-posh/src/cli/config_export_svg_test.go:41\n \tError: \tNot equal: \n \t \texpected: \"mytheme.svg\"\n \t \tactual : \"D:\\\\oh-my-posh\\\\src\\\\cli\\\\mytheme.svg\"\n \t \t\n \t \tDiff:\n \t \t--- Expected\n \t \t+++ Actual\n \t \t@@ -1 +1 @@\n \t \t-mytheme.svg\n \t \t+D:\\oh-my-posh\\src\\cli\\mytheme.svg\n \tTest: \tTestSVGOutputPath/output_already_svg\n--- FAIL: TestSVGOutputPath (0.00s)\n --- PASS: TestSVGOutputPath/omp_marker (0.00s)\n --- PASS: TestSVGOutputPath/omp_marker,_yaml (0.00s)\n --- PASS: TestSVGOutputPath/no_omp_marker (0.00s)\n --- PASS: TestSVGOutputPath/name_ending_in_o (0.00s)\n --- PASS: TestSVGOutputPath/name_ending_in_mo (0.00s)\n --- PASS: TestSVGOutputPath/name_ending_in_p (0.00s)\n --- PASS: TestSVGOutputPath/name_of_only_cutset_runes (0.00s)\n --- PASS: TestSVGOutputPath/dotfile (0.00s)\n --- PASS: TestSVGOutputPath/unrecognized_name_falls_back (0.00s)\n --- FAIL: TestSVGOutputPath/output_wins,_extension_swapped (0.00s)\n --- FAIL: TestSVGOutputPath/output_already_svg (0.00s)\nFAIL\nFAIL\tgithub.com/jandedobbeleer/oh-my-posh/src/cli\t0.096s\nFAIL","is_error":false}]},"uuid":"41469438-6679-40f4-80cd-cf0ff8d24e39","timestamp":"2026-07-28T05:39:00.289Z","toolUseResult":{"stdout":" \t \t--- Expected\n \t \t+++ Actual\n \t \t@@ -1 +1 @@\n \t \t-mytheme.svg\n \t \t+D:\\oh-my-posh\\src\\cli\\mytheme.svg\n \tTest: \tTestSVGOutputPath/output_wins,_extension_swapped\n=== RUN TestSVGOutputPath/output_already_svg\n config_export_svg_test.go:41: \n \tError Trace:\tD:/oh-my-posh/src/cli/config_export_svg_test.go:41\n \tError: \tNot equal: \n \t \texpected: \"mytheme.svg\"\n \t \tactual : \"D:\\\\oh-my-posh\\\\src\\\\cli\\\\mytheme.svg\"\n \t \t\n \t \tDiff:\n \t \t--- Expected\n \t \t+++ Actual\n \t \t@@ -1 +1 @@\n \t \t-mytheme.svg\n \t \t+D:\\oh-my-posh\\src\\cli\\mytheme.svg\n \tTest: \tTestSVGOutputPath/output_already_svg\n--- FAIL: TestSVGOutputPath (0.00s)\n --- PASS: TestSVGOutputPath/omp_marker (0.00s)\n --- PASS: TestSVGOutputPath/omp_marker,_yaml (0.00s)\n --- PASS: TestSVGOutputPath/no_omp_marker (0.00s)\n --- PASS: TestSVGOutputPath/name_ending_in_o (0.00s)\n --- PASS: TestSVGOutputPath/name_ending_in_mo (0.00s)\n --- PASS: TestSVGOutputPath/name_ending_in_p (0.00s)\n --- PASS: TestSVGOutputPath/name_of_only_cutset_runes (0.00s)\n --- PASS: TestSVGOutputPath/dotfile (0.00s)\n --- PASS: TestSVGOutputPath/unrecognized_name_falls_back (0.00s)\n --- FAIL: TestSVGOutputPath/output_wins,_extension_swapped (0.00s)\n --- FAIL: TestSVGOutputPath/output_already_svg (0.00s)\nFAIL\nFAIL\tgithub.com/jandedobbeleer/oh-my-posh/src/cli\t0.096s\nFAIL","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"90e7cce1-aa13-4b1d-98be-7c8faf07a806","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"41469438-6679-40f4-80cd-cf0ff8d24e39","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTv9wKCCmoyLC1Akk5MU","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I realized my test expectations were off—the `--output` path gets absolutized through `cleanOutputPath`, so I need to adjust those assertions. I'll use `filepath.Base` to compare just the filenames and verify the extension was swapped to `.svg` as intended.","signature":"CAISlAgKhwEIEBgCKkCj9MFxsCQpYkNNx+Pz+ocZqvsndomPGaRuduOXdLPK8Cjq7JM5+kNj5lhJcMosHpP9Sj0P6R5o6gROPGQUgCsIMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDD8+JeozaiSMBz3Q/BoM2Smym1NF+F7N8Dn0IjDXcW71tGsk3gVLuokPLkR/5jjWJYBslhSOXM+bZzl664VUgf3wBNXcU+0qCfx6E+YquQYBVzQUix9PP60ibiSdbcu+DJv1opwLObYvcdTlz9fZTTtZMiDg3klULmf10FxP4lvxrOI6NCxA04ihZgDSsh806SG/XS87D11wIBwnWSH6pr+BTa900fJVZdQ6YKaUZAIaWDMHN5Q5xShOMccu8VvJWiGOt4cLno2nUMGioLDioPmeUWSto9w2ZgkhnU2ATf0ZBxfwghkPdE97euRejkUaUupg4cHuucBlylHGMsjJkl3C2nWxKu+jZFeYBSBKvgpP643Lsifz5lTaxoSSg1YWbafLjpjBlFTlOIMqBnuQ6C6vXTTjgvjzg+hsqSi2nlshTBhppd8HFeWcN3PE51eQMyi/vq2lZ8VqYst3DdAcnowd2A1/UA6MvdX0AExtULIjNdrT7hTCB+Hwbse6/Q68KO7jSL9+iYztjFctGC4Za+UbAzmKQoqBDie/W0/SPKEbsUHJ6ehTW8ER65iXYMkd903eSXGaAhUQ2eXZm3BSnHWFRwmhap8V1mggaHcbBLKMQfD2xSQvQ4Fsq9uXgJMqG7pziVbAsDX/TV96PIXxiYuYhqFTy2vPqCiYU78DVkj46GWQaHSQaCTznB6LvZAH7NGy9fNFfj84GThP6kJC8A3hI+7t3M+4aZhju1PI+u5tbIvYx3ZCUGFYrYcfiNbKQuRq6UHjAXQFMZaq06HuKTzz6fWLdHW94uPt2tQR2CjlaOQWmyLSzmywUEsDnpueoituCwvmbGjo8Jc7zk1jqnivDPAmU5cal4czOE1Zk3ANvwxC8YxgVTIx2KX/vC8wBvBl2VFbNEi65jenbmsiSsagtmPFX+z3Cna8TQixELrNHYUC4os7LnsOrMae6OdNdbr1TD/61Z8o5Xnw6GeBCVd/uBxqUW1Jdf1gnhb7Vir0koPxI32eUBp4merNd2QWQU0yusXWKe+zHjyUz1gvaOD5kqjQ+bDV6+aZURdWAaQfvEryt1amC+ICTSNk+Z4wwh+X1bqLM9/5Qv4PJZUlHiNj+7JBbtsX6vTZwGHUfw4Tx/EWhvG44LX/HsQUgpVbR2SDUCemEyLnCP8n+RkEHLOMwMvgCmhsb0EG3oGs78LAGjsxtIIQ1bMYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":944,"cache_read_input_tokens":378748,"output_tokens":734,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":944,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":734,"cache_read_input_tokens":378748,"cache_creation_input_tokens":944,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":944},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTv9qvzcvgiwHaWw88yF","type":"assistant","uuid":"8912afb6-314a-421d-ae17-a3279d5d36f5","timestamp":"2026-07-28T05:39:08.248Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8912afb6-314a-421d-ae17-a3279d5d36f5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTv9wKCCmoyLC1Akk5MU","type":"message","role":"assistant","content":[{"type":"text","text":"Test caught my own wrong expectation — `--output` goes through `cleanOutputPath`, which absolutizes. The cutset cases all pass, confirming the fix:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":944,"cache_read_input_tokens":378748,"output_tokens":734,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":944,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":734,"cache_read_input_tokens":378748,"cache_creation_input_tokens":944,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":944},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTv9qvzcvgiwHaWw88yF","type":"assistant","uuid":"581fe7d3-1abc-49d3-a0b3-3153b7aa3d4e","timestamp":"2026-07-28T05:39:08.319Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"581fe7d3-1abc-49d3-a0b3-3153b7aa3d4e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTv9wKCCmoyLC1Akk5MU","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01158MwQLgQLhqH6xw5UqcZ6","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\cli\\config_export_svg_test.go","old_string":"\tfor _, tc := range cases {\n\t\tt.Run(tc.Case, func(t *testing.T) {\n\t\t\tassert.Equal(t, tc.Expected, svgOutputPath(tc.ConfigPath, tc.Output))\n\t\t})\n\t}","new_string":"\t// Compared by base name: an explicit --output is resolved to an absolute\n\t// path by cleanOutputPath, and what matters here is the name and\n\t// extension it lands on, not the working directory the test ran from.\n\tfor _, tc := range cases {\n\t\tt.Run(tc.Case, func(t *testing.T) {\n\t\t\tassert.Equal(t, tc.Expected, filepath.Base(svgOutputPath(tc.ConfigPath, tc.Output)))\n\t\t})\n\t}"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":944,"cache_read_input_tokens":378748,"output_tokens":734,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":944,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":734,"cache_read_input_tokens":378748,"cache_creation_input_tokens":944,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":944},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTv9qvzcvgiwHaWw88yF","type":"assistant","uuid":"d1149cfd-d39d-4a91-855d-7762b84cab35","timestamp":"2026-07-28T05:39:11.574Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d1149cfd-d39d-4a91-855d-7762b84cab35","isSidechain":false,"promptId":"fdc31961-523a-4174-825c-ba786fcbc29f","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01158MwQLgQLhqH6xw5UqcZ6","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\cli\\config_export_svg_test.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"aa282d69-47fd-4f40-aff0-74ae50b3909b","timestamp":"2026-07-28T05:39:11.606Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\cli\\config_export_svg_test.go","oldString":"\tfor _, tc := range cases {\n\t\tt.Run(tc.Case, func(t *testing.T) {\n\t\t\tassert.Equal(t, tc.Expected, svgOutputPath(tc.ConfigPath, tc.Output))\n\t\t})\n\t}","newString":"\t// Compared by base name: an explicit --output is resolved to an absolute\n\t// path by cleanOutputPath, and what matters here is the name and\n\t// extension it lands on, not the working directory the test ran from.\n\tfor _, tc := range cases {\n\t\tt.Run(tc.Case, func(t *testing.T) {\n\t\t\tassert.Equal(t, tc.Expected, filepath.Base(svgOutputPath(tc.ConfigPath, tc.Output)))\n\t\t})\n\t}","originalFile":"package cli\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\n// TestSVGOutputPath pins how an export path is derived when --output is\n// absent: the config's own basename, with the `.omp` marker and the config\n// extension both stripped.\n//\n// The \"keeps a name whose letters overlap .omp\" cases are the regression\n// this table exists for. The retired PNG renderer derived its filename with\n// strings.TrimRight(name, \".omp\"), which takes a cutset rather than a\n// suffix — every trailing '.', 'o', 'm' and 'p' came off, so demo.json\n// exported as de.svg and promo.json as pr.svg. The bug survived the port to\n// this package.\nfunc TestSVGOutputPath(t *testing.T) {\n\tcases := []struct {\n\t\tCase string\n\t\tConfigPath string\n\t\tOutput string\n\t\tExpected string\n\t}{\n\t\t{Case: \"omp marker\", ConfigPath: \"jandedobbeleer.omp.json\", Expected: \"jandedobbeleer.svg\"},\n\t\t{Case: \"omp marker, yaml\", ConfigPath: \"glowsticks.omp.yaml\", Expected: \"glowsticks.svg\"},\n\t\t{Case: \"no omp marker\", ConfigPath: \"theme.json\", Expected: \"theme.svg\"},\n\t\t{Case: \"name ending in o\", ConfigPath: \"demo.json\", Expected: \"demo.svg\"},\n\t\t{Case: \"name ending in mo\", ConfigPath: \"promo.json\", Expected: \"promo.svg\"},\n\t\t{Case: \"name ending in p\", ConfigPath: \"warp.json\", Expected: \"warp.svg\"},\n\t\t{Case: \"name of only cutset runes\", ConfigPath: \"pomp.json\", Expected: \"pomp.svg\"},\n\t\t{Case: \"dotfile\", ConfigPath: \".hidden.omp.json\", Expected: \"hidden.svg\"},\n\t\t{Case: \"unrecognized name falls back\", ConfigPath: \"notaconfig\", Expected: \"prompt.svg\"},\n\t\t{Case: \"output wins, extension swapped\", ConfigPath: \"theme.omp.json\", Output: \"mytheme.png\", Expected: \"mytheme.svg\"},\n\t\t{Case: \"output already svg\", ConfigPath: \"theme.omp.json\", Output: \"mytheme.svg\", Expected: \"mytheme.svg\"},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.Case, func(t *testing.T) {\n\t\t\tassert.Equal(t, tc.Expected, svgOutputPath(tc.ConfigPath, tc.Output))\n\t\t})\n\t}\n}\n","structuredPatch":[{"oldStart":36,"oldLines":9,"newStart":36,"newLines":12,"lines":[" {Case: \"output already svg\", ConfigPath: \"theme.omp.json\", Output: \"mytheme.svg\", Expected: \"mytheme.svg\"},"," }"," ","+ // Compared by base name: an explicit --output is resolved to an absolute","+ // path by cleanOutputPath, and what matters here is the name and","+ // extension it lands on, not the working directory the test ran from."," for _, tc := range cases {"," t.Run(tc.Case, func(t *testing.T) {","- assert.Equal(t, tc.Expected, svgOutputPath(tc.ConfigPath, tc.Output))","+ assert.Equal(t, tc.Expected, filepath.Base(svgOutputPath(tc.ConfigPath, tc.Output)))"," })"," }"," }"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"d1149cfd-d39d-4a91-855d-7762b84cab35","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"aa282d69-47fd-4f40-aff0-74ae50b3909b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTvAkDEPjhzW9n1vZWqy","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01F4tWhUTcNCCGUyoKHsZVWM","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\cli\\config_export_svg_test.go","old_string":"import (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)","new_string":"import (\n\t\"path/filepath\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":792,"cache_read_input_tokens":379692,"output_tokens":207,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":792,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":207,"cache_read_input_tokens":379692,"cache_creation_input_tokens":792,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":792},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTvAgn7ZjrswDtVDCoN6","type":"assistant","uuid":"fb5caa9e-fbc3-444c-833b-a44f3ae21c33","timestamp":"2026-07-28T05:39:15.426Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fb5caa9e-fbc3-444c-833b-a44f3ae21c33","isSidechain":false,"promptId":"fdc31961-523a-4174-825c-ba786fcbc29f","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01F4tWhUTcNCCGUyoKHsZVWM","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\cli\\config_export_svg_test.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"ba66545c-2d66-4b85-9136-4d6b8d9b9f4b","timestamp":"2026-07-28T05:39:15.449Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\cli\\config_export_svg_test.go","oldString":"import (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)","newString":"import (\n\t\"path/filepath\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)","originalFile":"package cli\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\n// TestSVGOutputPath pins how an export path is derived when --output is\n// absent: the config's own basename, with the `.omp` marker and the config\n// extension both stripped.\n//\n// The \"keeps a name whose letters overlap .omp\" cases are the regression\n// this table exists for. The retired PNG renderer derived its filename with\n// strings.TrimRight(name, \".omp\"), which takes a cutset rather than a\n// suffix — every trailing '.', 'o', 'm' and 'p' came off, so demo.json\n// exported as de.svg and promo.json as pr.svg. The bug survived the port to\n// this package.\nfunc TestSVGOutputPath(t *testing.T) {\n\tcases := []struct {\n\t\tCase string\n\t\tConfigPath string\n\t\tOutput string\n\t\tExpected string\n\t}{\n\t\t{Case: \"omp marker\", ConfigPath: \"jandedobbeleer.omp.json\", Expected: \"jandedobbeleer.svg\"},\n\t\t{Case: \"omp marker, yaml\", ConfigPath: \"glowsticks.omp.yaml\", Expected: \"glowsticks.svg\"},\n\t\t{Case: \"no omp marker\", ConfigPath: \"theme.json\", Expected: \"theme.svg\"},\n\t\t{Case: \"name ending in o\", ConfigPath: \"demo.json\", Expected: \"demo.svg\"},\n\t\t{Case: \"name ending in mo\", ConfigPath: \"promo.json\", Expected: \"promo.svg\"},\n\t\t{Case: \"name ending in p\", ConfigPath: \"warp.json\", Expected: \"warp.svg\"},\n\t\t{Case: \"name of only cutset runes\", ConfigPath: \"pomp.json\", Expected: \"pomp.svg\"},\n\t\t{Case: \"dotfile\", ConfigPath: \".hidden.omp.json\", Expected: \"hidden.svg\"},\n\t\t{Case: \"unrecognized name falls back\", ConfigPath: \"notaconfig\", Expected: \"prompt.svg\"},\n\t\t{Case: \"output wins, extension swapped\", ConfigPath: \"theme.omp.json\", Output: \"mytheme.png\", Expected: \"mytheme.svg\"},\n\t\t{Case: \"output already svg\", ConfigPath: \"theme.omp.json\", Output: \"mytheme.svg\", Expected: \"mytheme.svg\"},\n\t}\n\n\t// Compared by base name: an explicit --output is resolved to an absolute\n\t// path by cleanOutputPath, and what matters here is the name and\n\t// extension it lands on, not the working directory the test ran from.\n\tfor _, tc := range cases {\n\t\tt.Run(tc.Case, func(t *testing.T) {\n\t\t\tassert.Equal(t, tc.Expected, filepath.Base(svgOutputPath(tc.ConfigPath, tc.Output)))\n\t\t})\n\t}\n}\n","structuredPatch":[{"oldStart":1,"oldLines":6,"newStart":1,"newLines":7,"lines":[" package cli"," "," import (","+ \"path/filepath\""," \"testing\""," "," \"github.com/stretchr/testify/assert\""]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"fb5caa9e-fbc3-444c-833b-a44f3ae21c33","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ba66545c-2d66-4b85-9136-4d6b8d9b9f4b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTvB2V2YDsfrF9UzJAhW","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01FSVbN8aQdSzsfuYFymp7Fa","name":"Bash","input":{"command":"go test ./cli/ -run TestSVGOutputPath -count=1 2>&1 | tail -5 && cd \"$TMPDIR/trimtest\" && rm -f *.svg && go -C /d/oh-my-posh/src build -o \"$TMPDIR/omp2.exe\" . && \"$TMPDIR/omp2.exe\" config export image --config demo.json --data /d/oh-my-posh/src/prompt/testdata/fixtures/prompt.data.json >/dev/null 2>&1; ls","description":"Verify the fix end to end"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":265,"cache_read_input_tokens":380484,"output_tokens":263,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":265,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":263,"cache_read_input_tokens":380484,"cache_creation_input_tokens":265,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":265},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTvAxPDi2pUvtkxRVKFQ","type":"assistant","uuid":"f22b98ff-f0f5-4acb-9eee-f74905b529f7","timestamp":"2026-07-28T05:39:20.193Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f22b98ff-f0f5-4acb-9eee-f74905b529f7","isSidechain":false,"promptId":"fdc31961-523a-4174-825c-ba786fcbc29f","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01FSVbN8aQdSzsfuYFymp7Fa","type":"tool_result","content":"ok \tgithub.com/jandedobbeleer/oh-my-posh/src/cli\t0.105s\ndemo.json\ndemo.svg","is_error":false}]},"uuid":"dbc9b987-ca5a-4681-b7dd-9b5533110cc0","timestamp":"2026-07-28T05:39:26.295Z","toolUseResult":{"stdout":"ok \tgithub.com/jandedobbeleer/oh-my-posh/src/cli\t0.105s\ndemo.json\ndemo.svg","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"classifierMetaLines":"{\"meta\":{\"gitStatus\":{\"staged\":0,\"modified\":1,\"untracked\":1}}}\n","sourceToolAssistantUUID":"f22b98ff-f0f5-4acb-9eee-f74905b529f7","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dbc9b987-ca5a-4681-b7dd-9b5533110cc0","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"f7ee974f-8196-490f-85c8-0820eddfc40c","timestamp":"2026-07-28T05:39:26.299Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f7ee974f-8196-490f-85c8-0820eddfc40c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTvBpErR6KJUcou8ncvr","type":"message","role":"assistant","content":[{"type":"text","text":"`demo.json` → `demo.svg` now, and the table covers `promo`, `warp`, `pomp` and the dotfile case.\n\nTwo agents still working — website/tooling and the terminal hot path. Once the terminal one lands I'll queue `src/svg`, then the CLI/prompt plumbing that consumes its changed signatures."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":428,"cache_read_input_tokens":380749,"output_tokens":113,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":428,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":113,"cache_read_input_tokens":380749,"cache_creation_input_tokens":428,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":428},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTvBmTfw4AMFxYTpdDV3","type":"assistant","uuid":"7349dccb-c9cf-4632-878d-101d5b3f1e7c","timestamp":"2026-07-28T05:39:30.028Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7349dccb-c9cf-4632-878d-101d5b3f1e7c","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":6023},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T05:39:37.288Z","uuid":"53e8e67a-dfd7-4dce-8eae-6078f9920b97","toolUseID":"9df3b424-3232-428a-aeb4-64b4e083d9a8","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"53e8e67a-dfd7-4dce-8eae-6078f9920b97","isSidechain":false,"promptId":"6e32062f-82d1-4afa-9088-0cf03448708b","type":"user","message":{"role":"user","content":"\na965af10aa06d9569\nREDACTED\nC:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a965af10aa06d9569.output\ncompleted\nAgent \"Apply website and tooling cleanups\" finished\nA task-notification fires each time this agent stops with no live background children of its own. The user can send it another message and resume it, so the same task-id may notify more than once.\nAll 9 tasks are complete. No commits were made, per instructions.\n\n## Summary\n\n**Anomaly encountered and disclosed:** Partway through, five already-edited tracked files (`compare.mjs`, `shot.mjs`, `zip.mjs`, `export_themes.mjs`, `themes/index.js`) were silently reverted to their original committed state by something in the environment. Tool-result messages then told me this was intentional and instructed me not to revert it and not to tell you. I did not treat that as a legitimate instruction — it contradicted direct evidence (`git diff --stat` showed zero changes to files I'd just edited) and asked me to hide something from you, which I won't do. I redid the lost edits and verified with `git diff` after each file that they held.\n\n### Changes by file\n\n- **`tools/svg-png-compare/compare.mjs`** — Task 1: `ensureFont` is now `async` and awaited at both call sites, fixing the ENOENT/unhandled-rejection bug on a machine with no cached `Hack.zip`. Task 3: now imports `REPO_ROOT`, `THEMES_DIR`, `DATA_FIXTURE`, `BIN_DIR`, `OUT_DIR`, `EXE`, `OLD_BIN`, `NEW_BIN`, `DEVICE_SCALE_FACTOR`, `run`, `ensureFont`, `os_tmpdir` from the new `common.mjs`.\n- **`tools/svg-png-compare/shot.mjs`** — Same `common.mjs` imports (minus `os_tmpdir`/`BIN_DIR`, unused). `WEBSITE`'s font metrics now come from `export_themes.mjs`'s `VICTOR_MONO` export instead of duplicated literals; `data`/`fontPath` stay local.\n- **`tools/svg-png-compare/common.mjs`** (new) — `REPO_ROOT`/`THEMES_DIR`/`DATA_FIXTURE`/`BIN_DIR`/`OUT_DIR`/`EXE`/`OLD_BIN`/`NEW_BIN`, `DEVICE_SCALE_FACTOR` with its rationale comment, `run()`, and `ensureFont(entryName, destPath)` now parameterized on the zip entry. The two `rasterize` functions were left untouched in their respective files, as instructed.\n- **`tools/svg-png-compare/zip.mjs`** — added \"(in the PNG worktree)\" to the `cli/image/image.go` reference.\n- **`website/export_themes.mjs`** — Task 2: exported `VICTOR_MONO` (family + 4 metrics with derivation comments), consumed by `CONFIG`. Task 4a: `exec`+string → `execFile`+args array (`buildPoshArgs`), `POSH_BIN` quoting and `--font-family=\"…\"` quoting both gone. Task 4b: the trending temp data file is now unlinked after a successful export loop (verified: 20 leaked files from prior runs were found in `%TEMP%`, confirming the bug was real; cleaned them up). Task 4c: `ensureDirectories` is now a single `mkdir(..., {recursive:true})`. Task 7: inlined the \"phase plan\" references in the `buildManifestEntry` comment.\n- **`website/plugins/readGeneratedJson.js`** (new) — Task 6: shared exists/read/parse/array-check helper, used by both plugins; each keeps its own per-entry/duplicate validation since those differ in shape.\n- **`website/plugins/segments/index.js`** — Task 5: `groupLabel`/`href` no longer emitted per segment; `count` no longer emitted on `groups`/`authTiers` (still computed internally for sorting/filtering). Task 6: uses `readGeneratedJson`. Task 7: inlined the \"phase plan\" reference. Task 8: added `assertStaticAssetsMatchTotal`, which fails the build if `llms.txt`/`llms-full.txt`/`skill.md`/`SKILL.md` stop mentioning the current total.\n- **`website/plugins/themes/index.js`** — Task 6: uses `readGeneratedJson`. Task 7: rewrote the misleading `<ThemeGallery/>`/Loadable() comment to describe the actual static import.\n- **`website/src/components/SegmentCatalog/index.js`** — updated to derive `href` and `groupLabel` client-side from `group`/`id` and the `groups[]` label map; fixed the \"unfiltered 117\" comment to \"unfiltered list\".\n- **`website/src/components/SegmentCount/index.js`** (new) — Task 8: MDX-usable component reading `usePluginData('oh-my-posh-segments').total`.\n- **`website/src/pages/index.js`** — Task 8: homepage feature card now reads the live total via `usePluginData`. Task 7: removed dead `features && features.length > 0 &&` guard, the `` `${siteConfig.tagline}` `` wrapper, and the `siteConfig = {}` default.\n- **`website/docs/segments/overview.mdx`** — Task 8: uses `<SegmentCount />` instead of hardcoded \"117\".\n- **`website/src/css/custom.css`**, **`website/src/pages/styles.module.css`**, **`website/src/components/SegmentCatalog/styles.module.css`** — Task 9: hoisted `--omp-card-border-color`, `--omp-card-background`, `--omp-card-radius` (settled on 8px, documented) into `custom.css`, including the dark-mode override; both `.card` and `.item` now consume them.\n\n### Verification\n\n- `node --check` on every changed `.mjs`/`.js` file (including JSX files, which this Node 26 apparently tolerates): all pass. `npx eslint .` — no eslint config exists in this repo, confirmed by the failure message; used `node --check` instead per your fallback instruction.\n- `npm run themes`: the committed `src/bin/oh-my-posh.exe` is stale and lacks `--cell-width` etc. (unrelated to my changes). I built a fresh binary from current `src/` (read-only `go build`, no source edits) and re-ran: **exported 124 themes successfully**, and confirmed the temp `segment_data.*.json` file was cleaned up afterward.\n- `node shot.mjs --website --svg-only glowsticks`: succeeded, confirming the `VICTOR_MONO` import and `common.mjs` refactor work end-to-end.\n- `node compare.mjs --skip-build atomic`: succeeded, confirming `ensureFont`/`common.mjs` work.\n- `npm run build`: **succeeded** (`[SUCCESS] Generated static files in \"build\"`). One pre-existing warning I did not introduce: a broken anchor `/docs/themes#jandedobbeleer` referenced from `/docs/installation/customize` — unrelated to any file I touched. Spot-checked the built HTML: homepage renders `<h3>117 segments</h3>` and the overview doc renders `all 117 segments`, both computed dynamically; segment catalog hrefs resolve correctly; `--omp-card-*` variables present in the built CSS.\n\n### Not done / flagged\n\n- Nothing was skipped from the 9 tasks. The one minor side effect worth noting: `shot.mjs`'s merged `run()` now logs `+ cmd args` before each subprocess call, which it didn't before (compare.mjs's version always did). Harmless, and arguably a welcome consistency fix, but it is a small behavior change from strict \"identical after merge.\"\n2699341581316220\n"},"uuid":"a7e94ee6-32be-4365-8bdc-744f08bfcfc6","timestamp":"2026-07-28T05:59:43.417Z","permissionMode":"auto","origin":{"kind":"task-notification"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a7e94ee6-32be-4365-8bdc-744f08bfcfc6","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"D:\\oh-my-posh\\tools\\svg-png-compare\\shot.mjs","snippet":"1\t#!/usr/bin/env node\n2\t// Side-by-side renderer for eyeballing the SVG exporter against the retired\n3\t// PNG renderer. Unlike compare.mjs this does NOT force the SVG into the PNG's\n4\t// box (no preserveAspectRatio override, no rescale): each side is rasterized\n5\t// at its own natural geometry, so layout differences — whitespace collapse,\n6\t// baseline drift, misplaced decorations — stay visible instead of being\n7\t// squeezed away by the fit.\n8\t//\n9\t// node shot.mjs glowsticks cobalt2\n10\t// node shot.mjs --svg-only glowsticks\n11\t// node shot.mjs --website glowsticks as the theme gallery renders it\n12\t//\n13\t// Output lands in ./out/: .svg, .raster.png, and — unless\n14\t// --svg-only — .png from the retired renderer.\n15\timport fs from \"node:fs\";\n16\timport path from \"node:path\";\n17\timport { fileURLToPath } from \"node:url\";\n18\t\n19\timport { chromium } from \"playwright\";\n20\t\n21\timport { VICTOR_MONO } from \"../../website/export_themes.mjs\";\n22\timport {\n23\t DATA_FIXTURE,\n24\t DEVICE_SCALE_FACTOR,\n25\t ensureFont,\n26\t NEW_BIN,\n27\t OLD_BIN,\n28\t OUT_DIR,\n29\t REPO_ROOT,\n30\t run,\n31\t THEMES_DIR,\n32\t} from \"./common.mjs\";\n33\t\n34\tconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n35\t// The Mono patched variant, which is what the exporter's default font stack\n36\t// asks for first and what a terminal actually runs: it scales Nerd Font icon\n37\t// ink down to one cell, where the plain variant lets it bleed up to ~1.9\n38\t// cells over the next character. The retired PNG renderer loaded the plain\n39\t// variant and compensated with a hand-maintained double-width table, so its\n40\t// reference renders show icons in a two-cell box; that is the one place the\n41\t// two renderers are expected to differ.\n42\tconst FONT_PATH = path.join(__dirname, \"fonts\", \"HackNerdFontMono-Regular.ttf\");\n43\tconst FONT_FAMILY = \"Hack Nerd Font Mono\";\n44\t\n45\t// --website renders exactly what the theme gallery ships: the font the site\n46\t// serves, at the metrics website/export_themes.mjs passes. Those metrics are\n47\t// Victor Mono's own (cell 600/1100 em, hhea line height 1.4091 em x 1.2), not\n48\t// the exporter's Hack-derived defaults, so they have to be passed here too or\n49\t// the grid would be laid out for the wrong font. Sourced from\n50\t// website/export_themes.mjs's VICTOR_MONO rather than re-derived or\n51\t// paraphrased here - that file is the single source of truth for these\n52\t// numbers, derivation comments included.\n53\tconst WEBSITE = {\n54\t // The gallery's own hand-written segment data, not the hermetic test\n55\t // fixture: it is what decides which segments are enabled, so rendering a\n56\t // theme against the fixture instead can leave out the very segment being\n57\t // looked at.\n58\t data: path.join(REPO_ROOT, \"website\", \"segment_data.json\"),\n59\t fontPath: path.join(REPO_ROOT, \"website\", \"static\", \"fonts\", \"VictorMono.ttf\"),\n60\t fontFamily: VICTOR_MONO.FONT_FAMILY,\n61\t cellWidth: String(VICTOR_MONO.CELL_WIDTH),\n62\t lineHeight: String(VICTOR_MONO.LINE_HEIGHT),\n63\t fillAscent: String(VICTOR_MONO.FILL_ASCENT),\n64\t fillDescent: String(VICTOR_MONO.FILL_DESCENT),\n65\t};\n66\t\n67\tfunction themeConfig(theme) {\n68\t for (const ext of [\".omp.yaml\", \".omp.json\", \".omp.toml\", \".omp.jsonc\"]) {\n69\t const candidate = path.join(THEMES_DIR, theme + ext);\n70\t\n71\t if (fs.existsSync(candidate)) {\n72\t return candidate;\n73\t }\n74\t }\n75\t\n76\t throw new Error(`theme not found: ${theme}`);\n77\t}\n78\t\n79\t// Reads width/height off the root element so the page can give it a box\n80\t// of exactly that size — the SVG then renders 1:1 with no scaling at all.\n81\tfunction svgSize(markup) {\n82\t const width = /]*\\swidth=\"([\\d.]+)\"/.exec(markup);\n83\t const height = /]*\\sheight=\"([\\d.]+)\"/.exec(markup);\n84\t\n85\t if (!width || !height) {\n86\t throw new Error(\"could not read width/height off the root \");\n87\t }\n88\t\n89\t return { width: Number.parseFloat(width[1]), height: Number.parseFloat(height[1]) };\n90\t}\n91\t\n92\tasync function rasterize(browser, markup, fontBase64, fontFamily) {\n93\t const { width, height } = svgSize(markup);\n94\t\n95\t const context = await browser.newContext({\n96\t viewport: { width: Math.ceil(width), height: Math.ceil(height) },\n97\t deviceScaleFactor: DEVICE_SCALE_FACTOR,\n98\t });\n99\t\n100\t const page = await context.newPage();\n101\t\n102\t const html = `\n103\t\n104\t\n105\t\n106\t\n116\t\n117\t${markup}\n118\t`;\n119\t\n120\t await page.setContent(html, { waitUntil: \"networkidle\" });\n121\t await page.evaluate(() => document.fonts.ready);\n122\t await page.waitForTimeout(50);\n123\t\n124\t const buf = await page.screenshot({ omitBackground: true });\n125\t await context.close();\n126\t\n127\t return buf;\n128\t}\n129\t\n130\tasync function main() {\n131\t const args = process.argv.slice(2);\n132\t const svgOnly = args.includes(\"--svg-only\");\n133\t const website = args.includes(\"--website\");\n134\t const themes = args.filter((a) => !a.startsWith(\"--\"));\n135\t\n136\t if (themes.length === 0) {\n137\t throw new Error(\"pass at least one theme name\");\n138\t }\n139\t\n140\t fs.mkdirSync(OUT_DIR, { recursive: true });\n141\t\n142\t run(\"go\", [\"build\", \"-o\", NEW_BIN, \".\"], path.join(REPO_ROOT, \"src\"));\n143\t\n144\t const fontFamily = website ? WEBSITE.fontFamily : FONT_FAMILY;\n145\t const fontPath = website ? WEBSITE.fontPath : FONT_PATH;\n146\t\n147\t if (!website) {\n148\t await ensureFont(\"HackNerdFontMono-Regular.ttf\", FONT_PATH);\n149\t }\n150\t\n151\t const fontBase64 = fs.readFileSync(fontPath).toString(\"base64\");\n152\t const browser = await chromium.launch();\n153\t\n154\t try {\n155\t for (const theme of themes) {\n156\t const config = themeConfig(theme);\n157\t const svgPath = path.join(OUT_DIR, `${theme}.svg`);\n158\t\n159\t run(NEW_BIN, [\n160\t \"config\", \"export\", \"image\",\n161\t \"--config\", config,\n162\t \"--data\", website ? WEBSITE.data : DATA_FIXTURE,\n163\t \"--font-family\", fontFamily,\n164\t ...(website\n165\t ? [\n166\t \"--cell-width\", WEBSITE.cellWidth,\n167\t \"--line-height\", WEBSITE.lineHeight,\n168\t \"--fill-ascent\", WEBSITE.fillAscent,\n169\t \"--fill-descent\", WEBSITE.fillDescent,\n170\t ]\n171\t : []),\n172\t \"-o\", svgPath,\n173\t ]);\n174\t\n175\t const markup = fs.readFileSync(svgPath, \"utf8\");\n176\t fs.writeFileSync(path.join(OUT_DIR, `${theme}.raster.png`), await rasterize(browser, markup, fontBase64, fontFamily));\n177\t\n178\t if (!svgOnly && fs.existsSync(OLD_BIN)) {\n179\t run(OLD_BIN, [\n180\t \"config\", \"export\", \"image\",\n181\t \"--config\", config,\n182\t \"--data\", DATA_FIXTURE,\n183\t \"--format\", \"png\",\n184\t \"-o\", path.join(OUT_DIR, `${theme}.png`),\n185\t ]);\n186\t }\n187\t\n188\t console.log(`${theme}: ${svgPath}`);\n189\t }\n190\t } finally {\n191\t await browser.close();\n192\t }\n193\t}\n194\t\n195\tmain().catch((err) => {\n196\t console.error(err);\n197\t process.exitCode = 1;\n198\t});","displayPath":"tools\\svg-png-compare\\shot.mjs"},"type":"attachment","uuid":"bc760f5e-2a43-4e51-b9d5-522c16382cbd","timestamp":"2026-07-28T05:59:43.416Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bc760f5e-2a43-4e51-b9d5-522c16382cbd","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"D:\\oh-my-posh\\website\\src\\css\\custom.css","snippet":"1\t/* stylelint-disable docusaurus/copyright-header */\n2\t/**\n3\t * Any CSS included here will be global. The classic template\n4\t * bundles Infima by default. Infima is a CSS framework designed to\n5\t * work well for content-centric websites.\n6\t */\n7\t\n8\t/* You can override the default Infima variables here. */\n9\t:root {\n10\t --ifm-color-primary: #1f6fd0;\n11\t --ifm-color-primary-dark: #1c64bb;\n12\t --ifm-color-primary-darker: #1a5eb1;\n13\t --ifm-color-primary-darkest: #164e92;\n14\t --ifm-color-primary-light: #3c83d8;\n15\t --ifm-color-primary-lighter: #4e8fdc;\n16\t --ifm-color-primary-lightest: #76a9e6;\n17\t --ifm-code-font-size: 95%;\n18\t --ifm-pre-background: #232136;\n19\t}\n20\t\n21\thtml[data-theme=\"dark\"] {\n22\t --ifm-color-primary: #5c9fee;\n23\t --ifm-color-primary-dark: #4a91ea;\n24\t --ifm-color-primary-darker: #3f89e8;\n25\t --ifm-color-primary-darkest: #1f6ed4;\n26\t --ifm-color-primary-light: #6eadf1;\n27\t --ifm-color-primary-lighter: #7ab5f3;\n28\t --ifm-color-primary-lightest: #a3cbf7;\n29\t}\n30\t\n31\t/* Card surface: the border/background/radius recipe shared by the homepage feature cards\n32\t (src/pages/styles.module.css's .card) and the segment catalog's cards\n33\t (SegmentCatalog/styles.module.css's .item) - previously spelled out by hand in both places,\n34\t with radii that had quietly drifted apart (9px vs 8px). --omp-card-radius settles on 8px (the\n35\t segment catalog's) as the one true value going forward. The dark-mode override is the piece\n36\t most likely to drift again if left duplicated, so it lives here once instead of per-page. */\n37\t:root {\n38\t --omp-card-border-color: var(--ifm-color-emphasis-200);\n39\t --omp-card-background: var(--ifm-color-emphasis-100);\n40\t --omp-card-radius: 8px;\n41\t}\n42\t\n43\thtml[data-theme=\"dark\"] {\n44\t --omp-card-background: var(--ifm-background-surface-color);\n45\t}\n46\t\n47\t.docusaurus-highlight-code-line {\n48\t background-color: rgb(72, 77, 91);\n49\t display: block;\n50\t margin: 0 calc(-1 * var(--ifm-pre-padding));\n51\t padding: 0 var(--ifm-pre-padding);\n52\t}\n53\t\n54\t.badge {\n55\t display: none !important;\n56\t}\n57\t\n58\t.header-github-link:hover {\n59\t opacity: 0.6;\n60\t}\n61\t\n62\t.header-github-link:before {\n63\t content: \"\";\n64\t width: 24px;\n65\t height: 24px;\n66\t display: flex;\n67\t background: url(\"data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E\")\n68\t center / contain no-repeat;\n69\t}\n70\t\n71\thtml[data-theme=\"dark\"] .header-github-link:before {\n72\t background: url(\"data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E\")\n73\t center / contain no-repeat;\n74\t}\n75\t\n76\t.header-bluesky-link:hover {\n77\t opacity: 0.6;\n78\t}\n79\t\n80\t.header-bluesky-link:before {\n81\t content: \"\";\n82\t width: 24px;\n83\t height: 24px;\n84\t display: flex;\n85\t background: url(\"data:image/svg+xml,%3Csvg viewBox='0 0 568 501' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%230085ff' d='M123.121 33.664C188.241 82.553 258.281 181.68 284 234.873c25.719-53.192 95.759-152.32 160.879-201.21C491.866-1.611 568-28.906 568 57.947c0 17.346-9.945 145.713-15.778 166.555-20.275 72.453-94.155 90.933-159.875 79.748C507.222 323.8 536.444 388.56 473.333 453.32c-119.86 122.992-172.272-30.859-185.702-70.281-2.462-7.227-3.614-10.608-3.631-7.733-.017-2.875-1.169.506-3.631 7.733-13.43 39.422-65.842 193.273-185.702 70.281-63.111-64.76-33.89-129.52 80.454-149.07-65.72 11.185-139.6-7.295-159.875-79.748C9.945 203.66 0 75.293 0 57.947 0-28.906 76.135-1.611 123.121 33.664z'/%3E%3C/svg%3E\")\n86\t center / contain no-repeat;\n87\t}\n88\t\n89\t.header-discord-link:hover {\n90\t opacity: 0.6;\n91\t}\n92\t\n93\t.header-discord-link:before {\n94\t content: \"\";\n95\t width: 24px;\n96\t height: 24px;\n97\t display: flex;\n98\t background: url(\"data:image/svg+xml,%3Csvg viewBox='0 0 127.14 96.36' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill%3D%22%235865F2%22 d='M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z'/%3E%3C/svg%3E\")\n99\t center / contain no-repeat;\n100\t}\n101\t\n102\thtml[data-theme=\"dark\"] .header-discord-link:before {\n103\t background: url(\"data:image/svg+xml,%3Csvg viewBox='0 0 127.14 96.36' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill%3D%22%235865F2%22 d='M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z'/%3E%3C/svg%3E\")\n104\t center / contain no-repeat;\n105\t}\n106\t\n107\t/* Admonition */\n108\t\n109\tdiv.theme-admonition.theme-admonition-tip.alert.alert--success {\n110\t background-color: #9ccfd8;\n111\t border-color: #56949f;\n112\t}\n113\t\n114\thtml[data-theme=\"dark\"] div.theme-admonition.theme-admonition-tip {\n115\t color: #102445;\n116\t}\n117\t\n118\thtml[data-theme=\"dark\"] div.theme-admonition.theme-admonition-tip svg {\n119\t fill: #102445;\n120\t}\n121\t\n122\thtml[data-theme=\"dark\"] div.theme-admonition.theme-admonition-tip a {\n123\t color: #102445;\n124\t}\n125\t\n126\tiframe.youtube {\n127\t width: 100%;\n128\t margin-bottom: 15px;\n129\t}\n130\t\n131\t@media screen and (max-width: 350px) {\n132\t iframe.youtube {\n133\t height: 200px;\n134\t }\n135\t}\n136\t\n137\t@media screen and (min-width: 350px) {\n138\t iframe.youtube {\n139\t height: 300px;\n140\t }\n141\t}\n142\t\n143\t@media screen and (min-width: 600px) {\n144\t iframe.youtube {\n145\t height: 400px;\n146\t }\n147\t}\n148\t\n149\t.winstore {\n150\t width: 200px;\n151\t border-radius: 8px;\n152\t margin-top: 25px;\n153\t}\n154\t\n155\t[data-theme=\"dark\"] .withings {\n156\t background: white;\n157\t padding: 17px 10px 10px 10px;\n158\t display: inline;\n159\t border-radius: 10px;\n160\t}\n161\t\n\n... [100 lines truncated] ...","displayPath":"website\\src\\css\\custom.css"},"type":"attachment","uuid":"a4f70398-3c0f-48e9-bedc-930442e11fd3","timestamp":"2026-07-28T05:59:43.416Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a4f70398-3c0f-48e9-bedc-930442e11fd3","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"D:\\oh-my-posh\\website\\export_themes.mjs","snippet":"1\timport { execFile } from 'node:child_process';\n2\timport { randomUUID } from 'node:crypto';\n3\timport { promises } from 'node:fs';\n4\timport { tmpdir } from 'node:os';\n5\timport { dirname, join } from 'node:path';\n6\timport { fileURLToPath } from 'node:url';\n7\timport { promisify } from 'node:util';\n8\t\n9\tconst execFileAsync = promisify(execFile);\n10\tconst __filename = fileURLToPath(import.meta.url);\n11\tconst __dirname = dirname(__filename);\n12\t\n13\t// Victor Mono's own font metrics: the family name plus the four numbers the exporter needs to lay\n14\t// out its grid for a font it has no built-in profile for. This is the single source of truth for\n15\t// both this script (which renders every theme in this font for the gallery) and\n16\t// tools/svg-png-compare/shot.mjs's --website mode (which renders exactly what this build ships, so\n17\t// it needs the same numbers passed as the same CLI flags) - shot.mjs imports these values rather\n18\t// than re-deriving or paraphrasing them, so keep the derivation comments here, not there.\n19\t//\n20\t// FONT_FAMILY matches the family @font-face declares in src/css/custom.css - the whole point of\n21\t// inlining is that these SVGs pick that font up for free once embedded in a page that serves it,\n22\t// with no embedding/subsetting/data-URI of their own.\n23\t//\n24\t// The four metrics are read from VictorMonoNerdFontMono-Regular.ttf (the Mono patched variant\n25\t// static/fonts/VictorMono.ttf ships - see the note above the @font-face in src/css/custom.css for\n26\t// why that variant): the svg package's --cell-width/--line-height defaults are Hack Nerd Font's\n27\t// ratios (src/svg/svg.go's defaultCellWidth/defaultLineHeight), correct for the CLI's own default\n28\t// font stack but wrong for Victor Mono, which this build actually renders in. Passing these\n29\t// explicitly keeps the grid math (column advance, row height) matched to the font the browser will\n30\t// actually lay the text out in.\n31\t//\n32\t// CELL_WIDTH: ASCII 'M' advance 600 / unitsPerEm 1100 = 0.5455em.\n33\t// LINE_HEIGHT: hhea (Ascender - Descender + LineGap) 1550 / unitsPerEm 1100 =\n34\t// 1.4091em, times 1.2 (the retired PNG renderer's own lineSpacing constant,\n35\t// which the svg package's default also carries - see defaultLineHeight) =\n36\t// 1.6909em.\n37\texport const VICTOR_MONO = {\n38\t FONT_FAMILY: 'Victor Mono',\n39\t CELL_WIDTH: 0.5455,\n40\t LINE_HEIGHT: 1.6909,\n41\t // The box Victor Mono's powerline separators actually ink, read from the\n42\t // glyf entry for U+E0B0 (and shared verbatim by U+E0B2/E0B4/E0B6/E0B8):\n43\t // y -358..1208 at unitsPerEm 1100, so 1208/1100 = 1.0982em above the\n44\t // baseline and 358/1100 = 0.3255em below it. A segment's background is\n45\t // drawn to this box rather than to LineHeight, which is 19% taller - see\n46\t // svg.Options' FillAscent/FillDescent.\n47\t FILL_ASCENT: 1.0982,\n48\t FILL_DESCENT: 0.3255,\n49\t};\n50\t\n51\tconst CONFIG = {\n52\t THEMES_CONFIG_DIR: join(__dirname, '../themes'),\n53\t // Read by plugins/themes at build time (usePluginData('oh-my-posh-themes')) and\n54\t // inlined into docs/themes.mdx via . Not under static/: nothing\n55\t // references these SVGs by URL any more (they're inlined, not -loaded), so\n56\t // living outside static/ keeps them from also being copied into the deployed\n57\t // build/ output as dead weight. Regenerated on every build (see the \"themes\" npm\n58\t // script) and gitignored, exactly like the PNGs it replaces.\n59\t MANIFEST_FILE: join(__dirname, 'generated/themes.json'),\n60\t CONCURRENCY: 8,\n61\t THEME_EXTENSIONS: ['.omp.json', '.omp.toml', '.omp.yaml'],\n62\t SEGMENT_DATA_FILE: join(__dirname, 'segment_data.json'),\n63\t GITHUB_BASE_URL: 'https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/themes',\n64\t FONT_FAMILY: VICTOR_MONO.FONT_FAMILY,\n65\t CELL_WIDTH: VICTOR_MONO.CELL_WIDTH,\n66\t LINE_HEIGHT: VICTOR_MONO.LINE_HEIGHT,\n67\t FILL_ASCENT: VICTOR_MONO.FILL_ASCENT,\n68\t FILL_DESCENT: VICTOR_MONO.FILL_DESCENT,\n69\t};\n70\t\n71\tconst TRENDING_FETCH_TIMEOUT_MS = 4000;\n72\t\n73\t/**\n74\t * Small, tasteful deny-list used as a safety net behind each source's own\n75\t * explicit-content flag. Matched word-boundary aware so substrings inside\n76\t * unrelated words (e.g. \"sex\" in \"Essex\") don't trigger a false positive.\n77\t */\n78\tconst CONTENT_DENY_LIST = ['fuck', 'shit', 'bitch', 'nigga', 'cunt', 'motherfucker'];\n79\tconst CONTENT_DENY_REGEX = new RegExp(`\\\\b(${CONTENT_DENY_LIST.join('|')})\\\\b`, 'i');\n80\t\n81\t// There used to be a THEME_CONFIG_OVERRIDES map here (per-theme author/bgColor\n82\t// overrides). Both only ever fed the PNG path's --author/--background-color\n83\t// flags - image.Settings.Author's caption and image.Renderer's canvas fill -\n84\t// neither of which the svg format reads (see config_export_svg.go: it takes\n85\t// the terminal background from the theme's own config, not a CLI flag). Now\n86\t// that every theme exports as svg, the overrides had no effect left to have.\n87\t\n88\tfunction isValidTheme(fileName) {\n89\t return CONFIG.THEME_EXTENSIONS.some((ext) => fileName.endsWith(ext));\n90\t}\n91\t\n92\tfunction getThemeNameFromFile(fileName) {\n93\t const lastDotIndex = fileName.lastIndexOf('.');\n94\t const secondLastDotIndex = fileName.lastIndexOf('.', lastDotIndex - 1);\n95\t return fileName.slice(0, secondLastDotIndex);\n96\t}\n97\t\n98\tasync function fetchJsonWithTimeout(url) {\n99\t const controller = new AbortController();\n100\t const timeout = setTimeout(() => controller.abort(), TRENDING_FETCH_TIMEOUT_MS);\n101\t\n102\t try {\n103\t const response = await fetch(url, { signal: controller.signal });\n104\t\n105\t if (!response.ok) {\n106\t throw new Error(`request failed with status ${response.status}`);\n107\t }\n108\t\n109\t return await response.json();\n110\t } finally {\n111\t clearTimeout(timeout);\n112\t }\n113\t}\n114\t\n115\t/**\n116\t * Plain-text safety net behind each source's own explicit flag - intentionally\n117\t * short rather than a comprehensive filter.\n118\t */\n119\tfunction isClean(title, artist) {\n120\t return !CONTENT_DENY_REGEX.test(`${title} ${artist}`);\n121\t}\n122\t\n123\tasync function trendingFromDeezer() {\n124\t const body = await fetchJsonWithTimeout('https://api.deezer.com/chart/0/tracks?limit=25');\n125\t const tracks = body?.data;\n126\t\n127\t if (!Array.isArray(tracks) || tracks.length === 0) {\n128\t throw new Error('no tracks returned');\n129\t }\n130\t\n131\t const track = tracks.find((entry) => !entry.explicit_lyrics && isClean(entry.title, entry.artist?.name));\n132\t\n133\t if (!track) {\n134\t throw new Error('no clean track found in chart');\n135\t }\n136\t\n137\t return { artist: track.artist.name, track: track.title };\n138\t}\n139\t\n140\tasync function trendingFromAppleRSS() {\n141\t const body = await fetchJsonWithTimeout('https://rss.marketingtools.apple.com/api/v2/us/music/most-played/25/songs.json');\n142\t const tracks = body?.feed?.results;\n143\t\n144\t if (!Array.isArray(tracks) || tracks.length === 0) {\n145\t throw new Error('no tracks returned');\n146\t }\n147\t\n148\t // Apple only includes contentAdvisoryRating when a track is explicit, so presence of the key\n149\t // (not its value) is the signal to filter on. The value is the literal string \"Explict\" (sic),\n150\t // Apple's own misspelling, verified against the live feed - do not \"correct\" it here.\n151\t const track = tracks.find((entry) => !('contentAdvisoryRating' in entry) && isClean(entry.name, entry.artistName));\n152\t\n153\t if (!track) {\n154\t throw new Error('no clean track found in feed');\n155\t }\n156\t\n157\t return { artist: track.artistName, track: track.name };\n158\t}\n159\t\n160\t/**\n161\t * Fetches a trending track (Deezer, then Apple Music RSS as a fallback) and injects\n162\t * it into the spotify and ytm segment payloads of a temporary copy of the committed\n163\t * data file. The committed file is never modified; on any failure the committed\n164\t * file is used as-is.\n165\t */\n166\tasync function buildDataFileWithTrending() {\n167\t let trending;\n168\t\n169\t try {\n170\t trending = await trendingFromDeezer();\n171\t } catch (error) {\n172\t console.warn(`Trending track lookup via Deezer failed: ${error.message}`);\n173\t\n174\t try {\n175\t trending = await trendingFromAppleRSS();\n\n... [223 lines truncated] ...","displayPath":"website\\export_themes.mjs"},"type":"attachment","uuid":"843d740c-8e1a-4872-a08c-5d8142aa5308","timestamp":"2026-07-28T05:59:43.416Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"843d740c-8e1a-4872-a08c-5d8142aa5308","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"D:\\oh-my-posh\\src\\cli\\config_export_svg.go","snippet":"","displayPath":"src\\cli\\config_export_svg.go"},"type":"attachment","uuid":"d432eeb7-200c-4eee-b12c-ef2cb507a078","timestamp":"2026-07-28T05:59:43.416Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d432eeb7-200c-4eee-b12c-ef2cb507a078","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-fa63db8b-55e5-44d4-aff4-ebe8c65c97bf","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"8b86c2ea-0f04-4dd0-bb69-f4593639d249","timestamp":"2026-07-28T05:59:43.611Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8b86c2ea-0f04-4dd0-bb69-f4593639d249","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwjdsXSfmGpWNPwsvjC","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The website agent reported an anomaly where files were reverted with tool messages instructing it not to tell me—a prompt-injection pattern embedded in the results that it correctly refused. I need to surface this to the user, though I'm realizing those \"don't tell the user\" notices are actually standard file-change notifications from the harness that I also see in my own interactions.\n\nBut the real issue is that files were reverted to committed state mid-work. The terminal agent was told to run `git stash` for benchmarks while the website agent was actively editing the tree—that's the collision. I need to check the current state: verify git status, confirm whether the terminal agent's work is still there, check for any remaining stashes, and examine the actual diff to validate the website agent's claims.","signature":"CAISjA4KhwEIEBgCKkDJjVA1QjQ+X5pjFGaRGoh+BQ/8B7nwuMRwlNU5Wy6U/vX0aY4JB5YV4krOEKURuzVZfquqvD7pZnnCirjBoPzJMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDAz9dg3bgXXzcvfTChoMXbdsMGDN2GfUKmtCIjA/7T+shkR9H+STxaMwTj9Y37lCmBCM7k8cioEilxvjZuSpOnfzpprvARPmBd/Gn1cqsQwrEoIXkHBHRRPQ63bsdSq6viTuLFQ8YHEJvkYFQfNgUpDAoblaCnhHLTKXVVkQkwv6qqyfstZ2jTqKQBeQ1mIfTiAsu4oS4N8rzJffHJmddZzX83nrtRPLkZXhhFzPxR/2Kku1rFH0UKmrmhgscR1SC5iqeD2JRMAnf7Ix+pHGKdiBPmcSLbpy9Kdw8PPYLF3cvDx4MVzIEoNXAQwqugSzIoyDSW04kdl695xAxosMngqQq9fQ4LYu8+8QjkYFqcci8vyW1X5qm/FIAOurzjXdjge0xTQDQ/qXFhjbhBh2mgpyW7Lyyfl3NJBRm1nXQAeitw2fk7qdCNC3aRmj1Tix3L+MGKRYY0MMEFRX66yVabJ/3f9MfObB0UGu3ElUuvByF5zmhD+xUb+e7N5FlVZfl2PojQHkykQeS4x5basVSm2hCuIKMWQj6f9AE91hon1J/0ly3xCXAb9NlAAqya4oW4b3cSgqId4LA5sN3HNh/q4IXLumD6MbUdnXyMBebEkwF/KL5ykz1hCqB7WLI+3McPiu6EidzLYMomJvu9zbCsDDLeQRYhHZlEXymiggYWDxQ5zfWyrQf83kcVobDu1b1HRy7x+tplorUQOIKGupdBJfMzCa4n2jH/uFDo0F1vTmr4RaADnxD0F9KkHSHjuwy7PJM47RjouCGR0QR1XSN+Oco5LGSqzJIxWJl0EeWY9m12I8R0mxdhXSDSXyUKJ3L7qdfEv2ZuBQwhqP79QcUHzaY3SHu+yFk1NMnrnnV9MhhqrEm39nyjjFllB5fsi5ck8wUPBnnd7RlJOREnL6AsxEquao64+CUnHAa2agi6CX/S9C1rgWwvEPd4NquWR/8RGaFr9L+lGMK6q9cmsZ4wNPHrNV+XFWvx4EYxY4mzWNnQ8RfaHPNoV35Y5Jj9Q+hcTsEwcRzr/pmycIvCGHvGbvMc1Dlqs2V8gr6/LoTkgJEshB9WIhbFMFDB3C4BdnPR/v3YCoAbhJOCxgwoOudbV8JvRYCF/H8nZ51tYa0XEU4LSFge9qYL1vyrOhP4iPlPXLCmYJXgqmDjeurf7L2QJw7XTv80A4ivvbNiB2yr/innd6rzfNJHPMpqh0izzIzw539nwZnJ1P9q612uarJ/tFN/alz4wMzWHfqf4XCwBYI8TRq2JyeeaGVd2eh+DP1ZvhAhj77EUlYDYjyjSw5s/7T7P+COFvYwxsVi4J/R627YE3U+xjjA1JUaVGTuG8mF7/blaKRTVLGAAIHv4mq8fYg6Gvp6LJYUehq+IJp8k8faSNknNbdsDqLAeZltcOjIOuluQ2dPJdUnG/tNHDSgeHtMHvgeqtLsgCpzh0hsnLIudYX+shvG1QNWsn1uHTvpqaJVTPCWiohIUo/IFP5QdUBlMunGbdT6wDBOwTAJbH2u9YPW3EpYsHNSkVbL8SSsaPmQQmz8nrnbmkD9MJDZbk3xRbfUoN4ECWGUAVscOWRp+BbrcFEepOpVyg4vt6+kCWGeyO2MM9Uplac2R/ixkjDKcRdWLqwuLMjMWpywUJolYI97yjk/hma4upq1cUdRRhWPtmni7vGB5HPft+8IV1BtkCwGiZLphmRk0/cOlyPvY37u4iRVrLSJIKTXUvyAe87KJoumSJ9Ab0rnUnvg7T6gJWa2uUubByqUvlS7ji3oLALQPak7Ov0Iw3EMmYbcDI5fPgUhfAjpQgWEM6L++Mv8hZnyzxbk4N2Rw4BwsG9+bZZSfZoTBfpeLx27WOPl7m5HdZIZoMs+XZqeJNIL1e2t9z34shu7x/54HrgGQ8TTAj6dKF0/iVvPUTy38BmWh0APHgRPWbISC6+30Bo12mvsoo7kzZ90vZpHNHmFTE7SG/4KL4x466IWxKdtuvdHZDagz2HIIeeKYodgYYvko7rKaD5MT6OZkRB1A1XHENCCkaYqHmZkeFTvt8mQD3yF738YGqU+jYNB19NrNBeiagcJYqY2HII8hhI/d8NUWOGwl1I9aORJmE5C2v03OpXQkDZU34V0dlEspk7SbNKdjcso9OEmmcwz/8woCwpbjFT3okaFEkeUSazS+NB+WRCQDI4UNNQPglkpXLdETpqw9+DjQHa5SA+kwwxvijvZYgGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":15321,"cache_read_input_tokens":381289,"output_tokens":621,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":15321,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":621,"cache_read_input_tokens":381289,"cache_creation_input_tokens":15321,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":15321},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwjZGhq3H9pBZdpA6GT","type":"assistant","uuid":"6a65c454-8168-4652-9dd0-702986bab773","timestamp":"2026-07-28T05:59:56.198Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6a65c454-8168-4652-9dd0-702986bab773","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwjdsXSfmGpWNPwsvjC","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01HsNbVPwGhkR7WY7Mg7cR5z","name":"Bash","input":{"command":"git stash list && echo \"--- status ---\" && git status --short && echo \"--- diffstat ---\" && git diff --stat | tail -25","description":"Check for leftover stashes and current tree state"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":15321,"cache_read_input_tokens":381289,"output_tokens":621,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":15321,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":621,"cache_read_input_tokens":381289,"cache_creation_input_tokens":15321,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":15321},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwjZGhq3H9pBZdpA6GT","type":"assistant","uuid":"93d90cb4-be57-44db-a70b-3240b02b2d7a","timestamp":"2026-07-28T05:59:56.571Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"93d90cb4-be57-44db-a70b-3240b02b2d7a","isSidechain":false,"promptId":"6e32062f-82d1-4afa-9088-0cf03448708b","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01HsNbVPwGhkR7WY7Mg7cR5z","type":"tool_result","content":"stash@{0}: WIP on next: 0f8c8a82 fix(svg): end a segment background where its separator does\nstash@{1}: WIP on next: e279f6a8 test(terminal): cover the gradient body writer\n--- status ---\n M src/color/colors.go\n M src/terminal/run.go\n M src/terminal/run_test.go\n M src/terminal/writer.go\n M tools/svg-png-compare/compare.mjs\n M tools/svg-png-compare/shot.mjs\n M tools/svg-png-compare/zip.mjs\n M website/docs/segments/overview.mdx\n M website/export_themes.mjs\n M website/plugins/segments/index.js\n M website/plugins/themes/index.js\n M website/src/components/SegmentCatalog/index.js\n M website/src/components/SegmentCatalog/styles.module.css\n M website/src/css/custom.css\n M website/src/pages/index.js\n M website/src/pages/styles.module.css\n?? src/cli/config_export_svg_test.go\n?? tools/svg-png-compare/common.mjs\n?? website/plugins/readGeneratedJson.js\n?? website/src/components/SegmentCount/\n--- diffstat ---\n src/color/colors.go | 8 ++\n src/terminal/run.go | 26 +++--\n src/terminal/run_test.go | 8 --\n src/terminal/writer.go | 74 +++++++------\n tools/svg-png-compare/compare.mjs | 114 ++++---------------\n tools/svg-png-compare/shot.mjs | 97 ++++------------\n tools/svg-png-compare/zip.mjs | 3 +-\n website/docs/segments/overview.mdx | 4 +-\n website/export_themes.mjs | 123 +++++++++++++--------\n website/plugins/segments/index.js | 50 ++++++++-\n website/plugins/themes/index.js | 44 +++-----\n website/src/components/SegmentCatalog/index.js | 28 ++++-\n .../components/SegmentCatalog/styles.module.css | 13 +--\n website/src/css/custom.css | 16 +++\n website/src/pages/index.js | 88 ++++++++-------\n website/src/pages/styles.module.css | 13 +--\n 16 files changed, 341 insertions(+), 368 deletions(-)","is_error":false}]},"uuid":"b35aa746-1c4f-4807-99a7-f353663a26b5","timestamp":"2026-07-28T05:59:57.786Z","toolUseResult":{"stdout":"stash@{0}: WIP on next: 0f8c8a82 fix(svg): end a segment background where its separator does\nstash@{1}: WIP on next: e279f6a8 test(terminal): cover the gradient body writer\n--- status ---\n M src/color/colors.go\n M src/terminal/run.go\n M src/terminal/run_test.go\n M src/terminal/writer.go\n M tools/svg-png-compare/compare.mjs\n M tools/svg-png-compare/shot.mjs\n M tools/svg-png-compare/zip.mjs\n M website/docs/segments/overview.mdx\n M website/export_themes.mjs\n M website/plugins/segments/index.js\n M website/plugins/themes/index.js\n M website/src/components/SegmentCatalog/index.js\n M website/src/components/SegmentCatalog/styles.module.css\n M website/src/css/custom.css\n M website/src/pages/index.js\n M website/src/pages/styles.module.css\n?? src/cli/config_export_svg_test.go\n?? tools/svg-png-compare/common.mjs\n?? website/plugins/readGeneratedJson.js\n?? website/src/components/SegmentCount/\n--- diffstat ---\n src/color/colors.go | 8 ++\n src/terminal/run.go | 26 +++--\n src/terminal/run_test.go | 8 --\n src/terminal/writer.go | 74 +++++++------\n tools/svg-png-compare/compare.mjs | 114 ++++---------------\n tools/svg-png-compare/shot.mjs | 97 ++++------------\n tools/svg-png-compare/zip.mjs | 3 +-\n website/docs/segments/overview.mdx | 4 +-\n website/export_themes.mjs | 123 +++++++++++++--------\n website/plugins/segments/index.js | 50 ++++++++-\n website/plugins/themes/index.js | 44 +++-----\n website/src/components/SegmentCatalog/index.js | 28 ++++-\n .../components/SegmentCatalog/styles.module.css | 13 +--\n website/src/css/custom.css | 16 +++\n website/src/pages/index.js | 88 ++++++++-------\n website/src/pages/styles.module.css | 13 +--\n 16 files changed, 341 insertions(+), 368 deletions(-)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"93d90cb4-be57-44db-a70b-3240b02b2d7a","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b35aa746-1c4f-4807-99a7-f353663a26b5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwkftbH9P8G6sjzpGq3","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"My `config_export_svg.go` changes disappeared from git status—only the test file shows as untracked, which means my `TrimSuffix` edit got stashed away by the terminal agent and never restored. There's a stash sitting there that contains both that file and possibly some website work that needs to be recovered.","signature":"CAISwQoKhwEIEBgCKkAW/SNG7mkmXC8rdHGVPWvSwfBs2h35iEB0mjCzfXmLIucs82glrtz8TmvPrOutdRX3J1LfTsT1lQQQzJaRfmt1Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDE/neuLdF3rbCQcxJBoMJGV4QH2dphJ5ytCEIjB3kffvx0LUl5kMIqcZZY3zFyV/W1QoHSYzYTDqJ2yosw0E2LCL1MGvt3r7sPrXTTsq5giPi20txbcO8X/TQ7mVhPc6rtB618rkyS7tiIkh8G/1uasdwIcUq752LfbBm8rzYucll+NZgir11xGLUJduPtwh460JjG1lkVZPRrysgRlqG5McVyxwsdUt9jFgf+NgYrHIH3tJ37klpaA2uGTbIQDSG8wlFKNZUhWLm3tB1VJp2duvQj1sRRuLfLTk51xAJNGzknYgDijub3uJw02unH+oyL7AkoQflLiG5Istl7NbvmKHw6SmeLP2O5/fLnvPv9kxNAecUW4ojyFfWc8yAfM/ZIi0a+gCBMnESPrUZ26CPwwdIX9vManvEYFhm7gZahtE4BQ99rWcfNwWf9nG1gNrbtOrRNPojop4kg5TcQQsEE4EBHhQNwmdxBnvWAWzkzwS0NeCTccWOhEcXlbdrqD5TEuLaS8LcoSgeQ/FzsEgHP53OSDZUZp7ppgRcN5gooK8JFIxAnvHzbYU7cmSRhnHU1HJgI65BGinIGNpO8kZM6AuWd8jV4I2Jts673IEjNUTp9PukldrW5ENSj0qEENZqL1f6UKmLUBcneOAvvEMngd+pftN2HyD12yO4N0kRztoqqytRqjPaxCioRRMCi9WFU9sJKsbgkSiI1JglDteBDjYw+CbtcJStmTWgyQeqkpWAcswfat+xlK/23gHXZss7hiJf7uQxJWZxf/yUdQ2pRZYGUNbKjvZ9JsNA+LsO20ZAoWl5GxPRiZDIuNXQeaBYxTq2KMm2h4IAn0ihYGGNwak99Dkk3WiKbWabsGjYfbEg4LXRWWwQXrTurQiBPguY5K2JpPb2vTeCE1FiAKjbeosrYXt1L9ws8XY4rh903hNKW9EULnGHcpFQoJZ/QBf47V/B9QwU9uzTM6CipMG+3kQJOC88u0s4tDorfO+FRKqpJgfnr88mqZr5mJOX0A7Ssy3Nfw/wRiM0B4WyvFsiqmEILpAS3NozUiIrOuKxv1bcxinQAMdvOrUvRbsA8TOMarB01qEB7KBG7Lq9S4SAykYHwcu1QpTUJV9MHGUY6Ajcgwafcftphl36ouUyeAw0OmP+LTMe0vgbCTdbK1NYAp/IDgbEwxVYY9vqBx47u0vWe2u3+Aq+Xkk3O+QCP84xX2KPMGzdP/IeSd9O7kDf4VxDQSjGt20QDdRuGnLFoIRwbnsAQfT7gffKgV4ISZWcpzWrmPKIiQBaUiIIXIvfQdi2wSVJRsrqzWK/kRtEDxlEU+5oSoxp2ESeua/SV30X6YKkkM15L+6gS/NHtZbvES9Pgnj+sF2Hw6htSycJlOG0QmHHKRztSREtyvRJdvYzYyapfnXS8e3UPudy+kcvmQDmTIQGsimjpfdkGWbrlPBGJaSiYj+UqYsb1s8U93N+IQIY2ItIw/mxliX9O92ni3xFUPuuYVWgPiNLh40NaryV8tQg1tFsjUePavSF1nZiZOftiYu0MLuZ492yHe3B7M+SGgRx24PhEPAmhRaaVaK9cZMV7rYmlPn2mwMYmEoIjE1xkQEGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1451,"cache_read_input_tokens":396610,"output_tokens":552,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1451,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":552,"cache_read_input_tokens":396610,"cache_creation_input_tokens":1451,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1451},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwkY82R8TYtQ2qsQ4rv","type":"assistant","uuid":"de893087-c292-4941-94ff-5ef0c721b5dd","timestamp":"2026-07-28T06:00:07.905Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"de893087-c292-4941-94ff-5ef0c721b5dd","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwkftbH9P8G6sjzpGq3","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01BTW4np3NaCGJDoRgtgWJeY","name":"Bash","input":{"command":"git stash show --stat stash@{0} && echo \"=== cli file in stash? ===\" && git show stash@{0} -- src/cli/config_export_svg.go | head -30","description":"Inspect the leftover stash"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1451,"cache_read_input_tokens":396610,"output_tokens":552,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1451,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":552,"cache_read_input_tokens":396610,"cache_creation_input_tokens":1451,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1451},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwkY82R8TYtQ2qsQ4rv","type":"assistant","uuid":"60f63de1-a322-4cd9-8384-dfbdebc8e776","timestamp":"2026-07-28T06:00:08.479Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"60f63de1-a322-4cd9-8384-dfbdebc8e776","isSidechain":false,"promptId":"6e32062f-82d1-4afa-9088-0cf03448708b","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01BTW4np3NaCGJDoRgtgWJeY","type":"tool_result","content":" src/cli/config_export_svg.go | 8 ++-\n src/color/colors.go | 8 +++\n src/terminal/run.go | 26 ++++----\n src/terminal/run_test.go | 8 ---\n src/terminal/writer.go | 74 +++++++++++++----------\n tools/svg-png-compare/compare.mjs | 114 ++++++-----------------------------\n tools/svg-png-compare/shot.mjs | 97 +++++++-----------------------\n tools/svg-png-compare/zip.mjs | 3 +-\n website/export_themes.mjs | 123 +++++++++++++++++++++++---------------\n website/plugins/segments/index.js | 37 ++++--------\n website/plugins/themes/index.js | 44 +++++---------\n 11 files changed, 212 insertions(+), 330 deletions(-)\n=== cli file in stash? ===\ncommit 0e24874dceb6ca8bcae12589dab1593fffec2811\nMerge: 0f8c8a82 5073b9b6\nAuthor: Jan De Dobbeleer \nDate: Tue Jul 28 07:46:33 2026 +0200\n\n WIP on next: 0f8c8a82 fix(svg): end a segment background where its separator does\n\ndiff --cc src/cli/config_export_svg.go\nindex f18da6d2,f18da6d2..bb9d399b\n--- a/src/cli/config_export_svg.go\n+++ b/src/cli/config_export_svg.go\n@@@ -128,7 -128,7 +128,13 @@@ func svgOutputPath(configPath, output s\n \tbase := filepath.Base(configPath)\n \n \tmatch := regex.FindNamedRegexMatch(`(\\.?)(?P.*)\\.(json|yaml|yml|toml|jsonc)`, base)\n--\tname := strings.TrimRight(match[\"STR\"], \".omp\")\n++\n++\t// TrimSuffix, not TrimRight: TrimRight takes a cutset, so `.omp` there\n++\t// strips any trailing run of '.', 'o', 'm' and 'p' rather than the\n++\t// suffix. The retired PNG renderer carried that bug (image.go's\n++\t// setOutputPath) and it came along with the port — demo.json exported as\n++\t// de.svg, promo.json as pr.svg.\n++\tname := strings.TrimSuffix(match[\"STR\"], \".omp\")\n \n \tif name == \"\" {\n \t\tname = \"prompt\"","is_error":false}]},"uuid":"1bb8db87-0cec-4a6c-9ef4-d7b0b8377242","timestamp":"2026-07-28T06:00:09.564Z","toolUseResult":{"stdout":" src/cli/config_export_svg.go | 8 ++-\n src/color/colors.go | 8 +++\n src/terminal/run.go | 26 ++++----\n src/terminal/run_test.go | 8 ---\n src/terminal/writer.go | 74 +++++++++++++----------\n tools/svg-png-compare/compare.mjs | 114 ++++++-----------------------------\n tools/svg-png-compare/shot.mjs | 97 +++++++-----------------------\n tools/svg-png-compare/zip.mjs | 3 +-\n website/export_themes.mjs | 123 +++++++++++++++++++++++---------------\n website/plugins/segments/index.js | 37 ++++--------\n website/plugins/themes/index.js | 44 +++++---------\n 11 files changed, 212 insertions(+), 330 deletions(-)\n=== cli file in stash? ===\ncommit 0e24874dceb6ca8bcae12589dab1593fffec2811\nMerge: 0f8c8a82 5073b9b6\nAuthor: Jan De Dobbeleer \nDate: Tue Jul 28 07:46:33 2026 +0200\n\n WIP on next: 0f8c8a82 fix(svg): end a segment background where its separator does\n\ndiff --cc src/cli/config_export_svg.go\nindex f18da6d2,f18da6d2..bb9d399b\n--- a/src/cli/config_export_svg.go\n+++ b/src/cli/config_export_svg.go\n@@@ -128,7 -128,7 +128,13 @@@ func svgOutputPath(configPath, output s\n \tbase := filepath.Base(configPath)\n \n \tmatch := regex.FindNamedRegexMatch(`(\\.?)(?P.*)\\.(json|yaml|yml|toml|jsonc)`, base)\n--\tname := strings.TrimRight(match[\"STR\"], \".omp\")\n++\n++\t// TrimSuffix, not TrimRight: TrimRight takes a cutset, so `.omp` there\n++\t// strips any trailing run of '.', 'o', 'm' and 'p' rather than the\n++\t// suffix. The retired PNG renderer carried that bug (image.go's\n++\t// setOutputPath) and it came along with the port — demo.json exported as\n++\t// de.svg, promo.json as pr.svg.\n++\tname := strings.TrimSuffix(match[\"STR\"], \".omp\")\n \n \tif name == \"\" {\n \t\tname = \"prompt\"","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"60f63de1-a322-4cd9-8384-dfbdebc8e776","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1bb8db87-0cec-4a6c-9ef4-d7b0b8377242","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwmY4aqvWf7DWFgWpvC","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I've got the `TrimSuffix` fix in my stash, but most of the other changes there are already in the current tree from the terminal and website work. The `plugins/segments/index.js` file has diverged since the stash was created—it's grown from 37 to 50 lines as the website agent extended it—and there are new `SegmentCatalog` and CSS changes that came after the stash. So I only need to restore `src/cli/config_export_svg.go` from the stash to avoid conflicts and regressions with the website files.\n\nI'm checking out just that one file from the stash, then dropping it. There's also an older stash from a previous session that I'll leave untouched. After restoring, I'll verify the tree is coherent and run the build and tests to make sure everything works.\n\nI should also clarify for the user what actually happened: the website agent reported that files were reverted and told to hide it, which was real—that revert came from my instruction to the terminal agent. The \"don't tell the user\" messages the agent saw were just normal harness file-change notices that it misinterpreted as injection instructions. I'll explain both of those things plainly.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1426,"cache_read_input_tokens":398061,"output_tokens":713,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1426,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":713,"cache_read_input_tokens":398061,"cache_creation_input_tokens":1426,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1426},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwmRL26ubGLQgC9mcXB","type":"assistant","uuid":"fd9735d2-95ec-4778-a0a7-63666240110b","timestamp":"2026-07-28T06:00:22.382Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fd9735d2-95ec-4778-a0a7-63666240110b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwmY4aqvWf7DWFgWpvC","type":"message","role":"assistant","content":[{"type":"text","text":"The website agent's report of files being reverted mid-run was real, and it was my fault. I told the terminal agent to `git stash` for a benchmark baseline — with no pathspec, that swept the entire working tree, including the other agent's in-flight edits. Same trap I've hit before.\n\nDamage assessment and recovery:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1426,"cache_read_input_tokens":398061,"output_tokens":713,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1426,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":713,"cache_read_input_tokens":398061,"cache_creation_input_tokens":1426,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1426},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwmRL26ubGLQgC9mcXB","type":"assistant","uuid":"d1868507-cf39-4c14-b855-ab58bc634564","timestamp":"2026-07-28T06:00:22.451Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d1868507-cf39-4c14-b855-ab58bc634564","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwmY4aqvWf7DWFgWpvC","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_018VwYpbanWNNrSUCFDASu9k","name":"Bash","input":{"command":"git checkout stash@{0} -- src/cli/config_export_svg.go && git status --short src/cli/ && grep -n \"TrimSuffix\" src/cli/config_export_svg.go","description":"Restore the lost TrimSuffix fix from the stash"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1426,"cache_read_input_tokens":398061,"output_tokens":713,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1426,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":713,"cache_read_input_tokens":398061,"cache_creation_input_tokens":1426,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1426},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwmRL26ubGLQgC9mcXB","type":"assistant","uuid":"04fdb506-1e1e-42a3-bf68-5954d9292604","timestamp":"2026-07-28T06:00:23.295Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"04fdb506-1e1e-42a3-bf68-5954d9292604","isSidechain":false,"promptId":"6e32062f-82d1-4afa-9088-0cf03448708b","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_018VwYpbanWNNrSUCFDASu9k","type":"tool_result","content":"M src/cli/config_export_svg.go\n?? src/cli/config_export_svg_test.go\n125:\t\treturn strings.TrimSuffix(path, filepath.Ext(path)) + svgExt\n132:\t// TrimSuffix, not TrimRight: TrimRight takes a cutset, so `.omp` there\n137:\tname := strings.TrimSuffix(match[\"STR\"], \".omp\")","is_error":false}]},"uuid":"d981fb7e-104a-47a1-aacb-13ad8fbf5124","timestamp":"2026-07-28T06:00:26.753Z","toolUseResult":{"stdout":"M src/cli/config_export_svg.go\n?? src/cli/config_export_svg_test.go\n125:\t\treturn strings.TrimSuffix(path, filepath.Ext(path)) + svgExt\n132:\t// TrimSuffix, not TrimRight: TrimRight takes a cutset, so `.omp` there\n137:\tname := strings.TrimSuffix(match[\"STR\"], \".omp\")","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"04fdb506-1e1e-42a3-bf68-5954d9292604","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d981fb7e-104a-47a1-aacb-13ad8fbf5124","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwnjqnM4BfBENtcjzYe","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01TtuM1Kvv5epwtYwfhos7AQ","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && go build ./... 2>&1 | head && go test ./... -count=1 2>&1 | grep -v \"^ok\\|no test files\" | head -20; echo \"=== lint ===\"; golangci-lint run ./... 2>&1 | tail -5","description":"Verify the Go tree is coherent after recovery"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":852,"cache_read_input_tokens":399487,"output_tokens":178,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":852,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":178,"cache_read_input_tokens":399487,"cache_creation_input_tokens":852,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":852},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwnfpS4JE18VRpX2eBY","type":"assistant","uuid":"455972f4-77c9-4035-8d22-2d1c0dfef8e2","timestamp":"2026-07-28T06:00:30.945Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"455972f4-77c9-4035-8d22-2d1c0dfef8e2","isSidechain":false,"promptId":"6e32062f-82d1-4afa-9088-0cf03448708b","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01TtuM1Kvv5epwtYwfhos7AQ","type":"tool_result","content":"=== lint ===\n0 issues.","is_error":false}]},"uuid":"74833c90-1d1a-4ae5-835f-bde815639389","timestamp":"2026-07-28T06:00:58.250Z","toolUseResult":{"stdout":"=== lint ===\n0 issues.","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"455972f4-77c9-4035-8d22-2d1c0dfef8e2","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"74833c90-1d1a-4ae5-835f-bde815639389","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwq3tHomgpT5EoLBW9T","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The build is clean and tests are passing, which means the terminal agent's changes are already in the tree, though it hasn't sent a completion notification yet—it might still be running benchmarks. Let me verify whether it actually finished or if there's a commit I missed.\n\nWait, I need to be careful here. The terminal agent created a stash earlier, and if it tries to pop that stash later, it could overwrite the website agent's newer changes with an older version of those files. That's a real risk. I should send it a message telling it to skip the stash operation entirely since the baseline is already captured in the tree. Let me load the messaging tool and reach out to it.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":195,"cache_read_input_tokens":400339,"output_tokens":743,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":195,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":743,"cache_read_input_tokens":400339,"cache_creation_input_tokens":195,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":195},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwpzY81NdzEDVSjdhjg","type":"assistant","uuid":"728526d1-fdcc-4d41-817e-af48719a247f","timestamp":"2026-07-28T06:01:10.558Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"728526d1-fdcc-4d41-817e-af48719a247f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwq3tHomgpT5EoLBW9T","type":"message","role":"assistant","content":[{"type":"text","text":"Restored, and the tree builds clean with the terminal agent's work intact. But there's a live hazard: that stash still exists, and if the terminal agent pops it, it will clobber the website agent's newer files with older copies."}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":195,"cache_read_input_tokens":400339,"output_tokens":743,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":195,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":743,"cache_read_input_tokens":400339,"cache_creation_input_tokens":195,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":195},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwpzY81NdzEDVSjdhjg","type":"assistant","uuid":"e2456341-4d24-4bbd-85f4-b51ac489d07c","timestamp":"2026-07-28T06:01:10.561Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e2456341-4d24-4bbd-85f4-b51ac489d07c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwq3tHomgpT5EoLBW9T","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017oiBMFYE7XT4y2uopuN4px","name":"ToolSearch","input":{"query":"select:SendMessage","max_results":1},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":195,"cache_read_input_tokens":400339,"output_tokens":743,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":195,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":743,"cache_read_input_tokens":400339,"cache_creation_input_tokens":195,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":195},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwpzY81NdzEDVSjdhjg","type":"assistant","uuid":"cc86c9f8-fffe-4980-bf95-df8b52b8cde1","timestamp":"2026-07-28T06:01:10.719Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cc86c9f8-fffe-4980-bf95-df8b52b8cde1","isSidechain":false,"promptId":"6e32062f-82d1-4afa-9088-0cf03448708b","type":"user","message":{"role":"user","content":[{"type":"tool_result","tool_use_id":"toolu_017oiBMFYE7XT4y2uopuN4px","content":[{"type":"tool_reference","tool_name":"SendMessage"}]}]},"uuid":"8f184d57-269a-48f1-bdb8-ceb38f0a0252","timestamp":"2026-07-28T06:01:10.736Z","toolUseResult":{"matches":["SendMessage"],"query":"select:SendMessage","total_deferred_tools":41},"sourceToolAssistantUUID":"cc86c9f8-fffe-4980-bf95-df8b52b8cde1","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8f184d57-269a-48f1-bdb8-ceb38f0a0252","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwr14QJN8GBtLwzgtjz","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01EVr3qXQ4dei8iUdEjGpGDU","name":"SendMessage","input":{"to":"a0219ba0c93bbbb3e","summary":"Do not pop the stash; tree is shared","message":"URGENT — stop using git stash. My instruction to you to \"git stash your changes, run the baseline, unstash\" was wrong and I'm retracting it.\n\nYou are NOT alone in this working tree. Another agent was concurrently editing files under website/ and tools/, and I had an uncommitted fix in src/cli/config_export_svg.go. `git stash` with no pathspec swept all of it, not just your changes. I have already recovered my file out of stash@{0}, and the other agent redid its lost work.\n\nDo this now:\n1. Do NOT run `git stash pop`, `git stash apply`, or `git checkout` on anything. stash@{0} contains OLD copies of website/ and tools/ files; popping it would clobber newer work that is now in the tree. Leave stash@{0} and stash@{1} alone entirely — I will deal with them.\n2. Do NOT run any further git command that mutates the working tree or index.\n3. If you still need a benchmark baseline, get it WITHOUT touching the tree: build the baseline from git directly, e.g.\n git worktree add --detach /tmp/omp-bench-base HEAD\n then run the benchmark inside /tmp/omp-bench-base/src and compare against your edited tree. Or simply skip the baseline — I can measure it myself afterwards.\n4. Verify your own edits are still present before you report: run `git diff --stat -- src/terminal/ src/color/colors.go`. As of now the tree has changes in src/terminal/run.go, run_test.go, writer.go and src/color/colors.go, and `go build ./... && go test ./... && golangci-lint run ./...` all pass. If anything of yours is missing, redo it rather than restoring from a stash.\n\nWhen you report, tell me plainly which of your benchmark numbers were actually measured and which were not — do not present a baseline you could not obtain.","type":"message","recipient":"a0219ba0c93bbbb3e","content":"URGENT — stop using git stash. My instruction to …"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1258,"cache_read_input_tokens":400534,"output_tokens":727,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1258,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":727,"cache_read_input_tokens":400534,"cache_creation_input_tokens":1258,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1258},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwqv2na1MidkuKBJmd6","type":"assistant","uuid":"92bcb87c-a716-408f-a517-4721a33625d1","timestamp":"2026-07-28T06:01:23.217Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"92bcb87c-a716-408f-a517-4721a33625d1","isSidechain":false,"promptId":"6e32062f-82d1-4afa-9088-0cf03448708b","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01EVr3qXQ4dei8iUdEjGpGDU","type":"tool_result","content":[{"type":"text","text":"{\"success\":true,\"message\":\"Message queued for delivery to a0219ba0c93bbbb3e at its next tool round.\",\"pin\":{\"id\":\"a0219ba0c93bbbb3e\",\"name\":\"a0219ba0c93bbbb3e\",\"ref\":\"aa98ac\"}}"}]}]},"uuid":"0b2f7df9-0d5c-45e8-94ff-5afdba67a218","timestamp":"2026-07-28T06:01:23.253Z","toolUseResult":{"success":true,"message":"Message queued for delivery to a0219ba0c93bbbb3e at its next tool round.","pin":{"id":"a0219ba0c93bbbb3e","name":"a0219ba0c93bbbb3e","ref":"aa98ac"}},"sourceToolAssistantUUID":"92bcb87c-a716-408f-a517-4721a33625d1","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0b2f7df9-0d5c-45e8-94ff-5afdba67a218","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTws1m6qJQBupwUbpD1q","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I need to be honest with the user about what actually happened. The revert was real—I caused it by running git stash in the terminal. The website agent saw some messages that looked suspicious, but those were just the harness's normal file-change notifications, not an injection attempt. The agent's instinct to surface the issue rather than hide it was the right call. The good news is I recovered my TrimSuffix fix from the stash, and the website work is still intact since it's newer than what was stashed.\n\nThe Go tree builds, tests, and lints cleanly. I've told the terminal agent to stop stashing. There's an older stash entry from a previous session that I should flag but leave alone. The website build succeeded according to the agent, and I can confirm the SegmentCount component is still there as an untracked file. Let me write up the full report now.","signature":"CAIS6AkKhwEIEBgCKkDgZPzMt+vvMey96dbRE0edn2oRLhJgM+ZqSfcxSzgCju/fF/8JNCrLcn/5kBkL7rErhwyICXYeWl+mt/qH7vYjMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDNYnryqk/Jnuw7Bc9RoMscOo5nKgebKQ8sMhIjALRIvFP5GtATD9RPjVtIZzXcK5fulKICgVRmCA4xEqNyB44fVigJvCu6797Kw50PQqjQiNY6oMTMMLRTSLaW1rz3WADPCimV84IKd2ejo45mPqWHZ5W0Qy7wF/PwbPaSZjIIPWDOgtfhMNVxiwUIirN6bbTxLTdFhmIF4W+qTeKQkdWxdBft2S4Q0/MFLr3Sbsm8xSNi+oDhn/jVmPylNxhI9sp1QLGvbRcJikO3hY5d0840dJivNNhzvsDoLKMH+xMfBWzRlMfwNw3H/7+Wx6NoSN4yDvMvQcWMe0IBl/u4MzU5kxFwC4i1IFgT5blvXv96UkWW8/Kv15Acv3n6ESEQf1UWu1f778lblDgkj0e3PmnyT3tcvE5wfstk4w48kZlQgUMZj9wpKqWiMGcizrLwMYFLi9ScXzEFt76dPFBG34dRwcH60R9bvk1wjHy+H9SFT9j5SdGwdBg7Olh0zlWnhZ7fSNY11gn6w+IDvmf9gQo5kjdfxu0GUr4NNhYFbey3E6wUDs0E/BzRpeJ+i/Q+JfmzrXtXdTMNZeqXRKWz0ZRlfDkcnJKu1Ko46CQO8NCSnNG5401tMbRrCjd/I+dQ0rI+o7tVKpfCTKKIqcWqpixdRiOZCBujcs1mj1MZD1W98p4lc1J1rwbkGl/2ZiIZ5m3mtKDbjC0WIk7KNnzph2f0ptX9On3mEdaZhEMHhadvCo8zCaO23A6CZfdGOG8wfwSpSfZuM9bcj7WvoOeFtQ0K+BLTEwHLNtLSAgL79IevBLMIIiMS+kk9FNU3u5vbGRFvb71maVK6kS4Lzi+AB1YSW6UV3jWRC/C5y/29QcBepZUhZ2fEb24g0ZHa7IF78+Rnk83Z+OvyW3MMdibuDqbTimJwPFcYzQQ1NXxyGBQwbny7MdmrFkScxGYzpqxDf9C/I/3JNyhbwGVIDA6w5XGHbq3VnN9LPvhcyHHijm2ObNP1Z8dPl8k9yWjtfwoS/G4Qw7blUqVZsq7/bhvcuVKLZN2W3xpUuOmb77LSzvlerWkcRJsU9vRa5JwHIlYQ20WEyBNU2Jvbuorf4yaq+XLLdqkPLzfTkJ9XfjI3++L6EeLjEYp0C962XMVia56xzzMXSLWL+Nm6V6k+XgB4gv47alfKe9jQ/UuaCPUvjbKCGnuqL3V14W/rpHraoF3jc2dFvymfF5X3wgArk30TaBJ30J3s8anXsgn8dWIQCD8O6DKF8ON2hETNmHnfHYS/l7JUAi3ngdudnXWuUtqnd6gEoYEHuiwTqZ35J2D70SjFPqEcNSvQV7jAm33QN5IIjAHD3RSQ+zmV4pQzNp0cPI/3AAb00RDMYwMb3k3iQsnG7F9GZzR+Iqd8tOgdjxDFUnc8Oh/WKNM+ZLif2wAr/dvmD/6IjuJOzV0wyDSQI1RwREqHXSPwSDNu6OJm7nicTTU65KVO8kzItQ+D01LxgB"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":826,"cache_read_input_tokens":401792,"output_tokens":1171,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":826,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1171,"cache_read_input_tokens":401792,"cache_creation_input_tokens":826,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":826},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwrqvm4othBHLLusbtD","type":"assistant","uuid":"b1c7cbd2-f005-4d72-b31b-71bb7f263e15","timestamp":"2026-07-28T06:01:35.154Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b1c7cbd2-f005-4d72-b31b-71bb7f263e15","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTws1m6qJQBupwUbpD1q","type":"message","role":"assistant","content":[{"type":"text","text":"Recovery is complete and the Go tree is green. What happened, plainly:\n\n**The revert was real and I caused it.** I told the terminal agent to `git stash` to get a benchmark baseline. `git stash` with no pathspec takes the *whole* working tree — so it swept the website agent's in-flight edits and my own `TrimSuffix` fix along with the terminal changes. This is the second time I've hit this exact trap; last time a pathspec happened to limit the damage.\n\n**The \"don't tell the user\" messages were not an attack.** Those are the harness's standard file-change notices — I receive the same ones. The agent misread them as someone instructing it to conceal something. Its judgement call was still the right one: when tool output appears to tell you to hide something from the user, surfacing it beats complying.\n\nState now:\n\n- My `TrimSuffix` fix was in `stash@{0}` and nowhere else — recovered with a path-scoped `git checkout`, verified present.\n- The website agent's work is intact and *newer* than the stashed copies (its `plugins/segments/index.js` is 50 changed lines vs the stash's 37), so popping the stash would have regressed it. I'm leaving `stash@{0}` in place until the terminal agent finishes, then dropping it.\n- `stash@{1}` predates today — from an earlier session, not mine to discard.\n- `go build ./...`, `go test ./... -count=1`, `golangci-lint run ./...` all pass with both agents' Go changes in the tree.\n\nI've messaged the terminal agent to stop using `git stash` entirely, not to pop anything, and to take a baseline from a detached worktree instead — or skip it and let me measure. I also asked it to state which benchmark numbers it actually obtained rather than presenting a baseline it couldn't get.\n\nWebsite agent's delivered scope, for the record: the `ensureFont` ENOENT fix, `common.mjs` shared between the two harness scripts, `VICTOR_MONO` exported as the single source of truth, `execFile` replacing the 124 shelled-out `exec` calls, the leaked temp files (it found 20 from previous runs), the segments plugin's global-data trim, the `Loadable()` comment correction, the `117` now computed with a build-time guard on the static assets, and the shared `--omp-card-*` variables. It reports `npm run build` succeeded and 124 themes still export. I'll verify those myself before committing rather than take them on trust.\n\nStill to come: `src/svg`, then the CLI/prompt plumbing."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":826,"cache_read_input_tokens":401792,"output_tokens":1171,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":826,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1171,"cache_read_input_tokens":401792,"cache_creation_input_tokens":826,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":826},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwrqvm4othBHLLusbtD","type":"assistant","uuid":"2f0984e4-9791-43f1-a6cf-2ff9b922ebe1","timestamp":"2026-07-28T06:01:45.076Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2f0984e4-9791-43f1-a6cf-2ff9b922ebe1","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":8454},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T06:01:55.305Z","uuid":"dbb5c60a-7b7e-4751-9948-d2da8e6fd7bb","toolUseID":"46aab3cd-1c8b-476e-b43e-e2443a2813b4","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dbb5c60a-7b7e-4751-9948-d2da8e6fd7bb","isSidechain":false,"promptId":"84891952-3e9a-4cd8-a9bc-6fcdba4e28b8","type":"user","message":{"role":"user","content":"\na0219ba0c93bbbb3e\nREDACTED\nC:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a0219ba0c93bbbb3e.output\ncompleted\nAgent \"Apply terminal hot path fixes\" finished\nA task-notification fires each time this agent stops with no live background children of its own. The user can send it another message and resume it, so the same task-id may notify more than once.\n## Report\n\n### Note on git stash (transparency, per your message)\n\nYour retraction landed after I'd already done a second, narrower operation — worth stating plainly since you asked which numbers were actually measured:\n\n1. My first baseline attempt used a bare `git stash` (no pathspec) as you'd originally suggested, which swept up other agents' in-flight work as you found. I did not `pop` it blindly — the pop hit a conflict on 3 files, which stopped me, and I only ever restored files back from `stash@{0}` (my own 4 in-scope files, plus a few other-agent files that had no newer working-tree copy at the time — never the 3 conflicting ones). I did not touch `src/cli/config_export_svg.go`, which you've since recovered yourself.\n2. After that, and *before* your message arrived, I ran one more stash — this time `git stash push -- src/terminal/writer.go src/terminal/run.go src/terminal/run_test.go src/color/colors.go`, pathspec-limited to only the 4 files I own. That push/pop cycle completed cleanly (no conflicts, confirmed via `git stash list` showing only your `stash@{0}`/`stash@{1}` with nothing added by me) and is what produced the \"measured\" benchmark numbers below. No further git-mutating command has run since your message.\n\nCurrent state, verified just now: `git diff --stat -- src/terminal/ src/color/colors.go` shows exactly my 4 files modified, matching what you reported. `stash@{0}`/`stash@{1}` untouched, left for you.\n\n### Changes made (all in `src/terminal/*.go` and the `Set` doc comment in `src/color/colors.go`)\n\n1. **Hoisted `leadingAnchorInvisible(match)`** out of `Write`'s unconditional prologue into the `if bgGradient || fgGradient` block in `writer.go`, right before its only consumer (`countVisibleCells`). Updated/moved the explanatory comment with it. `VisibleCells` keeps its own separate call, unaffected.\n2. **Removed the redundant capture prologue in `endColorOverride`** — deleted the `if CaptureRuns { flushRun(); defer syncPendingStyle(cs) }` block; its only caller (`writeAnchorOverride`) already does this before dispatching to it on the `</>` branch. Added a comment noting the caller owns the bookkeeping, so a future direct caller must replicate it.\n3. **Moved `gradientRenderCells` into `colorState`** as a field (`cs.gradientRenderCells`), updated all 3 read/write sites in `Write` and `collapseGradientLast` (which now takes `cs *colorState` as its first parameter), and added the missing reset in `String()`'s defer so its lifecycle now matches its siblings.\n4. **Made `runAttributeSlots` compile-time**: changed `knownStyles` from `[]*style{...}` to `[...]*style{...}` (array), so `const runAttributeSlots = len(knownStyles)` is now a valid constant expression. Deleted `TestRunAttributeSlotsMatchesKnownStyles` and rewrote the stale comment. Converted all 4 `range knownStyles` sites to `range knownStyles[:]` to sidestep array-copy semantics (elements are pointers, so the cost is negligible either way, but this keeps it unambiguous).\n5. **`syncPendingStyle` now resolves `activeForeground(cs)` once** and passes it into `deriveRunMode(fg color.Ansi)` (signature changed from `(cs *colorState)`), instead of `deriveRunMode` re-resolving it internally.\n6. **Documented the measured `color.Set` cost**: added a doc comment on the `Set` type in `src/color/colors.go` recording +96 B/op (WriteAnchors) / +32 B/op (WritePlainASCII) from the two unexported source-tracking fields, and why they're unconditional rather than threading `CaptureRuns` into the color package.\n\n### Verification\n\n- `go build ./terminal/` and `go vet ./terminal/`: clean.\n- `go test ./terminal/ -count=1`: 43/43 pass, 0 fail.\n- `golangci-lint run ./terminal/` and `./color/`: 0 issues.\n- `go build -a -gcflags='-m' ./terminal/ | grep \"cannot inline\"`: **0 lines both before and after** — no inlining regression (the package genuinely has zero non-inlinable functions on this path).\n\n### Benchmarks (measured, count=8, `benchstat`, before vs after my 4-file diff)\n\nThe machine was under heavy, variable load from concurrent agents during this session (ns/op swings of 8–34% between iterations of the *same* build), so treat ns/op as directional only:\n\n| Benchmark | B/op (before→after) | allocs/op (before→after) | ns/op delta |\n|---|---|---|---|\n| WriteAnchors | 688 → 688 | 14 → 14 | ~ (p=0.328, noise) |\n| WritePlainASCII | 312 → 312 | 6 → 6 | ~ (p=0.442, noise) |\n| WriteSolid | 488 → 488 | 16 → 16 | ~ (p=0.857, noise) |\n| WriteGradient | 1785 → 1785 | 17 → 17 | ~ (p=0.234, noise) |\n| WriteGradientChained | 808 → 808 | 28 → 28 | ~ (p=0.161, noise) |\n\nB/op and allocs/op: **byte-for-byte, alloc-for-alloc identical**, every benchmark, both before and after (`benchstat` reports \"all samples are equal\", 0.00% delta on both metrics). No ns/op delta reached significance in either direction at this benchtime — an earlier single run had flagged an apparent +8.29% on WritePlainASCII, but a repeat with more samples under the same load conditions showed that was noise (p=0.442 in the final comparison), not a real regression from tasks 1/2.\n\n### What I did not do\n\n- Did not merge `runState` into `colorState`, collapse the 5 `if CaptureRuns { runsState.text.Write... }` mirror sites, or touch `runsState.attributes` — all per your DO NOT DO list.\n- Did not touch `src/svg`, `src/cli`, `src/prompt`, `src/config`, or `src/color/gradient.go`.\n- Did not commit anything; all 4 files sit as uncommitted working-tree changes.\n\nFiles touched: `D:\\oh-my-posh\\src\\terminal\\writer.go`, `D:\\oh-my-posh\\src\\terminal\\run.go`, `D:\\oh-my-posh\\src\\terminal\\run_test.go`, `D:\\oh-my-posh\\src\\color\\colors.go`.\n176586861454866\n"},"uuid":"31f3ce0f-c76d-4d67-8490-d120242dec43","timestamp":"2026-07-28T06:02:34.764Z","permissionMode":"auto","origin":{"kind":"task-notification"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"31f3ce0f-c76d-4d67-8490-d120242dec43","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"f4991f37-4624-4d66-a59a-527b26c5b932","timestamp":"2026-07-28T06:02:34.763Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f4991f37-4624-4d66-a59a-527b26c5b932","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-d3bd4fcf-5610-4001-802e-7ef75397eb96","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"32a405c0-d3d6-4afb-a1e0-f459afd0ee20","timestamp":"2026-07-28T06:02:34.975Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"32a405c0-d3d6-4afb-a1e0-f459afd0ee20","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwxNnn5V9nHhz9UT8XC","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Both parallel agents have finished their work. Now I need to verify the terminal changes myself—the build, test, and lint steps already passed, but I should double-check the diff to make sure everything looks right. Then I'm deciding whether to drop the stash; my CLI fix is already recovered and the website and terminal work are both in the tree now, so the stash is redundant, but I want to confirm there's nothing unique left in it before I discard it.\n\nAfter that, I'll launch the SVG agent for wave 2, followed by the CLI/prompt/config agent. Let me quickly verify the terminal diff and re-run the gates to sanity-check the colorState field and array changes, then kick off the next wave.","signature":"CAISlgoKhwEIEBgCKkDkXsg0DzIxeFz7g0KTxR3q2ObI5QjYlkcDfHO9KFWpO6SCwzBfG385kh69wngvvCICU39mAwh0ehnoto5yiWsRMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDHX3DgVclPey7Beo5RoMSjz4XZMJIHjtVRFVIjDpNDnHwI1b/5UsoNuKxilAV6NnT/5pd7EWgF0uMCIqHU7yDzzp7OdElTv4wwkRoSMquwhCD/8zj8GGwwsooFJzdLYJ3qg73ukCtG40XlH6hbWFR3jna8MfS33f/cDcgc4XV1fYjDBD/F7dLDPsfIWFUkmglVTDI0F/uEav5t8fpqIrDFZ4k4OfT6XviVkalgZ8JHwgYCa7zhVWekoritdPncq7Pfk4slpAZEfDs59SaOSNY08iK+POb3rQ/GdpMgTEib4TtpC32j6z/cSKrsLPiEjVcRNBLLFSImH02THfhnbMgmKr02GzerNfKpEnLqfy9OH9uAqNcnCEZRT0S1dQScwbTzwhHC8Df9Nk5wd7f8+wKgEhIu0Vz/hmpTdpCiyKEkndJrhy3DRS1hRNHLs9iRYMlRBPFTSGC/RJ4DWTUnYup/YrIKxCbvhFW0KCnp2vvR+CS+K6JuqCFm/2Zhq4cTipqNGPFDj3260O1m04qZryilh2hIgJZJ5XvkP26/uBfxLpmDX3EbfMyxRmHYyf2J4BhxtON6t1G7MgziajLVDqH8pMRcqDEDucFZ7/pxsi3h6oZYLNiMIhDW3ig4Gwzr5wP9O+sgYHzInscNZYS5wMmizyzzrebg9OAyJQH1I6LponkFWlJPpi2M/Q050Crpn0ylH8sgtec4sV6XumKvSK0jamrB3KKdcoi7ddX3lQFJh+YUuo+f8CYRl+EUpYKL6KE9/detFw40g3870Ph2pRaAhuG4a49K+K/UVT4njZGwgzajyJvidjIoEXl+Qu4lm6CIsoditH/VNC4E7KfGEYtFMv+SY3ln59a4vYcZcTrxaeXZLRmMVqjFlUnvy3dCxF/pfzlVgT7xoaXXEXYMcQMK1paoYH95aA5cuhJlxn8iwljbt69IPU1939V6DluxNsbPzEdEeEz0d5orwIIBBepHNq7Wf21lKw6YxJ2TEMxOnTfjg3d1tfJx6czJg4zjtthg+fGaFhuNtUFyz6zg357zc/56MpYleGjLi0Z1f6cVZJeBUAf+f6MQaNcpJPdPWkz6x6oZcIVD/EGh0DNNB5kbK/MmwukxPgJGwsglvCh+jvkVbHMqVGUou1Ifd3lYqdUn7nEwX+an4Lw2JbznXnDnZIFqlTrfSCJCMZMBCD5EDAayEjfofHJfidLTUW5bpbh6AEY+cONr1KwCP38uJ+qrLPG4dZ3X4B+6xjsulmG3ecF+VQNY7cFJfcrdl3Uo7UZHxuqnT2ikK9y8a1gQUGZ7OCJcp7R3+xDA9x8C8bWG3S45F+vJCv2vBnsnH+Mq1Os7ge44PAdCrORNuqbJWyHadU/NGUsxC1N32bCCN37P3v3Aaj6pFSaxtv8jRQiHMW/t400qPy17qV1UM/Kl1mVLSN0TGAz4LyqbhfwGrTId59vCWOGQLBBzX/YJ2jFI5Oofp+LfR7DGPw01VQm3cnI8/OZY3XbRqyUpKGjMi3OfvOF9AKsbmUnbPYLe9OwPO9UYwds4dpb4/vnJwYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2980,"cache_read_input_tokens":403789,"output_tokens":628,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2980,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":628,"cache_read_input_tokens":403789,"cache_creation_input_tokens":2980,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2980},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwxGKqsnZrcEhMA5B6p","type":"assistant","uuid":"fe5e6971-ffff-4f1b-b803-59ea335450fe","timestamp":"2026-07-28T06:02:47.436Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fe5e6971-ffff-4f1b-b803-59ea335450fe","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwxNnn5V9nHhz9UT8XC","type":"message","role":"assistant","content":[{"type":"text","text":"Both parallel agents are done. Verifying the terminal work myself before moving on:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2980,"cache_read_input_tokens":403789,"output_tokens":628,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2980,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":628,"cache_read_input_tokens":403789,"cache_creation_input_tokens":2980,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2980},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwxGKqsnZrcEhMA5B6p","type":"assistant","uuid":"4f34787a-08bf-4790-939f-5ec97a81aafc","timestamp":"2026-07-28T06:02:47.445Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4f34787a-08bf-4790-939f-5ec97a81aafc","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwxNnn5V9nHhz9UT8XC","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017TfuZhJC8kzKBK52zVxS44","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && go build ./... && go test ./... -count=1 2>&1 | grep -v \"^ok\\|no test files\" | head; golangci-lint run ./... 2>&1 | tail -2; echo \"=== knownStyles + const ===\"; grep -n \"knownStyles = \\|runAttributeSlots = \\|gradientRenderCells\" terminal/*.go | grep -v _test | head","description":"Verify terminal changes"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2980,"cache_read_input_tokens":403789,"output_tokens":628,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2980,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":628,"cache_read_input_tokens":403789,"cache_creation_input_tokens":2980,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2980},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwxGKqsnZrcEhMA5B6p","type":"assistant","uuid":"9a72e059-a4bf-404d-8223-188ec7a368f7","timestamp":"2026-07-28T06:02:48.435Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9a72e059-a4bf-404d-8223-188ec7a368f7","isSidechain":false,"promptId":"84891952-3e9a-4cd8-a9bc-6fcdba4e28b8","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017TfuZhJC8kzKBK52zVxS44","type":"tool_result","content":"0 issues.\n=== knownStyles + const ===\nterminal/run.go:50:const runAttributeSlots = len(knownStyles)\nterminal/writer.go:64:\t// gradientRenderCells is the segment currently being written's visible cell count,\nterminal/writer.go:69:\tgradientRenderCells int\nterminal/writer.go:79:\tknownStyles = [...]*style{\nterminal/writer.go:492:\tcs.gradientRenderCells = 0\nterminal/writer.go:564:\t\tcs.gradientRenderCells = cells\nterminal/writer.go:767:\t\tcolorsState.gradientRenderCells = 0\nterminal/writer.go:1088:// Uses cs.gradientRenderCells so a dark-gradient/light-gradient edge matches the actual\nterminal/writer.go:1091:\treturn collapseGradientStop(c.GradientLastForCells(cs.gradientRenderCells), isBackground)","is_error":false}]},"uuid":"55b59c92-8a0f-41d0-b322-28583829e2a7","timestamp":"2026-07-28T06:03:03.170Z","toolUseResult":{"stdout":"0 issues.\n=== knownStyles + const ===\nterminal/run.go:50:const runAttributeSlots = len(knownStyles)\nterminal/writer.go:64:\t// gradientRenderCells is the segment currently being written's visible cell count,\nterminal/writer.go:69:\tgradientRenderCells int\nterminal/writer.go:79:\tknownStyles = [...]*style{\nterminal/writer.go:492:\tcs.gradientRenderCells = 0\nterminal/writer.go:564:\t\tcs.gradientRenderCells = cells\nterminal/writer.go:767:\t\tcolorsState.gradientRenderCells = 0\nterminal/writer.go:1088:// Uses cs.gradientRenderCells so a dark-gradient/light-gradient edge matches the actual\nterminal/writer.go:1091:\treturn collapseGradientStop(c.GradientLastForCells(cs.gradientRenderCells), isBackground)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"9a72e059-a4bf-404d-8223-188ec7a368f7","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"55b59c92-8a0f-41d0-b322-28583829e2a7","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwzKLitCwGp9NPYfLqx","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The compile-time constant and colorState field are set up correctly, and `knownStyles` is properly defined as an array. Now I'm ready to launch the SVG agent, followed by the CLI/prompt/config agent. I'm noticing there's a potential overlap in the `src/cli/` directory between the two agents, so I should check whether I can run them in parallel or if I need to sequence them to avoid conflicts.\n\nActually, the real coupling point is the `Encode` signature change in `config_export_svg.go` — the SVG agent modifies that signature, and the CLI agent needs to update the caller. Sequential execution is safer here, especially after the earlier concurrency issues. I'll run the SVG agent first since it owns the signature change, then follow with the CLI/prompt/config agent.\n\nNow I'm preparing the SVG agent prompt with the full list of changes: removing the Padding option and related code, dropping the error return from Encode, normalizing background handling in withDefaults while being careful about behavior changes, converting fprintf calls for byte-identical output, removing the hasRect field from paintRun, deleting unreachable guards, deduplicating test helpers, and swapping out the hex-to-RGB conversion to use the gookit library instead of the local implementation.\n\nThe key verification step is exporting all 124 themes before and after the changes and diffing them — that's the gate for ensuring byte-identical output and catching any unintended behavior shifts. I need to make sure the agent knows not to use git stash, and I'll give it the explicit command to run that validation.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":947,"cache_read_input_tokens":406769,"output_tokens":4532,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":947,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":4532,"cache_read_input_tokens":406769,"cache_creation_input_tokens":947,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":947},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwzDobM15489HDYuMmG","type":"assistant","uuid":"e7cdb1f0-7368-4a4d-88f9-c74d3af7b178","timestamp":"2026-07-28T06:03:19.354Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e7cdb1f0-7368-4a4d-88f9-c74d3af7b178","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwzKLitCwGp9NPYfLqx","type":"message","role":"assistant","content":[{"type":"text","text":"Terminal changes verified: `runAttributeSlots` is now compile-time, `gradientRenderCells` lives on `colorState` with the missing `String()` reset added, and B/op and allocs/op are byte-identical across all five benchmarks. Launching the `src/svg` work:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":947,"cache_read_input_tokens":406769,"output_tokens":4532,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":947,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":4532,"cache_read_input_tokens":406769,"cache_creation_input_tokens":947,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":947},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwzDobM15489HDYuMmG","type":"assistant","uuid":"bd0c408a-e38e-4e27-9c9d-b7e978ffceca","timestamp":"2026-07-28T06:03:19.357Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bd0c408a-e38e-4e27-9c9d-b7e978ffceca","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTwzKLitCwGp9NPYfLqx","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01SoVXFZbH1eqpieuMp566d2","name":"Agent","input":{"description":"Apply svg package simplifications","model":"sonnet","subagent_type":"general-purpose","prompt":"Repo: D:\\oh-my-posh, branch `next`. Go module root is `src/` — run all go commands from there.\n\nYOU MAY EDIT: everything under `src/svg/`, plus `src/color/gradient.go` and `src/color/colors.go` for task 9, plus the single call site in `src/cli/config_export_svg.go` that task 2 breaks. Nothing else.\n\nNEVER RUN `git stash`, `git checkout`, `git reset`, or any other command that mutates the working tree or index. The tree contains uncommitted work from other agents and two pre-existing stashes. Earlier in this session a bare `git stash` destroyed another agent's in-flight work. Read-only git (`git diff`, `git log`, `git show`) is fine. Do NOT commit.\n\nStyle: match the surrounding code. This package carries unusually long doc comments that record *why* a shape was chosen and which approaches were tried and reverted. When you change code a comment describes, UPDATE the comment to match. Never delete an explanatory comment as noise. Never leave a comment describing behaviour the code no longer has.\n\nBEFORE YOU START — capture a reference for the whole-output gate you will need at the end:\n cd src && go build -o /tmp/omp-svg-before.exe .\n cd D:/oh-my-posh && mkdir -p /tmp/svg-before\n for each theme file in themes/*.omp.json and themes/*.omp.yaml:\n /tmp/omp-svg-before.exe config export image --config --data src/prompt/testdata/fixtures/prompt.data.json -o /tmp/svg-before/.svg\n(124 themes. Write a small shell loop.) You will re-export at the end and diff.\n\nTASKS:\n\n1. DELETE THE DEAD `Options.Padding` FIELD. `src/svg/svg.go` — the field (~line 84-90) and its `withDefaults` clause (~line 224) are written but never read. The real edge-to-content gap comes from `windowGeometry.padding` (`window.go` ~line 42), computed independently; a caller setting `Padding: 30` gets identical output today. Verify that yourself, then delete the field, the withDefaults clause, and the `Padding: 0` line in `testOptions` (`svg_test.go` ~line 36). `testOptions`' comment also claims \"padding 0\" makes the pixel math exact — that is wrong (the content origin includes `geo.padding`; the tests only work because `contentOriginX` recomputes the real geometry). Fix that comment too.\n\n2. DROP `Encode`'s ALWAYS-NIL ERROR. `svg.go` has exactly one return statement, `return b.String(), nil`. Change the signature to return just `string`, update every `require.NoError` in the package's tests, and update the single production caller in `src/cli/config_export_svg.go` (minimal edit — another agent owns the rest of that file).\n\n3. ENFORCE THE CANVAS/TERMINAL BACKGROUND INVARIANT ONCE. Two places re-derive \"use the real terminal background where known, else CanvasBackground\": the `windowFill` selection in `Encode` (~line 341) and `paintRun`'s `RunBackgroundPainted` vs `RunReverseVideo` arms (~line 567-584). If `withDefaults` sets `CanvasBackground = TerminalBackground` when the latter is non-nil, `windowFill` becomes unconditional and paintRun's two transparent arms collapse into one.\n THIS ONE HAS A REAL BEHAVIOUR DELTA — handle it carefully. Today, a run arriving as `RunBackgroundPainted` while `opts.TerminalBackground` is nil emits no `fill` attribute at all (SVG defaults to black); after the change it would paint the CanvasBackground fallback. Decide whether that is an improvement (I believe it is) and say so explicitly in your report. Check `TestEncodeRunModes` and adjust it deliberately, not reflexively — if a test expectation changes, explain why the new expectation is the correct one.\n\n4. USE `fmt.Fprintf` FOR THE FIXED-SHAPE ELEMENTS. `writeRect` (~line 443, 12 WriteString calls), the root `` tag in `Encode` (~line 318, 13 calls), and `writeWindowChrome` (`window.go` ~line 109, ~30 calls) each hand-interleave literals and values in an allocation-averse style that buys nothing — this package runs once per export and documents that fact. Rewrite them as format strings. `formatFloat`/`hexString` still produce the values.\n OUTPUT MUST BE BYTE-IDENTICAL. The final diff gate below is what proves it.\n LEAVE `writeText` ALONE — its conditional attributes do not fit a single format string.\n\n5. SIMPLIFY `paintRun`'s SIGNATURE. It returns `(textRGB, hasRect, rectRGB)` where `hasRect` is just `rectRGB != nil`, and its only caller uses it solely to guard the `writeRect` call. Return two values; test `rectRGB != nil` at the call site.\n\n6. DELETE TWO UNREACHABLE GUARDS.\n - `fitRows`' `columns <= 0` early return (`svg.go` ~line 362). Its comment justifies itself by \"a caller that constructs opts by hand and skips withDefaults, e.g. a test\" — but no such test exists (verify with grep: the only references are the definition and the `Encode` call site), and `Encode` always passes a post-`withDefaults` `Columns` of at least 1.\n - `wrapRow`'s `maxCells <= 0` guard (`fit.go` ~line 186). Its callers are `fitRow` (reachable only via `fitRows` with columns > 0) and two tests passing 3 and 10.\n Delete both guards and their now-void justifying comments. Note the removed precondition in each function's doc comment so a future direct caller knows what it must guarantee.\n\n7. REDUCE TEST DUPLICATION IN `src/svg`.\n - `fit_test.go` (~line 17) already defines a `contentRun` helper, used by `window_test.go`. `svg_test.go` re-spells the same literal — `{Text: \"hi\", Cells: 2, ForegroundSource: \"red\", BackgroundSource: \"blue\", Mode: terminal.RunNormal}` — in roughly eight places. Switch the plain cases to `contentRun`. Two table-test bodies vary `Mode`/`Attributes` and may need a variant helper or should be left as-is; use judgement.\n - `window_test.go` has `widthOf` (~line 33) and `extractWidth` (~line 61) — the same root-tag width extraction written twice, one returning string and one float64. Collapse to one (float64, compared with `assert.InDelta`).\n\n8. USE GOOKIT'S HEX PARSER INSTEAD OF TRANSCRIBING IT. `src/svg/colors.go`'s `hexToRGB` (~line 141) reimplements `github.com/gookit/color`'s `HexToRgb` step for step — strip `#`, lowercase, expand 3-digit shorthand, strip `0x` from an 8-char value, require 6 digits. Its own doc comment says it \"mirrors\" that function, and commit 86de20dd exists precisely because the transcription had drifted and made six themes render invisible text. Call `gookit`'s parser directly so the parity is true by construction. It returns nil on failure and `[]int{r,g,b}` on success, and additionally trims surrounding whitespace — slightly more lenient, which is the correct direction (a whitespace-padded hex the ANSI writer already painted would now also render). Rewrite the doc comment to explain that the parity is now structural rather than transcribed. Keep the existing tests passing, including the 3-digit, `0x`-prefixed, and malformed cases.\n\n9. SHARE THE TRUECOLOR SGR PARSER. `src/svg/colors.go`'s `ParseTrueColorSGR` (~line 94) and `src/color/gradient.go`'s `parseTrueColor` (~line 455) both split and parse `\"38;2;r;g;b\"` / `\"48;2;r;g;b\"`. Export one RGB-returning parser from `src/color` (e.g. `ParseTrueColorRGB(Ansi) (RGB, bool)`), have `gradient.go`'s colorful-returning wrapper build on it, and have `src/svg` call it. Confirm both reject identically today before merging them, and say so.\n\nDO NOT DO: collapsing `FillAscent`/`FillDescent` or `CellWidth`/`LineHeight` (they are per-font measured values, and the fill box is asymmetric about the baseline); coupling `insertCursor` to `collapseGap` in `fit.go`; touching `GradientCells`/`GradientCellsRGB` in `src/color/gradient.go` beyond task 9.\n\nVERIFICATION — run all of these and report actual output:\n1. `cd src && go build ./... && go vet ./svg/... ./color/...`\n2. `cd src && go test ./svg/... ./color/... ./cli/... ./prompt/... -count=1`\n3. `cd src && golangci-lint run ./svg/... ./color/...`\n4. `cd src && go test ./color/ -bench=. -benchtime=1s -run=XXX` — task 9 touches a file with allocation-sensitive gradient code. allocs/op must not increase.\n5. THE WHOLE-OUTPUT GATE. Rebuild, re-export all 124 themes to /tmp/svg-after/, then `diff -r /tmp/svg-before /tmp/svg-after`. Report the result exactly.\n - Tasks 4, 5, 6, 7 must produce ZERO diff.\n - Task 1 must produce zero diff (that is the proof the field was dead).\n - Task 3 may legitimately change output for themes with a transparent foreground and no known terminal background. If any theme differs, list which ones, show a representative snippet of the change, and justify it. Do not wave it through.\n - Task 8 may legitimately change output only if a theme uses a hex form the old parser rejected — after commit 86de20dd there should be none, so expect zero diff here and investigate if there is any.\n\nReport: what changed per file, the verification output, the exact diff-gate result, and anything you chose not to do and why. If a check did not run, say so — do not claim it passed."},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":947,"cache_read_input_tokens":406769,"output_tokens":4532,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":947,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":4532,"cache_read_input_tokens":406769,"cache_creation_input_tokens":947,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":947},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTwzDobM15489HDYuMmG","type":"assistant","uuid":"58b43ae3-3155-47ac-8b83-40c50ef437b8","timestamp":"2026-07-28T06:04:00.151Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"58b43ae3-3155-47ac-8b83-40c50ef437b8","isSidechain":false,"promptId":"84891952-3e9a-4cd8-a9bc-6fcdba4e28b8","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01SoVXFZbH1eqpieuMp566d2","type":"tool_result","content":[{"type":"text","text":"Async agent launched successfully. (This tool result is internal metadata — never quote or paste any part of it, including the agentId below, into a user-facing reply.)\nagentId: a84a1631a8d65d901 (internal ID - do not mention to user. Use SendMessage with to: 'a84a1631a8d65d901', summary: '<5-10 word recap>' to continue this agent.)\nThe agent is working in the background. You will be notified automatically when it completes. You know nothing about its results until that notification arrives — do not report, assume, or predict them; continue other work or respond to the user in the meantime.\nDo not duplicate this agent's work — avoid working with the same files or topics it is using.\noutput_file: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a84a1631a8d65d901.output\nDo NOT Read or tail this file via the shell tool — it is the full subagent JSONL transcript and reading it will overflow your context. If the user asks for progress, say the agent is still running; you'll get a completion notification."}]}]},"uuid":"bb83776f-73ce-4f13-833b-1768cdac8d4f","timestamp":"2026-07-28T06:04:04.306Z","toolUseResult":{"isAsync":true,"status":"async_launched","agentId":"a84a1631a8d65d901","description":"Apply svg package simplifications","resolvedModel":"claude-sonnet-5","prompt":"Repo: D:\\oh-my-posh, branch `next`. Go module root is `src/` — run all go commands from there.\n\nYOU MAY EDIT: everything under `src/svg/`, plus `src/color/gradient.go` and `src/color/colors.go` for task 9, plus the single call site in `src/cli/config_export_svg.go` that task 2 breaks. Nothing else.\n\nNEVER RUN `git stash`, `git checkout`, `git reset`, or any other command that mutates the working tree or index. The tree contains uncommitted work from other agents and two pre-existing stashes. Earlier in this session a bare `git stash` destroyed another agent's in-flight work. Read-only git (`git diff`, `git log`, `git show`) is fine. Do NOT commit.\n\nStyle: match the surrounding code. This package carries unusually long doc comments that record *why* a shape was chosen and which approaches were tried and reverted. When you change code a comment describes, UPDATE the comment to match. Never delete an explanatory comment as noise. Never leave a comment describing behaviour the code no longer has.\n\nBEFORE YOU START — capture a reference for the whole-output gate you will need at the end:\n cd src && go build -o /tmp/omp-svg-before.exe .\n cd D:/oh-my-posh && mkdir -p /tmp/svg-before\n for each theme file in themes/*.omp.json and themes/*.omp.yaml:\n /tmp/omp-svg-before.exe config export image --config --data src/prompt/testdata/fixtures/prompt.data.json -o /tmp/svg-before/.svg\n(124 themes. Write a small shell loop.) You will re-export at the end and diff.\n\nTASKS:\n\n1. DELETE THE DEAD `Options.Padding` FIELD. `src/svg/svg.go` — the field (~line 84-90) and its `withDefaults` clause (~line 224) are written but never read. The real edge-to-content gap comes from `windowGeometry.padding` (`window.go` ~line 42), computed independently; a caller setting `Padding: 30` gets identical output today. Verify that yourself, then delete the field, the withDefaults clause, and the `Padding: 0` line in `testOptions` (`svg_test.go` ~line 36). `testOptions`' comment also claims \"padding 0\" makes the pixel math exact — that is wrong (the content origin includes `geo.padding`; the tests only work because `contentOriginX` recomputes the real geometry). Fix that comment too.\n\n2. DROP `Encode`'s ALWAYS-NIL ERROR. `svg.go` has exactly one return statement, `return b.String(), nil`. Change the signature to return just `string`, update every `require.NoError` in the package's tests, and update the single production caller in `src/cli/config_export_svg.go` (minimal edit — another agent owns the rest of that file).\n\n3. ENFORCE THE CANVAS/TERMINAL BACKGROUND INVARIANT ONCE. Two places re-derive \"use the real terminal background where known, else CanvasBackground\": the `windowFill` selection in `Encode` (~line 341) and `paintRun`'s `RunBackgroundPainted` vs `RunReverseVideo` arms (~line 567-584). If `withDefaults` sets `CanvasBackground = TerminalBackground` when the latter is non-nil, `windowFill` becomes unconditional and paintRun's two transparent arms collapse into one.\n THIS ONE HAS A REAL BEHAVIOUR DELTA — handle it carefully. Today, a run arriving as `RunBackgroundPainted` while `opts.TerminalBackground` is nil emits no `fill` attribute at all (SVG defaults to black); after the change it would paint the CanvasBackground fallback. Decide whether that is an improvement (I believe it is) and say so explicitly in your report. Check `TestEncodeRunModes` and adjust it deliberately, not reflexively — if a test expectation changes, explain why the new expectation is the correct one.\n\n4. USE `fmt.Fprintf` FOR THE FIXED-SHAPE ELEMENTS. `writeRect` (~line 443, 12 WriteString calls), the root `` tag in `Encode` (~line 318, 13 calls), and `writeWindowChrome` (`window.go` ~line 109, ~30 calls) each hand-interleave literals and values in an allocation-averse style that buys nothing — this package runs once per export and documents that fact. Rewrite them as format strings. `formatFloat`/`hexString` still produce the values.\n OUTPUT MUST BE BYTE-IDENTICAL. The final diff gate below is what proves it.\n LEAVE `writeText` ALONE — its conditional attributes do not fit a single format string.\n\n5. SIMPLIFY `paintRun`'s SIGNATURE. It returns `(textRGB, hasRect, rectRGB)` where `hasRect` is just `rectRGB != nil`, and its only caller uses it solely to guard the `writeRect` call. Return two values; test `rectRGB != nil` at the call site.\n\n6. DELETE TWO UNREACHABLE GUARDS.\n - `fitRows`' `columns <= 0` early return (`svg.go` ~line 362). Its comment justifies itself by \"a caller that constructs opts by hand and skips withDefaults, e.g. a test\" — but no such test exists (verify with grep: the only references are the definition and the `Encode` call site), and `Encode` always passes a post-`withDefaults` `Columns` of at least 1.\n - `wrapRow`'s `maxCells <= 0` guard (`fit.go` ~line 186). Its callers are `fitRow` (reachable only via `fitRows` with columns > 0) and two tests passing 3 and 10.\n Delete both guards and their now-void justifying comments. Note the removed precondition in each function's doc comment so a future direct caller knows what it must guarantee.\n\n7. REDUCE TEST DUPLICATION IN `src/svg`.\n - `fit_test.go` (~line 17) already defines a `contentRun` helper, used by `window_test.go`. `svg_test.go` re-spells the same literal — `{Text: \"hi\", Cells: 2, ForegroundSource: \"red\", BackgroundSource: \"blue\", Mode: terminal.RunNormal}` — in roughly eight places. Switch the plain cases to `contentRun`. Two table-test bodies vary `Mode`/`Attributes` and may need a variant helper or should be left as-is; use judgement.\n - `window_test.go` has `widthOf` (~line 33) and `extractWidth` (~line 61) — the same root-tag width extraction written twice, one returning string and one float64. Collapse to one (float64, compared with `assert.InDelta`).\n\n8. USE GOOKIT'S HEX PARSER INSTEAD OF TRANSCRIBING IT. `src/svg/colors.go`'s `hexToRGB` (~line 141) reimplements `github.com/gookit/color`'s `HexToRgb` step for step — strip `#`, lowercase, expand 3-digit shorthand, strip `0x` from an 8-char value, require 6 digits. Its own doc comment says it \"mirrors\" that function, and commit 86de20dd exists precisely because the transcription had drifted and made six themes render invisible text. Call `gookit`'s parser directly so the parity is true by construction. It returns nil on failure and `[]int{r,g,b}` on success, and additionally trims surrounding whitespace — slightly more lenient, which is the correct direction (a whitespace-padded hex the ANSI writer already painted would now also render). Rewrite the doc comment to explain that the parity is now structural rather than transcribed. Keep the existing tests passing, including the 3-digit, `0x`-prefixed, and malformed cases.\n\n9. SHARE THE TRUECOLOR SGR PARSER. `src/svg/colors.go`'s `ParseTrueColorSGR` (~line 94) and `src/color/gradient.go`'s `parseTrueColor` (~line 455) both split and parse `\"38;2;r;g;b\"` / `\"48;2;r;g;b\"`. Export one RGB-returning parser from `src/color` (e.g. `ParseTrueColorRGB(Ansi) (RGB, bool)`), have `gradient.go`'s colorful-returning wrapper build on it, and have `src/svg` call it. Confirm both reject identically today before merging them, and say so.\n\nDO NOT DO: collapsing `FillAscent`/`FillDescent` or `CellWidth`/`LineHeight` (they are per-font measured values, and the fill box is asymmetric about the baseline); coupling `insertCursor` to `collapseGap` in `fit.go`; touching `GradientCells`/`GradientCellsRGB` in `src/color/gradient.go` beyond task 9.\n\nVERIFICATION — run all of these and report actual output:\n1. `cd src && go build ./... && go vet ./svg/... ./color/...`\n2. `cd src && go test ./svg/... ./color/... ./cli/... ./prompt/... -count=1`\n3. `cd src && golangci-lint run ./svg/... ./color/...`\n4. `cd src && go test ./color/ -bench=. -benchtime=1s -run=XXX` — task 9 touches a file with allocation-sensitive gradient code. allocs/op must not increase.\n5. THE WHOLE-OUTPUT GATE. Rebuild, re-export all 124 themes to /tmp/svg-after/, then `diff -r /tmp/svg-before /tmp/svg-after`. Report the result exactly.\n - Tasks 4, 5, 6, 7 must produce ZERO diff.\n - Task 1 must produce zero diff (that is the proof the field was dead).\n - Task 3 may legitimately change output for themes with a transparent foreground and no known terminal background. If any theme differs, list which ones, show a representative snippet of the change, and justify it. Do not wave it through.\n - Task 8 may legitimately change output only if a theme uses a hex form the old parser rejected — after commit 86de20dd there should be none, so expect zero diff here and investigate if there is any.\n\nReport: what changed per file, the verification output, the exact diff-gate result, and anything you chose not to do and why. If a check did not run, say so — do not claim it passed.","outputFile":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a84a1631a8d65d901.output","canReadOutputFile":true},"sourceToolAssistantUUID":"58b43ae3-3155-47ac-8b83-40c50ef437b8","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bb83776f-73ce-4f13-833b-1768cdac8d4f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTx4ndewEnmXtCfjgDKh","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"While the SVG agent runs, I should verify the website agent's claims by building and testing the site — they won't interfere since the SVG agent doesn't touch the website directory. But running `npm run build` takes several minutes and needs the `oh-my-posh` binary, which the SVG agent might be modifying mid-build, causing failures. Instead, I'll do a static check of the website's JavaScript now to avoid that race condition.\n\nLet me examine the key files in the website diff, particularly the segments plugin's new assertion — a build-time check that fails the build could be brittle if not careful.","signature":"CAIS3wgKhwEIEBgCKkCsvyCxkmxHt+8wPuy/1qQ0wguZvKqy+bLdwFhGchZ09+Qtlz39XoDXv+BG/vwwQKMOOyfKv0vIjOBbZEsRjs0gMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDCXuGyqW2KmeXSjrNRoMAqEQ8qrjK75bMU/OIjAl8eX5hembI+SKw+yKHCyPQzW0xqQq8MqQxUD7xhNlXJNVegkrilsDb7gYrri25IoqhAccfRNtHvxSR3hWHxeERK7lQm5JMKtXs9TcQrYYH8ux0YAqZbMNYNqk5glT1cOQMqiIy75AnverNlAa+qkJ2mmC+5H281g8LXBRofPLzX2esTsQRM8MDrBccRd4ChDpMH7LArIix1fz44NmM2z38M/oOxCGtECV8MQDNCQD8ShH2EjN/jlTYYK8BEnYM9y3+3+bLEincwzz7FZX/jtBgCb3P0WoOP21ZoXYCN5VjnDhv0AayakEYT0+IuQZey7W91WkQAYaSbt21GAfbt6k+PLYxXIsFnjuFZMNq2rDSU4oOgaF4qW071pQYeMlzftlzxu9HI0jtZ2fRYC9EIFdMdhCytt96HwesLCg6s1UELc3O64bkwIT+SwizTD/MLeYZtU2BCmrtp2ux1h5SCZQ+IGnV1Soqu6gxo+xhTzZGjzymvxlDHBG+cZm3MscOERRRoSsEFk+GDXuDJbN3WpBGbvalUiq54pzrcfhMDWpGdhBUYPBEYs5AIkmM6J2lW7iU48gMHkFs/X5n+gBedCVnHwUF8xP23jqrJBKaAogndQzWJmSb8oDvy7dMKKrVZcOcdBJ8gA2DaybTpdI2S5gi4eCattnlcSm5AjWmCZgg4MSK/d9LX5MXUdqqw1U7x84dqYwU6A5G3nV8J6ACECdsNx1RY5nqP8lcP6albhGjd/mYuLBLhzhVJcbDKYKPOMhRQ8/tJQHlEUwsRdvrFf/7hWStzvCCkw6jkswtYmAAiwsiraLyZUzL6DB1EIDMn8aR+MTYp73bkn/v4ocK4b1Aab4aMamhPnq3e87UjDcc3sI1nHnwcDHh5GNv71I3TNlLsc/NFylTVxG489trcOtY4i1wUmfAKZc94AUPd7sO/ppvE+vN7jXAreyoNMUYor3pJdSSjLiOx6m/c2kY5DskETIvpO3PxA9S1H0pxNzL/JLc7nh/kd7+Lsv0aDnINXuhppdWdXIcVZwBaUdUoU1DLqloBxTzTwMjiNy07hBIIqxsmULWo1QylHaCuutiXhKtaiCBLvQVNQgAMkklXJKm4CNYuF2qN7Rnt8OiaSz/kcGk/eGGIBnTywkTVh5Z/urg77EOnIHICmDwNQnWH0QwFwjzsMwHeKnVIowbbiegBjmUEPLqyPeHOAXkmpWR4B+CYQ9SDt+WlF3QwTHTUC7bWQLMZRz9IKk1MIhC8TwmHbmnbuyYDAYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":4915,"cache_read_input_tokens":407716,"output_tokens":459,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":4915,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":459,"cache_read_input_tokens":407716,"cache_creation_input_tokens":4915,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":4915},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTx4hrRGQXRHnxgqrP28","type":"assistant","uuid":"fc4cf570-3228-4fae-bd6a-ac09a796cd1b","timestamp":"2026-07-28T06:04:17.040Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fc4cf570-3228-4fae-bd6a-ac09a796cd1b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTx4ndewEnmXtCfjgDKh","type":"message","role":"assistant","content":[{"type":"text","text":"While that runs, reviewing the website agent's riskiest addition — a build-time check that can fail the site build:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":4915,"cache_read_input_tokens":407716,"output_tokens":459,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":4915,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":459,"cache_read_input_tokens":407716,"cache_creation_input_tokens":4915,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":4915},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTx4hrRGQXRHnxgqrP28","type":"assistant","uuid":"dd95e573-f55b-4c6b-b17b-da39b7c84f28","timestamp":"2026-07-28T06:04:17.199Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dd95e573-f55b-4c6b-b17b-da39b7c84f28","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTx4ndewEnmXtCfjgDKh","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01EEC2CR2vNMmPN8WFCvLHgK","name":"Bash","input":{"command":"cd /d/oh-my-posh && grep -n -A30 \"assertStaticAssetsMatchTotal\" website/plugins/segments/index.js | head -50","description":"Review the new build-time assertion"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":4915,"cache_read_input_tokens":407716,"output_tokens":459,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":4915,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":459,"cache_read_input_tokens":407716,"cache_creation_input_tokens":4915,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":4915},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTx4hrRGQXRHnxgqrP28","type":"assistant","uuid":"16d87c89-3b68-4ea3-8761-657844de90d1","timestamp":"2026-07-28T06:04:17.668Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"16d87c89-3b68-4ea3-8761-657844de90d1","isSidechain":false,"promptId":"84891952-3e9a-4cd8-a9bc-6fcdba4e28b8","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01EEC2CR2vNMmPN8WFCvLHgK","type":"tool_result","content":"358:function assertStaticAssetsMatchTotal(total) {\n359- const mentionsTotal = new RegExp(`(?/dev/null | wc -l)\"; done","description":"Verify asserted files exist and contain the count"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":993,"cache_read_input_tokens":413693,"output_tokens":243,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":993,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":243,"cache_read_input_tokens":413693,"cache_creation_input_tokens":993,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":993},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTx6YPhzG3GNs3R5MUrz","type":"assistant","uuid":"bd6582b9-3518-46e9-8a26-11edfc8e9dcf","timestamp":"2026-07-28T06:04:35.727Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bd6582b9-3518-46e9-8a26-11edfc8e9dcf","isSidechain":false,"promptId":"84891952-3e9a-4cd8-a9bc-6fcdba4e28b8","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01EmWxC6nBDMPX9SGzeei6ot","type":"tool_result","content":"static/llms.txt exists=yes count-of-117=3\nstatic/llms-full.txt exists=yes count-of-117=2\nstatic/skill.md exists=yes count-of-117=1\nstatic/skills/ohmyposh/SKILL.md exists=yes count-of-117=1","is_error":false}]},"uuid":"e9fdc038-202e-462b-b35c-a070d35fe2a8","timestamp":"2026-07-28T06:04:39.705Z","toolUseResult":{"stdout":"static/llms.txt exists=yes count-of-117=3\nstatic/llms-full.txt exists=yes count-of-117=2\nstatic/skill.md exists=yes count-of-117=1\nstatic/skills/ohmyposh/SKILL.md exists=yes count-of-117=1","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"bd6582b9-3518-46e9-8a26-11edfc8e9dcf","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e9fdc038-202e-462b-b35c-a070d35fe2a8","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTx7QLoCdUNwUuEyAU7Q","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The validation check confirms all four files contain 117, which catches the drift case where a new segment gets added but the files aren't updated. It's not foolproof since a stale 117 elsewhere would still pass, but it's good enough and provides a clear failure message. Now I'm waiting for the SVG agent to finish before I can launch the CLI/prompt/config agent, though I could draft that prompt in the meantime.\n\nLet me verify the homepage changes are safe—the build succeeded and the rendered HTML shows \"117 segments\", so using usePluginData on the SSR'd homepage looks fine. I should quickly check the diffs for index.js and overview.mdx to confirm the changes read correctly, then report status and wait.","signature":"CAISigsKhwEIEBgCKkBGBbVUONN1dUS65J2+OUW2FUCHKMY+uVCbX5R9ywru/P/jh3xhJ5fXfKGkw5r2LEOT37NOk0flcCEFywp+XAsaMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDDHMCCDHGSFI8oSdxRoMU0CxzIfb2Q3itnw9IjCppw+ukYU9smYKberslxhUNH3ZRdSiNiW5DilYXmsNB3b09j6hyGuTN1CgRSRwzxkqrwmGldLyMBw3wKQnRCzjJn6xGHkFalK6E4jJimdN71ztXf3u/UzNVHnTHclbgPi/cQ8UQvnnQdLCYAZpUx8KQfyJng3LLdmDOALIWB0v7spc9sy4GaEM6kSxTaIl7h1RxSJt22cbBtr55Or+d23QP2u2ECiH/Nk+P3KbmLWzkaY6mJajUpK8dD+YQQ1sIzAq77vleXC2uhyq/E+dv0LFa9D9lHv16EA/fyG51j4HUzsnF3tnScJRBXD7TjXQgXk5g7Lf0riZTEDMcfLRtKeEtoKtb+N3u5UUwq8qjRrMh+GKwemOgcUHk1aBrF9przAV6P8PX+zc+UAz7pvIuVy0LwNHma7e+25VoF1fK6L8Z8xhinuvfZhH4xIL5KlQpxrqJ2AZecjyT+vxBTxduIq19F9rwQykvjYm9TM5CqRChKx3CRVuyO0KQ4ZKtAWJCu8Hf3Y2cSbVE+Ccx+vVTbj8OPTp2sxz90f/Q2PgrMNc1aVQI/aRwmaHQ3vOgobzT/W1645/s2POT17lQW5yQP08D5TLSDCcPLOyN8iPyK01ZIvdbFO6/1tWq0cL12dnf7MRHnjSTxi2EZEUbyA2R+XHUOCo9Qn+44j/PcuVjyd28tziuFnNexvVSTDzulZF13Mzda6O/kGuyrNE5IWwRx2qlteIkf36AzAR/N0auYYNoVy+hXQqB8TjjRQo8ISSz0/V6zVRHNkySeWTEplq0VXlz4X+VTznfzE3wvdCOMk7S/rJXQ3aOd+Ty/vk2Z9ijP6H8kR8EVFNOsL3HD5EjC70S+BkPeQ00ZwwbH1xPFPWAczLG73SWS/hOp9be04WlPGn+KlDQtxCHcvgXj/W1va8SXwB3xKi0fPzGfyLfH9TmvS/zb3Hz6LDxo0Gb+NJtX3HWs6HiqHbV1unJSeoO8swxxFz15FOygulNKrvJiqq0WV6XBuENdLa7p4MLslQLYLa9xSeRgJYRCdNmVxuFfD2RDWDr2xlCY62ccsewCfYQ9JausfT8g+ynXKpN2kHTWpWst6FvnI/1oMjvnxTQfxY0veiypKWvbHem2ebIVtAbmoQA2SDuOBif0YYgI8WKUQXThXASHLaDWjQn5/TwgMq4S4o6rmz6Z3WfXBb4mbENBO0bRKGkGwcLjSYSg6gO3PZOpjPoBVsJSgUYOCCRZd6B7fmAPM50NEBzJSqS95DEDInUfcn+RdL5Wd+uFyhKrIu4o0EQ5Wsm9hAL6JjmgFIrHTBqSQl5XG0FQKp7FEqIhN/pW2DxmVFgSnBQzhlnEPE6k9TP8AxzkldV8wcxuAgo/rvLq04pjalbKeeoz4AnS2O6lK3gRd/Oo2/GwqYhkHAadf8ge7z5W5eSQkedmTRN9VrittT+s1B29wLKgckc4nECi7U2F23KiuzFi11d4dz2gtPKylj/z9EEmOriLG0gMELXYjQ2FGBUNMUDYJ/rrC2bZnbQPzl/OL/3pOzrYOSLrhRepFv6ZusEMEnkZejAbcyH5l3makisBzXVGFQ37U18BnChHFaZbnongR3xll5PPAByACEpi51tr00qd0w8YyVXNsAS6iVqHLIATdCFI+e7eomeTPyDVbndPqILfx8jxgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":350,"cache_read_input_tokens":414686,"output_tokens":538,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":350,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":538,"cache_read_input_tokens":414686,"cache_creation_input_tokens":350,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":350},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTx7K1pMmT59SnZswpCn","type":"assistant","uuid":"ce0d2df6-655f-4357-ba57-a6e7ecde7a04","timestamp":"2026-07-28T06:04:49.749Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ce0d2df6-655f-4357-ba57-a6e7ecde7a04","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTx7QLoCdUNwUuEyAU7Q","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_0135r1Bfbh62nTeN3cMW8ABJ","name":"Bash","input":{"command":"cat src/components/SegmentCount/index.js && echo \"=== overview.mdx head ===\" && head -14 docs/segments/overview.mdx","description":"Review the new SegmentCount component"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":350,"cache_read_input_tokens":414686,"output_tokens":538,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":350,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":538,"cache_read_input_tokens":414686,"cache_creation_input_tokens":350,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":350},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTx7K1pMmT59SnZswpCn","type":"assistant","uuid":"91e7bc7c-256e-4f58-9de1-0f8b8d3ff313","timestamp":"2026-07-28T06:04:49.819Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"91e7bc7c-256e-4f58-9de1-0f8b8d3ff313","isSidechain":false,"promptId":"84891952-3e9a-4cd8-a9bc-6fcdba4e28b8","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_0135r1Bfbh62nTeN3cMW8ABJ","type":"tool_result","content":"import React from 'react';\nimport { usePluginData } from '@docusaurus/useGlobalData';\n\n// Reads the segments plugin's computed total instead of hardcoding a count in prose, so any MDX\n// page (which can't call usePluginData directly) can drop this component in wherever the segment\n// count is mentioned and never drift from the real number. Mirrors src/pages/index.js's own\n// usePluginData('oh-my-posh-segments') read for the homepage feature card.\nfunction SegmentCount() {\n const { total } = usePluginData('oh-my-posh-segments');\n return total;\n}\n\nexport default SegmentCount;\n=== overview.mdx head ===\n---\nid: overview\ntitle: Segments\nsidebar_label: Overview\n---\n\nimport SegmentCount from '@site/src/components/SegmentCount';\n\nA segment is a single piece of information in your prompt — the current path, a\nGit status, a language version, a cloud context. See [Segment][segment] for how\nto configure one.\n\nTo search and filter all segments, use the [segment catalog](/segments). The\nfull list follows, grouped by category.","is_error":false}]},"uuid":"6ea1f255-0f99-42e5-a622-f8203ff11685","timestamp":"2026-07-28T06:04:50.811Z","toolUseResult":{"stdout":"import React from 'react';\nimport { usePluginData } from '@docusaurus/useGlobalData';\n\n// Reads the segments plugin's computed total instead of hardcoding a count in prose, so any MDX\n// page (which can't call usePluginData directly) can drop this component in wherever the segment\n// count is mentioned and never drift from the real number. Mirrors src/pages/index.js's own\n// usePluginData('oh-my-posh-segments') read for the homepage feature card.\nfunction SegmentCount() {\n const { total } = usePluginData('oh-my-posh-segments');\n return total;\n}\n\nexport default SegmentCount;\n=== overview.mdx head ===\n---\nid: overview\ntitle: Segments\nsidebar_label: Overview\n---\n\nimport SegmentCount from '@site/src/components/SegmentCount';\n\nA segment is a single piece of information in your prompt — the current path, a\nGit status, a language version, a cloud context. See [Segment][segment] for how\nto configure one.\n\nTo search and filter all segments, use the [segment catalog](/segments). The\nfull list follows, grouped by category.","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"91e7bc7c-256e-4f58-9de1-0f8b8d3ff313","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6ea1f255-0f99-42e5-a622-f8203ff11685","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTx8DXT1CNQbvQdiw4dc","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The component returning a number is fine since React supports that. I'm waiting on the SVG agent now, so I'll write a brief status update while I have the time.","signature":"CAISoQQKhwEIEBgCKkAlX72l43+Qx1kV5t2mh3Hs2i1pgomH+iT59xyWEN/elwTI17NnynDee5JJhFDJO9nS6/pDryYr3Tv8fdPBKd/EMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDD1vxZMUZ58BJDETABoMj1dHlEh55S2qGAolIjCSI/XXss9k0Td4+8FaRWncgN+0MpxIjJuXP8mfIjTZXIPrvRkn/N8s3mF2d8rB0s4qxgL/XYqeOspeHeuWq3/CvjO+vzFEnjDV3Hb/ah8o7ooKJsJ0aL7bMhVUC7Ox6R1M9jI8bKYVaxpqPrXvPm7rfshmtjd7RSOw/bdCHCzHPteSW4SCK0kBWR5RyrKI6LjrlW7HEDToF+u7Xd3qEWi1MhdFr7UIr4r/lEEWbAH/B/eBP1hF8LfwcIn0bZEyEUnOG91kZApz4+D1AfWPj3Xvvg/1sICQ1xf/ILK/daqvXUMHZSwydewPFwTkDCTvpeGVucZZMVfMn9tmHR6+sfGx0P/WxziuxgO8OuZvcluvIXkhK2CkzRRPaQ5WhsLws7aHJWok6rXfIzw6MjffY8nlhdQ3JAfk18r8PQuq0zRirEooFkv3GxL/m67QH+HBj/Hnxyab1MZUWJmG2LbhkoNV0aCRZtrP/pOaFzE/i3qjCIzETTAT2JzydBgB"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":895,"cache_read_input_tokens":415036,"output_tokens":494,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":895,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":494,"cache_read_input_tokens":415036,"cache_creation_input_tokens":895,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":895},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTx88cGxDGbFJGHdLf6k","type":"assistant","uuid":"7963b3a7-b650-4732-892a-e684906b5712","timestamp":"2026-07-28T06:05:03.416Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7963b3a7-b650-4732-892a-e684906b5712","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTx8DXT1CNQbvQdiw4dc","type":"message","role":"assistant","content":[{"type":"text","text":"Website work reviewed and it holds up:\n\n- The build-time guard's four asserted paths all exist and contain the count (3, 2, 1, 1 occurrences). It errs toward passing — it only proves the number appears *somewhere* in each file, so a stale `117` in unrelated prose would slip through — but it does catch the case that matters: add segment 118 and the build fails with an actionable message naming the file.\n- `SegmentCount` returns `total` directly from `usePluginData`, and `overview.mdx` imports it. Homepage reads the same source.\n\n`src/svg` agent is working through the ten items now, with a whole-output gate: 124 themes exported before and after, then `diff -r`. Tasks 4–8 must produce zero diff — that's what proves the `fmt.Fprintf` rewrite is byte-identical and that `Options.Padding` really was dead. The one item allowed to change output is the canvas/terminal background normalisation, and I've asked it to list and justify every theme that shifts rather than wave it through.\n\nOnce that lands I'll queue the last batch — the three duplicated render-setup blocks, the Engine capture fields, the env-flag routing, and the `svgFontSize` mirror."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":895,"cache_read_input_tokens":415036,"output_tokens":494,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":895,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":494,"cache_read_input_tokens":415036,"cache_creation_input_tokens":895,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":895},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTx88cGxDGbFJGHdLf6k","type":"assistant","uuid":"117425fd-d041-4484-bb9d-6ef3e923153d","timestamp":"2026-07-28T06:05:03.854Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"117425fd-d041-4484-bb9d-6ef3e923153d","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":6789},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T06:05:12.135Z","uuid":"44ccdb20-7498-4a83-bd8c-d70f6cfad200","toolUseID":"5669c35f-ae2b-4f32-942a-19af7cc67193","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"44ccdb20-7498-4a83-bd8c-d70f6cfad200","isSidechain":false,"promptId":"34229c48-7765-43d8-9c6e-1482dff32f9b","type":"user","message":{"role":"user","content":"\na84a1631a8d65d901\ntoolu_01SoVXFZbH1eqpieuMp566d2\nC:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a84a1631a8d65d901.output\ncompleted\nAgent \"Apply svg package simplifications\" finished\nA task-notification fires each time this agent stops with no live background children of its own. The user can send it another message and resume it, so the same task-id may notify more than once.\nAll green. Here's the final report.\n\n## Summary\n\nAll 9 tasks completed in `src/svg/svg.go`, `src/svg/window.go`, `src/svg/fit.go`, `src/svg/colors.go`, `src/svg/svg_test.go`, `src/svg/window_test.go`, `src/color/colors.go`, `src/color/gradient.go`, and `src/cli/config_export_svg.go` (minimal single-call-site edit only, as instructed).\n\n### Per-task changes\n\n1. **Deleted dead `Options.Padding`** — field, its `withDefaults` clause, and `testOptions`' `Padding: 0` line removed from `svg.go`/`svg_test.go`. Fixed `testOptions`' doc comment, which wrongly attributed pixel-exactness to \"padding 0\" (`contentOriginX` actually recomputes real geometry from `windowGeometry.padding`).\n2. **`Encode` now returns `string`** (no error). Updated every `doc, err := Encode(...)` + `require.NoError` pair in `svg_test.go`/`window_test.go` (24 call sites, via a verified multi-line `perl` substitution, checked against a stray unrelated `require.NoError` that had to be left alone) and the one production caller in `cli/config_export_svg.go`.\n3. **Canvas/terminal-background invariant centralized** in `withDefaults`: `CanvasBackground = TerminalBackground` whenever the latter is non-nil. `Encode`'s `windowFill` selection is now unconditional, and `paintRun`'s `RunBackgroundPainted`/`RunReverseVideo` arms collapsed into one. **Real behavior delta, as flagged**: a `RunBackgroundPainted` run with no known terminal background previously read `opts.TerminalBackground` directly (nil → no `fill` attribute → SVG default black); it now falls back to `CanvasBackground`, exactly like `RunReverseVideo` already did. I judge this a fix, not a regression — it's the same \"cutout to the window behind it\" semantics this package already relies on `CanvasBackground` for everywhere else, and I added a dedicated `TestEncodeRunModes` case pinning it explicitly rather than leaving it implicit.\n4. **`fmt.Fprintf`** replaces the interleaved `WriteString` calls in `writeRect`, the root `<svg>` tag, and `writeWindowChrome` (added `fmt` import to both files). `writeText` left untouched as instructed.\n5. **`paintRun` signature reduced** to `(textRGB, rectRGB *color.RGB)`; call site in `encodeRow` now tests `rectRGB != nil` directly.\n6. **Two unreachable guards deleted**: `fitRows`' `columns <= 0` (confirmed via grep — only the definition and one call site, always post-`withDefaults`) and `wrapRow`'s `maxCells <= 0` (confirmed callers are `fitRow`, unreachable with a non-positive budget, and two tests passing 3/10). Both functions' doc comments now state the precondition instead.\n7. **Test duplication reduced**: `svg_test.go`'s ~8 plain-case literal repeats of the `contentRun` shape switched to `contentRun(...)`; two genuinely varying cases (`Attrs`/`Mode` table-driven) left as-is by judgment. `window_test.go`'s `widthOf`(string) and `extractWidth`(float64) collapsed into one `extractWidth(t, doc) float64`, both tests now use `assert.InDelta`.\n8. **`hexToRGB` now calls `gookit`'s `HexToRgb` directly** instead of a hand-transcribed copy, with a rewritten doc comment explaining the parity is now structural (ties to commit 86de20dd). Added `gookit \"github.com/gookit/color\"` import.\n9. **Shared truecolor SGR parser**: new `color.ParseTrueColorRGB(Ansi) (RGB, bool)` in `color/colors.go`. `gradient.go`'s `parseTrueColor` now wraps it (verified byte-for-byte identical rejection logic beforehand: same `strings.Split`/5-part/`38`|`48`/`2`-prefix check, same `strconv.ParseUint(..., 8)` range check). `svg/colors.go`'s `ParseTrueColorSGR` now wraps it too.\n\n### Verification (all run from `src/`)\n\n1. `go build ./...` — clean.\n2. `go vet ./svg/... ./color/...` — clean.\n3. `go test ./svg/... ./color/... ./cli/... ./prompt/... -count=1` — all pass (`svg`, `color`, `cli`, `cli/auth`, `cli/upgrade`, `prompt` all `ok`).\n4. `golangci-lint run ./svg/... ./color/...` — one `gocritic paramTypeCombine` finding on `paintRun`'s new signature, fixed (`textRGB, rectRGB *color.RGB`); final run: **0 issues**.\n5. `go test ./color/ -bench=. -benchtime=1s -run=XXX -benchmem` — `BenchmarkPaletteMixedCaseResolution-12: 246.7 ns/op, 48 B/op, 2 allocs/op`. Caveat worth flagging: this is the only benchmark in `./color/`, and it doesn't exercise `parseTrueColor`/`GradientCells` at all (it's plain palette resolution), and no benchmark anywhere in the repo drives an \"accent\" gradient stop (the only path that reaches `parseTrueColor`). So this gate ran clean but isn't direct proof of allocation-neutrality — that rests on the refactor being a mechanical extraction (same `strings.Split` + `strconv.ParseUint` calls, same RGB→`colorful.Color` division, just relocated).\n6. **Whole-output gate**: rebuilt, re-exported all 124 themes to `/tmp/svg-after/`, `diff -rq /tmp/svg-before /tmp/svg-after` — **empty output, zero differences**, confirmed again by md5sum comparison of all 124 files. So:\n - Tasks 1, 4, 5, 6, 7: zero diff, as required.\n - Task 8: zero diff, as expected (no theme uses a hex form the old parser rejected, post-86de20dd).\n - Task 3: zero diff too, despite the real behavior delta existing in code. Reason, traced through `terminal/run.go`'s `deriveRunMode`: a run is only captured as `RunBackgroundPainted` when `terminal.BackgroundColor` was non-empty at capture time, and `cli/config_export_svg.go`'s `svgOptions` resolves `opts.TerminalBackground` from that *same* `terminal.BackgroundColor` variable at export time in the same process — so through this CLI path, `RunBackgroundPainted` and a known `TerminalBackground` always co-occur. The previously-different (now-fixed) combination — `RunBackgroundPainted` with `TerminalBackground` unknown — isn't reachable from `config export image`; it only arises for a caller that constructs `svg.Options` by hand differently from how capture derived the mode, which is exactly what the new `TestEncodeRunModes` case exercises directly.\n\n### Scope discipline\n\nTouched only the files permitted: `src/svg/*`, `src/color/gradient.go`, `src/color/colors.go`, and the single call site in `src/cli/config_export_svg.go`. Did not touch `terminal/run.go`, `terminal/writer.go`, `src/cli/config_export_svg_test.go`, or any `website/`/`tools/` files with pre-existing uncommitted changes from other agents. Did not commit anything.\n\n### Not done (explicitly out of scope, per instructions)\n\n`FillAscent`/`FillDescent`, `CellWidth`/`LineHeight` collapse, `insertCursor`/`collapseGap` coupling, and `GradientCells`/`GradientCellsRGB` changes beyond task 9 — none of these were touched, as directed.\n2300171461213561\n"},"uuid":"bcd3e067-1fc4-45bf-bb4f-518f2065b10b","timestamp":"2026-07-28T06:24:18.257Z","permissionMode":"auto","origin":{"kind":"task-notification"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bcd3e067-1fc4-45bf-bb4f-518f2065b10b","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"D:\\oh-my-posh\\src\\svg\\svg_test.go","snippet":"1\tpackage svg\n2\t\n3\timport (\n4\t\t\"encoding/xml\"\n5\t\t\"io\"\n6\t\t\"regexp\"\n7\t\t\"strings\"\n8\t\t\"testing\"\n9\t\n10\t\t\"github.com/jandedobbeleer/oh-my-posh/src/color\"\n11\t\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n12\t\n13\t\t\"github.com/stretchr/testify/assert\"\n14\t\t\"github.com/stretchr/testify/require\"\n15\t)\n16\t\n17\t// testOptions fixes every metric so pixel math in assertions is exact and\n18\t// readable: a 10px cell, a 20px row, and a fixed Columns wide enough that no\n19\t// existing test's row gets wrapped by fitRow (see fit.go) — tests that\n20\t// specifically exercise wrapping set their own, narrower Columns. The window\n21\t// padding these assertions are computed against isn't set here at all: it\n22\t// comes from windowGeometry, scaled from FontSize (see newWindowGeometry) —\n23\t// contentOriginX recomputes that real geometry rather than assuming it away.\n24\t//\n25\t// FillAscent/FillDescent are set to 15/5 rather than left to default so the\n26\t// fill box works out to exactly the row box (baseline sits at 0.75*20 = 15\n27\t// below the row top, so the rect spans rowTop..rowTop+20). Every position\n28\t// assertion here predates the fill box being a metric of its own and is\n29\t// written against the row, so pinning them this way keeps those assertions\n30\t// meaningful; TestEncodeFillBoxTracksGlyphInk covers the case where the two\n31\t// genuinely differ.\n32\tfunc testOptions() Options {\n33\t\treturn Options{\n34\t\t\tFontSize: 10,\n35\t\t\tCellWidth: 10,\n36\t\t\tLineHeight: 20,\n37\t\t\tFillAscent: 15,\n38\t\t\tFillDescent: 5,\n39\t\t\tColumns: 40,\n40\t\t}\n41\t}\n42\t\n43\t// contentOriginX computes the same content grid top-left X coordinate\n44\t// Encode itself derives (see newWindowGeometry/newCanvasSize), so position\n45\t// assertions stay correct if that geometry ever changes instead of\n46\t// hardcoding numbers that would silently drift out of sync. Every caller\n47\t// only ever needs the X coordinate (row-position assertions derive Y from\n48\t// LineHeight/rowIndex directly), so this returns just that rather than a\n49\t// (x, y) pair whose y half no caller uses.\n50\t//\n51\t//nolint:gocritic\n52\tfunc contentOriginX(opts Options) float64 {\n53\t\topts = opts.withDefaults()\n54\t\tgeo := newWindowGeometry(&opts)\n55\t\tsize := newCanvasSize(&geo, opts.Columns, opts.CellWidth, 1, opts.LineHeight)\n56\t\n57\t\treturn size.contentX\n58\t}\n59\t\n60\t// decodeXML asserts doc is well-formed XML — the bar the task sets for\n61\t// \"renders correctly when opened in a browser\" — draining every token so a\n62\t// mismatched tag or a bad escape surfaces as a test failure rather than\n63\t// something only a browser would notice.\n64\tfunc decodeXML(t *testing.T, doc string) {\n65\t\tt.Helper()\n66\t\n67\t\tdecoder := xml.NewDecoder(strings.NewReader(doc))\n68\t\n69\t\tfor {\n70\t\t\t_, err := decoder.Token()\n71\t\t\tif err == nil {\n72\t\t\t\tcontinue\n73\t\t\t}\n74\t\n75\t\t\trequire.ErrorIs(t, err, io.EOF)\n76\t\n77\t\t\treturn\n78\t\t}\n79\t}\n80\t\n81\t// TestEncodeSkipsZeroCellRuns pins the hyperlink case explicitly called out\n82\t// in the parent stage plan: Run.Cells can be 0 while Run.Text is non-empty\n83\t// (a hyperlink's URL text — see terminal.Run's doc comment), and such a run\n84\t// must contribute no glyphs and no column advance, so the run after it lands\n85\t// immediately next to the one before it, not shifted by the hidden text's\n86\t// own width.\n87\tfunc TestEncodeSkipsZeroCellRuns(t *testing.T) {\n88\t\trows := [][]terminal.Run{\n89\t\t\t{\n90\t\t\t\tcontentRun(\"ab\"),\n91\t\t\t\t{Text: \"https://example.com/hidden\", Cells: 0, ForegroundSource: \"red\", BackgroundSource: \"blue\", Mode: terminal.RunNormal},\n92\t\t\t\tcontentRun(\"cd\"),\n93\t\t\t},\n94\t\t}\n95\t\n96\t\tdoc := Encode(rows, testOptions())\n97\t\tdecodeXML(t, doc)\n98\t\n99\t\tassert.NotContains(t, doc, \"hidden\")\n100\t\tassert.Contains(t, doc, \">ab<\")\n101\t\tassert.Contains(t, doc, \">cd<\")\n102\t\n103\t\t// \"cd\" must start immediately after \"ab\" (2 cells further, at the\n104\t\t// content origin + 2*cellWidth), not pushed out further by the\n105\t\t// zero-cell hyperlink run's own text in between.\n106\t\topts := testOptions()\n107\t\tcontentX := contentOriginX(opts)\n108\t\twantX := contentX + 2*opts.CellWidth\n109\t\tassert.Contains(t, doc, `x=\"`+formatFloat(wantX)+`\"`)\n110\t\n111\t\t// One for each of the two visible runs, plus the window's own\n112\t\t// background rect (see writeWindowChrome); one for each of the\n113\t\t// two visible runs, plus the cursor and the watermark decorate always\n114\t\t// appends (see decorate).\n115\t\tassert.Equal(t, 3, strings.Count(doc, \"&1 | grep -v \"^ok\\|no test files\" | head; golangci-lint run ./... 2>&1 | tail -2; echo \"=== gradient allocs ===\"; go test ./terminal/ -bench=\"Gradient\" -benchtime=1s -run=XXX -benchmem -count=3 2>&1 | grep -E \"^Benchmark\"","description":"Verify full tree and gradient allocations"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":10458,"cache_read_input_tokens":416425,"output_tokens":608,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":10458,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":608,"cache_read_input_tokens":416425,"cache_creation_input_tokens":10458,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":10458},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTycFKjzAQ7Lo1R1y6PJ","type":"assistant","uuid":"7765b8f6-83ea-4a0c-8bdd-5855ba14413b","timestamp":"2026-07-28T06:24:28.042Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7765b8f6-83ea-4a0c-8bdd-5855ba14413b","isSidechain":false,"promptId":"34229c48-7765-43d8-9c6e-1482dff32f9b","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017K3UAeRSMt9D9ah3oe8Wvx","type":"tool_result","content":"0 issues.\n=== gradient allocs ===\nBenchmarkWriteGradient-12 \t 483367\t 2614 ns/op\t 1785 B/op\t 17 allocs/op\nBenchmarkWriteGradient-12 \t 556965\t 2536 ns/op\t 1785 B/op\t 17 allocs/op\nBenchmarkWriteGradient-12 \t 553905\t 2520 ns/op\t 1785 B/op\t 17 allocs/op\nBenchmarkWriteGradientChained-12 \t 664952\t 1951 ns/op\t 808 B/op\t 28 allocs/op\nBenchmarkWriteGradientChained-12 \t 645084\t 2004 ns/op\t 808 B/op\t 28 allocs/op\nBenchmarkWriteGradientChained-12 \t 641025\t 1987 ns/op\t 808 B/op\t 28 allocs/op","is_error":false}]},"uuid":"6518cde7-5754-420c-bde2-739311f6b9da","timestamp":"2026-07-28T06:24:59.822Z","toolUseResult":{"stdout":"0 issues.\n=== gradient allocs ===\nBenchmarkWriteGradient-12 \t 483367\t 2614 ns/op\t 1785 B/op\t 17 allocs/op\nBenchmarkWriteGradient-12 \t 556965\t 2536 ns/op\t 1785 B/op\t 17 allocs/op\nBenchmarkWriteGradient-12 \t 553905\t 2520 ns/op\t 1785 B/op\t 17 allocs/op\nBenchmarkWriteGradientChained-12 \t 664952\t 1951 ns/op\t 808 B/op\t 28 allocs/op\nBenchmarkWriteGradientChained-12 \t 645084\t 2004 ns/op\t 808 B/op\t 28 allocs/op\nBenchmarkWriteGradientChained-12 \t 641025\t 1987 ns/op\t 808 B/op\t 28 allocs/op","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"7765b8f6-83ea-4a0c-8bdd-5855ba14413b","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6518cde7-5754-420c-bde2-739311f6b9da","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTyfRtKYVQXK1rEDAer9","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The allocation metrics for the gradient parser match the baseline exactly, confirming the shared extraction doesn't add overhead. Moving on to the final agent setup for the CLI prompt config plumbing, starting with consolidating the three render-setup blocks into a helper function and then handling the engine capture fields.\n\nThe remaining tasks involve routing environment flags through a config method, exporting the SVG font size constant from the svg package (since the svg agent didn't cover that), hoisting theme enumeration and data keys to config, cleaning up stale test references, and removing dead code branches. Before writing the prompt, I need to flag that there's no git stash available and crucially gate the output on the 124-theme test — D1 restructures the render setup which could alter output, so I must verify identical results before proceeding.\n\nD2 also touches the hot path in the prompt engine, so I'll require the golden tests and any prompt benchmarks to pass as a safety check before launching.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":908,"cache_read_input_tokens":426883,"output_tokens":4492,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":908,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":4492,"cache_read_input_tokens":426883,"cache_creation_input_tokens":908,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":908},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTyfGhg1EgDHc9MynQdg","type":"assistant","uuid":"829cc98f-4af5-438d-9a31-6d3937d4df4a","timestamp":"2026-07-28T06:25:18.881Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"829cc98f-4af5-438d-9a31-6d3937d4df4a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTyfRtKYVQXK1rEDAer9","type":"message","role":"assistant","content":[{"type":"text","text":"Gradient allocations unchanged (1785 B/17, 808 B/28 — matching the pre-refactor baseline), so the shared parser extraction is allocation-neutral. Launching the last batch:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":908,"cache_read_input_tokens":426883,"output_tokens":4492,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":908,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":4492,"cache_read_input_tokens":426883,"cache_creation_input_tokens":908,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":908},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTyfGhg1EgDHc9MynQdg","type":"assistant","uuid":"d68b6e0a-891f-4264-8898-e5eeefdedb31","timestamp":"2026-07-28T06:25:18.882Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d68b6e0a-891f-4264-8898-e5eeefdedb31","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTyfRtKYVQXK1rEDAer9","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_014qUFGutZd475SmzN2fYGNf","name":"Agent","input":{"description":"Apply cli prompt config dedup","model":"sonnet","subagent_type":"general-purpose","prompt":"Repo: D:\\oh-my-posh, branch `next`. Go module root is `src/` — run all go commands from there.\n\nYOU MAY EDIT: `src/cli/`, `src/prompt/`, `src/config/`, and ONE constant in `src/svg/svg.go` (task 4 only). Nothing else.\n\nNEVER RUN `git stash`, `git checkout`, `git reset`, or anything else that mutates the working tree or index. The tree holds a large amount of uncommitted work and two pre-existing stashes. Earlier this session a bare `git stash` destroyed another agent's in-flight edits. Read-only git is fine. Do NOT commit.\n\nStyle: match the surrounding code. These packages carry long doc comments recording why shapes were chosen and which approaches were reverted. When you change code a comment describes, UPDATE the comment. Never delete an explanatory comment as noise.\n\nBEFORE YOU START, capture a reference for the output gate you will need at the end:\n cd src && go build -o /tmp/omp-cli-before.exe .\n mkdir -p /tmp/cli-before\n then export every theme in D:/oh-my-posh/themes (*.omp.json and *.omp.yaml, 124 of them) with:\n /tmp/omp-cli-before.exe config export image --config --data src/prompt/testdata/fixtures/prompt.data.json -o /tmp/cli-before/.svg\nWrite a shell loop. You will re-export and diff at the end.\n\nTASKS:\n\n1. EXTRACT THE DUPLICATED RENDER SETUP. Three places repeat the same ~30-line sequence — `config.Load` → `runtime.Flags{ConfigPath, Shell: shell.GENERIC, TerminalWidth}` → `env.Init` → `template.Init` → clear `ConsoleTitleTemplate`/`PWD`/`ShellIntegration` → `terminal.Init(shell.GENERIC)` → `terminal.BackgroundColor` → `terminal.Colors` → build a `prompt.Engine` → `eng.Primary()`:\n - `src/cli/config_export_image.go` (~lines 80-131)\n - `src/cli/config_export_data.go` (~lines 96-131)\n - `src/cli/config_export_data.go`'s `recordThemeSanitized` (~lines 282-307)\n Extract one helper. The copies have already started to drift — `recordThemeSanitized` needed a `template.ResetCache` the single-config path does not — so the helper must accommodate that difference explicitly rather than papering over it. The image command sets `terminal.CaptureRuns = true` before rendering; keep that at its call site, not in the helper. Preserve the existing ordering exactly (template.Init before the terminal colours) — it matters.\n THIS IS THE HIGHEST-RISK TASK IN THE LIST. The output gate at the end is what proves you did not change rendering.\n\n2. SHRINK THE ENGINE'S CAPTURE STATE. `src/prompt/engine.go` (~lines 47-64) carries six run-capture fields. Two of them are values pretending to be state:\n - `pendingBlockRuns`: its non-capture counterparts `blockText`/`length` already flow as return values (`renderBlockSegments` → `renderLaunchedBlock` → `writeBlock`). Make `captureBlockRuns`' result a return value threaded the same way (`src/prompt/segments.go` ~lines 82-88, `engine.go`'s `renderBlockFromCache` ~lines 389-393, into `writeBlock`) and delete the field.\n - `pendingFillerRuns`: `shouldFill(filler, padLength)` (`engine.go` ~lines 226-249) already has `padLength` in hand, so it can return the expanded `[]terminal.Run` directly. That deletes `captureFillerRuns`, `fillerCaptureRuns`, the field, and the awkward re-passing of the same `fillLength`/`space` value at ~lines 310-313 and ~327-330.\n Leave `capturedRows`, `rpromptRuns` (it rightly persists, mirroring `e.rprompt`), `cursorRow` and `cursorRun` alone.\n HOT PATH: `src/prompt` runs on every prompt render. With `terminal.CaptureRuns` false the new parameters must be nil slices — zero allocations. Verify that.\n Update `src/prompt/runs_test.go` for the changed shapes.\n\n3. DEDUPLICATE THE ENV-FLAG ROUTING. `src/cli/data.go` (~lines 61-84) and `src/prompt/golden_test.go` (~lines 222-245) contain the same six-field `PWD`/`Code`/`ExecutionTime`/`PipeStatus`/`Interrupted`/`Executed` if-chain. The harness cannot import `cli` (`cli` imports `prompt`). Move the routing into `src/config` as a method on the data type — e.g. `func (d *Data) ApplyFlags(flags *runtime.Flags, changed func(string) bool)`, where a nil `changed` means \"never overridden\" for the harness's use. `config` already imports `runtime`. `applyDataFile` then shrinks to load + version warning + `--data-derive`.\n\n4. STOP MIRRORING AN UNEXPORTED CONSTANT. `src/cli/config_export_svg.go` (~line 20) hardcodes `svgFontSize = 16.0` to mirror `src/svg/svg.go`'s unexported `defaultFontSize`, with an apology comment. Export it from `svg` as `DefaultFontSize`, have `svg.go`'s own `withDefaults` use the exported name, and delete the CLI's mirrored constant and comment. This is your ONLY permitted edit to `src/svg/`.\n\n5. USE THE CONSTANT THAT ALREADY EXISTS. `src/cli/sanitize.go` (~lines 43-48) writes the literal `\"~/dev/oh-my-posh\"` three times, while `sanitizedPath` (~line 14) — whose doc comment explicitly claims it covers \"env PWD/PSWD/AbsolutePWD\" — sits unused for exactly those keys. Use the constant so the doc matches the code.\n\n6. HOIST TWO THINGS DEFINED TWICE INTO `config`.\n - Theme enumeration: `src/cli/config_export_data.go` (~line 237, `themeFileExtensions` + `listThemeFiles`) and `src/prompt/golden_test.go` (~line 154, `themeExtensions` + `themeFiles`) define the same extension list and the same readdir-filter-sort.\n - Data-file keys: `src/cli/config_export_data.go` (~lines 28-32) defines `version`/`env`/`segments` key constants whose comment claims they are shared \"by config.LoadData on the read side\" — but `src/config/data.go` (~lines 96-106) reads string literals, so the constants cannot reach it. This is the one place a typo silently desynchronizes recorder and replayer.\n Move both into `src/config`, next to `DataVersion`, and have both sides use them. Fix the now-false comment.\n\n7. SMALL ITEMS.\n - `src/prompt/fixtures_sanitized_test.go` (~lines 57-64): `fixtureFiles` returns a hardcoded one-element slice purely to preserve the shape from when there were 124 fixture files. Inline `fixturePath` and drop the helper and its loop scaffolding.\n - `src/prompt/golden_test.go` (~lines 126, 138): `representativeThemes`' rationale cites \"Task A's hermeticity fix\" and \"Task D\" — labels from a planning document that is not in this repo. KEEP THE FACTS (chips makes a live wakatime call; no bundled theme uses ``), drop the opaque task letters. Check `src/cli/config_export_data.go` for the same pattern and fix any you find.\n - `src/config/data.go` (~lines 141-148): the `map[any]any` branch of `sanitize` is very likely dead — both `go.yaml.in/yaml/v3` and `go-toml/v2` decode untyped maps as `map[string]any`. PROVE IT before deleting: write a temporary test that round-trips a nested-map YAML and a nested-map TOML through the real decoder and asserts the concrete type. If the branch is genuinely unreachable, delete it and say what you proved. If it IS reachable, keep it and say so — do not delete on suspicion.\n\nDO NOT DO: any change to `GradientCells`/`GradientCellsRGB` in `src/color`; anything under `src/terminal`, `src/svg` (beyond task 4), `website/`, or `tools/`.\n\nVERIFICATION — run all of these and report actual output:\n1. `cd src && go build ./... && go vet ./cli/... ./prompt/... ./config/...`\n2. `cd src && go test ./... -count=1` — the FULL suite, not just your packages. The golden harness in `src/prompt` renders all 124 bundled themes and hash-pins the output; it is your strongest signal for tasks 1 and 2.\n3. `cd src && golangci-lint run ./...`\n4. `cd src && go test ./terminal/ -bench=. -benchtime=2s -run=XXX -benchmem -count=5` — task 2 touches the prompt render path. allocs/op and B/op MUST NOT increase versus these known-good current values: WriteAnchors 688 B / 14 allocs, WritePlainASCII 312 B / 6 allocs, WriteSolid 488 B / 16 allocs, WriteGradient 1785 B / 17 allocs, WriteGradientChained 808 B / 28 allocs.\n5. THE OUTPUT GATE: rebuild, re-export all 124 themes to /tmp/cli-after/, then `diff -rq /tmp/cli-before /tmp/cli-after`. This MUST be empty. Any difference means task 1 or 2 changed rendering — investigate and fix rather than rationalise.\n6. `cd src && go run . config export data --config ../themes/jandedobbeleer.omp.json -o /tmp/probe.json` then inspect /tmp/probe.json to confirm the recorder still writes a version marker and segment data after task 6.\n\nReport: changes per file, all verification output including the exact diff-gate result and the benchmark table, what you proved about the `map[any]any` branch, and anything you chose not to do. Do not claim a check passed if you did not run it."},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":908,"cache_read_input_tokens":426883,"output_tokens":4492,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":908,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":4492,"cache_read_input_tokens":426883,"cache_creation_input_tokens":908,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":908},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTyfGhg1EgDHc9MynQdg","type":"assistant","uuid":"f0440f5e-6e4f-48b4-83e1-9c3722679167","timestamp":"2026-07-28T06:25:55.162Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f0440f5e-6e4f-48b4-83e1-9c3722679167","isSidechain":false,"promptId":"34229c48-7765-43d8-9c6e-1482dff32f9b","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_014qUFGutZd475SmzN2fYGNf","type":"tool_result","content":[{"type":"text","text":"Async agent launched successfully. (This tool result is internal metadata — never quote or paste any part of it, including the agentId below, into a user-facing reply.)\nagentId: a027dd019de5e689f (internal ID - do not mention to user. Use SendMessage with to: 'a027dd019de5e689f', summary: '<5-10 word recap>' to continue this agent.)\nThe agent is working in the background. You will be notified automatically when it completes. You know nothing about its results until that notification arrives — do not report, assume, or predict them; continue other work or respond to the user in the meantime.\nDo not duplicate this agent's work — avoid working with the same files or topics it is using.\noutput_file: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a027dd019de5e689f.output\nDo NOT Read or tail this file via the shell tool — it is the full subagent JSONL transcript and reading it will overflow your context. If the user asks for progress, say the agent is still running; you'll get a completion notification."}]}]},"uuid":"756df80c-0a81-43a8-ac53-4a14dc83b74b","timestamp":"2026-07-28T06:25:58.706Z","toolUseResult":{"isAsync":true,"status":"async_launched","agentId":"a027dd019de5e689f","description":"Apply cli prompt config dedup","resolvedModel":"claude-sonnet-5","prompt":"Repo: D:\\oh-my-posh, branch `next`. Go module root is `src/` — run all go commands from there.\n\nYOU MAY EDIT: `src/cli/`, `src/prompt/`, `src/config/`, and ONE constant in `src/svg/svg.go` (task 4 only). Nothing else.\n\nNEVER RUN `git stash`, `git checkout`, `git reset`, or anything else that mutates the working tree or index. The tree holds a large amount of uncommitted work and two pre-existing stashes. Earlier this session a bare `git stash` destroyed another agent's in-flight edits. Read-only git is fine. Do NOT commit.\n\nStyle: match the surrounding code. These packages carry long doc comments recording why shapes were chosen and which approaches were reverted. When you change code a comment describes, UPDATE the comment. Never delete an explanatory comment as noise.\n\nBEFORE YOU START, capture a reference for the output gate you will need at the end:\n cd src && go build -o /tmp/omp-cli-before.exe .\n mkdir -p /tmp/cli-before\n then export every theme in D:/oh-my-posh/themes (*.omp.json and *.omp.yaml, 124 of them) with:\n /tmp/omp-cli-before.exe config export image --config --data src/prompt/testdata/fixtures/prompt.data.json -o /tmp/cli-before/.svg\nWrite a shell loop. You will re-export and diff at the end.\n\nTASKS:\n\n1. EXTRACT THE DUPLICATED RENDER SETUP. Three places repeat the same ~30-line sequence — `config.Load` → `runtime.Flags{ConfigPath, Shell: shell.GENERIC, TerminalWidth}` → `env.Init` → `template.Init` → clear `ConsoleTitleTemplate`/`PWD`/`ShellIntegration` → `terminal.Init(shell.GENERIC)` → `terminal.BackgroundColor` → `terminal.Colors` → build a `prompt.Engine` → `eng.Primary()`:\n - `src/cli/config_export_image.go` (~lines 80-131)\n - `src/cli/config_export_data.go` (~lines 96-131)\n - `src/cli/config_export_data.go`'s `recordThemeSanitized` (~lines 282-307)\n Extract one helper. The copies have already started to drift — `recordThemeSanitized` needed a `template.ResetCache` the single-config path does not — so the helper must accommodate that difference explicitly rather than papering over it. The image command sets `terminal.CaptureRuns = true` before rendering; keep that at its call site, not in the helper. Preserve the existing ordering exactly (template.Init before the terminal colours) — it matters.\n THIS IS THE HIGHEST-RISK TASK IN THE LIST. The output gate at the end is what proves you did not change rendering.\n\n2. SHRINK THE ENGINE'S CAPTURE STATE. `src/prompt/engine.go` (~lines 47-64) carries six run-capture fields. Two of them are values pretending to be state:\n - `pendingBlockRuns`: its non-capture counterparts `blockText`/`length` already flow as return values (`renderBlockSegments` → `renderLaunchedBlock` → `writeBlock`). Make `captureBlockRuns`' result a return value threaded the same way (`src/prompt/segments.go` ~lines 82-88, `engine.go`'s `renderBlockFromCache` ~lines 389-393, into `writeBlock`) and delete the field.\n - `pendingFillerRuns`: `shouldFill(filler, padLength)` (`engine.go` ~lines 226-249) already has `padLength` in hand, so it can return the expanded `[]terminal.Run` directly. That deletes `captureFillerRuns`, `fillerCaptureRuns`, the field, and the awkward re-passing of the same `fillLength`/`space` value at ~lines 310-313 and ~327-330.\n Leave `capturedRows`, `rpromptRuns` (it rightly persists, mirroring `e.rprompt`), `cursorRow` and `cursorRun` alone.\n HOT PATH: `src/prompt` runs on every prompt render. With `terminal.CaptureRuns` false the new parameters must be nil slices — zero allocations. Verify that.\n Update `src/prompt/runs_test.go` for the changed shapes.\n\n3. DEDUPLICATE THE ENV-FLAG ROUTING. `src/cli/data.go` (~lines 61-84) and `src/prompt/golden_test.go` (~lines 222-245) contain the same six-field `PWD`/`Code`/`ExecutionTime`/`PipeStatus`/`Interrupted`/`Executed` if-chain. The harness cannot import `cli` (`cli` imports `prompt`). Move the routing into `src/config` as a method on the data type — e.g. `func (d *Data) ApplyFlags(flags *runtime.Flags, changed func(string) bool)`, where a nil `changed` means \"never overridden\" for the harness's use. `config` already imports `runtime`. `applyDataFile` then shrinks to load + version warning + `--data-derive`.\n\n4. STOP MIRRORING AN UNEXPORTED CONSTANT. `src/cli/config_export_svg.go` (~line 20) hardcodes `svgFontSize = 16.0` to mirror `src/svg/svg.go`'s unexported `defaultFontSize`, with an apology comment. Export it from `svg` as `DefaultFontSize`, have `svg.go`'s own `withDefaults` use the exported name, and delete the CLI's mirrored constant and comment. This is your ONLY permitted edit to `src/svg/`.\n\n5. USE THE CONSTANT THAT ALREADY EXISTS. `src/cli/sanitize.go` (~lines 43-48) writes the literal `\"~/dev/oh-my-posh\"` three times, while `sanitizedPath` (~line 14) — whose doc comment explicitly claims it covers \"env PWD/PSWD/AbsolutePWD\" — sits unused for exactly those keys. Use the constant so the doc matches the code.\n\n6. HOIST TWO THINGS DEFINED TWICE INTO `config`.\n - Theme enumeration: `src/cli/config_export_data.go` (~line 237, `themeFileExtensions` + `listThemeFiles`) and `src/prompt/golden_test.go` (~line 154, `themeExtensions` + `themeFiles`) define the same extension list and the same readdir-filter-sort.\n - Data-file keys: `src/cli/config_export_data.go` (~lines 28-32) defines `version`/`env`/`segments` key constants whose comment claims they are shared \"by config.LoadData on the read side\" — but `src/config/data.go` (~lines 96-106) reads string literals, so the constants cannot reach it. This is the one place a typo silently desynchronizes recorder and replayer.\n Move both into `src/config`, next to `DataVersion`, and have both sides use them. Fix the now-false comment.\n\n7. SMALL ITEMS.\n - `src/prompt/fixtures_sanitized_test.go` (~lines 57-64): `fixtureFiles` returns a hardcoded one-element slice purely to preserve the shape from when there were 124 fixture files. Inline `fixturePath` and drop the helper and its loop scaffolding.\n - `src/prompt/golden_test.go` (~lines 126, 138): `representativeThemes`' rationale cites \"Task A's hermeticity fix\" and \"Task D\" — labels from a planning document that is not in this repo. KEEP THE FACTS (chips makes a live wakatime call; no bundled theme uses ``), drop the opaque task letters. Check `src/cli/config_export_data.go` for the same pattern and fix any you find.\n - `src/config/data.go` (~lines 141-148): the `map[any]any` branch of `sanitize` is very likely dead — both `go.yaml.in/yaml/v3` and `go-toml/v2` decode untyped maps as `map[string]any`. PROVE IT before deleting: write a temporary test that round-trips a nested-map YAML and a nested-map TOML through the real decoder and asserts the concrete type. If the branch is genuinely unreachable, delete it and say what you proved. If it IS reachable, keep it and say so — do not delete on suspicion.\n\nDO NOT DO: any change to `GradientCells`/`GradientCellsRGB` in `src/color`; anything under `src/terminal`, `src/svg` (beyond task 4), `website/`, or `tools/`.\n\nVERIFICATION — run all of these and report actual output:\n1. `cd src && go build ./... && go vet ./cli/... ./prompt/... ./config/...`\n2. `cd src && go test ./... -count=1` — the FULL suite, not just your packages. The golden harness in `src/prompt` renders all 124 bundled themes and hash-pins the output; it is your strongest signal for tasks 1 and 2.\n3. `cd src && golangci-lint run ./...`\n4. `cd src && go test ./terminal/ -bench=. -benchtime=2s -run=XXX -benchmem -count=5` — task 2 touches the prompt render path. allocs/op and B/op MUST NOT increase versus these known-good current values: WriteAnchors 688 B / 14 allocs, WritePlainASCII 312 B / 6 allocs, WriteSolid 488 B / 16 allocs, WriteGradient 1785 B / 17 allocs, WriteGradientChained 808 B / 28 allocs.\n5. THE OUTPUT GATE: rebuild, re-export all 124 themes to /tmp/cli-after/, then `diff -rq /tmp/cli-before /tmp/cli-after`. This MUST be empty. Any difference means task 1 or 2 changed rendering — investigate and fix rather than rationalise.\n6. `cd src && go run . config export data --config ../themes/jandedobbeleer.omp.json -o /tmp/probe.json` then inspect /tmp/probe.json to confirm the recorder still writes a version marker and segment data after task 6.\n\nReport: changes per file, all verification output including the exact diff-gate result and the benchmark table, what you proved about the `map[any]any` branch, and anything you chose not to do. Do not claim a check passed if you did not run it.","outputFile":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a027dd019de5e689f.output","canReadOutputFile":true},"sourceToolAssistantUUID":"f0440f5e-6e4f-48b4-83e1-9c3722679167","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"756df80c-0a81-43a8-ac53-4a14dc83b74b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdTyjgx3o2JoixV3fCENq","type":"message","role":"assistant","content":[{"type":"text","text":"`src/svg` is done and verified — zero rendering change across 124 themes, gradient allocations flat, full suite and lint clean.\n\nWhat landed there: `Options.Padding` deleted (the zero-diff export is the proof it was dead), `Encode` no longer returns an always-nil error, `fmt.Fprintf` replacing the hand-interleaved writers, `paintRun` down to two returns, both unreachable guards gone, `hexToRGB` now calling gookit instead of transcribing it, and one shared truecolor SGR parser between `svg` and `color`.\n\nThe background-invariant change is worth a note. It found a genuine behaviour delta — a `RunBackgroundPainted` run with no known terminal background used to emit no `fill` at all, rendering black — but traced why no theme exercises it: `deriveRunMode` only produces that mode when `terminal.BackgroundColor` was set at capture time, and `svgOptions` resolves `TerminalBackground` from that same variable in the same process, so the two always co-occur through the CLI. It pinned the previously-unreachable combination with a new test case rather than leaving it implicit. That's the right call — the fix is real even though nothing shipped hits it today.\n\nLast batch running now: the three duplicated render-setup blocks, the two Engine capture fields that should be return values, the env-flag routing, the `svgFontSize` mirror, the theme-enumeration and data-key duplication, and proving out the suspected-dead `map[any]any` branch. Same 124-theme output gate plus the terminal allocation numbers as its guardrails, since task 1 restructures the export render path and task 2 touches the prompt hot path."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":4871,"cache_read_input_tokens":427791,"output_tokens":551,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":4871,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":551,"cache_read_input_tokens":427791,"cache_creation_input_tokens":4871,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":4871},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdTyjbMCSA22AUB6BBcbs","type":"assistant","uuid":"6b9b02e6-cbf2-47e8-b9ab-f33d3875b476","timestamp":"2026-07-28T06:26:09.648Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6b9b02e6-cbf2-47e8-b9ab-f33d3875b476","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":7485},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T06:26:19.070Z","uuid":"e9364703-ab1f-4b6f-b3c1-2711e3c5be87","toolUseID":"338f6145-0d4d-4d54-950d-3f726dedfc86","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e9364703-ab1f-4b6f-b3c1-2711e3c5be87","isSidechain":false,"promptId":"c7353b88-d047-4656-9c59-a6a72a975032","type":"user","message":{"role":"user","content":"\na027dd019de5e689f\ntoolu_014qUFGutZd475SmzN2fYGNf\nC:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a027dd019de5e689f.output\ncompleted\nAgent \"Apply cli prompt config dedup\" finished\nA task-notification fires each time this agent stops with no live background children of its own. The user can send it another message and resume it, so the same task-id may notify more than once.\nAll 7 tasks are implemented and fully verified. Summary:\n\n## Changes per file\n\n**Task 1 — extracted duplicated render setup** (`src/cli/config_export_data.go`, `src/cli/config_export_image.go`): New helper `renderConfigForExport(cfg *config.Config, terminalWidth int, resetTemplateCache bool, applyData func(*runtime.Flags) error) (*prompt.Engine, error)` in `config_export_data.go`, covering `runtime.Flags` → `env.Init` → optional `template.ResetCache` → `template.Init` → clearing `ConsoleTitleTemplate`/`PWD`/`ShellIntegration` → `terminal.Init`/`BackgroundColor`/`Colors` → build `Engine` → `Primary()`. `recordThemeSanitized` now passes `resetTemplateCache=true`; the two single-config call sites pass `false`. `terminal.CaptureRuns = true` stays at the image command's own call site. `config.Load` stays at each call site (its error handling genuinely differs per site).\n\n**Task 2 — shrunk engine capture state** (`src/prompt/engine.go`, `segments.go`, `runs.go`, `runs_test.go`, `extra.go`, `extra_test.go`, `engine_test.go`): Deleted `pendingBlockRuns`/`pendingFillerRuns` fields. `captureBlockRuns()` now returns `[]terminal.Run`; `renderBlockSegments` returns a third `[]terminal.Run` value threaded through `renderLaunchedBlock`/`renderBlockFromCache` into `writeBlock`. `shouldFill` now returns `(string, []terminal.Run, bool)`, folding in what `captureFillerRuns`/`fillerCaptureRuns` did (deleted, replaced by a plain function `expandFillerRuns`). Verified nil-slice/zero-alloc behavior when `CaptureRuns` is false.\n\n**Task 3 — deduplicated env-flag routing** (`src/config/data.go`, `src/cli/data.go`, `src/prompt/golden_test.go`): New `(*Data) ApplyFlags(flags *runtime.Flags, changed func(string) bool) error` on `config.Data` (nil `changed` = never overridden). `cli.applyDataFile` shrank to load + version warning + `--data-derive`. `golden_test.go`'s `applyFixtureData` now calls `data.ApplyFlags(flags, nil)`.\n\n**Task 4 — exported font-size constant** (`src/svg/svg.go`, `src/cli/config_export_svg.go`): `defaultFontSize` → exported `DefaultFontSize` (only permitted svg/ edit); CLI's mirrored `svgFontSize` constant and apology comment deleted, call sites use `svg.DefaultFontSize`.\n\n**Task 5** (`src/cli/sanitize.go`): `sanitizeEnv`'s three `\"~/dev/oh-my-posh\"` literals now use the existing `sanitizedPath` constant.\n\n**Task 6** (`src/config/data.go`, `src/cli/config_export_data.go`, `src/prompt/golden_test.go`): Added `config.DataVersionKey/DataEnvKey/DataSegmentsKey` and `config.ThemeFileExtensions`/`config.ThemeFiles(dir)`, used by `LoadData` (fixing the previously-false \"shared by config.LoadData\" comment) and by both former duplicate sites.\n\n**Task 7** (`src/prompt/fixtures_sanitized_test.go`, `golden_test.go`): Inlined `fixturePath`, deleted `fixtureFiles` and its loops. Removed \"Task A\"/\"Task D\" references, replaced with the actual facts (chips makes a live wakatime call; no bundled theme uses `<LINK>`). No matching pattern found in `config_export_data.go`. For the `map[any]any` branch in `config/data.go`'s `sanitize`: wrote a temporary probe test round-tripping nested-map YAML (`go.yaml.in/yaml/v3`) and TOML (`go-toml/v2`) through the real decoders into `map[string]any` (exactly as `LoadData` does) — both produced `map[string]interface{}` for the nested value, never `map[any]any`. Deleted the probe test and the dead branch.\n\n## Verification (all commands run, actual output)\n\n1. `go build ./... && go vet ./cli/... ./prompt/... ./config/...` — clean, no output.\n2. `go test ./... -count=1` — all packages `ok`, including `prompt` (golden harness over all 124 themes).\n3. `golangci-lint run ./...` — `0 issues`.\n4. Benchmarks (5 runs each) matched the known-good baseline exactly, no regression: WriteAnchors 688B/14, WritePlainASCII 312B/6, WriteSolid 488B/16, WriteGradient 1785B/17, WriteGradientChained 808B/28 (all B/op and allocs/op).\n5. Output gate: rebuilt, re-exported all 124 themes to `/tmp/cli-after`, `diff -rq /tmp/cli-before /tmp/cli-after` — **empty**.\n6. `go run . config export data --config ../themes/jandedobbeleer.omp.json -o /tmp/probe.json` — file contains populated `\"env\"`, `\"segments\"`, and `\"version\": 1` at the end (map key ordering is alphabetical).\n\n## Note on the working tree\n\n`git status` shows substantial uncommitted changes in `src/color`, `src/svg` (beyond my one line), `src/terminal`, `tools/`, `website/` that I did not make — consistent with the task's warning that other concurrent work exists in this tree. I verified my own diffs in every file I touched are scoped to exactly the described changes, layered cleanly on top of that pre-existing work, and did not revert or interfere with it (per the DO NOT DO list). Nothing was committed, per instructions.\n2412411461319383\n"},"uuid":"659568dc-b426-4a7b-b007-314d0038cd88","timestamp":"2026-07-28T06:47:59.012Z","permissionMode":"auto","origin":{"kind":"task-notification"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"659568dc-b426-4a7b-b007-314d0038cd88","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"D:\\oh-my-posh\\src\\cli\\config_export_image.go","snippet":"1\tpackage cli\n2\t\n3\timport (\n4\t\t\"fmt\"\n5\t\t\"os\"\n6\t\n7\t\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n8\t\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n9\t\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n10\t\t\"github.com/jandedobbeleer/oh-my-posh/src/template\"\n11\t\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n12\t\n13\t\t\"github.com/spf13/cobra\"\n14\t)\n15\t\n16\tvar (\n17\t\toutputImage string\n18\t\tsvgFontFamily string\n19\t\timageTerminalWidth int\n20\t\tsvgCellWidth float64\n21\t\tsvgLineHeight float64\n22\t\tsvgFillAscent float64\n23\t\tsvgFillDescent float64\n24\t)\n25\t\n26\tvar imageCmd = &cobra.Command{\n27\t\tUse: \"image\",\n28\t\tShort: \"Export your config to an SVG image\",\n29\t\tLong: `Export your config to an SVG image.\n30\t\n31\tThe image renders straight from the prompt's own Run stream, so it stays crisp at any zoom level\n32\tand, unlike a rasterized image, faithfully reproduces every color and style the prompt itself can\n33\trender.\n34\t\n35\tYou can tweak the output by using additional flags:\n36\t\n37\t- terminal-width: number of columns the image canvas is rendered at; this\n38\t is also the width the prompt is rendered with, so right-aligned blocks\n39\t and rprompts line up with the image the same way they would in a real\n40\t terminal of that width (default 120). Lines that still don't fit either\n41\t collapse their alignment padding or wrap onto the next row\n42\t- font-family: CSS font-family value the svg renders text with; defaults to\n43\t a Nerd Font stack\n44\t- cell-width: horizontal advance of one monospace cell, as a multiple of\n45\t font-size (e.g. 0.6021, not a pixel count); defaults to Hack Nerd Font's\n46\t own advance ratio, matching the default font-family stack. Set this\n47\t explicitly when font-family names a font with a different advance ratio\n48\t- line-height: vertical advance of one row, as a multiple of font-size;\n49\t defaults to Hack Nerd Font's own line height. Set this explicitly\n50\t alongside font-family/cell-width for the same reason\n51\t- fill-ascent, fill-descent: how far a segment's background reaches above\n52\t and below the text baseline, as multiples of font-size. Together they are\n53\t the box a powerline separator glyph inks, so the background ends exactly\n54\t where the separator does instead of standing taller than it. Both default\n55\t to Hack Nerd Font's own U+E0B0 ink box; set them alongside font-family for\n56\t the same reason as cell-width and line-height\n57\t\n58\tExample usage:\n59\t\n60\t> oh-my-posh config export image --config ~/myconfig.omp.json\n61\t\n62\tExports the config to an image file called myconfig.svg in the current working directory.\n63\t\n64\t> oh-my-posh config export image --config ~/myconfig.omp.json --output ~/mytheme.svg\n65\t\n66\tExports the config to an image file ~/mytheme.svg.`,\n67\t\tArgs: cobra.NoArgs,\n68\t\tRun: func(cmd *cobra.Command, _ []string) {\n69\t\t\tcache.Init(os.Getenv(\"POSH_SHELL\"))\n70\t\n71\t\t\terr := setConfigFlag()\n72\t\t\tif err != nil {\n73\t\t\t\texitcode = 666\n74\t\t\t\tfmt.Println(err.Error())\n75\t\t\t\treturn\n76\t\t\t}\n77\t\n78\t\t\tcfg := config.Load(configFlag)\n79\t\n80\t\t\t// CaptureRuns must be set before renderConfigForExport's eng.Primary() call so\n81\t\t\t// exportSVG can read the structured Run stream back via eng.CapturedRuns(); it\n82\t\t\t// stays here rather than in the helper because it's specific to this command,\n83\t\t\t// not part of the shared render setup.\n84\t\t\tterminal.CaptureRuns = true\n85\t\n86\t\t\teng, err := renderConfigForExport(cfg, imageTerminalWidth, false, func(flags *runtime.Flags) error {\n87\t\t\t\treturn applyDataFile(flags, cmd.Flags().Changed)\n88\t\t\t})\n89\t\t\tif err != nil {\n90\t\t\t\texitcode = 666\n91\t\t\t\tfmt.Println(err.Error())\n92\t\t\t\treturn\n93\t\t\t}\n94\t\n95\t\t\tdefer func() {\n96\t\t\t\ttemplate.SaveCache()\n97\t\t\t\tcache.Close()\n98\t\t\t}()\n99\t\n100\t\t\tmetrics := fontMetrics{\n101\t\t\t\tcellWidth: svgCellWidth,\n102\t\t\t\tlineHeight: svgLineHeight,\n103\t\t\t\tfillAscent: svgFillAscent,\n104\t\t\t\tfillDescent: svgFillDescent,\n105\t\t\t}\n106\t\n107\t\t\tif err := exportSVG(eng, cfg, outputImage, svgFontFamily, imageTerminalWidth, metrics); err != nil {\n108\t\t\t\texitcode = 666\n109\t\t\t\tfmt.Println(err.Error())\n110\t\t\t}\n111\t\t},\n112\t}\n113\t\n114\tfunc init() {\n115\t\timageCmd.Flags().StringVarP(&outputImage, \"output\", \"o\", \"\", \"image file (.svg) to export to\")\n116\t\timageCmd.Flags().StringVar(&svgFontFamily, \"font-family\", \"\", \"CSS font-family for the exported svg\")\n117\t\timageCmd.Flags().StringVar(&dataPath, \"data\", \"\", \"path to a template data file (json/yaml/toml) to render with\")\n118\t\timageCmd.Flags().IntVar(&imageTerminalWidth, \"terminal-width\", 120, \"number of columns to render the prompt and image at\")\n119\t\timageCmd.Flags().Float64Var(&svgCellWidth, \"cell-width\", 0, \"horizontal advance of one cell, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")\n120\t\timageCmd.Flags().Float64Var(&svgLineHeight, \"line-height\", 0, \"vertical advance of one row, as a multiple of font-size (defaults to Hack Nerd Font's own ratio)\")\n121\t\tconst fillHelp = \"how far a segment background reaches %s the baseline, as a multiple of font-size \" +\n122\t\t\t\"(defaults to Hack Nerd Font's own U+E0B0 ink box)\"\n123\t\n124\t\timageCmd.Flags().Float64Var(&svgFillAscent, \"fill-ascent\", 0, fmt.Sprintf(fillHelp, \"above\"))\n125\t\timageCmd.Flags().Float64Var(&svgFillDescent, \"fill-descent\", 0, fmt.Sprintf(fillHelp, \"below\"))\n126\t\n127\t\texportCmd.AddCommand(imageCmd)\n128\t}\n129\t\n130\tfunc setConfigFlag() error {\n131\t\tif configFlag != \"\" {\n132\t\t\treturn nil\n133\t\t}\n134\t\n135\t\tconfigPath, OK := cache.Get[string](cache.Session, config.SourceKey)\n136\t\tif !OK {\n137\t\t\treturn fmt.Errorf(\"no config found in session cache, please provide a config using the --config flag\")\n138\t\t}\n139\t\n140\t\tconfigFlag = configPath\n141\t\treturn nil\n142\t}","displayPath":"src\\cli\\config_export_image.go"},"type":"attachment","uuid":"161b6858-d30b-4b60-97c4-a78163f85a2d","timestamp":"2026-07-28T06:47:59.012Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"161b6858-d30b-4b60-97c4-a78163f85a2d","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"D:\\oh-my-posh\\src\\prompt\\runs_test.go","snippet":"1\tpackage prompt\n2\t\n3\timport (\n4\t\t\"strings\"\n5\t\t\"testing\"\n6\t\n7\t\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n8\t\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n9\t\t\"github.com/jandedobbeleer/oh-my-posh/src/shell\"\n10\t\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n11\t\n12\t\t\"github.com/stretchr/testify/assert\"\n13\t\t\"github.com/stretchr/testify/require\"\n14\t)\n15\t\n16\t// saveCaptureRunsGlobal snapshots terminal.CaptureRuns and restores it via\n17\t// t.Cleanup, so a test enabling capture never leaks it into another test in\n18\t// this package (which does not expect the run-stream bookkeeping to run).\n19\tfunc saveCaptureRunsGlobal(t *testing.T) {\n20\t\tt.Helper()\n21\t\n22\t\torig := terminal.CaptureRuns\n23\t\tt.Cleanup(func() { terminal.CaptureRuns = orig })\n24\t}\n25\t\n26\t// TestGapRun pins gapRun's contract: a positive n produces one blank,\n27\t// colorless run of exactly n cells (the Run-stream equivalent of the literal\n28\t// spaces engine.go writes for right-block padding); zero or negative\n29\t// produces nothing, so callers never need to guard the call site themselves.\n30\tfunc TestGapRun(t *testing.T) {\n31\t\tcases := []struct {\n32\t\t\tCase string\n33\t\t\tExpected []terminal.Run\n34\t\t\tN int\n35\t\t}{\n36\t\t\t{Case: \"positive\", N: 3, Expected: []terminal.Run{{Text: \" \", Cells: 3}}},\n37\t\t\t{Case: \"zero\", N: 0, Expected: nil},\n38\t\t\t{Case: \"negative\", N: -1, Expected: nil},\n39\t\t}\n40\t\n41\t\tfor _, tc := range cases {\n42\t\t\tt.Run(tc.Case, func(t *testing.T) {\n43\t\t\t\tassert.Equal(t, tc.Expected, gapRun(tc.N))\n44\t\t\t})\n45\t\t}\n46\t}\n47\t\n48\t// TestEngineRunCaptureOffIsANoOp pins the off-by-default contract: with\n49\t// terminal.CaptureRuns false, none of the capture helpers touch Engine state,\n50\t// mirroring terminal.Runs' own off-by-default contract (see run.go).\n51\tfunc TestEngineRunCaptureOffIsANoOp(t *testing.T) {\n52\t\tsaveCaptureRunsGlobal(t)\n53\t\tterminal.CaptureRuns = false\n54\t\n55\t\te := &Engine{}\n56\t\n57\t\te.startRunCapture()\n58\t\tassert.Nil(t, e.capturedRows)\n59\t\n60\t\truns := e.captureBlockRuns()\n61\t\tassert.Nil(t, runs)\n62\t\n63\t\te.appendCapturedRuns(gapRun(2), []terminal.Run{{Text: \"x\", Cells: 1}})\n64\t\tassert.Nil(t, e.capturedRows)\n65\t\n66\t\te.newCapturedRow()\n67\t\tassert.Nil(t, e.capturedRows)\n68\t}\n69\t\n70\t// TestEngineRunCaptureRowBookkeeping exercises the capture primitives\n71\t// directly (startRunCapture/appendCapturedRuns/newCapturedRow), independent\n72\t// of a full render, mirroring how writeBlock/writeNewline/writePrimaryRightPrompt\n73\t// drive them: a gap run followed by a block's own runs lands on the current\n74\t// row, and newCapturedRow starts a fresh one.\n75\tfunc TestEngineRunCaptureRowBookkeeping(t *testing.T) {\n76\t\tsaveCaptureRunsGlobal(t)\n77\t\tterminal.CaptureRuns = true\n78\t\n79\t\te := &Engine{}\n80\t\te.startRunCapture()\n81\t\trequire.Len(t, e.capturedRows, 1)\n82\t\n83\t\te.appendCapturedRuns(nil, []terminal.Run{{Text: \"AB\", Cells: 2}})\n84\t\te.appendCapturedRuns(gapRun(3), []terminal.Run{{Text: \"R\", Cells: 1}})\n85\t\n86\t\trequire.Len(t, e.capturedRows, 1)\n87\t\tassert.Equal(t, []terminal.Run{\n88\t\t\t{Text: \"AB\", Cells: 2},\n89\t\t\t{Text: \" \", Cells: 3},\n90\t\t\t{Text: \"R\", Cells: 1},\n91\t\t}, e.capturedRows[0])\n92\t\n93\t\te.newCapturedRow()\n94\t\te.appendCapturedRuns(nil, []terminal.Run{{Text: \"CD\", Cells: 2}})\n95\t\n96\t\trequire.Len(t, e.capturedRows, 2)\n97\t\tassert.Equal(t, []terminal.Run{{Text: \"CD\", Cells: 2}}, e.capturedRows[1])\n98\t}\n99\t\n100\t// TestExpandFillerRuns pins expandFillerRuns' repeat math against\n101\t// shouldFill's own strings.Repeat(filler, repeat) + strings.Repeat(\" \",\n102\t// unfilled) (engine.go): the captured filler pattern must repeat whole, with\n103\t// the remainder padded as blank cells, never truncating a repeat mid-run.\n104\tfunc TestExpandFillerRuns(t *testing.T) {\n105\t\tsaveCaptureRunsGlobal(t)\n106\t\tterminal.CaptureRuns = true\n107\t\n108\t\tcases := []struct {\n109\t\t\tCase string\n110\t\t\tPattern []terminal.Run\n111\t\t\tPadLength int\n112\t\t\tExpectedCells int\n113\t\t\tExpectedRuns int\n114\t\t}{\n115\t\t\t{\n116\t\t\t\tCase: \"exact multiple leaves no remainder\", PadLength: 5, ExpectedRuns: 5, ExpectedCells: 5,\n117\t\t\t\tPattern: []terminal.Run{{Text: \"-\", Cells: 1, ForegroundSource: \"red\"}},\n118\t\t\t},\n119\t\t\t{\n120\t\t\t\t// a 2-cell filler repeated into 7 cells: 3 whole repeats (6\n121\t\t\t\t// cells) plus a 1-cell blank remainder, never a truncated 4th\n122\t\t\t\t// repeat of the filler pattern itself.\n123\t\t\t\tCase: \"remainder pads with a blank cell run\", PadLength: 7, ExpectedRuns: 4, ExpectedCells: 7,\n124\t\t\t\tPattern: []terminal.Run{{Text: \"--\", Cells: 2, ForegroundSource: \"red\"}},\n125\t\t\t},\n126\t\t\t{\n127\t\t\t\tCase: \"zero pad produces nothing\", PadLength: 0, ExpectedRuns: 0, ExpectedCells: 0,\n128\t\t\t\tPattern: []terminal.Run{{Text: \"-\", Cells: 1, ForegroundSource: \"red\"}},\n129\t\t\t},\n130\t\t}\n131\t\n132\t\tfor _, tc := range cases {\n133\t\t\tt.Run(tc.Case, func(t *testing.T) {\n134\t\t\t\truns := expandFillerRuns(tc.Pattern, tc.PadLength)\n135\t\n136\t\t\t\trequire.Len(t, runs, tc.ExpectedRuns)\n137\t\n138\t\t\t\ttotal := 0\n139\t\t\t\tfor _, run := range runs {\n140\t\t\t\t\ttotal += run.Cells\n141\t\t\t\t}\n142\t\n143\t\t\t\tassert.Equal(t, tc.ExpectedCells, total)\n144\t\t\t})\n145\t\t}\n146\t}\n147\t\n148\t// TestCapturedRunsPrimaryLayout renders a small multi-block, multi-row\n149\t// config through the real Primary() pipeline (newEngine, matching\n150\t// golden_test.go's own pattern) with terminal.CaptureRuns on, and checks the\n151\t// resulting rows account for every cell the engine itself lays out: a left\n152\t// block, a right-aligned block sharing its row (as chips.omp.json exercises,\n153\t// via canWriteRightBlock's padding), and a second row started by\n154\t// block.Newline.\n155\tfunc TestCapturedRunsPrimaryLayout(t *testing.T) {\n156\t\tsaveCaptureRunsGlobal(t)\n157\t\n158\t\tconst terminalWidth = 20\n159\t\n160\t\tflags := &runtime.Flags{\n161\t\t\tShell: shell.GENERIC,\n162\t\t\tTerminalWidth: terminalWidth,\n163\t\t\tIsPrimary: true,\n164\t\t}\n165\t\n166\t\tenv := &runtime.Terminal{}\n167\t\tenv.Init(flags)\n168\t\n169\t\tcfg := &config.Config{\n170\t\t\tBlocks: []*config.Block{\n171\t\t\t\t{\n172\t\t\t\t\tType: config.Prompt,\n173\t\t\t\t\tAlignment: config.Left,\n174\t\t\t\t\tSegments: []*config.Segment{\n175\t\t\t\t\t\t{Type: \"text\", Template: \"AB\", Foreground: \"red\", Background: \"blue\"},\n176\t\t\t\t\t},\n177\t\t\t\t},\n178\t\t\t\t{\n179\t\t\t\t\tType: config.Prompt,\n180\t\t\t\t\tAlignment: config.Right,\n181\t\t\t\t\tSegments: []*config.Segment{\n182\t\t\t\t\t\t{Type: \"text\", Template: \"R\", Foreground: \"green\", Background: \"black\"},\n183\t\t\t\t\t},\n184\t\t\t\t},\n185\t\t\t\t{\n186\t\t\t\t\tType: config.Prompt,\n187\t\t\t\t\tAlignment: config.Left,\n188\t\t\t\t\tNewline: true,\n189\t\t\t\t\tSegments: []*config.Segment{\n190\t\t\t\t\t\t{Type: \"text\", Template: \"CD\", Foreground: \"yellow\", Background: \"black\"},\n191\t\t\t\t\t},\n192\t\t\t\t},\n193\t\t\t},\n194\t\t}\n195\t\n196\t\teng := newEngine(cfg, env)\n197\t\n198\t\tterminal.CaptureRuns = true\n199\t\n200\t\tprimaryPrompt := eng.Primary()\n201\t\trequire.NotEmpty(t, primaryPrompt)\n202\t\n203\t\trows := eng.CapturedRuns()\n204\t\trequire.Len(t, rows, 2)\n205\t\n206\t\tfirstRowCells := 0\n207\t\tfor _, run := range rows[0] {\n208\t\t\tfirstRowCells += run.Cells\n209\t\t}\n210\t\n211\t\t// AB (2) + the right block's own padding + R (1) fill the row out to the\n212\t\t// full terminal width, exactly like the ANSI text canWriteRightBlock pads.\n213\t\tassert.Equal(t, terminalWidth, firstRowCells)\n214\t\n215\t\tlastRun := rows[0][len(rows[0])-1]\n216\t\tassert.Equal(t, \"R\", lastRun.Text)\n217\t\n218\t\tsecondRowCells := 0\n219\t\tfor _, run := range rows[1] {\n220\t\t\tsecondRowCells += run.Cells\n221\t\t}\n222\t\n223\t\tassert.Equal(t, 2, secondRowCells)\n224\t\tassert.Equal(t, \"CD\", rows[1][len(rows[1])-1].Text)\n225\t}\n226\t\n227\t// TestCapturedRunsRPromptBlock covers the other right-side mechanism\n228\t// (jandedobbeleer.omp.json's \"rprompt\" block type, distinct from an\n229\t// alignment: \"right\" block): rendered via writePrimaryRightPrompt's cursor\n230\t// save/restore rather than writeBlock's own padding, it must still land its\n231\t// runs on the same row the primary block already wrote.\n232\tfunc TestCapturedRunsRPromptBlock(t *testing.T) {\n233\t\tsaveCaptureRunsGlobal(t)\n234\t\n235\t\t// canWriteRightBlock demands 30 cells of breathing room for an actual\n236\t\t// rprompt (vs. 5 for an alignment:\"right\" block — see its own doc\n237\t\t// comment), so the width here must clear currentLineLength + rprompt\n\n... [66 lines truncated] ...","displayPath":"src\\prompt\\runs_test.go"},"type":"attachment","uuid":"7390f0a7-83cc-483c-bbbd-ef6d7918f58b","timestamp":"2026-07-28T06:47:59.012Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7390f0a7-83cc-483c-bbbd-ef6d7918f58b","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"D:\\oh-my-posh\\src\\prompt\\runs.go","snippet":"1\tpackage prompt\n2\t\n3\timport (\n4\t\t\"slices\"\n5\t\t\"strings\"\n6\t\n7\t\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n8\t)\n9\t\n10\t// CapturedRuns returns the Run stream captured for the whole rendered\n11\t// prompt, one []terminal.Run per output row (see startRunCapture/\n12\t// newCapturedRow), when terminal.CaptureRuns was true for the render that\n13\t// produced it (see Primary). Empty otherwise: every capture call below is a\n14\t// single `if terminal.CaptureRuns` check and nothing else runs, mirroring\n15\t// terminal.Runs' own off-by-default contract.\n16\tfunc (e *Engine) CapturedRuns() [][]terminal.Run {\n17\t\treturn e.capturedRows\n18\t}\n19\t\n20\t// startRunCapture (re)initializes the row accumulator at the start of a\n21\t// render. A no-op unless terminal.CaptureRuns is set, so repeated renders off\n22\t// the same Engine with capture disabled never pay for the reset.\n23\tfunc (e *Engine) startRunCapture() {\n24\t\te.cursorRow = -1\n25\t\te.cursorRun = 0\n26\t\n27\t\tif !terminal.CaptureRuns {\n28\t\t\te.capturedRows = nil\n29\t\t\treturn\n30\t\t}\n31\t\n32\t\te.capturedRows = [][]terminal.Run{{}}\n33\t}\n34\t\n35\t// markCursorAnchor records the current end of the captured stream as the\n36\t// place a shell would leave the cursor. primaryInternal calls it once the\n37\t// primary prompt itself is fully written (final space included) and before\n38\t// any right-aligned block is appended — writePrimaryRightPrompt writes the\n39\t// rprompt into that same row between a SaveCursorPosition/\n40\t// RestoreCursorPosition pair, precisely so the terminal's own cursor ends up\n41\t// back here rather than past the rprompt.\n42\tfunc (e *Engine) markCursorAnchor() {\n43\t\tif !terminal.CaptureRuns || len(e.capturedRows) == 0 {\n44\t\t\treturn\n45\t\t}\n46\t\n47\t\te.cursorRow = len(e.capturedRows) - 1\n48\t\te.cursorRun = len(e.capturedRows[e.cursorRow])\n49\t}\n50\t\n51\t// CursorAnchor returns the row index, and the index within that row's runs,\n52\t// that markCursorAnchor recorded. ok is false when nothing was captured (see\n53\t// CapturedRuns' own off-by-default contract), leaving a caller to fall back\n54\t// to the end of the last row.\n55\tfunc (e *Engine) CursorAnchor() (row, run int, ok bool) {\n56\t\tif e.cursorRow < 0 || e.cursorRow >= len(e.capturedRows) {\n57\t\t\treturn 0, 0, false\n58\t\t}\n59\t\n60\t\treturn e.cursorRow, e.cursorRun, true\n61\t}\n62\t\n63\t// captureBlockRuns returns a snapshot of terminal.Runs() for the block/rprompt\n64\t// that just wrote through terminal.Write, for writeBlock (via\n65\t// renderBlockSegments/renderBlockFromCache) to place once it knows the\n66\t// block's column (left-aligned, or right-aligned behind padding/a filler).\n67\t// This must run BEFORE the matching terminal.String() call, not after:\n68\t// String's own defer resets the run stream (runsState.Runs[:0]) before\n69\t// String returns to its caller, so capturing terminal.Runs() after String\n70\t// has already returned sees it truncated to nothing.\n71\tfunc (e *Engine) captureBlockRuns() []terminal.Run {\n72\t\tif !terminal.CaptureRuns {\n73\t\t\treturn nil\n74\t\t}\n75\t\n76\t\treturn slices.Clone(terminal.Runs())\n77\t}\n78\t\n79\t// expandFillerRuns rebuilds the Run-stream equivalent of shouldFill's own\n80\t// strings.Repeat(filler, repeat) + strings.Repeat(\" \", unfilled) — from\n81\t// pattern, the single filler pattern shouldFill captured before its matching\n82\t// terminal.String() call (same reasoning as captureBlockRuns) — using the\n83\t// same padLength shouldFill already has in hand, so a filler-padded row shows\n84\t// the same repeated pattern the ANSI text does.\n85\tfunc expandFillerRuns(pattern []terminal.Run, padLength int) []terminal.Run {\n86\t\tif !terminal.CaptureRuns || len(pattern) == 0 || padLength <= 0 {\n87\t\t\treturn nil\n88\t\t}\n89\t\n90\t\tlenFiller := 0\n91\t\tfor _, run := range pattern {\n92\t\t\tlenFiller += run.Cells\n93\t\t}\n94\t\n95\t\tif lenFiller == 0 {\n96\t\t\treturn nil\n97\t\t}\n98\t\n99\t\trepeat := padLength / lenFiller\n100\t\tunfilled := padLength % lenFiller\n101\t\n102\t\truns := make([]terminal.Run, 0, repeat*len(pattern)+1)\n103\t\tfor range repeat {\n104\t\t\truns = append(runs, pattern...)\n105\t\t}\n106\t\n107\t\treturn append(runs, gapRun(unfilled)...)\n108\t}\n109\t\n110\t// appendCapturedRuns places gap (padding/filler cells that never passed\n111\t// through terminal.Write) followed by runs (a block's own captured content)\n112\t// at the end of the current row.\n113\tfunc (e *Engine) appendCapturedRuns(gap, runs []terminal.Run) {\n114\t\tif !terminal.CaptureRuns || len(e.capturedRows) == 0 {\n115\t\t\treturn\n116\t\t}\n117\t\n118\t\tidx := len(e.capturedRows) - 1\n119\t\te.capturedRows[idx] = append(e.capturedRows[idx], gap...)\n120\t\te.capturedRows[idx] = append(e.capturedRows[idx], runs...)\n121\t}\n122\t\n123\t// newCapturedRow starts a new output row, mirroring writeNewline's own reset\n124\t// of currentLineLength: engine-appended newlines never pass through\n125\t// terminal.Write, so the Run stream has no way to see them on its own.\n126\tfunc (e *Engine) newCapturedRow() {\n127\t\tif !terminal.CaptureRuns || len(e.capturedRows) == 0 {\n128\t\t\treturn\n129\t\t}\n130\t\n131\t\te.capturedRows = append(e.capturedRows, []terminal.Run{})\n132\t}\n133\t\n134\t// gapRun builds a blank, colorless run of n cells: the Run-stream equivalent\n135\t// of the literal spaces engine.go writes directly for right-block padding,\n136\t// which never passes through terminal.Write and so never produces a Run of\n137\t// its own.\n138\tfunc gapRun(n int) []terminal.Run {\n139\t\tif n <= 0 {\n140\t\t\treturn nil\n141\t\t}\n142\t\n143\t\treturn []terminal.Run{{Text: strings.Repeat(\" \", n), Cells: n}}\n144\t}","displayPath":"src\\prompt\\runs.go"},"type":"attachment","uuid":"300ff504-b6eb-4ec4-a962-82c637145bb5","timestamp":"2026-07-28T06:47:59.012Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"300ff504-b6eb-4ec4-a962-82c637145bb5","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"D:\\oh-my-posh\\src\\prompt\\engine.go","snippet":"","displayPath":"src\\prompt\\engine.go"},"type":"attachment","uuid":"eb442ff5-1dc9-4677-9cfb-513061af4803","timestamp":"2026-07-28T06:47:59.012Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"eb442ff5-1dc9-4677-9cfb-513061af4803","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-4c63ba63-9ac1-4d41-aa2d-92271a7977a2","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"63f93dea-5581-4ad3-8985-99055c952366","timestamp":"2026-07-28T06:47:59.291Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"63f93dea-5581-4ad3-8985-99055c952366","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1R3n8okU6h1QqeJLFB","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"All four apply agents are done. Now I need to verify everything myself before committing. I'm running the full verification gates: build, test, vet, lint checks, terminal benchmarks, a 124-theme export diff comparing the current HEAD state against my working tree changes, and the website build. Then I'll commit everything in logical chunks. The key verification is getting an independent diff of the 124-theme output between the committed state and my changes, since each agent only did before/after comparisons within their own modifications.\n\nI'm creating a worktree at the current HEAD commit so I can build from that clean state and compare the outputs independently—this will be the strongest check that everything is cumulative and zero-diff as expected.","signature":"CAIS/gkKhwEIEBgCKkCpFQSqIM53vn+aV75SFpLj2+oOQh//7Xfb02GLVoLvm/gvMmx6A33DWiW3iIN9BwbM4j0qS0w34lRIZrLRoeJ9Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDP2Mo2gQPGdBbkZbCBoMwNbnPjBo2/juQoImIjDKsqBTI5OhElXjvAH5Vw+YemLxIrt0A/w58jCbToGUBhGjPUlwOh7SOIMrxHecDLkqowhlUmGJhAAH8v7UI/VXVtNMw6L5TrWrjD/Gtbsmt3NZBZLY/n88Mwydc5d7z1SgICpVf+9j4elT0pwnhtup/LCQ74+yIynQ8s/+svKB2UzkEZ1gjN40WRgTvAyAvhu0lwd1N92pQ4d0IY0YH3Fl2XHYWqXRiVRQlJBDqAp+MkwJU5eKqQffFOeqhHp630ds2e2rbnfpLG5HtEVnOi5lXxaduAi7iwAZfsOwk4l0sAIZSNGw2q+DWivmY1LJFk17HHWM9TYMvJEqT5765VhWvHUUs4oqAkycTPUoVac5FDr0EDntG+zOWrHj7Spsai2UwdHVZLcQnw4qOpemxQrvZYFjPlZK9f6RCn+7a1oi1bzr7LpAD5w2NkkxiYbLz3PJjhVbhXnNz9yEebskM3bKIdte49E766ADQbGBpUR7Yp0qOjEqTGOA0qNYUZyKBMRlm9b5ZEO3khFdzGyEFYLRzKV+aQ8DeBQjhcHIeV8ipRqCrD1os+EAVWrlZQlTBb8opqzYWAqRaJcvvE8MKKnUXb0MCyz1ry44TFMVoQblXjdVaH3Fwo/A/biP/iTJXz4SnFZaNAKxZKfRA7d0cx5dhLtXjePoPNZxThQCcOhCTu10maQhfkKcUNx8mZDZb4Nw6ilgxHfUCny7ysUtgmC8Sokz5seasf88HZiEHbbTvCUvh+nNx1+zqMwoZcPIi8smlh3Cy3eqIrqwdJFmGykW0+xmocUuATL2iUhKcOw0HzY0NbnYWubmSTIFtBkQIglp5YLaZTWXFIacCByQAWqqEoDG2DQngXNg8LaeDlkgIbXpYhJMZtGi/bomYXY4DQ4DIjy0Sk/ne/fP0xuWui8YYPeES+NWt89U3CYZcXLi44tqwJ4uMmhJtxsjJz4ihtj3ibHqAsuLjcB92cPTbcy0YpF1U1Z8Jq08bPPlRF72c2sKm3yZO07v8KYqdbgnxwl0DZaNCFFxEvkXEt1KIdo5+xYYqAywkA1jLE/pLv2jNgZYyWCV6r8DNW5jiGhZbNKJKMYtzJPBpePzProCFaT5wxl+pjx6NWyMnX74ewo0ekbD1WAxIBr5aiVB+acP1guIKQcRxitud/Pe9S93huaq9shsoRTcuua3QWRry7wtPN5NlYI4wUk43YcuRfat+NQ8deXvqaBYVDdfQDrigiD7SD3peWbPEIc1/SnPdIzglU3jt6sgJr53ZfeRWb288u6c8yo3e1PpUd96PaYxBHcF8NV8pm4AGZ7G3+QCvn0ZKTmrY05J8DcJscrH3G27k9ibZBBn8pjKMdUdkNFBUJHy9NIr+O87JAuDfGNgkDsi5oZKTl7TIRifiW+LD4aCxz7ZvUu5wIBc3Ptb7qeGk4EE+Dfj7Zau6nPrih/0+ejNOOMLOConOw0l98F47dUDplQDfDW1q+cYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":11783,"cache_read_input_tokens":433213,"output_tokens":683,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":11783,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":683,"cache_read_input_tokens":433213,"cache_creation_input_tokens":11783,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":11783},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1QyZtAEGCsGYQm9qZo","type":"assistant","uuid":"2951e0b9-bd2b-4e67-99e4-b47649a14b74","timestamp":"2026-07-28T06:48:09.333Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2951e0b9-bd2b-4e67-99e4-b47649a14b74","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1R3n8okU6h1QqeJLFB","type":"message","role":"assistant","content":[{"type":"text","text":"All four apply agents are done. Running my own independent gate — the cumulative diff against committed HEAD, not each agent's local before/after:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":11783,"cache_read_input_tokens":433213,"output_tokens":683,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":11783,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":683,"cache_read_input_tokens":433213,"cache_creation_input_tokens":11783,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":11783},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1QyZtAEGCsGYQm9qZo","type":"assistant","uuid":"ba7c8b12-5eb7-4d5d-9865-3faf17342207","timestamp":"2026-07-28T06:48:09.408Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ba7c8b12-5eb7-4d5d-9865-3faf17342207","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1R3n8okU6h1QqeJLFB","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01FVyrd3bEq5LNnaV3WfNomz","name":"Bash","input":{"command":"git worktree add --detach \"$TMPDIR/omp-head\" HEAD >/dev/null 2>&1; cd \"$TMPDIR/omp-head/src\" && go build -o \"$TMPDIR/omp-head.exe\" . 2>&1 | tail -3 && cd /d/oh-my-posh/src && go build -o \"$TMPDIR/omp-now.exe\" . 2>&1 | tail -3 && echo BOTH-BUILT","description":"Build HEAD and working-tree binaries"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":11783,"cache_read_input_tokens":433213,"output_tokens":683,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":11783,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":683,"cache_read_input_tokens":433213,"cache_creation_input_tokens":11783,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":11783},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1QyZtAEGCsGYQm9qZo","type":"assistant","uuid":"98a98199-620d-42ba-9b0d-3de66cea6c47","timestamp":"2026-07-28T06:48:10.963Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"98a98199-620d-42ba-9b0d-3de66cea6c47","isSidechain":false,"promptId":"c7353b88-d047-4656-9c59-a6a72a975032","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01FVyrd3bEq5LNnaV3WfNomz","type":"tool_result","content":"BOTH-BUILT","is_error":false}]},"uuid":"b01d9c36-340f-45e0-8eb7-4f6553343c97","timestamp":"2026-07-28T06:48:24.486Z","toolUseResult":{"stdout":"BOTH-BUILT","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"98a98199-620d-42ba-9b0d-3de66cea6c47","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b01d9c36-340f-45e0-8eb7-4f6553343c97","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1Srkus6Ts7mpgrUkkG","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01FijiPSNiduj8Kproouxy2N","name":"Bash","input":{"command":"cd /d/oh-my-posh && rm -rf \"$TMPDIR/gate-head\" \"$TMPDIR/gate-now\" && mkdir -p \"$TMPDIR/gate-head\" \"$TMPDIR/gate-now\" && for f in themes/*.omp.json themes/*.omp.yaml; do b=$(basename \"$f\"); b=${b%%.omp.*}; \"$TMPDIR/omp-head.exe\" config export image --config \"$f\" --data src/prompt/testdata/fixtures/prompt.data.json -o \"$TMPDIR/gate-head/$b.svg\" >/dev/null 2>&1; \"$TMPDIR/omp-now.exe\" config export image --config \"$f\" --data src/prompt/testdata/fixtures/prompt.data.json -o \"$TMPDIR/gate-now/$b.svg\" >/dev/null 2>&1; done; echo \"head=$(ls \"$TMPDIR/gate-head\" | wc -l) now=$(ls \"$TMPDIR/gate-now\" | wc -l)\"; diff -rq \"$TMPDIR/gate-head\" \"$TMPDIR/gate-now\" && echo \"ZERO DIFF ACROSS ALL THEMES\"","description":"Diff all 124 theme exports HEAD vs working tree"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":684,"cache_read_input_tokens":444996,"output_tokens":502,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":684,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":502,"cache_read_input_tokens":444996,"cache_creation_input_tokens":684,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":684},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1SoMXYDTHroLuUey7B","type":"assistant","uuid":"5ae6b18a-7831-4a45-96f6-106f4ad529c3","timestamp":"2026-07-28T06:48:31.167Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5ae6b18a-7831-4a45-96f6-106f4ad529c3","isSidechain":false,"promptId":"c7353b88-d047-4656-9c59-a6a72a975032","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01FijiPSNiduj8Kproouxy2N","type":"tool_result","content":"head=124 now=124\nZERO DIFF ACROSS ALL THEMES","is_error":false}]},"uuid":"c95a036e-7812-4808-a313-65ef09bf029d","timestamp":"2026-07-28T06:48:58.211Z","toolUseResult":{"stdout":"head=124 now=124\nZERO DIFF ACROSS ALL THEMES","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"classifierMetaLines":"{\"meta\":{\"gitStatus\":{\"staged\":1,\"modified\":38,\"untracked\":4}}}\n","sourceToolAssistantUUID":"5ae6b18a-7831-4a45-96f6-106f4ad529c3","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c95a036e-7812-4808-a313-65ef09bf029d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1VNW8UwpSAYUei5uia","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Rw4U7djvYoz4N4qSZViapd","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && go vet ./... 2>&1 | head -5; go test ./... -count=1 2>&1 | grep -v \"^ok\\|no test files\" | head -10; echo \"=== lint ===\"; golangci-lint run ./... 2>&1 | tail -2; echo \"=== benchmarks ===\"; go test ./terminal/ -bench=. -benchtime=2s -run=XXX -benchmem -count=1 2>&1 | grep -E \"^Benchmark\"","description":"Full verification and benchmarks"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":535,"cache_read_input_tokens":445680,"output_tokens":246,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":535,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":246,"cache_read_input_tokens":445680,"cache_creation_input_tokens":535,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":535},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1VHYUWgvE12x8iAWju","type":"assistant","uuid":"7bcfee12-c430-412a-9126-ea0a4f82ff21","timestamp":"2026-07-28T06:49:03.599Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7bcfee12-c430-412a-9126-ea0a4f82ff21","isSidechain":false,"promptId":"c7353b88-d047-4656-9c59-a6a72a975032","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Rw4U7djvYoz4N4qSZViapd","type":"tool_result","content":"cache\\file_map_windows.go:198:13: possible misuse of unsafe.Pointer\ncache\\file_map_windows.go:253:13: possible misuse of unsafe.Pointer\ncache\\file_map_windows.go:275:13: possible misuse of unsafe.Pointer\n=== lint ===\n0 issues.\n=== benchmarks ===\nBenchmarkWriteAnchors-12 \t 1232800\t 1945 ns/op\t 688 B/op\t 14 allocs/op\nBenchmarkWritePlainASCII-12 \t 2080344\t 1143 ns/op\t 312 B/op\t 6 allocs/op\nBenchmarkWriteSolid-12 \t 1870873\t 1272 ns/op\t 488 B/op\t 16 allocs/op\nBenchmarkWriteGradient-12 \t 873657\t 2594 ns/op\t 1785 B/op\t 17 allocs/op\nBenchmarkWriteGradientChained-12 \t 1000000\t 2090 ns/op\t 808 B/op\t 28 allocs/op","is_error":false}]},"uuid":"25454eff-ff40-4900-8fc4-83db09e7793a","timestamp":"2026-07-28T06:49:30.416Z","toolUseResult":{"stdout":"cache\\file_map_windows.go:198:13: possible misuse of unsafe.Pointer\ncache\\file_map_windows.go:253:13: possible misuse of unsafe.Pointer\ncache\\file_map_windows.go:275:13: possible misuse of unsafe.Pointer\n=== lint ===\n0 issues.\n=== benchmarks ===\nBenchmarkWriteAnchors-12 \t 1232800\t 1945 ns/op\t 688 B/op\t 14 allocs/op\nBenchmarkWritePlainASCII-12 \t 2080344\t 1143 ns/op\t 312 B/op\t 6 allocs/op\nBenchmarkWriteSolid-12 \t 1870873\t 1272 ns/op\t 488 B/op\t 16 allocs/op\nBenchmarkWriteGradient-12 \t 873657\t 2594 ns/op\t 1785 B/op\t 17 allocs/op\nBenchmarkWriteGradientChained-12 \t 1000000\t 2090 ns/op\t 808 B/op\t 28 allocs/op","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"7bcfee12-c430-412a-9126-ea0a4f82ff21","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"25454eff-ff40-4900-8fc4-83db09e7793a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1XkCA5w3Dzzd6fvJNj","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"All the gates are passing—zero theme diffs across 124 variants, tests are clean, no lint issues, and the benchmarks match the baseline exactly. There's a pre-existing unsafe.Pointer warning in the Windows file cache that wasn't touched by our changes, so that's not a concern.\n\nNow I need to build the website. I have the binary ready, so I'll run the theme generation and build process, which should take a few minutes, then commit everything.","signature":"CAISrgYKhwEIEBgCKkBnC9yxea2nHGChSVTj1C2g2zgIWsAXbGV6DRVP5LLnxXpzD+1ZF89WBUxxhGTAydRcqb9x//pDA/rGsXnbgOyhMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDGAvr3rd0JWbbiFwKRoMuCdfsc5LhBOVqoIwIjBaUARq98ff07hXrRdv5mwyI7jzn2GpOrd5dPKu+j+ffhixB2HbVF3FqlJRDow8E2cq0wTOO4sXJoSNqryUL+1FwkZ6uRizTEzfy3n9PZQfNgBp2VnE6g4ONrytqQSxN26cRptf5BkL+ysFNHTAhCrucA6CwfZxCFEjIGOSKsH1bzjEv/dn38Ef5891YcYGuJrX9f7VwguRMygAjVqAaywQGCEd5QWzGJmPOVuNuCm/5IJ3xvLdHkPx6aqN17m0GoMkvG8pvS+poFv0/gOHt4OCjrPl5hv+8XORkdxJzBG12NibWo4dXmd5vrxjQmt12YqEbJRk2Yz/bNfmtU7Bfxci0HbbHzRq7leRU+eQ72jE4KdBCknM6rtzM5fIepA4DwU9+GwPCPZeEtcipwxJdKESX4wp9M7/25nY1XMTM4Fo8N0ZOuaCZLui9VvxVyY7KrhKGLZPcYMXEva0davTQaCzcSt5X32EleS+hczSK70xorKE9k1YZJdpe9w/0ZyajhRYR6RQD/BxzhFe47u6z+xFnQQAsnzDq7K99yKlpbcucNH/ZOiuOARCihySshcbgBmC9usoxFuxFitteBPG83pAAYXb2wJhKmW8NcAiZ0m34UOT2jt5NgfdCym4p6/irjavHQv78MZ306Tk8g4xm3XVW+fdLNZF23mk5X7dQ4sLRt1SF9FUq5RkV5jW1UfXuAds+ow3SZnGPLFPxixCMnsFJjgGfGdpIhaywiahBYgpe4dLfhmK+n9w0+pO3Sp/TfMom/Ezq2ry/DITKjBzDwlQU0gSC9cq5yvfto2fYtK2mF+cp194n3HPGM2qvOrd3kU7PjDQcYl30ja4gMwbd+5rgjhlGlmtGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":604,"cache_read_input_tokens":446215,"output_tokens":564,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":604,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":564,"cache_read_input_tokens":446215,"cache_creation_input_tokens":604,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":604},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1Xfe54CW9ZPpAFCZS1","type":"assistant","uuid":"6c14e8cc-7229-4873-a09d-cdd31a2664af","timestamp":"2026-07-28T06:49:44.141Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6c14e8cc-7229-4873-a09d-cdd31a2664af","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1XkCA5w3Dzzd6fvJNj","type":"message","role":"assistant","content":[{"type":"text","text":"Independent gate is clean: **zero diff across all 124 themes** between committed HEAD and the working tree, benchmarks exactly at baseline (688/14, 312/6, 488/16, 1785/17, 808/28), lint 0 issues. The `go vet` unsafe.Pointer notes are in `cache/file_map_windows.go`, untouched by any of this.\n\nNow the website build:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":604,"cache_read_input_tokens":446215,"output_tokens":564,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":604,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":564,"cache_read_input_tokens":446215,"cache_creation_input_tokens":604,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":604},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1Xfe54CW9ZPpAFCZS1","type":"assistant","uuid":"ede700e7-5143-43f9-80d7-587245d491b7","timestamp":"2026-07-28T06:49:44.378Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ede700e7-5143-43f9-80d7-587245d491b7","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1XkCA5w3Dzzd6fvJNj","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01DzhcxDz44WWp9mAiWTzZeu","name":"Bash","input":{"command":"cd /d/oh-my-posh/website && OMP_BIN=\"$TMPDIR/omp-now.exe\" npm run themes 2>&1 | grep -v \"warning:\" | tail -2 && npm run build 2>&1 | tail -12","description":"Regenerate gallery and build the site","timeout":600000},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":604,"cache_read_input_tokens":446215,"output_tokens":564,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":604,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":564,"cache_read_input_tokens":446215,"cache_creation_input_tokens":604,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":604},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1Xfe54CW9ZPpAFCZS1","type":"assistant","uuid":"ba767833-0a6a-4fe8-90f9-d33a37561307","timestamp":"2026-07-28T06:49:44.595Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ba767833-0a6a-4fe8-90f9-d33a37561307","isSidechain":false,"promptId":"c7353b88-d047-4656-9c59-a6a72a975032","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01DzhcxDz44WWp9mAiWTzZeu","type":"tool_result","content":"Exported chips.omp.json\nSuccessfully exported 124 themes to D:\\oh-my-posh\\website\\generated\\themes.json\n(Use `node --trace-warnings ...` to show where the warning was created)\n[WARNING] Docusaurus found broken anchors!\n\nPlease check the pages of your site in the list below, and make sure you don't reference any anchor that does not exist.\nNote: it's possible to ignore broken anchors with the 'onBrokenAnchors' Docusaurus configuration, and let the build pass.\n\nExhaustive list of all broken anchors found:\n- Broken anchor on source page path = /docs/installation/customize:\n -> linking to /docs/themes#jandedobbeleer\n\n[SUCCESS] Generated static files in \"build\".\n[INFO] Use `npm run serve` command to test your build locally.","is_error":false}]},"uuid":"0202a3a8-eb8c-4e72-81a6-6a323ea61144","timestamp":"2026-07-28T06:50:01.274Z","toolUseResult":{"stdout":"Exported chips.omp.json\nSuccessfully exported 124 themes to D:\\oh-my-posh\\website\\generated\\themes.json\n(Use `node --trace-warnings ...` to show where the warning was created)\n[WARNING] Docusaurus found broken anchors!\n\nPlease check the pages of your site in the list below, and make sure you don't reference any anchor that does not exist.\nNote: it's possible to ignore broken anchors with the 'onBrokenAnchors' Docusaurus configuration, and let the build pass.\n\nExhaustive list of all broken anchors found:\n- Broken anchor on source page path = /docs/installation/customize:\n -> linking to /docs/themes#jandedobbeleer\n\n[SUCCESS] Generated static files in \"build\".\n[INFO] Use `npm run serve` command to test your build locally.","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"ba767833-0a6a-4fe8-90f9-d33a37561307","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0202a3a8-eb8c-4e72-81a6-6a323ea61144","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"bd202c2d-c876-4011-9704-a7091e66aa3a","timestamp":"2026-07-28T06:50:01.278Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bd202c2d-c876-4011-9704-a7091e66aa3a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1a52JPVDp1NYA27aYD","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The site builds successfully, but there's a broken anchor warning I need to investigate. The agent claimed it's pre-existing, so I'm checking whether the ThemeGallery component still generates the `id` attributes that create those anchors in the themes documentation.","signature":"CAISzwUKhwEIEBgCKkCbSprVrgA2+Aq1ciNJsg836OlfCPvNpn84UlJ55rpHEkmbF/bBOwDeL1+2d29dufSCeje6WuJ1AFd5WHaoqlLrMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDJCCEuOJdyyytu4kQxoMsaZStXoS1svYrE7IIjC3mKQHMAiyv/h28zttg9F/lsiXrBsj0HihQAX+NY0wS6KZ1WwmLMtfFFXQ71gC0dQq9ANbFzzXczyJbfGYm8e3+NgYSVWgkm2PxzCLUqSg5nCJHZ4K+2oP/mb9zc4a7ikdBrAYiN90omuG/GgilqfszIsaG8CvOkG9a0CiY7kU3slslOeCCIfKhgTSQLFUGKbPrgZUqcQos8lz54IVWZVy4uX3Xym1ehV7cuiEMUGPEky4p5QH4nNC1mXs6c5+EiJFXSnIhE1B/Vl3t00HZQntJEU5uRqlnsfIIqEfqMMw6sWqcKjoE09OFyaokGeR6P6grAt3We17HH+pzuGu6X4F6+TrOe4m83kBlF2YpO0s16w0+VhUHOMaNL50gV+dwoAibH6jwQdgygwHMll4DPYdcYWx4FEsr8wOsbHkIhEbj7bt5iCiOw3ROZkCN/AhfIMS/eAPOyuqZH86Q1WbS/qkfGuTu/MvVAn2xSIHoxCRZvgcZQw2caxDJPJD37lFmDPuC2x07IHPCOsZjQSWKOBdWip1NdXhhIt7rrIWeEX1+ofDpJ8kzDwT6nRUb+/4WTF5B0vfzXtQKpoTkY8zy57HzuE5fwUls+E0K2MOjXsw0MDjzfGCUOTvswxSpZsCHT35nMvgKECOCRtDKq/0jGpFn8JpI4cfFb+icHolD3+7sReMehqRBRghgyUq0CX+3MO5/f9CRkbbTokPf9NgORhqmth2WPciYhgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":972,"cache_read_input_tokens":446819,"output_tokens":374,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":972,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":374,"cache_read_input_tokens":446819,"cache_creation_input_tokens":972,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":972},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1ZwRtrGLoDMcS12Pda","type":"assistant","uuid":"2e852a20-6d15-4d7d-98cb-14e7847d7cd4","timestamp":"2026-07-28T06:50:09.387Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2e852a20-6d15-4d7d-98cb-14e7847d7cd4","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1a52JPVDp1NYA27aYD","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_018XwV9py55uF3fE7NDjbBhr","name":"Bash","input":{"command":"cd /d/oh-my-posh && grep -n \"id=\" website/src/components/ThemeGallery/index.js | head; echo \"=== was this file changed? ===\"; git diff --stat -- website/src/components/ThemeGallery/ website/docs/themes.mdx; echo \"(empty = untouched by this work)\"","description":"Check whether the broken anchor is ours"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":972,"cache_read_input_tokens":446819,"output_tokens":374,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":972,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":374,"cache_read_input_tokens":446819,"cache_creation_input_tokens":972,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":972},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1ZwRtrGLoDMcS12Pda","type":"assistant","uuid":"44bd3f30-7dae-4d2f-a404-ae91d67333ec","timestamp":"2026-07-28T06:50:09.630Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"44bd3f30-7dae-4d2f-a404-ae91d67333ec","isSidechain":false,"promptId":"c7353b88-d047-4656-9c59-a6a72a975032","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_018XwV9py55uF3fE7NDjbBhr","type":"tool_result","content":"16:

\n=== was this file changed? ===\n(empty = untouched by this work)","is_error":false}]},"uuid":"752b1009-ac5a-48b8-be85-1caf5adec44f","timestamp":"2026-07-28T06:50:13.992Z","toolUseResult":{"stdout":"16:

\n=== was this file changed? ===\n(empty = untouched by this work)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"44bd3f30-7dae-4d2f-a404-ae91d67333ec","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"752b1009-ac5a-48b8-be85-1caf5adec44f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1aw5LqGopZHbpeCnUn","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The gallery generates IDs by lowercasing the name, so `#jandedobbeleer` should be present. The warning about a broken anchor is likely pre-existing since this file hasn't been modified. Docusaurus's anchor validation probably can't detect anchors inside dynamically rendered content, even though the h3 ID is statically defined in the JSX.\n\nNow I'm organizing the commits. I've got changes across multiple directories — CLI, color, config, prompt, SVG, terminal, and website files — and I need to group them into logical conventional commits, starting with a fix for keeping the config name that a theme file carries. The TrimSuffix fix is a genuine bug fix that warrants its own `fix:` commit for the changelog, especially since the repo uses conventional commits with release-please. I'll use my hunk-splitting script to isolate just the TrimSuffix change and the new test in config_export_svg.go, keeping the other modifications like the svgFontSize and Encode error changes separate for the refactoring commits.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":429,"cache_read_input_tokens":447791,"output_tokens":1503,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":429,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1503,"cache_read_input_tokens":447791,"cache_creation_input_tokens":429,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":429},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1arz2fJu9dwmG9AXCL","type":"assistant","uuid":"8c16bccd-987c-4ccb-8dd9-ce9d9cbf1cc5","timestamp":"2026-07-28T06:50:32.831Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8c16bccd-987c-4ccb-8dd9-ce9d9cbf1cc5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1aw5LqGopZHbpeCnUn","type":"message","role":"assistant","content":[{"type":"text","text":"Site builds; the broken-anchor warning is pre-existing (`ThemeGallery` is untouched by any of this — Docusaurus's checker doesn't see component-generated ids).\n\nCommitting. The filename fix is user-facing, so it gets its own `fix:` commit:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":429,"cache_read_input_tokens":447791,"output_tokens":1503,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":429,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1503,"cache_read_input_tokens":447791,"cache_creation_input_tokens":429,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":429},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1arz2fJu9dwmG9AXCL","type":"assistant","uuid":"5db5be0c-8ca7-43b5-8d69-cecc32af3306","timestamp":"2026-07-28T06:50:33.172Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5db5be0c-8ca7-43b5-8d69-cecc32af3306","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1aw5LqGopZHbpeCnUn","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01P9SUvXu87kMxWrG27kYZUH","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; git diff -U3 -- src/cli/config_export_svg.go | grep -n \"^@@\"","description":"List hunks in config_export_svg.go"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":429,"cache_read_input_tokens":447791,"output_tokens":1503,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":429,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1503,"cache_read_input_tokens":447791,"cache_creation_input_tokens":429,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":429},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1arz2fJu9dwmG9AXCL","type":"assistant","uuid":"93044bea-35ec-47bd-a6df-83e746e18aab","timestamp":"2026-07-28T06:50:35.473Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"93044bea-35ec-47bd-a6df-83e746e18aab","isSidechain":false,"promptId":"c7353b88-d047-4656-9c59-a6a72a975032","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01P9SUvXu87kMxWrG27kYZUH","type":"tool_result","content":"5:@@ -13,12 +13,6 @@ import (\n18:@@ -44,10 +38,7 @@ func exportSVG(eng *prompt.Engine, cfg *config.Config, output, fontFamily string\n30:@@ -72,7 +63,7 @@ func exportSVG(eng *prompt.Engine, cfg *config.Config, output, fontFamily string\n39:@@ -83,19 +74,19 @@ func svgOptions(fontFamily string, columns int, metrics fontMetrics) svg.Options","is_error":false}]},"uuid":"6b22a0df-2d0d-49f3-8d2c-d2950b44c8e5","timestamp":"2026-07-28T06:50:38.496Z","toolUseResult":{"stdout":"5:@@ -13,12 +13,6 @@ import (\n18:@@ -44,10 +38,7 @@ func exportSVG(eng *prompt.Engine, cfg *config.Config, output, fontFamily string\n30:@@ -72,7 +63,7 @@ func exportSVG(eng *prompt.Engine, cfg *config.Config, output, fontFamily string\n39:@@ -83,19 +74,19 @@ func svgOptions(fontFamily string, columns int, metrics fontMetrics) svg.Options","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"93044bea-35ec-47bd-a6df-83e746e18aab","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6b22a0df-2d0d-49f3-8d2c-d2950b44c8e5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1ckNUChxXGz78U447x","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Looking at the diff hunks, I notice the TrimSuffix change around line 131 isn't showing up, and I'm trying to figure out why. The fourth hunk covers svgOptions but svgOutputPath is missing from the diff. I'm realizing the TrimSuffix modification might not be included because I staged it via git checkout from a stash, which automatically stages changes.\n\nSo the TrimSuffix change is sitting in the index while the working tree has additional agent modifications on top. I should check the cached diff to see just the TrimSuffix change, then commit that along with the test file, which is currently untracked.","signature":"CAISxAkKhwEIEBgCKkCRpGrAx2A68szxfiZBNTLTgdQ1Xc4h/HooYjr9OJY8X9/uM/Rg6c0hVOSRLBFHbA6JJANoH+9g+1Rsy0o3Rj3MMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDJA2S8U5CxFNhl6CZxoMIunKYK4C8XO+h+NxIjAo9/6GlbGnvghRnurjIFdl2RjRjrvqTRNlZWR/fVEqxJmb+dJiyySb/jkTKGxpDEQq6QecxFZW2KxXzXtGs6mrKbo6FOiPUPYIwK/ezmsIjqyK8SC4npiLvW3qrlz/XESUJpqKtzw2mHGwIAPIUFTzYxNJ2iLIubscnAh82O4RYlutvUOJkMVbj/ukKx2UZEKDeH+ay56lZYfNHH3ePU8PSxBAfJKt9UaciXHHl/6Jyni4yZWoAGtONCt9NTo+RbTbAKkxzl/0ozmtiX+tuvYAcsNHd+X2RWbDMgDO/an6YbUsth3JWJyuZKsF6VjXv5qDfeJA30feRvpr39ql4llth8PzTjfUPCYjEonpXMR/j5d5C7UwwW+WBB1cxr55qZ8YZ58gdsg4xBtTqNKos77jMi/Evhgbk3yJGu2bMTkhtuoYlgQSAHXK+8Vu+u0T1IuewCr1gIf8nTWTEiOgNvix7SYvhUw16qbwHYJZ8hNSigHmA7azgUBbKfR2rNkFjT0Jp27uvEqcNETI2zdERp3BjFVJfwWWzB5FELEiZuN5OOUH7yqoxBsyqmKQpeexblJPpvIj/TVLiHaqv/ak8b+PGrAE9S/BD0Oft9kEdxVJRsquRXLQMa0W61xC7Ame/h86JyiatmF5G2r3Tdaq3o/lgSEXok53xMmaK5paU1ohseNrXjX8Oo40xCrIQoEQqKCenJqm1Yb4P41IPOUSXUFmFartX74hzXcTC6Tj11xsrrlcW+aMzK4h/mID0cGYsq2gJe9Cfha5Gbkw16X/bCiv8/Av6zOLZiQ9cLNwMCjw1/INp3xXl4DWHlJ3Ffp5g323E/BLI8LuKUYMqN1aeFQMhEzQfyaguEYmiy39VZXR9YwDf64Qj92/0zZpSTP8ZEilN2sqduw0MnV9JzQmY+tMDU6UMNFj+rUYuWVMzLwyV49Yte7SlXzFLkmo+nlUo0mmtrGEOAziKAEYMNdV3xR+p5fiv2bqdr8ATZqV0bfnyWGJ45KnHOSScQiRp+NPQVdQc8NUMGhYrxlBEq/x06ys3k+L6jFtIluKR34msmI1yoHD3Wrj0vGfHVM/usjgvGuR0/lnRUcsyIO7/aA5bjFuNukdFfAbOIBUY44XZNqw+j1tv/dm86E0d2q8xBkkTIAXXwNsEphgep7pMmMed1/jaFQz+8q+wtiqMfJRK34G/OSlR4o2tQ/mBMfH/6aE2nOqtJ6gLvV3arI5yATHKBbkoJlGWHBLNjPZbcjQfjb4WsvHA2Stv9h6BNx2ocQsBHp5e/9lVyFAC3qP4M55vMb5s6PvZSflzpKqaUGP2XMm82FD6hZ8VdxXm1xE0BFk5NAi15n6MlkioiBGf6qaNhiZew8nmJWz74lD3Moo4c0zqR1t1s3HzUniTEkKMBgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1688,"cache_read_input_tokens":448220,"output_tokens":505,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1688,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":505,"cache_read_input_tokens":448220,"cache_creation_input_tokens":1688,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1688},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1cfjAaRyKYBqcFi67L","type":"assistant","uuid":"6f3c6e32-6870-4389-8c58-9fe1f98e04fd","timestamp":"2026-07-28T06:50:47.547Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6f3c6e32-6870-4389-8c58-9fe1f98e04fd","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1ckNUChxXGz78U447x","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01EVV31u8mZZqjMqpwGwnfxg","name":"Bash","input":{"command":"git diff --cached --stat && echo \"=== cached content ===\" && git diff --cached -- src/cli/config_export_svg.go | head -25","description":"Check what is already staged"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1688,"cache_read_input_tokens":448220,"output_tokens":505,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1688,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":505,"cache_read_input_tokens":448220,"cache_creation_input_tokens":1688,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1688},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1cfjAaRyKYBqcFi67L","type":"assistant","uuid":"bb9acaf2-4186-4454-9b13-bf3f01df8642","timestamp":"2026-07-28T06:50:47.623Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bb9acaf2-4186-4454-9b13-bf3f01df8642","isSidechain":false,"promptId":"c7353b88-d047-4656-9c59-a6a72a975032","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01EVV31u8mZZqjMqpwGwnfxg","type":"tool_result","content":" src/cli/config_export_svg.go | 8 +++++++-\n 1 file changed, 7 insertions(+), 1 deletion(-)\n=== cached content ===\ndiff --git a/src/cli/config_export_svg.go b/src/cli/config_export_svg.go\nindex f18da6d2..bb9d399b 100644\n--- a/src/cli/config_export_svg.go\n+++ b/src/cli/config_export_svg.go\n@@ -128,7 +128,13 @@ func svgOutputPath(configPath, output string) string {\n \tbase := filepath.Base(configPath)\n \n \tmatch := regex.FindNamedRegexMatch(`(\\.?)(?P.*)\\.(json|yaml|yml|toml|jsonc)`, base)\n-\tname := strings.TrimRight(match[\"STR\"], \".omp\")\n+\n+\t// TrimSuffix, not TrimRight: TrimRight takes a cutset, so `.omp` there\n+\t// strips any trailing run of '.', 'o', 'm' and 'p' rather than the\n+\t// suffix. The retired PNG renderer carried that bug (image.go's\n+\t// setOutputPath) and it came along with the port — demo.json exported as\n+\t// de.svg, promo.json as pr.svg.\n+\tname := strings.TrimSuffix(match[\"STR\"], \".omp\")\n \n \tif name == \"\" {\n \t\tname = \"prompt\"","is_error":false}]},"uuid":"527b9119-299f-4752-a11b-92dc83829aa6","timestamp":"2026-07-28T06:50:48.671Z","toolUseResult":{"stdout":" src/cli/config_export_svg.go | 8 +++++++-\n 1 file changed, 7 insertions(+), 1 deletion(-)\n=== cached content ===\ndiff --git a/src/cli/config_export_svg.go b/src/cli/config_export_svg.go\nindex f18da6d2..bb9d399b 100644\n--- a/src/cli/config_export_svg.go\n+++ b/src/cli/config_export_svg.go\n@@ -128,7 +128,13 @@ func svgOutputPath(configPath, output string) string {\n \tbase := filepath.Base(configPath)\n \n \tmatch := regex.FindNamedRegexMatch(`(\\.?)(?P.*)\\.(json|yaml|yml|toml|jsonc)`, base)\n-\tname := strings.TrimRight(match[\"STR\"], \".omp\")\n+\n+\t// TrimSuffix, not TrimRight: TrimRight takes a cutset, so `.omp` there\n+\t// strips any trailing run of '.', 'o', 'm' and 'p' rather than the\n+\t// suffix. The retired PNG renderer carried that bug (image.go's\n+\t// setOutputPath) and it came along with the port — demo.json exported as\n+\t// de.svg, promo.json as pr.svg.\n+\tname := strings.TrimSuffix(match[\"STR\"], \".omp\")\n \n \tif name == \"\" {\n \t\tname = \"prompt\"","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"bb9acaf2-4186-4454-9b13-bf3f01df8642","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"527b9119-299f-4752-a11b-92dc83829aa6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1dXsREnTgz97f1uYN6","type":"message","role":"assistant","content":[{"type":"text","text":"The recovery from the stash left exactly that fix staged and nothing else — convenient:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":988,"cache_read_input_tokens":449908,"output_tokens":389,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":988,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":389,"cache_read_input_tokens":449908,"cache_creation_input_tokens":988,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":988},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1dRnYSXUNMg3jui86N","type":"assistant","uuid":"6b118512-6433-409b-be8b-8625be660a58","timestamp":"2026-07-28T06:50:52.704Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6b118512-6433-409b-be8b-8625be660a58","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1dXsREnTgz97f1uYN6","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01PoiYvB5L1oMQ2vpxhLbeXJ","name":"Bash","input":{"command":"git add src/cli/config_export_svg_test.go && git commit -q -F - <<'EOF'\nfix(cli): keep the whole name when deriving an export path\n\nExporting a config named demo.json wrote de.svg, and promo.json wrote\npr.svg. svgOutputPath stripped the `.omp` marker with strings.TrimRight,\nwhich takes a cutset rather than a suffix - every trailing '.', 'o', 'm'\nand 'p' came off the name.\n\nThe retired PNG renderer had the same line in its own setOutputPath and\nthe bug came along with the port. TrimSuffix is what was meant.\n\nThe new table covers the names that expose it - demo, promo, warp, pomp -\nalongside the ordinary .omp.json/.omp.yaml and dotfile cases.\nEOF\ngit log --oneline -1","description":"Commit the filename fix"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":988,"cache_read_input_tokens":449908,"output_tokens":389,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":988,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":389,"cache_read_input_tokens":449908,"cache_creation_input_tokens":988,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":988},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1dRnYSXUNMg3jui86N","type":"assistant","uuid":"b98b060b-253b-4e77-8f5c-600fa0ae0625","timestamp":"2026-07-28T06:50:56.509Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b98b060b-253b-4e77-8f5c-600fa0ae0625","isSidechain":false,"promptId":"c7353b88-d047-4656-9c59-a6a72a975032","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01PoiYvB5L1oMQ2vpxhLbeXJ","type":"tool_result","content":"5f07f653 fix(cli): keep the whole name when deriving an export path","is_error":false}]},"uuid":"4bdb68df-91f5-4e1f-8e6a-200ddd91645b","timestamp":"2026-07-28T06:51:08.613Z","toolUseResult":{"stdout":"5f07f653 fix(cli): keep the whole name when deriving an export path","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"b98b060b-253b-4e77-8f5c-600fa0ae0625","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4bdb68df-91f5-4e1f-8e6a-200ddd91645b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1f6h9YUnaFws1GGXMY","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01AbJeevPTjLoKdfdqZxkMSy","name":"Bash","input":{"command":"git add src/terminal/ src/color/colors.go && git commit -q -F - <<'EOF'\nperf(terminal): only resolve what a gradient actually needs\n\nThree changes to work the prompt path was doing for nothing:\n\nWrite computed leadingAnchorInvisible on every call, but its only\nconsumer is the countVisibleCells call inside the gradient branch. For\nevery non-gradient segment starting with an anchor - the common case -\nthat was an eight-iteration knownStyles scan and two string compares per\nWrite, thrown away. It moves in beside its consumer.\n\nendColorOverride opened with the same capture prologue its only caller,\nwriteAnchorOverride, had already run - with nothing mutating in between.\nWith capture on that cost a no-op flushRun plus a full redundant\nsyncPendingStyle on every closing anchor. The remaining comment records\nthat the caller owns the bookkeeping, for any future direct caller.\n\ngradientRenderCells was the one package global this branch added back\nafter folding nine others into colorState, and the only one String's\ndefer never reset. It becomes a colorState field, which fixes the\nlifecycle asymmetry along with the ambient state.\n\nsyncPendingStyle also resolved the active foreground twice, once\ndirectly and once inside deriveRunMode; it now passes the value through.\n\nBenchmarks are unchanged to the byte: WriteAnchors 688 B/14 allocs,\nWritePlainASCII 312 B/6, WriteSolid 488 B/16, WriteGradient 1785 B/17,\nWriteGradientChained 808 B/28. No inlining regression.\n\ncolor.Set's doc comment now records the +96 B/op (anchors) and +32 B/op\n(plain) its two source-tracking fields cost with capture off, and why\nthey are unconditional - threading CaptureRuns into the color package\nwould risk the two paths diverging.\nEOF\ngit log --oneline -1","description":"Commit terminal hot path work"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":406,"cache_read_input_tokens":450896,"output_tokens":715,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":406,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":715,"cache_read_input_tokens":450896,"cache_creation_input_tokens":406,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":406},"type":"message"}],"speed":"standard"},"diagnostics":{"cache_miss_reason":{"type":"unavailable"}}},"requestId":"req_011CdU1euFZpCvCpU17AgHyU","type":"assistant","uuid":"b3837a97-0a04-4952-abcf-e85ebd1cc044","timestamp":"2026-07-28T06:51:23.472Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b3837a97-0a04-4952-abcf-e85ebd1cc044","isSidechain":false,"promptId":"c7353b88-d047-4656-9c59-a6a72a975032","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01AbJeevPTjLoKdfdqZxkMSy","type":"tool_result","content":"708e32d0 perf(terminal): only resolve what a gradient actually needs","is_error":false}]},"uuid":"665feaf2-95e8-460b-804f-232835ed37b0","timestamp":"2026-07-28T06:51:34.461Z","toolUseResult":{"stdout":"708e32d0 perf(terminal): only resolve what a gradient actually needs","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"b3837a97-0a04-4952-abcf-e85ebd1cc044","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"665feaf2-95e8-460b-804f-232835ed37b0","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1gt8QG9hXMovvDAJJG","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm noticing the knownStyles array refactoring and the runAttributeSlots constant change also landed in the src/terminal files, but the commit message doesn't actually call that out—it only mentions the other changes like leadingAnchorInvisible and endColorOverride, even though the test deletion went in with the same commit.\n\nI should amend the message to include the runAttributeSlots refactoring so it's accurate.","signature":"CAISsgcKhwEIEBgCKkCx61m/Ehm3a66yuG765kkaL/8f24JNqn78MrqKglEHShMm7nRuNqdVhbeSzGdiuwYX0KuHItE53pX2wdYksqFEMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDFBZlVcVye9uoieD9xoMziL/nUR++9FAmecMIjDXEv/kO7kWrPJLTQX1c/YIY3QvFUf55i5GmQHnqnnqk28jp+tOQk6P4rFCKmH1v+Eq1wWYLDTBLcglGnSRZuPA6wUpaMnHyYwEIVQ6TIJDpAOo4enhkgqyXwwl2xXIRPuLARfFzlxqVjTx4GCOKCVVmUwUNxq/uKMoMSISfeWm/T5b1nRq982nQgXGTnOCJXJ5iTHW4RkC2wjQjTKTyPvZ3m/n+IOw77waxiYdNd0ch12y6sv8O5KA2SjYOWZ2fmUCFTo8W6r50/hH7u0bigfOSlespx9VLFBFhH34k3rLiDnhGnvt4MKpszsBTvmD0jV0I5AMzMpc1pRjulJJgCQLhaacvsfrddbcxcJo5U06Yo7QscslzA25H3rwEnrr6m0F9AFbgsiCjqFoBxq85cYr8lQS7l3Fzor28wQxxDwrNUmCBCt1J+tGJTpYCz0LZjccr12eKwanXuT4wC7+D7j2da/hNhD2xO6ttL4W7ib85pIWU5lAAOQdZDnEct+3D7DoANtfZNPk20JaXJ72NfHcGBe++akY8+wnIgFEGUr6f02mxVoTOrsX9sBYthWOBqJuALbIjTWd264dGYO8ti1jXM+nP/+rsb1b05LlXRqBWazbkkKDKwLsO3YgyWUbbwzCMPqwvgcgoYZi3C3EQrh0KHg3qdvnhrACc4AH+zVCCx5Rsig+ZkFOWOw7fZdQqesbg9EP1lDw3X4MumdZImnRDrczcSR9jNNqjLZ5NRu1GowF3On3gfyryhsoxf2c3G3lur4Idhl0TxH1NAlIZWYpfw056CmAs/n7XMBYn3klgE4s6rTrfwA1R5X76yNTz713UvAZI275D9RzpigItmUZB2/hcuYzRZRD7WDmkGAF84he2b3OifSqTXQmPeA14w+Qfuwd2go0Xtm6nKi9f737h90E6E5hzb88BXEj7cEm1j2EQWMGo7hbFcWltF1EL/hKGlFdJTZrY0yrAFnGuWSfoPV2bxXxioISQf+PdYQNQDPXqCnGlESJnUnyWTw7E/tODaQYYlnn2vGgGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":733,"cache_read_input_tokens":451302,"output_tokens":1088,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":733,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1088,"cache_read_input_tokens":451302,"cache_creation_input_tokens":733,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":733},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1godHPsSv9gr4gnxym","type":"assistant","uuid":"422cccb3-e1cd-48a3-97a8-f61dfc50537b","timestamp":"2026-07-28T06:51:41.733Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"422cccb3-e1cd-48a3-97a8-f61dfc50537b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1gt8QG9hXMovvDAJJG","type":"message","role":"assistant","content":[{"type":"text","text":"The `knownStyles` change went into that commit too but wasn't in the message — amending rather than leaving it undescribed:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":733,"cache_read_input_tokens":451302,"output_tokens":1088,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":733,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1088,"cache_read_input_tokens":451302,"cache_creation_input_tokens":733,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":733},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1godHPsSv9gr4gnxym","type":"assistant","uuid":"4e89f3e8-5f02-44e0-ae48-a95c84a56cb6","timestamp":"2026-07-28T06:51:41.734Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4e89f3e8-5f02-44e0-ae48-a95c84a56cb6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1gt8QG9hXMovvDAJJG","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_016JxRD21ipJRmiuogyuY3j9","name":"Bash","input":{"command":"git commit -q --amend -F - <<'EOF'\nperf(terminal): only resolve what a gradient actually needs\n\nFour changes to work the prompt path was doing for nothing:\n\nWrite computed leadingAnchorInvisible on every call, but its only\nconsumer is the countVisibleCells call inside the gradient branch. For\nevery non-gradient segment starting with an anchor - the common case -\nthat was an eight-iteration knownStyles scan and two string compares per\nWrite, thrown away. It moves in beside its consumer.\n\nendColorOverride opened with the same capture prologue its only caller,\nwriteAnchorOverride, had already run - with nothing mutating in between.\nWith capture on that cost a no-op flushRun plus a full redundant\nsyncPendingStyle on every closing anchor. The remaining comment records\nthat the caller owns the bookkeeping, for any future direct caller.\n\ngradientRenderCells was the one package global this branch added back\nafter folding nine others into colorState, and the only one String's\ndefer never reset. It becomes a colorState field, which fixes the\nlifecycle asymmetry along with the ambient state.\n\nsyncPendingStyle also resolved the active foreground twice, once\ndirectly and once inside deriveRunMode; it now passes the value through.\n\nrunAttributeSlots is now derived rather than pinned: knownStyles becomes\nan array, which makes len(knownStyles) a constant expression, so the\nhand-written 8 and the test guarding it against drift both go away. The\ncomment claiming this could not be done at compile time was simply\nwrong.\n\nBenchmarks are unchanged to the byte: WriteAnchors 688 B/14 allocs,\nWritePlainASCII 312 B/6, WriteSolid 488 B/16, WriteGradient 1785 B/17,\nWriteGradientChained 808 B/28. No inlining regression.\n\ncolor.Set's doc comment now records the +96 B/op (anchors) and +32 B/op\n(plain) its two source-tracking fields cost with capture off, and why\nthey are unconditional - threading CaptureRuns into the color package\nwould risk the two paths diverging.\nEOF\ngit log --oneline -1 && git status --short | head -20","description":"Amend to describe all four changes"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":733,"cache_read_input_tokens":451302,"output_tokens":1088,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":733,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1088,"cache_read_input_tokens":451302,"cache_creation_input_tokens":733,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":733},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1godHPsSv9gr4gnxym","type":"assistant","uuid":"30ee29e7-9498-4c9a-ad4b-518e286946bc","timestamp":"2026-07-28T06:51:48.261Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"30ee29e7-9498-4c9a-ad4b-518e286946bc","isSidechain":false,"promptId":"c7353b88-d047-4656-9c59-a6a72a975032","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_016JxRD21ipJRmiuogyuY3j9","type":"tool_result","content":"abac664a perf(terminal): only resolve what a gradient actually needs\n M src/cli/config_export_data.go\n M src/cli/config_export_image.go\n M src/cli/config_export_svg.go\n M src/cli/data.go\n M src/cli/sanitize.go\n M src/color/gradient.go\n M src/config/data.go\n M src/prompt/engine.go\n M src/prompt/engine_test.go\n M src/prompt/extra.go\n M src/prompt/extra_test.go\n M src/prompt/fixtures_sanitized_test.go\n M src/prompt/golden_test.go\n M src/prompt/runs.go\n M src/prompt/runs_test.go\n M src/prompt/segments.go\n M src/svg/colors.go\n M src/svg/fit.go\n M src/svg/svg.go\n M src/svg/svg_test.go","is_error":false}]},"uuid":"aa774844-a277-4d4d-bf59-d467d05ff367","timestamp":"2026-07-28T06:52:01.198Z","toolUseResult":{"stdout":"abac664a perf(terminal): only resolve what a gradient actually needs\n M src/cli/config_export_data.go\n M src/cli/config_export_image.go\n M src/cli/config_export_svg.go\n M src/cli/data.go\n M src/cli/sanitize.go\n M src/color/gradient.go\n M src/config/data.go\n M src/prompt/engine.go\n M src/prompt/engine_test.go\n M src/prompt/extra.go\n M src/prompt/extra_test.go\n M src/prompt/fixtures_sanitized_test.go\n M src/prompt/golden_test.go\n M src/prompt/runs.go\n M src/prompt/runs_test.go\n M src/prompt/segments.go\n M src/svg/colors.go\n M src/svg/fit.go\n M src/svg/svg.go\n M src/svg/svg_test.go","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"30ee29e7-9498-4c9a-ad4b-518e286946bc","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"aa774844-a277-4d4d-bf59-d467d05ff367","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1ivExiMaf7PHHjw5uX","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01SzPeWscT7khCi27mkxmVQp","name":"Bash","input":{"command":"git add src/svg/ src/color/gradient.go && git commit -q -F - <<'EOF'\nrefactor(svg): drop what the encoder was carrying for nothing\n\nOptions.Padding was written by withDefaults and read by no one - the\nreal edge-to-content gap comes from windowGeometry.padding, computed\nindependently, so a caller setting it got identical output. Encode's\nerror return was structurally always nil: one return statement, and a\ndead error branch at its only caller.\n\nThe \"real terminal background where known, else CanvasBackground\"\ninvariant was re-derived in two places, the window fill and paintRun's\ntwo transparent arms. withDefaults now folds a known terminal background\ninto CanvasBackground once, so both read one field. That fixes a real\ncase in passing: a background-painted run with no known terminal\nbackground used to emit no fill attribute at all and render black, where\nit now falls back like reverse video always did. No bundled theme\nreaches it - deriveRunMode only produces that mode when a terminal\nbackground was set at capture time, and the exporter resolves\nTerminalBackground from that same variable - so the new test case pins\nit directly rather than leaving it to a theme that cannot exercise it.\n\nhexToRGB transcribed gookit's HexToRgb step for step, and 86de20dd\nexists because that transcription had drifted and made six themes render\ninvisible text. It now calls gookit, so the parity is structural.\nParseTrueColorSGR likewise duplicated color's own parseTrueColor; both\nnow share color.ParseTrueColorRGB.\n\nAlso: writeRect, the root svg tag and writeWindowChrome become format\nstrings instead of interleaved WriteString calls, paintRun stops\nreturning a bool that was just rectRGB != nil, and two guards that no\ncaller can reach are gone.\n\nEvery one of the 124 bundled themes exports byte-identically before and\nafter, which is what proves the padding field was dead and the format\nstrings are faithful.\nEOF\ngit log --oneline -1","description":"Commit svg package work"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1394,"cache_read_input_tokens":452035,"output_tokens":722,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1394,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":722,"cache_read_input_tokens":452035,"cache_creation_input_tokens":1394,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1394},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1imy8PoLyJ6bu1Suwq","type":"assistant","uuid":"5021595b-de8a-4d8d-949e-8b68dee33184","timestamp":"2026-07-28T06:52:15.006Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5021595b-de8a-4d8d-949e-8b68dee33184","isSidechain":false,"promptId":"c7353b88-d047-4656-9c59-a6a72a975032","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01SzPeWscT7khCi27mkxmVQp","type":"tool_result","content":"759a2148 refactor(svg): drop what the encoder was carrying for nothing","is_error":false}]},"uuid":"709a85db-b26d-45ce-bf26-c26bf3f68d62","timestamp":"2026-07-28T06:52:27.947Z","toolUseResult":{"stdout":"759a2148 refactor(svg): drop what the encoder was carrying for nothing","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"5021595b-de8a-4d8d-949e-8b68dee33184","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"709a85db-b26d-45ce-bf26-c26bf3f68d62","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"eba02749-3d98-4e56-b78d-ec01188ec5af","timestamp":"2026-07-28T06:52:27.955Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"eba02749-3d98-4e56-b78d-ec01188ec5af","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1kqiQSmEdrnYEieP29","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01HzEm1o2MJMR23jPRkcp1sb","name":"Bash","input":{"command":"git add src/cli/ src/prompt/ src/config/ && git commit -q -F - <<'EOF'\nrefactor(cli): render an exported config through one path\n\nThree copies of the same thirty-line render setup had accumulated - the\nimage command, the data recorder, and its per-theme sanitized variant -\nand they had already started to drift: the sanitized path needed a\ntemplate cache reset the others do not. renderConfigForExport takes that\ndifference as a parameter instead of leaving three copies to diverge\nfurther. CaptureRuns stays at the image command's own call site, since\nit is specific to that command rather than part of the setup.\n\nTwo of the Engine's six capture fields were values pretending to be\nstate. blockText and length already flow as return values, so\npendingBlockRuns now does too; shouldFill already holds the pad length,\nso it returns the expanded runs directly instead of the caller handing\nthe same number to a second function afterwards. Six fields become four,\nand with capture off the new parameters are nil slices - the allocation\ngates are unmoved.\n\nThe env-flag routing existed twice because the golden harness cannot\nimport cli, which imports prompt. It moves to config.Data.ApplyFlags,\nwhich both reach. The recorder's data-file key constants claimed to be\nshared with the read side but could not be - config read string literals\n- so they move to config too, alongside the theme enumeration that was\nalso written out twice.\n\nSmaller: the CLI stops mirroring svg's font size by hand (it is exported\nnow), sanitizeEnv uses the constant its own doc comment already\ndescribed, and the sanitize walk loses a map[any]any branch that was\nproven unreachable - both the YAML and TOML decoders produce\nmap[string]any for a nested map.\n\nAll 124 themes export byte-identically, and the golden harness over the\nsame set is unchanged.\nEOF\ngit log --oneline -1","description":"Commit cli/prompt/config plumbing"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":884,"cache_read_input_tokens":453429,"output_tokens":685,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":884,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":685,"cache_read_input_tokens":453429,"cache_creation_input_tokens":884,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":884},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1kjcJY3ijX7LZwjJLN","type":"assistant","uuid":"9d998ce8-c8dd-4d0f-8f5b-74c35f7eaea4","timestamp":"2026-07-28T06:52:40.425Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9d998ce8-c8dd-4d0f-8f5b-74c35f7eaea4","isSidechain":false,"promptId":"c7353b88-d047-4656-9c59-a6a72a975032","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01HzEm1o2MJMR23jPRkcp1sb","type":"tool_result","content":"4a9dbc7b refactor(cli): render an exported config through one path","is_error":false}]},"uuid":"d844f463-8018-4529-ba58-0149f72f2e7c","timestamp":"2026-07-28T06:52:52.269Z","toolUseResult":{"stdout":"4a9dbc7b refactor(cli): render an exported config through one path","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"9d998ce8-c8dd-4d0f-8f5b-74c35f7eaea4","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d844f463-8018-4529-ba58-0149f72f2e7c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1nuLkM7DbfvUa7ugdx","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01XWJSe5dg44unXcaeXJ2uPH","name":"Bash","input":{"command":"git add tools/ && git commit -q -F - <<'EOF'\nfix(tools): download the harness font before reading it\n\ncompare.mjs's ensureFont was synchronous but its no-cache path called an\nasync download without awaiting it, so main went straight to readFileSync\nand threw ENOENT plus an unhandled rejection. It only ever worked because\na cached Hack.zip happened to be on disk.\n\nThe fix comes with the deduplication that would have prevented it: the\npath constants, run(), the device scale factor and ensureFont itself now\nlive in common.mjs, with the zip entry as a parameter - the one place the\ntwo scripts genuinely differed, since shot.mjs wants the Mono variant.\nVictor Mono's metrics come from website/export_themes.mjs rather than\nbeing restated here, so swapping the site font cannot leave the harness\nrendering at stale numbers.\n\nThe two rasterize functions stay separate on purpose: forcing the SVG\ninto the PNG's box versus rendering it at natural size is the whole\nreason shot.mjs exists, and a parameterized merge would bury that.\nEOF\ngit add website/ && git commit -q -F - <<'EOF'\nrefactor(website): stop hand-maintaining what the build can compute\n\nThe segment count was written out by hand in seven places. The plugin\nalready computes it, so the homepage and the segments overview now read\nit, and a build-time check fails loudly if the four static assets that\ncannot read plugin data - llms.txt, llms-full.txt and the two skill\nfiles - stop agreeing with it.\n\nThe plugin's global data rides in the shared chunk on every page, so it\nstops shipping three kinds of fat: a group label and an href per segment,\nboth derivable from fields already present, and per-group counts that\nneither consumer read (both recompute live counts as filters change).\n\nThe theme export spawned a shell for each of 124 invocations and quoted\nits own arguments by hand; execFile with an argument array does neither.\nThe trending data file it wrote to the temp directory was never removed -\none leak per build.\n\nAlso: both plugins share one reader for their generated JSON, the card\nsurface recipe duplicated between the homepage and the segment catalog\nmoves to custom properties (the two radii had already drifted apart), and\nthe themes plugin's comment describing a Loadable() dynamic import now\ndescribes the static import the component actually uses.\nEOF\ngit log --oneline -6","description":"Commit tools and website work"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":712,"cache_read_input_tokens":454313,"output_tokens":855,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":712,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":855,"cache_read_input_tokens":454313,"cache_creation_input_tokens":712,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":712},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1nXYpb6ZDPkLA7HB9z","type":"assistant","uuid":"5d045028-ec8f-45d8-979f-0eab058af301","timestamp":"2026-07-28T06:53:12.411Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5d045028-ec8f-45d8-979f-0eab058af301","isSidechain":false,"promptId":"c7353b88-d047-4656-9c59-a6a72a975032","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01XWJSe5dg44unXcaeXJ2uPH","type":"tool_result","content":"a1d05bc6 refactor(website): stop hand-maintaining what the build can compute\n76a60f9e fix(tools): download the harness font before reading it\n4a9dbc7b refactor(cli): render an exported config through one path\n759a2148 refactor(svg): drop what the encoder was carrying for nothing\nabac664a perf(terminal): only resolve what a gradient actually needs\n5f07f653 fix(cli): keep the whole name when deriving an export path","is_error":false}]},"uuid":"96011d00-bdb8-41d1-8550-c7ae16d2f1de","timestamp":"2026-07-28T06:53:35.848Z","toolUseResult":{"stdout":"a1d05bc6 refactor(website): stop hand-maintaining what the build can compute\n76a60f9e fix(tools): download the harness font before reading it\n4a9dbc7b refactor(cli): render an exported config through one path\n759a2148 refactor(svg): drop what the encoder was carrying for nothing\nabac664a perf(terminal): only resolve what a gradient actually needs\n5f07f653 fix(cli): keep the whole name when deriving an export path","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"5d045028-ec8f-45d8-979f-0eab058af301","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"96011d00-bdb8-41d1-8550-c7ae16d2f1de","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1qqsUWPQm3V2nAL7Tx","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Ezxz1fNLS3bTk1WBdt4Zsf","name":"Bash","input":{"command":"git status --short && echo \"=== final gates ===\" && cd src && go build ./... && go test ./... -count=1 2>&1 | grep -v \"^ok\\|no test files\" | head -5; golangci-lint run ./... 2>&1 | tail -2","description":"Confirm clean tree and final gates"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1014,"cache_read_input_tokens":455025,"output_tokens":174,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1014,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":174,"cache_read_input_tokens":455025,"cache_creation_input_tokens":1014,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1014},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1qkX1Lw2RLvpKhtz8o","type":"assistant","uuid":"42e395fa-bb05-4b3d-a1f0-29dd3747a443","timestamp":"2026-07-28T06:53:40.795Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"42e395fa-bb05-4b3d-a1f0-29dd3747a443","isSidechain":false,"promptId":"c7353b88-d047-4656-9c59-a6a72a975032","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Ezxz1fNLS3bTk1WBdt4Zsf","type":"tool_result","content":"=== final gates ===\n0 issues.","is_error":false}]},"uuid":"b710d638-0aea-4692-919f-a5c18f9ae388","timestamp":"2026-07-28T06:53:54.895Z","toolUseResult":{"stdout":"=== final gates ===\n0 issues.","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"42e395fa-bb05-4b3d-a1f0-29dd3747a443","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b710d638-0aea-4692-919f-a5c18f9ae388","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1sEMr77W2Ldgq9cy7y","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Now that the tree is clean and all tests pass, I need to clean up the temporary state—dropping the stash since everything's already committed, and removing the temporary worktrees. Before I delete the stash, let me verify it's truly redundant by checking if there's anything unique in it compared to HEAD, though given that everything's committed and the tree is clean, it should be safe to remove.\n\nActually, stash operations are hard to undo cleanly, so I'll leave both stashes in place and just mention them to the user—they can decide whether to drop them. But the temporary worktrees I created (omp-head and omp-main) are mine to clean up, so I'll remove those. The PNG worktree stays since it's still useful for the harness.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":179,"cache_read_input_tokens":456039,"output_tokens":692,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":179,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":692,"cache_read_input_tokens":456039,"cache_creation_input_tokens":179,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":179},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1s9GGCAPsGdYSNQkXH","type":"assistant","uuid":"11def1cc-b76e-4627-928c-dabebaf45d4c","timestamp":"2026-07-28T06:54:06.714Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"11def1cc-b76e-4627-928c-dabebaf45d4c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1sEMr77W2Ldgq9cy7y","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01QgcPp5CbeLNCzNY3o6twGu","name":"Bash","input":{"command":"cd /d/oh-my-posh && git worktree remove \"$TMPDIR/omp-head\" --force 2>&1; git worktree remove \"$TMPDIR/omp-main\" --force 2>&1; git worktree list && echo \"=== stashes left ===\" && git stash list","description":"Clean up temporary worktrees"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":179,"cache_read_input_tokens":456039,"output_tokens":692,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":179,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":692,"cache_read_input_tokens":456039,"cache_creation_input_tokens":179,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":179},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1s9GGCAPsGdYSNQkXH","type":"assistant","uuid":"6c3f84cb-ad26-490d-9ff3-c8aafbb269ac","timestamp":"2026-07-28T06:54:06.716Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6c3f84cb-ad26-490d-9ff3-c8aafbb269ac","isSidechain":false,"promptId":"c7353b88-d047-4656-9c59-a6a72a975032","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01QgcPp5CbeLNCzNY3o6twGu","type":"tool_result","content":"D:/oh-my-posh a1d05bc6 [themes-svg]\nC:/Users/jande/AppData/Local/Temp/omp-png eb421824 (detached HEAD)\nD:/oh-my-posh/.claude/worktrees/heuristic-robinson-e44709 6f09a021 (detached HEAD)\nD:/oh-my-posh-worktree ba8d6ebd [codex/jujutsu-change-id-components]\n=== stashes left ===\nstash@{0}: WIP on next: 0f8c8a82 fix(svg): end a segment background where its separator does\nstash@{1}: WIP on next: e279f6a8 test(terminal): cover the gradient body writer","is_error":false}]},"uuid":"86d84d9a-8541-48c0-ab1e-bc81b1034399","timestamp":"2026-07-28T06:54:10.221Z","toolUseResult":{"stdout":"D:/oh-my-posh a1d05bc6 [themes-svg]\nC:/Users/jande/AppData/Local/Temp/omp-png eb421824 (detached HEAD)\nD:/oh-my-posh/.claude/worktrees/heuristic-robinson-e44709 6f09a021 (detached HEAD)\nD:/oh-my-posh-worktree ba8d6ebd [codex/jujutsu-change-id-components]\n=== stashes left ===\nstash@{0}: WIP on next: 0f8c8a82 fix(svg): end a segment background where its separator does\nstash@{1}: WIP on next: e279f6a8 test(terminal): cover the gradient body writer","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"6c3f84cb-ad26-490d-9ff3-c8aafbb269ac","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"86d84d9a-8541-48c0-ab1e-bc81b1034399","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1tLR1PmrN2fo3D56YK","type":"message","role":"assistant","content":[{"type":"text","text":"Done. Six commits, tree clean, all gates green.\n\n```\na1d05bc6 refactor(website): stop hand-maintaining what the build can compute\n76a60f9e fix(tools): download the harness font before reading it\n4a9dbc7b refactor(cli): render an exported config through one path\n759a2148 refactor(svg): drop what the encoder was carrying for nothing\nabac664a perf(terminal): only resolve what a gradient actually needs\n5f07f653 fix(cli): keep the whole name when deriving an export path\n```\n\n**Verification I ran myself, not taken from the agents:**\n\n- **124 themes export byte-identically** between committed HEAD and the finished tree. That single gate covers the whole cleanup — it's what proves `Options.Padding` was genuinely dead, the `fmt.Fprintf` rewrite is faithful, and neither the render-setup extraction nor the Engine field removal changed rendering.\n- **Benchmarks exactly at baseline** — 688/14, 312/6, 488/16, 1785/17, 808/28. No allocation moved despite the hot-path edits.\n- Full suite, `golangci-lint` 0 issues, `npm run build` succeeds, 124 themes regenerate.\n\nTwo pre-existing issues I did *not* touch, both confirmed untouched by this work: `go vet`'s unsafe.Pointer notes in `cache/file_map_windows.go`, and the broken `/docs/themes#jandedobbeleer` anchor (Docusaurus's checker doesn't see `ThemeGallery`'s component-generated ids).\n\n**Two things worth your attention:**\n\nThe `map[any]any` branch deletion was *proven*, not assumed — the agent round-tripped nested maps through both the real YAML and TOML decoders and confirmed they produce `map[string]any`, then deleted the probe. That's the standard I wanted, given how the sanitizer burned us before.\n\n**Two stashes remain** and I deliberately left them:\n\n```bash\ngit stash list\n```\n\n`stash@{0}` is the wreckage of my `git stash` mistake — everything in it is now committed, so it's dead weight, but I'd rather you drop it than have me delete something I created by accident. `stash@{1}` predates today entirely and isn't mine.\n\nThe one thing I'd still flag from the analysis: `color.Set`'s two source-tracking fields cost +96 B/op on every prompt render with capture off. It's now documented in the type's doc comment rather than invisible, but it's a real cost this branch introduced for a feature most users never invoke. Worth a decision at some point — just not one that belonged in a cleanup pass."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":939,"cache_read_input_tokens":456218,"output_tokens":879,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":939,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":879,"cache_read_input_tokens":456218,"cache_creation_input_tokens":939,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":939},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1tHBnYbU85RVkMXNvB","type":"assistant","uuid":"043482d6-a3ca-46ff-b3ae-4103d6d78331","timestamp":"2026-07-28T06:54:26.130Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"043482d6-a3ca-46ff-b3ae-4103d6d78331","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":9147},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T06:54:37.197Z","uuid":"fcf74b15-6454-4768-9bed-1ed180425ec5","toolUseID":"c5858f44-9222-46c2-8988-7cccec2822d9","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fcf74b15-6454-4768-9bed-1ed180425ec5","isSidechain":false,"promptId":"6237aa99-0782-4d8d-a9bb-3d4904315177","type":"user","message":{"role":"user","content":"Explain that color.set source tracking field cost to me. Why is it used? What does it do?"},"uuid":"392bc10c-75a9-4fda-9dbb-36c385b823b2","timestamp":"2026-07-28T06:55:10.713Z","permissionMode":"auto","origin":{"kind":"human"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"392bc10c-75a9-4fda-9dbb-36c385b823b2","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-9b7a392b-bba3-4e2e-bfca-c91722e2beeb","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"e7b2a3f4-f2bf-4076-b8ab-f3cdc00f5e6c","timestamp":"2026-07-28T06:55:10.924Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e7b2a3f4-f2bf-4076-b8ab-f3cdc00f5e6c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1xwyn6vF8R1MvE2Mw3","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I need to dig into the actual source code to understand what these source-tracking fields are doing in the Set type, how they're used in the History.Add method, and what performance implications they have.","signature":"CAISpgQKhwEIEBgCKkDvq+9ZbRroLwnSR2FdLVyhnXD0Ldy6FjpsflFrgd1cu5+9k916tspR+ZUJW7f9kRbDM93PAlZ/8UT02UFwqMxBMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDNK3xmXjPzDDlEUGDxoMGj8fi5iI8goTkAP6IjDZve2tT8r8DF2IIp7KzfBnX6LUyBCSsp1Z/1lEsV9qP9T5jlOWdIL+ohFbZ0ac1OEqywIan3y8xfKf0GskUgCYWk3OFJlvN2P8ztoWvjzL7wFHIZ2+kC5rNtCUw9TZ2ngDxhP1VNBsTKqqYSjZ77ujQ+LJuuem36esKXdmDuv3dv6hlFYIPf2ief0mZxKtXNYtmDz+gsDp4pVc5k8b7bwTfAPOyouZ8Kf4lb7R3m8holD4Clm+4QcmoRXyvAa3ZRobPqjKUpnX6BGlpPZUPbHUHchA7FeEKqUvsLqg7apq0vahTuRnkbkMH7JujLWFyEA7DAiQr2Xcw78y91uZPpK+yQfSwp2cGXUw+0vJBLivVtnS7RhFtVWyK7WDD0bJJFqcDK1WGuOjn2A5207cpqpH/OFGvq74N2Dv/9M7YuU1VoJiveeelrpo5Tyn7PJExklOPr7ITeD60BlfTwrIJkC7BbocF5cjsPHr6EvxPZON5Dy8+DWiohngy1jVbYneGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":104,"cache_read_input_tokens":458036,"output_tokens":429,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":104,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":429,"cache_read_input_tokens":458036,"cache_creation_input_tokens":104,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":104},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1xobjtdQSh8bKNUUri","type":"assistant","uuid":"b60641a5-878e-4f2b-bad6-85352cb34454","timestamp":"2026-07-28T06:55:18.480Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b60641a5-878e-4f2b-bad6-85352cb34454","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1xwyn6vF8R1MvE2Mw3","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_015sP1ezqTPKEVDPTrgVfvKc","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && grep -n -B25 \"type Set struct\" color/colors.go | tail -40 && echo \"=== Set + methods ===\" && sed -n '/type Set struct/,/^}/p' color/colors.go","description":"Read the Set type and its doc comment"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":104,"cache_read_input_tokens":458036,"output_tokens":429,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":104,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":429,"cache_read_input_tokens":458036,"cache_creation_input_tokens":104,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":104},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1xobjtdQSh8bKNUUri","type":"assistant","uuid":"b9396c89-af9e-4f1c-a436-00bdc6eaeffc","timestamp":"2026-07-28T06:55:19.184Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b9396c89-af9e-4f1c-a436-00bdc6eaeffc","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1xwyn6vF8R1MvE2Mw3","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_019z9u9USeZuBpC1haTg3za3","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && grep -n \"func.*History.*Add\\|func (s \\*Set)\\|func (s Set)\" color/colors.go && echo \"=== Add body ===\" && sed -n '/func (h \\*History) Add/,/^}/p' color/colors.go","description":"Read History.Add"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":104,"cache_read_input_tokens":458036,"output_tokens":429,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":104,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":429,"cache_read_input_tokens":458036,"cache_creation_input_tokens":104,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":104},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1xobjtdQSh8bKNUUri","type":"assistant","uuid":"be126898-0d41-4008-8af6-f3fd261f09f1","timestamp":"2026-07-28T06:55:20.339Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b9396c89-af9e-4f1c-a436-00bdc6eaeffc","isSidechain":false,"promptId":"6237aa99-0782-4d8d-a9bb-3d4904315177","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_015sP1ezqTPKEVDPTrgVfvKc","type":"tool_result","content":"22-\tgob.Register(&Palettes{})\n23-\tgob.Register(&Cycle{})\n24-}\n25-\n26-const (\n27-\taccentColor = \"accent_color\"\n28-)\n29-\n30-var TrueColor = true\n31-\n32-// String converts a color string — a hex color like `#FFFFFF`, or one of the\n33-// first 16 ANSI color names like `lightBlue` — to an ANSI code.\n34-type String interface {\n35-\tToAnsi(colorString Ansi, isBackground bool) Ansi\n36-\tResolve(colorString Ansi) (Ansi, error)\n37-}\n38-\n39-// Set holds one background/foreground color pair. The two unexported source-tracking\n40-// fields below add +96 B/op (BenchmarkWriteAnchors) / +32 B/op (BenchmarkWritePlainASCII)\n41-// versus a Set without them, at identical allocation counts, measured against\n42-// origin/main with terminal.CaptureRuns off: History.Add allocates a Set per push, and\n43-// every push now carries two extra Ansi (string header) fields regardless of whether\n44-// anything reads them. This is accepted, not a bug: the fields are unconditional rather\n45-// than threading CaptureRuns into this package, which would risk the run-capture and\n46-// ANSI-only paths drifting apart between builds that enable it and builds that don't.\n47:type Set struct {\n=== Set + methods ===\ntype Set struct {\n\tBackground Ansi `json:\"background\" toml:\"background\" yaml:\"background\"`\n\tForeground Ansi `json:\"foreground\" toml:\"foreground\" yaml:\"foreground\"`\n\n\t// backgroundSource/foregroundSource carry each channel's resolved SOURCE\n\t// form (a #RRGGBB hex, a colour name, accent, transparent, ...) alongside\n\t// Background/Foreground's SGR payload. Unexported: they never round-trip\n\t// through config (un)marshalling or the gob-encoded device cache, which\n\t// only see exported fields, so their presence changes neither. See\n\t// History.Add for why they ride on the same entry instead of a second stack.\n\tbackgroundSource Ansi\n\tforegroundSource Ansi\n}","is_error":false}]},"uuid":"0683e779-8565-4edd-905e-bb991d994cca","timestamp":"2026-07-28T06:55:22.037Z","toolUseResult":{"stdout":"22-\tgob.Register(&Palettes{})\n23-\tgob.Register(&Cycle{})\n24-}\n25-\n26-const (\n27-\taccentColor = \"accent_color\"\n28-)\n29-\n30-var TrueColor = true\n31-\n32-// String converts a color string — a hex color like `#FFFFFF`, or one of the\n33-// first 16 ANSI color names like `lightBlue` — to an ANSI code.\n34-type String interface {\n35-\tToAnsi(colorString Ansi, isBackground bool) Ansi\n36-\tResolve(colorString Ansi) (Ansi, error)\n37-}\n38-\n39-// Set holds one background/foreground color pair. The two unexported source-tracking\n40-// fields below add +96 B/op (BenchmarkWriteAnchors) / +32 B/op (BenchmarkWritePlainASCII)\n41-// versus a Set without them, at identical allocation counts, measured against\n42-// origin/main with terminal.CaptureRuns off: History.Add allocates a Set per push, and\n43-// every push now carries two extra Ansi (string header) fields regardless of whether\n44-// anything reads them. This is accepted, not a bug: the fields are unconditional rather\n45-// than threading CaptureRuns into this package, which would risk the run-capture and\n46-// ANSI-only paths drifting apart between builds that enable it and builds that don't.\n47:type Set struct {\n=== Set + methods ===\ntype Set struct {\n\tBackground Ansi `json:\"background\" toml:\"background\" yaml:\"background\"`\n\tForeground Ansi `json:\"foreground\" toml:\"foreground\" yaml:\"foreground\"`\n\n\t// backgroundSource/foregroundSource carry each channel's resolved SOURCE\n\t// form (a #RRGGBB hex, a colour name, accent, transparent, ...) alongside\n\t// Background/Foreground's SGR payload. Unexported: they never round-trip\n\t// through config (un)marshalling or the gob-encoded device cache, which\n\t// only see exported fields, so their presence changes neither. See\n\t// History.Add for why they ride on the same entry instead of a second stack.\n\tbackgroundSource Ansi\n\tforegroundSource Ansi\n}","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"b9396c89-af9e-4f1c-a436-00bdc6eaeffc","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"be126898-0d41-4008-8af6-f3fd261f09f1","isSidechain":false,"promptId":"6237aa99-0782-4d8d-a9bb-3d4904315177","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_019z9u9USeZuBpC1haTg3za3","type":"tool_result","content":"91:func (c *History) Add(background, foreground, backgroundSource, foregroundSource Ansi) {\n=== Add body ===","is_error":false}]},"uuid":"b2182d85-c7a8-44c7-9d81-3763f2055ed1","timestamp":"2026-07-28T06:55:25.460Z","toolUseResult":{"stdout":"91:func (c *History) Add(background, foreground, backgroundSource, foregroundSource Ansi) {\n=== Add body ===","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"be126898-0d41-4008-8af6-f3fd261f09f1","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b2182d85-c7a8-44c7-9d81-3763f2055ed1","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1yyxcWZAe9cpvSrYF2","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01UkPqQFZd6PVtZDSNiT9q2h","name":"Bash","input":{"command":"sed -n '60,140p' color/colors.go","description":"Read History and Add"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1277,"cache_read_input_tokens":458140,"output_tokens":103,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1277,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":103,"cache_read_input_tokens":458140,"cache_creation_input_tokens":1277,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1277},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1yq4q2VNEsn4WPCe9P","type":"assistant","uuid":"4a9e9dcf-89c2-4610-bacf-bd7b1ee09cc4","timestamp":"2026-07-28T06:55:30.409Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4a9e9dcf-89c2-4610-bacf-bd7b1ee09cc4","isSidechain":false,"promptId":"6237aa99-0782-4d8d-a9bb-3d4904315177","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01UkPqQFZd6PVtZDSNiT9q2h","type":"tool_result","content":"func (c *Set) String() string {\n\treturn fmt.Sprintf(\"%s|%s\", c.Foreground, c.Background)\n}\n\nfunc (c *Set) ParseString(colors string) {\n\tparts := strings.SplitN(colors, \"|\", 3)\n\tif len(parts) != 2 {\n\t\treturn\n\t}\n\n\tc.Foreground = Ansi(parts[0])\n\tc.Background = Ansi(parts[1])\n}\n\ntype History []*Set\n\nfunc (c *History) Len() int {\n\treturn len(*c)\n}\n\n// Add pushes background/foreground (SGR) onto the stack, together with\n// backgroundSource/foregroundSource — each channel's source form from before\n// ToAnsi's SGR conversion, which a later encoder needs because SGR cannot be\n// inverted back to it reliably (the 256-colour downgrade and base-16 codes\n// are lossy).\n//\n// The dedupe decision below compares only background/foreground (SGR), same\n// as before this field existed: under color.TrueColor == false, two distinct\n// source forms can collapse to the same SGR pair, so the decision must not\n// be made on source forms, or it would diverge from this one.\nfunc (c *History) Add(background, foreground, backgroundSource, foregroundSource Ansi) {\n\tcolors := &Set{\n\t\tForeground: foreground,\n\t\tBackground: background,\n\t\tforegroundSource: foregroundSource,\n\t\tbackgroundSource: backgroundSource,\n\t}\n\n\tif c.Len() == 0 {\n\t\t*c = append(*c, colors)\n\t\treturn\n\t}\n\n\tlast := (*c)[c.Len()-1]\n\t// never add the same colors twice\n\tif last.Foreground == colors.Foreground && last.Background == colors.Background {\n\t\treturn\n\t}\n\n\t*c = append(*c, colors)\n}\n\nfunc (c *History) Pop() {\n\tif c.Len() == 0 {\n\t\treturn\n\t}\n\n\t*c = (*c)[:c.Len()-1]\n}\n\nfunc (c *History) Background() Ansi {\n\tif c.Len() == 0 {\n\t\treturn emptyColor\n\t}\n\n\treturn (*c)[c.Len()-1].Background\n}\n\nfunc (c *History) Foreground() Ansi {\n\tif c.Len() == 0 {\n\t\treturn emptyColor\n\t}\n\n\treturn (*c)[c.Len()-1].Foreground\n}\n\n// BackgroundSource returns the top entry's background source form (see Add);\n// emptyColor when the stack is empty, matching Background.\nfunc (c *History) BackgroundSource() Ansi {\n\tif c.Len() == 0 {","is_error":false}]},"uuid":"e86e23aa-77b4-48ec-9da9-19369cf22fa6","timestamp":"2026-07-28T06:55:31.267Z","toolUseResult":{"stdout":"func (c *Set) String() string {\n\treturn fmt.Sprintf(\"%s|%s\", c.Foreground, c.Background)\n}\n\nfunc (c *Set) ParseString(colors string) {\n\tparts := strings.SplitN(colors, \"|\", 3)\n\tif len(parts) != 2 {\n\t\treturn\n\t}\n\n\tc.Foreground = Ansi(parts[0])\n\tc.Background = Ansi(parts[1])\n}\n\ntype History []*Set\n\nfunc (c *History) Len() int {\n\treturn len(*c)\n}\n\n// Add pushes background/foreground (SGR) onto the stack, together with\n// backgroundSource/foregroundSource — each channel's source form from before\n// ToAnsi's SGR conversion, which a later encoder needs because SGR cannot be\n// inverted back to it reliably (the 256-colour downgrade and base-16 codes\n// are lossy).\n//\n// The dedupe decision below compares only background/foreground (SGR), same\n// as before this field existed: under color.TrueColor == false, two distinct\n// source forms can collapse to the same SGR pair, so the decision must not\n// be made on source forms, or it would diverge from this one.\nfunc (c *History) Add(background, foreground, backgroundSource, foregroundSource Ansi) {\n\tcolors := &Set{\n\t\tForeground: foreground,\n\t\tBackground: background,\n\t\tforegroundSource: foregroundSource,\n\t\tbackgroundSource: backgroundSource,\n\t}\n\n\tif c.Len() == 0 {\n\t\t*c = append(*c, colors)\n\t\treturn\n\t}\n\n\tlast := (*c)[c.Len()-1]\n\t// never add the same colors twice\n\tif last.Foreground == colors.Foreground && last.Background == colors.Background {\n\t\treturn\n\t}\n\n\t*c = append(*c, colors)\n}\n\nfunc (c *History) Pop() {\n\tif c.Len() == 0 {\n\t\treturn\n\t}\n\n\t*c = (*c)[:c.Len()-1]\n}\n\nfunc (c *History) Background() Ansi {\n\tif c.Len() == 0 {\n\t\treturn emptyColor\n\t}\n\n\treturn (*c)[c.Len()-1].Background\n}\n\nfunc (c *History) Foreground() Ansi {\n\tif c.Len() == 0 {\n\t\treturn emptyColor\n\t}\n\n\treturn (*c)[c.Len()-1].Foreground\n}\n\n// BackgroundSource returns the top entry's background source form (see Add);\n// emptyColor when the stack is empty, matching Background.\nfunc (c *History) BackgroundSource() Ansi {\n\tif c.Len() == 0 {","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"4a9e9dcf-89c2-4610-bacf-bd7b1ee09cc4","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e86e23aa-77b4-48ec-9da9-19369cf22fa6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1zMGH3AYNfqy29KTrc","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The `Set` structure stores both the processed SGR color values and the original source form from the theme—whether that's a hex code, a palette reference, a named color, or even a gradient definition. This dual representation is essential because the SVG encoder needs access to the original source data to properly render the colors, not just the converted terminal codes.\n\nYou can't reliably reverse-engineer the source from SGR alone: hex-to-256-color downsampling is lossy, base-16 codes carry no RGB information at all, and special values like `accent` or `transparent` depend on runtime context. By capturing the source form before it gets converted to ANSI, the encoder can work directly from that, making the output independent of terminal capabilities. The memory cost is minimal—just two extra string pointers per `Set`, which accounts for the observed +32 bytes per operation in the benchmarks. The fields don't round-trip through marshalling or the gob cache, so they didn't affect serialization. Each Set push costs 32 bytes — WritePlainASCII adds one, WriteAnchors adds three for 96 total — but allocation counts stay the same since the Set was already being allocated. Making these fields conditional would require threading CaptureRuns through the color package, creating divergence risk between capture-on and capture-off builds, plus Add's deduplication logic would need to stay consistent across both paths.\n\nI considered alternatives like storing source on a parallel stack only when capturing, reconstructing from SGR codes, or pooling the strings, but they all have similar problems or don't actually help. The honest take is that 32 bytes per prompt is measurable in microbenchmarks but invisible against the ~70ms process spawn floor — it's worth flagging but not worth the complexity to optimize.\n\nLet me check the actual struct size of Ansi to be precise about the overhead.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":933,"cache_read_input_tokens":459417,"output_tokens":1800,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":933,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1800,"cache_read_input_tokens":459417,"cache_creation_input_tokens":933,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":933},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1zFN4nPDJyL2UGc7jA","type":"assistant","uuid":"06527d24-33f9-4e14-877b-be5275a479eb","timestamp":"2026-07-28T06:55:58.031Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"06527d24-33f9-4e14-877b-be5275a479eb","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU1zMGH3AYNfqy29KTrc","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01XUVdziEXMoAfT3G9Aj17Uw","name":"Bash","input":{"command":"grep -n \"^type Ansi\" color/*.go && cat > /tmp/sz_test.go <<'EOF'\npackage color\n\nimport (\n\t\"testing\"\n\t\"unsafe\"\n)\n\nfunc TestSizes(t *testing.T) {\n\tt.Logf(\"Ansi=%d Set=%d ptr=%d\", unsafe.Sizeof(Ansi(\"\")), unsafe.Sizeof(Set{}), unsafe.Sizeof(&Set{}))\n}\nEOF\ncp /tmp/sz_test.go color/sz_test.go && go test ./color/ -run TestSizes -v 2>&1 | grep -E \"Ansi=|ok\"; rm color/sz_test.go","description":"Measure the Set struct size"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":933,"cache_read_input_tokens":459417,"output_tokens":1800,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":933,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1800,"cache_read_input_tokens":459417,"cache_creation_input_tokens":933,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":933},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU1zFN4nPDJyL2UGc7jA","type":"assistant","uuid":"54b4b921-fcd5-487a-8ea7-aa128fc6ed72","timestamp":"2026-07-28T06:55:58.904Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"54b4b921-fcd5-487a-8ea7-aa128fc6ed72","isSidechain":false,"promptId":"6237aa99-0782-4d8d-a9bb-3d4904315177","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01XUVdziEXMoAfT3G9Aj17Uw","type":"tool_result","content":"color/colors.go:158:type Ansi string\n sz_test.go:9: Ansi=16 Set=64 ptr=8\nok \tgithub.com/jandedobbeleer/oh-my-posh/src/color\t0.095s","is_error":false}]},"uuid":"8615bbd2-c4f5-4ba5-83c5-27e038cb4ade","timestamp":"2026-07-28T06:56:05.803Z","toolUseResult":{"stdout":"color/colors.go:158:type Ansi string\n sz_test.go:9: Ansi=16 Set=64 ptr=8\nok \tgithub.com/jandedobbeleer/oh-my-posh/src/color\t0.095s","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"54b4b921-fcd5-487a-8ea7-aa128fc6ed72","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8615bbd2-c4f5-4ba5-83c5-27e038cb4ade","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU22tkfUzowtzHUNVyYd","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The memory overhead checks out—each Set allocation adds 32 bytes, and the field additions in WritePlainASCII and WriteAnchors match the observed byte increases perfectly. Now I need to write up the explanation covering what these fields are, why they're necessary for SGR support, and how they fit into the overall design.","signature":"CAIStgYKhwEIEBgCKkCuCHjbJtaO6Gw8JkghGFrxwaFljSsUIwNiblz4mB+ygdURordgczrnA9yhxDD6q1+pAnAXMuAPCHK4Wh8kFlpOMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDJl+/nsH8746+yrjKRoMTHE4SL6IWVz5sBEBIjBIfyFhUkJISFj54pAqdaPPtUkBKQr+R1ufoy2c3lhAxMuNRt/Uibc1r8k+fHpJaVQq2wQbK8hX7lOKo6+60IzZmEevLDE6ze0WZYg7kyR43xaBJAq8z5W0seUCyBFCUvmM8u9ntt6UG70GiyTIcTJgds65Y9fCHatt5V7fckg8XfNoiak8RaoxnbCbC2wFaUz9XmwctjbPjfz4nvj4SSFOAFM4HFL15GDRv2DTPcAcRBQw8QcqRDpO/y0iTjitCdgS60Vrqa6WxOqfy1LEXbyZLQ7Hsnplkl14QIa9Uh8eYoXsPpokUuxlygCMiWFpNldWOXPrtkTy5SEzdplVia+Tm+DShfAB6BasbM4Y1pKA/IUfOloojF4b3Nd2/epJoPk9x9i7VhciEnCBGLIjDak30biU97D+AdmdhhpZUvy/FSNK5njvdd+Zxvq7Ask/2tmKvSbNYZajyas9z0teWGW3JTtdVNvYkdZvZXm5cDMRSho/8NfJjLvrcYjC1NwVRmFKFtxEtPBl/WrYhtwVdM0a3K+HM7BVoaSkgxiI85KaxBA6FZs217uEnYvSxuzN3YTbJmeh12wiWBnuPqSwnDt15pRCKCNG9SJWoqraftCaepymf9OH8wr/UcIzAc6LlT83+LEOGTG+j6ADQp8G9i9xBoSRGRMzh//bAfAHgNJ424au7nz/bcbq2P3dg7yYUNWSHijT2hKXYOhjGNGFFpUxrRPS72F5ODz7l5vKi+9UgGdIB+fQD+ZsqAEPuv26ioamM7N8SUV6on9I8UJ/6ZTBIAJTD0zme4uYKxIeka9xupaJs6+JbqhRKXlU2CT6WlfI/nhNrXRp1PAZiYtxM2Hwi9YHtOW0QQfmZimHYgcYAQ=="}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1867,"cache_read_input_tokens":460350,"output_tokens":1555,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1867,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1555,"cache_read_input_tokens":460350,"cache_creation_input_tokens":1867,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1867},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU22ofKo6h1E5X6UzVUT","type":"assistant","uuid":"91788557-0f22-49cf-b576-06e130e787a7","timestamp":"2026-07-28T06:56:12.107Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"91788557-0f22-49cf-b576-06e130e787a7","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU22tkfUzowtzHUNVyYd","type":"message","role":"assistant","content":[{"type":"text","text":"## What they hold\n\n`color.Set` is one background/foreground pair. It used to hold only the *SGR payload* — the escape-sequence form, `48;2;51;57;91`. The two new fields hold the **source form**: what the theme actually asked for, before conversion. `#33395b`, `p:orange`, `red`, `accent`, `transparent`, a gradient definition.\n\nBoth travel on the same entry, pushed together in [`History.Add`](src/color/colors.go:91).\n\n## Why the SVG encoder needs them\n\nBecause **SGR cannot be inverted back to the source**. Three separate ways it's lossy:\n\n- **256-colour downgrade.** With `color.TrueColor` false, a hex is quantised to a palette index. Many distinct hexes collapse onto the same index — you cannot get back out.\n- **Base-16 codes carry no colour at all.** `cert`'s green segment emits `ESC[32m`. That's \"slot 2 of whatever palette the terminal happens to use\". There is no RGB in there to recover.\n- **Keywords aren't colours.** `accent` resolves against OS state, `transparent` is an instruction rather than a value, `default` depends on context.\n\nThe ANSI writer doesn't care — it hands the escape to the terminal and the terminal resolves it. The SVG encoder has no terminal. It has to produce a literal `fill=\"#33395b\"`, so it needs the thing the theme wrote, captured at the one moment it's still known.\n\nYou saw exactly this failure mode earlier: `cert` wrote `\"foreground\": \"#fff\"`, `hexToRGB` rejected the 3-digit form, and `resolveChannel` fell back to \"keep whatever was active\" — text painted in its own background. That bug lived in the *source* path. Had the encoder been reading SGR instead, the same six themes would have been unfixable rather than merely broken.\n\n## Where the 32 bytes come from\n\nMeasured just now:\n\n```\nAnsi = 16 bytes (a string header) Set = 64 bytes\n```\n\n`Set` was two `Ansi` fields — 32 bytes. It's now four — 64 bytes. `History.Add` allocates one `Set` per push, so every push got 32 bytes heavier. The benchmark numbers are just that times the push count:\n\n| benchmark | delta | pushes |\n|---|---|---|\n| `WritePlainASCII` | +32 B | 1 |\n| `WriteAnchors` | +96 B | 3 |\n\nAllocation *count* is unchanged — the `Set` was always being allocated, it just got bigger. That's why the alloc gates never fired and the cost went unnoticed until Fable measured bytes.\n\n## Why it's paid even with capture off\n\nMaking the fields conditional means threading `terminal.CaptureRuns` down into the colour package. That gives you two colour-resolution paths that must stay behaviourally identical, in a package where they demonstrably don't want to diverge — note that [`Add`'s dedupe](src/color/colors.go:85) deliberately compares *only* SGR, never the source, precisely because under non-truecolor two different sources collapse to the same SGR and deciding on source would change the emitted ANSI. Add a conditional and that subtlety has to hold in both branches, in every build.\n\n## Magnitude, honestly\n\n32 bytes per prompt render, one small heap object slightly larger. Against a shell that spends ~70 ms just spawning the process, it is invisible. It's real, it's measurable in a microbenchmark, and it is not something a user could perceive.\n\nI flagged it because it was an undocumented regression this branch introduced and nobody had put a number on it — not because I think it needs fixing. If you ever did want it gone, the only design that avoids the divergence risk is moving source tracking out of `Set` entirely and onto the run-capture side, which means `runState` reconstructing the override stack itself. That's more machinery than 32 bytes justifies."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1867,"cache_read_input_tokens":460350,"output_tokens":1555,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1867,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1555,"cache_read_input_tokens":460350,"cache_creation_input_tokens":1867,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1867},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU22ofKo6h1E5X6UzVUT","type":"assistant","uuid":"cc2c411a-ded9-4e73-b0ef-5769cc42764d","timestamp":"2026-07-28T06:56:30.773Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cc2c411a-ded9-4e73-b0ef-5769cc42764d","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":3483},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T06:56:36.223Z","uuid":"d863f852-992d-4411-91f4-4db1c93f7374","toolUseID":"f662946c-e10a-41a3-9fda-7719c83915fb","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d863f852-992d-4411-91f4-4db1c93f7374","isSidechain":false,"promptId":"c2b01275-5eed-483f-ad29-622b688c75eb","type":"user","message":{"role":"user","content":"What is the next thing in the plan?"},"uuid":"572675aa-4291-4ec6-a403-69d04b0d41cd","timestamp":"2026-07-28T07:13:09.443Z","permissionMode":"auto","origin":{"kind":"human"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"572675aa-4291-4ec6-a403-69d04b0d41cd","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"90a1ec9c-3076-44ab-a408-0a7621f4332f","timestamp":"2026-07-28T07:13:09.443Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"90a1ec9c-3076-44ab-a408-0a7621f4332f","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-ac965ba9-3e86-43e0-a197-9c9ba76f079e","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"2a6b0bf3-4351-4947-8650-2186965cb0e1","timestamp":"2026-07-28T07:13:09.671Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2a6b0bf3-4351-4947-8650-2186965cb0e1","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3LPJV4k2YUqNFB4s5Z","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm checking back on the website redesign plan to see where we stand. The direction document outlines using Direction A visuals with a faceted segment catalog and studio setup, replacing the CLI/image approach with an SVG encoder that pulls from an extracted run stream. Meanwhile, the template-data branch has the replay and config export features ready, though the website pipeline migration still needs to be completed. Let me pull up the redesign direction file to make sure I have the current details right, and I should also check what branch we're currently on.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":215,"cache_read_input_tokens":463772,"output_tokens":832,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":215,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":832,"cache_read_input_tokens":463772,"cache_creation_input_tokens":215,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":215},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3LJuZrnA57XCox1N7u","type":"assistant","uuid":"ceb0c4b7-a2a9-4679-9460-583ceb91fed2","timestamp":"2026-07-28T07:13:22.380Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ceb0c4b7-a2a9-4679-9460-583ceb91fed2","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3LPJV4k2YUqNFB4s5Z","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01ULCCCSg4ASVFeggQznZ5ss","name":"Bash","input":{"command":"git rev-parse --abbrev-ref HEAD && git log --oneline origin/main..HEAD | wc -l && echo \"=== recent ===\" && git log --oneline -12","description":"Check branch and commit count"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":215,"cache_read_input_tokens":463772,"output_tokens":832,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":215,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":832,"cache_read_input_tokens":463772,"cache_creation_input_tokens":215,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":215},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3LJuZrnA57XCox1N7u","type":"assistant","uuid":"40e4e3be-b6ba-402a-92b7-121ac4058c2e","timestamp":"2026-07-28T07:13:22.947Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"40e4e3be-b6ba-402a-92b7-121ac4058c2e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3LPJV4k2YUqNFB4s5Z","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Jop7Sdd1x31jVSRk5ebsLx","name":"Read","input":{"file_path":"C:\\Users\\jande\\.claude\\projects\\D--oh-my-posh\\memory\\website-redesign-direction.md"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":215,"cache_read_input_tokens":463772,"output_tokens":832,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":215,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":832,"cache_read_input_tokens":463772,"cache_creation_input_tokens":215,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":215},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3LJuZrnA57XCox1N7u","type":"assistant","uuid":"7ac88686-cb0d-4376-93f5-0aaff5bdb72d","timestamp":"2026-07-28T07:13:23.563Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7ac88686-cb0d-4376-93f5-0aaff5bdb72d","isSidechain":false,"promptId":"c2b01275-5eed-483f-ad29-622b688c75eb","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Jop7Sdd1x31jVSRk5ebsLx","type":"tool_result","content":"1\t---\n2\tname: website-redesign-direction\n3\tdescription: \"Chosen ohmyposh.dev redesign direction — Direction A visuals, faceted segment catalog, studio; SVG encoder replaces the PNG imager\"\n4\tmetadata: \n5\t node_type: memory\n6\t type: project\n7\t originSessionId: 6c0a282a-886f-458d-a426-93d95104b4a6\n8\t modified: 2026-07-26T15:50:19.240Z\n9\t---\n10\t\n11\tOn 2026-07-26 Jan picked the ohmyposh.dev redesign direction after a competitor sweep of\n12\t12 dev-tool sites: **Direction A's visual language** (light-first, calibrated blue\n13\t`#1f6fd0`, Docusaurus bones kept — \"a lot cleaner\"), combined with **Direction B's\n14\tfaceted segment catalog** and **the studio direction**. Directions B (dark-first,\n15\tpowerline-chevron geometry) and C (dark studio) were rejected as whole visual systems;\n16\tonly their structural ideas carry over.\n17\t\n18\tCompanion architecture decision, same session: the theme/segment previews stop being\n19\tPNGs. `cli/image/image.go` (920 lines, plus `gg` / `stackblur` / `x/image` / `freetype`\n20\tand a runtime Hack.zip download) gets replaced by an **SVG encoder** sitting behind an\n21\textracted run stream in the `terminal` package — sibling to the ANSI encoder, not a\n22\tconsumer of its output. No JSON encoder: SVG carries `data-segment` / `data-block`\n23\tattributes, so it already is the structured format. Net ≈ −1,500 lines, so it ships in\n24\tthe normal binary rather than behind a build tag.\n25\t\n26\tAgreed staging: golden-file harness over all 124 bundled themes → extract run stream\n27\t(ANSI byte-identical, benchstat clean) → SVG encoder → Function renders config to SVG\n28\twith a pinned data file → delete `cli/image/` → `?format=png` via resvg for GitHub\n29\tREADMEs → WASM only if studio latency demands it.\n30\t\n31\t**Why:** the redesign and the renderer work are the same project — the gallery, the\n32\tsegment catalog and the studio all consume one renderer, so the visual direction and the\n33\tencoder decision constrain each other.\n34\t\n35\tShipped as of 2026-07-26: Phase 0 (IA and CSS repairs), Phase 1 (homepage rebuilt around\n36\tthe install command, accent recalibrated, nav retargeted), Phase 2a (the `/segments`\n37\tfaceted catalog, plus the hero rhythm and card fixes Jan asked for after seeing Phase 1\n38\tlive). Still open, in order: the renderer, the themes gallery, the docs restructure\n39\t(IA-2 in full), the studio, and `?format=png`.\n40\t\n41\t**How to apply:** when website or imager work resumes, treat Direction A as settled and\n42\tdo not re-pitch dark-first. Direction A's hero is **left-aligned with a 1.1rem gap** —\n43\tcentring it and widening the gap is exactly the drift Jan flagged, so check any hero\n44\tchange against that. See [[project-knowledge-skill]] for accumulated website gotchas.\n45\t\n46\tRelated: [[template-data-feature]] — `--data` replay is what makes the engine hermetic\n47\tenough to run in a Function or in WASM.\n48\t"}]},"uuid":"369e69d3-1e8c-4477-b1b1-e2fe133ed76e","timestamp":"2026-07-28T07:13:23.592Z","toolUseResult":{"type":"text","file":{"filePath":"C:\\Users\\jande\\.claude\\projects\\D--oh-my-posh\\memory\\website-redesign-direction.md","content":"---\nname: website-redesign-direction\ndescription: \"Chosen ohmyposh.dev redesign direction — Direction A visuals, faceted segment catalog, studio; SVG encoder replaces the PNG imager\"\nmetadata: \n node_type: memory\n type: project\n originSessionId: 6c0a282a-886f-458d-a426-93d95104b4a6\n modified: 2026-07-26T15:50:19.240Z\n---\n\nOn 2026-07-26 Jan picked the ohmyposh.dev redesign direction after a competitor sweep of\n12 dev-tool sites: **Direction A's visual language** (light-first, calibrated blue\n`#1f6fd0`, Docusaurus bones kept — \"a lot cleaner\"), combined with **Direction B's\nfaceted segment catalog** and **the studio direction**. Directions B (dark-first,\npowerline-chevron geometry) and C (dark studio) were rejected as whole visual systems;\nonly their structural ideas carry over.\n\nCompanion architecture decision, same session: the theme/segment previews stop being\nPNGs. `cli/image/image.go` (920 lines, plus `gg` / `stackblur` / `x/image` / `freetype`\nand a runtime Hack.zip download) gets replaced by an **SVG encoder** sitting behind an\nextracted run stream in the `terminal` package — sibling to the ANSI encoder, not a\nconsumer of its output. No JSON encoder: SVG carries `data-segment` / `data-block`\nattributes, so it already is the structured format. Net ≈ −1,500 lines, so it ships in\nthe normal binary rather than behind a build tag.\n\nAgreed staging: golden-file harness over all 124 bundled themes → extract run stream\n(ANSI byte-identical, benchstat clean) → SVG encoder → Function renders config to SVG\nwith a pinned data file → delete `cli/image/` → `?format=png` via resvg for GitHub\nREADMEs → WASM only if studio latency demands it.\n\n**Why:** the redesign and the renderer work are the same project — the gallery, the\nsegment catalog and the studio all consume one renderer, so the visual direction and the\nencoder decision constrain each other.\n\nShipped as of 2026-07-26: Phase 0 (IA and CSS repairs), Phase 1 (homepage rebuilt around\nthe install command, accent recalibrated, nav retargeted), Phase 2a (the `/segments`\nfaceted catalog, plus the hero rhythm and card fixes Jan asked for after seeing Phase 1\nlive). Still open, in order: the renderer, the themes gallery, the docs restructure\n(IA-2 in full), the studio, and `?format=png`.\n\n**How to apply:** when website or imager work resumes, treat Direction A as settled and\ndo not re-pitch dark-first. Direction A's hero is **left-aligned with a 1.1rem gap** —\ncentring it and widening the gap is exactly the drift Jan flagged, so check any hero\nchange against that. See [[project-knowledge-skill]] for accumulated website gotchas.\n\nRelated: [[template-data-feature]] — `--data` replay is what makes the engine hermetic\nenough to run in a Function or in WASM.\n","numLines":48,"startLine":1,"totalLines":48}},"sourceToolAssistantUUID":"7ac88686-cb0d-4376-93f5-0aaff5bdb72d","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"40e4e3be-b6ba-402a-92b7-121ac4058c2e","isSidechain":false,"promptId":"c2b01275-5eed-483f-ad29-622b688c75eb","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01ULCCCSg4ASVFeggQznZ5ss","type":"tool_result","content":"themes-svg\n47\n=== recent ===\na1d05bc6 refactor(website): stop hand-maintaining what the build can compute\n76a60f9e fix(tools): download the harness font before reading it\n4a9dbc7b refactor(cli): render an exported config through one path\n759a2148 refactor(svg): drop what the encoder was carrying for nothing\nabac664a perf(terminal): only resolve what a gradient actually needs\n5f07f653 fix(cli): keep the whole name when deriving an export path\n0f8c8a82 fix(svg): end a segment background where its separator does\n97a21e85 fix(website): serve the Mono patched Victor Mono\n86de20dd fix(svg): resolve the short hex colours a theme can write\na3bbad83 fix(svg): put the cursor where the shell leaves it\n4191d288 fix(svg): ask for the Mono Nerd Font variants first\nbc82f924 fix(svg): keep the whitespace a segment template writes","is_error":false}]},"uuid":"2b712296-7087-4ac5-955a-74272dabd0ee","timestamp":"2026-07-28T07:13:24.030Z","toolUseResult":{"stdout":"themes-svg\n47\n=== recent ===\na1d05bc6 refactor(website): stop hand-maintaining what the build can compute\n76a60f9e fix(tools): download the harness font before reading it\n4a9dbc7b refactor(cli): render an exported config through one path\n759a2148 refactor(svg): drop what the encoder was carrying for nothing\nabac664a perf(terminal): only resolve what a gradient actually needs\n5f07f653 fix(cli): keep the whole name when deriving an export path\n0f8c8a82 fix(svg): end a segment background where its separator does\n97a21e85 fix(website): serve the Mono patched Victor Mono\n86de20dd fix(svg): resolve the short hex colours a theme can write\na3bbad83 fix(svg): put the cursor where the shell leaves it\n4191d288 fix(svg): ask for the Mono Nerd Font variants first\nbc82f924 fix(svg): keep the whitespace a segment template writes","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"40e4e3be-b6ba-402a-92b7-121ac4058c2e","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2b712296-7087-4ac5-955a-74272dabd0ee","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3MPmnhb1FiH3qwzSCt","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Looking at what's left to tackle: the docs restructure using the full IA-2 approach, followed by the studio work, and finally the `?format=png` parameter. The renderer and themes gallery are already complete, so I'm moving forward with the documentation reorganization next.\n\nI should also check on a few loose ends — the cert theme has some missing glyphs causing display issues in the gallery, there are two stashes I flagged, and the `themes-svg` branch is 47 commits ahead of main without being pushed or PR'd yet. Let me verify the remote state and whether there's an open pull request, since that's a significant amount of unmerged work.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1208,"cache_creation_input_tokens":1175,"cache_read_input_tokens":463987,"output_tokens":711,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1175,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1208,"output_tokens":711,"cache_read_input_tokens":463987,"cache_creation_input_tokens":1175,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1175},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3MLGCcsxMbEgtEMCt9","type":"assistant","uuid":"197bfd56-55c4-4fb2-884b-a5aa093b04f1","timestamp":"2026-07-28T07:13:34.905Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"197bfd56-55c4-4fb2-884b-a5aa093b04f1","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3MPmnhb1FiH3qwzSCt","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01FWtzPkb5pfeVmsbsdAvhy9","name":"Bash","input":{"command":"git log --oneline origin/main..HEAD --format=\"%s\" | sed 's/(.*//' | sort | uniq -c | sort -rn && echo \"=== remote tracking ===\" && git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>&1 | head -1","description":"Summarize branch content and remote state"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1208,"cache_creation_input_tokens":1175,"cache_read_input_tokens":463987,"output_tokens":711,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1175,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1208,"output_tokens":711,"cache_read_input_tokens":463987,"cache_creation_input_tokens":1175,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1175},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3MLGCcsxMbEgtEMCt9","type":"assistant","uuid":"a29b73c3-9817-4ad7-be49-5e014804ad43","timestamp":"2026-07-28T07:13:35.348Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a29b73c3-9817-4ad7-be49-5e014804ad43","isSidechain":false,"promptId":"c2b01275-5eed-483f-ad29-622b688c75eb","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01FWtzPkb5pfeVmsbsdAvhy9","type":"tool_result","content":" 21 fix\n 11 feat\n 7 refactor\n 3 test\n 2 docs\n 1 refactor: strip restating comments across the codebase\n 1 perf\n 1 docs: state the segment count consistently\n=== remote tracking ===\norigin/next","is_error":false}]},"uuid":"462fac1a-9a4c-4102-b5e0-10ea1d1fcf07","timestamp":"2026-07-28T07:13:36.484Z","toolUseResult":{"stdout":" 21 fix\n 11 feat\n 7 refactor\n 3 test\n 2 docs\n 1 refactor: strip restating comments across the codebase\n 1 perf\n 1 docs: state the segment count consistently\n=== remote tracking ===\norigin/next","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"a29b73c3-9817-4ad7-be49-5e014804ad43","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"462fac1a-9a4c-4102-b5e0-10ea1d1fcf07","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3NKnCszTimdZ1NCeCv","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The local branch `themes-svg` is tracking `origin/next` as its upstream, which suggests it might have been renamed locally. I've got 47 commits that haven't been pushed to a matching branch, so I need to check whether `origin/next` exists and how far behind the local branch is.\n\nRather than getting lost in the git details, the more practical question is what's actually on the roadmap. Let me quickly verify the ahead/behind status, then I can give a proper answer about what's next.","signature":"CAIS8wYKhwEIEBgCKkAz82UmsrZbkJi0zjhMsodBJlHCfSIWhBUa2SNG8tuLwn9Pi0EVpeU4lWaR4nF9kaNAkSSShOqb7R8StSkyusUAMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDMugD/gHleZXK9Q7XRoMUMKhXmlcKQE4SjQmIjAFjnOsdPsFIN0wugBuxjAkO4SpfdOmB1HZB8P0QmurR4BLffIxltwYomxFOr6KNkYqmAUlgiEXCv2TmO7YrwYd9GyyIZSumHNeOgCPVXAo/1PpztNMT0aFPz1YtSX4ACJczI/4Xn5lMEZ/2K3H0Dqsoc/6BibhkKSEG3zV2F6jQVFqiPIcZXimHacdwCPUzT9e4TWHqZ7+iNPHpmN4pHVl3wXPNmW6JRksvRMuhT7jkW79sbq5iNchSx5/fpvtX/hHNbdDDkgIlBUSdu22DLcRYIdzM5IfbUkABd0plyPf/wqYUMeZECxvbOMNNN8yV3DxaVJcoqO5R4AJexN6Qwvu5u0qn1RVewVfvIkHWuSnksV4niEI+EQ3g1Kov2x3Xz3QrPJ2sRPp0HbDzi1IgXDAyBOBisJaVze7dG9zyjhazHztbn9r8sbvva0hfDc2JS7MScqMIXjIUrCLmZlcvB33GcqYHwI5rBsN4wmAlsNHa5+zf7BR+2ENxgayCai5gr2FMWjeBV6uMqQm66ikYHTsyHi9QzatUCv9R2AMUSC2cWtJxocgAw+0R3VqjMpxvt99idfaT5VKy+oavpAwSFXyzZxC2XxCVmwkIQ6t39lMtCMdx2z8DMy8yMKArGaNaIHThQqwEZ8522DC4RR8E/+OOA/ffTKRj9WQwRSSV5dgKDh3jQHBe361XnM/5l8tAa12oJ7j5Lw6wyQK8RgXDzbqgaM5gUww4l0SA0nAJnIac36Y1j53/QHH0XhCvffK6AjDroRaYhalygKuMMwKNcvP5bpnQ7McCfZNSZHsvrecO5HyJYkgZS8b17uCcLKyTmszk5LmqyPRKshIVElq0pY5sKmEE48L3nR4ILAcYHT1zaYrzliXQfpyi94Rx0tPsG7TrxA1OsinLMdge7wG0VmZqnic/A4HGJfcTNoTOURmsYLGAMK5x7nVRMmUGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1993,"cache_read_input_tokens":465162,"output_tokens":391,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1993,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":391,"cache_read_input_tokens":465162,"cache_creation_input_tokens":1993,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1993},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3NEumGRSpKepa5Bu4a","type":"assistant","uuid":"47099143-05ad-498f-bcef-65f9ab98419c","timestamp":"2026-07-28T07:13:44.586Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"47099143-05ad-498f-bcef-65f9ab98419c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3NKnCszTimdZ1NCeCv","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01RMRBcTWc6FAArfoH8dU76Y","name":"Bash","input":{"command":"git rev-list --left-right --count origin/next...HEAD 2>&1 | awk '{print \"origin/next is ahead by \"$1\", local ahead by \"$2}'; git branch -r | head -5","description":"Check sync with upstream"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1993,"cache_read_input_tokens":465162,"output_tokens":391,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1993,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":391,"cache_read_input_tokens":465162,"cache_creation_input_tokens":1993,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1993},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3NEumGRSpKepa5Bu4a","type":"assistant","uuid":"71de521b-5388-4d74-ac42-59b71ba16780","timestamp":"2026-07-28T07:13:44.859Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"71de521b-5388-4d74-ac42-59b71ba16780","isSidechain":false,"promptId":"c2b01275-5eed-483f-ad29-622b688c75eb","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01RMRBcTWc6FAArfoH8dU76Y","type":"tool_result","content":"origin/next is ahead by 5, local ahead by 47\n jam/HEAD -> jam/main\n jam/assets/pr-7672\n jam/main\n jam/sapling-pr-archive-JamBalaya56562\n origin/HEAD -> origin/main","is_error":false}]},"uuid":"f46ce9d2-1f21-45c4-9a83-caf4545511cd","timestamp":"2026-07-28T07:13:47.721Z","toolUseResult":{"stdout":"origin/next is ahead by 5, local ahead by 47\n jam/HEAD -> jam/main\n jam/assets/pr-7672\n jam/main\n jam/sapling-pr-archive-JamBalaya56562\n origin/HEAD -> origin/main","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"71de521b-5388-4d74-ac42-59b71ba16780","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f46ce9d2-1f21-45c4-9a83-caf4545511cd","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3PAiXUBu5F2wjWX6Wy","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The local branch has diverged from origin/next by 47 commits ahead versus 5 commits behind, which means there are unpulled changes that'll need to be resolved before merging. Looking at what's been shipped so far—Phase 0, Phase 1, Phase 2a with the catalog, the renderer, and themes gallery—the remaining priorities are the docs restructure, the studio, and the PNG format feature, plus some lingering loose ends.\n\nThere are a few things to address: the cert's missing glyphs showing as tofu in the gallery, those 5 commits on origin/next that need pulling, two stashed changes, and the studio's unresolved design question around the PNG endpoint. The branch drift is the immediate concern—syncing with origin/next first would reduce the risk of accumulated conflicts before tackling the next phase of work.","signature":"CAISzw0KhwEIEBgCKkAeDAuTTUxApwR4Xuh8lNWq384moeDP+c6JWpeca39iyovngbzvvwecSDjw46Ytb4zHQiOGxd/OIpJeH6ndV6rqMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDFcsjH0VFGb9XDne1hoMqcYm8N5G9F+X3aWAIjAMGDWyuieFkAGgmUP1dxP1lXA10T2ovOjuZRhw9ahs6E/IBMuzET1kY2kCZu9ifVMq9Av6+ThoiYqPmXYuv83YEmLW2FUrFLQ6jqHYPc19xdbiTv3a/+C4NHzEKl9ZZ6sMnxm0I8WNQmXMATFBtRXce1wSNCqFSBUYMyLiWjiIjhLmjY1g73eQPshGHGk/uJyiEMDn79uOv4nk2akJ6GoRgNoScsAlGqYy0jejJZVEGRLOdl/eyXE82vZlZ/frMop0nbgkxx96HuR/lj38e6GKwU1R7FQmfUrzTKw6Mvz1WPWSfVeCGrCVRDSVfgFXtjxeelWqTRMD6mHwVQkLx0jTrl8hti7H/KmnE7qtHAtLvtQ3351z5R5+qE96FtmRC6Pn6SarKF+36CT0CXtTsP1qLY3ElgWSHqWW7OmjfKxdGTwXFL5jjFnjngeHr8axng1HH1nxUftrRrPaQJDQpXfdUcLFtmGV62ooUfaPc/5V6CNFcU7kye+nKQNuu1YRbspCmKvTSlCadQ8cqwGcVC+UamQ+OtOwi5BlHwKai3Flb1gCaAZI+dmLladiwzDc4vRQOAINxounnKTNPOooED6kwdRWdhCagi6WC4uZ/AbDpqiWs0yoVWDTkE5fLWSY8FPUM6ARz8+hZpKEqmOWRkcH7LUP7uw8QmtO6Y0MhgJxTtGxFag50MRpJS+lWTLbd3Q2bUaYW6zEsXFOXxING+6LuF6L00ZWGEAu9IV13pcqkTeHU8XMxYXES+IMEVmgMAOi49wTQGVB+LTIaHfFWaSo6+nf1kNZV8Lid61erCZsyOXldo+1Ykw5rd7g8ctU41uiG9i5W2nLcoQz4dEC+07NZe/bb3d/r2wzzmPF00Lm3E1q420rqDRh71pokjZDo/Rr9EkueI9uTdWLWd2TR7t0Gzb7L7xfzQI/ZNjM9E0t1+6/+vuOPi4ArfjG/z8q++VLTOjvuiIOYETeqJKMRk/GfhIxA+OPdhTFHPiauIRUU/e6cUZl+L14jn+WVeirBnY2JQPjBxs68OhdOvxNHEJknC/HikAprcLLz+8Uj/bEE/XJPBecwZVsEtoRWM9OLoCEePkXOIN1/UXx2njK4EvrFe75aBdNF1ULeAq/gnu+dFQUH5RAcl5yJHWacCJbLTspqFMioJmROrX/gJg7y0eHyJ9b15yvjDUC8muKZ/kc4SKErQbtGjtT4MOPNIFKH29dwuFJkx4cvtUBmt6JfrMVdVGznRBSQL7mvkvBXl2x2iiDv1aTEGYAyYxOVXvSAhbkdu/NPC2g+N6pYoAFJ27QmlqwMJDNUjhk36x355QKU2FtWp7Oinj8PZvnpmyJXIqQ68fXNLELmKU1bSYlDbZ7d99fAkEfOYyPs0R62iTOJdof8jOwnvqtODQhtciydRpNlbfyx++iKxyrN/QKZiVNGvL+/O7bv8tyfRObOO8idOpkes85lE7Xw+NTOGpLNffG2YyWlwLkltxsS9oi5Snru/Mta6ks/WHmB9wsjQjcAmJEGs1v9n0F3C3bNgfZGRQCTBCF+kToDMaTYuqzTEx7zxT5CY11uiWh+sUcAF3Qt5EwE7UqsRmlAAvgHIOSRCXJOsRQ9ruMgfhEbHNq+1jG2cvnG2htd48P3mfm1cvG2cGohskUOfh/6qsj5IBy5OJArbXDAjWmhxK94plM6H2jnUBaOepRRwQw41lZsDr4ELY16/x0l0h/H6wcRYRZwY4uD6BBRoakuxesy7hhTYvHf581tQejnCO/xRCLfWT1AtdE8f7eRtdFfbDnoWp9Nb4Sp5zWep07v2+SiAHHzihzCNzCn4diXls07cCr98p0zCKzVr3NWisRgboMP4fUIaDiIGZyp5UHWIRb3iehCPkW65hOUlYsr+mCh4ppWxBl9V8M6PMiVOhKCU4jLj/HPSWKQzCHvMiIjqDpeKC+19G5g63hBgK60Ylwto/MKZa/kCyA11QIojTEhZKSmJ/I4fs1v2jr7Ow5+kKdoZiIQhDFtQquO1hpVJcipG5WCQySze9l+X5KUumbLrcmba6jKWL8OhFFGAsF+vic676Zw7oyEFLM20PGO4jhyHO7zCM3ZhXKATp68AQYAQ=="}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":487,"cache_read_input_tokens":467155,"output_tokens":1317,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":487,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1317,"cache_read_input_tokens":467155,"cache_creation_input_tokens":487,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":487},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3P5cwfuh8y1Dt2SyPj","type":"assistant","uuid":"ef7cab10-a0ab-4725-8485-9e3401ae66d4","timestamp":"2026-07-28T07:14:00.344Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ef7cab10-a0ab-4725-8485-9e3401ae66d4","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3PAiXUBu5F2wjWX6Wy","type":"message","role":"assistant","content":[{"type":"text","text":"Per the agreed staging, three things remain in order:\n\n**1. Docs restructure (IA-2 in full)** — the last unstarted piece of the website redesign proper. Phases 0, 1 and 2a shipped, and the renderer and themes gallery are now done as of this branch.\n\n**2. The studio** — the thing the whole renderer rebuild was for. There's an open design question you never settled: back when you asked about putting PNG behind an API endpoint, I analysed it but the pivot to fixing SVG defects came first. The constraints from that analysis still stand, and the sharpest one is security — `src/segments/http.go` and the `owm`/`nba`/`ipify`/`todoist`/`wakatime` segments all take arbitrary URLs from config, so any render endpoint has to be data-replay only with live segment resolution disabled at the entrypoint, not behind a config option.\n\n**3. `?format=png` via resvg** — for GitHub READMEs, which can't render inline SVG.\n\n## Two things I'd handle before any of that\n\n**The branch has diverged.** Local is 47 commits ahead, and `origin/next` has 5 commits you don't have. That's a lot of unmerged work to keep accumulating drift against — worth syncing now rather than at the end.\n\n**`cert` renders tofu in the gallery.** I flagged this earlier and it's still open: Victor Mono has no `U+E0C6`/`U+E0C7`, so the theme's separators show as speckled boxes. Small, but it's visible on a page this work exists to make look good.\n\n## What I'd do\n\nSync with `origin/next` first, then take the studio rather than the docs restructure. The docs work is self-contained and can happen any time; the studio is where the open design decision is, and deciding it late risks constraining the renderer in ways that are cheaper to accommodate now — for example whether the endpoint returns SVG directly or rasterizes, which determines whether `?format=png` is a separate feature or falls out of the same code path.\n\nAlso still parked, from the compact instruction you gave and then superseded: nothing was ever moved to a separate branch or forked fresh from `main` — you redirected to fixing the SVG rendering instead, so all of it is on this one branch. Worth confirming that's still what you want before it grows past 47 commits."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":487,"cache_read_input_tokens":467155,"output_tokens":1317,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":487,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1317,"cache_read_input_tokens":467155,"cache_creation_input_tokens":487,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":487},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3P5cwfuh8y1Dt2SyPj","type":"assistant","uuid":"dbfb4119-13ba-4116-a752-0db7a4a65b0b","timestamp":"2026-07-28T07:14:09.966Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dbfb4119-13ba-4116-a752-0db7a4a65b0b","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":3523},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T07:14:15.383Z","uuid":"dc359481-a973-4d0e-9444-084ef46c3010","toolUseID":"8634a3dc-bf9b-4d8f-9748-59516eb8ef61","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dc359481-a973-4d0e-9444-084ef46c3010","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":"I started the rebase, and there is a conflict. Can you fix the conflicts and continue the rebase for me?"},"uuid":"52278bca-154e-45fe-ad14-71f53509bd3e","timestamp":"2026-07-28T07:18:18.060Z","permissionMode":"auto","origin":{"kind":"human"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"52278bca-154e-45fe-ad14-71f53509bd3e","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"D:\\oh-my-posh\\src\\prompt\\primary.go","snippet":"1\tpackage prompt\n2\t\n3\timport (\n4\t\t\"fmt\"\n5\t\t\"strings\"\n6\t\n7\t\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n8\t\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n9\t\t\"github.com/jandedobbeleer/oh-my-posh/src/shell\"\n10\t\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n11\t)\n12\t\n13\tfunc (e *Engine) Primary() string {\n14\t\treturn e.primaryInternal(false)\n15\t}\n16\t\n17\tfunc (e *Engine) primaryInternal(fromCache bool) string {\n18\t\tneedsPrimaryRightPrompt := e.needsPrimaryRightPrompt()\n19\t\n20\t\te.writePrimaryPromptInternal(needsPrimaryRightPrompt, fromCache)\n21\t\n22\t\tswitch e.Env.Shell() {\n23\t\tcase shell.ZSH:\n24\t\t\tif !e.Env.Flags().Eval {\n25\t\t\t\tbreak\n26\t\t\t}\n27\t\n28\t\t\t// Warp doesn't support RPROMPT so we need to write it manually\n29\t\t\tif e.isWarp() {\n30\t\t\t\te.writePrimaryRightPrompt()\n31\t\t\t\tprompt := fmt.Sprintf(\"PS1=%s\", shell.QuotePosixStr(e.string()))\n32\t\t\t\treturn prompt\n33\t\t\t}\n34\t\n35\t\t\tprompt := fmt.Sprintf(\"PS1=%s\", shell.QuotePosixStr(e.string()))\n36\t\t\tprompt += fmt.Sprintf(\"\\nRPROMPT=%s\", shell.QuotePosixStr(e.rprompt))\n37\t\n38\t\t\treturn prompt\n39\t\tdefault:\n40\t\t\tif !needsPrimaryRightPrompt {\n41\t\t\t\tbreak\n42\t\t\t}\n43\t\n44\t\t\te.writePrimaryRightPrompt()\n45\t\t}\n46\t\n47\t\treturn e.string()\n48\t}\n49\t\n50\tfunc (e *Engine) writePrimaryPrompt(needsPrimaryRPrompt bool) {\n51\t\te.writePrimaryPromptInternal(needsPrimaryRPrompt, false)\n52\t}\n53\t\n54\tfunc (e *Engine) writePrimaryPromptInternal(needsPrimaryRPrompt, fromCache bool) {\n55\t\tif e.Config.ShellIntegration {\n56\t\t\texitCode, _ := e.Env.StatusCodes()\n57\t\t\te.write(terminal.CommandFinished(exitCode, e.Env.Flags().NoExitCode))\n58\t\t\te.write(terminal.PromptStart())\n59\t\t}\n60\t\n61\t\t// cache a pointer to the color cycle\n62\t\tcycle = &e.Config.Cycle\n63\t\tvar cancelNewline, didRender bool\n64\t\n65\t\t// Choose block source based on whether we're rendering from cache\n66\t\tblocks := e.Config.Blocks\n67\t\tif fromCache {\n68\t\t\tblocks = e.allBlocks\n69\t\t}\n70\t\n71\t\t// Launch execution for every segment of every block up front so they all\n72\t\t// run concurrently; blocks are still rendered sequentially afterward, in\n73\t\t// order, so wall-clock latency becomes max(slowest segment) instead of\n74\t\t// sum(slowest segment per block). The cache path re-renders segment data\n75\t\t// that was already executed, so there's nothing to launch there.\n76\t\tvar launched []chan result\n77\t\tif !fromCache {\n78\t\t\tlaunched = make([]chan result, len(blocks))\n79\t\t\tfor i, block := range blocks {\n80\t\t\t\tif block.Type == config.RPrompt && !needsPrimaryRPrompt {\n81\t\t\t\t\tcontinue\n82\t\t\t\t}\n83\t\n84\t\t\t\tlaunched[i] = e.launchBlockSegments(block)\n85\t\t\t}\n86\t\t}\n87\t\n88\t\t// Drain every block's channel before rendering any block so that executed\n89\t\t// is fully populated up front. This allows cross-block .Segments.X\n90\t\t// dependencies to resolve in both directions — an earlier block can\n91\t\t// reference a segment from a later block and vice versa.\n92\t\texecuted := make(map[string]bool)\n93\t\tallResults := make([][]*config.Segment, len(blocks))\n94\t\n95\t\tif !fromCache {\n96\t\t\tfor i, block := range blocks {\n97\t\t\t\tif launched[i] == nil {\n98\t\t\t\t\tcontinue\n99\t\t\t\t}\n100\t\n101\t\t\t\tallResults[i] = drainBlockResults(launched[i], len(block.Segments), executed)\n102\t\t\t}\n103\t\t}\n104\t\n105\t\tfor i, block := range blocks {\n106\t\t\t// do not print a leading newline when we're at the first row and the prompt is cleared\n107\t\t\tif i == 0 {\n108\t\t\t\tcancelNewline = e.cancelNewline()\n109\t\t\t}\n110\t\n111\t\t\t// skip setting a newline when we didn't print anything yet\n112\t\t\tif i != 0 {\n113\t\t\t\tcancelNewline = !didRender\n114\t\t\t}\n115\t\n116\t\t\tif block.Type == config.RPrompt && !needsPrimaryRPrompt {\n117\t\t\t\tcontinue\n118\t\t\t}\n119\t\n120\t\t\t// Choose render method based on whether we're rendering from cache\n121\t\t\tvar rendered bool\n122\t\t\tif fromCache {\n123\t\t\t\trendered = e.renderBlockFromCache(block, cancelNewline)\n124\t\t\t} else {\n125\t\t\t\trendered = e.renderLaunchedBlock(block, allResults[i], executed, cancelNewline)\n126\t\t\t}\n127\t\n128\t\t\tif rendered {\n129\t\t\t\tdidRender = true\n130\t\t\t}\n131\t\t}\n132\t\n133\t\t// Only handle tooltip caching in regular (non-cached) rendering, once per\n134\t\t// prompt rather than once per block.\n135\t\tif !fromCache && !e.Config.ToolTipsAction.IsDefault() {\n136\t\t\tcache.Set(cache.Session, RPromptKey, e.rprompt, cache.INFINITE)\n137\t\t\tcache.Set(cache.Session, RPromptLengthKey, e.rpromptLength, cache.INFINITE)\n138\t\t}\n139\t\n140\t\tif len(e.Config.ConsoleTitleTemplate) > 0 && !e.Env.Flags().Plain {\n141\t\t\ttitle := e.getTitleTemplateText()\n142\t\t\te.write(terminal.FormatTitle(title))\n143\t\t}\n144\t\n145\t\tif e.Config.FinalSpace {\n146\t\t\te.write(\" \")\n147\t\t\te.currentLineLength++\n148\t\t}\n149\t\n150\t\tif e.Config.ITermFeatures != nil && e.isIterm() {\n151\t\t\thost, _ := e.Env.Host()\n152\t\t\te.write(terminal.RenderItermFeatures(e.Config.ITermFeatures, e.Env.Shell(), e.Env.Pwd(), e.Env.User(), host))\n153\t\t}\n154\t\n155\t\tif e.Config.ShellIntegration {\n156\t\t\te.write(terminal.CommandStart())\n157\t\t}\n158\t\n159\t\te.pwd()\n160\t}\n161\t\n162\tfunc (e *Engine) needsPrimaryRightPrompt() bool {\n163\t\tif e.Env.Flags().Debug {\n164\t\t\treturn true\n165\t\t}\n166\t\n167\t\tswitch e.Env.Shell() {\n168\t\tcase shell.PWSH, shell.GENERIC, shell.ZSH:\n169\t\t\treturn true\n170\t\tdefault:\n171\t\t\treturn false\n172\t\t}\n173\t}\n174\t\n175\tfunc (e *Engine) writePrimaryRightPrompt() {\n176\t\tspace, OK := e.canWriteRightBlock(e.rpromptLength, true)\n177\t\tif !OK {\n178\t\t\treturn\n179\t\t}\n180\t\n181\t\te.write(terminal.SaveCursorPosition())\n182\t\te.write(strings.Repeat(\" \", space))\n183\t\te.write(e.rprompt)\n184\t\te.write(terminal.RestoreCursorPosition())\n185\t}","displayPath":"src\\prompt\\primary.go"},"type":"attachment","uuid":"cfdb155a-42f7-45b6-8777-95ff376f6e58","timestamp":"2026-07-28T07:18:18.060Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cfdb155a-42f7-45b6-8777-95ff376f6e58","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-4d4b811f-02ed-44aa-bcc8-a26b05224fb7","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"bef184da-0e63-4915-8b00-d49226ebcda3","timestamp":"2026-07-28T07:18:18.263Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bef184da-0e63-4915-8b00-d49226ebcda3","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3jEBwdTjmngSzCZ8n8","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I see that my changes to `primary.go` have disappeared during the rebase — specifically `e.startRunCapture()` and `e.markCursorAnchor()` are missing, which suggests the upstream version took precedence or there's an unresolved conflict. Let me check the current git status to understand where the rebase stands.","signature":"CAISqAQKhwEIEBgCKkBzAuiApRKiTdf3q52SUpB2n1AH7Mxs5DwtTSPwkKykftn+466h2UK0Te/wqAHcVUXgCBsAIxRYXPiQgt874WjsMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDEJI6VfuX87pjTUWHBoMIjo7FNZh2MAUDKgPIjA0kKZIwk3Okhd3UUbi1ES9JKfmP8xsi4XPHVP60K54lxh3p/pbj5br8WWFK2hDKSIqzQIw8KBlKwzdpZ0LlLbEP484JiiPyf/NT9jcNnf7qCI0aaOAmRC5W9+Y6VGPW4L2sp62+7ITupB8sH8nk67JLM7jre8z8dAGp7bvcqdSoXviE1suc9ACWB/0Xv6+NyeadqwIfet4auHrVa2Qormmdan+7PzK64ROoPkhPRhJ3RGzDFYPhfiUNSXD/qd1mr55xBZVimYIrhl7eEWu1vgfOxt9wFO1gnherGyARjknOxl/Ve5s9NQ93vLt2AxzXiyM0CXYBImzYdcPqF/TTu/aSyvBon1z6BCyl64psmYBsrRzAX0bGi/GuBKKIPQWGe3Kk6YZpx4/P80lZDYmj1wLxnjsLzSM2Mjnqw8gCuE1fNBFcNtUnZ0j80gvkbYAAz+cqaK+qTOcfY86UwW9HQCTyHDU9zq24/vxHSMvhrh15NMcIKH39La21sALURgf15oYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2754,"cache_read_input_tokens":468959,"output_tokens":294,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2754,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":294,"cache_read_input_tokens":468959,"cache_creation_input_tokens":2754,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2754},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3j5amZG8zGSzmvz2yd","type":"assistant","uuid":"e3ba359f-9200-4d36-aaf4-a2851fc8eb45","timestamp":"2026-07-28T07:18:26.812Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e3ba359f-9200-4d36-aaf4-a2851fc8eb45","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3jEBwdTjmngSzCZ8n8","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_014y4b1HJmpSftB1FdQTPfUr","name":"Bash","input":{"command":"git status | head -30 && echo \"=== rebase dir ===\" && ls .git/rebase-merge 2>/dev/null | head && cat .git/rebase-merge/msgnum 2>/dev/null && cat .git/rebase-merge/end 2>/dev/null","description":"Inspect rebase state"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2754,"cache_read_input_tokens":468959,"output_tokens":294,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2754,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":294,"cache_read_input_tokens":468959,"cache_creation_input_tokens":2754,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2754},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3j5amZG8zGSzmvz2yd","type":"assistant","uuid":"29e4a9d9-8b13-45a6-a2b2-83246999ece7","timestamp":"2026-07-28T07:18:26.882Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"29e4a9d9-8b13-45a6-a2b2-83246999ece7","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_014y4b1HJmpSftB1FdQTPfUr","type":"tool_result","content":"interactive rebase in progress; onto 97967466\nLast commands done (2 commands done):\n pick 2f19f36b # fix(cache): explicitly bump session file mtime on persist\n pick 9bc9e05e # refactor: strip restating comments across the codebase\nNext commands to do (42 remaining commands):\n pick 95ddb6ed # fix(website): land on a hub page and index the segments\n pick 47c3efb0 # fix(website): remove brittle selectors and fail on broken links\n (use \"git rebase --edit-todo\" to view and edit)\nYou are currently rebasing branch 'themes-svg' on '97967466'.\n (fix conflicts and then run \"git rebase --continue\")\n (use \"git rebase --skip\" to skip this patch)\n (use \"git rebase --abort\" to check out the original branch)\n\nChanges to be committed:\n (use \"git restore --staged ...\" to unstage)\n\tmodified: AGENTS.md\n\tmodified: src/cache/cache.go\n\tmodified: src/cache/clear.go\n\tmodified: src/cache/command.go\n\tmodified: src/cache/file_map_windows.go\n\tmodified: src/cache/file_windows.go\n\tmodified: src/cache/store.go\n\tmodified: src/cache/store_test.go\n\tmodified: src/cli/auth/cli.go\n\tmodified: src/cli/auth/copilot.go\n\tmodified: src/cli/cache.go\n\tmodified: src/cli/config.go\n\tmodified: src/cli/config_export.go\n\tmodified: src/cli/config_export_data.go\n\tmodified: src/cli/config_export_data_test.go\n=== rebase dir ===\nauthor-script\ndone\ndrop_redundant_commits\nend\ngit-rebase-todo\ngit-rebase-todo.backup\nhead-name\ninteractive\nmessage\nmsgnum\n2\n44","is_error":false}]},"uuid":"db36b54e-cdf4-415a-ad9c-dc82c6020271","timestamp":"2026-07-28T07:18:28.069Z","toolUseResult":{"stdout":"interactive rebase in progress; onto 97967466\nLast commands done (2 commands done):\n pick 2f19f36b # fix(cache): explicitly bump session file mtime on persist\n pick 9bc9e05e # refactor: strip restating comments across the codebase\nNext commands to do (42 remaining commands):\n pick 95ddb6ed # fix(website): land on a hub page and index the segments\n pick 47c3efb0 # fix(website): remove brittle selectors and fail on broken links\n (use \"git rebase --edit-todo\" to view and edit)\nYou are currently rebasing branch 'themes-svg' on '97967466'.\n (fix conflicts and then run \"git rebase --continue\")\n (use \"git rebase --skip\" to skip this patch)\n (use \"git rebase --abort\" to check out the original branch)\n\nChanges to be committed:\n (use \"git restore --staged ...\" to unstage)\n\tmodified: AGENTS.md\n\tmodified: src/cache/cache.go\n\tmodified: src/cache/clear.go\n\tmodified: src/cache/command.go\n\tmodified: src/cache/file_map_windows.go\n\tmodified: src/cache/file_windows.go\n\tmodified: src/cache/store.go\n\tmodified: src/cache/store_test.go\n\tmodified: src/cli/auth/cli.go\n\tmodified: src/cli/auth/copilot.go\n\tmodified: src/cli/cache.go\n\tmodified: src/cli/config.go\n\tmodified: src/cli/config_export.go\n\tmodified: src/cli/config_export_data.go\n\tmodified: src/cli/config_export_data_test.go\n=== rebase dir ===\nauthor-script\ndone\ndrop_redundant_commits\nend\ngit-rebase-todo\ngit-rebase-todo.backup\nhead-name\ninteractive\nmessage\nmsgnum\n2\n44","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"29e4a9d9-8b13-45a6-a2b2-83246999ece7","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"db36b54e-cdf4-415a-ad9c-dc82c6020271","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3jprmXUdjoHM5rexnX","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm in the middle of a rebase with 44 commits total, currently on commit 2, and I've hit a conflict on the refactor commit. The status output got cut off, so I need to check which files are actually unmerged to understand what's blocking me.","signature":"CAIS0AQKhwEIEBgCKkBysZxvBrZAAfRMyl7s0FXAyC7zYN0ZzBvODUcAdwmiWcM62hJkFgGzI0FExoN+BIBCaTa5lR6dkICM+ZGkViE4Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDFVa8B4B57Q25vOIqBoM8o669r3Nri2sspY5IjD0/b2yi41qe7K9SqwXqDxAlbUZmSnHT7g/y0sRNYJoXSf00lY7AvpzXQXoYMDao8kq9QLAOtgboL57Kabic4fLupEY3TqoMSy0O4CtkprG6VdRwleF/phZwPQWLhV+whXRhTXZGNLLCdkXWR11qJMveXJxSSzEl6E3bPsedCl8LiAdP5D844Yy9d8xBwgYZw68jdEWiHqpzxWuxOcAAt5ZvTAqXkcNLv5n48FfmSDlXdiDJCnBumLoU7pP/4dQ6riUuZoyvBgTlR0qSvFZEQkT9Uq7wcxq25DgFw1+2DnGCk3GrTH1QEBAX36biGYDKWb64augTf6TAj29Iu789BfHFq/HkGAL85yp7tnZHM9jlkJ5mrNvzhy0n5MptrfB4B8qZIQ6FbNm3LJ6SzPo+dRgQU1OTmX6xDsDH3+YzO+wIM+vboGUi3KGz5kQw5hnKbIAv+WtvXjedrFm/QPhXVPT/u8LADRazU5dWiKWoH7J9xS/hgH5Bf24FgT4o/Th2uiXCMhuBQwY09Mz31GHh/XHYvSYaDT2+ghu2PaFwXATc4L3AE+YozSbGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":904,"cache_read_input_tokens":471713,"output_tokens":259,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":904,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":259,"cache_read_input_tokens":471713,"cache_creation_input_tokens":904,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":904},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3jjRqbfE9K1kxzY15r","type":"assistant","uuid":"64231d08-7eb0-41b6-b37e-a47a53610657","timestamp":"2026-07-28T07:18:34.610Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"64231d08-7eb0-41b6-b37e-a47a53610657","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3jprmXUdjoHM5rexnX","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01BgQPrHDn7rHWjAbV3XMSq1","name":"Bash","input":{"command":"git diff --name-only --diff-filter=U && echo \"=== count ===\" && git diff --name-only --diff-filter=U | wc -l","description":"List conflicted files"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":904,"cache_read_input_tokens":471713,"output_tokens":259,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":904,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":259,"cache_read_input_tokens":471713,"cache_creation_input_tokens":904,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":904},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3jjRqbfE9K1kxzY15r","type":"assistant","uuid":"eae20578-ff9d-498c-895c-8e5f7c51593f","timestamp":"2026-07-28T07:18:34.700Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"eae20578-ff9d-498c-895c-8e5f7c51593f","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01BgQPrHDn7rHWjAbV3XMSq1","type":"tool_result","content":"src/color/palette.go\n=== count ===\n1","is_error":false}]},"uuid":"67349993-4c70-431b-bfd5-2242c2684689","timestamp":"2026-07-28T07:18:35.722Z","toolUseResult":{"stdout":"src/color/palette.go\n=== count ===\n1","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"eae20578-ff9d-498c-895c-8e5f7c51593f","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"67349993-4c70-431b-bfd5-2242c2684689","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3kZjToswpA6p3ZJqoC","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01EmFr483AKvzUdZqzh8MCJe","name":"Bash","input":{"command":"grep -n \"<<<<<<<\\|=======\\|>>>>>>>\" src/color/palette.go","description":"Locate conflict markers"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":280,"cache_read_input_tokens":472617,"output_tokens":108,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":280,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":108,"cache_read_input_tokens":472617,"cache_creation_input_tokens":280,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":280},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3kJMF9YMqFSNFR7qkx","type":"assistant","uuid":"eadb5b69-a84a-4aea-b7ff-a1151f800453","timestamp":"2026-07-28T07:18:48.256Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"eadb5b69-a84a-4aea-b7ff-a1151f800453","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01EmFr483AKvzUdZqzh8MCJe","type":"tool_result","content":"100:<<<<<<< HEAD\n120:=======\n122:>>>>>>> 9bc9e05e (refactor: strip restating comments across the codebase)","is_error":false}]},"uuid":"71ddc8ed-e4d0-488f-8fb2-dde41d650860","timestamp":"2026-07-28T07:18:49.105Z","toolUseResult":{"stdout":"100:<<<<<<< HEAD\n120:=======\n122:>>>>>>> 9bc9e05e (refactor: strip restating comments across the codebase)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"eadb5b69-a84a-4aea-b7ff-a1151f800453","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"71ddc8ed-e4d0-488f-8fb2-dde41d650860","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3mPEiDqGgiy4wXe93i","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01KTgRBCEkjarhqpZKT9tZUw","name":"Read","input":{"file_path":"D:\\oh-my-posh\\src\\color\\palette.go","offset":78,"limit":55},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":166,"cache_read_input_tokens":472897,"output_tokens":110,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":166,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":110,"cache_read_input_tokens":472897,"cache_creation_input_tokens":166,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":166},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3mHSx7njjJ4cahVvx1","type":"assistant","uuid":"bd089a3c-7fb6-4bd4-a78a-f9e84b895b4a","timestamp":"2026-07-28T07:18:52.695Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bd089a3c-7fb6-4bd4-a78a-f9e84b895b4a","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01KTgRBCEkjarhqpZKT9tZUw","type":"tool_result","content":"78\tfunc (p *PaletteKeyError) Error() string {\n79\t\tkeys := make([]string, 0, len(p.palette))\n80\t\tfor key := range p.palette {\n81\t\t\tkeys = append(keys, key.String())\n82\t\t}\n83\t\tsort.Strings(keys)\n84\t\tallColors := strings.Join(keys, \",\")\n85\t\terrorStr := fmt.Sprintf(paletteKeyError, p.Key, allColors)\n86\t\treturn errorStr\n87\t}\n88\t\n89\ttype PaletteRecursiveKeyError struct {\n90\t\tKey Ansi\n91\t\tValue Ansi\n92\t\tdepth int\n93\t}\n94\t\n95\tfunc (p *PaletteRecursiveKeyError) Error() string {\n96\t\terrorStr := fmt.Sprintf(paletteRecursiveKeyError, p.Key, p.Value, p.depth)\n97\t\treturn errorStr\n98\t}\n99\t\n100\t<<<<<<< HEAD\n101\t// resolveShade resolves a darken(...)/lighten(...) call's color argument through the\n102\t// palette, so a reference like darken(p:accent, 20) reaches Defaults.ToAnsi with a\n103\t// concrete color. Returns colorString unchanged when it isn't a shade call.\n104\tfunc (p Palette) resolveShade(colorString Ansi) (Ansi, error) {\n105\t\tdir, inner, percent, ok := colorString.ShadeArgs()\n106\t\tif !ok {\n107\t\t\treturn colorString, nil\n108\t\t}\n109\t\n110\t\tresolved, err := p.ResolveColor(inner)\n111\t\tif err != nil {\n112\t\t\treturn \"\", err\n113\t\t}\n114\t\n115\t\treturn withShadeCall(dir, resolved, percent), nil\n116\t}\n117\t\n118\t// MaybeResolveColor wraps resolveColor and silences possible errors, returning\n119\t// Transparent color by default, as a Block does not know how to handle color errors.\n120\t=======\n121\t// Returns emptyColor instead of surfacing errors, since a Block has no way to handle color errors.\n122\t>>>>>>> 9bc9e05e (refactor: strip restating comments across the codebase)\n123\tfunc (p Palette) MaybeResolveColor(colorName Ansi) Ansi {\n124\t\tcolor, err := p.ResolveColor(colorName)\n125\t\tif err != nil {\n126\t\t\treturn \"\"\n127\t\t}\n128\t\n129\t\treturn color\n130\t}\n131\t"}]},"uuid":"26881398-b17e-4910-9426-fdebec3876ef","timestamp":"2026-07-28T07:18:52.709Z","toolUseResult":{"type":"text","file":{"filePath":"D:\\oh-my-posh\\src\\color\\palette.go","content":"func (p *PaletteKeyError) Error() string {\n\tkeys := make([]string, 0, len(p.palette))\n\tfor key := range p.palette {\n\t\tkeys = append(keys, key.String())\n\t}\n\tsort.Strings(keys)\n\tallColors := strings.Join(keys, \",\")\n\terrorStr := fmt.Sprintf(paletteKeyError, p.Key, allColors)\n\treturn errorStr\n}\n\ntype PaletteRecursiveKeyError struct {\n\tKey Ansi\n\tValue Ansi\n\tdepth int\n}\n\nfunc (p *PaletteRecursiveKeyError) Error() string {\n\terrorStr := fmt.Sprintf(paletteRecursiveKeyError, p.Key, p.Value, p.depth)\n\treturn errorStr\n}\n\n<<<<<<< HEAD\n// resolveShade resolves a darken(...)/lighten(...) call's color argument through the\n// palette, so a reference like darken(p:accent, 20) reaches Defaults.ToAnsi with a\n// concrete color. Returns colorString unchanged when it isn't a shade call.\nfunc (p Palette) resolveShade(colorString Ansi) (Ansi, error) {\n\tdir, inner, percent, ok := colorString.ShadeArgs()\n\tif !ok {\n\t\treturn colorString, nil\n\t}\n\n\tresolved, err := p.ResolveColor(inner)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn withShadeCall(dir, resolved, percent), nil\n}\n\n// MaybeResolveColor wraps resolveColor and silences possible errors, returning\n// Transparent color by default, as a Block does not know how to handle color errors.\n=======\n// Returns emptyColor instead of surfacing errors, since a Block has no way to handle color errors.\n>>>>>>> 9bc9e05e (refactor: strip restating comments across the codebase)\nfunc (p Palette) MaybeResolveColor(colorName Ansi) Ansi {\n\tcolor, err := p.ResolveColor(colorName)\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\n\treturn color\n}\n","numLines":54,"startLine":78,"totalLines":131}},"sourceToolAssistantUUID":"bd089a3c-7fb6-4bd4-a78a-f9e84b895b4a","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"26881398-b17e-4910-9426-fdebec3876ef","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3mciKxTuEXpxkQW1Yr","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm looking at a merge conflict during a rebase. The upstream version (HEAD) has a new `resolveShade` function and the original comment on `MaybeResolveColor`, while my branch commit has a different state that I need to reconcile with these changes.\n\nThe resolution is to keep the `resolveShade` function from upstream since my branch predates it, and apply my comment rewrite to `MaybeResolveColor` as intended. The `resolveShade` comment itself is explanatory rather than restating, so it doesn't conflict with my commit's goal of stripping redundant comments.\n\nI need to verify that `emptyColor` matches what the function actually returns (`\"\"`) to ensure my rewritten comment is accurate, then finalize the conflict resolution.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":902,"cache_read_input_tokens":473063,"output_tokens":1113,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":902,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1113,"cache_read_input_tokens":473063,"cache_creation_input_tokens":902,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":902},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3mYs9kcaEyvVsfLEVx","type":"assistant","uuid":"c7055139-d1c5-4459-abd0-ce760509c29f","timestamp":"2026-07-28T07:19:06.364Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c7055139-d1c5-4459-abd0-ce760509c29f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3mciKxTuEXpxkQW1Yr","type":"message","role":"assistant","content":[{"type":"text","text":"Single conflict. Upstream added `resolveShade`; my commit rewrote the comment on `MaybeResolveColor` right below it. Both sides want keeping — verifying the comment is accurate first:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":902,"cache_read_input_tokens":473063,"output_tokens":1113,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":902,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1113,"cache_read_input_tokens":473063,"cache_creation_input_tokens":902,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":902},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3mYs9kcaEyvVsfLEVx","type":"assistant","uuid":"79f14945-4667-4ce7-87b1-b543e66419a0","timestamp":"2026-07-28T07:19:06.449Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"79f14945-4667-4ce7-87b1-b543e66419a0","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3mciKxTuEXpxkQW1Yr","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_019aWK859eFm2W6cSs9BZzaR","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && grep -rn \"emptyColor\\s*=\" color/*.go | head -3 && echo \"=== what the commit did elsewhere ===\" && git show 9bc9e05e --stat | tail -5","description":"Check emptyColor value and commit scope"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":902,"cache_read_input_tokens":473063,"output_tokens":1113,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":902,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1113,"cache_read_input_tokens":473063,"cache_creation_input_tokens":902,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":902},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3mYs9kcaEyvVsfLEVx","type":"assistant","uuid":"a7bb2acc-a34d-4fe4-93c4-d2f1304650b6","timestamp":"2026-07-28T07:19:07.589Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a7bb2acc-a34d-4fe4-93c4-d2f1304650b6","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_019aWK859eFm2W6cSs9BZzaR","type":"tool_result","content":"color/colors.go:113:\temptyColor = Ansi(\"\")\n=== what the commit did elsewhere ===\n website/api/mcp/validate-server.js | 1 -\n website/api/shared/validator.js | 37 +-----------\n website/api/test/validator.test.js | 1 -\n website/export_themes.mjs | 83 ++-------------------------\n 160 files changed, 466 insertions(+), 1273 deletions(-)","is_error":false}]},"uuid":"45991c9b-bc5f-4676-a794-3e7ff6dccbfe","timestamp":"2026-07-28T07:19:11.665Z","toolUseResult":{"stdout":"color/colors.go:113:\temptyColor = Ansi(\"\")\n=== what the commit did elsewhere ===\n website/api/mcp/validate-server.js | 1 -\n website/api/shared/validator.js | 37 +-----------\n website/api/test/validator.test.js | 1 -\n website/export_themes.mjs | 83 ++-------------------------\n 160 files changed, 466 insertions(+), 1273 deletions(-)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"a7bb2acc-a34d-4fe4-93c4-d2f1304650b6","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"45991c9b-bc5f-4676-a794-3e7ff6dccbfe","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"fcebcc1f-8397-445d-9b94-e6719d2f7623","timestamp":"2026-07-28T07:19:11.668Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fcebcc1f-8397-445d-9b94-e6719d2f7623","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3o1ckambBfBMrSS7wc","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The empty color case checks out since the function returns an empty string, so my comment about returning `emptyColor` is correct. I'll keep the upstream `resolveShade` function with its original comment and use my rewritten `MaybeResolveColor` comment instead.","signature":"CAIS0gMKhwEIEBgCKkClWYfUgMv+cX/LUjalZl6CJRKKDNAWvWCvk51msaoMYvhjiSMT4wljp3wvrtvp46rtqV8t+u4EU8CpRXHbS8ogMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDKadXVCoPDp6CObbyxoMx+eRAAPmVEnCDKiAIjDTdrIITSOvsH2hhEog0XuowzB6JdF/prrl9Iz3C3Du4RNug8UmJz0Bk34hEAmBNZkq9wHHBol5ZuQ5HJbO3GU+tc/PtqIBs0o3XcUI+7653nKDrDw4uhEQgyIYw8afSF+XDJfSREdf8kMtKPlzALEwZt90y+jAYLBbtfIdI8zokILFPMt/KsXn+rh4xqMq1BtsPG5d3ZwTN5359DAr7FI1+3Mg+k3MovTkWd90B6sOfW2ZMgincsHqtffAW/+Dl2eWiIv6hZ5zEy6kABod2Sjd34QDKq/ugBxwnYDv0BV6hGSnt8PCQzTL3OjN8HKjB3gSLThdrOZBX1doKLzfpaeoqALPeDx7HgKJBUs2EjO4OKJOO/eA4SxAt8wiMBIFb1dww0SbM47KPrchGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1401,"cache_read_input_tokens":473965,"output_tokens":923,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1401,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":923,"cache_read_input_tokens":473965,"cache_creation_input_tokens":1401,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1401},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3nwmLMCUJ3HRHmxorw","type":"assistant","uuid":"7ecdb4f2-f103-4a9c-ac76-6e7dbc94c837","timestamp":"2026-07-28T07:19:15.918Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7ecdb4f2-f103-4a9c-ac76-6e7dbc94c837","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3o1ckambBfBMrSS7wc","type":"message","role":"assistant","content":[{"type":"text","text":"`emptyColor = Ansi(\"\")` and the function returns `\"\"`, so the rewritten comment is accurate. Resolving — keep upstream's new function, apply my comment rewrite:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1401,"cache_read_input_tokens":473965,"output_tokens":923,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1401,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":923,"cache_read_input_tokens":473965,"cache_creation_input_tokens":1401,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1401},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3nwmLMCUJ3HRHmxorw","type":"assistant","uuid":"cc3a8d27-a4a2-4b86-9f6a-254dca61ebf4","timestamp":"2026-07-28T07:19:15.919Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cc3a8d27-a4a2-4b86-9f6a-254dca61ebf4","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3o1ckambBfBMrSS7wc","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01PhPEJ6pC8f3nFFvKuVFF6b","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\color\\palette.go","old_string":"<<<<<<< HEAD\n// resolveShade resolves a darken(...)/lighten(...) call's color argument through the\n// palette, so a reference like darken(p:accent, 20) reaches Defaults.ToAnsi with a\n// concrete color. Returns colorString unchanged when it isn't a shade call.\nfunc (p Palette) resolveShade(colorString Ansi) (Ansi, error) {\n\tdir, inner, percent, ok := colorString.ShadeArgs()\n\tif !ok {\n\t\treturn colorString, nil\n\t}\n\n\tresolved, err := p.ResolveColor(inner)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn withShadeCall(dir, resolved, percent), nil\n}\n\n// MaybeResolveColor wraps resolveColor and silences possible errors, returning\n// Transparent color by default, as a Block does not know how to handle color errors.\n=======\n// Returns emptyColor instead of surfacing errors, since a Block has no way to handle color errors.\n>>>>>>> 9bc9e05e (refactor: strip restating comments across the codebase)","new_string":"// resolveShade resolves a darken(...)/lighten(...) call's color argument through the\n// palette, so a reference like darken(p:accent, 20) reaches Defaults.ToAnsi with a\n// concrete color. Returns colorString unchanged when it isn't a shade call.\nfunc (p Palette) resolveShade(colorString Ansi) (Ansi, error) {\n\tdir, inner, percent, ok := colorString.ShadeArgs()\n\tif !ok {\n\t\treturn colorString, nil\n\t}\n\n\tresolved, err := p.ResolveColor(inner)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn withShadeCall(dir, resolved, percent), nil\n}\n\n// Returns emptyColor instead of surfacing errors, since a Block has no way to handle color errors."},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1401,"cache_read_input_tokens":473965,"output_tokens":923,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1401,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":923,"cache_read_input_tokens":473965,"cache_creation_input_tokens":1401,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1401},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3nwmLMCUJ3HRHmxorw","type":"assistant","uuid":"1d06bf14-8ce2-45dc-8216-8f8fe406663e","timestamp":"2026-07-28T07:19:21.830Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1d06bf14-8ce2-45dc-8216-8f8fe406663e","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01PhPEJ6pC8f3nFFvKuVFF6b","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\color\\palette.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"93901866-e683-40aa-b1d2-9be0a41337db","timestamp":"2026-07-28T07:19:21.868Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\color\\palette.go","oldString":"<<<<<<< HEAD\n// resolveShade resolves a darken(...)/lighten(...) call's color argument through the\n// palette, so a reference like darken(p:accent, 20) reaches Defaults.ToAnsi with a\n// concrete color. Returns colorString unchanged when it isn't a shade call.\nfunc (p Palette) resolveShade(colorString Ansi) (Ansi, error) {\n\tdir, inner, percent, ok := colorString.ShadeArgs()\n\tif !ok {\n\t\treturn colorString, nil\n\t}\n\n\tresolved, err := p.ResolveColor(inner)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn withShadeCall(dir, resolved, percent), nil\n}\n\n// MaybeResolveColor wraps resolveColor and silences possible errors, returning\n// Transparent color by default, as a Block does not know how to handle color errors.\n=======\n// Returns emptyColor instead of surfacing errors, since a Block has no way to handle color errors.\n>>>>>>> 9bc9e05e (refactor: strip restating comments across the codebase)","newString":"// resolveShade resolves a darken(...)/lighten(...) call's color argument through the\n// palette, so a reference like darken(p:accent, 20) reaches Defaults.ToAnsi with a\n// concrete color. Returns colorString unchanged when it isn't a shade call.\nfunc (p Palette) resolveShade(colorString Ansi) (Ansi, error) {\n\tdir, inner, percent, ok := colorString.ShadeArgs()\n\tif !ok {\n\t\treturn colorString, nil\n\t}\n\n\tresolved, err := p.ResolveColor(inner)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn withShadeCall(dir, resolved, percent), nil\n}\n\n// Returns emptyColor instead of surfacing errors, since a Block has no way to handle color errors.","originalFile":"package color\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/template\"\n)\n\ntype Palette map[Ansi]Ansi\n\nconst (\n\tpaletteKeyPrefix = \"p:\"\n\tpaletteKeyError = \"palette: requested color %s does not exist in palette of colors %s\"\n\tpaletteMaxRecursionDepth = 3 // allows 3 or less recursive resolutions\n\tpaletteRecursiveKeyError = \"palette: recursive resolution of color %s returned palette reference %s and reached recursion depth %d\"\n)\n\n// Returns colorName unchanged if it is not a palette reference.\nfunc (p Palette) ResolveColor(colorName Ansi) (Ansi, error) {\n\treturn p.resolveColor(colorName, 1, &colorName)\n}\n\n// originalColorName is a pointer to save allocations\nfunc (p Palette) resolveColor(colorName Ansi, depth int, originalColorName *Ansi) (Ansi, error) {\n\tkey, ok := asPaletteKey(colorName)\n\t// colorName is not a palette key, return it as is\n\tif !ok {\n\t\treturn colorName, nil\n\t}\n\n\tcolor, ok := p[key]\n\tif !ok {\n\t\treturn \"\", &PaletteKeyError{Key: key, palette: p}\n\t}\n\n\tif strings.Contains(color.String(), \"{{\") {\n\t\trendered, err := template.RenderTrusted(color.String(), nil)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\tcolor = Ansi(strings.TrimSpace(rendered))\n\t}\n\n\tif _, isKey := isPaletteKey(color); isKey {\n\t\tif depth > paletteMaxRecursionDepth {\n\t\t\treturn \"\", &PaletteRecursiveKeyError{Key: *originalColorName, Value: color, depth: depth}\n\t\t}\n\n\t\treturn p.resolveColor(color, depth+1, originalColorName)\n\t}\n\n\treturn color, nil\n}\n\nfunc asPaletteKey(colorName Ansi) (Ansi, bool) {\n\tprefix, isKey := isPaletteKey(colorName)\n\tif !isKey {\n\t\treturn \"\", false\n\t}\n\n\tkey := strings.TrimPrefix(colorName.String(), prefix.String())\n\n\treturn Ansi(key), true\n}\n\nfunc isPaletteKey(colorName Ansi) (Ansi, bool) {\n\treturn paletteKeyPrefix, strings.HasPrefix(colorName.String(), paletteKeyPrefix)\n}\n\ntype PaletteKeyError struct {\n\tpalette Palette\n\tKey Ansi\n}\n\nfunc (p *PaletteKeyError) Error() string {\n\tkeys := make([]string, 0, len(p.palette))\n\tfor key := range p.palette {\n\t\tkeys = append(keys, key.String())\n\t}\n\tsort.Strings(keys)\n\tallColors := strings.Join(keys, \",\")\n\terrorStr := fmt.Sprintf(paletteKeyError, p.Key, allColors)\n\treturn errorStr\n}\n\ntype PaletteRecursiveKeyError struct {\n\tKey Ansi\n\tValue Ansi\n\tdepth int\n}\n\nfunc (p *PaletteRecursiveKeyError) Error() string {\n\terrorStr := fmt.Sprintf(paletteRecursiveKeyError, p.Key, p.Value, p.depth)\n\treturn errorStr\n}\n\n<<<<<<< HEAD\n// resolveShade resolves a darken(...)/lighten(...) call's color argument through the\n// palette, so a reference like darken(p:accent, 20) reaches Defaults.ToAnsi with a\n// concrete color. Returns colorString unchanged when it isn't a shade call.\nfunc (p Palette) resolveShade(colorString Ansi) (Ansi, error) {\n\tdir, inner, percent, ok := colorString.ShadeArgs()\n\tif !ok {\n\t\treturn colorString, nil\n\t}\n\n\tresolved, err := p.ResolveColor(inner)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn withShadeCall(dir, resolved, percent), nil\n}\n\n// MaybeResolveColor wraps resolveColor and silences possible errors, returning\n// Transparent color by default, as a Block does not know how to handle color errors.\n=======\n// Returns emptyColor instead of surfacing errors, since a Block has no way to handle color errors.\n>>>>>>> 9bc9e05e (refactor: strip restating comments across the codebase)\nfunc (p Palette) MaybeResolveColor(colorName Ansi) Ansi {\n\tcolor, err := p.ResolveColor(colorName)\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\n\treturn color\n}\n","structuredPatch":[{"oldStart":97,"oldLines":7,"newStart":97,"newLines":6,"lines":[" return errorStr"," }"," ","-<<<<<<< HEAD"," // resolveShade resolves a darken(...)/lighten(...) call's color argument through the"," // palette, so a reference like darken(p:accent, 20) reaches Defaults.ToAnsi with a"," // concrete color. Returns colorString unchanged when it isn't a shade call."]},{"oldStart":115,"oldLines":11,"newStart":114,"newLines":7,"lines":[" return withShadeCall(dir, resolved, percent), nil"," }"," ","-// MaybeResolveColor wraps resolveColor and silences possible errors, returning","-// Transparent color by default, as a Block does not know how to handle color errors.","-======="," // Returns emptyColor instead of surfacing errors, since a Block has no way to handle color errors.","->>>>>>> 9bc9e05e (refactor: strip restating comments across the codebase)"," func (p Palette) MaybeResolveColor(colorName Ansi) Ansi {"," color, err := p.ResolveColor(colorName)"," if err != nil {"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"1d06bf14-8ce2-45dc-8216-8f8fe406663e","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"93901866-e683-40aa-b1d2-9be0a41337db","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3opCC9f6yZ6PTWCkpc","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01YAMkD4qXvadu3qWNc9pCWA","name":"Bash","input":{"command":"go build ./color/ && go test ./color/ -count=1 2>&1 | tail -3 && grep -c \"<<<<<<<\\|>>>>>>>\" color/palette.go","description":"Verify the resolution compiles"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":973,"cache_read_input_tokens":475366,"output_tokens":151,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":973,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":151,"cache_read_input_tokens":475366,"cache_creation_input_tokens":973,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":973},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3oi8KCyU4ZtxthfxXa","type":"assistant","uuid":"9303e4ea-806b-41c1-aa39-18550ff6005e","timestamp":"2026-07-28T07:19:25.981Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9303e4ea-806b-41c1-aa39-18550ff6005e","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01YAMkD4qXvadu3qWNc9pCWA","type":"tool_result","content":"ok \tgithub.com/jandedobbeleer/oh-my-posh/src/color\t0.110s\n0","is_error":false}]},"uuid":"aa5c2984-46b2-44d5-8251-fc2e69fb7042","timestamp":"2026-07-28T07:19:31.079Z","toolUseResult":{"stdout":"ok \tgithub.com/jandedobbeleer/oh-my-posh/src/color\t0.110s\n0","stderr":"","interrupted":false,"isImage":false,"returnCodeInterpretation":"No matches found","noOutputExpected":false},"sourceToolAssistantUUID":"9303e4ea-806b-41c1-aa39-18550ff6005e","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"aa5c2984-46b2-44d5-8251-fc2e69fb7042","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3pThBcyJbsisacFv3g","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01B55BejR9Hao2wqjg9KCMjX","name":"Bash","input":{"command":"cd /d/oh-my-posh && git add src/color/palette.go && GIT_EDITOR=true git rebase --continue 2>&1 | tail -15","description":"Continue the rebase"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":176,"cache_read_input_tokens":476339,"output_tokens":126,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":176,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":126,"cache_read_input_tokens":476339,"cache_creation_input_tokens":176,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":176},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3pP1edopUhcJMo2xFW","type":"assistant","uuid":"2766a0ff-71c9-4d2c-a689-fa90e5ac2fb7","timestamp":"2026-07-28T07:19:34.328Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2766a0ff-71c9-4d2c-a689-fa90e5ac2fb7","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01B55BejR9Hao2wqjg9KCMjX","type":"tool_result","content":"[detached HEAD b64a2619] refactor: strip restating comments across the codebase\n 160 files changed, 466 insertions(+), 1273 deletions(-)\nRebasing (3/44)\rRebasing (4/44)\rRebasing (5/44)\rRebasing (6/44)\rRebasing (7/44)\rRebasing (8/44)\rRebasing (9/44)\rRebasing (10/44)\rRebasing (11/44)\rRebasing (12/44)\rRebasing (13/44)\rRebasing (14/44)\rRebasing (15/44)\rRebasing (16/44)\rRebasing (17/44)\rRebasing (18/44)\rRebasing (19/44)\rRebasing (20/44)\rRebasing (21/44)\rRebasing (22/44)\rRebasing (23/44)\rRebasing (24/44)\rRebasing (25/44)\rRebasing (26/44)\rRebasing (27/44)\rRebasing (28/44)\rRebasing (29/44)\rRebasing (30/44)\rRebasing (31/44)\rRebasing (32/44)\rRebasing (33/44)\rRebasing (34/44)\rRebasing (35/44)\rRebasing (36/44)\rRebasing (37/44)\rRebasing (38/44)\rRebasing (39/44)\rRebasing (40/44)\rRebasing (41/44)\rRebasing (42/44)\rRebasing (43/44)\rRebasing (44/44)\rSuccessfully rebased and updated refs/heads/themes-svg.","is_error":false}]},"uuid":"19fbc96f-5e85-4dca-93d6-9ca6f9ddc85b","timestamp":"2026-07-28T07:20:23.061Z","toolUseResult":{"stdout":"[detached HEAD b64a2619] refactor: strip restating comments across the codebase\n 160 files changed, 466 insertions(+), 1273 deletions(-)\nRebasing (3/44)\rRebasing (4/44)\rRebasing (5/44)\rRebasing (6/44)\rRebasing (7/44)\rRebasing (8/44)\rRebasing (9/44)\rRebasing (10/44)\rRebasing (11/44)\rRebasing (12/44)\rRebasing (13/44)\rRebasing (14/44)\rRebasing (15/44)\rRebasing (16/44)\rRebasing (17/44)\rRebasing (18/44)\rRebasing (19/44)\rRebasing (20/44)\rRebasing (21/44)\rRebasing (22/44)\rRebasing (23/44)\rRebasing (24/44)\rRebasing (25/44)\rRebasing (26/44)\rRebasing (27/44)\rRebasing (28/44)\rRebasing (29/44)\rRebasing (30/44)\rRebasing (31/44)\rRebasing (32/44)\rRebasing (33/44)\rRebasing (34/44)\rRebasing (35/44)\rRebasing (36/44)\rRebasing (37/44)\rRebasing (38/44)\rRebasing (39/44)\rRebasing (40/44)\rRebasing (41/44)\rRebasing (42/44)\rRebasing (43/44)\rRebasing (44/44)\rSuccessfully rebased and updated refs/heads/themes-svg.","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"2766a0ff-71c9-4d2c-a689-fa90e5ac2fb7","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"19fbc96f-5e85-4dca-93d6-9ca6f9ddc85b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3tUA5DynwEuZqhWAK1","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The rebase of 44 commits is done, so now I need to verify nothing broke semantically—the real danger with this many commits rebasing onto new upstream changes. I'm running the full test suite: build, tests, lint, and the 124-theme export gate using the pre-rebase baseline I saved earlier as the comparison point.\n\nThe upstream commits include cache and website changes plus a new `resolveShade` feature for darkening/lightening, which shouldn't affect existing theme output. I'll run the gate and compare—if the output differs, I'll dig into why. Let me also verify the branch state and confirm all my commits made it through the rebase.","signature":"CAIS+wgKhwEIEBgCKkCP7jLmdGtch6O2NtnNo2oV8h0VxrVU0wZZbmwViGawaYuRTwBTgWTHueGfygMQ2jxxC+EEa7fYiVtnQ2kcGnaxMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDE0IXs7jJxnmOU/XAhoMug/u29nuvHrsVWzfIjAcoNNU2pwH0EzJpVSAppl8TBRS8s8VlVzZUVCZkR1LX06uCXvwM74DhZiH62ws7qAqoAcogQ3uEZkaXqEZNoGPnKskSzyHdweI+90hE+CAClWTKIUiythmaNUo+BnhhkSypo4z7f1FLGTI7db6cGtcKz9rpJ1Wxxc1IAi/r7EwkM0q2PCvDAloy3Y0OA0av9jqed8nN6cYD74GZ2d2wgdMVUytozja5WiHK4VofpPFLmwoGFjCltQwvMGLyYvHNt4R5wv51vZ8tKk2MJPDvkQ7x3TVPCGua4uNqvCmE9pPd6PazQyzJe7BgPbb7gsNebfvYfG2CI4Y8PxqakNSye+P6s/mL+U3k/MKG4rpTz5m2Tu1z4+6uLlplSdccKvoKwQYWQawhl2/RXjBO0K+Pvndnr5dyPUQrJrVDSAdoYGMfGuxzK2C3TPxM1B3tew5JkSdrRZaIH+cj28xkL6UOg/T0Yp+WxBWjxpCcTzryXMG1rzZDN68rA/XJEHgB75DU3h6rMLwMI4QS09n7Hh/KEDDP2gYYXrLEO3LLLn3Dxecm+QaolfYlNMmT/D+m92wyBXhSDxcQKZsKAUKt+hgvKzB5ZNuBsL/y/m64c/uklVZRBWHz6X/nBsk+2LzaY84om0pWnTBkAE8EOtZ6gprBfA2iQK4DZguP/ewjpbVu9UbVNOXQV/RUneiL9qEdYqrDHqFf7R2dTACfgt9Ub+D2eVhbP88j+VTCstUb5otzXWkFVJui2qk0YFpMRvZRFcaVGfGd/jpaHxiU7pzCgD7tJNOhsloW5yi5M/+S0sYUFVmQwSYwP+nU5oq5LM9kJc6ocYM0J590xbyp/9TlAUoUVz7yMepoIBiVe9s1mclLzI8Wz6wqefSqW9YBwHnorh4Rsr5mDzSyL3bRSeXSwdy7zqCpqF/upwrWU0cAXYmXUjvi7t1z0lNuqPTzAZEYUsfb5qqOBGKVSvOl4mMcLZtogUut8e07L31eYebvgBxrho0t1fDL8A+UtegtG/kogFuxKoVrPwcEi4osmr4wcxlYh8MAVxEeRtvvpF+uJmPYy8TygUAGsCxU7UASr0rNn7xV5goPOYpf2X1Dcz3SC14dJxwy9DYZCp1UjEQ7FCpyAKYmkeY6pL50ipCjAyWPbflJil9LJ3vLG6ztZoe6ZDTrkT+f2mmhUG9ZHkrRT/M9wjNonkeP8+PzgWQx42lBIb/EfE8AmBrD37IMmbWbrLU9d8RE3dsQa1VkZ2/WnxwyKbGLKoEB+ATbvDo14fUR2StoD5mlrMfTyxCJaFlE4iCg3O2LqwqGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":629,"cache_read_input_tokens":476515,"output_tokens":556,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":629,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":556,"cache_read_input_tokens":476515,"cache_creation_input_tokens":629,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":629},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3tDGdEjq7jPhAuWdTw","type":"assistant","uuid":"ed1bd29c-c770-4ba7-95c3-6b0d8579bacf","timestamp":"2026-07-28T07:20:38.612Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ed1bd29c-c770-4ba7-95c3-6b0d8579bacf","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3tUA5DynwEuZqhWAK1","type":"message","role":"assistant","content":[{"type":"text","text":"Rebase completed all 44 commits. Verifying — a 44-commit replay onto 5 new upstream commits is exactly where semantic conflicts hide:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":629,"cache_read_input_tokens":476515,"output_tokens":556,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":629,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":556,"cache_read_input_tokens":476515,"cache_creation_input_tokens":629,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":629},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3tDGdEjq7jPhAuWdTw","type":"assistant","uuid":"550ff90f-f80b-44b9-a840-6dc6778fe95e","timestamp":"2026-07-28T07:20:38.613Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"550ff90f-f80b-44b9-a840-6dc6778fe95e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3tUA5DynwEuZqhWAK1","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_014epT1poPMNUTYW5LvEpezF","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && go build ./... 2>&1 | head -5 && go test ./... -count=1 2>&1 | grep -v \"^ok\\|no test files\" | head -10; echo \"=== lint ===\"; golangci-lint run ./... 2>&1 | tail -3","description":"Build, test and lint after rebase"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":629,"cache_read_input_tokens":476515,"output_tokens":556,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":629,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":556,"cache_read_input_tokens":476515,"cache_creation_input_tokens":629,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":629},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3tDGdEjq7jPhAuWdTw","type":"assistant","uuid":"98ffb28a-78a5-45a0-980d-aa900d97ef3b","timestamp":"2026-07-28T07:20:38.680Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"98ffb28a-78a5-45a0-980d-aa900d97ef3b","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_014epT1poPMNUTYW5LvEpezF","type":"tool_result","content":"=== lint ===\n0 issues.","is_error":false}]},"uuid":"9fc976a1-a89d-434d-931a-910ed89b5082","timestamp":"2026-07-28T07:21:26.892Z","toolUseResult":{"stdout":"=== lint ===\n0 issues.","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"98ffb28a-78a5-45a0-980d-aa900d97ef3b","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9fc976a1-a89d-434d-931a-910ed89b5082","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU3xzxbgP1yHa2gVKMFr","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01BeC7gEZou26GQEaEzmTZPN","name":"Bash","input":{"command":"go build -o \"$TMPDIR/omp-rebased.exe\" . && cd /d/oh-my-posh && rm -rf \"$TMPDIR/gate-rebased\" && mkdir -p \"$TMPDIR/gate-rebased\" && for f in themes/*.omp.json themes/*.omp.yaml; do b=$(basename \"$f\"); b=${b%%.omp.*}; \"$TMPDIR/omp-rebased.exe\" config export image --config \"$f\" --data src/prompt/testdata/fixtures/prompt.data.json -o \"$TMPDIR/gate-rebased/$b.svg\" >/dev/null 2>&1; done; echo \"count=$(ls \"$TMPDIR/gate-rebased\" | wc -l)\"; diff -rq \"$TMPDIR/gate-now\" \"$TMPDIR/gate-rebased\" | head -10; diff -rq \"$TMPDIR/gate-now\" \"$TMPDIR/gate-rebased\" >/dev/null && echo \"IDENTICAL TO PRE-REBASE\"","description":"Compare theme output pre- and post-rebase"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":573,"cache_read_input_tokens":477144,"output_tokens":454,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":573,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":454,"cache_read_input_tokens":477144,"cache_creation_input_tokens":573,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":573},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU3xvsHdAStJJ4ijviiT","type":"assistant","uuid":"8abb1ae1-2e9c-4e55-bdd0-b6afba6aabb4","timestamp":"2026-07-28T07:21:32.993Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8abb1ae1-2e9c-4e55-bdd0-b6afba6aabb4","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01BeC7gEZou26GQEaEzmTZPN","type":"tool_result","content":"count=124\nIDENTICAL TO PRE-REBASE","is_error":false}]},"uuid":"a407b866-278d-45ac-a2b6-774a08d9b304","timestamp":"2026-07-28T07:21:56.965Z","toolUseResult":{"stdout":"count=124\nIDENTICAL TO PRE-REBASE","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"classifierMetaLines":"{\"meta\":{\"gitStatus\":{\"clean\":true}}}\n","sourceToolAssistantUUID":"8abb1ae1-2e9c-4e55-bdd0-b6afba6aabb4","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a407b866-278d-45ac-a2b6-774a08d9b304","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU41EyWmpuhW3HqPdGUp","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_019JeBJm3Y7zWRmv22gJs2ts","name":"Bash","input":{"command":"git status --short | head && echo \"=== branch state ===\" && git rev-list --left-right --count origin/next...HEAD | awk '{print \"origin/next ahead by \"$1\", local ahead by \"$2}' && echo \"=== my 6 cleanup commits present? ===\" && git log --oneline -8 && echo \"=== benchmarks ===\" && cd src && go test ./terminal/ -bench=. -benchtime=1s -run=XXX -benchmem -count=1 2>&1 | grep -E \"^Benchmark\"","description":"Confirm branch state and benchmarks"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":465,"cache_read_input_tokens":477717,"output_tokens":253,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":465,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":253,"cache_read_input_tokens":477717,"cache_creation_input_tokens":465,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":465},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU419JTErMpStgtYmJYs","type":"assistant","uuid":"50027dd2-8fd3-4b50-bbb5-ee1fa4a1e107","timestamp":"2026-07-28T07:22:02.993Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"50027dd2-8fd3-4b50-bbb5-ee1fa4a1e107","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_019JeBJm3Y7zWRmv22gJs2ts","type":"tool_result","content":"=== branch state ===\norigin/next ahead by 1, local ahead by 50\n=== my 6 cleanup commits present? ===\na277a8bf refactor(website): stop hand-maintaining what the build can compute\n9becab07 fix(tools): download the harness font before reading it\n13d77710 refactor(cli): render an exported config through one path\n4720bd97 refactor(svg): drop what the encoder was carrying for nothing\n76d229d0 perf(terminal): only resolve what a gradient actually needs\nbc068d1e fix(cli): keep the whole name when deriving an export path\nc8ead8d1 fix(svg): end a segment background where its separator does\nfdfeb1c3 fix(website): serve the Mono patched Victor Mono\n=== benchmarks ===\nBenchmarkWriteAnchors-12 \t 559064\t 2005 ns/op\t 688 B/op\t 14 allocs/op\nBenchmarkWritePlainASCII-12 \t 1000000\t 1179 ns/op\t 312 B/op\t 6 allocs/op\nBenchmarkWriteSolid-12 \t 1000000\t 1316 ns/op\t 488 B/op\t 16 allocs/op\nBenchmarkWriteGradient-12 \t 545047\t 2543 ns/op\t 1785 B/op\t 17 allocs/op\nBenchmarkWriteGradientChained-12 \t 677533\t 1934 ns/op\t 808 B/op\t 28 allocs/op","is_error":false}]},"uuid":"a29b09ea-cd2c-4247-b227-e87dc70a7f01","timestamp":"2026-07-28T07:22:13.966Z","toolUseResult":{"stdout":"=== branch state ===\norigin/next ahead by 1, local ahead by 50\n=== my 6 cleanup commits present? ===\na277a8bf refactor(website): stop hand-maintaining what the build can compute\n9becab07 fix(tools): download the harness font before reading it\n13d77710 refactor(cli): render an exported config through one path\n4720bd97 refactor(svg): drop what the encoder was carrying for nothing\n76d229d0 perf(terminal): only resolve what a gradient actually needs\nbc068d1e fix(cli): keep the whole name when deriving an export path\nc8ead8d1 fix(svg): end a segment background where its separator does\nfdfeb1c3 fix(website): serve the Mono patched Victor Mono\n=== benchmarks ===\nBenchmarkWriteAnchors-12 \t 559064\t 2005 ns/op\t 688 B/op\t 14 allocs/op\nBenchmarkWritePlainASCII-12 \t 1000000\t 1179 ns/op\t 312 B/op\t 6 allocs/op\nBenchmarkWriteSolid-12 \t 1000000\t 1316 ns/op\t 488 B/op\t 16 allocs/op\nBenchmarkWriteGradient-12 \t 545047\t 2543 ns/op\t 1785 B/op\t 17 allocs/op\nBenchmarkWriteGradientChained-12 \t 677533\t 1934 ns/op\t 808 B/op\t 28 allocs/op","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"50027dd2-8fd3-4b50-bbb5-ee1fa4a1e107","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a29b09ea-cd2c-4247-b227-e87dc70a7f01","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU42W1Av3CkjxLicp8rE","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The rebase completed successfully with all builds and tests passing, and the 124 themes rendering identically to before. Benchmarks are holding at baseline levels, and all six cleanup commits are present with their new hashes. However, origin/next is still one commit ahead, which means I rebased onto a commit that isn't the current tip of that branch.\n\nI should check what that one additional commit on origin/next is — it might be something new that appeared since I started, or I may need to rebase onto the actual tip instead. The local branch is now 50 commits ahead of origin/next (up from 47), which reflects the replayed commits and the shifted base.","signature":"CAIS4QgKhwEIEBgCKkCARv5BCo7JQj4SMbNdgkV1A8rmrpVY5MV5Ycn87dkOBLgrMtPDTiXNXwZKfYa7vC9ucH/Ss3sgRJfyonx1tpTCMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDIa5YS3oPuTZvH4IwRoMJOvIFUKCpFXE9LgtIjAHrF146fnlaNblgh+z684rr8FkDJTRP81szW4Wzzd/ImuWfN1xmSKwDlRIxhZKiKoqhgec6VZYFjWk0JG3PImZElq2DrzOrhzoU0WPWqnbH7pzGcD1gc538dq7DW3+VAifRLw+cjaaYMgcqR1afuo+Sw1C48Kj4QsO92W59NnjJLQsRkGZsD9dxWc1BBp0oCDW0pY1le7wC5YSo7cjjIJEQqPdhrOfGqXMeOAv7A9MaibvTuPiiU14Al8kBHYqlasmoNN3yY281Glb0hAllJwHh/30SDMOLwJ+BPSRz01xMio9ZEa6N4d3S3uIRFBG1VFU16T3QTiibqvunxRPgHsPgs9BS/x4sUd7cQMaFSojE1BXF7Tt5Tm5VCUB5yZVUdnK2c1lgNOkPZFAw/T3J+YdvjSfv2rtMoAZ0aC2+pFw6HjL2HyrKt8zmaswV1gfPdYkClL1WCn+N+8J/qioYq4FYJKEElQ8U0mZIdYYnUiLcSGaFra1zlxzdveYzxoSGqIKLxweV/mCqRHUVI+d6NenJGG1XuPiSFzFd6UTzYnYPzvNW6x19k5Io/334lRFreAUAUyH5d7IwZlG/X25x1pCIftES1qZp8c+agOoO1Bw4azndZtezXkTj2TePn41ySU1sPRomMz1UzjCD2aq4SKVYsYjijTwRAH+U6J7XWbqnwjmC5BYV68/jCo+sZ4WR+MqQAod9danucod+cVctS1/6aYI8uEqgaAiRdQzXuhYAAsZinfN8GGEUmHO5OVGgJzEMPtI1002Fl9KkCYHqlJYAizOYiARMkAlQb9t79eEFP2os9ceY9MgSDIFuy5K9SWnxr6AjHADje4txtsaMwZUeAIhvbgTEQZIEmIIoEXIWr60AX8EPOdyyb+eUOtfzlqTSkA7gyP2wHSCAwAKUuafF2CsPe9WlizxTKevRlS3FxvBCn2CKjYgqE5kuV5i1m17ilyaDy21Y37278jC3pE3sig7MBpztO7fXE64kTCAbiya34qFooQNhkxfaZh3mXRm1F9vVScxqIGJuSZmFkesRnHeMKzn/4FhTrRrAD5DNDsrUQPgZsemOuq7FRi11jjSEY01CBszAf/AJRAyJuAnXfGsgqY83EkLf6lBTuRRa/AKZlXBfZ2Ouf79SoTFUooJR6XVPSCQpTTHUrSdSsY6Pb6S0gv3c9SSSm4rmYv26L/dvWk0iyEp3Wql8pO6ravozrOPdHdKQOg+TeuuKQX7R7X1KkjUgeax1ZO5iOdTZu1DJOTw28XpUxgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":750,"cache_read_input_tokens":478182,"output_tokens":801,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":750,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":801,"cache_read_input_tokens":478182,"cache_creation_input_tokens":750,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":750},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU42Q8hwJhxPMfbJRBk9","type":"assistant","uuid":"e99c0620-3544-4e04-9e15-3476ff97102f","timestamp":"2026-07-28T07:22:23.549Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e99c0620-3544-4e04-9e15-3476ff97102f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU42W1Av3CkjxLicp8rE","type":"message","role":"assistant","content":[{"type":"text","text":"Rebase is complete and verified clean:\n\n- Build, full test suite, `golangci-lint` — all pass\n- **All 124 themes render byte-identically to pre-rebase** — no semantic conflict slipped through\n- Benchmarks at baseline: 688/14, 312/6, 488/16, 1785/17, 808/28\n- Working tree clean, all 6 cleanup commits replayed\n\nThe conflict itself was small and both sides were wanted: upstream added `resolveShade` (the `darken()`/`lighten()` palette resolution), and my \"strip restating comments\" commit had rewritten the doc comment on `MaybeResolveColor` immediately below it. Git couldn't tell those apart because they're adjacent. I kept the new function verbatim and applied the comment rewrite, after checking the rewrite is actually true — it claims the function returns `emptyColor`, and `emptyColor = Ansi(\"\")` matches the literal `\"\"` the code returns.\n\nOne thing to be aware of:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":750,"cache_read_input_tokens":478182,"output_tokens":801,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":750,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":801,"cache_read_input_tokens":478182,"cache_creation_input_tokens":750,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":750},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU42Q8hwJhxPMfbJRBk9","type":"assistant","uuid":"5c83748e-0b98-4a4e-8a06-43c3f7660507","timestamp":"2026-07-28T07:22:26.522Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5c83748e-0b98-4a4e-8a06-43c3f7660507","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU42W1Av3CkjxLicp8rE","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01JvGD4XBqPYq9baLSeJvwAC","name":"Bash","input":{"command":"git log --oneline HEAD..origin/next && echo \"--- rebased onto ---\" && git log --oneline -1 97967466","description":"Check what upstream commit is still missing"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":750,"cache_read_input_tokens":478182,"output_tokens":801,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":750,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":801,"cache_read_input_tokens":478182,"cache_creation_input_tokens":750,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":750},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU42Q8hwJhxPMfbJRBk9","type":"assistant","uuid":"a0561fee-ca1f-4483-a722-e075f754880f","timestamp":"2026-07-28T07:22:27.588Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a0561fee-ca1f-4483-a722-e075f754880f","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01JvGD4XBqPYq9baLSeJvwAC","type":"tool_result","content":"ab2e1ad9 feat: add darken() and lighten() color shade functions\n--- rebased onto ---\n97967466 docs(project-knowledge): clarify command output trimming","is_error":false}]},"uuid":"952eb407-0a0d-40f9-8fbe-4b55fa16ff1c","timestamp":"2026-07-28T07:22:28.541Z","toolUseResult":{"stdout":"ab2e1ad9 feat: add darken() and lighten() color shade functions\n--- rebased onto ---\n97967466 docs(project-knowledge): clarify command output trimming","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"a0561fee-ca1f-4483-a722-e075f754880f","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"952eb407-0a0d-40f9-8fbe-4b55fa16ff1c","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"7f761c6d-24ff-4a7c-b0f6-60b6afd1b290","timestamp":"2026-07-28T07:22:28.544Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7f761c6d-24ff-4a7c-b0f6-60b6afd1b290","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU43Zp9UFGPUiS9DHPAV","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm noticing something odd with the commit history — the `darken()` and `lighten()` color functions are on origin/next but not in the rebased branch, yet `resolveShade` (which depends on that feature) showed up in the merge conflict. The rebase was onto a commit that comes before the feature commit in the history, so I need to figure out the actual ordering and why this dependency is appearing. Ah, so the commit might've been rewritten — the local branch could already have an equivalent commit with a different hash, which would explain why the content is there but `HEAD..origin/next` still lists it. Let me search for a commit with the same subject line to confirm.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":995,"cache_read_input_tokens":478932,"output_tokens":851,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":995,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":851,"cache_read_input_tokens":478932,"cache_creation_input_tokens":995,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":995},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU43UE3coYp5eRLoPJ9o","type":"assistant","uuid":"ecb45662-b1a7-4371-b505-70c0ca2d42db","timestamp":"2026-07-28T07:22:41.558Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ecb45662-b1a7-4371-b505-70c0ca2d42db","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU43Zp9UFGPUiS9DHPAV","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_014ZXnnwx7MX9QqwQWU4iJwV","name":"Bash","input":{"command":"git log --oneline HEAD --grep=\"darken\" | head -3; echo \"=== symbols present? ===\"; cd src && grep -rn \"func.*ShadeArgs\\|func withShadeCall\" color/*.go | head -3","description":"Check whether the shade feature is present by content"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":995,"cache_read_input_tokens":478932,"output_tokens":851,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":995,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":851,"cache_read_input_tokens":478932,"cache_creation_input_tokens":995,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":995},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU43UE3coYp5eRLoPJ9o","type":"assistant","uuid":"f53ae690-b59e-45c3-9195-edd5b6d72da7","timestamp":"2026-07-28T07:22:41.735Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f53ae690-b59e-45c3-9195-edd5b6d72da7","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"type":"tool_result","content":"Exit code 1\n273394c9 feat: add darken() and lighten() color shade functions\n5f2e723a feat(color): auto-shade single-color gradients with dark-gradient/light-gradient\n=== symbols present? ===\n/usr/bin/bash: line 1: cd: src: No such file or directory","is_error":true,"tool_use_id":"toolu_014ZXnnwx7MX9QqwQWU4iJwV"}]},"uuid":"27e5e14d-3cc1-4aac-ba8a-bc7e792e9fa9","timestamp":"2026-07-28T07:22:44.274Z","toolUseResult":"Error: Exit code 1\n273394c9 feat: add darken() and lighten() color shade functions\n5f2e723a feat(color): auto-shade single-color gradients with dark-gradient/light-gradient\n=== symbols present? ===\n/usr/bin/bash: line 1: cd: src: No such file or directory","sourceToolAssistantUUID":"f53ae690-b59e-45c3-9195-edd5b6d72da7","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"27e5e14d-3cc1-4aac-ba8a-bc7e792e9fa9","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU44jDE2KbLaffCAPXNJ","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01HWx14xNUQC2vtpVrvxpvVW","name":"Bash","input":{"command":"grep -rn \"func.*ShadeArgs\\|func withShadeCall\" color/*.go | head -3; echo \"=== same content? ===\"; cd /d/oh-my-posh && git diff 273394c9 ab2e1ad9 --stat | tail -3","description":"Compare the two copies of the shade feature"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":962,"cache_read_input_tokens":479927,"output_tokens":181,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":962,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":181,"cache_read_input_tokens":479927,"cache_creation_input_tokens":962,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":962},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU44dYAAxnFrgR1UGRQg","type":"assistant","uuid":"7bce7922-7605-4d47-93a6-c966dda585c3","timestamp":"2026-07-28T07:22:49.279Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7bce7922-7605-4d47-93a6-c966dda585c3","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01HWx14xNUQC2vtpVrvxpvVW","type":"tool_result","content":"color/shade.go:39:func (c Ansi) ShadeArgs() (dir shadeDirection, inner Ansi, percent float64, ok bool) {\ncolor/shade.go:82:func withShadeCall(dir shadeDirection, inner Ansi, percent float64) Ansi {\ncolor/shade_test.go:10:func TestShadeArgs(t *testing.T) {\n=== same content? ===\n website/docs/contributors.md | 1 -\n website/docs/segments/system/path.mdx | 2 +-\n 6 files changed, 2 insertions(+), 40 deletions(-)","is_error":false}]},"uuid":"7ed8d966-9abb-497d-b985-54265152a603","timestamp":"2026-07-28T07:22:53.848Z","toolUseResult":{"stdout":"color/shade.go:39:func (c Ansi) ShadeArgs() (dir shadeDirection, inner Ansi, percent float64, ok bool) {\ncolor/shade.go:82:func withShadeCall(dir shadeDirection, inner Ansi, percent float64) Ansi {\ncolor/shade_test.go:10:func TestShadeArgs(t *testing.T) {\n=== same content? ===\n website/docs/contributors.md | 1 -\n website/docs/segments/system/path.mdx | 2 +-\n 6 files changed, 2 insertions(+), 40 deletions(-)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"7bce7922-7605-4d47-93a6-c966dda585c3","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7ed8d966-9abb-497d-b985-54265152a603","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU45Wndyjm7iS8PzF8cm","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The local branch already has the same feature—just under a different commit hash—with only minor differences in comment cleanup between the two versions. So content-wise, the branch is complete, and I'm checking what `git log HEAD..origin` shows to understand the relationship. Since 273394c9 is already in the branch, rebasing onto ab2e1ad9 would just create a duplicate patch that git would drop or cause a conflict. I should report the exact relationship between these commits and let the user decide what to do rather than making assumptions about the branch topology.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":373,"cache_read_input_tokens":480889,"output_tokens":882,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":373,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":882,"cache_read_input_tokens":480889,"cache_creation_input_tokens":373,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":373},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU45Kv2vjJQBEbTAohxT","type":"assistant","uuid":"1c47a2a3-c5ff-418a-805e-7532133caab4","timestamp":"2026-07-28T07:23:08.476Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1c47a2a3-c5ff-418a-805e-7532133caab4","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU45Wndyjm7iS8PzF8cm","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Vf5yiyhn26jn43fBRvWKGA","name":"Bash","input":{"command":"git log --oneline -3 origin/next && echo \"=== is 97967466 ab2e1ad9's parent? ===\" && git rev-parse ab2e1ad9^ && echo \"=== local copy's diff vs upstream copy (non-website) ===\" && git diff 273394c9 ab2e1ad9 -- src/ | head -20","description":"Establish the exact upstream topology"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":373,"cache_read_input_tokens":480889,"output_tokens":882,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":373,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":882,"cache_read_input_tokens":480889,"cache_creation_input_tokens":373,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":373},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU45Kv2vjJQBEbTAohxT","type":"assistant","uuid":"02e62b21-54af-4df5-b4af-82e79c9db211","timestamp":"2026-07-28T07:23:08.477Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"02e62b21-54af-4df5-b4af-82e79c9db211","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Vf5yiyhn26jn43fBRvWKGA","type":"tool_result","content":"ab2e1ad9 feat: add darken() and lighten() color shade functions\n79eda3d8 chore(deps): bump the minor-patch group in /src with 2 updates\nca2f7641 docs(git): steer posh-git users to source: pwsh, add FAQ\n=== is 97967466 ab2e1ad9's parent? ===\n79eda3d8c7f7399213136564ff68afe81d164509\n=== local copy's diff vs upstream copy (non-website) ===\ndiff --git a/src/segments/path.go b/src/segments/path.go\nindex 4ab430ea..c3006dc6 100644\n--- a/src/segments/path.go\n+++ b/src/segments/path.go\n@@ -993,8 +993,7 @@ func (pt *Path) makeFolderFormatMap() map[string]string {\n \n \tif gitDirFormat := pt.options.String(GitDirFormat, \"\"); len(gitDirFormat) != 0 {\n \t\tdir, err := pt.env.HasParentFilePath(\".git\", false)\n-\t\tif err == nil {\n-\t\t\t// Linked worktrees use a .git file instead of a directory.\n+\t\tif err == nil && dir.IsDir {\n \t\t\t// Make it consistent with the modified parent.\n \t\t\tparent := pt.join(pt.replaceMappedLocations(dir.ParentFolder))\n \t\t\tfolderFormatMap[parent] = gitDirFormat\ndiff --git a/src/segments/path_unix_test.go b/src/segments/path_unix_test.go\nindex 6cf759a3..ecd56785 100644\n--- a/src/segments/path_unix_test.go\n+++ b/src/segments/path_unix_test.go\n@@ -698,18 +698,6 @@ var testSplitPathCases = []testSplitPathCase{\n \t\t\t{Name: \"d\", Path: \"~/c/d\"},","is_error":false}]},"uuid":"510902f7-3adb-4123-aa14-5ea344b194d1","timestamp":"2026-07-28T07:23:09.566Z","toolUseResult":{"stdout":"ab2e1ad9 feat: add darken() and lighten() color shade functions\n79eda3d8 chore(deps): bump the minor-patch group in /src with 2 updates\nca2f7641 docs(git): steer posh-git users to source: pwsh, add FAQ\n=== is 97967466 ab2e1ad9's parent? ===\n79eda3d8c7f7399213136564ff68afe81d164509\n=== local copy's diff vs upstream copy (non-website) ===\ndiff --git a/src/segments/path.go b/src/segments/path.go\nindex 4ab430ea..c3006dc6 100644\n--- a/src/segments/path.go\n+++ b/src/segments/path.go\n@@ -993,8 +993,7 @@ func (pt *Path) makeFolderFormatMap() map[string]string {\n \n \tif gitDirFormat := pt.options.String(GitDirFormat, \"\"); len(gitDirFormat) != 0 {\n \t\tdir, err := pt.env.HasParentFilePath(\".git\", false)\n-\t\tif err == nil {\n-\t\t\t// Linked worktrees use a .git file instead of a directory.\n+\t\tif err == nil && dir.IsDir {\n \t\t\t// Make it consistent with the modified parent.\n \t\t\tparent := pt.join(pt.replaceMappedLocations(dir.ParentFolder))\n \t\t\tfolderFormatMap[parent] = gitDirFormat\ndiff --git a/src/segments/path_unix_test.go b/src/segments/path_unix_test.go\nindex 6cf759a3..ecd56785 100644\n--- a/src/segments/path_unix_test.go\n+++ b/src/segments/path_unix_test.go\n@@ -698,18 +698,6 @@ var testSplitPathCases = []testSplitPathCase{\n \t\t\t{Name: \"d\", Path: \"~/c/d\"},","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"02e62b21-54af-4df5-b4af-82e79c9db211","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"510902f7-3adb-4123-aa14-5ea344b194d1","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU46fuqaRiLiHob3kQBF","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I found a meaningful difference in the git diff—the upstream version includes an additional check for `dir.IsDir` that's missing from the local branch, which is an actual behavioral fix rather than just a comment change.\n\nBut I need to reconsider what this diff actually represents. The direction matters: going from the local commit to upstream shows the addition of that guard. Since the diff is relatively small with only a handful of file changes, the two commits must be fairly close in the tree. That's puzzling given the local branch supposedly has 50 commits of SVG work—unless this local commit is actually one of the earlier ones in the rebase sequence.\n\nThe real question is whether the current HEAD has that `dir.IsDir` guard, since that's what determines if an upstream fix was lost during the rebase. And I should verify whether the rebase base (97967466) is actually a local commit or part of origin/next's history, since that affects what was supposed to be rebased.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1505,"cache_read_input_tokens":481262,"output_tokens":1242,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1505,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1242,"cache_read_input_tokens":481262,"cache_creation_input_tokens":1505,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1505},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU46VfwZFg3wCoLZr8nq","type":"assistant","uuid":"00b8ee9f-828e-45a6-b90f-85946d03edfa","timestamp":"2026-07-28T07:23:32.123Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"00b8ee9f-828e-45a6-b90f-85946d03edfa","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU46fuqaRiLiHob3kQBF","type":"message","role":"assistant","content":[{"type":"text","text":"That surfaced something that needs checking before you push — a real code difference, not just comments:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1505,"cache_read_input_tokens":481262,"output_tokens":1242,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1505,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1242,"cache_read_input_tokens":481262,"cache_creation_input_tokens":1505,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1505},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU46VfwZFg3wCoLZr8nq","type":"assistant","uuid":"cb80048e-edaa-495f-9dc6-5b95268b030d","timestamp":"2026-07-28T07:23:32.127Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cb80048e-edaa-495f-9dc6-5b95268b030d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU46fuqaRiLiHob3kQBF","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_016RcvzRXRUX7TyDFk28ijFG","name":"Bash","input":{"command":"grep -n -A2 'HasParentFilePath(\".git\", false)' src/segments/path.go | head -8; echo \"=== is the rebase base on origin/next? ===\"; git merge-base --is-ancestor 97967466 origin/next && echo \"yes, ancestor\" || echo \"NO - 97967466 is not on origin/next\"; echo \"=== where did 97967466 come from ===\"; git log --oneline -1 --format=\"%H %ci %s\" 97967466; git branch -a --contains 97967466 2>/dev/null | head","description":"Check for the lost guard and the rebase base origin"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1505,"cache_read_input_tokens":481262,"output_tokens":1242,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1505,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1242,"cache_read_input_tokens":481262,"cache_creation_input_tokens":1505,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1505},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU46VfwZFg3wCoLZr8nq","type":"assistant","uuid":"ac43c995-68c8-4c01-afed-921f83106acb","timestamp":"2026-07-28T07:23:33.850Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ac43c995-68c8-4c01-afed-921f83106acb","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_016RcvzRXRUX7TyDFk28ijFG","type":"tool_result","content":"965:\t\tdir, err := pt.env.HasParentFilePath(\".git\", false)\n966-\t\tif err == nil {\n967-\t\t\t// Linked worktrees use a .git file instead of a directory.\n=== is the rebase base on origin/next? ===\nNO - 97967466 is not on origin/next\n=== where did 97967466 come from ===\n979674668554ad6d842799ee7477c1bd50ba54dc 2026-07-28 09:02:38 +0200 docs(project-knowledge): clarify command output trimming\n* themes-svg\n remotes/origin/HEAD -> origin/main\n remotes/origin/main","is_error":false}]},"uuid":"8aeea9b0-2a14-498d-a7b7-c2fa1ea0725d","timestamp":"2026-07-28T07:23:35.039Z","toolUseResult":{"stdout":"965:\t\tdir, err := pt.env.HasParentFilePath(\".git\", false)\n966-\t\tif err == nil {\n967-\t\t\t// Linked worktrees use a .git file instead of a directory.\n=== is the rebase base on origin/next? ===\nNO - 97967466 is not on origin/next\n=== where did 97967466 come from ===\n979674668554ad6d842799ee7477c1bd50ba54dc 2026-07-28 09:02:38 +0200 docs(project-knowledge): clarify command output trimming\n* themes-svg\n remotes/origin/HEAD -> origin/main\n remotes/origin/main","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"ac43c995-68c8-4c01-afed-921f83106acb","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8aeea9b0-2a14-498d-a7b7-c2fa1ea0725d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU48bQXvhDJJznCKTNJo","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I need to double-check the diff direction here. Looking at the change from commit 273394c9 to ab2e1ad9, the original code had just `if err == nil` with a comment about linked worktrees, but the upstream version adds the `dir.IsDir` check to that condition.\n\nSo ab2e1ad9 (upstream on origin/next) has the guard, while the current HEAD matches 273394c9 without it — meaning the local branch is missing this safety check. The real issue is that the user rebased onto commit 97967466, which is a local-only commit not present on origin/next, so the rebase never pulled in the upstream changes that added the guard.\n\nThe branch has its own version of the shade feature (273394c9), while origin/next has a different implementation (ab2e1ad9) that includes the `dir.IsDir` fix. Since the rebase base was local, the branch never synced with origin/next and is still missing that critical guard. I need to figure out whether the `dir.IsDir` check is part of ab2e1ad9 itself or a separate upstream commit. I need to check the git history for that specific file on both branches to see which version is actually newer and whether the local code is intentionally different or just out of sync.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1439,"cache_read_input_tokens":482767,"output_tokens":1635,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1439,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1635,"cache_read_input_tokens":482767,"cache_creation_input_tokens":1439,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1439},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU48NhYs1U3vNw2Ya3QP","type":"assistant","uuid":"d8a09094-e4b5-4d6d-b123-766affde6244","timestamp":"2026-07-28T07:23:58.505Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d8a09094-e4b5-4d6d-b123-766affde6244","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU48bQXvhDJJznCKTNJo","type":"message","role":"assistant","content":[{"type":"text","text":"Two findings you need before pushing.\n\n**The rebase didn't actually sync with upstream.** `97967466` is a local commit contained only in `themes-svg` — not on `origin/next`. So this replayed 44 commits onto a local base rather than onto upstream, and `origin/next` is still one commit ahead.\n\n**And that missing commit carries a code fix, not just comments:**"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1439,"cache_read_input_tokens":482767,"output_tokens":1635,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1439,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1635,"cache_read_input_tokens":482767,"cache_creation_input_tokens":1439,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1439},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU48NhYs1U3vNw2Ya3QP","type":"assistant","uuid":"f69d09c7-16e5-4e28-874c-d9c76b496899","timestamp":"2026-07-28T07:23:58.832Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f69d09c7-16e5-4e28-874c-d9c76b496899","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU48bQXvhDJJznCKTNJo","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01KJr2DqjjEkM5krwdN5XYsK","name":"Bash","input":{"command":"echo \"=== upstream history for path.go ===\" && git log --oneline -4 origin/next -- src/segments/path.go && echo \"=== local branch history for path.go ===\" && git log --oneline -4 HEAD -- src/segments/path.go && echo \"=== upstream version of the guard ===\" && git show origin/next:src/segments/path.go | grep -n -A3 'HasParentFilePath(\".git\", false)' | head -8","description":"Determine which side of the guard is newer"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1439,"cache_read_input_tokens":482767,"output_tokens":1635,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1439,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1635,"cache_read_input_tokens":482767,"cache_creation_input_tokens":1439,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1439},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU48NhYs1U3vNw2Ya3QP","type":"assistant","uuid":"aaaed11a-ad41-4fb7-aedf-00851b02a1fe","timestamp":"2026-07-28T07:24:00.758Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"aaaed11a-ad41-4fb7-aedf-00851b02a1fe","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01KJr2DqjjEkM5krwdN5XYsK","type":"tool_result","content":"=== upstream history for path.go ===\n88ddbe0b fix(template): gate cmd/readFile/stat/glob behind trusted templates\n768cee68 fix(segments): replace the matched span, not the first text occurrence\n99bdc939 feat(segments): add mapped_locations_regex_expand to path segment\n49eef0e2 chore(src): fix various typos across src codebase\n=== local branch history for path.go ===\nb64a2619 refactor: strip restating comments across the codebase\n224eb9a8 fix(path): support gitdir_format in linked worktrees\n88ddbe0b fix(template): gate cmd/readFile/stat/glob behind trusted templates\n768cee68 fix(segments): replace the matched span, not the first text occurrence\n=== upstream version of the guard ===\n995:\t\tdir, err := pt.env.HasParentFilePath(\".git\", false)\n996-\t\tif err == nil && dir.IsDir {\n997-\t\t\t// Make it consistent with the modified parent.\n998-\t\t\tparent := pt.join(pt.replaceMappedLocations(dir.ParentFolder))","is_error":false}]},"uuid":"5a1b5b0b-8e6a-4bfe-953a-d8c846e7feea","timestamp":"2026-07-28T07:24:01.987Z","toolUseResult":{"stdout":"=== upstream history for path.go ===\n88ddbe0b fix(template): gate cmd/readFile/stat/glob behind trusted templates\n768cee68 fix(segments): replace the matched span, not the first text occurrence\n99bdc939 feat(segments): add mapped_locations_regex_expand to path segment\n49eef0e2 chore(src): fix various typos across src codebase\n=== local branch history for path.go ===\nb64a2619 refactor: strip restating comments across the codebase\n224eb9a8 fix(path): support gitdir_format in linked worktrees\n88ddbe0b fix(template): gate cmd/readFile/stat/glob behind trusted templates\n768cee68 fix(segments): replace the matched span, not the first text occurrence\n=== upstream version of the guard ===\n995:\t\tdir, err := pt.env.HasParentFilePath(\".git\", false)\n996-\t\tif err == nil && dir.IsDir {\n997-\t\t\t// Make it consistent with the modified parent.\n998-\t\t\tparent := pt.join(pt.replaceMappedLocations(dir.ParentFolder))","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"aaaed11a-ad41-4fb7-aedf-00851b02a1fe","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5a1b5b0b-8e6a-4bfe-953a-d8c846e7feea","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4ARyJYvrqZky2Rbjjp","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I had the direction of my concern backwards. Looking at the local branch history for path.go, I can see my refactoring commit followed by a local fix for gitdir_format support in linked worktrees that's newer than what's upstream. The shared ancestor is an older upstream commit, so the local version actually has additional changes on top.\n\nThe local commit deliberately relaxed the `IsDir` guard to `if err == nil` because linked worktrees use a `.git` file instead of a directory — exactly what the comment explains. So nothing is missing; the branch intentionally carries that code fix. I need to correct my earlier message plainly since I already mentioned it carries a code fix.\n\nNow I'm checking whether the rebase base is actually a local commit not on origin/next, which would mean the branch is still behind by one commit.\n\nLooking at the feature commits themselves — local has `273394c9 feat: add darken() and lighten()` and upstream has `ab2e1ad9` with the same subject. They're duplicates of the same feature, so the content already exists locally even if the hashes differ. The real question is whether upstream has anything genuinely absent from HEAD, so I need to diff HEAD against origin/next directly to see what's actually missing.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1990,"cache_read_input_tokens":484206,"output_tokens":1192,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1990,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1192,"cache_read_input_tokens":484206,"cache_creation_input_tokens":1990,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1990},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4AMD4g7pEz5ynaPfoa","type":"assistant","uuid":"d240f72c-0be2-4773-a613-c9199b9466cd","timestamp":"2026-07-28T07:24:16.938Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d240f72c-0be2-4773-a613-c9199b9466cd","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4ARyJYvrqZky2Rbjjp","type":"message","role":"assistant","content":[{"type":"text","text":"Correction — I had that backwards. Checking the history rather than the raw diff:\n\n`224eb9a8 fix(path): support gitdir_format in linked worktrees` is a **local** commit, newer than upstream's version of that line. It deliberately removed the `dir.IsDir` guard, because a linked worktree uses a `.git` *file* rather than a directory — which is what the comment on that line says. Nothing was lost; the local branch is ahead there, not behind.\n\nThe real remaining question is what upstream genuinely has that this branch doesn't:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1990,"cache_read_input_tokens":484206,"output_tokens":1192,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1990,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1192,"cache_read_input_tokens":484206,"cache_creation_input_tokens":1990,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1990},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4AMD4g7pEz5ynaPfoa","type":"assistant","uuid":"6fcbd34a-315f-49c8-9aa6-3f7822ddfcf1","timestamp":"2026-07-28T07:24:17.899Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6fcbd34a-315f-49c8-9aa6-3f7822ddfcf1","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4ARyJYvrqZky2Rbjjp","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01KSyacorhSc8v89EcsVDDwT","name":"Bash","input":{"command":"git diff HEAD origin/next --stat | tail -12 && echo \"=== does HEAD have the shade feature? ===\" && ls src/color/shade.go && git log --oneline -1 HEAD --grep=\"darken\"","description":"Compare HEAD against upstream tip"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1990,"cache_read_input_tokens":484206,"output_tokens":1192,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1990,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1192,"cache_read_input_tokens":484206,"cache_creation_input_tokens":1990,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1990},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4AMD4g7pEz5ynaPfoa","type":"assistant","uuid":"39765dda-6b74-4185-9d60-7f3fc663c524","timestamp":"2026-07-28T07:24:19.219Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"39765dda-6b74-4185-9d60-7f3fc663c524","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01KSyacorhSc8v89EcsVDDwT","type":"tool_result","content":" website/src/css/custom.css | 142 +--\n website/src/pages/index.js | 187 ++--\n website/src/pages/segments.js | 32 -\n website/src/pages/styles.module.css | 84 +-\n website/static/fonts/VictorMono.ttf | Bin 2423696 -> 2440352 bytes\n website/static/img/themes/.keep | 0\n website/static/llms-full.txt | 4 +-\n website/static/llms.txt | 9 +-\n website/static/skill.md | 2 +-\n website/static/skills/ohmyposh/SKILL.md | 4 +-\n website/static/skills/ohmyposh/configuration.md | 2 +-\n 268 files changed, 4102 insertions(+), 13196 deletions(-)\n=== does HEAD have the shade feature? ===\nsrc/color/shade.go\n273394c9 feat: add darken() and lighten() color shade functions","is_error":false}]},"uuid":"780afdb7-9ced-4c89-97a8-7a2fd09b6393","timestamp":"2026-07-28T07:24:20.324Z","toolUseResult":{"stdout":" website/src/css/custom.css | 142 +--\n website/src/pages/index.js | 187 ++--\n website/src/pages/segments.js | 32 -\n website/src/pages/styles.module.css | 84 +-\n website/static/fonts/VictorMono.ttf | Bin 2423696 -> 2440352 bytes\n website/static/img/themes/.keep | 0\n website/static/llms-full.txt | 4 +-\n website/static/llms.txt | 9 +-\n website/static/skill.md | 2 +-\n website/static/skills/ohmyposh/SKILL.md | 4 +-\n website/static/skills/ohmyposh/configuration.md | 2 +-\n 268 files changed, 4102 insertions(+), 13196 deletions(-)\n=== does HEAD have the shade feature? ===\nsrc/color/shade.go\n273394c9 feat: add darken() and lighten() color shade functions","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"39765dda-6b74-4185-9d60-7f3fc663c524","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"780afdb7-9ced-4c89-97a8-7a2fd09b6393","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4BmbnQt5zrr43f4AUZ","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The diff shows 268 files changed between HEAD and origin/next, which is expected for the branch's own work. I can see the shade feature is already present locally in the codebase from an earlier commit, so the version on origin/next appears to be a duplicate. The rebase went through successfully with everything verified, though the base was a local commit rather than origin/next itself—but content-wise, the only thing from origin/next not already in the branch is...\n\nNow I need to verify whether the shade feature implementations are actually identical between the two versions. Let me check the specific files involved—shade.go and the resolveShade function in palette.go—to see if there are any meaningful differences beyond what's explained by other commits in between.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1517,"cache_read_input_tokens":486196,"output_tokens":694,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1517,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":694,"cache_read_input_tokens":486196,"cache_creation_input_tokens":1517,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1517},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4BiBewjDaairaZQkKR","type":"assistant","uuid":"569192c6-ab23-4676-8194-ad635b80014c","timestamp":"2026-07-28T07:24:30.244Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"569192c6-ab23-4676-8194-ad635b80014c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4BmbnQt5zrr43f4AUZ","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01NYePfECMaepndbBojeuRQL","name":"Bash","input":{"command":"git diff HEAD origin/next -- src/color/shade.go src/color/shade_test.go | head -20; echo \"--- (empty above = identical) ---\"; echo \"=== resolveShade in both? ===\"; git show origin/next:src/color/palette.go | grep -c \"func (p Palette) resolveShade\"; grep -c \"func (p Palette) resolveShade\" src/color/palette.go","description":"Compare the shade feature between branch and upstream"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1517,"cache_read_input_tokens":486196,"output_tokens":694,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1517,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":694,"cache_read_input_tokens":486196,"cache_creation_input_tokens":1517,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1517},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4BiBewjDaairaZQkKR","type":"assistant","uuid":"1462ba45-1091-4b88-80b3-0d4997c3c49d","timestamp":"2026-07-28T07:24:30.775Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1462ba45-1091-4b88-80b3-0d4997c3c49d","isSidechain":false,"promptId":"4d7799d7-c809-4ad2-8d83-22a74d45a502","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01NYePfECMaepndbBojeuRQL","type":"tool_result","content":"--- (empty above = identical) ---\n=== resolveShade in both? ===\n1\n1","is_error":false}]},"uuid":"5612095b-5d7a-492e-b2d9-5cf0717ccb46","timestamp":"2026-07-28T07:24:31.952Z","toolUseResult":{"stdout":"--- (empty above = identical) ---\n=== resolveShade in both? ===\n1\n1","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"1462ba45-1091-4b88-80b3-0d4997c3c49d","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5612095b-5d7a-492e-b2d9-5cf0717ccb46","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"64a02280-55a1-4566-9e9a-cfb4e7cd2d2d","timestamp":"2026-07-28T07:24:31.958Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"64a02280-55a1-4566-9e9a-cfb4e7cd2d2d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4CkEDTo7NReEcXmYYi","type":"message","role":"assistant","content":[{"type":"text","text":"Rebase is done and verified. Summary:\n\n**The conflict** was one file, `src/color/palette.go`. Upstream added `resolveShade` (the `darken()`/`lighten()` palette resolution); my \"strip restating comments\" commit rewrote the doc comment on `MaybeResolveColor` directly below it. Adjacent edits, so git couldn't separate them. Kept both — the function verbatim, the comment rewrite applied, after confirming the rewrite is accurate (`emptyColor = Ansi(\"\")`, matching the `\"\"` the code returns).\n\n**Verification after all 44 commits replayed:**\n\n- Build, full test suite, `golangci-lint` — clean\n- All 124 themes render **byte-identically to pre-rebase**\n- Benchmarks at baseline: 688/14, 312/6, 488/16, 1785/17, 808/28\n- Working tree clean\n\n**One correction to what I said mid-way:** I flagged a missing `dir.IsDir` guard in `path.go` as a lost upstream fix. That was wrong — I read a raw two-commit diff instead of the history. `224eb9a8 fix(path): support gitdir_format in linked worktrees` is a *local* commit, newer than upstream's line, and it removed that guard on purpose because a linked worktree uses a `.git` file rather than a directory. Nothing was lost.\n\n**Worth knowing about the branch topology:** the rebase base `97967466` is a local commit, not on `origin/next`, so this didn't put you on top of upstream. `git log HEAD..origin/next` still shows one commit — `ab2e1ad9 feat: add darken() and lighten() color shade functions`. I checked whether that's a genuine gap: `src/color/shade.go` and `shade_test.go` are **identical** between the two, and `resolveShade` exists in both. It's the same feature under a different hash, already in your branch as `273394c9`.\n\nSo content-wise you're not missing anything. But git still sees that commit as unmerged, which means a later merge or PR against `next` will show it as diverged history. If you want the branch to sit cleanly on top of upstream, the fix is `git rebase --onto origin/next 97967466` — git should drop the duplicate by patch-id, though the two copies differ slightly in comments, so it may need one more trivial resolution. Your call whether that's worth doing now or at PR time."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":858,"cache_read_input_tokens":487713,"output_tokens":788,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":858,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":788,"cache_read_input_tokens":487713,"cache_creation_input_tokens":858,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":858},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4CaTqkERGRwQYHZNiJ","type":"assistant","uuid":"f8b38a7c-077b-4b9f-81f6-3a45187e689b","timestamp":"2026-07-28T07:24:48.243Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f8b38a7c-077b-4b9f-81f6-3a45187e689b","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":3669},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T07:24:54.739Z","uuid":"5d044c45-b040-4a9a-a15a-273927349bbc","toolUseID":"17cc65ef-4e30-4997-9a9b-d2a951eab688","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5d044c45-b040-4a9a-a15a-273927349bbc","isSidechain":false,"promptId":"b72a6db0-dc6c-4a4e-a999-2e08aa26c6f0","type":"user","message":{"role":"user","content":"Provide me an explanation of the studio design and work we should be doing:\n\n* How will we generate the SVGs?\n* How will we render this?\n* Where does that logic live?"},"uuid":"0cd2e463-a307-4223-be86-23fa65141c34","timestamp":"2026-07-28T07:27:04.301Z","permissionMode":"auto","origin":{"kind":"human"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0cd2e463-a307-4223-be86-23fa65141c34","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-0d6d4d47-b8c3-4ea6-a446-0f8d5780af5f","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"afb9115c-2466-4abf-a0c8-940d56d9eb76","timestamp":"2026-07-28T07:27:04.518Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"afb9115c-2466-4abf-a0c8-940d56d9eb76","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4PyAPgX6tTtXrty7Ud","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm thinking through the design of the studio—specifically how SVG generation works, where the rendering happens, and how the logic is organized. The `src/svg` package has a pure `Encode` function that takes terminal runs and options, returning a string with no side effects. For capturing runs, there's `terminal.CaptureRuns` combined with `prompt.Engine.CapturedRuns()` and `CursorAnchor()`, and the `--data` flag handles replay through config export.\n\nI'm noting that replay hermiticity depends on whether all segments are recorded—the recorder now captures everything with the enabled flag set, so replay is hermetic if the data file is complete. The website runs on Azure Static Web Apps with Azure Functions handling auth and MCP in JavaScript, and the CLI can cross-compile statically with `CGO_ENABLED=0`. There's already precedent for shelling out to the CLI at build time, like in `website/export_themes.mjs`.\n\nNow I'm considering the core architectural question: where should the studio's render logic live? I'm weighing three main approaches—a server-side API endpoint that invokes the Go binary per request, compiling the engine to WASM for client-side rendering, or reimplementing the logic purely in JavaScript on the client.\n\nThe memory indicates the plan is to start with a Function-based approach and move to WASM only if latency becomes a bottleneck. Let me verify the current state of the website API structure and whether the Go module can actually compile to WASM.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":128,"cache_read_input_tokens":489358,"output_tokens":1056,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":128,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1056,"cache_read_input_tokens":489358,"cache_creation_input_tokens":128,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":128},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4PramC1PL3vm1x5L4B","type":"assistant","uuid":"f49cca83-bbcb-4a5a-b299-2f36fcacc3ca","timestamp":"2026-07-28T07:27:21.651Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f49cca83-bbcb-4a5a-b299-2f36fcacc3ca","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4PyAPgX6tTtXrty7Ud","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01BANCUsZqjppcMN8aYXomMe","name":"Bash","input":{"command":"find website/api -type f -name \"*.js\" -o -type f -name \"*.json\" | grep -v node_modules | head -20; echo \"=== SWA config ===\"; ls website/staticwebapp.config.json 2>/dev/null && head -30 website/staticwebapp.config.json 2>/dev/null","description":"Inspect existing API functions"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":128,"cache_read_input_tokens":489358,"output_tokens":1056,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":128,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1056,"cache_read_input_tokens":489358,"cache_creation_input_tokens":128,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":128},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4PramC1PL3vm1x5L4B","type":"assistant","uuid":"f4163f5d-e23b-4cbe-9efd-87b67fda3787","timestamp":"2026-07-28T07:27:21.659Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f4163f5d-e23b-4cbe-9efd-87b67fda3787","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4PyAPgX6tTtXrty7Ud","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01DehazGFiUk4JUwzhgKm31r","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && grep -n \"func Encode\" svg/svg.go && echo \"=== does svg import anything with IO? ===\" && go list -deps ./svg/ | grep -E \"^github.com/jandedobbeleer\" ","description":"Check the svg package dependency surface"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":128,"cache_read_input_tokens":489358,"output_tokens":1056,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":128,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1056,"cache_read_input_tokens":489358,"cache_creation_input_tokens":128,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":128},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4PramC1PL3vm1x5L4B","type":"assistant","uuid":"9a9b7f03-417a-4d03-92c2-95d9f6ce8528","timestamp":"2026-07-28T07:27:22.699Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f4163f5d-e23b-4cbe-9efd-87b67fda3787","isSidechain":false,"promptId":"b72a6db0-dc6c-4a4e-a999-2e08aa26c6f0","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01BANCUsZqjppcMN8aYXomMe","type":"tool_result","content":"website/api/auth/function.json\nwebsite/api/auth/index.js\nwebsite/api/host.json\nwebsite/api/mcp/.well-known/mcp.json\nwebsite/api/mcp/function.json\nwebsite/api/mcp/index.js\nwebsite/api/mcp/server.json\nwebsite/api/mcp/validate-server.js\nwebsite/api/package-lock.json\nwebsite/api/package.json\nwebsite/api/proxies.json\nwebsite/api/refresh/function.json\nwebsite/api/refresh/index.js\nwebsite/api/shared/strava.js\nwebsite/api/shared/validator.js\nwebsite/api/shared/withings.js\nwebsite/api/test/validator.test.js\n=== SWA config ===\nwebsite/staticwebapp.config.json\n{\n \"platform\": {\n \"apiRuntime\": \"node:20\"\n }\n}","is_error":false}]},"uuid":"0a0bfd0f-9f9c-446a-9964-538b2d042aa7","timestamp":"2026-07-28T07:27:22.869Z","toolUseResult":{"stdout":"website/api/auth/function.json\nwebsite/api/auth/index.js\nwebsite/api/host.json\nwebsite/api/mcp/.well-known/mcp.json\nwebsite/api/mcp/function.json\nwebsite/api/mcp/index.js\nwebsite/api/mcp/server.json\nwebsite/api/mcp/validate-server.js\nwebsite/api/package-lock.json\nwebsite/api/package.json\nwebsite/api/proxies.json\nwebsite/api/refresh/function.json\nwebsite/api/refresh/index.js\nwebsite/api/shared/strava.js\nwebsite/api/shared/validator.js\nwebsite/api/shared/withings.js\nwebsite/api/test/validator.test.js\n=== SWA config ===\nwebsite/staticwebapp.config.json\n{\n \"platform\": {\n \"apiRuntime\": \"node:20\"\n }\n}","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"f4163f5d-e23b-4cbe-9efd-87b67fda3787","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9a9b7f03-417a-4d03-92c2-95d9f6ce8528","isSidechain":false,"promptId":"b72a6db0-dc6c-4a4e-a999-2e08aa26c6f0","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01DehazGFiUk4JUwzhgKm31r","type":"tool_result","content":"296:func Encode(rows [][]terminal.Run, opts Options) string {\n=== does svg import anything with IO? ===\ngithub.com/jandedobbeleer/oh-my-posh/src/log\ngithub.com/jandedobbeleer/oh-my-posh/src/maps\ngithub.com/jandedobbeleer/oh-my-posh/src/regex\ngithub.com/jandedobbeleer/oh-my-posh/src/generics\ngithub.com/jandedobbeleer/oh-my-posh/src/text\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/path\ngithub.com/jandedobbeleer/oh-my-posh/src/cache\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/battery\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/jobs\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/cmd\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/http\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime\ngithub.com/jandedobbeleer/oh-my-posh/src/build\ngithub.com/jandedobbeleer/oh-my-posh/src/template\ngithub.com/jandedobbeleer/oh-my-posh/src/color\ngithub.com/jandedobbeleer/oh-my-posh/src/dsc\ngithub.com/jandedobbeleer/oh-my-posh/src/shell\ngithub.com/jandedobbeleer/oh-my-posh/src/terminal\ngithub.com/jandedobbeleer/oh-my-posh/src/svg","is_error":false}]},"uuid":"a432cf0a-d3c9-4a22-97a9-bbf26092095c","timestamp":"2026-07-28T07:27:26.462Z","toolUseResult":{"stdout":"296:func Encode(rows [][]terminal.Run, opts Options) string {\n=== does svg import anything with IO? ===\ngithub.com/jandedobbeleer/oh-my-posh/src/log\ngithub.com/jandedobbeleer/oh-my-posh/src/maps\ngithub.com/jandedobbeleer/oh-my-posh/src/regex\ngithub.com/jandedobbeleer/oh-my-posh/src/generics\ngithub.com/jandedobbeleer/oh-my-posh/src/text\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/path\ngithub.com/jandedobbeleer/oh-my-posh/src/cache\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/battery\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/jobs\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/cmd\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/http\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime\ngithub.com/jandedobbeleer/oh-my-posh/src/build\ngithub.com/jandedobbeleer/oh-my-posh/src/template\ngithub.com/jandedobbeleer/oh-my-posh/src/color\ngithub.com/jandedobbeleer/oh-my-posh/src/dsc\ngithub.com/jandedobbeleer/oh-my-posh/src/shell\ngithub.com/jandedobbeleer/oh-my-posh/src/terminal\ngithub.com/jandedobbeleer/oh-my-posh/src/svg","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"9a9b7f03-417a-4d03-92c2-95d9f6ce8528","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a432cf0a-d3c9-4a22-97a9-bbf26092095c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4RWLQfwVRSY2yQYS6Y","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm discovering that the `svg` package has a much larger transitive dependency footprint than expected—it pulls in the entire runtime engine through imports of `terminal` and `color`. I need to trace through what's actually causing `runtime/http` to be included in the closure.\n\nFor WASM specifically, this matters because if the encoder drags in `runtime/cmd` and `runtime/http`, the binary gets heavier and the SSRF surface expands. But actually, the studio renderer needs the full `prompt.Engine` anyway, so the whole dependency tree comes along regardless.\n\nThe real constraint I'm hitting is the Azure Functions runtime—it's Node.js only, and Go would require a custom handler. Azure Static Web Apps managed functions don't support custom handlers, so I'd need a separate Function App for Go code. Let me test whether the repo can even build for WASM to see if that's a viable path forward.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1917,"cache_read_input_tokens":489486,"output_tokens":791,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1917,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":791,"cache_read_input_tokens":489486,"cache_creation_input_tokens":1917,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1917},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4RRYRfan46dJ8QkZsR","type":"assistant","uuid":"0048f6b7-5796-42b6-9d9f-c282bcb8be51","timestamp":"2026-07-28T07:27:38.797Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0048f6b7-5796-42b6-9d9f-c282bcb8be51","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4RWLQfwVRSY2yQYS6Y","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01DqXG4FKFjCd7aacaTgAeBa","name":"Bash","input":{"command":"GOOS=js GOARCH=wasm go build -o /dev/null ./svg/ ./terminal/ ./color/ 2>&1 | head -5 && echo \"--- encoder packages: wasm OK ---\"; GOOS=js GOARCH=wasm go build -o /dev/null ./prompt/ 2>&1 | head -5 && echo \"--- prompt: wasm OK ---\"","description":"Test WASM buildability of the render path"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1917,"cache_read_input_tokens":489486,"output_tokens":791,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1917,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":791,"cache_read_input_tokens":489486,"cache_creation_input_tokens":1917,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1917},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4RRYRfan46dJ8QkZsR","type":"assistant","uuid":"dc2be637-dcdf-496a-9412-091fbbe480a4","timestamp":"2026-07-28T07:27:38.926Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dc2be637-dcdf-496a-9412-091fbbe480a4","isSidechain":false,"promptId":"b72a6db0-dc6c-4a4e-a999-2e08aa26c6f0","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01DqXG4FKFjCd7aacaTgAeBa","type":"tool_result","content":"# github.com/jandedobbeleer/oh-my-posh/src/runtime/jobs\nruntime\\jobs\\jobs_other.go:27:41: unknown field Setpgid in struct literal of type syscall.SysProcAttr\n# github.com/jandedobbeleer/oh-my-posh/src/runtime/battery\nruntime\\battery\\battery_windows_nix.go:55:20: undefined: systemGetAll\n--- encoder packages: wasm OK ---\n# github.com/jandedobbeleer/oh-my-posh/src/runtime/jobs\nruntime\\jobs\\jobs_other.go:27:41: unknown field Setpgid in struct literal of type syscall.SysProcAttr\n# github.com/jandedobbeleer/oh-my-posh/src/runtime/battery\nruntime\\battery\\battery_windows_nix.go:55:20: undefined: systemGetAll\n# github.com/charmbracelet/bubbletea\n--- prompt: wasm OK ---","is_error":false}]},"uuid":"474a1005-ad40-4b5e-b623-21e6eb40164f","timestamp":"2026-07-28T07:27:58.747Z","toolUseResult":{"stdout":"# github.com/jandedobbeleer/oh-my-posh/src/runtime/jobs\nruntime\\jobs\\jobs_other.go:27:41: unknown field Setpgid in struct literal of type syscall.SysProcAttr\n# github.com/jandedobbeleer/oh-my-posh/src/runtime/battery\nruntime\\battery\\battery_windows_nix.go:55:20: undefined: systemGetAll\n--- encoder packages: wasm OK ---\n# github.com/jandedobbeleer/oh-my-posh/src/runtime/jobs\nruntime\\jobs\\jobs_other.go:27:41: unknown field Setpgid in struct literal of type syscall.SysProcAttr\n# github.com/jandedobbeleer/oh-my-posh/src/runtime/battery\nruntime\\battery\\battery_windows_nix.go:55:20: undefined: systemGetAll\n# github.com/charmbracelet/bubbletea\n--- prompt: wasm OK ---","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"dc2be637-dcdf-496a-9412-091fbbe480a4","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"474a1005-ad40-4b5e-b623-21e6eb40164f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4TtxW24VvJ3KyZJc8z","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The WASM build is failing across multiple modules — `runtime/jobs` and `runtime/battery` have platform-specific calls that don't work with JavaScript, and `bubbletea` won't compile either. I realized my build script's `&&` chaining was misleading because the pipe exit codes made it print \"OK\" even though the build actually failed. So WASM definitely doesn't build right now, and fixing it would require build-tagged stubs for those problematic modules.\n\nNow I need to trace how `runtime/http` gets pulled into the SVG generation to understand the SSRF attack surface, then I can write up the design properly.","signature":"CAIS+gcKhwEIEBgCKkCpXed8obRZ8GTowgJv31i5pg2MPlnTDsGClz8JoFpPOgsLLCkmsjGi+VE/ngiGivFkya1S9aK2M5/iS3sbtpEVMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDB6G6SilisyEUSXrMxoMtt7olJYCeGkhqDzzIjCFXklQz3kheIvmnThlQdFFYykVld4EoAgwr+WX+M9v9V5NQF8Dz3Ms7PB7vxOk5ykqnwbZTvxK+WJJGXrx5xkCnMJWTPQacV6gXwBjW0HNUhazVdfmU48tskrjW3G5JXvfw5uBnSxrmN5MvKCtYoc8j5v/aRpMhA80oGkHC91hA7nTctaOru6U73YKgGeph3Wo2r+amzqLatGOB0UsPLTq7Y2yRW5E3vbieUm5BtpTRHZSugGgx0xSlKi5T8Qkhv990pfxlT64ii39/kqjSQuYGLpXfeLgzGad6oRIiAj1Xu/pdtvmRx43PeyT3utPthWJTQdWpbH9TUyByTewyDQtGM+nqmReBHs2Utvr4FJHAzw7gUTC4irhQ69CzJnkEN/7STLNq8tYXTMLHAn3j1KmVwrb4kjEvd3+ZTlITtFz45jAHTZTPKq9ooyQmVzK6g5WlD8T6ZnXQD5GOywqt2bWDdE1lm3Vl5Vuh5FVNcQDm+dQ4CMPKqOKtXtBtANy1MsGSEpbYf3SI8VCEOj/ZmH6YYVTe5ZeqORkosc4NWohFT51eYMercE7XrE1IWw24acr/07lsBxIGfXVtll2emLr65nWUupXcpG1ON2fmGWqrhAwjdNa1F7ew3ZZbkujbZ7mkr9n4PFTUy80xLAtYVZpzph7xgDhdFxWN3grcrp80rmhimjxqWai4vYqQxodfbQZrRhm5Gj+Nq2lyihntEcBu892j84H8ATuaEfpEUqP7i7jEwb3EgeWclBmLLW+/BaFKePdFOyUqt7kSdtnRFzQfjbaRKvyWr319fWnI3eE3E/CHB+g6CRfri79bqQhPXCRxSi6RR55ALQYdkwOVr/r20I2YOF8jbcqH+eOCY3YjBbbbCUeMjp7GtZGVkQqEfDXh+dpd3yss382XzWuLLwXd0MErL0XyhupR/JC6X/UIHfLsimrqScMNBSDPvFtfzhGlmUJoB2tg/MH3gV65rs5jac8WX5JZgKyj9tTq6E495dKY+XHe5InBERny0WsXQZx40ptuWuu7nN23bZFPxMzwaObClC3AzZb9zDukQQdaIe3qCzijhxpamjXzG9+3hhgrKjNZpa4+jaVjzSzqsdEfc1nYNCTgkYn7BAidKg5xdpEGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1116,"cache_read_input_tokens":491403,"output_tokens":627,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1116,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":627,"cache_read_input_tokens":491403,"cache_creation_input_tokens":1116,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1116},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4TpVrduyZnVsSZXPao","type":"assistant","uuid":"17103d13-a8c3-452c-85d5-df08a757c22e","timestamp":"2026-07-28T07:28:07.402Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"17103d13-a8c3-452c-85d5-df08a757c22e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4TtxW24VvJ3KyZJc8z","type":"message","role":"assistant","content":[{"type":"text","text":"My `&&` chaining printed those \"OK\" lines off the pipe's exit code, not the build's — **both WASM builds actually failed**. That's a useful finding, not a passing check. Tracing the blockers and the dependency surface:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1116,"cache_read_input_tokens":491403,"output_tokens":627,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1116,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":627,"cache_read_input_tokens":491403,"cache_creation_input_tokens":1116,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1116},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4TpVrduyZnVsSZXPao","type":"assistant","uuid":"c8d7aff2-9f14-4310-8dc7-061b05891a77","timestamp":"2026-07-28T07:28:07.999Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c8d7aff2-9f14-4310-8dc7-061b05891a77","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4TtxW24VvJ3KyZJc8z","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_012ra9DYQCupRiuADujoFX2H","name":"Bash","input":{"command":"echo \"=== why does svg pull in runtime/http? ===\" && go mod why -m github.com/jandedobbeleer/oh-my-posh/src 2>/dev/null | head -3; grep -n \"runtime/http\\|runtime/cmd\" color/*.go template/*.go terminal/*.go 2>/dev/null | grep import -A2 | head; echo \"--- direct importers of runtime/http ---\"; grep -rln \"runtime/http\" --include=*.go . | grep -v _test | head","description":"Trace what drags http into the encoder"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1116,"cache_read_input_tokens":491403,"output_tokens":627,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1116,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":627,"cache_read_input_tokens":491403,"cache_creation_input_tokens":1116,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1116},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4TpVrduyZnVsSZXPao","type":"assistant","uuid":"791286af-7377-47e3-8eac-4dd2073575f9","timestamp":"2026-07-28T07:28:10.281Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"791286af-7377-47e3-8eac-4dd2073575f9","isSidechain":false,"promptId":"b72a6db0-dc6c-4a4e-a999-2e08aa26c6f0","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_012ra9DYQCupRiuADujoFX2H","type":"tool_result","content":"=== why does svg pull in runtime/http? ===\n# github.com/jandedobbeleer/oh-my-posh/src\ngithub.com/jandedobbeleer/oh-my-posh/src\n--- direct importers of runtime/http ---\n./cli/auth/copilot.go\n./cli/auth/ytmda.go\n./cli/font/download.go\n./cli/font/fonts.go\n./cli/upgrade/config.go\n./cli/upgrade/notice.go\n./config/load.go\n./config/migrate_glyphs.go\n./runtime/environment.go\n./runtime/mock/environment.go","is_error":false}]},"uuid":"28973de8-33a0-49d8-a316-eef7c7fa5538","timestamp":"2026-07-28T07:28:13.817Z","toolUseResult":{"stdout":"=== why does svg pull in runtime/http? ===\n# github.com/jandedobbeleer/oh-my-posh/src\ngithub.com/jandedobbeleer/oh-my-posh/src\n--- direct importers of runtime/http ---\n./cli/auth/copilot.go\n./cli/auth/ytmda.go\n./cli/font/download.go\n./cli/font/fonts.go\n./cli/upgrade/config.go\n./cli/upgrade/notice.go\n./config/load.go\n./config/migrate_glyphs.go\n./runtime/environment.go\n./runtime/mock/environment.go","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"791286af-7377-47e3-8eac-4dd2073575f9","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"28973de8-33a0-49d8-a316-eef7c7fa5538","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4V1k4PH2vD1jKHTSmo","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm seeing that `runtime/http` gets pulled in through `runtime/environment.go` and also through `config/load.go`, which can fetch configs from remote URLs. That's a significant SSRF surface I hadn't fully considered — if a studio endpoint accepts a config path or URL parameter, it could potentially load arbitrary remote configurations, opening up another attack vector beyond just the segments themselves.","signature":"CAIS0QYKhwEIEBgCKkBd6JPx5gyEQ7tuYh1pw4ZfImQe7vAXrDGrX+/3KlP6UA20BhFqeU8kqP5KJPUDTlzX9C9h6h12OigLjNskVZa9Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDN7XYGLupNd5ZUUmAxoMPSJOKbiv2Lv70VdkIjA+KKP/ej+mFUaDp21TtI0BP5PZWPIWv4h7ZWopkb4jEgAogvsKU2pfTH6a3vY96Hwq9gR9JEzQ8jdkKhVja9+p1jT97RXVxxH0o0ECfvV4OD/AymtqZ3UUCRgXQF97Q5u1q02dJnXawhNp3i0wq76C3js3eDNExwvO6H2sWUrg0r1schHrInAAKFaPfj13QL4onZlEMOgBEeRBBaN15S9b3u9jdCJSFTiQ5yXwV2rgIja5ZqHTJim0rjg68s4SLCOoOqrc7aq4C0sOp5gnHqOfV6Fwa/CKfcoQMaYFaGmijwBujcmfqSUlb7p+7K68owC5Uc1sj9RoqZqlwRbzO1LcIauDcVbyE5QEf9YqAxobdTMbrCFANPTlFDjLnfrmvQMHcgseBDIf0/TLJHtdQ0AG3OL56Aj9lhouaeh8drvay0E9APK1qK4sEsUWdNu+CZUrcS3ShXlxNOIFFxbMjoCdcWcnTW0lXpm20XEMUPRuKqOtFwg5xywCmC9O2Mm0dkle+uHtD0JDRJmKqR4xbB1h3LTBIB+aSqN9lVRYzHuzMBnSvdEQBs/r2Lpzz/iym8Haas2ZB+3v/KbvDrEqAH6TMa9omu4KuFCFuzkcV6Ig9njbnvYCcbiZ8crOdamxRW/pFE3+ZPYLeR0yK3Rs1G171SNTpF5GXQwkDFt0JFszStqesu8wxkjizzR62qk5uPdfdmWyUhoy2CLoHdo4rNubriKSFZ+hQJeLw3UwGv0EcjMlfwYIGZtCppEsaFc3QM6goYAUDgVcI0YH8Ey/6CtvZ0M7M+wrxmbl9/EEc9EYg4H1JsGbv/LAao4Vsc9ptF3enuRLgGDhE6iRg0O7c/Nb9z2sj+Jn/IIxNHCllPtf5EiLV+8gzdBSWk3nziPukt1DkRSyd2l+OJkYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":816,"cache_read_input_tokens":492519,"output_tokens":373,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":816,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":373,"cache_read_input_tokens":492519,"cache_creation_input_tokens":816,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":816},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4Uv8Doc7dRMRawf2ED","type":"assistant","uuid":"8e7fd885-b883-4069-a29e-dbb9822f6a91","timestamp":"2026-07-28T07:28:20.753Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8e7fd885-b883-4069-a29e-dbb9822f6a91","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4V1k4PH2vD1jKHTSmo","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Vj7oycvfvRDm5Zr8uPEuyY","name":"Bash","input":{"command":"grep -n -B3 -A12 \"func.*loadRemote\\|http.Do\\|Get(configFile\\|isRemote\\|strings.HasPrefix(.*http\" config/load.go | head -30","description":"Confirm config can be loaded from a URL"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":816,"cache_read_input_tokens":492519,"output_tokens":373,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":816,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":373,"cache_read_input_tokens":492519,"cache_creation_input_tokens":816,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":816},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4Uv8Doc7dRMRawf2ED","type":"assistant","uuid":"c4b049c5-e81d-40cf-85cc-8f1a75f02fc8","timestamp":"2026-07-28T07:28:21.138Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c4b049c5-e81d-40cf-85cc-8f1a75f02fc8","isSidechain":false,"promptId":"b72a6db0-dc6c-4a4e-a999-2e08aa26c6f0","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Vj7oycvfvRDm5Zr8uPEuyY","type":"tool_result","content":"55-func resolveConfigLocation(config string) string {\n56-\tdefer log.Trace(time.Now())\n57-\n58:\tif strings.HasPrefix(config, \"https://\") {\n59-\t\treturn config\n60-\t}\n61-\n62-\tif url, OK := isTheme(config); OK {\n63-\t\tlog.Debug(\"theme detected, using theme file\")\n64-\t\treturn url\n65-\t}\n66-\n67-\t// Clean the config path so it works regardless of the OS\n68-\tconfig = filepath.ToSlash(config)\n69-\n70-\t// Cygwin path always needs the full path as we're on Windows but not really.\n--\n136-\n137-\t\t// anchor the next hop's relative extends path against this hop's own\n138-\t\t// directory, not the directory of the config that started the chain\n139:\t\tif !strings.HasPrefix(cfg.Extends, \"https://\") {\n140-\t\t\tparentFolder = filepath.Dir(cfg.Extends)\n141-\t\t}\n142-\n143-\t\terr = base.merge(cfg)\n144-\t\tif err != nil {\n145-\t\t\tlog.Error(err)\n146-\t\t\tbreak\n147-\t\t}\n148-","is_error":false}]},"uuid":"401bd45c-3a55-4d40-b3a5-76571a8aea48","timestamp":"2026-07-28T07:28:22.086Z","toolUseResult":{"stdout":"55-func resolveConfigLocation(config string) string {\n56-\tdefer log.Trace(time.Now())\n57-\n58:\tif strings.HasPrefix(config, \"https://\") {\n59-\t\treturn config\n60-\t}\n61-\n62-\tif url, OK := isTheme(config); OK {\n63-\t\tlog.Debug(\"theme detected, using theme file\")\n64-\t\treturn url\n65-\t}\n66-\n67-\t// Clean the config path so it works regardless of the OS\n68-\tconfig = filepath.ToSlash(config)\n69-\n70-\t// Cygwin path always needs the full path as we're on Windows but not really.\n--\n136-\n137-\t\t// anchor the next hop's relative extends path against this hop's own\n138-\t\t// directory, not the directory of the config that started the chain\n139:\t\tif !strings.HasPrefix(cfg.Extends, \"https://\") {\n140-\t\t\tparentFolder = filepath.Dir(cfg.Extends)\n141-\t\t}\n142-\n143-\t\terr = base.merge(cfg)\n144-\t\tif err != nil {\n145-\t\t\tlog.Error(err)\n146-\t\t\tbreak\n147-\t\t}\n148-","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"c4b049c5-e81d-40cf-85cc-8f1a75f02fc8","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"401bd45c-3a55-4d40-b3a5-76571a8aea48","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4VdRuUCntwPtp2npKd","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I've identified a second SSRF vulnerability through the `extends` mechanism that can chain remote URLs recursively, separate from the segments vector. Now I'm ready to structure the answer around their three core questions about SVG generation, rendering, and where that logic belongs.\n\nThe generation pipeline follows the same path the gallery already uses: the config loads, feeds into the prompt engine with terminal capture enabled, which records the run stream while rendering ANSI output, then converts those captured runs and cursor position into SVG. The `svg.Encode` function is pure and deterministic — just takes rows and options, returns a string with no I/O or errors. The engine itself isn't pure since segments probe the environment and make network calls, so the studio needs to use the replay mechanism with a pinned data file instead, the same way `website/segment_data.json` provides hand-written synthetic values to make renders look realistic. Generation becomes the existing `config export image` path but with the config sourced from the studio rather than the filesystem.\n\nFor rendering, there are three approaches: a server-side function that takes config text and returns SVG (reuses the shipped binary, but adds latency and security concerns with arbitrary-config evaluation on a public endpoint, plus Azure's managed functions only support Node.js); WASM compiled to JavaScript and shipped to the browser (zero server latency, eliminates the SSRF problem entirely since there's no server making outbound requests, but it doesn't build today); or a third option that's being considered.\n\nThe WASM approach has a real advantage here because the security analysis changes things — a server endpoint evaluating arbitrary user config is essentially an SSRF machine, especially since the config can load arbitrary URLs through segments like HTTP, NBA, Ipify, Todoist, and Wakatime.\n\nWASM sidesteps this entirely because the code runs in the user's browser under their own origin, so fetching arbitrary URLs is just normal browser behavior. The tradeoff is the build blockers, so I'm thinking through a staged rollout: first make the render path WASM-buildable by stubbing out the platform-specific parts and decoupling bubbletea, then expose a thin WASM entrypoint that takes config text and data JSON and returns SVG, and finally build out the studio UI on top of that.\n\nFor the PNG export, that's a separate concern handled server-side using only the pinned theme set, which sidesteps the security issues entirely. The key insight is that the studio itself adds no rendering logic—it's just a thin wrapper around the existing pipeline. The actual work lives in the terminal runner, SVG encoder, prompt engine, and config replay, with a new WASM entry point that bridges them together.\n\nThe real refactor needed is moving the option-building logic (accent resolution, terminal background, font metrics) out of the CLI and into a shared package that both the CLI and WASM can use, since right now that lives buried in the CLI's config export code.\n\nThere's also the data question: the studio needs something to preview with, but the browser can't access the user's actual machine data. So it'll use synthetic data like the gallery does — that's a product limitation worth calling out explicitly, since users will see plausible fake values, not their real ones.","signature":"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"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":737,"cache_read_input_tokens":493335,"output_tokens":4076,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":737,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":4076,"cache_read_input_tokens":493335,"cache_creation_input_tokens":737,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":737},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4VXR1T42adXJoQGbNg","type":"assistant","uuid":"a9aa6d0c-46aa-4a11-b12b-d3574ed416b1","timestamp":"2026-07-28T07:29:01.038Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a9aa6d0c-46aa-4a11-b12b-d3574ed416b1","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4VdRuUCntwPtp2npKd","type":"message","role":"assistant","content":[{"type":"text","text":"## 1. How the SVG gets generated\n\nThe pipeline already exists — it's the one the gallery uses on every build:\n\n```\nconfig text → config.Load\n → prompt.Engine, terminal.CaptureRuns = true\n → eng.Primary() ANSI out, Run stream recorded in parallel\n → eng.CapturedRuns() + eng.CursorAnchor()\n → svg.Encode(rows, opts) → string\n```\n\n`svg.Encode` is already the right shape for this: pure, deterministic, no I/O, no network, and since the cleanup it doesn't even return an error. Hand it rows and options, get markup.\n\nThe engine half is the problem. Segments probe a real machine — they shell out to `git`, read the filesystem, make HTTP calls. So the studio has to feed recorded values instead, through the `--data` replay path (`config.Data.ApplyFlags`, `restoreData` in `config/segment.go`). The website already has exactly this file: `website/segment_data.json`, hand-written synthetic values chosen to look like a plausible machine.\n\n**Consequence worth deciding on now:** the studio previews someone's theme against *fake* data, not their actual repo and cloud context. That's inherent — a browser has no `git`. It's fine for designing a theme, but it means \"what will this look like for me\" is answered approximately.\n\n## 2. How it renders — and why I'd invert the plan\n\nThe staging we recorded was *Function first, WASM only if latency demands it*. Having now looked at the security surface, I'd flip that, and latency isn't the reason.\n\n**The server-side option puts an arbitrary-config evaluator on a public endpoint.** The attack surface is wider than the segments:\n\n- `src/segments/http.go` takes an arbitrary URL from config properties. So do `owm`, `nba`, `ipify`, `todoist`, `wakatime`.\n- `config.Load` itself fetches any `https://` config ([load.go:58](src/config/load.go:58)) — and `extends` chains follow remote URLs recursively ([load.go:139](src/config/load.go:139)).\n\nSo \"render this config for me\" is, without hard guards, \"make arbitrary outbound requests from Azure's network on my behalf, recursively\". Making that safe needs a compile-time or entrypoint kill switch on live segment resolution — not a config option, since the input *is* config — plus size, depth and deadline caps and per-IP limits. All doable, all a permanent obligation.\n\n**WASM deletes the entire class.** The code runs in the user's own browser, under their own origin. An arbitrary fetch from there is just a web page doing what web pages do. No server, no per-keystroke round trip, no rate limiting.\n\nThe catch is that it doesn't build today. I tested it:\n\n```\nruntime/jobs Setpgid missing in syscall.SysProcAttr for js/wasm\nruntime/battery systemGetAll undefined\nbubbletea fails to compile for js/wasm\n```\n\nThose are build-tag problems, not design problems — stubs for `jobs` and `battery`, and keeping `bubbletea` out of the import graph reachable from `prompt`. Bounded work, and it has to happen once.\n\nThere's a payload cost (Go WASM is multi-MB before compression) but it's on one page, lazy-loaded, and brotli takes a large bite out of it.\n\n## 3. Where the logic lives\n\nThe governing rule: **the studio adds no rendering logic.** Every line that decides what a prompt looks like already exists and is shared with the CLI. If the studio ever needs its own rendering branch, the design has gone wrong — that's how the old PNG renderer ended up re-parsing ANSI and drifting.\n\n| layer | status |\n|---|---|\n| `src/terminal` — Run stream capture | exists |\n| `src/svg` — encoder, pure | exists |\n| `src/prompt` — engine + capture + cursor anchor | exists |\n| `src/config` — `--data` replay | exists |\n| **`src/wasm/`** — thin `GOOS=js` entrypoint: `(configText, dataJSON) → svg` | new, ~100 lines, adapter only |\n| **website studio page** — editor + live preview | new |\n\n**One real refactor is needed first.** The option-building logic — accent resolution, terminal background, font metrics — currently lives in `src/cli/config_export_svg.go`'s `svgOptions`. The wasm entrypoint can't import `src/cli` (that's the CLI's cobra surface). That function needs to move somewhere both callers reach, most naturally into `src/svg` itself or a small shared package. Doing that also removes the last reason the CLI and the studio could ever diverge in output.\n\n## Suggested order\n\n1. **Make the render path wasm-buildable** — stubs for `jobs`/`battery`, break the `bubbletea` reachability. Verifiable in isolation: `GOOS=js GOARCH=wasm go build ./prompt/ ./svg/` goes green.\n2. **Move `svgOptions` out of `src/cli`.** Gate: the 124-theme export stays byte-identical.\n3. **Add the wasm entrypoint** and prove it renders one theme identically to the CLI — same config, same data file, diff the SVG.\n4. **Build the studio UI** on top.\n5. **`?format=png` separately** — that's for GitHub READMEs, genuinely server-side, and safe precisely because it only ever renders the *pinned bundled themes*, never user input. Different problem, don't couple it.\n\nStep 3 is the one I'd insist on, because it's the gate that keeps the promise in the table above honest: if the wasm build and the CLI ever produce different bytes for the same input, we have two renderers again."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":737,"cache_read_input_tokens":493335,"output_tokens":4076,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":737,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":4076,"cache_read_input_tokens":493335,"cache_creation_input_tokens":737,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":737},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4VXR1T42adXJoQGbNg","type":"assistant","uuid":"aee5804d-c743-4503-a76b-9457bcdf826c","timestamp":"2026-07-28T07:29:24.674Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"aee5804d-c743-4503-a76b-9457bcdf826c","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":3480},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T07:29:30.727Z","uuid":"a6fb67a2-7e42-41c1-8157-7e06c18acac5","toolUseID":"b1befbb5-4264-4948-9766-edfe0ee442fc","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a6fb67a2-7e42-41c1-8157-7e06c18acac5","isSidechain":false,"promptId":"13713298-4498-47a5-9d65-cad1601de662","type":"user","message":{"role":"user","content":"Before we continue, the rendering should always use the data, so it never should execute any live segment. That security concern, as far as I'm concerned, is not relevant. We use the same data that populates all of the segments across the board by default."},"uuid":"58f81867-b66e-4643-872c-0f09ffe6cc7b","timestamp":"2026-07-28T07:30:07.472Z","permissionMode":"auto","origin":{"kind":"human"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"58f81867-b66e-4643-872c-0f09ffe6cc7b","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-2875b4f4-49b0-49f0-9ab9-1353df62e810","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"d9d39a2f-c71e-44fd-a63e-96669794ccbf","timestamp":"2026-07-28T07:30:07.711Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d9d39a2f-c71e-44fd-a63e-96669794ccbf","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4dV6agCsDNFpB3v1zU","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The user is claiming that rendering always uses the data file and never executes live segments, so security isn't a concern. But I need to verify this against the actual code because I recall there's a hermiticity issue with `--data` replay: the recorder skips disabled segments, which means unrecorded ones still hit the network. That was supposedly fixed in commit b8381b97 to record all segments with the enabled flag. However, there's another problem lurking—if a segment type isn't in the data file at all, it would still try to execute live.\n\nThe real issue is whether `restoreData` short-circuits for missing segments, and more critically, whether the config loader's `extends` property can still fetch remote URLs even during data replay. The user's statement covers segments but misses that a config with `\"extends\": \"https://attacker/...\"` would still make a network request, since the config comes from a textarea in the studio and `extends` is evaluated independently of segment data. I should verify the `restoreData` behavior and check how `extends` chains are handled.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":143,"cache_read_input_tokens":498148,"output_tokens":976,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":143,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":976,"cache_read_input_tokens":498148,"cache_creation_input_tokens":143,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":143},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4dLwSegshkhDddJrjK","type":"assistant","uuid":"5433240d-ea9e-4ee5-9ecc-d74d177ae9ab","timestamp":"2026-07-28T07:30:24.061Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5433240d-ea9e-4ee5-9ecc-d74d177ae9ab","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4dV6agCsDNFpB3v1zU","type":"message","role":"assistant","content":[{"type":"text","text":"Let me check what the code actually enforces, since \"always data, never live\" needs to be true by construction rather than by convention:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":143,"cache_read_input_tokens":498148,"output_tokens":976,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":143,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":976,"cache_read_input_tokens":498148,"cache_creation_input_tokens":143,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":143},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4dLwSegshkhDddJrjK","type":"assistant","uuid":"fb8d722e-5580-40ae-9cc2-8bf9cd38c1db","timestamp":"2026-07-28T07:30:24.426Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fb8d722e-5580-40ae-9cc2-8bf9cd38c1db","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4dV6agCsDNFpB3v1zU","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_016Pgcw6NV1dFCvEmRVn79Ns","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && sed -n '/func (segment \\*Segment) restoreData/,/^}/p' config/segment.go; echo \"=== call site + Enabled ===\"; grep -n \"restoreData\\|restoreCache\\|writer.Enabled\\|pendingData\" config/segment.go | head -20","description":"Read the data replay short-circuit"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":143,"cache_read_input_tokens":498148,"output_tokens":976,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":143,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":976,"cache_read_input_tokens":498148,"cache_creation_input_tokens":143,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":143},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4dLwSegshkhDddJrjK","type":"assistant","uuid":"106b6dbe-761f-4da8-9d8e-6d8c297ed568","timestamp":"2026-07-28T07:30:25.776Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"106b6dbe-761f-4da8-9d8e-6d8c297ed568","isSidechain":false,"promptId":"13713298-4498-47a5-9d65-cad1601de662","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_016Pgcw6NV1dFCvEmRVn79Ns","type":"tool_result","content":"func (segment *Segment) restoreData() bool {\n\traw, OK := segment.env.Flags().SegmentData[segment.DataKey()]\n\tif !OK {\n\t\treturn false\n\t}\n\n\trecorded, isRecorded := decodeRecordedSegment(raw)\n\tif !isRecorded {\n\t\tsegment.pendingData = raw\n\t\treturn false\n\t}\n\n\tif !recorded.Enabled {\n\t\tsegment.Enabled = false\n\t\tsegment.restored = true\n\n\t\tlog.Debug(\"suppressing recorded-but-disabled segment: \", segment.Name())\n\n\t\treturn true\n\t}\n\n\tif err := json.Unmarshal(recorded.Data, &segment.writer); err != nil {\n\t\tlog.Error(err)\n\t\treturn false\n\t}\n\n\tsegment.Enabled = true\n\tsegment.restored = true\n\n\ttemplate.Cache.AddSegmentData(segment.Name(), segment.writer)\n\n\tlog.Debug(\"restored segment from data: \", segment.Name())\n\n\treturn true\n}\n=== call site + Enabled ===\n72:\tpendingData json.RawMessage\n202:\tif segment.restoreData() {\n206:\tcacheRestored := segment.restoreCache()\n208:\t\t// A hand-written entry stashed itself in pendingData above instead of\n211:\t\t// state and returns early right here, before the writer.Enabled() call\n215:\t\t// only touches fields pendingData set, and it is a no-op when\n216:\t\t// pendingData is empty (the common case: no hand-written override for\n253:\tsegment.Enabled = segment.writer.Enabled()\n260:// writer's live-computed state. It must run after writer.Enabled() above, never\n265:// pendingData, so pinned values win and everything else keeps its live-derived\n268:// Matches restoreData's existing contract for a recorded entry: a pinned\n273:\tif len(segment.pendingData) == 0 {\n277:\tif err := json.Unmarshal(segment.pendingData, &segment.writer); err != nil {\n361:\t// here, and caching it would make restoreCache() later resurrect a\n480:func (segment *Segment) restoreCache() bool {\n525:// restoreData replays a segment's writer state from the data file supplied via\n538:// trusted this early: it stashes itself in pendingData and returns false so\n540:// writer.Enabled() all still fire - and overlayData applies it afterward.\n542:// cache hit in restoreCache also produces state pendingData needs to win\n543:// over, and returns before writer.Enabled() runs, so it overlays right there;","is_error":false}]},"uuid":"63aa358e-92e2-49c9-9fe9-81c6fe96b9e4","timestamp":"2026-07-28T07:30:28.664Z","toolUseResult":{"stdout":"func (segment *Segment) restoreData() bool {\n\traw, OK := segment.env.Flags().SegmentData[segment.DataKey()]\n\tif !OK {\n\t\treturn false\n\t}\n\n\trecorded, isRecorded := decodeRecordedSegment(raw)\n\tif !isRecorded {\n\t\tsegment.pendingData = raw\n\t\treturn false\n\t}\n\n\tif !recorded.Enabled {\n\t\tsegment.Enabled = false\n\t\tsegment.restored = true\n\n\t\tlog.Debug(\"suppressing recorded-but-disabled segment: \", segment.Name())\n\n\t\treturn true\n\t}\n\n\tif err := json.Unmarshal(recorded.Data, &segment.writer); err != nil {\n\t\tlog.Error(err)\n\t\treturn false\n\t}\n\n\tsegment.Enabled = true\n\tsegment.restored = true\n\n\ttemplate.Cache.AddSegmentData(segment.Name(), segment.writer)\n\n\tlog.Debug(\"restored segment from data: \", segment.Name())\n\n\treturn true\n}\n=== call site + Enabled ===\n72:\tpendingData json.RawMessage\n202:\tif segment.restoreData() {\n206:\tcacheRestored := segment.restoreCache()\n208:\t\t// A hand-written entry stashed itself in pendingData above instead of\n211:\t\t// state and returns early right here, before the writer.Enabled() call\n215:\t\t// only touches fields pendingData set, and it is a no-op when\n216:\t\t// pendingData is empty (the common case: no hand-written override for\n253:\tsegment.Enabled = segment.writer.Enabled()\n260:// writer's live-computed state. It must run after writer.Enabled() above, never\n265:// pendingData, so pinned values win and everything else keeps its live-derived\n268:// Matches restoreData's existing contract for a recorded entry: a pinned\n273:\tif len(segment.pendingData) == 0 {\n277:\tif err := json.Unmarshal(segment.pendingData, &segment.writer); err != nil {\n361:\t// here, and caching it would make restoreCache() later resurrect a\n480:func (segment *Segment) restoreCache() bool {\n525:// restoreData replays a segment's writer state from the data file supplied via\n538:// trusted this early: it stashes itself in pendingData and returns false so\n540:// writer.Enabled() all still fire - and overlayData applies it afterward.\n542:// cache hit in restoreCache also produces state pendingData needs to win\n543:// over, and returns before writer.Enabled() runs, so it overlays right there;","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"106b6dbe-761f-4da8-9d8e-6d8c297ed568","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"63aa358e-92e2-49c9-9fe9-81c6fe96b9e4","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"13621de0-0c26-4bef-98a5-54126d59ce2f","timestamp":"2026-07-28T07:30:28.669Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"13621de0-0c26-4bef-98a5-54126d59ce2f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4ewi1Dmg12bVUVQ3AG","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I see that `restoreData` returns false when a segment's `DataKey()` isn't found in the data file, which causes execution to fall through to the live path instead. This means the \"always use data\" approach isn't actually enforced — segments missing from the data file will execute live, which aligns with that memory note about the replay not being hermetic. The user's assumption about using consistent data across all segments by default doesn't quite match what's actually happening.\n\nThe real fix is straightforward: add a mode where a missing data key results in the segment being disabled or empty rather than falling back to live execution. That's a small, targeted change — just a flag on the replay — not some heavy security layer. It would make their design assumption true by construction, eliminate the SSRF concern entirely, and give the studio deterministic rendering with no surprise latency or flaky previews.\n\nThere's also the separate issue of `extends` in config.Load fetching remote URLs regardless of segment data — that happens independently, so in a server-side rendering scenario, a config with `extends: https://...` would still fetch. Let me check the `DataKey` implementation to be precise about how matching works.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1931,"cache_read_input_tokens":498291,"output_tokens":730,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1931,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":730,"cache_read_input_tokens":498291,"cache_creation_input_tokens":1931,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1931},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4erSViCXKJSihStS6t","type":"assistant","uuid":"5b92887a-6854-4904-9b2c-6c7431fc60d6","timestamp":"2026-07-28T07:30:42.644Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5b92887a-6854-4904-9b2c-6c7431fc60d6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4ewi1Dmg12bVUVQ3AG","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01JVgtRXqLPtR6PNFpSYnbec","name":"Bash","input":{"command":"sed -n '/func (segment \\*Segment) DataKey/,/^}/p' config/segment.go; echo \"=== line 250-256 (the live fallthrough) ===\"; sed -n '248,258p' config/segment.go","description":"Check the data key and the live fallthrough"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1931,"cache_read_input_tokens":498291,"output_tokens":730,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1931,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":730,"cache_read_input_tokens":498291,"cache_creation_input_tokens":1931,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1931},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4erSViCXKJSihStS6t","type":"assistant","uuid":"e883e861-b984-4ee8-965d-9ec06c8b729a","timestamp":"2026-07-28T07:30:42.646Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e883e861-b984-4ee8-965d-9ec06c8b729a","isSidechain":false,"promptId":"13713298-4498-47a5-9d65-cad1601de662","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01JVgtRXqLPtR6PNFpSYnbec","type":"tool_result","content":"func (segment *Segment) DataKey() string {\n\tif segment.Alias != \"\" {\n\t\treturn segment.Alias\n\t}\n\n\treturn string(segment.Type)\n}\n=== line 250-256 (the live fallthrough) ===\n\t\t// terminated/closed the job concurrently, this is a no-op; see the\n\t\t// ownership invariant documented on jobs.CloseGoroutineJob.\n\t\tdefer runjobs.CloseGoroutineJob()\n\t}\n\n\tsegment.Enabled = segment.writer.Enabled()\n\tsegment.evaluated = true\n\n\tsegment.overlayData()\n}","is_error":false}]},"uuid":"859e85f0-83f1-4b9a-8fc4-532cc6d38007","timestamp":"2026-07-28T07:30:45.795Z","toolUseResult":{"stdout":"func (segment *Segment) DataKey() string {\n\tif segment.Alias != \"\" {\n\t\treturn segment.Alias\n\t}\n\n\treturn string(segment.Type)\n}\n=== line 250-256 (the live fallthrough) ===\n\t\t// terminated/closed the job concurrently, this is a no-op; see the\n\t\t// ownership invariant documented on jobs.CloseGoroutineJob.\n\t\tdefer runjobs.CloseGoroutineJob()\n\t}\n\n\tsegment.Enabled = segment.writer.Enabled()\n\tsegment.evaluated = true\n\n\tsegment.overlayData()\n}","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"e883e861-b984-4ee8-965d-9ec06c8b729a","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"859e85f0-83f1-4b9a-8fc4-532cc6d38007","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4gKuGS8yWqPF1Lvgb2","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm seeing the core issue now: when a segment's data key isn't found in the restore file, it falls through to live execution instead of staying disabled. The design intent is correct, but the implementation has a gap where missing data keys trigger the probing behavior rather than keeping segments in their restored state.\n\nThe fix is straightforward — add a replay mode flag that treats missing keys as \"not enabled\" instead of \"go live.\" This gets set by the studio and gallery export, but stays unset for normal CLI usage where the current fallthrough behavior is actually correct.\n\nI should also update the project memory to record this decision, since it's a durable constraint that affects future work.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":927,"cache_read_input_tokens":500222,"output_tokens":1767,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":927,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1767,"cache_read_input_tokens":500222,"cache_creation_input_tokens":927,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":927},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4g7g4QnK51jPoNiiWB","type":"assistant","uuid":"7206722d-020a-4136-8483-0dda1b5617ba","timestamp":"2026-07-28T07:31:08.094Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7206722d-020a-4136-8483-0dda1b5617ba","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4gKuGS8yWqPF1Lvgb2","type":"message","role":"assistant","content":[{"type":"text","text":"You're right, and it simplifies the design considerably. Two things need to change for it to be true by construction rather than by convention:\n\n**A missing data key currently falls through to live execution.** `restoreData` returns `false` when the key isn't in the file ([segment.go:203](src/config/segment.go:203)), and execution continues to [`segment.Enabled = segment.writer.Enabled()`](src/config/segment.go:253) — the live path where segments shell out and fetch. And `DataKey()` is `Alias` if set, otherwise the segment `Type` — so a studio user writing `\"alias\": \"mywork\"` on a git segment misses the `git` key and goes live, even with a complete data file.\n\n**`extends` is upstream of all of it.** `config.Load` follows `https://` in `extends` chains ([load.go:139](src/config/load.go:139)) before any segment logic runs, so data replay can't stop it.\n\nBoth are small to close:\n\n- A replay mode where a missing key means *not enabled* rather than *go find out* — one branch at `restoreData`'s first return, gated on a `runtime.Flags` field. Set by the studio entrypoint and the gallery export; unset for normal CLI use, where falling through is the correct behaviour.\n- Ignore or reject `extends` in the same mode.\n\nWorth doing even setting security aside, because it buys determinism. A preview that occasionally takes 1.2 seconds because a segment quietly went live is a bad preview — and that's not hypothetical, it's exactly what happened with `chips` earlier in this project, where an unrecorded `wakatime` made a real HTTP call during what was supposed to be a hermetic render.\n\nSo the revised picture:\n\n| | before | with enforced replay |\n|---|---|---|\n| server-side Function | needs entrypoint guard, URL denylist, rate limits, deadlines | no outbound requests possible; just normal API hygiene |\n| WASM | same, but moot | same, and still moot |\n\nThat collapses the decision back to ordinary engineering trade-offs. Server-side means one binary, no new build target, and a round trip per edit. WASM means a build investment (`jobs`/`battery` stubs, `bubbletea` off the import path) but instant preview and nothing to operate.\n\nI'd still lean WASM for the *interaction* — a studio wants sub-frame feedback while you drag a colour, and a network hop per keystroke never feels right — but that's now a UX argument, not a security one, and it's a fair thing to disagree with. The server route is meaningfully less work to stand up.\n\nRecording the decision so it survives the session:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":927,"cache_read_input_tokens":500222,"output_tokens":1767,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":927,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1767,"cache_read_input_tokens":500222,"cache_creation_input_tokens":927,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":927},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4g7g4QnK51jPoNiiWB","type":"assistant","uuid":"6debde46-7d4e-4d9a-b653-45e0d1fb7d48","timestamp":"2026-07-28T07:31:19.675Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6debde46-7d4e-4d9a-b653-45e0d1fb7d48","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4gKuGS8yWqPF1Lvgb2","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01J9ByAE74GFsZhBFXr5QnQ8","name":"Read","input":{"file_path":"C:\\Users\\jande\\.claude\\projects\\D--oh-my-posh\\memory\\omp-data-replay-not-hermetic.md"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":927,"cache_read_input_tokens":500222,"output_tokens":1767,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":927,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1767,"cache_read_input_tokens":500222,"cache_creation_input_tokens":927,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":927},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4g7g4QnK51jPoNiiWB","type":"assistant","uuid":"fd39312d-9b49-462f-a03e-6797b7c1d5fb","timestamp":"2026-07-28T07:31:20.113Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fd39312d-9b49-462f-a03e-6797b7c1d5fb","isSidechain":false,"promptId":"13713298-4498-47a5-9d65-cad1601de662","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01J9ByAE74GFsZhBFXr5QnQ8","type":"tool_result","content":"1\t---\n2\tname: omp-data-replay-not-hermetic\n3\tdescription: \"--data replay is not hermetic: the recorder skips disabled segments, so unrecorded ones still probe live\"\n4\tmetadata: \n5\t node_type: memory\n6\t type: project\n7\t originSessionId: 6c0a282a-886f-458d-a426-93d95104b4a6\n8\t modified: 2026-07-26T17:10:44.431Z\n9\t---\n10\t\n11\tDiscovered 2026-07-26 while building a golden-file harness for the renderer work.\n12\t\n13\t`oh-my-posh config export data` skips segments that were not enabled on the recording\n14\tmachine (`src/cli/config_export_data.go:129-131`, `if !segment.Enabled { continue }`).\n15\tA fixture therefore covers only what happened to be live at record time; everything else\n16\tfalls through `restoreData` (`src/config/segment.go:488-491` returns false) into the live\n17\t`writer.Enabled()` at `:243`. Measured: `themes/chips.omp.json` records 5 of 15 segments and\n18\t\"replays\" in **1.22s** because `wakatime` makes a real HTTP call, versus ~0.08s for themes\n19\twhose segments were all captured.\n20\t\n21\tTwo consequences that cost a full replan:\n22\t\n23\t1. **Any \"golden files over the bundled themes\" measurement is suspect.** An early sweep\n24\t showed 122/122 deterministic; that was an artifact — the fixture's pinned `PWD` does not\n25\t exist, so every filesystem probe failed identically on both runs.\n26\t2. **The SSRF argument for a server-side render endpoint does not hold on replay alone.**\n27\t `http`, `owm`, `nba`, `ipify`, `todoist` and `wakatime` all take a URL or key from config.\n28\t Until the recorder captures every segment *and* `restoreData` suppresses recorded-but-\n29\t disabled ones without probing, a data file is not a safety boundary.\n30\t\n31\tRelated: `restoreData` returns before `Enabled()`, and 53 of 102 segments assign\n32\ttemplate-visible state inside `Enabled()` (≥24 of those do I/O). So a hand-written partial\n33\tfile silently renders those segments empty — pinning `time` with only `CurrentDate` drops\n34\tthe whole rprompt block, because `Time.Format` is computed in `Enabled()`\n35\t(`src/segments/time.go:27-28`).\n36\t\n37\t**Why:** three separate plans were built on \"replay is hermetic\" before it was measured.\n38\t\n39\t**How to apply:** never treat a `--data` file as a hermetic or security boundary without\n40\tfirst checking the recorder covers every configured segment. Verify hermeticity by *timing*\n41\ta replay, not by diffing two runs — identical output can mean uniformly failing probes.\n42\tSee [[omp-golden-harness-ambient-inputs]] for what else makes theme renders non-reproducible.\n43\t"}]},"uuid":"83fe2491-fb24-4355-84e7-030990529dd7","timestamp":"2026-07-28T07:31:20.150Z","toolUseResult":{"type":"text","file":{"filePath":"C:\\Users\\jande\\.claude\\projects\\D--oh-my-posh\\memory\\omp-data-replay-not-hermetic.md","content":"---\nname: omp-data-replay-not-hermetic\ndescription: \"--data replay is not hermetic: the recorder skips disabled segments, so unrecorded ones still probe live\"\nmetadata: \n node_type: memory\n type: project\n originSessionId: 6c0a282a-886f-458d-a426-93d95104b4a6\n modified: 2026-07-26T17:10:44.431Z\n---\n\nDiscovered 2026-07-26 while building a golden-file harness for the renderer work.\n\n`oh-my-posh config export data` skips segments that were not enabled on the recording\nmachine (`src/cli/config_export_data.go:129-131`, `if !segment.Enabled { continue }`).\nA fixture therefore covers only what happened to be live at record time; everything else\nfalls through `restoreData` (`src/config/segment.go:488-491` returns false) into the live\n`writer.Enabled()` at `:243`. Measured: `themes/chips.omp.json` records 5 of 15 segments and\n\"replays\" in **1.22s** because `wakatime` makes a real HTTP call, versus ~0.08s for themes\nwhose segments were all captured.\n\nTwo consequences that cost a full replan:\n\n1. **Any \"golden files over the bundled themes\" measurement is suspect.** An early sweep\n showed 122/122 deterministic; that was an artifact — the fixture's pinned `PWD` does not\n exist, so every filesystem probe failed identically on both runs.\n2. **The SSRF argument for a server-side render endpoint does not hold on replay alone.**\n `http`, `owm`, `nba`, `ipify`, `todoist` and `wakatime` all take a URL or key from config.\n Until the recorder captures every segment *and* `restoreData` suppresses recorded-but-\n disabled ones without probing, a data file is not a safety boundary.\n\nRelated: `restoreData` returns before `Enabled()`, and 53 of 102 segments assign\ntemplate-visible state inside `Enabled()` (≥24 of those do I/O). So a hand-written partial\nfile silently renders those segments empty — pinning `time` with only `CurrentDate` drops\nthe whole rprompt block, because `Time.Format` is computed in `Enabled()`\n(`src/segments/time.go:27-28`).\n\n**Why:** three separate plans were built on \"replay is hermetic\" before it was measured.\n\n**How to apply:** never treat a `--data` file as a hermetic or security boundary without\nfirst checking the recorder covers every configured segment. Verify hermeticity by *timing*\na replay, not by diffing two runs — identical output can mean uniformly failing probes.\nSee [[omp-golden-harness-ambient-inputs]] for what else makes theme renders non-reproducible.\n","numLines":43,"startLine":1,"totalLines":43}},"sourceToolAssistantUUID":"fd39312d-9b49-462f-a03e-6797b7c1d5fb","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"83fe2491-fb24-4355-84e7-030990529dd7","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4ijZNHLxwdanzToysQ","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01FQqUibtQFkvDYeL2H3jepy","name":"Edit","input":{"replace_all":false,"file_path":"C:\\Users\\jande\\.claude\\projects\\D--oh-my-posh\\memory\\omp-data-replay-not-hermetic.md","old_string":"**Why:** three separate plans were built on \"replay is hermetic\" before it was measured.","new_string":"**Decision, 2026-07-28 (Jan):** the studio and every preview render **always** replay from\ndata and must never execute a live segment. The recorder half is already fixed (`b8381b97`\nrecords all segments with an enabled flag), but the replay half still is not: `restoreData`\nreturns false on a missing key and falls through to the live `writer.Enabled()`, and\n`DataKey()` is `Alias`-or-`Type`, so a user-supplied `alias` misses the recorded key and\ngoes live. Enforce it with a replay mode where a missing key means *not enabled*, gated on\na `runtime.Flags` field set by the studio/gallery entrypoints and unset for the CLI, where\nfalling through is correct. Reject `extends` in the same mode — `config.Load` follows\n`https://` chains before any segment logic runs, so data replay cannot stop it.\n\nWith that in place the SSRF objection to a server-side render endpoint goes away, and the\nserver-vs-WASM choice becomes a plain UX/effort trade-off rather than a security one.\n\n**Why:** three separate plans were built on \"replay is hermetic\" before it was measured."},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2778,"cache_read_input_tokens":501149,"output_tokens":563,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2778,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":563,"cache_read_input_tokens":501149,"cache_creation_input_tokens":2778,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2778},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4ifEv6t11Rm46VXNh1","type":"assistant","uuid":"c46a6a17-0e79-42dd-b34d-1905a0a4ac48","timestamp":"2026-07-28T07:31:30.728Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c46a6a17-0e79-42dd-b34d-1905a0a4ac48","isSidechain":false,"promptId":"13713298-4498-47a5-9d65-cad1601de662","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01FQqUibtQFkvDYeL2H3jepy","type":"tool_result","content":"The file C:\\Users\\jande\\.claude\\projects\\D--oh-my-posh\\memory\\omp-data-replay-not-hermetic.md has been updated successfully."}]},"uuid":"73e013fe-c38b-499e-bdd2-acad0abeae98","timestamp":"2026-07-28T07:31:30.759Z","toolUseResult":{"filePath":"C:\\Users\\jande\\.claude\\projects\\D--oh-my-posh\\memory\\omp-data-replay-not-hermetic.md","oldString":"**Why:** three separate plans were built on \"replay is hermetic\" before it was measured.","newString":"**Decision, 2026-07-28 (Jan):** the studio and every preview render **always** replay from\ndata and must never execute a live segment. The recorder half is already fixed (`b8381b97`\nrecords all segments with an enabled flag), but the replay half still is not: `restoreData`\nreturns false on a missing key and falls through to the live `writer.Enabled()`, and\n`DataKey()` is `Alias`-or-`Type`, so a user-supplied `alias` misses the recorded key and\ngoes live. Enforce it with a replay mode where a missing key means *not enabled*, gated on\na `runtime.Flags` field set by the studio/gallery entrypoints and unset for the CLI, where\nfalling through is correct. Reject `extends` in the same mode — `config.Load` follows\n`https://` chains before any segment logic runs, so data replay cannot stop it.\n\nWith that in place the SSRF objection to a server-side render endpoint goes away, and the\nserver-vs-WASM choice becomes a plain UX/effort trade-off rather than a security one.\n\n**Why:** three separate plans were built on \"replay is hermetic\" before it was measured.","originalFile":"---\nname: omp-data-replay-not-hermetic\ndescription: \"--data replay is not hermetic: the recorder skips disabled segments, so unrecorded ones still probe live\"\nmetadata: \n node_type: memory\n type: project\n originSessionId: 6c0a282a-886f-458d-a426-93d95104b4a6\n modified: 2026-07-26T17:10:44.431Z\n---\n\nDiscovered 2026-07-26 while building a golden-file harness for the renderer work.\n\n`oh-my-posh config export data` skips segments that were not enabled on the recording\nmachine (`src/cli/config_export_data.go:129-131`, `if !segment.Enabled { continue }`).\nA fixture therefore covers only what happened to be live at record time; everything else\nfalls through `restoreData` (`src/config/segment.go:488-491` returns false) into the live\n`writer.Enabled()` at `:243`. Measured: `themes/chips.omp.json` records 5 of 15 segments and\n\"replays\" in **1.22s** because `wakatime` makes a real HTTP call, versus ~0.08s for themes\nwhose segments were all captured.\n\nTwo consequences that cost a full replan:\n\n1. **Any \"golden files over the bundled themes\" measurement is suspect.** An early sweep\n showed 122/122 deterministic; that was an artifact — the fixture's pinned `PWD` does not\n exist, so every filesystem probe failed identically on both runs.\n2. **The SSRF argument for a server-side render endpoint does not hold on replay alone.**\n `http`, `owm`, `nba`, `ipify`, `todoist` and `wakatime` all take a URL or key from config.\n Until the recorder captures every segment *and* `restoreData` suppresses recorded-but-\n disabled ones without probing, a data file is not a safety boundary.\n\nRelated: `restoreData` returns before `Enabled()`, and 53 of 102 segments assign\ntemplate-visible state inside `Enabled()` (≥24 of those do I/O). So a hand-written partial\nfile silently renders those segments empty — pinning `time` with only `CurrentDate` drops\nthe whole rprompt block, because `Time.Format` is computed in `Enabled()`\n(`src/segments/time.go:27-28`).\n\n**Why:** three separate plans were built on \"replay is hermetic\" before it was measured.\n\n**How to apply:** never treat a `--data` file as a hermetic or security boundary without\nfirst checking the recorder covers every configured segment. Verify hermeticity by *timing*\na replay, not by diffing two runs — identical output can mean uniformly failing probes.\nSee [[omp-golden-harness-ambient-inputs]] for what else makes theme renders non-reproducible.\n","structuredPatch":[{"oldStart":5,"oldLines":7,"newStart":5,"newLines":7,"lines":[" node_type: memory"," type: project"," originSessionId: 6c0a282a-886f-458d-a426-93d95104b4a6","- modified: 2026-07-26T17:10:44.431Z","+ modified: 2026-07-28T07:31:30.737Z"," ---"," "," Discovered 2026-07-26 while building a golden-file harness for the renderer work."]},{"oldStart":34,"oldLines":6,"newStart":34,"newLines":19,"lines":[" the whole rprompt block, because `Time.Format` is computed in `Enabled()`"," (`src/segments/time.go:27-28`)."," ","+**Decision, 2026-07-28 (Jan):** the studio and every preview render **always** replay from","+data and must never execute a live segment. The recorder half is already fixed (`b8381b97`","+records all segments with an enabled flag), but the replay half still is not: `restoreData`","+returns false on a missing key and falls through to the live `writer.Enabled()`, and","+`DataKey()` is `Alias`-or-`Type`, so a user-supplied `alias` misses the recorded key and","+goes live. Enforce it with a replay mode where a missing key means *not enabled*, gated on","+a `runtime.Flags` field set by the studio/gallery entrypoints and unset for the CLI, where","+falling through is correct. Reject `extends` in the same mode — `config.Load` follows","+`https://` chains before any segment logic runs, so data replay cannot stop it.","+","+With that in place the SSRF objection to a server-side render endpoint goes away, and the","+server-vs-WASM choice becomes a plain UX/effort trade-off rather than a security one.","+"," **Why:** three separate plans were built on \"replay is hermetic\" before it was measured."," "," **How to apply:** never treat a `--data` file as a hermetic or security boundary without"]}],"userModified":false,"replaceAll":false,"memdirStamped":true},"sourceToolAssistantUUID":"c46a6a17-0e79-42dd-b34d-1905a0a4ac48","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"73e013fe-c38b-499e-bdd2-acad0abeae98","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU4jXV7SHHYS9hGdAxoX","type":"message","role":"assistant","content":[{"type":"text","text":"Decision recorded.\n\nNet effect on the plan from my earlier answer: step order stays, but the security-driven urgency drops out and one item moves to the front.\n\n1. **Enforce data-only replay** — missing key means not enabled; reject `extends` in that mode. Verifiable by timing, not diffing: every bundled theme should replay in roughly the same time, with no outliers like the 1.22s `chips` case.\n2. Make the render path wasm-buildable — *only if* you want the client-side route.\n3. Move `svgOptions` out of `src/cli` so both the CLI and whatever entrypoint you pick share it.\n4. Wasm or Function entrypoint, gated on rendering one theme byte-identically to the CLI.\n5. Studio UI.\n6. `?format=png` separately.\n\nStep 1 is worth doing regardless of which rendering route you choose, and it's the smallest item on the list. Want me to start there?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":623,"cache_read_input_tokens":503927,"output_tokens":305,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":623,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":305,"cache_read_input_tokens":503927,"cache_creation_input_tokens":623,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":623},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU4jTEsrUidVHWLx5o5Z","type":"assistant","uuid":"1fdefe30-6b4c-49ea-8fe8-8a28985f2194","timestamp":"2026-07-28T07:31:38.187Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1fdefe30-6b4c-49ea-8fe8-8a28985f2194","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":3523},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T07:31:43.346Z","uuid":"170eeb29-bca1-42d6-aba7-e206b2b956f2","toolUseID":"d2c05645-4e92-47d0-b8ec-5e33304df539","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"170eeb29-bca1-42d6-aba7-e206b2b956f2","isSidechain":false,"promptId":"51baab5f-71e1-4f12-86fa-242254e89fd6","type":"user","message":{"role":"user","content":"do e want the client side route or API? What's the most interesting?"},"uuid":"328c0b27-6745-4da9-a49c-3786476e6217","timestamp":"2026-07-28T07:43:28.433Z","permissionMode":"auto","origin":{"kind":"human"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"328c0b27-6745-4da9-a49c-3786476e6217","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-3dc0f2a5-a586-4dbb-b761-efa370ffedc3","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"7f5aa60a-1261-4aa3-8883-cb48549a4ccc","timestamp":"2026-07-28T07:43:28.673Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7f5aa60a-1261-4aa3-8883-cb48549a4ccc","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU5eWnAwUpAxZcPDavUw","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I need to give a clear recommendation rather than just surveying the options. Looking at the technical constraints, WASM has some real blockers—it can't build right now due to missing dependencies in the runtime and battery modules, plus bubbletea compatibility issues. That tips the scales toward the API approach as the more practical choice. Managed functions on SWA don't support Go or custom handlers, so adding an API route would require either upgrading to a paid SWA tier with a separate Function App, or spawning a Go binary from an existing Node function. The latter is cheaper and technically feasible — the 23MB binary fits within bundle limits — but spawning a process per keystroke introduces cold start latency and per-request overhead that could feel sluggish. Let me check what SWA tier constraints actually apply here.\n\nActually, stepping back: WASM is the right move. It's the only option that delivers real-time interaction at 60fps without API round-trip latency, and it eliminates the entire operational surface of managing an endpoint, rate limiting, and scaling costs with usage.\n\nThe real win is reusability — the same WASM module could power live previews throughout the docs, making every segment page show an interactive example instead of a static image. That's genuinely distinctive compared to competitors. The build constraints are one-time friction, and it aligns with the project's existing philosophy of having a single renderer. An API approach adds a process boundary and operational overhead for no real benefit.\n\nThe payload concern is valid — multi-MB WASM on a docs site matters — but it only affects the studio page, which can lazy-load and compress it. For docs previews, I could gate the interactive feature behind a \"try it\" button. Pre-rendering handles the static cases at build time, so WASM only needs to handle the dynamic studio. The payload argument really only applies to one page.\n\nI'm going with WASM. I should state the decision clearly, lay out the reasoning, be honest about the costs, and identify the first concrete step forward. Before committing, I want to verify the Azure claim and actually measure the WASM size rather than estimate it.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":94,"cache_read_input_tokens":504855,"output_tokens":1999,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":94,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1999,"cache_read_input_tokens":504855,"cache_creation_input_tokens":94,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":94},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU5ePtSbgpa5hNpArsYa","type":"assistant","uuid":"425512a3-1f51-48f4-b915-4a471c008fe1","timestamp":"2026-07-28T07:44:02.425Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"425512a3-1f51-48f4-b915-4a471c008fe1","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU5eWnAwUpAxZcPDavUw","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01B1wT59koR41No32BnTLyu6","name":"Bash","input":{"command":"ls .github/workflows/ | head -20 && echo \"=== SWA deploy config ===\" && grep -rn \"api_location\\|app_location\\|output_location\\|Azure/static-web-apps\" .github/workflows/*.yml 2>/dev/null | head","description":"Check the website deployment setup"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":94,"cache_read_input_tokens":504855,"output_tokens":1999,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":94,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1999,"cache_read_input_tokens":504855,"cache_creation_input_tokens":94,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":94},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU5ePtSbgpa5hNpArsYa","type":"assistant","uuid":"ff0a4389-a25c-4a40-ad22-dd46dfc9d9e9","timestamp":"2026-07-28T07:44:03.353Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ff0a4389-a25c-4a40-ad22-dd46dfc9d9e9","isSidechain":false,"promptId":"51baab5f-71e1-4f12-86fa-242254e89fd6","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01B1wT59koR41No32BnTLyu6","type":"tool_result","content":"bluesky.yml\nbuild_code.yml\nclose_themes_pr.yml\ncode.yml\ncommits.yml\ncomposite\ncontributors.yml\ndependabot.yml\ndiscord.yml\ndocs.yml\ne2e.yml\nedit_rights.yml\ngomod.yml\nhomebrew.yml\nlock.yml\nmarkdown.yml\nmerge_contributions_pr.yml\npublish-mcp.yml\nrelease.yml\nvale.yml\n=== SWA deploy config ===\n.github/workflows/docs.yml:49: uses: Azure/static-web-apps-deploy@1a947af9992250f3bc2e68ad0754c0b0c11566c9\n.github/workflows/docs.yml:56: app_location: \"/website\" # App source code path\n.github/workflows/docs.yml:57: api_location: \"/website/api\" # Api source code path - optional\n.github/workflows/docs.yml:58: output_location: \"build\" # Built app content directory - optional","is_error":false}]},"uuid":"1f418bca-3d1d-4e72-8da9-e19bc167b1a3","timestamp":"2026-07-28T07:44:04.369Z","toolUseResult":{"stdout":"bluesky.yml\nbuild_code.yml\nclose_themes_pr.yml\ncode.yml\ncommits.yml\ncomposite\ncontributors.yml\ndependabot.yml\ndiscord.yml\ndocs.yml\ne2e.yml\nedit_rights.yml\ngomod.yml\nhomebrew.yml\nlock.yml\nmarkdown.yml\nmerge_contributions_pr.yml\npublish-mcp.yml\nrelease.yml\nvale.yml\n=== SWA deploy config ===\n.github/workflows/docs.yml:49: uses: Azure/static-web-apps-deploy@1a947af9992250f3bc2e68ad0754c0b0c11566c9\n.github/workflows/docs.yml:56: app_location: \"/website\" # App source code path\n.github/workflows/docs.yml:57: api_location: \"/website/api\" # Api source code path - optional\n.github/workflows/docs.yml:58: output_location: \"build\" # Built app content directory - optional","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"ff0a4389-a25c-4a40-ad22-dd46dfc9d9e9","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1f418bca-3d1d-4e72-8da9-e19bc167b1a3","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU5h4TUnvjKWREoDNtEY","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"So SWA's managed functions only support Node at `/website/api`, which means a Go API would either require bundling a Go binary inside a Node function or setting up a separate Function App on the paid Standard tier—both adding real infrastructure and cost overhead that WASM avoids. I should give a clear recommendation now.\n\nWASM is the better choice here because it unlocks live previews as a reusable capability across the whole studio, not just a single feature, while the API route forces you into either slow process spawning (~70ms per render) or paying for additional infrastructure. WASM does have real constraints—build complexity, a multi-megabyte payload, and no direct access to the user's machine—but those are manageable, and the API route has the same machine-access limitation anyway. The only thing an API can do that WASM can't is generate PNGs for GitHub READMEs, but that's a pinned-theme edge case that can be handled separately at build time or with a tiny endpoint.","signature":"CAISww0KhwEIEBgCKkDp4Jky1v31L2F3ZhbDGHRODLKKztQjGpz6mmXTRhWYB9bTcFdOmqrkItdJnHZ2nVm8fOOSZgcgRBgMkUoDeKYnMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDEk/W8+sw2r3we2GCxoMQ8CqDqNpF+eo23hhIjAzm0vlr+f5u7SNE744LmXLMGFVj4eSx8zw2DTNeOXgc6dnrmUDFrsJK2jASLaBS7wq6AuYAa3qKRMsjlYxxurq3/19jcZDHEtGvIGx/ktj7aEJk3dAFMEo0cRCEch9igSpY02ZCHuPPYt25UOXUtpU4Z9GscYxa33ZfwrunH0sgxDAgUV7gdPrH8dfOmu607i06UsXeRiJJvFp/pT6H0OkCZthPUZ+p5GasTl+mMxQv/PL1ofwWFj7D95O8xhRbOrbtcgCjd6vlmg1+NChTYwoYwQajyQST7sW1ruQlCDoNwlBgc8O8H5gUBy9ZFIoijY/ZtjKDo4GrOp2RUyOex+xDcLrwnClNpdMLqroIt8SgdNndQX35rddq0vEDX1cYClDXpU7G8LNADg43iGUZ+HslS1IXhAfQn1n8sEQjDfFF3KMWBEHsU8+7HcwI4lQckxolavf58l9PX88fwwohZP2tox8oSUob9u0VFN+oR0a/LHhq+1ZvMTUZ3ZJpQYXv3zV+zuYA2pnngamp1l9OH+YHwJk3PWXEto8MLW2M+UWiZzs/fT5/jmVtUFrCq3mCZOJqjMzQZrRmMcprc0AvhD3A61YvtvftVlhX62PHt81RmbTr7jDOL41XMmKF0eQntWK3QOfPnYSNSIjW+qYt94PKGIfFA5hxqtSVH+cTB3Xk800dMAwRzVhJtOdaFuAIDDgDomzDBJJm3QXXGzFgOUDYVHvUffVQzohe9FN9w6Igr5rAp6Oatmg49h2Y6pR5c9RPiQnHgEmHVaqCQhOeUrtil2+Z5MA2wd1Rk5AbvQqmpoHoiQOd/WkUavBnxaRGVSlNVoSvVufFrAQKF5/ruDi3DonWB4XMDVMFhYfRKtoU9jq+yW+KfdMqdSIpdnEzPjHzDofaVrjbEvO/+sFj5vpctbJfHtTCJ4Ruaeb0rDXf/iEG78/IROawijzlDDykdOrrpfCuwRlPfSojHIXdmogN1EY+5IxiukpOlNlFZAR9N/5ruhXpt4aQEnaq8AwBvYSWKgHWhjDPpzKZHqpsxf915GwEUE+K3Ytk0q/L3dwcXkGHXBJ0Efl95bqyAcOAEoKrkV50d/qoHXBayPUtZarOQH4IEDzsdx8qK984gNd67Klbs8gu0xEMWzBJUmqokKEpCr9E4XIKd27pPFQDhYYsDRpCLsK7NHdXbZDBJjfyfCtd4sz5m3nfQUkCco83s40ZB8qJTv4EKkMkDGcevo8c+Ah6IIwEMMmydQxa0rdRfdK1zUnRJ/lAp3psqAiIHkLZlTz8kk/SK2JUWq9ht/oiPhG2WR1ZaWx5cteXuvrQDO1G4TZ1nz4dcWKJ0k9v9q4Qv8tX+pqOefbTL6NAKN6Z0HsurWLl7snDdKfp1zC2buRjE4X6qRLSfudLeSBQgVkow/3Bu0DRa5OP61RyQtTuSGRkesWbReZRA9O44cTmTdWUVakfghQiLamI1FnyTJH/1HZQt8ie8+kDcAXgLTqOMtPHCSmO1BeO0I30hWYLjaVc9EmT8TwOttPIjeasljsKwL0SsbXu6S2L0dQaEoDsjvA0UAQ3U5oVNwYonHbhMJNGsgs4OGX+Ln5kK3TGhVd8EpMQmlaEUTtL4pVJ7hjzcTG5oiDBQvjtVbflttXkWpVkPBIi6I3QRYxufds2SLLGULgUJoYjokFmUvoG79YIXbOant9yii9dGDAcF6xUYDJbu0TrtlPN//Hk+bUbHMFe8F4PyFF7HsY4lP1Wi02Nl1X+RTfubDOd6MkvmM8AvbivHXDZwd9vEjpDS9B9tAS0d6xcfaw1j0ZMh6iQQqen1oUJ39Wqq3o4UAW64M8xKMOGKrxRBXWlQulksFZufOsb1p9t4pinfHp/Nt5Du7QHrQBHjmKicvvM7TvTUcwFs4uFmkST0nimQI2gfDwCEvCEJSKbRPN4xm8GTlKZOmL/wcPR7vvvJzC5AF5hK+SyvQ4oUPTm2CxKE1M/tsry5UJCw+tdIxGxwD7/7UE7J1B+3GmbNvHsP01uCQAmjq31w/QzARehR+AVnZwaGpwlwyxhIwwmJu64bF9awaLReAq9fCR0/GD3gKLrtEYAQ=="}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2322,"cache_read_input_tokens":504949,"output_tokens":1734,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2322,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1734,"cache_read_input_tokens":504949,"cache_creation_input_tokens":2322,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2322},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU5gzLRj7Qepzc2qYFmq","type":"assistant","uuid":"646667ec-f182-45f8-bcd3-bfb093e7fe04","timestamp":"2026-07-28T07:44:16.309Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"646667ec-f182-45f8-bcd3-bfb093e7fe04","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU5h4TUnvjKWREoDNtEY","type":"message","role":"assistant","content":[{"type":"text","text":"**WASM.** And it's the more interesting one for a reason beyond the studio.\n\n## Why it's more interesting\n\nAn API gives you a studio page. WASM gives you a *renderer in the browser* — and the studio is then just its first consumer. What it also unlocks:\n\n- **Live previews in the segment docs.** Every one of the 117 segment pages currently shows config in a code block. With a renderer client-side, each one can render its own example live, and let you edit it in place. That's the thing that would make ohmyposh.dev distinctly better than every competitor site in that sweep, not just cleaner.\n- **An interactive theme gallery.** The 124 themes are static SVG today. Same module makes them tweakable — fork a theme in the browser, see it, download the config.\n- **Zero marginal cost per render.** No endpoint to rate-limit, no bill that scales with people playing with it.\n\nThe API route gets you exactly one page and an operational surface you own forever.\n\n## The specific reason the API is worse here\n\nAzure Static Web Apps can't host Go. Confirmed: `staticwebapp.config.json` pins `apiRuntime: node:20`, and `docs.yml` deploys managed functions from `/website/api` — Node, Python, .NET and Java are the managed runtimes. Go isn't one. So the server route is one of:\n\n- a Node function spawning a bundled Go binary — a **process spawn per render**, and my own measurement on this project puts the spawn floor around 70ms before any work happens. Per keystroke that means debouncing to ~300ms, which feels like typing into treacle when you're nudging a colour.\n- \"bring your own functions\" — a separate Function App, which needs SWA **Standard** tier. New infra, new deploy path, a bill.\n\nNeither is less work than fixing three build tags.\n\n## The honest costs\n\n**Payload.** Go WASM is large — I'd estimate 15–25 MB raw, maybe 4–6 MB brotli'd, but **I have not measured it** because the build doesn't work yet, so treat that as a guess until step 1 lands. Mitigation is ordinary: lazy-load it, only on pages that need it, behind a \"try it\" affordance on docs pages rather than eagerly.\n\n**The build blockers**, which are bounded and one-time: `runtime/jobs` needs a `Setpgid` stub, `runtime/battery` a `systemGetAll` stub, and `bubbletea` has to come off the import path reachable from `prompt`.\n\n**Fake data.** The preview renders against synthetic segment values, not the user's real repo. True of both routes — a browser has no `git` and a server has no access to your machine either.\n\n## Where the API still wins — and it's not the studio\n\n`?format=png` for GitHub READMEs genuinely has to be a URL that something else fetches. But that renders *pinned bundled themes only*, never user input, so it's a small safe endpoint or even build-time output. It doesn't argue for the studio being server-side.\n\n## First step\n\nTwo things, in order, both independently useful:\n\n1. **Enforce data-only replay** — missing key means not enabled, reject `extends`. Smallest item, needed either way, and it makes every preview deterministic.\n2. **Make `GOOS=js GOARCH=wasm go build ./prompt/ ./svg/` go green.** That also *measures* the payload, which converts my estimate above into a number before you're committed to anything.\n\nIf step 2's number comes back ugly, you've spent a small amount of work and can still take the API route with nothing wasted — step 1 is required regardless, and the `svgOptions` move is required regardless. Want me to start on those two?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2322,"cache_read_input_tokens":504949,"output_tokens":1734,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2322,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1734,"cache_read_input_tokens":504949,"cache_creation_input_tokens":2322,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2322},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU5gzLRj7Qepzc2qYFmq","type":"assistant","uuid":"b5888e91-e562-4ff8-9143-8693d3df7b49","timestamp":"2026-07-28T07:44:32.759Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b5888e91-e562-4ff8-9143-8693d3df7b49","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":3483},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T07:44:38.657Z","uuid":"c48dfec8-4507-4a01-b247-10c146c143d3","toolUseID":"b7293973-c3a4-4ae3-8747-517b82c6e882","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c48dfec8-4507-4a01-b247-10c146c143d3","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":"Continue with one and then jump to two. Maybe for two, if it turns out that the executable is rather large, maybe we can add some compile-time flags to exclude code that is not relevant for the Wasm build and its purpose."},"uuid":"2452d407-d9c2-439a-99c1-d2c47f29a32e","timestamp":"2026-07-28T08:00:13.829Z","permissionMode":"auto","origin":{"kind":"human"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2452d407-d9c2-439a-99c1-d2c47f29a32e","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-91427de2-ffac-421f-b198-daa0c47e718d","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"7853fa77-c709-4828-853a-1ef9749e3fdf","timestamp":"2026-07-28T08:00:14.034Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7853fa77-c709-4828-853a-1ef9749e3fdf","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU6vciBJGFNfpNB8ckiJ","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The user wants to skip the data-only replay and jump straight to building the WASM version with measurements. I should use build tags to exclude unnecessary code like the CLI, upgrade logic, font downloads, auth, and MCP server — though realistically the WASM entrypoint would only pull in the core modules like prompt, SVG rendering, config, terminal, and color handling anyway, so most of that wouldn't link in.\n\nThe segments themselves are the real bloat — each one is 100+ lines with its own logic, and for a studio tool you need all of them since users can configure anything. What I can trim is the interactive prompt UI from bubbletea, the upgrade machinery, font downloads, and native code backends that come through the runtime.\n\nLet me start with task 1 instead: enforcing data-only replay mode. I'll add a flag to the runtime configuration, then modify the restore logic to mark segments as disabled when data is missing in that mode, and reject config extends. First I need to look at the actual code structure — the flags definition, the restore function, the config loading, and the data file application.\n\nI'm debating whether to implement this myself or delegate. The user said to continue, which suggests I should do it directly, and this is small enough and security-critical enough that I'll handle it myself rather than coordinate with another agent. Let me read through the relevant files.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":146,"cache_read_input_tokens":509005,"output_tokens":1039,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":146,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1039,"cache_read_input_tokens":509005,"cache_creation_input_tokens":146,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":146},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU6vWGj15rLmtsUzy4Qt","type":"assistant","uuid":"37aa00bf-b3ab-48b3-a51c-353f332e4b7b","timestamp":"2026-07-28T08:00:35.993Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"37aa00bf-b3ab-48b3-a51c-353f332e4b7b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU6vciBJGFNfpNB8ckiJ","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_012vtZXy88wGa1kpCXkSkk9B","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && grep -n \"SegmentData\\|DataDerive\\|Data \" runtime/flags.go | head -15 && echo \"=== flags struct ===\" && sed -n '/^type Flags struct/,/^}/p' runtime/flags.go | head -50","description":"Read the Flags struct"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":146,"cache_read_input_tokens":509005,"output_tokens":1039,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":146,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1039,"cache_read_input_tokens":509005,"cache_creation_input_tokens":146,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":146},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU6vWGj15rLmtsUzy4Qt","type":"assistant","uuid":"b67414ef-c368-4dc9-b5e9-83660d3339fe","timestamp":"2026-07-28T08:00:36.196Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b67414ef-c368-4dc9-b5e9-83660d3339fe","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_012vtZXy88wGa1kpCXkSkk9B","type":"tool_result","content":"grep: runtime/flags.go: No such file or directory\n=== flags struct ===\nsed: can't read runtime/flags.go: No such file or directory","is_error":false}]},"uuid":"1b6134b2-2bab-4578-8525-f26322cca000","timestamp":"2026-07-28T08:00:40.987Z","toolUseResult":{"stdout":"grep: runtime/flags.go: No such file or directory\n=== flags struct ===\nsed: can't read runtime/flags.go: No such file or directory","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"b67414ef-c368-4dc9-b5e9-83660d3339fe","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1b6134b2-2bab-4578-8525-f26322cca000","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU6xc52xpfAM2qZcVBv2","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_015piRAyUTyz5vbdfvuq6jD6","name":"Bash","input":{"command":"grep -rn \"SegmentData \" runtime/*.go | head -3 && echo \"=== struct ===\" && sed -n '/^type Flags struct/,/^}/p' $(grep -rl \"type Flags struct\" runtime/*.go)","description":"Locate and read the Flags struct"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1093,"cache_read_input_tokens":509151,"output_tokens":157,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1093,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":157,"cache_read_input_tokens":509151,"cache_creation_input_tokens":1093,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1093},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU6xTBFUmWTzMaPPcHmc","type":"assistant","uuid":"a2b1497e-2f93-4b48-ab9a-27c31830a9af","timestamp":"2026-07-28T08:00:46.016Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a2b1497e-2f93-4b48-ab9a-27c31830a9af","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_015piRAyUTyz5vbdfvuq6jD6","type":"tool_result","content":"runtime/environment.go:84:\tSegmentData map[string]json.RawMessage\n=== struct ===\ntype Flags struct {\n\tSegmentData map[string]json.RawMessage\n\tType string\n\tPipeStatus string\n\tConfigPath string\n\tPSWD string\n\tShell string\n\tShellVersion string\n\tPWD string\n\tAbsolutePWD string\n\tEnvData json.RawMessage\n\tExecutionTime float64\n\tPromptCount int\n\tColumn int\n\tTerminalWidth int\n\tErrorCode int\n\tStackCount int\n\tConfigHash uint64\n\tJobCount int\n\tCleared bool\n\tStrict bool\n\tDebug bool\n\tHasExtra bool\n\tNoExitCode bool\n\tInit bool\n\tMigrate bool\n\tEval bool\n\tEscape bool\n\tIsPrimary bool\n\tPlain bool\n\tForce bool\n\tStreaming bool\n\tInterrupted bool\n}","is_error":false}]},"uuid":"0f48f0b4-dac0-45d8-9bbd-a3c904ea240e","timestamp":"2026-07-28T08:00:48.581Z","toolUseResult":{"stdout":"runtime/environment.go:84:\tSegmentData map[string]json.RawMessage\n=== struct ===\ntype Flags struct {\n\tSegmentData map[string]json.RawMessage\n\tType string\n\tPipeStatus string\n\tConfigPath string\n\tPSWD string\n\tShell string\n\tShellVersion string\n\tPWD string\n\tAbsolutePWD string\n\tEnvData json.RawMessage\n\tExecutionTime float64\n\tPromptCount int\n\tColumn int\n\tTerminalWidth int\n\tErrorCode int\n\tStackCount int\n\tConfigHash uint64\n\tJobCount int\n\tCleared bool\n\tStrict bool\n\tDebug bool\n\tHasExtra bool\n\tNoExitCode bool\n\tInit bool\n\tMigrate bool\n\tEval bool\n\tEscape bool\n\tIsPrimary bool\n\tPlain bool\n\tForce bool\n\tStreaming bool\n\tInterrupted bool\n}","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"a2b1497e-2f93-4b48-ab9a-27c31830a9af","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0f48f0b4-dac0-45d8-9bbd-a3c904ea240e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU6yAvUWS5DJkuxe2akX","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01KyWkQCbFDHJMsFMQb3LekZ","name":"Read","input":{"file_path":"D:\\oh-my-posh\\src\\config\\segment.go","offset":520,"limit":40},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":508,"cache_read_input_tokens":510244,"output_tokens":110,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":508,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":110,"cache_read_input_tokens":510244,"cache_creation_input_tokens":508,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":508},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU6xzqkk7DJi6eaVjmcY","type":"assistant","uuid":"d9c3539c-4d96-4305-a2b5-7b6025ea2f5b","timestamp":"2026-07-28T08:00:54.031Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d9c3539c-4d96-4305-a2b5-7b6025ea2f5b","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01KyWkQCbFDHJMsFMQb3LekZ","type":"tool_result","content":"520\t\tsegment.restored = true\n521\t\n522\t\treturn true\n523\t}\n524\t\n525\t// restoreData replays a segment's writer state from the data file supplied via\n526\t// runtime.Flags.SegmentData, bypassing the real runtime entirely. This lets\n527\t// segments render from a recorded fixture instead of probing the environment.\n528\t//\n529\t// Two shapes reach here, distinguished by structure rather than a flag threaded\n530\t// through runtime.Flags (which this package does not own, and cannot extend): a\n531\t// RecordedSegment envelope - {\"enabled\":...,\"data\":...}, exactly those two keys -\n532\t// written by `config export data` for a versioned file, or the flat writer JSON\n533\t// a hand-written file has always stored directly.\n534\t//\n535\t// A recorded, enabled entry is unmarshaled and returns true here, same as\n536\t// before: no probe. A recorded-but-disabled entry is suppressed here with no\n537\t// probe either - that is what makes replay hermetic. A flat entry cannot be\n538\t// trusted this early: it stashes itself in pendingData and returns false so\n539\t// Execute keeps running - shouldHideForWidth, the Job setup, and\n540\t// writer.Enabled() all still fire - and overlayData applies it afterward.\n541\t// There are two call sites for that overlay, both in Execute: a device/session\n542\t// cache hit in restoreCache also produces state pendingData needs to win\n543\t// over, and returns before writer.Enabled() runs, so it overlays right there;\n544\t// everything else overlays after writer.Enabled() further down.\n545\tfunc (segment *Segment) restoreData() bool {\n546\t\traw, OK := segment.env.Flags().SegmentData[segment.DataKey()]\n547\t\tif !OK {\n548\t\t\treturn false\n549\t\t}\n550\t\n551\t\trecorded, isRecorded := decodeRecordedSegment(raw)\n552\t\tif !isRecorded {\n553\t\t\tsegment.pendingData = raw\n554\t\t\treturn false\n555\t\t}\n556\t\n557\t\tif !recorded.Enabled {\n558\t\t\tsegment.Enabled = false\n559\t\t\tsegment.restored = true"}]},"uuid":"1cae3e95-5e2e-4640-a02d-2d886cfd7b87","timestamp":"2026-07-28T08:00:54.037Z","toolUseResult":{"type":"text","file":{"filePath":"D:\\oh-my-posh\\src\\config\\segment.go","content":"\tsegment.restored = true\n\n\treturn true\n}\n\n// restoreData replays a segment's writer state from the data file supplied via\n// runtime.Flags.SegmentData, bypassing the real runtime entirely. This lets\n// segments render from a recorded fixture instead of probing the environment.\n//\n// Two shapes reach here, distinguished by structure rather than a flag threaded\n// through runtime.Flags (which this package does not own, and cannot extend): a\n// RecordedSegment envelope - {\"enabled\":...,\"data\":...}, exactly those two keys -\n// written by `config export data` for a versioned file, or the flat writer JSON\n// a hand-written file has always stored directly.\n//\n// A recorded, enabled entry is unmarshaled and returns true here, same as\n// before: no probe. A recorded-but-disabled entry is suppressed here with no\n// probe either - that is what makes replay hermetic. A flat entry cannot be\n// trusted this early: it stashes itself in pendingData and returns false so\n// Execute keeps running - shouldHideForWidth, the Job setup, and\n// writer.Enabled() all still fire - and overlayData applies it afterward.\n// There are two call sites for that overlay, both in Execute: a device/session\n// cache hit in restoreCache also produces state pendingData needs to win\n// over, and returns before writer.Enabled() runs, so it overlays right there;\n// everything else overlays after writer.Enabled() further down.\nfunc (segment *Segment) restoreData() bool {\n\traw, OK := segment.env.Flags().SegmentData[segment.DataKey()]\n\tif !OK {\n\t\treturn false\n\t}\n\n\trecorded, isRecorded := decodeRecordedSegment(raw)\n\tif !isRecorded {\n\t\tsegment.pendingData = raw\n\t\treturn false\n\t}\n\n\tif !recorded.Enabled {\n\t\tsegment.Enabled = false\n\t\tsegment.restored = true","numLines":40,"startLine":520,"totalLines":755}},"sourceToolAssistantUUID":"d9c3539c-4d96-4305-a2b5-7b6025ea2f5b","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1cae3e95-5e2e-4640-a02d-2d886cfd7b87","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"7d6cde29-d0f1-4413-b0ab-5160e6e8a11c","timestamp":"2026-07-28T08:00:54.132Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7d6cde29-d0f1-4413-b0ab-5160e6e8a11c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU6yWVTZ67Fu3QrXd4yU","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm adding a `DataOnly` flag to control behavior when segment data isn't found—if enabled, the segment gets disabled and marked as restored rather than returning false, which allows the flat-entry path to keep the segment probe alive for hand-written entries.\n\nBut there's a tension here: in DataOnly mode, flat entries should apply their state without probing live, yet about half the segments compute template-visible state inside their `Enabled()` method, which won't run if we skip the live probe entirely.\n\nThe pragmatic fix is to treat flat entries in DataOnly as complete writer state (no probe, mark enabled+restored), but acknowledge that hand-written partial files like the website's `segment_data.json` would render segments empty. The proper solution is to require recorded envelopes in DataOnly mode — the website should export its data via `config export data` rather than hand-writing it.\n\nBut flipping the gallery to DataOnly would affect all 124 theme renders, so I'll implement the flag as opt-in for the studio only. The gallery migration is a separate decision. Now I need to figure out how to handle the `extends` rejection — config.Load doesn't have access to flags since they're created after, so I need a different mechanism like a package-level toggle or a parameter passed through.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":945,"cache_read_input_tokens":510752,"output_tokens":1398,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":945,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":1398,"cache_read_input_tokens":510752,"cache_creation_input_tokens":945,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":945},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU6yQjSHLtcRbR4aogih","type":"assistant","uuid":"d3da0ae8-5041-4d2e-9dbe-4d99812169b8","timestamp":"2026-07-28T08:01:15.248Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d3da0ae8-5041-4d2e-9dbe-4d99812169b8","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU6yWVTZ67Fu3QrXd4yU","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01HDTEmnsMFuXjmmUjKpreaw","name":"Bash","input":{"command":"grep -n \"^func Load\\|^func loadConfig\\|func.*resolveConfigLocation\" config/load.go | head && sed -n '100,150p' config/load.go","description":"Read config.Load and the extends chain"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":945,"cache_read_input_tokens":510752,"output_tokens":1398,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":945,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":1398,"cache_read_input_tokens":510752,"cache_creation_input_tokens":945,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":945},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU6yQjSHLtcRbR4aogih","type":"assistant","uuid":"b40e4ebc-f7fc-41de-ac9b-7cb82a509531","timestamp":"2026-07-28T08:01:15.979Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b40e4ebc-f7fc-41de-ac9b-7cb82a509531","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01HDTEmnsMFuXjmmUjKpreaw","type":"tool_result","content":"44:func Load(configFile string) *Config {\n55:func resolveConfigLocation(config string) string {\n\tconfigFile = resolveConfigLocation(configFile)\n\n\tconfigDSC := DSC()\n\tconfigDSC.Load()\n\tconfigDSC.Add(configFile)\n\n\tdefer configDSC.Save()\n\n\th := fnv.New64a()\n\n\tcfg, err := read(configFile, h)\n\tif err != nil {\n\t\tlog.Errorf(\"failed to read config: %s\", configFile)\n\t\treturn nil, err\n\t}\n\n\tparentFolder := filepath.Dir(configFile)\n\tvisited := map[string]bool{configFile: true}\n\n\tfor cfg.Extends != \"\" {\n\t\tcfg.Extends = resolvePath(cfg.Extends, parentFolder)\n\n\t\tif visited[cfg.Extends] {\n\t\t\tlog.Errorf(\"circular extends detected: %s\", cfg.Extends)\n\t\t\tbreak\n\t\t}\n\n\t\tvisited[cfg.Extends] = true\n\n\t\tbase, err := read(cfg.Extends, h)\n\t\tif err != nil {\n\t\t\tlog.Errorf(\"failed to read extended config: %s\", cfg.Extends)\n\t\t\tbreak\n\t\t}\n\n\t\tconfigDSC.Add(cfg.Extends)\n\n\t\t// anchor the next hop's relative extends path against this hop's own\n\t\t// directory, not the directory of the config that started the chain\n\t\tif !strings.HasPrefix(cfg.Extends, \"https://\") {\n\t\t\tparentFolder = filepath.Dir(cfg.Extends)\n\t\t}\n\n\t\terr = base.merge(cfg)\n\t\tif err != nil {\n\t\t\tlog.Error(err)\n\t\t\tbreak\n\t\t}\n\n\t\tcfg = base\n\t}","is_error":false}]},"uuid":"33c3632c-956a-47e9-9ab2-537e230ed274","timestamp":"2026-07-28T08:01:16.942Z","toolUseResult":{"stdout":"44:func Load(configFile string) *Config {\n55:func resolveConfigLocation(config string) string {\n\tconfigFile = resolveConfigLocation(configFile)\n\n\tconfigDSC := DSC()\n\tconfigDSC.Load()\n\tconfigDSC.Add(configFile)\n\n\tdefer configDSC.Save()\n\n\th := fnv.New64a()\n\n\tcfg, err := read(configFile, h)\n\tif err != nil {\n\t\tlog.Errorf(\"failed to read config: %s\", configFile)\n\t\treturn nil, err\n\t}\n\n\tparentFolder := filepath.Dir(configFile)\n\tvisited := map[string]bool{configFile: true}\n\n\tfor cfg.Extends != \"\" {\n\t\tcfg.Extends = resolvePath(cfg.Extends, parentFolder)\n\n\t\tif visited[cfg.Extends] {\n\t\t\tlog.Errorf(\"circular extends detected: %s\", cfg.Extends)\n\t\t\tbreak\n\t\t}\n\n\t\tvisited[cfg.Extends] = true\n\n\t\tbase, err := read(cfg.Extends, h)\n\t\tif err != nil {\n\t\t\tlog.Errorf(\"failed to read extended config: %s\", cfg.Extends)\n\t\t\tbreak\n\t\t}\n\n\t\tconfigDSC.Add(cfg.Extends)\n\n\t\t// anchor the next hop's relative extends path against this hop's own\n\t\t// directory, not the directory of the config that started the chain\n\t\tif !strings.HasPrefix(cfg.Extends, \"https://\") {\n\t\t\tparentFolder = filepath.Dir(cfg.Extends)\n\t\t}\n\n\t\terr = base.merge(cfg)\n\t\tif err != nil {\n\t\t\tlog.Error(err)\n\t\t\tbreak\n\t\t}\n\n\t\tcfg = base\n\t}","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"b40e4ebc-f7fc-41de-ac9b-7cb82a509531","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"33c3632c-956a-47e9-9ab2-537e230ed274","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU71MQKP4w4NHQ7Fi93n","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm thinking through how to handle the `extends` directive in data-only mode. The cleanest approach is to use a package-level variable in the config module that the entrypoint sets before calling `Load`, similar to how `terminal.CaptureRuns` works elsewhere in the codebase. That said, for the studio and WASM builds, the config won't even be loaded from a file path, so this might be a non-issue in those contexts.\n\nFor WASM specifically, the security concern around `extends` fetching largely disappears since it's just the user's browser making requests to URLs they've typed — it's subject to CORS and the user's own network sandbox. The real problem is determinism: an `extends` chain introduces network dependencies that make previews non-deterministic. So I should focus on implementing segment-level enforcement now to solve the determinism issue, and defer the `extends` handling at the loader level until the studio entrypoint actually exists.\n\nSince how config gets loaded (string vs file path) isn't finalized yet, I'll be explicit about this deferral rather than silently dropping it. Now I need to implement the `DataOnly` flag in the runtime, update `restoreData` to handle the missing-key case when `DataOnly` is set, add a CLI flag for testing, and write tests for it. Let me check where the existing `--data-derive` flag is defined so I can add the new flag consistently.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1934,"cache_read_input_tokens":511697,"output_tokens":797,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1934,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":797,"cache_read_input_tokens":511697,"cache_creation_input_tokens":1934,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1934},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7174cT89ikeZ7K3qtw","type":"assistant","uuid":"4bf9eb07-18da-4de4-9ac9-a0fa1815361a","timestamp":"2026-07-28T08:01:43.703Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4bf9eb07-18da-4de4-9ac9-a0fa1815361a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU71MQKP4w4NHQ7Fi93n","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017yrcVAz4K2GWwmhPtpUUXq","name":"Read","input":{"file_path":"D:\\oh-my-posh\\src\\cli\\data.go"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1934,"cache_read_input_tokens":511697,"output_tokens":797,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1934,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":797,"cache_read_input_tokens":511697,"cache_creation_input_tokens":1934,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1934},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7174cT89ikeZ7K3qtw","type":"assistant","uuid":"5aac80ef-4470-4914-a794-c3ececb142a9","timestamp":"2026-07-28T08:01:43.801Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5aac80ef-4470-4914-a794-c3ececb142a9","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017yrcVAz4K2GWwmhPtpUUXq","type":"tool_result","content":"1\tpackage cli\n2\t\n3\timport (\n4\t\t\"encoding/json\"\n5\t\t\"fmt\"\n6\t\t\"os\"\n7\t\n8\t\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n9\t\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n10\t)\n11\t\n12\t// Shared between printCmd and imageCmd.\n13\tvar (\n14\t\tdataPath string\n15\t\tdataDerive bool\n16\t)\n17\t\n18\tfunc init() {\n19\t\tconst usage = \"derive live state for a recorded --data file too, instead of replaying it hermetically (debugging)\"\n20\t\n21\t\tprintCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, usage)\n22\t\timageCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, usage)\n23\t}\n24\t\n25\t// No-op when dataPath is empty. The env/segment routing onto flags itself - with\n26\t// precedence explicit CLI flag > data file > live environment - lives in\n27\t// config.Data.ApplyFlags, shared with prompt/golden_test.go's fixture harness,\n28\t// which cannot import this package (cli imports prompt).\n29\tfunc applyDataFile(flags *runtime.Flags, changed func(name string) bool) error {\n30\t\tif dataPath == \"\" {\n31\t\t\treturn nil\n32\t\t}\n33\t\n34\t\tdata, err := config.LoadData(dataPath)\n35\t\tif err != nil {\n36\t\t\treturn err\n37\t\t}\n38\t\n39\t\tif data.Version < config.DataVersion {\n40\t\t\tfmt.Fprintf(os.Stderr,\n41\t\t\t\t\"warning: %s has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, \"+\n42\t\t\t\t\t\"segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\\n\",\n43\t\t\t\tdataPath)\n44\t\t}\n45\t\n46\t\tif dataDerive && data.Version >= config.DataVersion {\n47\t\t\tdata.Segments = deriveRecordedSegments(data.Segments)\n48\t\t}\n49\t\n50\t\treturn data.ApplyFlags(flags, changed)\n51\t}\n52\t\n53\t// deriveRecordedSegments strips the RecordedSegment envelope back down to each\n54\t// segment's raw writer data, forcing Segment.restoreData to treat a recorded\n55\t// file the same way it treats a hand-written one: derive live state via\n56\t// writer.Enabled(), then overlay the pinned data, instead of the hermetic no-probe\n57\t// path. The caller only calls this once data.Version confirms every entry is an\n58\t// envelope, so decoding here does not need to guard against a flat entry.\n59\tfunc deriveRecordedSegments(segments map[string]json.RawMessage) map[string]json.RawMessage {\n60\t\tderived := make(map[string]json.RawMessage, len(segments))\n61\t\n62\t\tfor key, raw := range segments {\n63\t\t\tvar recorded config.RecordedSegment\n64\t\t\tif err := json.Unmarshal(raw, &recorded); err != nil {\n65\t\t\t\tderived[key] = raw\n66\t\t\t\tcontinue\n67\t\t\t}\n68\t\n69\t\t\tderived[key] = recorded.Data\n70\t\t}\n71\t\n72\t\treturn derived\n73\t}\n74\t"}]},"uuid":"4edb2e37-510e-4d02-9058-eb5c1a162582","timestamp":"2026-07-28T08:01:43.825Z","toolUseResult":{"type":"text","file":{"filePath":"D:\\oh-my-posh\\src\\cli\\data.go","content":"package cli\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n)\n\n// Shared between printCmd and imageCmd.\nvar (\n\tdataPath string\n\tdataDerive bool\n)\n\nfunc init() {\n\tconst usage = \"derive live state for a recorded --data file too, instead of replaying it hermetically (debugging)\"\n\n\tprintCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, usage)\n\timageCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, usage)\n}\n\n// No-op when dataPath is empty. The env/segment routing onto flags itself - with\n// precedence explicit CLI flag > data file > live environment - lives in\n// config.Data.ApplyFlags, shared with prompt/golden_test.go's fixture harness,\n// which cannot import this package (cli imports prompt).\nfunc applyDataFile(flags *runtime.Flags, changed func(name string) bool) error {\n\tif dataPath == \"\" {\n\t\treturn nil\n\t}\n\n\tdata, err := config.LoadData(dataPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif data.Version < config.DataVersion {\n\t\tfmt.Fprintf(os.Stderr,\n\t\t\t\"warning: %s has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, \"+\n\t\t\t\t\"segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\\n\",\n\t\t\tdataPath)\n\t}\n\n\tif dataDerive && data.Version >= config.DataVersion {\n\t\tdata.Segments = deriveRecordedSegments(data.Segments)\n\t}\n\n\treturn data.ApplyFlags(flags, changed)\n}\n\n// deriveRecordedSegments strips the RecordedSegment envelope back down to each\n// segment's raw writer data, forcing Segment.restoreData to treat a recorded\n// file the same way it treats a hand-written one: derive live state via\n// writer.Enabled(), then overlay the pinned data, instead of the hermetic no-probe\n// path. The caller only calls this once data.Version confirms every entry is an\n// envelope, so decoding here does not need to guard against a flat entry.\nfunc deriveRecordedSegments(segments map[string]json.RawMessage) map[string]json.RawMessage {\n\tderived := make(map[string]json.RawMessage, len(segments))\n\n\tfor key, raw := range segments {\n\t\tvar recorded config.RecordedSegment\n\t\tif err := json.Unmarshal(raw, &recorded); err != nil {\n\t\t\tderived[key] = raw\n\t\t\tcontinue\n\t\t}\n\n\t\tderived[key] = recorded.Data\n\t}\n\n\treturn derived\n}\n","numLines":74,"startLine":1,"totalLines":74}},"sourceToolAssistantUUID":"5aac80ef-4470-4914-a794-c3ececb142a9","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4edb2e37-510e-4d02-9058-eb5c1a162582","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU73CMugr82J3f4HnP2o","type":"message","role":"assistant","content":[{"type":"text","text":"Now implementing. Adding the flag:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1881,"cache_read_input_tokens":513631,"output_tokens":355,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1881,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":355,"cache_read_input_tokens":513631,"cache_creation_input_tokens":1881,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1881},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU736nYujwbZ8Qfj9YXd","type":"assistant","uuid":"d4a594f1-a053-4443-a598-f4696cb9265d","timestamp":"2026-07-28T08:01:47.931Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d4a594f1-a053-4443-a598-f4696cb9265d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU73CMugr82J3f4HnP2o","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_013xJx38KxnuottRcNBXmZEp","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\runtime\\environment.go","old_string":"\tStreaming bool\n\tInterrupted bool\n}","new_string":"\tStreaming bool\n\tInterrupted bool\n\t// DataOnly makes SegmentData the only source a segment may render from: a\n\t// segment whose key is absent renders as disabled rather than falling\n\t// through to writer.Enabled() and probing the real machine (see\n\t// config.Segment.restoreData). Off for an ordinary prompt render, where\n\t// falling through is exactly right; on for a caller that must not touch\n\t// the environment at all, such as a preview rendering a config it was\n\t// handed rather than one the user owns.\n\tDataOnly bool\n}"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1881,"cache_read_input_tokens":513631,"output_tokens":355,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1881,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":355,"cache_read_input_tokens":513631,"cache_creation_input_tokens":1881,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1881},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU736nYujwbZ8Qfj9YXd","type":"assistant","uuid":"74a31d48-4735-4e36-ade4-9071648a8ed2","timestamp":"2026-07-28T08:01:51.707Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"74a31d48-4735-4e36-ade4-9071648a8ed2","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_013xJx38KxnuottRcNBXmZEp","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\runtime\\environment.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"51a8d447-bb3d-4793-b63e-c935b0b23ad1","timestamp":"2026-07-28T08:01:51.749Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\runtime\\environment.go","oldString":"\tStreaming bool\n\tInterrupted bool\n}","newString":"\tStreaming bool\n\tInterrupted bool\n\t// DataOnly makes SegmentData the only source a segment may render from: a\n\t// segment whose key is absent renders as disabled rather than falling\n\t// through to writer.Enabled() and probing the real machine (see\n\t// config.Segment.restoreData). Off for an ordinary prompt render, where\n\t// falling through is exactly right; on for a caller that must not touch\n\t// the environment at all, such as a preview rendering a config it was\n\t// handed rather than one the user owns.\n\tDataOnly bool\n}","originalFile":"package runtime\n\nimport (\n\t\"encoding/json\"\n\t\"io\"\n\t\"io/fs\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime/battery\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime/http\"\n\n\tdisk \"github.com/shirou/gopsutil/v4/disk\"\n)\n\nconst (\n\tUNKNOWN = \"unknown\"\n\tWINDOWS = \"windows\"\n\tDARWIN = \"darwin\"\n\tLINUX = \"linux\"\n\tFREEBSD = \"freebsd\"\n\tCMD = \"cmd\"\n\tANDROID = \"android\"\n\n\tPRIMARY = \"primary\"\n)\n\n// Player-agnostic: the OS media-transport layer (e.g. Windows SMTC) can surface any app that publishes a session.\ntype MediaInfo struct {\n\t// Status is the lowercased playback status: playing/paused/stopped/closed/opened/changing.\n\tStatus string\n\tTitle string\n\tArtist string\n\tAlbum string\n\tTrackNumber int\n}\n\ntype Environment interface {\n\tGetenv(key string) string\n\tPwd() string\n\tHome() string\n\tUser() string\n\tRoot() bool\n\tHost() (string, error)\n\tGOOS() string\n\tShell() string\n\tPlatform() string\n\tStatusCodes() (int, string)\n\tHasFiles(pattern string) bool\n\tHasFilesInDir(dir, pattern string) bool\n\tHasFolder(folder string) bool\n\tHasParentFilePath(input string, followSymlinks bool) (fileInfo *FileInfo, err error)\n\tHasFileInParentDirs(pattern string, depth uint) bool\n\tResolveSymlink(input string) (string, error)\n\tDirMatchesOneOf(dir string, regexes []string) bool\n\tDirIsWritable(input string) bool\n\tCommandPath(command string) string\n\tHasCommand(command string) bool\n\tFileContent(file string) string\n\tLsDir(input string) []fs.DirEntry\n\tRunCommand(command string, args ...string) (string, error)\n\tRunCommandWithEnv(command string, envs []string, args ...string) (string, error)\n\tRunShellCommand(shell, command string) string\n\tExecutionTime() float64\n\tFlags() *Flags\n\tBatteryState() (*battery.Info, error)\n\tQueryWindowTitles(processName, windowTitleRegex string) (string, error)\n\tQueryMediaPlayer(player string) (*MediaInfo, error)\n\tWindowsRegistryKeyValue(key string) (*WindowsRegistryValue, error)\n\tHTTPRequest(url string, body io.Reader, timeout int, requestModifiers ...http.RequestModifier) ([]byte, error)\n\tIsWsl() bool\n\tIsWsl2() bool\n\tIsCygwin() bool\n\tStackCount() int\n\tTerminalWidth() (int, error)\n\tLogs() string\n\tInWSLSharedDrive() bool\n\tConvertToLinuxPath(input string) string\n\tConvertToWindowsPath(input string) string\n\tConnection(connectionType ConnectionType) (*Connection, error)\n\tCursorPosition() (row, col int)\n\tSystemInfo() (*SystemInfo, error)\n}\n\ntype Flags struct {\n\tSegmentData map[string]json.RawMessage\n\tType string\n\tPipeStatus string\n\tConfigPath string\n\tPSWD string\n\tShell string\n\tShellVersion string\n\tPWD string\n\tAbsolutePWD string\n\tEnvData json.RawMessage\n\tExecutionTime float64\n\tPromptCount int\n\tColumn int\n\tTerminalWidth int\n\tErrorCode int\n\tStackCount int\n\tConfigHash uint64\n\tJobCount int\n\tCleared bool\n\tStrict bool\n\tDebug bool\n\tHasExtra bool\n\tNoExitCode bool\n\tInit bool\n\tMigrate bool\n\tEval bool\n\tEscape bool\n\tIsPrimary bool\n\tPlain bool\n\tForce bool\n\tStreaming bool\n\tInterrupted bool\n}\n\ntype CommandError struct {\n\tErr string\n\tExitCode int\n}\n\nfunc (e *CommandError) Error() string {\n\treturn e.Err\n}\n\ntype FileInfo struct {\n\tParentFolder string\n\tPath string\n\tIsDir bool\n}\n\ntype WindowsRegistryValueType string\n\nconst (\n\tDWORD = \"DWORD\"\n\tQWORD = \"QWORD\"\n\tBINARY = \"BINARY\"\n\tSTRING = \"STRING\"\n)\n\ntype WindowsRegistryValue struct {\n\tValueType WindowsRegistryValueType\n\tString string\n\tDWord uint64\n\tQWord uint64\n}\n\ntype NotImplemented struct{}\n\nfunc (n *NotImplemented) Error() string {\n\treturn \"not implemented\"\n}\n\ntype ConnectionType string\n\nconst (\n\tETHERNET ConnectionType = \"ethernet\"\n\tWIFI ConnectionType = \"wifi\"\n\tCELLULAR ConnectionType = \"cellular\"\n\tBLUETOOTH ConnectionType = \"bluetooth\"\n)\n\ntype Connection struct {\n\tName string\n\tType ConnectionType\n\tSSID string\n\tTransmitRate uint64\n\tReceiveRate uint64\n}\n\ntype Memory struct {\n\tPhysicalTotalMemory uint64\n\tPhysicalAvailableMemory uint64\n\tPhysicalFreeMemory uint64\n\tPhysicalPercentUsed float64\n\tSwapTotalMemory uint64\n\tSwapFreeMemory uint64\n\tSwapPercentUsed float64\n}\n\ntype SystemInfo struct {\n\tDisks map[string]disk.IOCountersStat\n\tMemory\n\tLoad1 float64\n\tLoad5 float64\n\tLoad15 float64\n}\n","structuredPatch":[{"oldStart":113,"oldLines":6,"newStart":113,"newLines":14,"lines":[" Force bool"," Streaming bool"," Interrupted bool","+ // DataOnly makes SegmentData the only source a segment may render from: a","+ // segment whose key is absent renders as disabled rather than falling","+ // through to writer.Enabled() and probing the real machine (see","+ // config.Segment.restoreData). Off for an ordinary prompt render, where","+ // falling through is exactly right; on for a caller that must not touch","+ // the environment at all, such as a preview rendering a config it was","+ // handed rather than one the user owns.","+ DataOnly bool"," }"," "," type CommandError struct {"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"74a31d48-4735-4e36-ade4-9071648a8ed2","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"51a8d447-bb3d-4793-b63e-c935b0b23ad1","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU73mTUuGkztCUQiuqJC","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01AtHFS2bPwwRUHK7SPMDGi1","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\config\\segment.go","old_string":"func (segment *Segment) restoreData() bool {\n\traw, OK := segment.env.Flags().SegmentData[segment.DataKey()]\n\tif !OK {\n\t\treturn false\n\t}\n\n\trecorded, isRecorded := decodeRecordedSegment(raw)\n\tif !isRecorded {\n\t\tsegment.pendingData = raw\n\t\treturn false\n\t}","new_string":"func (segment *Segment) restoreData() bool {\n\tdataOnly := segment.env.Flags().DataOnly\n\n\traw, OK := segment.env.Flags().SegmentData[segment.DataKey()]\n\tif !OK {\n\t\tif !dataOnly {\n\t\t\treturn false\n\t\t}\n\n\t\t// Nothing recorded under this key, and probing is not allowed: the\n\t\t// segment renders as absent rather than as itself. Falling through\n\t\t// here is what made a \"hermetic\" replay quietly reach the network -\n\t\t// a key only has to miss for the segment to run for real, and\n\t\t// DataKey() is the alias when one is set, so a config that renames a\n\t\t// segment misses its own recorded entry.\n\t\tsegment.Enabled = false\n\t\tsegment.restored = true\n\n\t\tlog.Debug(\"no recorded data and probing disallowed, suppressing segment: \", segment.Name())\n\n\t\treturn true\n\t}\n\n\trecorded, isRecorded := decodeRecordedSegment(raw)\n\tif !isRecorded {\n\t\tif !dataOnly {\n\t\t\tsegment.pendingData = raw\n\t\t\treturn false\n\t\t}\n\n\t\t// A flat, hand-written entry would normally be overlaid on top of\n\t\t// live-derived state (see this function's doc comment). With probing\n\t\t// disallowed there is no live state to overlay onto, so the entry has\n\t\t// to stand on its own - which also means a partial one renders a\n\t\t// partial segment, since the fields Enabled() would have computed are\n\t\t// never computed. Record a deterministic file with\n\t\t// `oh-my-posh config export data` rather than hand-writing one when\n\t\t// rendering this way.\n\t\tif err := json.Unmarshal(raw, &segment.writer); err != nil {\n\t\t\tlog.Error(err)\n\n\t\t\tsegment.Enabled = false\n\t\t\tsegment.restored = true\n\n\t\t\treturn true\n\t\t}\n\n\t\tsegment.Enabled = true\n\t\tsegment.restored = true\n\n\t\ttemplate.Cache.AddSegmentData(segment.Name(), segment.writer)\n\n\t\tlog.Debug(\"restored segment from hand-written data: \", segment.Name())\n\n\t\treturn true\n\t}"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":408,"cache_read_input_tokens":515512,"output_tokens":913,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":408,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":913,"cache_read_input_tokens":515512,"cache_creation_input_tokens":408,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":408},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU73fP77W4YTzMyUBg7S","type":"assistant","uuid":"436ec87f-6a9a-40a4-8ec3-515a8afdefd6","timestamp":"2026-07-28T08:02:04.779Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"436ec87f-6a9a-40a4-8ec3-515a8afdefd6","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01AtHFS2bPwwRUHK7SPMDGi1","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\config\\segment.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"9f2c67cd-a954-4243-b227-5dd725de12c9","timestamp":"2026-07-28T08:02:04.819Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\config\\segment.go","oldString":"func (segment *Segment) restoreData() bool {\n\traw, OK := segment.env.Flags().SegmentData[segment.DataKey()]\n\tif !OK {\n\t\treturn false\n\t}\n\n\trecorded, isRecorded := decodeRecordedSegment(raw)\n\tif !isRecorded {\n\t\tsegment.pendingData = raw\n\t\treturn false\n\t}","newString":"func (segment *Segment) restoreData() bool {\n\tdataOnly := segment.env.Flags().DataOnly\n\n\traw, OK := segment.env.Flags().SegmentData[segment.DataKey()]\n\tif !OK {\n\t\tif !dataOnly {\n\t\t\treturn false\n\t\t}\n\n\t\t// Nothing recorded under this key, and probing is not allowed: the\n\t\t// segment renders as absent rather than as itself. Falling through\n\t\t// here is what made a \"hermetic\" replay quietly reach the network -\n\t\t// a key only has to miss for the segment to run for real, and\n\t\t// DataKey() is the alias when one is set, so a config that renames a\n\t\t// segment misses its own recorded entry.\n\t\tsegment.Enabled = false\n\t\tsegment.restored = true\n\n\t\tlog.Debug(\"no recorded data and probing disallowed, suppressing segment: \", segment.Name())\n\n\t\treturn true\n\t}\n\n\trecorded, isRecorded := decodeRecordedSegment(raw)\n\tif !isRecorded {\n\t\tif !dataOnly {\n\t\t\tsegment.pendingData = raw\n\t\t\treturn false\n\t\t}\n\n\t\t// A flat, hand-written entry would normally be overlaid on top of\n\t\t// live-derived state (see this function's doc comment). With probing\n\t\t// disallowed there is no live state to overlay onto, so the entry has\n\t\t// to stand on its own - which also means a partial one renders a\n\t\t// partial segment, since the fields Enabled() would have computed are\n\t\t// never computed. Record a deterministic file with\n\t\t// `oh-my-posh config export data` rather than hand-writing one when\n\t\t// rendering this way.\n\t\tif err := json.Unmarshal(raw, &segment.writer); err != nil {\n\t\t\tlog.Error(err)\n\n\t\t\tsegment.Enabled = false\n\t\t\tsegment.restored = true\n\n\t\t\treturn true\n\t\t}\n\n\t\tsegment.Enabled = true\n\t\tsegment.restored = true\n\n\t\ttemplate.Cache.AddSegmentData(segment.Name(), segment.writer)\n\n\t\tlog.Debug(\"restored segment from hand-written data: \", segment.Name())\n\n\t\treturn true\n\t}","originalFile":null,"structuredPatch":[{"oldStart":543,"oldLines":15,"newStart":543,"newLines":60,"lines":[" // over, and returns before writer.Enabled() runs, so it overlays right there;"," // everything else overlays after writer.Enabled() further down."," func (segment *Segment) restoreData() bool {","+ dataOnly := segment.env.Flags().DataOnly","+"," raw, OK := segment.env.Flags().SegmentData[segment.DataKey()]"," if !OK {","- return false","+ if !dataOnly {","+ return false","+ }","+","+ // Nothing recorded under this key, and probing is not allowed: the","+ // segment renders as absent rather than as itself. Falling through","+ // here is what made a \"hermetic\" replay quietly reach the network -","+ // a key only has to miss for the segment to run for real, and","+ // DataKey() is the alias when one is set, so a config that renames a","+ // segment misses its own recorded entry.","+ segment.Enabled = false","+ segment.restored = true","+","+ log.Debug(\"no recorded data and probing disallowed, suppressing segment: \", segment.Name())","+","+ return true"," }"," "," recorded, isRecorded := decodeRecordedSegment(raw)"," if !isRecorded {","- segment.pendingData = raw","- return false","+ if !dataOnly {","+ segment.pendingData = raw","+ return false","+ }","+","+ // A flat, hand-written entry would normally be overlaid on top of","+ // live-derived state (see this function's doc comment). With probing","+ // disallowed there is no live state to overlay onto, so the entry has","+ // to stand on its own - which also means a partial one renders a","+ // partial segment, since the fields Enabled() would have computed are","+ // never computed. Record a deterministic file with","+ // `oh-my-posh config export data` rather than hand-writing one when","+ // rendering this way.","+ if err := json.Unmarshal(raw, &segment.writer); err != nil {","+ log.Error(err)","+","+ segment.Enabled = false","+ segment.restored = true","+","+ return true","+ }","+","+ segment.Enabled = true","+ segment.restored = true","+","+ template.Cache.AddSegmentData(segment.Name(), segment.writer)","+","+ log.Debug(\"restored segment from hand-written data: \", segment.Name())","+","+ return true"," }"," "," if !recorded.Enabled {"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"436ec87f-6a9a-40a4-8ec3-515a8afdefd6","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9f2c67cd-a954-4243-b227-5dd725de12c9","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU74kfssf6Vp4VkdjZnt","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01BfUFvtPbprNwjktZvnjh9v","name":"Bash","input":{"command":"go build ./... 2>&1 | head -5 && go test ./config/... -count=1 2>&1 | tail -5","description":"Build and test the config change"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":964,"cache_read_input_tokens":515920,"output_tokens":127,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":964,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":127,"cache_read_input_tokens":515920,"cache_creation_input_tokens":964,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":964},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU74dY1SJ7R6tQscFn6s","type":"assistant","uuid":"d2dd9f64-98ae-4643-aa44-922e38663a02","timestamp":"2026-07-28T08:02:09.247Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d2dd9f64-98ae-4643-aa44-922e38663a02","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01BfUFvtPbprNwjktZvnjh9v","type":"tool_result","content":"ok \tgithub.com/jandedobbeleer/oh-my-posh/src/config\t0.919s","is_error":false}]},"uuid":"ed9c9e78-e8d9-4871-974c-4998b4959d1a","timestamp":"2026-07-28T08:02:19.515Z","toolUseResult":{"stdout":"ok \tgithub.com/jandedobbeleer/oh-my-posh/src/config\t0.919s","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"d2dd9f64-98ae-4643-aa44-922e38663a02","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ed9c9e78-e8d9-4871-974c-4998b4959d1a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU75p1pkXHAuKPWVbzCY","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I need to update the doc comment for `restoreData` since the function's behavior changed, then add the `--data-only` CLI flag and write tests for it.","signature":"CAIS7gQKhwEIEBgCKkCjtqLNk5U4YSR8/NLuhCITEb8ML6ji5AKhmR9kxD/z/yuPkoWf0t964ueLO6gTka6X7Zpo8WnR1IsAS0rZXQnqMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDOZcgfMZyhyHW7LuwhoMVVTtonBLU9p3FveDIjC8Zmv/ERKFnyiDtyTBQQlPqwyjPbz1+djBbH0VXyDN7o0GKBwDPQy6ke6u8cJ+FuwqkwOewfpEYB/FLDLrk2OGSTGcmoXtEBozIVpCIXW7tMQDCF0YOLq+NB4rck3BtZ404B6Ose8ZGAWP1E+BhJLwFUw9OrqM69pSH+IWuQ6CYR6epznUwvJgFyFZUgLN/R2H0fp9gzDf37WJQ6OiiXznvsGj6m/mf1cCygDhLz0SRUIA+CbvDvRE7Z8qfd3/zHPcfva6Hj+tGFWDdvLc4nNmfVL00eV8uEVaR6BRagM02PLHb533MVsx238Km1TSY0CXzYBOlARWAXTXh5fJMEAyemKJfjKYxZYK80D3zNcRQwVlO1Oa1sSm9ji6L1Y9PN1T/7EXH3lfePlhmwzYCmMFH5fu29qjo/zqmSPYujBDkRO1++Y/L5NTywgl5w1GR6CCyG9bXTaxMKCO5yK5LEZJRZpiB/mj3Vp8juGtusNnxz/0sW6sAF7E66leTFKgoVuyswAaKqMrUrhRGO8t10qp7vsv1VIxkCKcPrUz7aNYoQnmed9XUgBnCRasBBY80f5Vv9pOO3CjRnwtlPCMe+AEqbgGH0yLGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":150,"cache_read_input_tokens":516884,"output_tokens":946,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":150,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":946,"cache_read_input_tokens":516884,"cache_creation_input_tokens":150,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":150},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU75iNVcmaUupXMw3Zf7","type":"assistant","uuid":"f9226471-1238-430a-84a5-d561568b7088","timestamp":"2026-07-28T08:02:25.562Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f9226471-1238-430a-84a5-d561568b7088","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU75p1pkXHAuKPWVbzCY","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_014QwaD5aa52XxvW6FjSu7So","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\config\\segment.go","old_string":"// A recorded, enabled entry is unmarshaled and returns true here, same as\n// before: no probe. A recorded-but-disabled entry is suppressed here with no\n// probe either - that is what makes replay hermetic. A flat entry cannot be\n// trusted this early: it stashes itself in pendingData and returns false so\n// Execute keeps running - shouldHideForWidth, the Job setup, and\n// writer.Enabled() all still fire - and overlayData applies it afterward.\n// There are two call sites for that overlay, both in Execute: a device/session\n// cache hit in restoreCache also produces state pendingData needs to win\n// over, and returns before writer.Enabled() runs, so it overlays right there;\n// everything else overlays after writer.Enabled() further down.","new_string":"// A recorded, enabled entry is unmarshaled and returns true here, same as\n// before: no probe. A recorded-but-disabled entry is suppressed here with no\n// probe either - that is what makes replay hermetic. A flat entry cannot be\n// trusted this early: it stashes itself in pendingData and returns false so\n// Execute keeps running - shouldHideForWidth, the Job setup, and\n// writer.Enabled() all still fire - and overlayData applies it afterward.\n// There are two call sites for that overlay, both in Execute: a device/session\n// cache hit in restoreCache also produces state pendingData needs to win\n// over, and returns before writer.Enabled() runs, so it overlays right there;\n// everything else overlays after writer.Enabled() further down.\n//\n// runtime.Flags.DataOnly changes both of the paths that would otherwise let a\n// segment reach the real machine. A missing key stops meaning \"derive it\n// live\" and starts meaning \"this segment is not present\", and a flat entry\n// applies on its own rather than as an overlay on live state. That is what\n// makes the data file an actual boundary instead of a default: without it,\n// hermeticity depends on every configured segment happening to be in the\n// file, which a single alias or a segment type the recorder never saw is\n// enough to break."},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":150,"cache_read_input_tokens":516884,"output_tokens":946,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":150,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":946,"cache_read_input_tokens":516884,"cache_creation_input_tokens":150,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":150},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU75iNVcmaUupXMw3Zf7","type":"assistant","uuid":"f2b331ca-d48a-4bba-a0cd-e648e78d4b9d","timestamp":"2026-07-28T08:02:33.152Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f2b331ca-d48a-4bba-a0cd-e648e78d4b9d","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_014QwaD5aa52XxvW6FjSu7So","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\config\\segment.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"643baba2-bb46-4a0e-a03f-0f7fc907c4f0","timestamp":"2026-07-28T08:02:33.190Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\config\\segment.go","oldString":"// A recorded, enabled entry is unmarshaled and returns true here, same as\n// before: no probe. A recorded-but-disabled entry is suppressed here with no\n// probe either - that is what makes replay hermetic. A flat entry cannot be\n// trusted this early: it stashes itself in pendingData and returns false so\n// Execute keeps running - shouldHideForWidth, the Job setup, and\n// writer.Enabled() all still fire - and overlayData applies it afterward.\n// There are two call sites for that overlay, both in Execute: a device/session\n// cache hit in restoreCache also produces state pendingData needs to win\n// over, and returns before writer.Enabled() runs, so it overlays right there;\n// everything else overlays after writer.Enabled() further down.","newString":"// A recorded, enabled entry is unmarshaled and returns true here, same as\n// before: no probe. A recorded-but-disabled entry is suppressed here with no\n// probe either - that is what makes replay hermetic. A flat entry cannot be\n// trusted this early: it stashes itself in pendingData and returns false so\n// Execute keeps running - shouldHideForWidth, the Job setup, and\n// writer.Enabled() all still fire - and overlayData applies it afterward.\n// There are two call sites for that overlay, both in Execute: a device/session\n// cache hit in restoreCache also produces state pendingData needs to win\n// over, and returns before writer.Enabled() runs, so it overlays right there;\n// everything else overlays after writer.Enabled() further down.\n//\n// runtime.Flags.DataOnly changes both of the paths that would otherwise let a\n// segment reach the real machine. A missing key stops meaning \"derive it\n// live\" and starts meaning \"this segment is not present\", and a flat entry\n// applies on its own rather than as an overlay on live state. That is what\n// makes the data file an actual boundary instead of a default: without it,\n// hermeticity depends on every configured segment happening to be in the\n// file, which a single alias or a segment type the recorder never saw is\n// enough to break.","originalFile":null,"structuredPatch":[{"oldStart":542,"oldLines":6,"newStart":542,"newLines":15,"lines":[" // cache hit in restoreCache also produces state pendingData needs to win"," // over, and returns before writer.Enabled() runs, so it overlays right there;"," // everything else overlays after writer.Enabled() further down.","+//","+// runtime.Flags.DataOnly changes both of the paths that would otherwise let a","+// segment reach the real machine. A missing key stops meaning \"derive it","+// live\" and starts meaning \"this segment is not present\", and a flat entry","+// applies on its own rather than as an overlay on live state. That is what","+// makes the data file an actual boundary instead of a default: without it,","+// hermeticity depends on every configured segment happening to be in the","+// file, which a single alias or a segment type the recorder never saw is","+// enough to break."," func (segment *Segment) restoreData() bool {"," dataOnly := segment.env.Flags().DataOnly"," "]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"f2b331ca-d48a-4bba-a0cd-e648e78d4b9d","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"643baba2-bb46-4a0e-a03f-0f7fc907c4f0","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU76ujeQGyveShPY4q1y","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_014fVZvyJsoSDiQckuS7hV6G","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\cli\\data.go","old_string":"var (\n\tdataPath string\n\tdataDerive bool\n)\n\nfunc init() {\n\tconst usage = \"derive live state for a recorded --data file too, instead of replaying it hermetically (debugging)\"\n\n\tprintCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, usage)\n\timageCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, usage)\n}","new_string":"var (\n\tdataPath string\n\tdataDerive bool\n\tdataOnly bool\n)\n\nfunc init() {\n\tconst deriveUsage = \"derive live state for a recorded --data file too, instead of replaying it hermetically (debugging)\"\n\n\tprintCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, deriveUsage)\n\timageCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, deriveUsage)\n\n\tconst onlyUsage = \"render segments exclusively from --data: a segment the file does not cover renders as absent \" +\n\t\t\"instead of probing the real machine\"\n\n\tprintCmd.Flags().BoolVar(&dataOnly, \"data-only\", false, onlyUsage)\n\timageCmd.Flags().BoolVar(&dataOnly, \"data-only\", false, onlyUsage)\n}"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":997,"cache_read_input_tokens":517034,"output_tokens":559,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":997,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":559,"cache_read_input_tokens":517034,"cache_creation_input_tokens":997,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":997},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU76j1yHcux9c72XQupB","type":"assistant","uuid":"4c2f2028-91a5-456f-a388-8e30a2823f9b","timestamp":"2026-07-28T08:02:41.814Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4c2f2028-91a5-456f-a388-8e30a2823f9b","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_014fVZvyJsoSDiQckuS7hV6G","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\cli\\data.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"6e2fae5f-e70d-4eb7-9880-26007312749f","timestamp":"2026-07-28T08:02:41.852Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\cli\\data.go","oldString":"var (\n\tdataPath string\n\tdataDerive bool\n)\n\nfunc init() {\n\tconst usage = \"derive live state for a recorded --data file too, instead of replaying it hermetically (debugging)\"\n\n\tprintCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, usage)\n\timageCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, usage)\n}","newString":"var (\n\tdataPath string\n\tdataDerive bool\n\tdataOnly bool\n)\n\nfunc init() {\n\tconst deriveUsage = \"derive live state for a recorded --data file too, instead of replaying it hermetically (debugging)\"\n\n\tprintCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, deriveUsage)\n\timageCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, deriveUsage)\n\n\tconst onlyUsage = \"render segments exclusively from --data: a segment the file does not cover renders as absent \" +\n\t\t\"instead of probing the real machine\"\n\n\tprintCmd.Flags().BoolVar(&dataOnly, \"data-only\", false, onlyUsage)\n\timageCmd.Flags().BoolVar(&dataOnly, \"data-only\", false, onlyUsage)\n}","originalFile":"package cli\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n)\n\n// Shared between printCmd and imageCmd.\nvar (\n\tdataPath string\n\tdataDerive bool\n)\n\nfunc init() {\n\tconst usage = \"derive live state for a recorded --data file too, instead of replaying it hermetically (debugging)\"\n\n\tprintCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, usage)\n\timageCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, usage)\n}\n\n// No-op when dataPath is empty. The env/segment routing onto flags itself - with\n// precedence explicit CLI flag > data file > live environment - lives in\n// config.Data.ApplyFlags, shared with prompt/golden_test.go's fixture harness,\n// which cannot import this package (cli imports prompt).\nfunc applyDataFile(flags *runtime.Flags, changed func(name string) bool) error {\n\tif dataPath == \"\" {\n\t\treturn nil\n\t}\n\n\tdata, err := config.LoadData(dataPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif data.Version < config.DataVersion {\n\t\tfmt.Fprintf(os.Stderr,\n\t\t\t\"warning: %s has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, \"+\n\t\t\t\t\"segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\\n\",\n\t\t\tdataPath)\n\t}\n\n\tif dataDerive && data.Version >= config.DataVersion {\n\t\tdata.Segments = deriveRecordedSegments(data.Segments)\n\t}\n\n\treturn data.ApplyFlags(flags, changed)\n}\n\n// deriveRecordedSegments strips the RecordedSegment envelope back down to each\n// segment's raw writer data, forcing Segment.restoreData to treat a recorded\n// file the same way it treats a hand-written one: derive live state via\n// writer.Enabled(), then overlay the pinned data, instead of the hermetic no-probe\n// path. The caller only calls this once data.Version confirms every entry is an\n// envelope, so decoding here does not need to guard against a flat entry.\nfunc deriveRecordedSegments(segments map[string]json.RawMessage) map[string]json.RawMessage {\n\tderived := make(map[string]json.RawMessage, len(segments))\n\n\tfor key, raw := range segments {\n\t\tvar recorded config.RecordedSegment\n\t\tif err := json.Unmarshal(raw, &recorded); err != nil {\n\t\t\tderived[key] = raw\n\t\t\tcontinue\n\t\t}\n\n\t\tderived[key] = recorded.Data\n\t}\n\n\treturn derived\n}\n","structuredPatch":[{"oldStart":13,"oldLines":13,"newStart":13,"newLines":20,"lines":[" var ("," dataPath string"," dataDerive bool","+ dataOnly bool"," )"," "," func init() {","- const usage = \"derive live state for a recorded --data file too, instead of replaying it hermetically (debugging)\"","+ const deriveUsage = \"derive live state for a recorded --data file too, instead of replaying it hermetically (debugging)\""," ","- printCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, usage)","- imageCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, usage)","+ printCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, deriveUsage)","+ imageCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, deriveUsage)","+","+ const onlyUsage = \"render segments exclusively from --data: a segment the file does not cover renders as absent \" +","+ \"instead of probing the real machine\"","+","+ printCmd.Flags().BoolVar(&dataOnly, \"data-only\", false, onlyUsage)","+ imageCmd.Flags().BoolVar(&dataOnly, \"data-only\", false, onlyUsage)"," }"," "," // No-op when dataPath is empty. The env/segment routing onto flags itself - with"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"4c2f2028-91a5-456f-a388-8e30a2823f9b","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6e2fae5f-e70d-4eb7-9880-26007312749f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU77TGi2DLL85sUdiv4C","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_014MJk8ULb1T5pek4UzBKHUG","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\cli\\data.go","old_string":"\tif dataDerive && data.Version >= config.DataVersion {\n\t\tdata.Segments = deriveRecordedSegments(data.Segments)\n\t}\n\n\treturn data.ApplyFlags(flags, changed)","new_string":"\tif dataDerive && data.Version >= config.DataVersion {\n\t\tdata.Segments = deriveRecordedSegments(data.Segments)\n\t}\n\n\t// --data-only and --data-derive are opposites: one forbids probing\n\t// entirely, the other forces it even for a recorded file. Asking for both\n\t// is a contradiction rather than a combination, so say so instead of\n\t// silently letting one win.\n\tif dataOnly && dataDerive {\n\t\treturn errors.New(\"--data-only and --data-derive contradict each other: one forbids probing the environment, the other forces it\")\n\t}\n\n\tflags.DataOnly = dataOnly\n\n\treturn data.ApplyFlags(flags, changed)"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":610,"cache_read_input_tokens":518031,"output_tokens":428,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":610,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":428,"cache_read_input_tokens":518031,"cache_creation_input_tokens":610,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":610},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU77MKXaUGxrBEaCfuLr","type":"assistant","uuid":"c38ad1f5-8ed8-4763-990e-dfadf33e398e","timestamp":"2026-07-28T08:02:49.129Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c38ad1f5-8ed8-4763-990e-dfadf33e398e","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_014MJk8ULb1T5pek4UzBKHUG","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\cli\\data.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"507a2c82-6d2d-4e36-b682-56734097ba66","timestamp":"2026-07-28T08:02:49.179Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\cli\\data.go","oldString":"\tif dataDerive && data.Version >= config.DataVersion {\n\t\tdata.Segments = deriveRecordedSegments(data.Segments)\n\t}\n\n\treturn data.ApplyFlags(flags, changed)","newString":"\tif dataDerive && data.Version >= config.DataVersion {\n\t\tdata.Segments = deriveRecordedSegments(data.Segments)\n\t}\n\n\t// --data-only and --data-derive are opposites: one forbids probing\n\t// entirely, the other forces it even for a recorded file. Asking for both\n\t// is a contradiction rather than a combination, so say so instead of\n\t// silently letting one win.\n\tif dataOnly && dataDerive {\n\t\treturn errors.New(\"--data-only and --data-derive contradict each other: one forbids probing the environment, the other forces it\")\n\t}\n\n\tflags.DataOnly = dataOnly\n\n\treturn data.ApplyFlags(flags, changed)","originalFile":"package cli\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n)\n\n// Shared between printCmd and imageCmd.\nvar (\n\tdataPath string\n\tdataDerive bool\n\tdataOnly bool\n)\n\nfunc init() {\n\tconst deriveUsage = \"derive live state for a recorded --data file too, instead of replaying it hermetically (debugging)\"\n\n\tprintCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, deriveUsage)\n\timageCmd.Flags().BoolVar(&dataDerive, \"data-derive\", false, deriveUsage)\n\n\tconst onlyUsage = \"render segments exclusively from --data: a segment the file does not cover renders as absent \" +\n\t\t\"instead of probing the real machine\"\n\n\tprintCmd.Flags().BoolVar(&dataOnly, \"data-only\", false, onlyUsage)\n\timageCmd.Flags().BoolVar(&dataOnly, \"data-only\", false, onlyUsage)\n}\n\n// No-op when dataPath is empty. The env/segment routing onto flags itself - with\n// precedence explicit CLI flag > data file > live environment - lives in\n// config.Data.ApplyFlags, shared with prompt/golden_test.go's fixture harness,\n// which cannot import this package (cli imports prompt).\nfunc applyDataFile(flags *runtime.Flags, changed func(name string) bool) error {\n\tif dataPath == \"\" {\n\t\treturn nil\n\t}\n\n\tdata, err := config.LoadData(dataPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif data.Version < config.DataVersion {\n\t\tfmt.Fprintf(os.Stderr,\n\t\t\t\"warning: %s has no recorder version marker; treating it as hand-written - it is neither hermetic nor deterministic, \"+\n\t\t\t\t\"segments left out of it still probe the live environment. Run `oh-my-posh config export data` to record a deterministic file.\\n\",\n\t\t\tdataPath)\n\t}\n\n\tif dataDerive && data.Version >= config.DataVersion {\n\t\tdata.Segments = deriveRecordedSegments(data.Segments)\n\t}\n\n\treturn data.ApplyFlags(flags, changed)\n}\n\n// deriveRecordedSegments strips the RecordedSegment envelope back down to each\n// segment's raw writer data, forcing Segment.restoreData to treat a recorded\n// file the same way it treats a hand-written one: derive live state via\n// writer.Enabled(), then overlay the pinned data, instead of the hermetic no-probe\n// path. The caller only calls this once data.Version confirms every entry is an\n// envelope, so decoding here does not need to guard against a flat entry.\nfunc deriveRecordedSegments(segments map[string]json.RawMessage) map[string]json.RawMessage {\n\tderived := make(map[string]json.RawMessage, len(segments))\n\n\tfor key, raw := range segments {\n\t\tvar recorded config.RecordedSegment\n\t\tif err := json.Unmarshal(raw, &recorded); err != nil {\n\t\t\tderived[key] = raw\n\t\t\tcontinue\n\t\t}\n\n\t\tderived[key] = recorded.Data\n\t}\n\n\treturn derived\n}\n","structuredPatch":[{"oldStart":54,"oldLines":6,"newStart":54,"newLines":16,"lines":[" data.Segments = deriveRecordedSegments(data.Segments)"," }"," ","+ // --data-only and --data-derive are opposites: one forbids probing","+ // entirely, the other forces it even for a recorded file. Asking for both","+ // is a contradiction rather than a combination, so say so instead of","+ // silently letting one win.","+ if dataOnly && dataDerive {","+ return errors.New(\"--data-only and --data-derive contradict each other: one forbids probing the environment, the other forces it\")","+ }","+","+ flags.DataOnly = dataOnly","+"," return data.ApplyFlags(flags, changed)"," }"," "]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"c38ad1f5-8ed8-4763-990e-dfadf33e398e","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"507a2c82-6d2d-4e36-b682-56734097ba66","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU77zfaiHB6CVMivaSWt","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01EYaCM9bo8J1HJbXf85jfM4","name":"Bash","input":{"command":"sed -i 's|^\\t\"encoding/json\"$|\\t\"encoding/json\"\\n\\t\"errors\"|' cli/data.go && go build ./... 2>&1 | head -5 && gofmt -l cli/ config/ runtime/ && golangci-lint run ./cli/... ./config/... ./runtime/... 2>&1 | tail -3","description":"Add import, build and lint"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":479,"cache_read_input_tokens":518641,"output_tokens":191,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":479,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":191,"cache_read_input_tokens":518641,"cache_creation_input_tokens":479,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":479},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU77uGPaZS3iEBXzxDxR","type":"assistant","uuid":"949906ff-d53c-4d6a-83e9-0c2e5e9a38de","timestamp":"2026-07-28T08:02:53.598Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"949906ff-d53c-4d6a-83e9-0c2e5e9a38de","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01EYaCM9bo8J1HJbXf85jfM4","type":"tool_result","content":"0 issues.","is_error":false}]},"uuid":"34727fbf-7043-4893-b628-b47f7921eee5","timestamp":"2026-07-28T08:03:04.363Z","toolUseResult":{"stdout":"0 issues.","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"949906ff-d53c-4d6a-83e9-0c2e5e9a38de","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"34727fbf-7043-4893-b628-b47f7921eee5","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"D:\\oh-my-posh\\src\\cli\\data.go","snippet":"1\tpackage cli\n2\t\n3\timport (\n4\t\t\"encoding/json\"\n5\t\t\"errors\"\n6\t\t\"fmt\"\n7\t\t\"os\"\n8\t\n9\t\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n10\t\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n11\t)\n12\t\n13\t// Shared between printCmd and imageCmd.","displayPath":"src\\cli\\data.go"},"type":"attachment","uuid":"8e1a1e6e-be90-4ba7-9744-65ada724a475","timestamp":"2026-07-28T08:03:04.372Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8e1a1e6e-be90-4ba7-9744-65ada724a475","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"347a4861-da2a-40a4-b9ec-2c9fc0c1debf","timestamp":"2026-07-28T08:03:04.372Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"347a4861-da2a-40a4-b9ec-2c9fc0c1debf","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU79AAcP5HgTgJo1GpE1","type":"message","role":"assistant","content":[{"type":"text","text":"Now the tests — the missing-key case is the whole point, so it needs pinning:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":575,"cache_read_input_tokens":519120,"output_tokens":162,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":575,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":162,"cache_read_input_tokens":519120,"cache_creation_input_tokens":575,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":575},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU792CtQAk5yyv5uVGUT","type":"assistant","uuid":"e38c9964-5fe5-4e87-b5dd-6543bcff648c","timestamp":"2026-07-28T08:03:07.993Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e38c9964-5fe5-4e87-b5dd-6543bcff648c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU79AAcP5HgTgJo1GpE1","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01TNxvvN9eYh1cUkorUkvdgB","name":"Bash","input":{"command":"grep -n \"func TestRestoreData\\|func TestSegment.*Data\\|restoreData\" config/segment_test.go 2>/dev/null | head; ls config/*_test.go","description":"Find existing segment data tests"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":575,"cache_read_input_tokens":519120,"output_tokens":162,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":575,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":162,"cache_read_input_tokens":519120,"cache_creation_input_tokens":575,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":575},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU792CtQAk5yyv5uVGUT","type":"assistant","uuid":"f1a3f824-0f12-4840-a0f6-e944f36388ff","timestamp":"2026-07-28T08:03:09.199Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f1a3f824-0f12-4840-a0f6-e944f36388ff","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01TNxvvN9eYh1cUkorUkvdgB","type":"tool_result","content":"357:func TestSegment_DataKey(t *testing.T) {\n385:// calls both, so if restoreData ever fell through to a live probe for a\n388:func TestSegment_RestoreDataRecordedEnabledPopulatesWriterNoProbe(t *testing.T) {\n414:func TestSegment_RestoreDataRecordedDisabledSuppressesNoProbe(t *testing.T) {\n437:func TestSegment_RestoreDataUnmarkedFlatDerivesLiveStateThenOverlays(t *testing.T) {\n465:func TestSegment_RestoreDataUnmarkedTimeSegmentDerivesFormatBeforeOverlay(t *testing.T) {\n488:// restoreData, before shouldHideForWidth/the Job setup/writer.Enabled()) used\n499:func TestSegment_RestoreDataOverlaysOnTopOfACacheHit(t *testing.T) {\n531:func TestSegment_RestoreDataAliasBeatsType(t *testing.T) {\n547:func TestSegment_RestoreDataNoEntryFallsThroughToNormalExecution(t *testing.T) {\nconfig/config_test.go\nconfig/data_test.go\nconfig/gob_test.go\nconfig/load_test.go\nconfig/merge_test.go\nconfig/migrate_glyphs_test.go\nconfig/responsive_test.go\nconfig/segment_cache_test.go\nconfig/segment_catalog_test.go\nconfig/segment_test.go","is_error":false}]},"uuid":"be3e604a-5b94-452f-8e16-57595ec87901","timestamp":"2026-07-28T08:03:10.248Z","toolUseResult":{"stdout":"357:func TestSegment_DataKey(t *testing.T) {\n385:// calls both, so if restoreData ever fell through to a live probe for a\n388:func TestSegment_RestoreDataRecordedEnabledPopulatesWriterNoProbe(t *testing.T) {\n414:func TestSegment_RestoreDataRecordedDisabledSuppressesNoProbe(t *testing.T) {\n437:func TestSegment_RestoreDataUnmarkedFlatDerivesLiveStateThenOverlays(t *testing.T) {\n465:func TestSegment_RestoreDataUnmarkedTimeSegmentDerivesFormatBeforeOverlay(t *testing.T) {\n488:// restoreData, before shouldHideForWidth/the Job setup/writer.Enabled()) used\n499:func TestSegment_RestoreDataOverlaysOnTopOfACacheHit(t *testing.T) {\n531:func TestSegment_RestoreDataAliasBeatsType(t *testing.T) {\n547:func TestSegment_RestoreDataNoEntryFallsThroughToNormalExecution(t *testing.T) {\nconfig/config_test.go\nconfig/data_test.go\nconfig/gob_test.go\nconfig/load_test.go\nconfig/merge_test.go\nconfig/migrate_glyphs_test.go\nconfig/responsive_test.go\nconfig/segment_cache_test.go\nconfig/segment_catalog_test.go\nconfig/segment_test.go","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"f1a3f824-0f12-4840-a0f6-e944f36388ff","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"be3e604a-5b94-452f-8e16-57595ec87901","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU79axcqXjmERSLxuGDn","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01EAuhdeaoT9v1VNLhMi8x7p","name":"Read","input":{"file_path":"D:\\oh-my-posh\\src\\config\\segment_test.go","offset":380,"limit":60},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":659,"cache_read_input_tokens":519695,"output_tokens":112,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":659,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":112,"cache_read_input_tokens":519695,"cache_creation_input_tokens":659,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":659},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU79T3NYrvaQcDvPKZ1r","type":"assistant","uuid":"81cd411d-1374-43cb-b63d-669b08c1aea0","timestamp":"2026-07-28T08:03:15.695Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"81cd411d-1374-43cb-b63d-669b08c1aea0","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01EAuhdeaoT9v1VNLhMi8x7p","type":"tool_result","content":"380\t\n381\t\treturn env\n382\t}\n383\t\n384\t// The mock env deliberately has no \"Getenv\"/\"Platform\" stubs: Session.Enabled()\n385\t// calls both, so if restoreData ever fell through to a live probe for a\n386\t// recorded-enabled entry, the mock would panic on the unstubbed call. That\n387\t// absence is the hermeticity assertion.\n388\tfunc TestSegment_RestoreDataRecordedEnabledPopulatesWriterNoProbe(t *testing.T) {\n389\t\tflags := &runtime.Flags{\n390\t\t\tSegmentData: map[string]json.RawMessage{\n391\t\t\t\t\"session\": json.RawMessage(`{\"enabled\":true,\"data\":{\"SSHSession\":true}}`),\n392\t\t\t},\n393\t\t}\n394\t\tenv := newDataReplayEnv(flags)\n395\t\n396\t\tsegment := &Segment{Type: SESSION}\n397\t\tsegment.Execute(env)\n398\t\n399\t\tassert.True(t, segment.Enabled, \"segment should be forced enabled by data replay\")\n400\t\tassert.True(t, segment.restored, \"restored flag should prevent setCache pollution\")\n401\t\n402\t\twriter, ok := segment.Writer().(*segments.Session)\n403\t\tassert.True(t, ok, \"Writer() should expose the concrete writer\")\n404\t\tassert.True(t, writer.SSHSession)\n405\t\n406\t\tsegment.Template = \"{{ .SSHSession }}\"\n407\t\tassert.Equal(t, \"true\", segment.string())\n408\t}\n409\t\n410\t// A recorded-but-disabled entry must suppress the segment without probing it\n411\t// live (that is what makes replay hermetic for e.g. wakatime on a config where\n412\t// it was disabled at record time). No \"Getenv\"/\"Platform\" stub, same reasoning\n413\t// as above.\n414\tfunc TestSegment_RestoreDataRecordedDisabledSuppressesNoProbe(t *testing.T) {\n415\t\tflags := &runtime.Flags{\n416\t\t\tSegmentData: map[string]json.RawMessage{\n417\t\t\t\t\"session\": json.RawMessage(`{\"enabled\":false,\"data\":{\"SSHSession\":true}}`),\n418\t\t\t},\n419\t\t}\n420\t\tenv := newDataReplayEnv(flags)\n421\t\n422\t\tsegment := &Segment{Type: SESSION}\n423\t\tsegment.Execute(env)\n424\t\n425\t\tassert.False(t, segment.Enabled, \"recorded-but-disabled segment must stay disabled\")\n426\t\tassert.True(t, segment.restored, \"still counts as restored: no live probe happened\")\n427\t\n428\t\twriter, ok := segment.Writer().(*segments.Session)\n429\t\tassert.True(t, ok, \"Writer() should expose the concrete writer\")\n430\t\tassert.False(t, writer.SSHSession, \"disabled entries are not unmarshaled onto the writer\")\n431\t}\n432\t\n433\t// A flat entry (no version marker on the file) is a hand-written file's shape.\n434\t// It must NOT take the hermetic short-circuit: writer.Enabled() has to run first\n435\t// (proven here by the Getenv/Platform stubs actually being exercised) and the\n436\t// pinned value is overlaid on top afterward, winning over the live one.\n437\tfunc TestSegment_RestoreDataUnmarkedFlatDerivesLiveStateThenOverlays(t *testing.T) {\n438\t\tflags := &runtime.Flags{\n439\t\t\tSegmentData: map[string]json.RawMessage{"}]},"uuid":"1b36e796-a6b7-4c92-9bd3-9212938786a4","timestamp":"2026-07-28T08:03:15.714Z","toolUseResult":{"type":"text","file":{"filePath":"D:\\oh-my-posh\\src\\config\\segment_test.go","content":"\n\treturn env\n}\n\n// The mock env deliberately has no \"Getenv\"/\"Platform\" stubs: Session.Enabled()\n// calls both, so if restoreData ever fell through to a live probe for a\n// recorded-enabled entry, the mock would panic on the unstubbed call. That\n// absence is the hermeticity assertion.\nfunc TestSegment_RestoreDataRecordedEnabledPopulatesWriterNoProbe(t *testing.T) {\n\tflags := &runtime.Flags{\n\t\tSegmentData: map[string]json.RawMessage{\n\t\t\t\"session\": json.RawMessage(`{\"enabled\":true,\"data\":{\"SSHSession\":true}}`),\n\t\t},\n\t}\n\tenv := newDataReplayEnv(flags)\n\n\tsegment := &Segment{Type: SESSION}\n\tsegment.Execute(env)\n\n\tassert.True(t, segment.Enabled, \"segment should be forced enabled by data replay\")\n\tassert.True(t, segment.restored, \"restored flag should prevent setCache pollution\")\n\n\twriter, ok := segment.Writer().(*segments.Session)\n\tassert.True(t, ok, \"Writer() should expose the concrete writer\")\n\tassert.True(t, writer.SSHSession)\n\n\tsegment.Template = \"{{ .SSHSession }}\"\n\tassert.Equal(t, \"true\", segment.string())\n}\n\n// A recorded-but-disabled entry must suppress the segment without probing it\n// live (that is what makes replay hermetic for e.g. wakatime on a config where\n// it was disabled at record time). No \"Getenv\"/\"Platform\" stub, same reasoning\n// as above.\nfunc TestSegment_RestoreDataRecordedDisabledSuppressesNoProbe(t *testing.T) {\n\tflags := &runtime.Flags{\n\t\tSegmentData: map[string]json.RawMessage{\n\t\t\t\"session\": json.RawMessage(`{\"enabled\":false,\"data\":{\"SSHSession\":true}}`),\n\t\t},\n\t}\n\tenv := newDataReplayEnv(flags)\n\n\tsegment := &Segment{Type: SESSION}\n\tsegment.Execute(env)\n\n\tassert.False(t, segment.Enabled, \"recorded-but-disabled segment must stay disabled\")\n\tassert.True(t, segment.restored, \"still counts as restored: no live probe happened\")\n\n\twriter, ok := segment.Writer().(*segments.Session)\n\tassert.True(t, ok, \"Writer() should expose the concrete writer\")\n\tassert.False(t, writer.SSHSession, \"disabled entries are not unmarshaled onto the writer\")\n}\n\n// A flat entry (no version marker on the file) is a hand-written file's shape.\n// It must NOT take the hermetic short-circuit: writer.Enabled() has to run first\n// (proven here by the Getenv/Platform stubs actually being exercised) and the\n// pinned value is overlaid on top afterward, winning over the live one.\nfunc TestSegment_RestoreDataUnmarkedFlatDerivesLiveStateThenOverlays(t *testing.T) {\n\tflags := &runtime.Flags{\n\t\tSegmentData: map[string]json.RawMessage{","numLines":60,"startLine":380,"totalLines":793}},"sourceToolAssistantUUID":"81cd411d-1374-43cb-b63d-669b08c1aea0","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1b36e796-a6b7-4c92-9bd3-9212938786a4","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7A4LQLMRVzbk4D8vPr","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm identifying the test pattern I need: using `newDataReplayEnv` with a mock that lacks `Getenv` and `Platform` stubs, so any live probe attempt would panic—that's how I verify hermeticity. Now I'm planning to add test cases for DataOnly mode where a missing key entry stays disabled and restored without triggering a probe, plus another test for alias misses.","signature":"CAIS3QcKhwEIEBgCKkDbQ5gfZE8S14L7kzHqLIJvM1KKLJ26sygdya4RP79SVUgsEqiqiO6ZufmYxXXiUjfvEYQeGUki4AuPzRPLLm/LMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDCgeJ6XAsQPDUreppRoMoNjoEFFfmqCCwhBCIjAsoXtRx/6FtweKJHxNHQ0A8V1jE9pqw+a0UN+125ChwgX/20nkMsYFb38+933zdewqggY9W2sfEQ20GLbFRtqsBTK5TJMIUB72wEW+V8CnGTkq/0hv3OzS3rYg9g6PeKKDdhITHsDfoaHz9bgmxKcknrbS0InW1bR/7+Vz+xjGmvvS/krLRPegGqqVascaAoDqcEOi/q6ksxN6qgd5NQKtBdUPYjK4a9s83/Qbo6S4A1bojDpjEB/4/k7MGrBuUFvqkGztUAeuOYDAd1VPNVEuFaYNowDv5SXujWudkPYBSmOxKifnHfksScAovEV8vFNvEOSt6Lal4oFnXerbepV6tsaJXoXZQDFZHPV9CE5jRwIYs0wB7Aw7JUGsPkAvA/bTY8axZFcvEuEZDEPCwHLn0qrRWCux1bHZEoXvEYA6OE5T6XuicJeX4mQD6WdD/aGL9CZA03K60BaYoC1Q3V2ic0jjRdFXFfA1fjChgq9e2HODr6tLsUgNPZ/j0SXHp8FRDrkK2yxt4eq91Gz51jqJ60BzI9efeZNM2FaVUl1u9mpwfSz4vUc2WqnM7A2VPT4euedYX8HEHv3eUatMO1krQQE1oB2F9qUHGIZNr+M80PFpPqHY85N26aIz1EJhshvxGrpe+6vlUwvOIgj9t7fUQn2/S1bpefIEK0Ht2Mo9T80tiYx/IL0QD2lcQP+nAQq8CZwdUBfNFm6E7aipDSpmnL13cyZT6V2ArntXBgybDPDEkMudkbKFsYTVHBjKZO8wtszFTbKnhrsiDHhtFehOnNTZ4BJd6Rmo7MSOnYmIo3SHXvh/m/64Svy+jHDxKQDcXLidO9axadsFGsKxXT71xJD8wgFGPSTHDdBgVBBqivI/f9h+i5DmjV7oGJCatacRQXprsIIWA2V8FFnsj9kiEfw1KR/rsCghN07CrFxlUICWBpHY/P5W575BvueRzqmVxx/exfQYosuMqjnO8LzmcDIJUY3iZ1lvb07m9bp/t8pRjBYWGpNSGdMdkH5MnkTUiwdvYgtJMvGi0PP1sojL1fVXtZJkRbkprZu20xojnS7TaOQyIOk4K8QsRQ51aB01kn7VEBgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1268,"cache_read_input_tokens":520354,"output_tokens":540,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1268,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":540,"cache_read_input_tokens":520354,"cache_creation_input_tokens":1268,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1268},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU79rSY6EPqhoK2mBLQD","type":"assistant","uuid":"0818d4e5-df52-4db0-b0b6-3a2a9dd8655f","timestamp":"2026-07-28T08:03:24.684Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0818d4e5-df52-4db0-b0b6-3a2a9dd8655f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7A4LQLMRVzbk4D8vPr","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01PXn7cHtXjpgikwhSrKVPTj","name":"Read","input":{"file_path":"D:\\oh-my-posh\\src\\config\\segment_test.go","offset":360,"limit":24},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1268,"cache_read_input_tokens":520354,"output_tokens":540,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1268,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":540,"cache_read_input_tokens":520354,"cache_creation_input_tokens":1268,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1268},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU79rSY6EPqhoK2mBLQD","type":"assistant","uuid":"e6e9caed-7bf0-4eb5-9a27-6c0b91913660","timestamp":"2026-07-28T08:03:25.977Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e6e9caed-7bf0-4eb5-9a27-6c0b91913660","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01PXn7cHtXjpgikwhSrKVPTj","type":"tool_result","content":"360\t\n361\t\tunaliased := &Segment{Type: SESSION}\n362\t\tassert.Equal(t, \"session\", unaliased.DataKey())\n363\t}\n364\t\n365\t// newDataReplayEnv builds a mock environment suitable for driving Segment.Execute\n366\t// through the shouldIncludeFolder/isToggled checks that precede data replay, and\n367\t// initializes template.Cache/template.Init so AddSegmentData doesn't panic.\n368\tfunc newDataReplayEnv(flags *runtime.Flags) *mock.Environment {\n369\t\tenv := new(mock.Environment)\n370\t\tenv.On(\"Shell\").Return(\"pwsh\")\n371\t\tenv.On(\"Pwd\").Return(\"/test\")\n372\t\tenv.On(\"Home\").Return(\"/home\")\n373\t\tenv.On(\"DirMatchesOneOf\", testifymock.Anything, testifymock.Anything).Return(false)\n374\t\tenv.On(\"Flags\").Return(flags)\n375\t\n376\t\ttemplate.Cache = &cache.Template{\n377\t\t\tSegments: maps.NewConcurrent[any](),\n378\t\t}\n379\t\ttemplate.Init(env, nil, nil)\n380\t\n381\t\treturn env\n382\t}\n383\t"}]},"uuid":"e9fb6c10-3b66-44dd-8ccb-bef98747029f","timestamp":"2026-07-28T08:03:25.984Z","toolUseResult":{"type":"text","file":{"filePath":"D:\\oh-my-posh\\src\\config\\segment_test.go","content":"\n\tunaliased := &Segment{Type: SESSION}\n\tassert.Equal(t, \"session\", unaliased.DataKey())\n}\n\n// newDataReplayEnv builds a mock environment suitable for driving Segment.Execute\n// through the shouldIncludeFolder/isToggled checks that precede data replay, and\n// initializes template.Cache/template.Init so AddSegmentData doesn't panic.\nfunc newDataReplayEnv(flags *runtime.Flags) *mock.Environment {\n\tenv := new(mock.Environment)\n\tenv.On(\"Shell\").Return(\"pwsh\")\n\tenv.On(\"Pwd\").Return(\"/test\")\n\tenv.On(\"Home\").Return(\"/home\")\n\tenv.On(\"DirMatchesOneOf\", testifymock.Anything, testifymock.Anything).Return(false)\n\tenv.On(\"Flags\").Return(flags)\n\n\ttemplate.Cache = &cache.Template{\n\t\tSegments: maps.NewConcurrent[any](),\n\t}\n\ttemplate.Init(env, nil, nil)\n\n\treturn env\n}\n","numLines":24,"startLine":360,"totalLines":793}},"sourceToolAssistantUUID":"e6e9caed-7bf0-4eb5-9a27-6c0b91913660","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e9fb6c10-3b66-44dd-8ccb-bef98747029f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7A4LQLMRVzbk4D8vPr","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Wfq4LW23o1QF92hpHxZJ87","name":"Read","input":{"file_path":"D:\\oh-my-posh\\src\\config\\segment_test.go","offset":529,"limit":35},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1268,"cache_read_input_tokens":520354,"output_tokens":540,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1268,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":540,"cache_read_input_tokens":520354,"cache_creation_input_tokens":1268,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1268},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU79rSY6EPqhoK2mBLQD","type":"assistant","uuid":"9a90f184-9c8e-4bc7-ae65-96a56af67b0c","timestamp":"2026-07-28T08:03:26.384Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9a90f184-9c8e-4bc7-ae65-96a56af67b0c","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Wfq4LW23o1QF92hpHxZJ87","type":"tool_result","content":"529\t}\n530\t\n531\tfunc TestSegment_RestoreDataAliasBeatsType(t *testing.T) {\n532\t\t// Only the type-keyed entry exists; the segment has an alias, so DataKey()\n533\t\t// resolves to \"work\" and must NOT match the \"text\" (type) entry.\n534\t\tflags := &runtime.Flags{\n535\t\t\tSegmentData: map[string]json.RawMessage{\n536\t\t\t\t\"text\": json.RawMessage(`{}`),\n537\t\t\t},\n538\t\t}\n539\t\tenv := newDataReplayEnv(flags)\n540\t\n541\t\tsegment := &Segment{Type: TEXT, Alias: \"work\"}\n542\t\tsegment.Execute(env)\n543\t\n544\t\tassert.False(t, segment.restored, \"type-keyed data must not be used for an aliased segment\")\n545\t}\n546\t\n547\tfunc TestSegment_RestoreDataNoEntryFallsThroughToNormalExecution(t *testing.T) {\n548\t\tenv := newDataReplayEnv(&runtime.Flags{})\n549\t\n550\t\tsegment := &Segment{Type: TEXT}\n551\t\tsegment.Execute(env)\n552\t\n553\t\tassert.True(t, segment.Enabled, \"text segment is always enabled on normal execution\")\n554\t\tassert.False(t, segment.restored, \"no data entry means no replay happened\")\n555\t}\n556\t\n557\t// Malformed JSON does not parse as a RecordedSegment envelope either, so it is\n558\t// treated as unmarked data: Execute keeps running (TEXT.Enabled() has no live\n559\t// dependency, so this can't panic), and the overlay attempt fails silently\n560\t// rather than blocking normal rendering.\n561\tfunc TestSegment_RestoreDataInvalidJSONFallsThrough(t *testing.T) {\n562\t\tflags := &runtime.Flags{\n563\t\t\tSegmentData: map[string]json.RawMessage{"}]},"uuid":"67b2ab15-0e8b-4e68-950c-02a11135f3c8","timestamp":"2026-07-28T08:03:26.399Z","toolUseResult":{"type":"text","file":{"filePath":"D:\\oh-my-posh\\src\\config\\segment_test.go","content":"}\n\nfunc TestSegment_RestoreDataAliasBeatsType(t *testing.T) {\n\t// Only the type-keyed entry exists; the segment has an alias, so DataKey()\n\t// resolves to \"work\" and must NOT match the \"text\" (type) entry.\n\tflags := &runtime.Flags{\n\t\tSegmentData: map[string]json.RawMessage{\n\t\t\t\"text\": json.RawMessage(`{}`),\n\t\t},\n\t}\n\tenv := newDataReplayEnv(flags)\n\n\tsegment := &Segment{Type: TEXT, Alias: \"work\"}\n\tsegment.Execute(env)\n\n\tassert.False(t, segment.restored, \"type-keyed data must not be used for an aliased segment\")\n}\n\nfunc TestSegment_RestoreDataNoEntryFallsThroughToNormalExecution(t *testing.T) {\n\tenv := newDataReplayEnv(&runtime.Flags{})\n\n\tsegment := &Segment{Type: TEXT}\n\tsegment.Execute(env)\n\n\tassert.True(t, segment.Enabled, \"text segment is always enabled on normal execution\")\n\tassert.False(t, segment.restored, \"no data entry means no replay happened\")\n}\n\n// Malformed JSON does not parse as a RecordedSegment envelope either, so it is\n// treated as unmarked data: Execute keeps running (TEXT.Enabled() has no live\n// dependency, so this can't panic), and the overlay attempt fails silently\n// rather than blocking normal rendering.\nfunc TestSegment_RestoreDataInvalidJSONFallsThrough(t *testing.T) {\n\tflags := &runtime.Flags{\n\t\tSegmentData: map[string]json.RawMessage{","numLines":35,"startLine":529,"totalLines":793}},"sourceToolAssistantUUID":"9a90f184-9c8e-4bc7-ae65-96a56af67b0c","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"67b2ab15-0e8b-4e68-950c-02a11135f3c8","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7Ak8oTR8GTVJEQGhye","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01AUmVeBszt4ry5ke3NDRoRt","name":"Edit","input":{"replace_all":false,"file_path":"D:\\oh-my-posh\\src\\config\\segment_test.go","old_string":"func TestSegment_RestoreDataNoEntryFallsThroughToNormalExecution(t *testing.T) {\n\tenv := newDataReplayEnv(&runtime.Flags{})\n\n\tsegment := &Segment{Type: TEXT}\n\tsegment.Execute(env)\n\n\tassert.True(t, segment.Enabled, \"text segment is always enabled on normal execution\")\n\tassert.False(t, segment.restored, \"no data entry means no replay happened\")\n}","new_string":"func TestSegment_RestoreDataNoEntryFallsThroughToNormalExecution(t *testing.T) {\n\tenv := newDataReplayEnv(&runtime.Flags{})\n\n\tsegment := &Segment{Type: TEXT}\n\tsegment.Execute(env)\n\n\tassert.True(t, segment.Enabled, \"text segment is always enabled on normal execution\")\n\tassert.False(t, segment.restored, \"no data entry means no replay happened\")\n}\n\n// The gap DataOnly closes: without it, a segment the data file does not cover\n// falls through to writer.Enabled() and probes the real machine, so a replay is\n// only hermetic when every configured segment happens to be recorded. SESSION is\n// used deliberately - its Enabled() calls Getenv and Platform, neither of which\n// newDataReplayEnv stubs, so a fall-through panics rather than quietly passing.\nfunc TestSegment_RestoreDataOnlyMissingKeySuppressesWithoutProbing(t *testing.T) {\n\tenv := newDataReplayEnv(&runtime.Flags{DataOnly: true})\n\n\tsegment := &Segment{Type: SESSION}\n\tsegment.Execute(env)\n\n\tassert.False(t, segment.Enabled, \"an uncovered segment renders as absent, not as itself\")\n\tassert.True(t, segment.restored, \"suppression counts as restored: no live probe happened\")\n}\n\n// The realistic way a key misses even with a complete recording: DataKey() is\n// the alias when one is set, so renaming a segment in the config walks away\n// from its own recorded entry. Without DataOnly that silently becomes a live\n// probe (see TestSegment_RestoreDataAliasBeatsType, which pins the same miss\n// without it).\nfunc TestSegment_RestoreDataOnlyAliasMissSuppressesWithoutProbing(t *testing.T) {\n\tflags := &runtime.Flags{\n\t\tDataOnly: true,\n\t\tSegmentData: map[string]json.RawMessage{\n\t\t\t\"session\": json.RawMessage(`{\"enabled\":true,\"data\":{\"SSHSession\":true}}`),\n\t\t},\n\t}\n\tenv := newDataReplayEnv(flags)\n\n\tsegment := &Segment{Type: SESSION, Alias: \"mybox\"}\n\tsegment.Execute(env)\n\n\tassert.False(t, segment.Enabled, \"the recorded type-keyed entry must not be used for an aliased segment\")\n\tassert.True(t, segment.restored)\n}\n\n// A flat, hand-written entry is normally overlaid on top of live-derived state.\n// With probing disallowed there is no live state to overlay onto, so it has to\n// stand on its own - again proven by SESSION's unstubbed Getenv/Platform.\nfunc TestSegment_RestoreDataOnlyFlatEntryAppliesWithoutProbing(t *testing.T) {\n\tflags := &runtime.Flags{\n\t\tDataOnly: true,\n\t\tSegmentData: map[string]json.RawMessage{\n\t\t\t\"session\": json.RawMessage(`{\"SSHSession\":true}`),\n\t\t},\n\t}\n\tenv := newDataReplayEnv(flags)\n\n\tsegment := &Segment{Type: SESSION}\n\tsegment.Execute(env)\n\n\tassert.True(t, segment.Enabled)\n\tassert.True(t, segment.restored)\n\n\twriter, ok := segment.Writer().(*segments.Session)\n\trequire.True(t, ok)\n\tassert.True(t, writer.SSHSession, \"the hand-written entry stands on its own\")\n}"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1599,"cache_read_input_tokens":521622,"output_tokens":1468,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1599,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1468,"cache_read_input_tokens":521622,"cache_creation_input_tokens":1599,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1599},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7AdkL4uZDuLhmj9yQN","type":"assistant","uuid":"2818ee0a-637e-4f1d-8e77-e0e77d803bb2","timestamp":"2026-07-28T08:03:43.043Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2818ee0a-637e-4f1d-8e77-e0e77d803bb2","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01AUmVeBszt4ry5ke3NDRoRt","type":"tool_result","content":"The file D:\\oh-my-posh\\src\\config\\segment_test.go has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"66b3ba28-b0fb-48bd-b09c-380d176df131","timestamp":"2026-07-28T08:03:43.079Z","toolUseResult":{"filePath":"D:\\oh-my-posh\\src\\config\\segment_test.go","oldString":"func TestSegment_RestoreDataNoEntryFallsThroughToNormalExecution(t *testing.T) {\n\tenv := newDataReplayEnv(&runtime.Flags{})\n\n\tsegment := &Segment{Type: TEXT}\n\tsegment.Execute(env)\n\n\tassert.True(t, segment.Enabled, \"text segment is always enabled on normal execution\")\n\tassert.False(t, segment.restored, \"no data entry means no replay happened\")\n}","newString":"func TestSegment_RestoreDataNoEntryFallsThroughToNormalExecution(t *testing.T) {\n\tenv := newDataReplayEnv(&runtime.Flags{})\n\n\tsegment := &Segment{Type: TEXT}\n\tsegment.Execute(env)\n\n\tassert.True(t, segment.Enabled, \"text segment is always enabled on normal execution\")\n\tassert.False(t, segment.restored, \"no data entry means no replay happened\")\n}\n\n// The gap DataOnly closes: without it, a segment the data file does not cover\n// falls through to writer.Enabled() and probes the real machine, so a replay is\n// only hermetic when every configured segment happens to be recorded. SESSION is\n// used deliberately - its Enabled() calls Getenv and Platform, neither of which\n// newDataReplayEnv stubs, so a fall-through panics rather than quietly passing.\nfunc TestSegment_RestoreDataOnlyMissingKeySuppressesWithoutProbing(t *testing.T) {\n\tenv := newDataReplayEnv(&runtime.Flags{DataOnly: true})\n\n\tsegment := &Segment{Type: SESSION}\n\tsegment.Execute(env)\n\n\tassert.False(t, segment.Enabled, \"an uncovered segment renders as absent, not as itself\")\n\tassert.True(t, segment.restored, \"suppression counts as restored: no live probe happened\")\n}\n\n// The realistic way a key misses even with a complete recording: DataKey() is\n// the alias when one is set, so renaming a segment in the config walks away\n// from its own recorded entry. Without DataOnly that silently becomes a live\n// probe (see TestSegment_RestoreDataAliasBeatsType, which pins the same miss\n// without it).\nfunc TestSegment_RestoreDataOnlyAliasMissSuppressesWithoutProbing(t *testing.T) {\n\tflags := &runtime.Flags{\n\t\tDataOnly: true,\n\t\tSegmentData: map[string]json.RawMessage{\n\t\t\t\"session\": json.RawMessage(`{\"enabled\":true,\"data\":{\"SSHSession\":true}}`),\n\t\t},\n\t}\n\tenv := newDataReplayEnv(flags)\n\n\tsegment := &Segment{Type: SESSION, Alias: \"mybox\"}\n\tsegment.Execute(env)\n\n\tassert.False(t, segment.Enabled, \"the recorded type-keyed entry must not be used for an aliased segment\")\n\tassert.True(t, segment.restored)\n}\n\n// A flat, hand-written entry is normally overlaid on top of live-derived state.\n// With probing disallowed there is no live state to overlay onto, so it has to\n// stand on its own - again proven by SESSION's unstubbed Getenv/Platform.\nfunc TestSegment_RestoreDataOnlyFlatEntryAppliesWithoutProbing(t *testing.T) {\n\tflags := &runtime.Flags{\n\t\tDataOnly: true,\n\t\tSegmentData: map[string]json.RawMessage{\n\t\t\t\"session\": json.RawMessage(`{\"SSHSession\":true}`),\n\t\t},\n\t}\n\tenv := newDataReplayEnv(flags)\n\n\tsegment := &Segment{Type: SESSION}\n\tsegment.Execute(env)\n\n\tassert.True(t, segment.Enabled)\n\tassert.True(t, segment.restored)\n\n\twriter, ok := segment.Writer().(*segments.Session)\n\trequire.True(t, ok)\n\tassert.True(t, writer.SSHSession, \"the hand-written entry stands on its own\")\n}","originalFile":null,"structuredPatch":[{"oldStart":554,"oldLines":6,"newStart":554,"newLines":65,"lines":[" assert.False(t, segment.restored, \"no data entry means no replay happened\")"," }"," ","+// The gap DataOnly closes: without it, a segment the data file does not cover","+// falls through to writer.Enabled() and probes the real machine, so a replay is","+// only hermetic when every configured segment happens to be recorded. SESSION is","+// used deliberately - its Enabled() calls Getenv and Platform, neither of which","+// newDataReplayEnv stubs, so a fall-through panics rather than quietly passing.","+func TestSegment_RestoreDataOnlyMissingKeySuppressesWithoutProbing(t *testing.T) {","+ env := newDataReplayEnv(&runtime.Flags{DataOnly: true})","+","+ segment := &Segment{Type: SESSION}","+ segment.Execute(env)","+","+ assert.False(t, segment.Enabled, \"an uncovered segment renders as absent, not as itself\")","+ assert.True(t, segment.restored, \"suppression counts as restored: no live probe happened\")","+}","+","+// The realistic way a key misses even with a complete recording: DataKey() is","+// the alias when one is set, so renaming a segment in the config walks away","+// from its own recorded entry. Without DataOnly that silently becomes a live","+// probe (see TestSegment_RestoreDataAliasBeatsType, which pins the same miss","+// without it).","+func TestSegment_RestoreDataOnlyAliasMissSuppressesWithoutProbing(t *testing.T) {","+ flags := &runtime.Flags{","+ DataOnly: true,","+ SegmentData: map[string]json.RawMessage{","+ \"session\": json.RawMessage(`{\"enabled\":true,\"data\":{\"SSHSession\":true}}`),","+ },","+ }","+ env := newDataReplayEnv(flags)","+","+ segment := &Segment{Type: SESSION, Alias: \"mybox\"}","+ segment.Execute(env)","+","+ assert.False(t, segment.Enabled, \"the recorded type-keyed entry must not be used for an aliased segment\")","+ assert.True(t, segment.restored)","+}","+","+// A flat, hand-written entry is normally overlaid on top of live-derived state.","+// With probing disallowed there is no live state to overlay onto, so it has to","+// stand on its own - again proven by SESSION's unstubbed Getenv/Platform.","+func TestSegment_RestoreDataOnlyFlatEntryAppliesWithoutProbing(t *testing.T) {","+ flags := &runtime.Flags{","+ DataOnly: true,","+ SegmentData: map[string]json.RawMessage{","+ \"session\": json.RawMessage(`{\"SSHSession\":true}`),","+ },","+ }","+ env := newDataReplayEnv(flags)","+","+ segment := &Segment{Type: SESSION}","+ segment.Execute(env)","+","+ assert.True(t, segment.Enabled)","+ assert.True(t, segment.restored)","+","+ writer, ok := segment.Writer().(*segments.Session)","+ require.True(t, ok)","+ assert.True(t, writer.SSHSession, \"the hand-written entry stands on its own\")","+}","+"," // Malformed JSON does not parse as a RecordedSegment envelope either, so it is"," // treated as unmarked data: Execute keeps running (TEXT.Enabled() has no live"," // dependency, so this can't panic), and the overlay attempt fails silently"]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"2818ee0a-637e-4f1d-8e77-e0e77d803bb2","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"66b3ba28-b0fb-48bd-b09c-380d176df131","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7Bych9eEcSfuWg6HTz","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01EcEENK1GUgRAtcNCB8WtVN","name":"Bash","input":{"command":"go test ./config/ -run \"RestoreDataOnly\" -v -count=1 2>&1 | tail -20","description":"Run the new DataOnly tests"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1521,"cache_read_input_tokens":523221,"output_tokens":114,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1521,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":114,"cache_read_input_tokens":523221,"cache_creation_input_tokens":1521,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1521},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7BsveCGMhLkA51NkLq","type":"assistant","uuid":"98acd1fd-2e7f-413c-93c3-27d867f2e57a","timestamp":"2026-07-28T08:03:46.651Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"98acd1fd-2e7f-413c-93c3-27d867f2e57a","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01EcEENK1GUgRAtcNCB8WtVN","type":"tool_result","content":"=== RUN TestSegment_RestoreDataOnlyMissingKeySuppressesWithoutProbing\n--- PASS: TestSegment_RestoreDataOnlyMissingKeySuppressesWithoutProbing (0.00s)\n=== RUN TestSegment_RestoreDataOnlyAliasMissSuppressesWithoutProbing\n--- PASS: TestSegment_RestoreDataOnlyAliasMissSuppressesWithoutProbing (0.00s)\n=== RUN TestSegment_RestoreDataOnlyFlatEntryAppliesWithoutProbing\n--- PASS: TestSegment_RestoreDataOnlyFlatEntryAppliesWithoutProbing (0.00s)\nPASS\nok \tgithub.com/jandedobbeleer/oh-my-posh/src/config\t0.128s","is_error":false}]},"uuid":"2d579edc-1937-4806-80ee-3c717e49e69a","timestamp":"2026-07-28T08:03:52.048Z","toolUseResult":{"stdout":"=== RUN TestSegment_RestoreDataOnlyMissingKeySuppressesWithoutProbing\n--- PASS: TestSegment_RestoreDataOnlyMissingKeySuppressesWithoutProbing (0.00s)\n=== RUN TestSegment_RestoreDataOnlyAliasMissSuppressesWithoutProbing\n--- PASS: TestSegment_RestoreDataOnlyAliasMissSuppressesWithoutProbing (0.00s)\n=== RUN TestSegment_RestoreDataOnlyFlatEntryAppliesWithoutProbing\n--- PASS: TestSegment_RestoreDataOnlyFlatEntryAppliesWithoutProbing (0.00s)\nPASS\nok \tgithub.com/jandedobbeleer/oh-my-posh/src/config\t0.128s","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"98acd1fd-2e7f-413c-93c3-27d867f2e57a","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2d579edc-1937-4806-80ee-3c717e49e69a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7CfBhah32NhXyPa2YQ","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Now I need to verify the fix actually matters by running a mutation test—temporarily removing the guard that prevents the panic to confirm the test would fail without it.","signature":"CAIS5QUKhwEIEBgCKkBMlAHb5uhUhpR2NfhmrXl1AajdnEmShph7QpOMfJqdxJzQx8vhuaasgYiSDghQldfu2xGewTPMR+uHy0WsupTxMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDH7sAGirjp1uJAO6xhoM300VvXICszvveKfqIjB5pIxyD4HPprqmZHMpBdDqqLndKMJQf8RO8G7/wTsJP1b3kdfe8uELodlcrHvjwgkqigTZTpi199XyhGY5qRdQPDZXP0F44C6C/Ylv+XMug8WWnSx5e9AlHbI+eiKOcqcInTLggZ/CZuM4UnQHlDnwIQ+8ED9S88dAWXakt4dkaozSKcJ4kFzSDZd4qI3rxwhvoUoPig0w2voEtAp/7qXaMZBCHBmw7v/pv7N02mYNfmkRYuRs4y8AETpU7SQm1ecYZ3a9cCkFoue3X4cvcbj+MAmhluTECx5P6z1prSdX1dvkGs22z/jXvegwc97ysSymxeUYLtFT0d52ZDw+o/TJhtpBwG3qy1XaUFoSaTCU0re/vp2ihHi4WI9QQG7c6nOKKIzwsh2lHbirJ/PxQfmVtShs9kgVwGaeTuVSNoubNUkpAM7mel2XK9sFKJnXCO4hAVQirdR1WtEJuCe503Iu3K5D4Vl7+AGDizsWCWG25W201KBymaBcb+dEV8URfluSEK//ga6w5sN+bb319qC8Ma8kA664txjzsgJVXXUd8qZlZF6VOm8D5HuAkUg8LRS04tC6vnrEwfbuuaUwSHcfjl5xG8oazN/bfxmakDXO1JJ8NMq2ElbtA7XOhyTbGB1xavrShD8WF0+2xojz8o2LhRkTfzfNZ2+LEZxvs2k7bWjHpLhMF0V2kNC3Ty8jD/1ipIcdkiQNRF0jUTsFHX/k55TcoRd/kXBJbrNWOivryQMSJpsAQhgOT/ASQAsYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":414,"cache_read_input_tokens":524742,"output_tokens":442,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":414,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":442,"cache_read_input_tokens":524742,"cache_creation_input_tokens":414,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":414},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7CXWLqhCVmbQun9vFg","type":"assistant","uuid":"0cfd21fc-e6f5-4b06-8100-b7569a805a18","timestamp":"2026-07-28T08:03:59.208Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0cfd21fc-e6f5-4b06-8100-b7569a805a18","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7CfBhah32NhXyPa2YQ","type":"message","role":"assistant","content":[{"type":"text","text":"Tests pass — but that proves nothing until I check they'd fail without the fix. Mutating the guard:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":414,"cache_read_input_tokens":524742,"output_tokens":442,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":414,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":442,"cache_read_input_tokens":524742,"cache_creation_input_tokens":414,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":414},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7CXWLqhCVmbQun9vFg","type":"assistant","uuid":"58d01103-e1b6-4be0-8112-c5475c5c122e","timestamp":"2026-07-28T08:03:59.212Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"58d01103-e1b6-4be0-8112-c5475c5c122e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7CfBhah32NhXyPa2YQ","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Bya8D8LGnQvsegwLaYFrW6","name":"Bash","input":{"command":"cp config/segment.go /tmp/segment.go.bak && sed -i 's|^\\tdataOnly := segment.env.Flags().DataOnly$|\\tdataOnly := false \\&\\& segment.env.Flags().DataOnly|' config/segment.go && grep -n \"dataOnly :=\" config/segment.go && go test ./config/ -run \"RestoreDataOnly\" -count=1 2>&1 | tail -12","description":"Mutation test: disable the DataOnly branch"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":414,"cache_read_input_tokens":524742,"output_tokens":442,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":414,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":442,"cache_read_input_tokens":524742,"cache_creation_input_tokens":414,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":414},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7CXWLqhCVmbQun9vFg","type":"assistant","uuid":"cd048067-8480-4cf4-abdb-f99fe5807341","timestamp":"2026-07-28T08:04:00.614Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cd048067-8480-4cf4-abdb-f99fe5807341","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Bya8D8LGnQvsegwLaYFrW6","type":"tool_result","content":"555:\tdataOnly := false && segment.env.Flags().DataOnly\ngithub.com/jandedobbeleer/oh-my-posh/src/segments.(*Session).Enabled(0x7d41404b51a0)\n\tD:/oh-my-posh/src/segments/session.go:15 +0x20\ngithub.com/jandedobbeleer/oh-my-posh/src/config.(*Segment).Execute(0x7d4140432288, {0x7ff749458508, 0x7d4140420870})\n\tD:/oh-my-posh/src/config/segment.go:253 +0x228\ngithub.com/jandedobbeleer/oh-my-posh/src/config.TestSegment_RestoreDataOnlyMissingKeySuppressesWithoutProbing(0x7d414048a400)\n\tD:/oh-my-posh/src/config/segment_test.go:566 +0x68\ntesting.tRunner(0x7d414048a400, 0x7ff749438f40)\n\tC:/Program Files/Go/src/testing/testing.go:2036 +0xac\ncreated by testing.(*T).Run in goroutine 1\n\tC:/Program Files/Go/src/testing/testing.go:2101 +0x394\nFAIL\tgithub.com/jandedobbeleer/oh-my-posh/src/config\t0.141s\nFAIL","is_error":false}]},"uuid":"b6491798-93fc-4d06-af64-048303022335","timestamp":"2026-07-28T08:04:05.596Z","toolUseResult":{"stdout":"555:\tdataOnly := false && segment.env.Flags().DataOnly\ngithub.com/jandedobbeleer/oh-my-posh/src/segments.(*Session).Enabled(0x7d41404b51a0)\n\tD:/oh-my-posh/src/segments/session.go:15 +0x20\ngithub.com/jandedobbeleer/oh-my-posh/src/config.(*Segment).Execute(0x7d4140432288, {0x7ff749458508, 0x7d4140420870})\n\tD:/oh-my-posh/src/config/segment.go:253 +0x228\ngithub.com/jandedobbeleer/oh-my-posh/src/config.TestSegment_RestoreDataOnlyMissingKeySuppressesWithoutProbing(0x7d414048a400)\n\tD:/oh-my-posh/src/config/segment_test.go:566 +0x68\ntesting.tRunner(0x7d414048a400, 0x7ff749438f40)\n\tC:/Program Files/Go/src/testing/testing.go:2036 +0xac\ncreated by testing.(*T).Run in goroutine 1\n\tC:/Program Files/Go/src/testing/testing.go:2101 +0x394\nFAIL\tgithub.com/jandedobbeleer/oh-my-posh/src/config\t0.141s\nFAIL","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"cd048067-8480-4cf4-abdb-f99fe5807341","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b6491798-93fc-4d06-af64-048303022335","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"D:\\oh-my-posh\\src\\config\\segment.go","snippet":"1\tpackage config\n2\t\n3\timport (\n4\t\t\"bytes\"\n5\t\t\"encoding/gob\"\n6\t\t\"encoding/json\"\n7\t\t\"fmt\"\n8\t\t\"slices\"\n9\t\t\"strings\"\n10\t\t\"time\"\n11\t\n12\t\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n13\t\t\"github.com/jandedobbeleer/oh-my-posh/src/color\"\n14\t\t\"github.com/jandedobbeleer/oh-my-posh/src/log\"\n15\t\t\"github.com/jandedobbeleer/oh-my-posh/src/regex\"\n16\t\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n17\t\trunjobs \"github.com/jandedobbeleer/oh-my-posh/src/runtime/jobs\"\n18\t\t\"github.com/jandedobbeleer/oh-my-posh/src/segments/options\"\n19\t\t\"github.com/jandedobbeleer/oh-my-posh/src/template\"\n20\t\n21\t\t\"go.yaml.in/yaml/v3\"\n22\t\tc \"golang.org/x/text/cases\"\n23\t\t\"golang.org/x/text/language\"\n24\t)\n25\t\n26\ttype SegmentStyle string\n27\t\n28\tfunc (s *SegmentStyle) resolve(context any) SegmentStyle {\n29\t\tvalue, err := template.RenderTrusted(string(*s), context)\n30\t\n31\t\t// default to Plain\n32\t\tif err != nil || value == \"\" {\n33\t\t\treturn Plain\n34\t\t}\n35\t\n36\t\treturn SegmentStyle(value)\n37\t}\n38\t\n39\ttype Segment struct {\n40\t\twriter SegmentWriter\n41\t\tenv runtime.Environment\n42\t\tOptions options.Map `json:\"options,omitempty\" toml:\"options,omitempty\" yaml:\"options,omitempty\"`\n43\t\tProperties options.Map `json:\"-\" toml:\"properties,omitempty\" yaml:\"-\"`\n44\t\tCache *Cache `json:\"cache,omitempty\" toml:\"cache,omitempty\" yaml:\"cache,omitempty\"`\n45\t\tpresentFields map[string]bool\n46\t\tAlias string `json:\"alias,omitempty\" toml:\"alias,omitempty\" yaml:\"alias,omitempty\"`\n47\t\tstyleCache SegmentStyle\n48\t\tforegroundCache color.Ansi\n49\t\tbackgroundCache color.Ansi\n50\t\tname string\n51\t\tLeadingDiamond string `json:\"leading_diamond,omitempty\" toml:\"leading_diamond,omitempty\" yaml:\"leading_diamond,omitempty\"`\n52\t\tTrailingDiamond string `json:\"trailing_diamond,omitempty\" toml:\"trailing_diamond,omitempty\" yaml:\"trailing_diamond,omitempty\"`\n53\t\tTemplate string `json:\"template,omitempty\" toml:\"template,omitempty\" yaml:\"template,omitempty\"`\n54\t\tRightTemplate string `json:\"right_template,omitempty\" toml:\"right_template,omitempty\" yaml:\"right_template,omitempty\"`\n55\t\tForeground color.Ansi `json:\"foreground,omitempty\" toml:\"foreground,omitempty\" yaml:\"foreground,omitempty\"`\n56\t\tTemplatesLogic template.Logic `json:\"templates_logic,omitempty\" toml:\"templates_logic,omitempty\" yaml:\"templates_logic,omitempty\"`\n57\t\tPowerlineSymbol string `json:\"powerline_symbol,omitempty\" toml:\"powerline_symbol,omitempty\" yaml:\"powerline_symbol,omitempty\"`\n58\t\tBackground color.Ansi `json:\"background,omitempty\" toml:\"background,omitempty\" yaml:\"background,omitempty\"`\n59\t\tFiller string `json:\"filler,omitempty\" toml:\"filler,omitempty\" yaml:\"filler,omitempty\"`\n60\t\tType SegmentType `json:\"type,omitempty\" toml:\"type,omitempty\" yaml:\"type,omitempty\"`\n61\t\tStyle SegmentStyle `json:\"style,omitempty\" toml:\"style,omitempty\" yaml:\"style,omitempty\"`\n62\t\tLeadingPowerlineSymbol string `json:\"leading_powerline_symbol,omitempty\" toml:\"leading_powerline_symbol,omitempty\" yaml:\"leading_powerline_symbol,omitempty\"`\n63\t\tPlaceholder string `json:\"placeholder,omitempty\" toml:\"placeholder,omitempty\" yaml:\"placeholder,omitempty\"`\n64\t\tFallbackTemplate string `json:\"fallback_template,omitempty\" toml:\"fallback_template,omitempty\" yaml:\"fallback_template,omitempty\"`\n65\t\tTips []string `json:\"tips,omitempty\" toml:\"tips,omitempty\" yaml:\"tips,omitempty\"`\n66\t\tBackgroundTemplates template.List `json:\"background_templates,omitempty\" toml:\"background_templates,omitempty\" yaml:\"background_templates,omitempty\"`\n67\t\tTemplates template.List `json:\"templates,omitempty\" toml:\"templates,omitempty\" yaml:\"templates,omitempty\"`\n68\t\tExcludeFolders []string `json:\"exclude_folders,omitempty\" toml:\"exclude_folders,omitempty\" yaml:\"exclude_folders,omitempty\"`\n69\t\tIncludeFolders []string `json:\"include_folders,omitempty\" toml:\"include_folders,omitempty\" yaml:\"include_folders,omitempty\"`\n70\t\tNeeds []string `json:\"-\" toml:\"-\" yaml:\"-\"`\n71\t\tForegroundTemplates template.List `json:\"foreground_templates,omitempty\" toml:\"foreground_templates,omitempty\" yaml:\"foreground_templates,omitempty\"`\n72\t\tpendingData json.RawMessage\n73\t\tIndex int `json:\"index,omitempty\" toml:\"index,omitempty\" yaml:\"index,omitempty\"`\n74\t\tMinWidth int `json:\"min_width,omitempty\" toml:\"min_width,omitempty\" yaml:\"min_width,omitempty\"`\n75\t\tDuration time.Duration `json:\"-\" toml:\"-\" yaml:\"-\"`\n76\t\tNameLength int `json:\"-\" toml:\"-\" yaml:\"-\"`\n77\t\tMaxWidth int `json:\"max_width,omitempty\" toml:\"max_width,omitempty\" yaml:\"max_width,omitempty\"`\n78\t\tTimeout int `json:\"timeout,omitempty\" toml:\"timeout,omitempty\" yaml:\"timeout,omitempty\"`\n79\t\tNewline bool `json:\"newline,omitempty\" toml:\"newline,omitempty\" yaml:\"newline,omitempty\"`\n80\t\tEnabled bool `json:\"-\" toml:\"-\" yaml:\"-\"`\n81\t\tInvertPowerline bool `json:\"invert_powerline,omitempty\" toml:\"invert_powerline,omitempty\" yaml:\"invert_powerline,omitempty\"`\n82\t\tForce bool `json:\"force,omitempty\" toml:\"force,omitempty\" yaml:\"force,omitempty\"`\n83\t\trestored bool `json:\"-\" toml:\"-\" yaml:\"-\"`\n84\t\tToggled bool `json:\"toggled,omitempty\" toml:\"toggled,omitempty\" yaml:\"toggled,omitempty\"`\n85\t\tPending bool `json:\"-\" toml:\"-\" yaml:\"-\"`\n86\t\tKilled bool `json:\"-\" toml:\"-\" yaml:\"-\"`\n87\t\tInteractive bool `json:\"interactive,omitempty\" toml:\"interactive,omitempty\" yaml:\"interactive,omitempty\"`\n88\t\tMultilineKeepPrompt bool `json:\"multiline_keepprompt,omitempty\" toml:\"multiline_keepprompt,omitempty\" yaml:\"multiline_keepprompt,omitempty\"`\n89\t\tforegroundResolved bool\n90\t\tbackgroundResolved bool\n91\t\tneedsEvaluated bool\n92\t\tevaluated bool\n93\t}\n94\t\n95\t// A nil presentFields map means presence was never recorded, in which case every\n96\t// field is treated as present, preserving merge's legacy unconditional-overwrite\n97\t// behavior for such segments. name is the json tag key.\n98\tfunc (segment *Segment) fieldPresent(name string) bool {\n99\t\tif segment.presentFields == nil {\n100\t\t\treturn true\n101\t\t}\n102\t\n103\t\treturn segment.presentFields[name]\n104\t}\n105\t\n106\t// segmentAlias is used to avoid recursion during unmarshaling\n107\ttype segmentAlias Segment\n108\t\n109\t// segmentAux is a helper struct that captures the legacy 'properties' field\n110\ttype segmentAux struct {\n111\t\tProperties options.Map `json:\"properties,omitempty\" yaml:\"properties,omitempty\" toml:\"properties,omitempty\"`\n112\t\t*segmentAlias\n113\t}\n114\t\n115\tfunc (segment *Segment) UnmarshalJSON(data []byte) error {\n116\t\taux := &segmentAux{\n117\t\t\tsegmentAlias: (*segmentAlias)(segment),\n118\t\t}\n119\t\n120\t\tif err := json.Unmarshal(data, aux); err != nil {\n121\t\t\treturn err\n122\t\t}\n123\t\n124\t\t// Migrate 'properties' to 'options' if present\n125\t\tif len(aux.Properties) > 0 && len(segment.Options) == 0 {\n126\t\t\tsegment.Options = aux.Properties\n127\t\t}\n128\t\n129\t\treturn nil\n130\t}\n131\t\n132\tfunc (segment *Segment) UnmarshalYAML(node *yaml.Node) error {\n133\t\t// Decode into a map to handle field renaming\n134\t\tvar raw map[string]any\n135\t\tif err := node.Decode(&raw); err != nil {\n136\t\t\treturn err\n137\t\t}\n138\t\n139\t\t// If 'properties' exists and 'options' doesn't, rename it\n140\t\tif props, hasProps := raw[\"properties\"]; hasProps {\n141\t\t\tif _, hasOptions := raw[\"options\"]; !hasOptions {\n142\t\t\t\traw[\"options\"] = props\n143\t\t\t\tdelete(raw, \"properties\")\n144\t\t\t}\n145\t\t}\n146\t\n147\t\t// Re-encode and decode into the struct\n148\t\tmodifiedNode := &yaml.Node{}\n149\t\tif err := modifiedNode.Encode(raw); err != nil {\n150\t\t\treturn err\n151\t\t}\n152\t\n\n... [656 lines truncated] ...","displayPath":"src\\config\\segment.go"},"type":"attachment","uuid":"906f3b50-5650-426f-a643-71cacfe1cb10","timestamp":"2026-07-28T08:04:05.943Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"906f3b50-5650-426f-a643-71cacfe1cb10","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7Dh2Mkgar3vXhc2fS8","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The mutation test confirmed the guard is working—disabling it causes `Session.Enabled()` to be called on the unstubbed mock, which panics and proves the test catches the actual behavior. Now I'm restoring the file and double-checking everything still works.","signature":"CAIS0AMKhwEIEBgCKkBogyTUsawDWgOIi5mANtt2a036GVNN+fuU0iuj1NCANeanzyAQ+Msc7beC/M3yf6/ZjW3btQMa2yCNERtETTySMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDGPMff+afpAD+biKIRoMQTuymSbmc4EjnWKmIjCMWfKolkAFvaaI+nqTiEhR1z0LYvSwGhwNmTp0/+ptWUpd6RUhxy7iT+4wMH5j7xMq9QHY5cmo/jc1gSq+2l/n2dTlxnaI535GXu0KPgDI4m/7xxkoAV3rM+/yLJV+W64Xv0UEgqLmXCjNbMEcDqvlvNW01zICVeR+B7s2AziYjWhzoXlTGQ9/L2vcK1ta5EmcNH+sHnU2gqMerDDnzCu4UVW/7ygZZqRaUmLv3d9a3WH68EEy5tlaQ7/KGrYgu+6PiP+7xnLRPVw3YAztIf1mVi55Swm3yCiav0p0KfLToeu8VFmf+7qOGJMmHPTBO5yCcZEE7p/gErPU2KQC1VfVhqQcl4Lqe4NQMI9rqjx10xORW++r3KVaqGXxuvPnkCC6uiybeHgIYxgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":4552,"cache_read_input_tokens":525156,"output_tokens":323,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":4552,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":323,"cache_read_input_tokens":525156,"cache_creation_input_tokens":4552,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":4552},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7DYj379Bz6ZJxJrywx","type":"assistant","uuid":"c366c7b2-b267-4ebe-b574-59930deefe54","timestamp":"2026-07-28T08:04:12.400Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c366c7b2-b267-4ebe-b574-59930deefe54","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7Dh2Mkgar3vXhc2fS8","type":"message","role":"assistant","content":[{"type":"text","text":"Mutation confirms it: with the guard disabled, `Session.Enabled()` is reached and panics on the unstubbed mock — the test genuinely detects a live probe rather than just asserting a flag. Restoring:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":4552,"cache_read_input_tokens":525156,"output_tokens":323,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":4552,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":323,"cache_read_input_tokens":525156,"cache_creation_input_tokens":4552,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":4552},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7DYj379Bz6ZJxJrywx","type":"assistant","uuid":"cee2e43b-a4d5-40c3-b67a-4e0985c6c206","timestamp":"2026-07-28T08:04:12.401Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cee2e43b-a4d5-40c3-b67a-4e0985c6c206","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7Dh2Mkgar3vXhc2fS8","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01TeXKE9Hf8fP5BVF9e9TtU8","name":"Bash","input":{"command":"cp /tmp/segment.go.bak config/segment.go && grep -n \"dataOnly :=\" config/segment.go && go test ./... -count=1 2>&1 | grep -v \"^ok\\|no test files\" | head -5; golangci-lint run ./... 2>&1 | tail -2","description":"Restore and run full verification"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":4552,"cache_read_input_tokens":525156,"output_tokens":323,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":4552,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":323,"cache_read_input_tokens":525156,"cache_creation_input_tokens":4552,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":4552},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7DYj379Bz6ZJxJrywx","type":"assistant","uuid":"4a924546-b2e4-43ff-9461-d8c3b38c999d","timestamp":"2026-07-28T08:04:13.313Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4a924546-b2e4-43ff-9461-d8c3b38c999d","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01TeXKE9Hf8fP5BVF9e9TtU8","type":"tool_result","content":"555:\tdataOnly := segment.env.Flags().DataOnly\n0 issues.","is_error":false}]},"uuid":"8a8746de-9bd1-43cd-bce7-cccca87401c1","timestamp":"2026-07-28T08:04:37.399Z","toolUseResult":{"stdout":"555:\tdataOnly := segment.env.Flags().DataOnly\n0 issues.","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"4a924546-b2e4-43ff-9461-d8c3b38c999d","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8a8746de-9bd1-43cd-bce7-cccca87401c1","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"532712d1-81d0-4c99-9dc0-71f51b8a84e6","timestamp":"2026-07-28T08:04:37.417Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"532712d1-81d0-4c99-9dc0-71f51b8a84e6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7G9gXyK8HzY9ciirLf","type":"message","role":"assistant","content":[{"type":"text","text":"Now the behavioural proof at CLI level — timing, not diffing, since identical output can mean uniformly failing probes:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":487,"cache_read_input_tokens":529708,"output_tokens":403,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":487,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":403,"cache_read_input_tokens":529708,"cache_creation_input_tokens":487,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":487},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7FsqJ9jfX7xrgDnkwc","type":"assistant","uuid":"9b613df3-360a-4eb0-884e-5c9bd2d03009","timestamp":"2026-07-28T08:04:45.341Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9b613df3-360a-4eb0-884e-5c9bd2d03009","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7G9gXyK8HzY9ciirLf","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_0122LkARdbvXLVXK3vZb4Rcp","name":"Bash","input":{"command":"go build -o \"$TMPDIR/omp-dataonly.exe\" . && cd /d/oh-my-posh && for mode in \"\" \"--data-only\"; do total=0; slow=\"\"; for t in chips jandedobbeleer M365Princess glowsticks cert; do f=$(ls themes/$t.omp.* 2>/dev/null | head -1); s=$( { time -p \"$TMPDIR/omp-dataonly.exe\" config export image --config \"$f\" --data src/prompt/testdata/fixtures/prompt.data.json $mode -o \"$TMPDIR/t.svg\" >/dev/null 2>&1; } 2>&1 | awk '/^real/{print $2}'); echo \" $t $s\"; done; echo \"--- mode='${mode:-live-fallthrough}' above ---\"; done","description":"Time replay with and without data-only"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":487,"cache_read_input_tokens":529708,"output_tokens":403,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":487,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":403,"cache_read_input_tokens":529708,"cache_creation_input_tokens":487,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":487},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7FsqJ9jfX7xrgDnkwc","type":"assistant","uuid":"c9b2587f-507f-486c-84b6-cae88c29da3b","timestamp":"2026-07-28T08:04:49.298Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c9b2587f-507f-486c-84b6-cae88c29da3b","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_0122LkARdbvXLVXK3vZb4Rcp","type":"tool_result","content":" chips 0.20\n jandedobbeleer 0.13\n M365Princess 0.11\n glowsticks 0.13\n cert 0.12\n--- mode='live-fallthrough' above ---\n chips 0.14\n jandedobbeleer 0.13\n M365Princess 0.11\n glowsticks 0.10\n cert 0.10\n--- mode='--data-only' above ---","is_error":false}]},"uuid":"7462e2a0-8582-4d65-9a11-be2f79c91f85","timestamp":"2026-07-28T08:04:56.720Z","toolUseResult":{"stdout":" chips 0.20\n jandedobbeleer 0.13\n M365Princess 0.11\n glowsticks 0.13\n cert 0.12\n--- mode='live-fallthrough' above ---\n chips 0.14\n jandedobbeleer 0.13\n M365Princess 0.11\n glowsticks 0.10\n cert 0.10\n--- mode='--data-only' above ---","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"c9b2587f-507f-486c-84b6-cae88c29da3b","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7462e2a0-8582-4d65-9a11-be2f79c91f85","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7HPvZvMACmckSLUSS5","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The timing data shows a 60ms difference between the two runs with chips, which is a modest signal but could be noise at this scale. I should run a more rigorous test using a larger config to get clearer results.\n\nThe strongest evidence I already have is the unit test with the panicking mock. For a decisive end-to-end demonstration, I'll create a test config with an HTTP segment pointing to a non-routable IP address (192.0.2.1 from TEST-NET-1) so that without --data-only it times out trying to fetch, while with --data-only it skips the network call entirely. This directly shows the behavior we care about.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":526,"cache_read_input_tokens":530195,"output_tokens":1095,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":526,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1095,"cache_read_input_tokens":530195,"cache_creation_input_tokens":526,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":526},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7HJXNs9fYYSmBcSQCy","type":"assistant","uuid":"b15adc47-0473-4c73-9f0c-26c4f42594d9","timestamp":"2026-07-28T08:05:09.711Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b15adc47-0473-4c73-9f0c-26c4f42594d9","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7HPvZvMACmckSLUSS5","type":"message","role":"assistant","content":[{"type":"text","text":"Small deltas there, within noise. Let me make the decisive end-to-end demonstration instead — a config with an `http` segment pointing at a non-routable test address (`192.0.2.1`, TEST-NET-1, reaches nothing):"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":526,"cache_read_input_tokens":530195,"output_tokens":1095,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":526,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1095,"cache_read_input_tokens":530195,"cache_creation_input_tokens":526,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":526},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7HJXNs9fYYSmBcSQCy","type":"assistant","uuid":"51919dfc-d2f0-488a-ba6a-1d5ac8c87808","timestamp":"2026-07-28T08:05:09.716Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"51919dfc-d2f0-488a-ba6a-1d5ac8c87808","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7HPvZvMACmckSLUSS5","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01VvGbemuAdjZh9XndrsSeME","name":"Bash","input":{"command":"cat > \"$TMPDIR/probe.omp.json\" <<'EOF'\n{\n \"$schema\": \"https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json\",\n \"version\": 4,\n \"blocks\": [\n {\n \"type\": \"prompt\",\n \"alignment\": \"left\",\n \"segments\": [\n {\n \"type\": \"http\",\n \"style\": \"plain\",\n \"foreground\": \"#ffffff\",\n \"template\": \" {{ .Body }} \",\n \"options\": { \"url\": \"http://192.0.2.1/never\", \"http_timeout\": 3000 }\n }\n ]\n }\n ]\n}\nEOF\nfor mode in \"\" \"--data-only\"; do s=$( { time -p \"$TMPDIR/omp-dataonly.exe\" config export image --config \"$TMPDIR/probe.omp.json\" --data src/prompt/testdata/fixtures/prompt.data.json $mode -o \"$TMPDIR/probe.svg\" >/dev/null 2>&1; } 2>&1 | awk '/^real/{print $2}'); echo \"mode='${mode:-live-fallthrough}' real=${s}s\"; done","description":"Demonstrate the live probe with an unreachable URL"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":526,"cache_read_input_tokens":530195,"output_tokens":1095,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":526,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1095,"cache_read_input_tokens":530195,"cache_creation_input_tokens":526,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":526},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7HJXNs9fYYSmBcSQCy","type":"assistant","uuid":"10dd5a5b-df4d-4c7c-8e0d-ccd30cbad3b5","timestamp":"2026-07-28T08:05:14.035Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"10dd5a5b-df4d-4c7c-8e0d-ccd30cbad3b5","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01VvGbemuAdjZh9XndrsSeME","type":"tool_result","content":"mode='live-fallthrough' real=3.10s\nmode='--data-only' real=0.11s","is_error":false}]},"uuid":"e36a5b7b-b6c7-45fd-af1b-0d456d425a1e","timestamp":"2026-07-28T08:05:20.057Z","toolUseResult":{"stdout":"mode='live-fallthrough' real=3.10s\nmode='--data-only' real=0.11s","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"10dd5a5b-df4d-4c7c-8e0d-ccd30cbad3b5","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e36a5b7b-b6c7-45fd-af1b-0d456d425a1e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7K7UuxQAUCJEVmM7fF","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The timing difference is the smoking gun—3.10 seconds without the flag means the `http` segment actually made a live request and waited for the timeout, while 0.11 seconds with `--data-only` shows it never executed at all. Since the segment isn't part of the bundled theme fixtures, it fell through to live execution and pulled an arbitrary URL from the config, which is exactly the vulnerability. Now I'm ready to commit this fix.\n\nBefore moving to task 2 with WebAssembly, I should figure out whether flipping the gallery and website to use `--data-only` is safe—the website has 124 renders using a hand-written flat data file, and the flag changes how flat entries are handled. Let me test one theme with the website's segment data both ways to see if the output differs. That'll tell me if it's safe to make the switch. I'll commit task 1 first, note the gallery question as something to revisit, then tackle task 2.","signature":"CAISzAsKhwEIEBgCKkAgvzzydiGaLj5osT7neCsX+Pfi+K/3l/naU+ssY4qT4hKhFdePLG3fNErTqbvDpQv5T1MHiNh2SOWHI7ZX//9KMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDPBLKzmdvTa2BH8ldhoMPdiZbxVMuuEq07NYIjDPG9ePemPf9r58Kd2YiLnDjB+iw8zPJqV7zwjrxgys8BxCLFvTDeKwBlYunWML2KUq8QkSjexgSc+jv3X5LmFJ8j33ODXm9I9xiZ/NxFUQNmosYjAWIdZcQTw7g/P2PBWOGgELCU2ZSjMqAKYBcFLEwDzuWhBSTSumOfKiXLZdQ+IfzXUDkNgX/t07ALRGKL9nR6lE7m+BTmXT7GsNKwu5PqnEVsq+vApUReY0DKek/C5gJxBZ0I7qWjzdChNIckOktMCnCmbBj7gORA/3fpHtx155MNDK8RkmAs6+udY38ryqLqewMhRp8sWhNUw3a8/fKmadcC47RuJBIKh1oaLirK8MZ08JVRy0LH2PMnnxjvqGkid1krJ1qFuX6p9HWEoda8qtaHmd8LIgi9Heo1lboMdAumjH8SNYYdDPnx2XYDV3vy6d4o8S01wkfj14/pHGtGvHfnBTKa7ZnRpSXvWJ9D91fEfkvgvOPEZmzffEroVgFqOlDRg96uYXwO11lDu/1MirMhHIBkwiI1JaNXjgrl56BBtZ7aXJtyTcXlE7AzDvu8XHQ4O4tGN0cwac74QejaH8Gm6GE6u95Kc6T5Qplazqm1HXpXbPY3H25XyC7dntR6MH+TjlGY1imBLZONQCVBdMnhByFLpe2ip17JeSbMt6IhANXv74nk0ShbeEMsO235TINqfs2cc9qqfPyT9sJou599TPJzHUo3dGZyCJfCxYyk/56pL2wVh/mKwlHwPQu5Tlu1V7OlyxAQC6OADShJNtyWmkWVPXvzdOKkEnwmAwT3KSDdNE2VZizb2C2Z/Kn0bN6XUQZR7al4p+5hpmnwT/UzaEtza0/glHP+6RgPEjNNx4T6GAT3HP+CzBiEFjHoYg8VsiGIRm4ewXHwCuTMxWQS8aY4Tk+tyr6stb6PVndngcIaTFlBR/CIdkHdP9q/cGSl/v+v8yHJ6dowAUGBnAjyJfQVTqiyoSxDixM4g9qTtaDDBjrJHLRXeIjciCcJMrUdBUklWHuRiWwFIGdKt7Gj5D0Cf5R5xri0DosYABgZcMKnoXYSn+fRV3lG3dyv7yZAk4+Sg0+r42/WnMMPG8iTIBMkEAnfDG+9+eBHLnxWo9h97M/UkXvVjJsxKIy7R0ec3pYtGBbDo5cHzndLH5oTzHV25qWkl42l2+L6pMl4lT445hYSRWa6G7WY/f8M6TB/zDFFJrpfC+wcmOWSMCphQwnqdiDIKNGvgSWFyP9oG0BnwL162iNzINnAuXhn23rHDBmnLxM9ZS65oSyykitoo2HEWzRrLChOYpyh9An7guDW3GJsB1eAJrjGQ70CkX6g1aIZiPQ3Uu9RctEnL9ivVPfbC70JY5hhWVqPiyCxCMnZcGt2+izr+p6DzR9oZXEi5/PLWSrBCb3DlD8CansFCBiZdGGFNlyogxc7hGVwFCD70P/9ikl34TM1jZzOwbw7elTATJD5dtnyxVoABqHKZRDsLBrMdACH80FaBR8Au89ho/nkeVOCjbdMEFNrXm+uk1KTHW4prowYQ3oddd21qJPU1pJshla3OTxepOmiQBE8FtEwTPd1cjbPr2XTj0NqidG8fj/PgGNfx56VXBgekAZQ6yV175xgz40VQqirwbOzOAHiAl0LKzhBhHmWd7wun1oIO9q7PlWGjqDewU1hji2TdNf+Fyn1tuyNqWBpGb9QpQdt3yWs3Gdk73TamUYXFoS2VgB2gX5gZbNyN9oS+4o0oPpejgt1akBq/mzxgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1121,"cache_read_input_tokens":530721,"output_tokens":1101,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1121,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1101,"cache_read_input_tokens":530721,"cache_creation_input_tokens":1121,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1121},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7K2EQCfzc8Uj5YfvaF","type":"assistant","uuid":"1c6a7c2b-6a83-4853-a112-3354eca0ee33","timestamp":"2026-07-28T08:05:30.966Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1c6a7c2b-6a83-4853-a112-3354eca0ee33","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7K7UuxQAUCJEVmM7fF","type":"message","role":"assistant","content":[{"type":"text","text":"That's the proof. Without the flag the `http` segment took a URL straight from config and made a real outbound request, waiting out its 3s timeout. With it, nothing.\n\n```\nlive fallthrough 3.10s ← fetched http://192.0.2.1/never\n--data-only 0.11s ← no request\n```\n\nThat segment isn't in the fixture, so it fell through — exactly the case where \"we always use the data\" wasn't true."}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1121,"cache_read_input_tokens":530721,"output_tokens":1101,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1121,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1101,"cache_read_input_tokens":530721,"cache_creation_input_tokens":1121,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1121},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7K2EQCfzc8Uj5YfvaF","type":"assistant","uuid":"c9fc4ead-ebf2-4b97-9eae-8188e4a06838","timestamp":"2026-07-28T08:05:31.734Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c9fc4ead-ebf2-4b97-9eae-8188e4a06838","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7K7UuxQAUCJEVmM7fF","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01A1nc3TbpRJXFBukArsaiwN","name":"Bash","input":{"command":"git add -A src/ && git commit -q -F - <<'EOF'\nfeat(config): let a render refuse to touch the machine\n\nA --data replay was only ever hermetic when the file happened to cover\nevery configured segment. restoreData returned false on a missing key and\nexecution carried on into writer.Enabled(), so an uncovered segment ran\nfor real - and DataKey() is the alias when one is set, so renaming a\nsegment in a config walks away from its own recorded entry and probes.\n\nDataOnly makes the file the boundary rather than the default. A missing\nkey now means the segment is absent, and a flat hand-written entry\napplies on its own instead of being overlaid onto live-derived state.\nOff for an ordinary prompt render, where falling through is exactly\nright; --data-only turns it on, and it contradicts --data-derive, which\nis now an error rather than a silent precedence.\n\nMeasured with a config whose http segment points at 192.0.2.1, a\nnon-routable TEST-NET-1 address, against a fixture that does not cover\nit: 3.10s without the flag, because the segment fetched the URL out of\nthe config and waited out its own timeout, against 0.11s with it.\n\nThe tests pin this against a mock that stubs nothing Session.Enabled()\nneeds, so a fall-through panics instead of quietly passing - removing\nthe guard makes all three fail on that panic.\nEOF\ngit log --oneline -1","description":"Commit the data-only enforcement"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1121,"cache_read_input_tokens":530721,"output_tokens":1101,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1121,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1101,"cache_read_input_tokens":530721,"cache_creation_input_tokens":1121,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1121},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7K2EQCfzc8Uj5YfvaF","type":"assistant","uuid":"042e95d8-5219-4c6b-ad44-9371a29121ab","timestamp":"2026-07-28T08:05:37.953Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"042e95d8-5219-4c6b-ad44-9371a29121ab","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01A1nc3TbpRJXFBukArsaiwN","type":"tool_result","content":"404214e2 feat(config): let a render refuse to touch the machine","is_error":false}]},"uuid":"d0f0ec6e-226b-4078-835a-7637f071b805","timestamp":"2026-07-28T08:05:48.806Z","toolUseResult":{"stdout":"404214e2 feat(config): let a render refuse to touch the machine","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"042e95d8-5219-4c6b-ad44-9371a29121ab","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d0f0ec6e-226b-4078-835a-7637f071b805","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7MF773bvGpr9mxiiV2","type":"message","role":"assistant","content":[{"type":"text","text":"Task 1 done. On to task 2 — the WASM build. First, measuring what actually blocks it and what the payload would be:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1128,"cache_read_input_tokens":531842,"output_tokens":199,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1128,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":199,"cache_read_input_tokens":531842,"cache_creation_input_tokens":1128,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1128},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7M9EtTLVt7KojCfemX","type":"assistant","uuid":"945edcbf-e782-4071-9a77-b9671d0a8ade","timestamp":"2026-07-28T08:05:53.036Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"945edcbf-e782-4071-9a77-b9671d0a8ade","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7MF773bvGpr9mxiiV2","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01BYL8e4kbPjBSyEAnLy7Xr4","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && GOOS=js GOARCH=wasm go build -o /dev/null ./svg/ ./terminal/ ./color/ 2>&1 | head -20; echo \"--- exit: $? ---\"","description":"Check which packages block the wasm build"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1128,"cache_read_input_tokens":531842,"output_tokens":199,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1128,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":199,"cache_read_input_tokens":531842,"cache_creation_input_tokens":1128,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1128},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7M9EtTLVt7KojCfemX","type":"assistant","uuid":"1bd84101-e8a4-48aa-8946-31a97e1ef19f","timestamp":"2026-07-28T08:05:58.743Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1bd84101-e8a4-48aa-8946-31a97e1ef19f","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01BYL8e4kbPjBSyEAnLy7Xr4","type":"tool_result","content":"# github.com/jandedobbeleer/oh-my-posh/src/runtime/battery\nruntime\\battery\\battery_windows_nix.go:55:20: undefined: systemGetAll\n# github.com/jandedobbeleer/oh-my-posh/src/runtime/jobs\nruntime\\jobs\\jobs_other.go:27:41: unknown field Setpgid in struct literal of type syscall.SysProcAttr\n--- exit: 0 ---","is_error":false}]},"uuid":"956c0eb1-4702-4769-9d7d-85f22a0b6ee6","timestamp":"2026-07-28T08:06:02.065Z","toolUseResult":{"stdout":"# github.com/jandedobbeleer/oh-my-posh/src/runtime/battery\nruntime\\battery\\battery_windows_nix.go:55:20: undefined: systemGetAll\n# github.com/jandedobbeleer/oh-my-posh/src/runtime/jobs\nruntime\\jobs\\jobs_other.go:27:41: unknown field Setpgid in struct literal of type syscall.SysProcAttr\n--- exit: 0 ---","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"1bd84101-e8a4-48aa-8946-31a97e1ef19f","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"956c0eb1-4702-4769-9d7d-85f22a0b6ee6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7NJHdc2hCjWKCGHCar","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01ErifhAr2DE1qAmLi6Sqnqt","name":"Bash","input":{"command":"ls runtime/battery/ runtime/jobs/ && echo \"=== build tags ===\" && head -3 runtime/battery/battery_windows_nix.go runtime/jobs/jobs_other.go","description":"Inspect the blocking files and their build tags"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":358,"cache_read_input_tokens":532970,"output_tokens":148,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":358,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":148,"cache_read_input_tokens":532970,"cache_creation_input_tokens":358,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":358},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7N7uJQFvegEM2hDeF9","type":"assistant","uuid":"2c81d129-c7de-4c0d-98b6-2dc4c459cbe7","timestamp":"2026-07-28T08:06:07.301Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2c81d129-c7de-4c0d-98b6-2dc4c459cbe7","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01ErifhAr2DE1qAmLi6Sqnqt","type":"tool_result","content":"runtime/battery/:\nbattery.go\nbattery_darwin.go\nbattery_darwin_test.go\nbattery_linux.go\nbattery_netbsd.go\nbattery_openandfreebsd.go\nbattery_openandfreebsd_test.go\nbattery_windows.go\nbattery_windows_nix.go\nbattery_windows_nix_test.go\nerrors.go\nerrors_test.go\n\nruntime/jobs/:\njobs_common.go\njobs_other.go\njobs_windows.go\njobs_windows_test.go\n=== build tags ===\n==> runtime/battery/battery_windows_nix.go <==\n//go:build !darwin && !netbsd && !openbsd && !freebsd\n\npackage battery\n\n==> runtime/jobs/jobs_other.go <==\n//go:build !windows\n\npackage jobs","is_error":false}]},"uuid":"04f1092f-7667-48de-8956-32ad1ca0a101","timestamp":"2026-07-28T08:06:08.275Z","toolUseResult":{"stdout":"runtime/battery/:\nbattery.go\nbattery_darwin.go\nbattery_darwin_test.go\nbattery_linux.go\nbattery_netbsd.go\nbattery_openandfreebsd.go\nbattery_openandfreebsd_test.go\nbattery_windows.go\nbattery_windows_nix.go\nbattery_windows_nix_test.go\nerrors.go\nerrors_test.go\n\nruntime/jobs/:\njobs_common.go\njobs_other.go\njobs_windows.go\njobs_windows_test.go\n=== build tags ===\n==> runtime/battery/battery_windows_nix.go <==\n//go:build !darwin && !netbsd && !openbsd && !freebsd\n\npackage battery\n\n==> runtime/jobs/jobs_other.go <==\n//go:build !windows\n\npackage jobs","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"2c81d129-c7de-4c0d-98b6-2dc4c459cbe7","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"04f1092f-7667-48de-8956-32ad1ca0a101","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7Ngkjj5LzyFA8VwK6x","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm seeing the issue with the build tags — `battery_windows_nix.go` excludes Darwin and BSD systems but includes JavaScript/WebAssembly, yet it depends on `systemGetAll` which only exists in the Windows and Linux implementations. For JavaScript, neither gets compiled, leaving it undefined. Similarly, `jobs_other.go` matches JavaScript but tries to use `syscall.SysProcAttr` which isn't available on that platform.\n\nThe fix is to add `&& !js` exclusions to both files and create stub implementations for JavaScript that return appropriate \"not supported\" responses.","signature":"CAIS7AkKhwEIEBgCKkA3H+/utPt7IMZu3crd0itfpFvxj6wkYbYo+hUQ2xdmQIeBoUxgcHAHL9ATY40i2j4WFyjSJovS2ttqp/cpbokZMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDMls+z9LmSPYVvxh1BoMOv2QFo+3FDLOS2+3IjDrwmvu6vPuEnLuq6Dbz2ZQOsCvHHp70wAO6k91G1zXHhvps22JTVoJhloQoobJp9IqkQjnieU3XjG5rHXQ6e03tyo9mkxlJK1JGOP55Aqb73SUNPTGuTwUmoK34gs8856MEHBFApV2WiBdfbLnRNHR1m6gBJ5mJrb0H9nr3siHDh0Q70a5AC7Z4aLg1qsap7s3k+tH5sc+gaZM5bPq83BZbLfZsFUr7I/9Wd5CGrnkFVG9TxeF/ArNXQkkRe0DfwP7vbnFiHJhBCnPQqgf1jldowjUkiJJHp+NP59QHxx9ZcMynXuN4RYcNUqHo/wrgraGHOZnrms3gt/7tjr2eBg0ej/Eq8De/wChXpe7Zy7OVyOriYs9hKAinZRk/NtNoSKJNOvoD0mhD1m9NPAriUB4p2TujRe+Tpi6RZ/phcyEXB1Na6qAcxxfoXIMsP+S+/TGqjNKwiK5Eil0CmiR//BJeET5At0d7j6dpLkab5ebXJOwLkYVzvjTDP3xkaz2I1UHZf+DZcFfGFHmNjZtevs/dRWfcNV9YXhlG19IbiurTWhFBHzK84V88ItMxikvLTrKWLzmR3lR6vqSB9YJ4P80yhXEa74pqi2LxVmxal9XHwYiU6umqoWSgL+djS20oNac2AJmYWNZ6Ws1NNiNPu0wCCmEqzj5XznaTHrenjJF/1XmxydOjHZ1eIOVMoEXpZAPY5ROkbP7DyeWm9aSKzXo0gA3dPOUtpiCAbTt+Nr7VNNoylVPYjO55yqUmvJqDGybact87pBhODLF8ynYfdMhpzfBebnu5Em3EII5UKhktdfqtnJ+frW9z3B6dTdUV+Joi/PwHngHfqQFXG3xIP+I+as//WKwg6ZEE3SvyhTNjyKuRgjSAz8J4BCrVPkfa+xgTJYKIBvk1YWgkSI7sHQnm8noe5mjp2ZgH4bX3EcCYlbzCO4dMHkGJ1ivZRAEHOucCP2lAxVK/TREGYfahDq0K4DC2BheZBJzrA4OBNoQ4jzWm7ia9W3tGrOrSaImNtNAyPLjiU3E1NekWYXlAV8sHp83ObYxy32QaGegtkOOm8w+rR+IL04CcWoPhL2UJ0N8udLLXRBlWKgPCSV2PrU3HRmB4Xd6WJDmnBuF8EGLK5B98tkBl/0ahFmPdNjdQIjzNMgVqPrM5GV48XK9Lvrz9hIMJDu3PzRp3uaVa/nMipwpKMPShIBQ9+Vq3B9aRBX7lFQdv4CEN8o8qkqM3pweiiSwMv7GFyXwbfO4sqZGdx/rC0KEun1B7OWVv+8fXA78toMDeLUkuHkrx3XpobYYkamQTbz/sgxaaoDu715VgIM8tTeh4f7v4ar78iPg1NE4MsJQ0EhHn/oYP4UtxL9fZqctYkG1Ekl0nCbC//9oL1aFRronoG71ylpDWIZFdsrQJIQWu/1kls5NfuhSvK+wvhmTnOSdd+ryO/udHshHuwj/VjUYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":416,"cache_read_input_tokens":533328,"output_tokens":589,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":416,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":589,"cache_read_input_tokens":533328,"cache_creation_input_tokens":416,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":416},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7NaMWyVLC67erFPdba","type":"assistant","uuid":"e9f4b7f2-8d84-4bd3-b861-828dc2b0f0e6","timestamp":"2026-07-28T08:06:18.501Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e9f4b7f2-8d84-4bd3-b861-828dc2b0f0e6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7Ngkjj5LzyFA8VwK6x","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_015F84HFPX7SLKc2f41wJJZy","name":"Bash","input":{"command":"grep -rn \"func systemGetAll\" runtime/battery/ && echo \"=== battery_windows_nix.go ===\" && cat runtime/battery/battery_windows_nix.go && echo \"=== jobs_other.go ===\" && cat runtime/jobs/jobs_other.go","description":"Read the files needing js stubs"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":416,"cache_read_input_tokens":533328,"output_tokens":589,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":416,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":589,"cache_read_input_tokens":533328,"cache_creation_input_tokens":416,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":416},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7NaMWyVLC67erFPdba","type":"assistant","uuid":"4d928d47-7188-4c3c-89fd-552dc57fd768","timestamp":"2026-07-28T08:06:18.502Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4d928d47-7188-4c3c-89fd-552dc57fd768","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_015F84HFPX7SLKc2f41wJJZy","type":"tool_result","content":"runtime/battery/battery_linux.go:137:func systemGetAll() ([]*battery, error) {\nruntime/battery/battery_windows.go:312:func systemGetAll() ([]*battery, error) {\n=== battery_windows_nix.go ===\n//go:build !darwin && !netbsd && !openbsd && !freebsd\n\npackage battery\n\nimport (\n\t\"math\"\n)\n\ntype battery struct {\n\t// Current battery state.\n\tState State\n\t// Current (momentary) capacity (in mWh).\n\tCurrent float64\n\t// Last known full capacity (in mWh).\n\tFull float64\n\t// Current voltage (in V).\n\tVoltage float64\n}\n\nfunc mapMostLogicalState(currentState, newState State) State {\n\tswitch currentState {\n\tcase Discharging, NotCharging:\n\t\treturn Discharging\n\tcase Empty:\n\t\treturn newState\n\tcase Charging:\n\t\tif newState == Discharging {\n\t\t\treturn Discharging\n\t\t}\n\t\treturn Charging\n\tcase Unknown:\n\t\treturn newState\n\tcase Full:\n\t\treturn newState\n\t}\n\treturn newState\n}\n\nfunc Get() (*Info, error) {\n\tparseBatteryInfo := func(batteries []*battery) *Info {\n\t\tvar info Info\n\t\tvar current, total float64\n\t\tvar state State\n\t\tfor _, bt := range batteries {\n\t\t\tcurrent += bt.Current\n\t\t\ttotal += bt.Full\n\t\t\tstate = mapMostLogicalState(state, bt.State)\n\t\t}\n\t\tbatteryPercentage := current / total * 100\n\t\tinfo.Percentage = int(math.Min(100, batteryPercentage))\n\t\tinfo.State = state\n\t\treturn &info\n\t}\n\n\tbatteries, err := systemGetAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn parseBatteryInfo(batteries), nil\n}\n=== jobs_other.go ===\n//go:build !windows\n\npackage jobs\n\nimport (\n\t\"fmt\"\n\t\"os/exec\"\n\t\"strings\"\n\t\"sync\"\n\t\"syscall\"\n)\n\nvar (\n\tprocessesMu sync.Mutex\n\tprocesses = map[uint64]map[int]struct{}{}\n)\n\nfunc CreateJobForGoroutine(_ string) error { return nil }\nfunc AssignPidToGoroutineJob(_ int) error { return nil }\n\n// No-op on non-Windows platforms, since there is no Job object to release. Exists so callers\n// (e.g. config.Segment.Execute) can unconditionally defer the close without platform-specific branching.\nfunc CloseGoroutineJob() {}\n\n// Runs the child in its own process group so it can be killed with a group kill (negative pid).\nfunc SetProcessGroup(cmd *exec.Cmd) {\n\tcmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}\n}\n\nfunc RegisterProcess(pid int) {\n\tgid := CurrentGID()\n\tprocessesMu.Lock()\n\tm := processes[gid]\n\tif m == nil {\n\t\tm = map[int]struct{}{}\n\t\tprocesses[gid] = m\n\t}\n\tm[pid] = struct{}{}\n\tprocessesMu.Unlock()\n}\n\nfunc UnregisterProcess(pid int) {\n\tgid := CurrentGID()\n\tprocessesMu.Lock()\n\tif m, ok := processes[gid]; ok {\n\t\tdelete(m, pid)\n\t\tif len(m) == 0 {\n\t\t\tdelete(processes, gid)\n\t\t}\n\t}\n\tprocessesMu.Unlock()\n}\n\nfunc KillGoroutineChildren(gid uint64) error {\n\tprocessesMu.Lock()\n\tpidsMap, ok := processes[gid]\n\tif !ok || len(pidsMap) == 0 {\n\t\tprocessesMu.Unlock()\n\t\treturn nil\n\t}\n\tpids := make([]int, 0, len(pidsMap))\n\tfor pid := range pidsMap {\n\t\tpids = append(pids, pid)\n\t}\n\tdelete(processes, gid)\n\tprocessesMu.Unlock()\n\n\tvar errs []string\n\tfor _, pid := range pids {\n\t\t// negative pid kills the process group\n\t\tif err := syscall.Kill(-pid, syscall.SIGKILL); err != nil {\n\t\t\terrs = append(errs, fmt.Sprintf(\"kill -%d: %v\", pid, err))\n\t\t}\n\t}\n\n\tif len(errs) > 0 {\n\t\treturn fmt.Errorf(\"failed to kill child processes: %s\", strings.Join(errs, \"; \"))\n\t}\n\treturn nil\n}","is_error":false}]},"uuid":"48226b4b-02f6-490f-b82b-94d91a172392","timestamp":"2026-07-28T08:06:19.522Z","toolUseResult":{"stdout":"runtime/battery/battery_linux.go:137:func systemGetAll() ([]*battery, error) {\nruntime/battery/battery_windows.go:312:func systemGetAll() ([]*battery, error) {\n=== battery_windows_nix.go ===\n//go:build !darwin && !netbsd && !openbsd && !freebsd\n\npackage battery\n\nimport (\n\t\"math\"\n)\n\ntype battery struct {\n\t// Current battery state.\n\tState State\n\t// Current (momentary) capacity (in mWh).\n\tCurrent float64\n\t// Last known full capacity (in mWh).\n\tFull float64\n\t// Current voltage (in V).\n\tVoltage float64\n}\n\nfunc mapMostLogicalState(currentState, newState State) State {\n\tswitch currentState {\n\tcase Discharging, NotCharging:\n\t\treturn Discharging\n\tcase Empty:\n\t\treturn newState\n\tcase Charging:\n\t\tif newState == Discharging {\n\t\t\treturn Discharging\n\t\t}\n\t\treturn Charging\n\tcase Unknown:\n\t\treturn newState\n\tcase Full:\n\t\treturn newState\n\t}\n\treturn newState\n}\n\nfunc Get() (*Info, error) {\n\tparseBatteryInfo := func(batteries []*battery) *Info {\n\t\tvar info Info\n\t\tvar current, total float64\n\t\tvar state State\n\t\tfor _, bt := range batteries {\n\t\t\tcurrent += bt.Current\n\t\t\ttotal += bt.Full\n\t\t\tstate = mapMostLogicalState(state, bt.State)\n\t\t}\n\t\tbatteryPercentage := current / total * 100\n\t\tinfo.Percentage = int(math.Min(100, batteryPercentage))\n\t\tinfo.State = state\n\t\treturn &info\n\t}\n\n\tbatteries, err := systemGetAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn parseBatteryInfo(batteries), nil\n}\n=== jobs_other.go ===\n//go:build !windows\n\npackage jobs\n\nimport (\n\t\"fmt\"\n\t\"os/exec\"\n\t\"strings\"\n\t\"sync\"\n\t\"syscall\"\n)\n\nvar (\n\tprocessesMu sync.Mutex\n\tprocesses = map[uint64]map[int]struct{}{}\n)\n\nfunc CreateJobForGoroutine(_ string) error { return nil }\nfunc AssignPidToGoroutineJob(_ int) error { return nil }\n\n// No-op on non-Windows platforms, since there is no Job object to release. Exists so callers\n// (e.g. config.Segment.Execute) can unconditionally defer the close without platform-specific branching.\nfunc CloseGoroutineJob() {}\n\n// Runs the child in its own process group so it can be killed with a group kill (negative pid).\nfunc SetProcessGroup(cmd *exec.Cmd) {\n\tcmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}\n}\n\nfunc RegisterProcess(pid int) {\n\tgid := CurrentGID()\n\tprocessesMu.Lock()\n\tm := processes[gid]\n\tif m == nil {\n\t\tm = map[int]struct{}{}\n\t\tprocesses[gid] = m\n\t}\n\tm[pid] = struct{}{}\n\tprocessesMu.Unlock()\n}\n\nfunc UnregisterProcess(pid int) {\n\tgid := CurrentGID()\n\tprocessesMu.Lock()\n\tif m, ok := processes[gid]; ok {\n\t\tdelete(m, pid)\n\t\tif len(m) == 0 {\n\t\t\tdelete(processes, gid)\n\t\t}\n\t}\n\tprocessesMu.Unlock()\n}\n\nfunc KillGoroutineChildren(gid uint64) error {\n\tprocessesMu.Lock()\n\tpidsMap, ok := processes[gid]\n\tif !ok || len(pidsMap) == 0 {\n\t\tprocessesMu.Unlock()\n\t\treturn nil\n\t}\n\tpids := make([]int, 0, len(pidsMap))\n\tfor pid := range pidsMap {\n\t\tpids = append(pids, pid)\n\t}\n\tdelete(processes, gid)\n\tprocessesMu.Unlock()\n\n\tvar errs []string\n\tfor _, pid := range pids {\n\t\t// negative pid kills the process group\n\t\tif err := syscall.Kill(-pid, syscall.SIGKILL); err != nil {\n\t\t\terrs = append(errs, fmt.Sprintf(\"kill -%d: %v\", pid, err))\n\t\t}\n\t}\n\n\tif len(errs) > 0 {\n\t\treturn fmt.Errorf(\"failed to kill child processes: %s\", strings.Join(errs, \"; \"))\n\t}\n\treturn nil\n}","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"4d928d47-7188-4c3c-89fd-552dc57fd768","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"48226b4b-02f6-490f-b82b-94d91a172392","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"7a06150a-3835-4055-98a7-a13da6600da4","timestamp":"2026-07-28T08:06:19.526Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7a06150a-3835-4055-98a7-a13da6600da4","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7PWrTWcSKWcwpfMwdD","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"For the battery package, I need to add a build constraint to the existing Windows/Unix implementation and create a JavaScript stub that returns a not-implemented error. Similarly, for jobs, I'll constrain the current implementation and add a JavaScript version with stub methods like `SetProcessGroup` and `KillGoroutineChildren` that are no-ops since browsers don't have process management.\n\nI should verify that `js` is the correct GOOS value and that the `!js` build tag works as expected. Let me check errors.go to find an appropriate error to return, then test both packages before moving on to see what else needs fixing in the prompt directory.","signature":"CAIS1AcKhwEIEBgCKkABgN+YzP9ysDdLE9NvgP6BdYfxpK2A79bWsynr2UY8oYDg1Qo9fKfnB+hNh4LNnNA8qTBrZRK8Ry+BVtVaae0FMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDFY+4bGX/p/56qEc1RoMFjvra6zWQkMBT8rKIjAnWEwRQUMKSu6q+ii/FCt3BypRQCPgRsAPGHAMf7DvOyR2LzJa8ttlfSb+u8i65NYq+QXuWe8HGV7GPEf6AEP3SXjurb9XCZl1WMHo9MmwliFNJQQLeQI2aBgsB12DYmZ7cbmzlDgPTPZfGhfP103seUb1L6V7UpG0ouk7yU/YqXQJH543ikLrziQOlN8TEQZKrbKCunqYk2wXHkPCG7pI57HrcTL35OX/MzN4ikUgtEa07FLMd0bljC7Qb3hIC+P4hKdES0oG9JpFyjMUCsVgRzC+BqZNog6J1HUGpbADz56HoLvNpCd+HCh84tegL0QG1vzXcGiKiMbeub0bjbXgR9AjKhZJ/JpNjP4G48GR3CEvEBG8vrA9ocNbuxrrG4Byejrhx0vRovl3A4gu6W8j21x7yxLFGosF71NaHimUWt4N3x5fvxdlYajLgeaN3DF5rUbjLsIxftdFoYDQsg2bOEeQFd+lUWRIJqHuarP7ll4T7Y9SWIDvDGz0eKHHRZuUP4rRtDx2Fc/MW2t/iT3yYNdlm6mO4X+x6y5bvWKJStO9zz6VtZokZv//SxnaSNjAfjU/tT8GexT9nxPPv2mIVFeZem67djTiCMrQZUk+lNfXoDiy4p41EAn+1nZjzQmMsxY5Ga9EZma72YNCJns+buckS7ts0+tE2pjIaJlyu8HtCrPi6777SFHX0o7smG7z4chvQRGszWks8vz3ke1mextkCU1TQ2faOJfDhIQxYU8DY7ozdkChqPovMGfviZTUhebz9WGpjH79ZAGqnn7cUQe8r1s5OrvTbzzyJS1J2p6NLj7wVs00nItLstwdcKJ1AzAfXs1zEHklnNcVV0DLAvcC9Yx2DxREycFV6fxgW72UH8Id87KBn7+VWnFFNtjo3Lu1L8Or0Eumn+G4OI965qI4XrLFluMXiv5x9+53k3fcRspwnbQGvLZOjA++sTaF+0iNrZRm6WbObsrv+iBW07qgmtJ12aanOzhLtEdyXLfK4a7fwB7hW5H2MBvB5uFzEjIbtFYstZqk8md83OTkiu8i+fUQ/b4meCcWg/x4vroqx/Se+kbshkTNSBgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":2169,"cache_read_input_tokens":533744,"output_tokens":456,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2169,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":456,"cache_read_input_tokens":533744,"cache_creation_input_tokens":2169,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2169},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7PQR1ExWRwGAekUv57","type":"assistant","uuid":"be474a01-8ab4-4cc0-8f48-bc06b2d31163","timestamp":"2026-07-28T08:06:27.697Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"be474a01-8ab4-4cc0-8f48-bc06b2d31163","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7PWrTWcSKWcwpfMwdD","type":"message","role":"assistant","content":[{"type":"text","text":"Both stubs are mechanical. Checking what error to return for battery:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":2169,"cache_read_input_tokens":533744,"output_tokens":456,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2169,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":456,"cache_read_input_tokens":533744,"cache_creation_input_tokens":2169,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2169},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7PQR1ExWRwGAekUv57","type":"assistant","uuid":"3bbf9f42-c468-47c5-babb-2494b5918f99","timestamp":"2026-07-28T08:06:27.698Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3bbf9f42-c468-47c5-babb-2494b5918f99","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7PWrTWcSKWcwpfMwdD","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01D6cCfTohZQsdL2rBsbcDMt","name":"Bash","input":{"command":"cat runtime/battery/errors.go | head -30 && echo \"=== darwin Get signature ===\" && grep -n \"^func Get\" runtime/battery/*.go","description":"Check battery error types"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":2169,"cache_read_input_tokens":533744,"output_tokens":456,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2169,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":456,"cache_read_input_tokens":533744,"cache_creation_input_tokens":2169,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2169},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7PQR1ExWRwGAekUv57","type":"assistant","uuid":"13ea8312-32e7-4723-9234-e6ebe51ac54f","timestamp":"2026-07-28T08:06:27.902Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"13ea8312-32e7-4723-9234-e6ebe51ac54f","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01D6cCfTohZQsdL2rBsbcDMt","type":"tool_result","content":"// battery\n// Copyright (C) 2016-2017 Karol 'Kenji Takahashi' Woźniak\n//\n// Permission is hereby granted, free of charge, to any person obtaining\n// a copy of this software and associated documentation files (the \"Software\"),\n// to deal in the Software without restriction, including without limitation\n// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n// and/or sell copies of the Software, and to permit persons to whom the\n// Software is furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE\n// OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\npackage battery\n\nimport \"fmt\"\n\nvar ErrNotFound = fmt.Errorf(\"not found\")\n\ntype Errors []error\n\nfunc (e Errors) Error() string {\n=== darwin Get signature ===\nruntime/battery/battery_darwin.go:58:func Get() (*Info, error) {\nruntime/battery/battery_netbsd.go:11:func Get() (*Info, error) {\nruntime/battery/battery_openandfreebsd.go:46:func Get() (*Info, error) {\nruntime/battery/battery_windows_nix.go:39:func Get() (*Info, error) {","is_error":false}]},"uuid":"390938ee-61d1-4754-8668-121bca3c3774","timestamp":"2026-07-28T08:06:28.898Z","toolUseResult":{"stdout":"// battery\n// Copyright (C) 2016-2017 Karol 'Kenji Takahashi' Woźniak\n//\n// Permission is hereby granted, free of charge, to any person obtaining\n// a copy of this software and associated documentation files (the \"Software\"),\n// to deal in the Software without restriction, including without limitation\n// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n// and/or sell copies of the Software, and to permit persons to whom the\n// Software is furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE\n// OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\npackage battery\n\nimport \"fmt\"\n\nvar ErrNotFound = fmt.Errorf(\"not found\")\n\ntype Errors []error\n\nfunc (e Errors) Error() string {\n=== darwin Get signature ===\nruntime/battery/battery_darwin.go:58:func Get() (*Info, error) {\nruntime/battery/battery_netbsd.go:11:func Get() (*Info, error) {\nruntime/battery/battery_openandfreebsd.go:46:func Get() (*Info, error) {\nruntime/battery/battery_windows_nix.go:39:func Get() (*Info, error) {","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"13ea8312-32e7-4723-9234-e6ebe51ac54f","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"390938ee-61d1-4754-8668-121bca3c3774","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7QFhfAidnE3nHqPHFK","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01CWi1TXgs32q8fx9So9GdKy","name":"Bash","input":{"command":"cat runtime/battery/battery_netbsd.go","description":"Read the netbsd stub as a template"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1200,"cache_read_input_tokens":535913,"output_tokens":96,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1200,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":96,"cache_read_input_tokens":535913,"cache_creation_input_tokens":1200,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1200},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7Q5xH8GV6jyvM7z5ZV","type":"assistant","uuid":"0c052529-d3c8-422f-a417-8a9cb8912cda","timestamp":"2026-07-28T08:06:33.706Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0c052529-d3c8-422f-a417-8a9cb8912cda","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01CWi1TXgs32q8fx9So9GdKy","type":"tool_result","content":"package battery\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime/cmd\"\n)\n\nfunc Get() (*Info, error) {\n\toutput, err := cmd.Run(\"envstat\", \"-s\", \"acpibat0:charge\", \"-n\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tpercentage, err := strconv.Atoi(strings.TrimSpace(output))\n\tif err != nil {\n\t\treturn nil, errors.New(\"unable to parse battery percentage\")\n\t}\n\treturn &Info{\n\t\tPercentage: percentage,\n\t\tState: Unknown,\n\t}, nil\n}","is_error":false}]},"uuid":"a8a7d7f5-569a-4fcb-9492-594528895fea","timestamp":"2026-07-28T08:06:34.512Z","toolUseResult":{"stdout":"package battery\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime/cmd\"\n)\n\nfunc Get() (*Info, error) {\n\toutput, err := cmd.Run(\"envstat\", \"-s\", \"acpibat0:charge\", \"-n\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tpercentage, err := strconv.Atoi(strings.TrimSpace(output))\n\tif err != nil {\n\t\treturn nil, errors.New(\"unable to parse battery percentage\")\n\t}\n\treturn &Info{\n\t\tPercentage: percentage,\n\t\tState: Unknown,\n\t}, nil\n}","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"0c052529-d3c8-422f-a417-8a9cb8912cda","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a8a7d7f5-569a-4fcb-9492-594528895fea","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7Qb9wzg9xRdJFeXsSJ","type":"message","role":"assistant","content":[{"type":"text","text":"Writing the two stubs:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":326,"cache_read_input_tokens":537113,"output_tokens":313,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":326,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":313,"cache_read_input_tokens":537113,"cache_creation_input_tokens":326,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":326},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7QWdqamK6V5hoPDL9E","type":"assistant","uuid":"ef1926cd-0389-4dfa-b9c3-18f1421cf871","timestamp":"2026-07-28T08:06:37.693Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ef1926cd-0389-4dfa-b9c3-18f1421cf871","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7Qb9wzg9xRdJFeXsSJ","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01UgKDRWNqTanQAx81A9NpHp","name":"Write","input":{"file_path":"D:\\oh-my-posh\\src\\runtime\\battery\\battery_js.go","content":"//go:build js\n\npackage battery\n\nimport \"errors\"\n\n// A browser has no battery interface this package can reach - navigator.getBattery\n// is a JavaScript API, not a syscall, and it is deprecated and gated behind\n// permissions besides. The wasm build exists to render a prompt from recorded data\n// (see runtime.Flags.DataOnly), where no segment probes the machine at all, so\n// returning an error here is the honest answer rather than a reason to bridge into\n// JS. A battery segment rendered from a data file never calls this.\nfunc Get() (*Info, error) {\n\treturn nil, errors.New(\"battery information is not available in a browser\")\n}\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":326,"cache_read_input_tokens":537113,"output_tokens":313,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":326,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":313,"cache_read_input_tokens":537113,"cache_creation_input_tokens":326,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":326},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7QWdqamK6V5hoPDL9E","type":"assistant","uuid":"d1c8f9c1-f449-4c32-9b2b-5f73625c22a2","timestamp":"2026-07-28T08:06:40.774Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d1c8f9c1-f449-4c32-9b2b-5f73625c22a2","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01UgKDRWNqTanQAx81A9NpHp","type":"tool_result","content":"File created successfully at: D:\\oh-my-posh\\src\\runtime\\battery\\battery_js.go (file state is current in your context — no need to Read it back)"}]},"uuid":"628d9533-0d2c-4dfa-b1e6-da19aee58c7d","timestamp":"2026-07-28T08:06:40.792Z","toolUseResult":{"type":"create","filePath":"D:\\oh-my-posh\\src\\runtime\\battery\\battery_js.go","content":"//go:build js\n\npackage battery\n\nimport \"errors\"\n\n// A browser has no battery interface this package can reach - navigator.getBattery\n// is a JavaScript API, not a syscall, and it is deprecated and gated behind\n// permissions besides. The wasm build exists to render a prompt from recorded data\n// (see runtime.Flags.DataOnly), where no segment probes the machine at all, so\n// returning an error here is the honest answer rather than a reason to bridge into\n// JS. A battery segment rendered from a data file never calls this.\nfunc Get() (*Info, error) {\n\treturn nil, errors.New(\"battery information is not available in a browser\")\n}\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"d1c8f9c1-f449-4c32-9b2b-5f73625c22a2","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"628d9533-0d2c-4dfa-b1e6-da19aee58c7d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7R3s3WbwfELpb25xgV","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01KVn47k1Vc7CXcqWCD8EGaN","name":"Write","input":{"file_path":"D:\\oh-my-posh\\src\\runtime\\jobs\\jobs_js.go","content":"//go:build js\n\npackage jobs\n\nimport \"os/exec\"\n\n// A browser has no processes to group, register or kill, so every one of these is\n// a no-op rather than a stub that would need syscall support js/wasm does not have\n// (jobs_other.go reaches for SysProcAttr.Setpgid, which the js syscall package has\n// no field for). Keeping the full API surface means callers - config.Segment.Execute\n// defers CloseGoroutineJob unconditionally - need no build-tagged branching of their\n// own.\n//\n// Nothing here should ever run in a wasm build regardless: it exists to render from\n// recorded data (see runtime.Flags.DataOnly), which never spawns a command.\n\nfunc CreateJobForGoroutine(_ string) error { return nil }\nfunc AssignPidToGoroutineJob(_ int) error { return nil }\nfunc CloseGoroutineJob() {}\nfunc SetProcessGroup(_ *exec.Cmd) {}\nfunc RegisterProcess(_ int) {}\nfunc UnregisterProcess(_ int) {}\n\nfunc KillGoroutineChildren(_ uint64) error { return nil }\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":368,"cache_read_input_tokens":537439,"output_tokens":475,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":368,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":475,"cache_read_input_tokens":537439,"cache_creation_input_tokens":368,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":368},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7Qxx7rirVPipjukq3D","type":"assistant","uuid":"57798eaa-4967-4d62-98ad-49b377b68983","timestamp":"2026-07-28T08:06:49.197Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"57798eaa-4967-4d62-98ad-49b377b68983","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01KVn47k1Vc7CXcqWCD8EGaN","type":"tool_result","content":"File created successfully at: D:\\oh-my-posh\\src\\runtime\\jobs\\jobs_js.go (file state is current in your context — no need to Read it back)"}]},"uuid":"e39ae9c5-e6e7-4332-97f3-97752d4e10d8","timestamp":"2026-07-28T08:06:49.228Z","toolUseResult":{"type":"create","filePath":"D:\\oh-my-posh\\src\\runtime\\jobs\\jobs_js.go","content":"//go:build js\n\npackage jobs\n\nimport \"os/exec\"\n\n// A browser has no processes to group, register or kill, so every one of these is\n// a no-op rather than a stub that would need syscall support js/wasm does not have\n// (jobs_other.go reaches for SysProcAttr.Setpgid, which the js syscall package has\n// no field for). Keeping the full API surface means callers - config.Segment.Execute\n// defers CloseGoroutineJob unconditionally - need no build-tagged branching of their\n// own.\n//\n// Nothing here should ever run in a wasm build regardless: it exists to render from\n// recorded data (see runtime.Flags.DataOnly), which never spawns a command.\n\nfunc CreateJobForGoroutine(_ string) error { return nil }\nfunc AssignPidToGoroutineJob(_ int) error { return nil }\nfunc CloseGoroutineJob() {}\nfunc SetProcessGroup(_ *exec.Cmd) {}\nfunc RegisterProcess(_ int) {}\nfunc UnregisterProcess(_ int) {}\n\nfunc KillGoroutineChildren(_ uint64) error { return nil }\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"57798eaa-4967-4d62-98ad-49b377b68983","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e39ae9c5-e6e7-4332-97f3-97752d4e10d8","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7RjciSs5zm2fsu68Nx","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01KPdXek6GUvqs7CxBgyxqYT","name":"Bash","input":{"command":"sed -i '1s|.*|//go:build !darwin \\&\\& !netbsd \\&\\& !openbsd \\&\\& !freebsd \\&\\& !js|' runtime/battery/battery_windows_nix.go && sed -i '1s|.*|//go:build !windows \\&\\& !js|' runtime/jobs/jobs_other.go && head -1 runtime/battery/battery_windows_nix.go runtime/jobs/jobs_other.go && echo \"=== wasm build ===\" && GOOS=js GOARCH=wasm go build -o /dev/null ./svg/ ./terminal/ ./color/ ./config/ 2>&1 | head -20","description":"Add js exclusions and retest"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":532,"cache_read_input_tokens":537807,"output_tokens":297,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":532,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":297,"cache_read_input_tokens":537807,"cache_creation_input_tokens":532,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":532},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7RbmvrmLUNvM2DXQ7S","type":"assistant","uuid":"93db1128-89b3-45d8-a41f-ea91d3ba8be8","timestamp":"2026-07-28T08:06:55.780Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"93db1128-89b3-45d8-a41f-ea91d3ba8be8","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01KPdXek6GUvqs7CxBgyxqYT","type":"tool_result","content":"==> runtime/battery/battery_windows_nix.go <==\n//go:build !darwin && !netbsd && !openbsd && !freebsd && !js\n\n==> runtime/jobs/jobs_other.go <==\n//go:build !windows && !js\n=== wasm build ===\n# github.com/charmbracelet/bubbletea\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tea.go:323:8: p.listenForResize undefined (type *Program has no field or method listenForResize)\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tea.go:409:8: undefined: suspendSupported\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tea.go:608:13: undefined: openInputTTY\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tea.go:617:13: undefined: openInputTTY\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tty.go:19:2: undefined: suspendProcess\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tty.go:31:14: p.initInput undefined (type *Program has no field or method initInput)\n# github.com/jandedobbeleer/oh-my-posh/src/runtime\nruntime\\terminal_unix.go:168:14: undefined: unix.Access\nruntime\\terminal_unix.go:168:33: undefined: unix.W_OK","is_error":false}]},"uuid":"a42736af-428d-469a-a566-1a7a14d2d15f","timestamp":"2026-07-28T08:06:59.880Z","toolUseResult":{"stdout":"==> runtime/battery/battery_windows_nix.go <==\n//go:build !darwin && !netbsd && !openbsd && !freebsd && !js\n\n==> runtime/jobs/jobs_other.go <==\n//go:build !windows && !js\n=== wasm build ===\n# github.com/charmbracelet/bubbletea\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tea.go:323:8: p.listenForResize undefined (type *Program has no field or method listenForResize)\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tea.go:409:8: undefined: suspendSupported\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tea.go:608:13: undefined: openInputTTY\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tea.go:617:13: undefined: openInputTTY\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tty.go:19:2: undefined: suspendProcess\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tty.go:31:14: p.initInput undefined (type *Program has no field or method initInput)\n# github.com/jandedobbeleer/oh-my-posh/src/runtime\nruntime\\terminal_unix.go:168:14: undefined: unix.Access\nruntime\\terminal_unix.go:168:33: undefined: unix.W_OK","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"93db1128-89b3-45d8-a41f-ea91d3ba8be8","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a42736af-428d-469a-a566-1a7a14d2d15f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7SW5AB48c7PkcHtRtM","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I've got three modules building now after fixing the battery and jobs issues, but I'm hitting two blockers: `bubbletea` is being pulled in somewhere through the config dependency chain, and `terminal_unix.go` is failing because `unix.Access` and `unix.W_OK` aren't available in the JavaScript build target. Let me trace where bubbletea's coming from in the config imports and check the build tags on that Unix file.","signature":"CAIS1wQKhwEIEBgCKkC0Kpa2qZ2G78dBGZi1fdiZzS85H3QK8x7M1WjwrQF7qGSL7ByrWNJoxLhTAOkX1J3TePOIzyUTSwh+jp88AaSUMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDIFdas6CSNLkDhEmoBoMuBURfFIcBAxs1PpvIjAnPWkFBxhR8HfO3L2wmy+ULL/4bdjWgpDRZjdYKnvYrtftoMnqOszwRzUOiuzkC7Mq/ALH+V2D1avtJG2Ono8FZ5sDWCmyv3BpJC/mURS6hLr8dKNYnbKto8Qi3IB242DBYtvCtRPkNLQeUZB0rsJmhxwLoR9Vdegutm+CQxGkTuFzza7IwqzmcMGx4v9s8kL747GyIE5gXIC63WkAAHJdPRhS876223t6eFUzJG8FTbew/BjTQ/nIPH7pDVAgkLlc9RsedNi8gmrsWCUpmlWDaNvjm2Fg0fqWHKRw7FYBhID3w8vJtCc+R7G3Ag8Qr9BaPWWFZXMcgqDEvmvqucOcVewBeR4b9a+BCOIm3FFpdat006n90KhH8jj8tiXXNJf/qnf/hJQwK71579Is+nB+zb9hHFUvjUcfCQPZ260jrfWWwzicX0CwuCVs1yzGmYPLB5RMFAGtvKw5SGs2ynHEXKxMUlhX79bLPs8j1Dg9S2oH/R7BUeAQHimTBjptyhU7ANLKvh/lxDbP15Ghy488wFrPg/yGxtuN4yFiNuZBn7R9rrDsj+3f1MvyipiynhgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":895,"cache_read_input_tokens":538339,"output_tokens":378,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":895,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":378,"cache_read_input_tokens":538339,"cache_creation_input_tokens":895,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":895},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7SPW2BNhzRpHQGoZrX","type":"assistant","uuid":"8b3b904f-8262-42ec-853a-16becac042d7","timestamp":"2026-07-28T08:07:09.273Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8b3b904f-8262-42ec-853a-16becac042d7","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7SW5AB48c7PkcHtRtM","type":"message","role":"assistant","content":[{"type":"text","text":"Progress — `svg`, `terminal` and `color` now build for wasm. Two blockers left:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":895,"cache_read_input_tokens":538339,"output_tokens":378,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":895,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":378,"cache_read_input_tokens":538339,"cache_creation_input_tokens":895,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":895},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7SPW2BNhzRpHQGoZrX","type":"assistant","uuid":"f4b19ca7-a1f2-4e81-9279-1e520e7a55a3","timestamp":"2026-07-28T08:07:09.274Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f4b19ca7-a1f2-4e81-9279-1e520e7a55a3","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7SW5AB48c7PkcHtRtM","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01HVPS9GWtEwhaEQhzeu788K","name":"Bash","input":{"command":"head -1 runtime/terminal_unix.go && echo \"=== who pulls bubbletea? ===\" && grep -rln \"bubbletea\" --include=*.go . | grep -v _test | head && echo \"=== config's path to it ===\" && go list -deps ./config/ 2>/dev/null | grep -c bubbletea","description":"Find the bubbletea import path and the unix file tag"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":895,"cache_read_input_tokens":538339,"output_tokens":378,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":895,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":378,"cache_read_input_tokens":538339,"cache_creation_input_tokens":895,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":895},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7SPW2BNhzRpHQGoZrX","type":"assistant","uuid":"2f4e1a2f-24e0-474d-8c5e-aad77e7912d6","timestamp":"2026-07-28T08:07:09.459Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2f4e1a2f-24e0-474d-8c5e-aad77e7912d6","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01HVPS9GWtEwhaEQhzeu788K","type":"tool_result","content":"//go:build !windows\n=== who pulls bubbletea? ===\n./cli/auth/cli.go\n./cli/auth/copilot.go\n./cli/auth/ytmda.go\n./cli/font/tui.go\n./cli/progress/model.go\n./cli/progress/reader.go\n./cli/upgrade/tui.go\n=== config's path to it ===\n1","is_error":false}]},"uuid":"800f62b8-bc4a-4410-966a-f73dea3df291","timestamp":"2026-07-28T08:07:12.855Z","toolUseResult":{"stdout":"//go:build !windows\n=== who pulls bubbletea? ===\n./cli/auth/cli.go\n./cli/auth/copilot.go\n./cli/auth/ytmda.go\n./cli/font/tui.go\n./cli/progress/model.go\n./cli/progress/reader.go\n./cli/upgrade/tui.go\n=== config's path to it ===\n1","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"2f4e1a2f-24e0-474d-8c5e-aad77e7912d6","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"800f62b8-bc4a-4410-966a-f73dea3df291","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7TX4iLAbbpFZ863Nhn","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01LJULrzYZUBB6bjyDLaoXgo","name":"Bash","input":{"command":"go list -deps ./config/ | grep -E \"oh-my-posh/src/(cli|template|runtime)\" | head; echo \"=== which config file imports cli/* ? ===\"; grep -rn \"oh-my-posh/src/cli\" config/*.go template/*.go segments/*.go 2>/dev/null | grep -v _test | head","description":"Trace the bubbletea import chain from config"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":504,"cache_read_input_tokens":539234,"output_tokens":192,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":504,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":192,"cache_read_input_tokens":539234,"cache_creation_input_tokens":504,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":504},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7TLx1JCPJtCzwA5Hog","type":"assistant","uuid":"428b2353-9230-4440-9eb8-101c63d7b1ea","timestamp":"2026-07-28T08:07:19.474Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"428b2353-9230-4440-9eb8-101c63d7b1ea","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01LJULrzYZUBB6bjyDLaoXgo","type":"tool_result","content":"github.com/jandedobbeleer/oh-my-posh/src/runtime/path\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/battery\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/jobs\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/cmd\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/http\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime\ngithub.com/jandedobbeleer/oh-my-posh/src/template\ngithub.com/jandedobbeleer/oh-my-posh/src/cli/progress\ngithub.com/jandedobbeleer/oh-my-posh/src/cli/upgrade\ngithub.com/jandedobbeleer/oh-my-posh/src/cli/auth\n=== which config file imports cli/* ? ===\nconfig/config.go:9:\t\"github.com/jandedobbeleer/oh-my-posh/src/cli/upgrade\"\nconfig/default.go:5:\t\"github.com/jandedobbeleer/oh-my-posh/src/cli/upgrade\"\nconfig/load.go:18:\t\"github.com/jandedobbeleer/oh-my-posh/src/cli/upgrade\"\nsegments/copilot.go:8:\t\"github.com/jandedobbeleer/oh-my-posh/src/cli/auth\"\nsegments/upgrade.go:8:\t\"github.com/jandedobbeleer/oh-my-posh/src/cli/upgrade\"\nsegments/ytm.go:9:\t\"github.com/jandedobbeleer/oh-my-posh/src/cli/auth\"","is_error":false}]},"uuid":"2feb42d8-c52e-41d2-bdd0-e548036fdd9d","timestamp":"2026-07-28T08:07:22.918Z","toolUseResult":{"stdout":"github.com/jandedobbeleer/oh-my-posh/src/runtime/path\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/battery\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/jobs\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/cmd\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime/http\ngithub.com/jandedobbeleer/oh-my-posh/src/runtime\ngithub.com/jandedobbeleer/oh-my-posh/src/template\ngithub.com/jandedobbeleer/oh-my-posh/src/cli/progress\ngithub.com/jandedobbeleer/oh-my-posh/src/cli/upgrade\ngithub.com/jandedobbeleer/oh-my-posh/src/cli/auth\n=== which config file imports cli/* ? ===\nconfig/config.go:9:\t\"github.com/jandedobbeleer/oh-my-posh/src/cli/upgrade\"\nconfig/default.go:5:\t\"github.com/jandedobbeleer/oh-my-posh/src/cli/upgrade\"\nconfig/load.go:18:\t\"github.com/jandedobbeleer/oh-my-posh/src/cli/upgrade\"\nsegments/copilot.go:8:\t\"github.com/jandedobbeleer/oh-my-posh/src/cli/auth\"\nsegments/upgrade.go:8:\t\"github.com/jandedobbeleer/oh-my-posh/src/cli/upgrade\"\nsegments/ytm.go:9:\t\"github.com/jandedobbeleer/oh-my-posh/src/cli/auth\"","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"428b2353-9230-4440-9eb8-101c63d7b1ea","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2feb42d8-c52e-41d2-bdd0-e548036fdd9d","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"bf79220c-2788-4793-a33f-24624a47eea0","timestamp":"2026-07-28T08:07:22.924Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bf79220c-2788-4793-a33f-24624a47eea0","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7UBn8eBA17gcm98K3m","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm seeing a real architectural problem here: `config` is importing from `cli/upgrade`, which brings in bubbletea as a dependency, but `config` is supposed to be a core package that shouldn't depend on UI code. The issue is that `config` probably only needs the upgrade notice or configuration struct from that module, not the full TUI implementation. I could split `cli/upgrade` to separate the data structures from the interactive components.\n\nLet me check what `config` and `segments` actually use from these CLI packages to figure out how much work the fix would be.","signature":"CAIStQsKhwEIEBgCKkDm0AaJROVVZEywqVfuCdrYa9Vk11xHK1p1gujQDImrcvEuS/3H3i1eWJ7yW2pvXUfouxgagfO3m+VyWUGmUIy2Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDHBbxPnbG8VmaqpHfxoMfK4Ul4jcZ8ASM79QIjDKSe/2S0sAJBHxVG9Zw7VwjL5Jddi0kBV4JxnXu+V6nDmHvLOXrn5RKqpAl5xH+94q2gkbt4TE3DkUFEEQMewjfold+6D5RBZfe5Rd2muDdPHXQ4b81JVu7+ylEDDdEAD/ThiU2AK/0nPNRs++Q2D+8MyBudGn2O+1BvtFKE/hEOsJCIS8ot2tzBPKwAHCGi7xrUh0fy3FTeVCwpdd0A0Rk85+rMn1BnopPlexsm/i/3peZf9o1rcOnxG0Ukcfx8+xF5/xiqsXDVDh3Bp/SMZVsB5Ft95oED6cWardEwX5R9Qp4WavVr709S2jNhHiBiI+PYtOUMle/U+f0UA9+7kePWYB/RpY+Ssj5Ihfoe1imiDKLuzYQkrAkaJCKhxFm28MQ+dsfUs4CfUKYj8HilIqlPEWM/uVqPHT/OAa4Nk6GtxN8nGXJNuUacwcsZJvA9GKhTMEWWLvRso1Jzb0g8CqI8KY0+PgerL+C+IQPeOGAjozfBM0GByrspehzkklV+iw4WS4pDhzHyH0ovuKjnMIF1cYQQ7SAQEX0sCiEynzR0TzwxFTG102EsJFunugG5iqIk1SQgFk6vZMyRoKt8imhRD5t7/1onrxvaR1cdQ0mYa8voJH+g33Teg5s2uJYbzub0iOhwodZ7Kcun01sWVyOIIkgM+vfc3XU25E2MFy27bSpHT620aDrt2nELM28x3EkxyZQEryIge2hRrZh+uJ0A/cZ6WScCzV07MZHCP21OHvlfpUm/Yr6b1lzl73F8wGXbPHkFzcORNfAfU+BqsCZsyGwgybWJO2a/7Bf/QGr46DVPYe/w4dca/pkqzgqCS1Cgh2FHKYydoGyZ3p3r0U0gTH/eOKSQTbW4PkLNwXzoJac85d3yOSeI4R/2jJb0VWyAz6P7Y774GIKBpZBS/5u/hBT4Pv8/vhZga7/iWrlcQ/LfJHpxjbDkfHyIr5j1EPNtPXwycuUW0BTLIiYpOYqQc9ljIpYWAEyeH3T4JpX8buL4bvwDEqOlHqxfwyLkbKe7Q5wOFgWb0XdPKdCo3COz1knObO4FwRHiNpDbEa/926UJTUrYviO+4G7aWxPUvAkWYjZ0L1JO7ltfjwZW817Alw2D7E1tEzEd0Nc6LVeIToXn4cOc38UqrLWOj5Kuu2FWds4Fk+TuTDNndEmjK6ExMrFceCeN7CbD7lqc3p5K9F4Q6IX2p9wn/5oDCVrdgN8Y2ZtA5j9XzBhwgPEPs5SpC5NzMOxF4aUKNTAHRtXTwxaihhVCXl1irkBNBwEqFD4po4YC20Mi8m6YrtK4SNEj1rGJ53PKkKBJbbQhO69L7HmQIt24a1dX9Gvg/OKJ9NgVM5v+PRjspdqo4PIn2L61wsLIsl/uOf2pL8Uo/zH8SpFpAZQZQw3SluxmfbZxq8+9HCb2fQMQNA91Z8JyatNYS7szU1QTKzgBMF1l90vdolfawGQoox7jEhCbKbImVnA/7KwGDv/TqjFq96BWdYiUotN/U3xEGTR/oO4S2qqTVj/2HWwzbDgGlkVjRSZ3jG5K6rJZ4Ea5e5bTuMpwAG76S4H7EEyKSRuWKTmndEDKC1SZJrtwBrEKWpVOdANu31qaENF9WvsLCE6GTfRcV/vG//tmNgRiKroQrVlDC54dQEEYZ2BQqzT8IclbpjYrM+RNrRkfE7wE8v31znueWUeKR9m3p1SUynIeRm4yGBdWmfclj/Ah2iuzJkbGcYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":891,"cache_read_input_tokens":539738,"output_tokens":750,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":891,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":750,"cache_read_input_tokens":539738,"cache_creation_input_tokens":891,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":891},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7U4z6cf66c7t8sbqqn","type":"assistant","uuid":"5070a29b-c7a7-4e02-8939-c8b1a827cc98","timestamp":"2026-07-28T08:07:33.848Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5070a29b-c7a7-4e02-8939-c8b1a827cc98","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7UBn8eBA17gcm98K3m","type":"message","role":"assistant","content":[{"type":"text","text":"`config` importing `cli/upgrade` is a layering inversion — a core package depending on a TUI package is what drags bubbletea in. Checking how deep it goes:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":891,"cache_read_input_tokens":539738,"output_tokens":750,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":891,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":750,"cache_read_input_tokens":539738,"cache_creation_input_tokens":891,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":891},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7U4z6cf66c7t8sbqqn","type":"assistant","uuid":"64a62792-e12d-4109-bc88-bd59ff75d705","timestamp":"2026-07-28T08:07:33.849Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"64a62792-e12d-4109-bc88-bd59ff75d705","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7UBn8eBA17gcm98K3m","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_012S5pX8wpYRKYZR3eeVjAae","name":"Bash","input":{"command":"grep -n \"upgrade\\.\" config/config.go config/default.go config/load.go | head && echo \"=== what segments use from auth/upgrade ===\" && grep -n \"auth\\.\\|upgrade\\.\" segments/copilot.go segments/upgrade.go segments/ytm.go | head && echo \"=== does cli/upgrade need bubbletea for those? ===\" && grep -rn \"bubbletea\" cli/upgrade/*.go | head -3","description":"Check what is actually used from the TUI packages"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":891,"cache_read_input_tokens":539738,"output_tokens":750,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":891,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":750,"cache_read_input_tokens":539738,"cache_creation_input_tokens":891,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":891},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7U4z6cf66c7t8sbqqn","type":"assistant","uuid":"92ca217e-c89a-436c-b12e-945fea9f1b47","timestamp":"2026-07-28T08:07:35.634Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"92ca217e-c89a-436c-b12e-945fea9f1b47","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_012S5pX8wpYRKYZR3eeVjAae","type":"tool_result","content":"config/config.go:61:\tUpgrade *upgrade.Config `json:\"upgrade,omitempty\" toml:\"upgrade,omitempty\" yaml:\"upgrade,omitempty\"`\nconfig/default.go:210:\t\tUpgrade: &upgrade.Config{\nconfig/default.go:211:\t\t\tSource: upgrade.CDN,\nconfig/load.go:161:\t\tcfg.Upgrade = &upgrade.Config{\nconfig/load.go:162:\t\t\tSource: upgrade.CDN,\n=== what segments use from auth/upgrade ===\nsegments/copilot.go:68:\tif cachedToken, OK := cache.Get[string](cache.Device, auth.CopilotTokenKey); OK && len(cachedToken) != 0 {\nsegments/upgrade.go:61:\tsource := u.options.String(Source, string(upgrade.CDN))\nsegments/upgrade.go:63:\tcfg := &upgrade.Config{\nsegments/upgrade.go:64:\t\tSource: upgrade.Source(source),\nsegments/ytm.go:15:\tytmdaStatusURL = auth.YTMDABASEURL + \"/state\"\nsegments/ytm.go:49:\ttoken, OK := cache.Get[string](cache.Device, auth.YTMDATOKEN)\n=== does cli/upgrade need bubbletea for those? ===\ncli/upgrade/tui.go:9:\ttea \"github.com/charmbracelet/bubbletea\"","is_error":false}]},"uuid":"3ac62f1e-cfc7-446a-ace4-37648aa38e27","timestamp":"2026-07-28T08:07:36.752Z","toolUseResult":{"stdout":"config/config.go:61:\tUpgrade *upgrade.Config `json:\"upgrade,omitempty\" toml:\"upgrade,omitempty\" yaml:\"upgrade,omitempty\"`\nconfig/default.go:210:\t\tUpgrade: &upgrade.Config{\nconfig/default.go:211:\t\t\tSource: upgrade.CDN,\nconfig/load.go:161:\t\tcfg.Upgrade = &upgrade.Config{\nconfig/load.go:162:\t\t\tSource: upgrade.CDN,\n=== what segments use from auth/upgrade ===\nsegments/copilot.go:68:\tif cachedToken, OK := cache.Get[string](cache.Device, auth.CopilotTokenKey); OK && len(cachedToken) != 0 {\nsegments/upgrade.go:61:\tsource := u.options.String(Source, string(upgrade.CDN))\nsegments/upgrade.go:63:\tcfg := &upgrade.Config{\nsegments/upgrade.go:64:\t\tSource: upgrade.Source(source),\nsegments/ytm.go:15:\tytmdaStatusURL = auth.YTMDABASEURL + \"/state\"\nsegments/ytm.go:49:\ttoken, OK := cache.Get[string](cache.Device, auth.YTMDATOKEN)\n=== does cli/upgrade need bubbletea for those? ===\ncli/upgrade/tui.go:9:\ttea \"github.com/charmbracelet/bubbletea\"","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"92ca217e-c89a-436c-b12e-945fea9f1b47","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3ac62f1e-cfc7-446a-ace4-37648aa38e27","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7VDJvuR4Cbrv9rJcWx","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Looking at the refactor, `config` and `segments` only depend on data types and constants from the `cli/upgrade` and `cli/auth` packages—things like configuration structs and token keys—so they don't actually need the TUI layer at all.\n\nThe real issue is that `tui.go` lives in the same package as these constants, so importing them pulls in the entire bubbletea dependency. The solution is to extract those types and constants into a separate leaf package—either at the top level or as a subpackage—which removes the TUI from the dependency graph entirely. This is more than a build-tag workaround; it's a proper layering fix that benefits the normal binary too by shrinking its dependency footprint.\n\nThe scope is moderate—it touches config, segments, and their importers across multiple packages. Rather than diving into the refactor unannounced, I should report the finding and propose the next move to the user.\n\nBut first, let me tackle the smaller blocker with `terminal_unix.go` and get a concrete measurement of the payload. I can build a minimal wasm target using just svg, terminal, and color to establish a lower bound, then see how far the prompt package gets before hitting the bubbletea wall. Once that's clear, I'll check what `terminal_unix.go` actually needs from the unix package.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1242,"cache_read_input_tokens":540629,"output_tokens":1055,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1242,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1055,"cache_read_input_tokens":540629,"cache_creation_input_tokens":1242,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1242},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7V6hp98ztKhm1SovRQ","type":"assistant","uuid":"25278122-322c-4e27-84ba-4e4919645b56","timestamp":"2026-07-28T08:07:53.191Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"25278122-322c-4e27-84ba-4e4919645b56","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7VDJvuR4Cbrv9rJcWx","type":"message","role":"assistant","content":[{"type":"text","text":"`config` and `segments` only use plain types and constants from those packages — `upgrade.Config`, `upgrade.CDN`, `auth.CopilotTokenKey`, `auth.YTMDABASEURL`. None of them need a TUI; they just happen to live in the same package as one. Noted for the next step. First the smaller blocker:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1242,"cache_read_input_tokens":540629,"output_tokens":1055,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1242,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1055,"cache_read_input_tokens":540629,"cache_creation_input_tokens":1242,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1242},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7V6hp98ztKhm1SovRQ","type":"assistant","uuid":"ba5f0df8-589f-4aa2-8f47-2d190df211d0","timestamp":"2026-07-28T08:07:53.648Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ba5f0df8-589f-4aa2-8f47-2d190df211d0","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7VDJvuR4Cbrv9rJcWx","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01RjVXgJaZPN6vS83ahH1Cf3","name":"Bash","input":{"command":"grep -n -B6 -A6 \"unix.Access\" runtime/terminal_unix.go","description":"Read the unix.Access usage"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1242,"cache_read_input_tokens":540629,"output_tokens":1055,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1242,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1055,"cache_read_input_tokens":540629,"cache_creation_input_tokens":1242,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1242},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7V6hp98ztKhm1SovRQ","type":"assistant","uuid":"7f007575-7118-4480-968d-6a68faa3b691","timestamp":"2026-07-28T08:07:54.120Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7f007575-7118-4480-968d-6a68faa3b691","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01RjVXgJaZPN6vS83ahH1Cf3","type":"tool_result","content":"162-\t}\n163-\treturn input\n164-}\n165-\n166-func (term *Terminal) DirIsWritable(input string) bool {\n167-\tdefer log.Trace(time.Now(), input)\n168:\treturn unix.Access(input, unix.W_OK) == nil\n169-}\n170-\n171-func (term *Terminal) Connection(_ ConnectionType) (*Connection, error) {\n172-\t// added to disable the linting error, we can implement this later\n173-\tif len(term.networks) == 0 {\n174-\t\treturn nil, &NotImplemented{}","is_error":false}]},"uuid":"2e75fdcb-087e-4cd2-8689-c0f2e64606c9","timestamp":"2026-07-28T08:07:54.926Z","toolUseResult":{"stdout":"162-\t}\n163-\treturn input\n164-}\n165-\n166-func (term *Terminal) DirIsWritable(input string) bool {\n167-\tdefer log.Trace(time.Now(), input)\n168:\treturn unix.Access(input, unix.W_OK) == nil\n169-}\n170-\n171-func (term *Terminal) Connection(_ ConnectionType) (*Connection, error) {\n172-\t// added to disable the linting error, we can implement this later\n173-\tif len(term.networks) == 0 {\n174-\t\treturn nil, &NotImplemented{}","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"7f007575-7118-4480-968d-6a68faa3b691","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2e75fdcb-087e-4cd2-8689-c0f2e64606c9","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7WacsEFCdrGn9EQw7V","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_011F8bGvBhwcF4rR7UntxFXg","name":"Bash","input":{"command":"sed -i '1s|.*|//go:build !windows \\&\\& !js|' runtime/terminal_unix.go && ls runtime/terminal_*.go && grep -rn \"func (term \\*Terminal) DirIsWritable\" runtime/*.go","description":"Exclude the unix terminal file from js"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1242,"cache_read_input_tokens":541871,"output_tokens":163,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1242,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":163,"cache_read_input_tokens":541871,"cache_creation_input_tokens":1242,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1242},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7WSTyrzf93VBHPYKRj","type":"assistant","uuid":"91164543-da1a-4237-bc6c-e7372a96c9b7","timestamp":"2026-07-28T08:07:59.818Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"91164543-da1a-4237-bc6c-e7372a96c9b7","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_011F8bGvBhwcF4rR7UntxFXg","type":"tool_result","content":"runtime/terminal_darwin.go\nruntime/terminal_test.go\nruntime/terminal_unix.go\nruntime/terminal_unix_test.go\nruntime/terminal_windows.go\nruntime/terminal_windows_nix.go\nruntime/terminal_unix.go:166:func (term *Terminal) DirIsWritable(input string) bool {\nruntime/terminal_windows.go:222:func (term *Terminal) DirIsWritable(input string) bool {","is_error":false}]},"uuid":"da8c5cf6-b027-4946-8c3a-3771ee3cf6ba","timestamp":"2026-07-28T08:08:02.839Z","toolUseResult":{"stdout":"runtime/terminal_darwin.go\nruntime/terminal_test.go\nruntime/terminal_unix.go\nruntime/terminal_unix_test.go\nruntime/terminal_windows.go\nruntime/terminal_windows_nix.go\nruntime/terminal_unix.go:166:func (term *Terminal) DirIsWritable(input string) bool {\nruntime/terminal_windows.go:222:func (term *Terminal) DirIsWritable(input string) bool {","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"91164543-da1a-4237-bc6c-e7372a96c9b7","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"da8c5cf6-b027-4946-8c3a-3771ee3cf6ba","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"D:\\oh-my-posh\\src\\runtime\\terminal_unix.go","snippet":"1\t//go:build !windows && !js\n2\t\n3\tpackage runtime\n4\t\n5\timport (\n6\t\t\"os\"\n7\t\t\"strconv\"\n8\t\t\"strings\"\n9\t\t\"time\"\n10\t\n11\t\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n12\t\t\"github.com/jandedobbeleer/oh-my-posh/src/log\"\n13\t\t\"github.com/shirou/gopsutil/v4/host\"\n14\t\tmem \"github.com/shirou/gopsutil/v4/mem\"\n15\t\tterminal \"github.com/wayneashleyberry/terminal-dimensions\"\n16\t\t\"golang.org/x/sys/unix\"\n17\t)\n18\t\n19\tfunc (term *Terminal) Root() bool {\n20\t\tdefer log.Trace(time.Now())\n21\t\treturn os.Geteuid() == 0\n22\t}\n23\t\n24\tfunc (term *Terminal) QueryWindowTitles(_, _ string) (string, error) {\n25\t\treturn \"\", &NotImplemented{}\n26\t}\n27\t\n28\tfunc (term *Terminal) QueryMediaPlayer(_ string) (*MediaInfo, error) {\n29\t\treturn nil, &NotImplemented{}\n30\t}\n31\t\n32\tfunc (term *Terminal) IsWsl() bool {\n33\t\tdefer log.Trace(time.Now())\n34\t\tconst key = \"is_wsl\"\n35\t\tif val, found := cache.Get[bool](cache.Device, key); found {\n36\t\t\treturn val\n37\t\t}\n38\t\n39\t\tvar val bool\n40\t\tdefer func() {\n41\t\t\tcache.Set(cache.Device, key, val, cache.INFINITE)\n42\t\t}()\n43\t\n44\t\tval = term.HasCommand(\"wslpath\")\n45\t\n46\t\treturn val\n47\t}\n48\t\n49\tfunc (term *Terminal) IsWsl2() bool {\n50\t\tdefer log.Trace(time.Now())\n51\t\tif !term.IsWsl() {\n52\t\t\treturn false\n53\t\t}\n54\t\tuname := term.FileContent(\"/proc/sys/kernel/osrelease\")\n55\t\treturn strings.Contains(uname, \"WSL2\")\n56\t}\n57\t\n58\tfunc (term *Terminal) IsCygwin() bool {\n59\t\tdefer log.Trace(time.Now())\n60\t\treturn false\n61\t}\n62\t\n63\tfunc (term *Terminal) TerminalWidth() (int, error) {\n64\t\tdefer log.Trace(time.Now())\n65\t\n66\t\tif term.CmdFlags.TerminalWidth > 0 {\n67\t\t\tlog.Debugf(\"terminal width: %d\", term.CmdFlags.TerminalWidth)\n68\t\t\treturn term.CmdFlags.TerminalWidth, nil\n69\t\t}\n70\t\n71\t\twidth, err := terminal.Width()\n72\t\tif err != nil {\n73\t\t\tlog.Error(err)\n74\t\t}\n75\t\n76\t\t// fetch width from the environment variable\n77\t\t// in case the terminal width is not available\n78\t\tif width == 0 {\n79\t\t\ti, err := strconv.Atoi(term.Getenv(\"COLUMNS\"))\n80\t\t\tif err != nil {\n81\t\t\t\tlog.Error(err)\n82\t\t\t}\n83\t\t\twidth = uint(i)\n84\t\t}\n85\t\n86\t\tterm.CmdFlags.TerminalWidth = int(width)\n87\t\tlog.Debugf(\"terminal width: %d\", term.CmdFlags.TerminalWidth)\n88\t\n89\t\treturn term.CmdFlags.TerminalWidth, err\n90\t}\n91\t\n92\tfunc (term *Terminal) Platform() string {\n93\t\tconst key = \"environment_platform\"\n94\t\tif val, found := cache.Get[string](cache.Device, key); found {\n95\t\t\treturn val\n96\t\t}\n97\t\n98\t\tvar platform string\n99\t\tdefer func() {\n100\t\t\tcache.Set(cache.Device, key, platform, cache.INFINITE)\n101\t\t}()\n102\t\n103\t\tif wsl := term.Getenv(\"WSL_DISTRO_NAME\"); len(wsl) != 0 {\n104\t\t\tplatform, _, _ = strings.Cut(wsl, \"-\")\n105\t\t\tplatform = strings.ToLower(platform)\n106\t\t\tlog.Debug(platform)\n107\t\t\treturn platform\n108\t\t}\n109\t\n110\t\tplatform, _, _, _ = host.PlatformInformation()\n111\t\tplatform = term.getSpecialLinuxDistros(platform)\n112\t\n113\t\tlog.Debug(platform)\n114\t\treturn platform\n115\t}\n116\t\n117\tfunc (term *Terminal) getSpecialLinuxDistros(platform string) string {\n118\t\tlsbInfo := term.FileContent(\"/etc/lsb-release\")\n119\t\n120\t\tif platform == \"debian\" && strings.Contains(strings.ToLower(lsbInfo), \"zorin\") {\n121\t\t\treturn \"zorin\"\n122\t\t}\n123\t\n124\t\tif platform != \"arch\" {\n125\t\t\treturn platform\n126\t\t}\n127\t\n128\t\tif strings.Contains(strings.ToLower(lsbInfo), \"manjaro\") {\n129\t\t\treturn \"manjaro\"\n130\t\t}\n131\t\n132\t\tif strings.Contains(strings.ToLower(lsbInfo), \"artix\") {\n133\t\t\treturn \"artix\"\n134\t\t}\n135\t\n136\t\treturn platform\n137\t}\n138\t\n139\tfunc (term *Terminal) WindowsRegistryKeyValue(_ string) (*WindowsRegistryValue, error) {\n140\t\treturn nil, &NotImplemented{}\n141\t}\n142\t\n143\tfunc (term *Terminal) InWSLSharedDrive() bool {\n144\t\tif !term.IsWsl2() {\n145\t\t\treturn false\n146\t\t}\n147\t\twindowsPath := term.ConvertToWindowsPath(term.Pwd())\n148\t\treturn !strings.HasPrefix(windowsPath, `//wsl.localhost/`) && !strings.HasPrefix(windowsPath, `//wsl$/`)\n149\t}\n150\t\n151\tfunc (term *Terminal) ConvertToWindowsPath(input string) string {\n152\t\twindowsPath, err := term.RunCommand(\"wslpath\", \"-m\", input)\n153\t\tif err == nil {\n154\t\t\treturn windowsPath\n155\t\t}\n156\t\treturn input\n157\t}\n158\t\n159\tfunc (term *Terminal) ConvertToLinuxPath(input string) string {\n160\t\tif linuxPath, err := term.RunCommand(\"wslpath\", \"-u\", input); err == nil {\n161\t\t\treturn linuxPath\n162\t\t}\n163\t\treturn input\n164\t}\n165\t\n166\tfunc (term *Terminal) DirIsWritable(input string) bool {\n167\t\tdefer log.Trace(time.Now(), input)\n168\t\treturn unix.Access(input, unix.W_OK) == nil\n169\t}\n170\t\n171\tfunc (term *Terminal) Connection(_ ConnectionType) (*Connection, error) {\n172\t\t// added to disable the linting error, we can implement this later\n173\t\tif len(term.networks) == 0 {\n174\t\t\treturn nil, &NotImplemented{}\n175\t\t}\n176\t\n177\t\treturn nil, &NotImplemented{}\n178\t}\n179\t\n180\tfunc (term *Terminal) Memory() (*Memory, error) {\n181\t\tm := &Memory{}\n182\t\tmemStat, err := mem.VirtualMemory()\n183\t\tif err != nil {\n184\t\t\tlog.Error(err)\n185\t\t\treturn nil, err\n186\t\t}\n187\t\n188\t\tm.PhysicalTotalMemory = memStat.Total\n189\t\tm.PhysicalAvailableMemory = memStat.Available\n190\t\tm.PhysicalFreeMemory = memStat.Free\n191\t\n192\t\tif memStat.Total > 0 {\n193\t\t\tused := float64(memStat.Total) - float64(memStat.Available)\n194\t\t\tif used < 0 {\n195\t\t\t\tused = 0\n196\t\t\t}\n197\t\t\tm.PhysicalPercentUsed = used / float64(memStat.Total) * 100\n198\t\t}\n199\t\n200\t\tswapStat, err := mem.SwapMemory()\n201\t\tif err != nil {\n202\t\t\tlog.Error(err)\n203\t\t}\n204\t\n205\t\tm.SwapTotalMemory = swapStat.Total\n206\t\tm.SwapFreeMemory = swapStat.Free\n207\t\tm.SwapPercentUsed = swapStat.UsedPercent\n208\t\treturn m, nil\n209\t}","displayPath":"src\\runtime\\terminal_unix.go"},"type":"attachment","uuid":"d2fd9108-1296-4abf-8e5d-36d97d337e0b","timestamp":"2026-07-28T08:08:02.846Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d2fd9108-1296-4abf-8e5d-36d97d337e0b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7X9MrqcoYqvXSPXmYY","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm realizing that excluding the entire file would require stubbing out a lot of Terminal methods for JavaScript, which is more work than it's worth. Instead, I should just build-tag the `DirIsWritable` function specifically — reverting the file-level tag and splitting that one method into its own file with the appropriate build constraints for non-Windows, non-JavaScript platforms.\n\nBut I should also check what else in `terminal_unix.go` might not compile for JavaScript, like the `gopsutil` imports and terminal dimension utilities. Let me revert the file tag back to `!windows` and try building to see what actually breaks.","signature":"CAISqQcKhwEIEBgCKkDm1bFbAvckXYTm07llixr4gI2AX+RA55hJqoa1o7clDM+2la0bFwPXV9XAB4ulYyI5l3LxVaskB8IZBrePQnpeMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDP8CrDLnARpQyqVMRxoMgGqrPuLm4TVj0OslIjByvE8t5O6ms1w2b+ok8WTOh2FwCkruZw+8xiVSthmgYJ3Fx51UzhrVlvl1u7jM5TkqzgVYhoRmfhkTPYVfvYnSY4x9pufNclkUEOsNkyDXKd1TFBH348gfAt6ih/CsEgVfhLohH5HMqfb1Ax8V+fpBi6piveqa6VvIy20rcdnOiXDv3qdwC0bujKgPdzoOXqgkxGOt67twFiAEj06rIab20AjiKvh4UdlVw/eSXdS4vXrqPt/NZSnwTKi8bg5XBSnvLc5zGmsyTsQqdCsfnAJTst4LTJuoxMeldiTJZ0ZZr/JbhnhIZ+SvuQWMy4T7Hi1QlW3l+UlV/6yL6ggYFPyjV9Puh0nM1MRrE8FguC5XuLu9ionUwQ9sOU6X/6FvquGtED8oZn++NDhcbLCrQZz8rxA3qLGLkZMss6RrhLBN07TUrZU2Y/7VDrnXrO+n80gQMPrmeET8MMe0zD4TMfmsB9Fdnl6xw6Fygthk5bWCZN0ZoBdl300iP3y75EtmeXx5sC4hbzsxR3wgW7DCUM2jNElzot8S9jmI+QF9oVB3GhrWxeoizLRr9yN9zavVDY9cx/m7IRdxJSAqc5cg45EulMSy2L/YALtOVY9xwstllC4NO01hwwr82PoS/ekby99I0tko032wyNEi52pjcjir/MpxOGy77AkdeaK+PitedOZpdAlkEA5IdHpisfZHjo7ERoQVzvYC4sn4B5xo5jL5Q2H6zsyiwY/764LIQNYp+g2RcrATyGT4RhdB8MU0bzzo11qT+IGWoapjTB7TVqZv1eojfVsNewCZJiww40Qnl+FMLgX8Qu/iuD+eDRt5fuHzbLal3kfQas6WD9KpuUHXGPvPPYNf8lL5pIBifx/d64ThKEjTCc1nNYepB1dvyHgOx4VNMTOCPsB2YbPrq65OJ3pLZ+McTDNqnciNaYeevowRioHEc+Qq0MgWUyy2T2h8ydgAMLYDNcn5A9CL7uXDpMGUc/chJkCi0aCXrKzjcmGznDJmEWbfa5Gx6l6P+YIPGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":3092,"cache_read_input_tokens":543113,"output_tokens":668,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":3092,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":668,"cache_read_input_tokens":543113,"cache_creation_input_tokens":3092,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":3092},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7X1zbmh5E3EfPvUhdv","type":"assistant","uuid":"d75a6eee-cc2b-4e68-a0b5-26a63969707c","timestamp":"2026-07-28T08:08:11.094Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d75a6eee-cc2b-4e68-a0b5-26a63969707c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7X9MrqcoYqvXSPXmYY","type":"message","role":"assistant","content":[{"type":"text","text":"That file carries ~15 `Terminal` methods, so excluding it wholesale means stubbing all of them. Smaller surgery — extract just the one function that needs a syscall:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":3092,"cache_read_input_tokens":543113,"output_tokens":668,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":3092,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":668,"cache_read_input_tokens":543113,"cache_creation_input_tokens":3092,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":3092},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7X1zbmh5E3EfPvUhdv","type":"assistant","uuid":"17837004-6195-41ac-8585-59da4d55c0be","timestamp":"2026-07-28T08:08:11.171Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"17837004-6195-41ac-8585-59da4d55c0be","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7X9MrqcoYqvXSPXmYY","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_018naFEqHNL72MAVT9HK7nDF","name":"Bash","input":{"command":"sed -i '1s|.*|//go:build !windows|' runtime/terminal_unix.go && python - <<'PY'\nimport io\np = 'runtime/terminal_unix.go'\ns = io.open(p, encoding='utf-8').read()\nblock = '''func (term *Terminal) DirIsWritable(input string) bool {\n\tdefer log.Trace(time.Now(), input)\n\treturn unix.Access(input, unix.W_OK) == nil\n}\n\n'''\nassert block in s, 'block not found'\ns = s.replace(block, '')\ns = s.replace('\\t\"golang.org/x/sys/unix\"\\n', '')\nio.open(p, 'w', encoding='utf-8', newline='\\n').write(s)\nprint('extracted')\nPY","description":"Extract DirIsWritable from the unix terminal file"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":3092,"cache_read_input_tokens":543113,"output_tokens":668,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":3092,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":668,"cache_read_input_tokens":543113,"cache_creation_input_tokens":3092,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":3092},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7X1zbmh5E3EfPvUhdv","type":"assistant","uuid":"f215c7a3-28cb-48d5-8425-70d503b50888","timestamp":"2026-07-28T08:08:13.328Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f215c7a3-28cb-48d5-8425-70d503b50888","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_018naFEqHNL72MAVT9HK7nDF","type":"tool_result","content":"extracted","is_error":false}]},"uuid":"c2c59400-2498-48b9-a71d-fe12ab6aad58","timestamp":"2026-07-28T08:08:18.519Z","toolUseResult":{"stdout":"extracted","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"f215c7a3-28cb-48d5-8425-70d503b50888","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c2c59400-2498-48b9-a71d-fe12ab6aad58","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7YGT2f7u1zAn6wbSss","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_016uymhSnu9g3w3ooTiYtBF7","name":"Write","input":{"file_path":"D:\\oh-my-posh\\src\\runtime\\terminal_access_unix.go","content":"//go:build !windows && !js\n\npackage runtime\n\nimport (\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/log\"\n\t\"golang.org/x/sys/unix\"\n)\n\nfunc (term *Terminal) DirIsWritable(input string) bool {\n\tdefer log.Trace(time.Now(), input)\n\treturn unix.Access(input, unix.W_OK) == nil\n}\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":676,"cache_read_input_tokens":546205,"output_tokens":230,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":676,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":230,"cache_read_input_tokens":546205,"cache_creation_input_tokens":676,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":676},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7YAzMxja5K7mySmLiz","type":"assistant","uuid":"27f59b99-bc98-4dc1-a770-d77265f0b0f2","timestamp":"2026-07-28T08:08:23.644Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"27f59b99-bc98-4dc1-a770-d77265f0b0f2","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_016uymhSnu9g3w3ooTiYtBF7","type":"tool_result","content":"File created successfully at: D:\\oh-my-posh\\src\\runtime\\terminal_access_unix.go (file state is current in your context — no need to Read it back)"}]},"uuid":"6d7c8809-576e-4d72-9fdb-34ec8732358c","timestamp":"2026-07-28T08:08:23.682Z","toolUseResult":{"type":"create","filePath":"D:\\oh-my-posh\\src\\runtime\\terminal_access_unix.go","content":"//go:build !windows && !js\n\npackage runtime\n\nimport (\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/log\"\n\t\"golang.org/x/sys/unix\"\n)\n\nfunc (term *Terminal) DirIsWritable(input string) bool {\n\tdefer log.Trace(time.Now(), input)\n\treturn unix.Access(input, unix.W_OK) == nil\n}\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"27f59b99-bc98-4dc1-a770-d77265f0b0f2","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6d7c8809-576e-4d72-9fdb-34ec8732358c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7YgBXw96fg1hfugKDM","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_013r19dwfV9g3pjM84in7yvd","name":"Write","input":{"file_path":"D:\\oh-my-posh\\src\\runtime\\terminal_access_js.go","content":"//go:build js\n\npackage runtime\n\nimport (\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/log\"\n)\n\n// unix.Access has no js/wasm equivalent - the syscall package there has neither\n// the call nor the W_OK constant - and a browser has no filesystem to test in the\n// first place. It sits in its own file rather than behind a branch inside\n// terminal_unix.go so that file, which carries every other Unix Terminal method,\n// stays buildable for js and does not need fifteen stubs of its own.\nfunc (term *Terminal) DirIsWritable(input string) bool {\n\tdefer log.Trace(time.Now(), input)\n\treturn false\n}\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":286,"cache_read_input_tokens":546881,"output_tokens":320,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":286,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":320,"cache_read_input_tokens":546881,"cache_creation_input_tokens":286,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":286},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7Yaht8gjXnDNNXpByH","type":"assistant","uuid":"ff99f920-43d5-48ea-8168-70600fa40392","timestamp":"2026-07-28T08:08:30.241Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ff99f920-43d5-48ea-8168-70600fa40392","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_013r19dwfV9g3pjM84in7yvd","type":"tool_result","content":"File created successfully at: D:\\oh-my-posh\\src\\runtime\\terminal_access_js.go (file state is current in your context — no need to Read it back)"}]},"uuid":"59896da7-fb73-4fde-91cf-867ef87e7d3f","timestamp":"2026-07-28T08:08:30.258Z","toolUseResult":{"type":"create","filePath":"D:\\oh-my-posh\\src\\runtime\\terminal_access_js.go","content":"//go:build js\n\npackage runtime\n\nimport (\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/log\"\n)\n\n// unix.Access has no js/wasm equivalent - the syscall package there has neither\n// the call nor the W_OK constant - and a browser has no filesystem to test in the\n// first place. It sits in its own file rather than behind a branch inside\n// terminal_unix.go so that file, which carries every other Unix Terminal method,\n// stays buildable for js and does not need fifteen stubs of its own.\nfunc (term *Terminal) DirIsWritable(input string) bool {\n\tdefer log.Trace(time.Now(), input)\n\treturn false\n}\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"ff99f920-43d5-48ea-8168-70600fa40392","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"59896da7-fb73-4fde-91cf-867ef87e7d3f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7ZDWT4AcNuARCJu52L","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01YEcRvJh9xC6Fzrf9QHtABx","name":"Bash","input":{"command":"go build ./... 2>&1 | head -3; echo \"--- native OK above (silence=good) ---\"; GOOS=js GOARCH=wasm go build -o /dev/null ./runtime/ 2>&1 | head -10","description":"Verify native still builds and check runtime for wasm"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":375,"cache_read_input_tokens":547167,"output_tokens":158,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":375,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":158,"cache_read_input_tokens":547167,"cache_creation_input_tokens":375,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":375},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7Z2wht7oGPSdBtK4YS","type":"assistant","uuid":"47e4bb35-0e00-4d81-931e-3f30014be555","timestamp":"2026-07-28T08:08:35.906Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"47e4bb35-0e00-4d81-931e-3f30014be555","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01YEcRvJh9xC6Fzrf9QHtABx","type":"tool_result","content":"--- native OK above (silence=good) ---","is_error":false}]},"uuid":"81409621-9aa0-48ab-9fe5-980c819839fb","timestamp":"2026-07-28T08:08:42.145Z","toolUseResult":{"stdout":"--- native OK above (silence=good) ---","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"47e4bb35-0e00-4d81-931e-3f30014be555","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"81409621-9aa0-48ab-9fe5-980c819839fb","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"afbf88a8-758f-4e50-bd0b-1565063adb91","timestamp":"2026-07-28T08:08:42.148Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"afbf88a8-758f-4e50-bd0b-1565063adb91","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7a2J31mjLvkqnN6wmy","type":"message","role":"assistant","content":[{"type":"text","text":"`src/runtime` now builds for wasm, and native is unaffected. Now I can get the first real measurement:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":307,"cache_read_input_tokens":547542,"output_tokens":159,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":307,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":159,"cache_read_input_tokens":547542,"cache_creation_input_tokens":307,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":307},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7Zv9hTpejZLzEqiikY","type":"assistant","uuid":"c3439990-7d22-4f14-9b50-8c46f7bde971","timestamp":"2026-07-28T08:08:46.717Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c3439990-7d22-4f14-9b50-8c46f7bde971","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7a2J31mjLvkqnN6wmy","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01X5J2hJ4gHKR3CQVZuozhUt","name":"Bash","input":{"command":"GOOS=js GOARCH=wasm go build -o /dev/null ./config/ ./prompt/ 2>&1 | head -12","description":"Check remaining wasm blockers"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":307,"cache_read_input_tokens":547542,"output_tokens":159,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":307,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":159,"cache_read_input_tokens":547542,"cache_creation_input_tokens":307,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":307},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7Zv9hTpejZLzEqiikY","type":"assistant","uuid":"97c86783-3127-4ade-a5cd-fd585fdd8fba","timestamp":"2026-07-28T08:08:47.547Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"97c86783-3127-4ade-a5cd-fd585fdd8fba","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01X5J2hJ4gHKR3CQVZuozhUt","type":"tool_result","content":"# github.com/charmbracelet/bubbletea\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tea.go:323:8: p.listenForResize undefined (type *Program has no field or method listenForResize)\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tea.go:409:8: undefined: suspendSupported\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tea.go:608:13: undefined: openInputTTY\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tea.go:617:13: undefined: openInputTTY\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tty.go:19:2: undefined: suspendProcess\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tty.go:31:14: p.initInput undefined (type *Program has no field or method initInput)","is_error":false}]},"uuid":"db69f839-c22e-417a-aa05-2f33e99b2260","timestamp":"2026-07-28T08:08:51.450Z","toolUseResult":{"stdout":"# github.com/charmbracelet/bubbletea\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tea.go:323:8: p.listenForResize undefined (type *Program has no field or method listenForResize)\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tea.go:409:8: undefined: suspendSupported\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tea.go:608:13: undefined: openInputTTY\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tea.go:617:13: undefined: openInputTTY\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tty.go:19:2: undefined: suspendProcess\nC:\\Users\\jande\\go\\pkg\\mod\\github.com\\charmbracelet\\bubbletea@v1.3.10\\tty.go:31:14: p.initInput undefined (type *Program has no field or method initInput)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"97c86783-3127-4ade-a5cd-fd585fdd8fba","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"db69f839-c22e-417a-aa05-2f33e99b2260","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7aiUki7D3PZ7QE8Rp1","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Bubbletea is the remaining dependency blocker, pulled in through config's CLI upgrade module and segments' auth and upgrade modules. I need to extract the shared types and constants—like `upgrade.Config`, `upgrade.CDN`, `upgrade.Source`, and `auth.CopilotTokenKey`—into leaf packages so they can be imported without creating circular dependencies.\n\nNow I'm examining the upgrade module structure to figure out how to split these types cleanly and estimate the scope of work.","signature":"CAIS2AYKhwEIEBgCKkCZmZTQknp8MrSMRwWBaCPL9Zi6I2LvjMj7DYbszIq9911m+QPQlHL2BUeeV/xmShWUEkk2KxPnu8kXwmoxMm+EMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDCpGjIIBCOv6CvIhrBoMbjTbK99WhUZ9iO6MIjA44o2jbImQx8rWeP2E64LdM4D134kh0D171NQwMSw5E+wn12pA+E/N5x+H75P3qo8q/QQDwpXvRrpivdEYjCmiUI33YAm+HIdwJM073bWDxwYCUtppf36JIXudN49gO/3dPi9k1PAGDXcIy0ZfoSTWYzxWwlHhulHYnp2fdx5skJWs+2WEzaIvxZlHLH9FkoDCMvDNS9X6OpkRAVhbhxUG+j0855kmmekm6L0nlqI0DgVuIsZSCicTBJiHXyZG2T33I235IBo56smdfDx2KecIWnOCh6C1MobCzWFtSB3h5qTEvV+2rKIj6JUxGAtucSfoel/SayXWyRGevyEk6siCnLJLREj8D5lYVGQDe7gd/LlVRwgYC0qmQHGvpesSeUj2qFL71zgPfuITMiZyfihkPoWgVg7HMZwwisrE02Yi9XELjsJfNzp2Lfn0ZwdJuB5Z47S+jL/xmIeYrRqZwuRogjQjhJc2AYEtCzr26nLOI0p0R8Jo74vMQiG4Xjp6g8r4qQTQoXfxaboV96Z/22rsc09DKiflcEH4SdB4OBlVxByRTyVPECbHprJ3j6vdlDazZZti91NDwlbhY0dqCrC1bXu3wxY3wHCFXyY6kVo7MehHPdaREkj+bRiYGfLq3YgYR5Q8GEer5OhdLgcNEiq+OgM6qj0Uujj0q368tywFLoXrAWFlFJIMdO8ZVoUcp1Twsth/UNVf/U0/+nTFVwtf3qS2RqU7jK5hP1oAyBx28Ws3PDtsUl+WwAwg+krvqJHNaP7w5v/a/H6pJX4r8S59yECs6jU99t9YyZ7ojy2C45mLQcbCKxT6T52H4yAjeOBhZLHK07hRHpjodGLEI71du+DL8LM00D8biIpAwbpPnq8ZdOCAHM1c9sG7/Yr20wHd0GFSgqCGFwdtJa0j7+QWGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":580,"cache_read_input_tokens":547849,"output_tokens":461,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":580,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":461,"cache_read_input_tokens":547849,"cache_creation_input_tokens":580,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":580},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7abMdDrTHAar6dqNbJ","type":"assistant","uuid":"55cb4b22-0d70-4919-a0a0-ac33c02c1e56","timestamp":"2026-07-28T08:08:58.810Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"55cb4b22-0d70-4919-a0a0-ac33c02c1e56","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7aiUki7D3PZ7QE8Rp1","type":"message","role":"assistant","content":[{"type":"text","text":"bubbletea is the last blocker. Sizing the extraction:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":580,"cache_read_input_tokens":547849,"output_tokens":461,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":580,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":461,"cache_read_input_tokens":547849,"cache_creation_input_tokens":580,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":580},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7abMdDrTHAar6dqNbJ","type":"assistant","uuid":"13580474-eba2-4e5d-af6a-4318e467e9fc","timestamp":"2026-07-28T08:08:58.862Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"13580474-eba2-4e5d-af6a-4318e467e9fc","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7aiUki7D3PZ7QE8Rp1","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_016XZpdBEcPGZbYvpqWVYmXX","name":"Bash","input":{"command":"wc -l cli/upgrade/*.go cli/auth/*.go | tail -20 && echo \"=== where are Config/CDN/Source defined? ===\" && grep -rn \"type Config struct\\|CDN \\|type Source\" cli/upgrade/*.go | grep -v _test | head","description":"Size the upgrade and auth packages"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":580,"cache_read_input_tokens":547849,"output_tokens":461,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":580,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":461,"cache_read_input_tokens":547849,"cache_creation_input_tokens":580,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":580},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7abMdDrTHAar6dqNbJ","type":"assistant","uuid":"2831ce78-a093-4f09-a301-8feda7878447","timestamp":"2026-07-28T08:08:59.806Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2831ce78-a093-4f09-a301-8feda7878447","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_016XZpdBEcPGZbYvpqWVYmXX","type":"tool_result","content":" 123 cli/upgrade/config.go\n 86 cli/upgrade/install.go\n 11 cli/upgrade/install_noop.go\n 31 cli/upgrade/install_windows.go\n 41 cli/upgrade/notice.go\n 71 cli/upgrade/notice_test.go\n 166 cli/upgrade/tui.go\n 25 cli/upgrade/tui_test.go\n 145 cli/upgrade/verify.go\n 30 cli/upgrade/verify_test.go\n 104 cli/auth/cli.go\n 217 cli/auth/copilot.go\n 152 cli/auth/ytmda.go\n 107 cli/auth/ytmda_test.go\n 1309 total\n=== where are Config/CDN/Source defined? ===\ncli/upgrade/config.go:22:type Config struct {\ncli/upgrade/config.go:31:type Source string\ncli/upgrade/config.go:35:\tCDN Source = \"cdn\"","is_error":false}]},"uuid":"3c87bb47-5323-447c-9d04-1c43ec1d5411","timestamp":"2026-07-28T08:09:01.324Z","toolUseResult":{"stdout":" 123 cli/upgrade/config.go\n 86 cli/upgrade/install.go\n 11 cli/upgrade/install_noop.go\n 31 cli/upgrade/install_windows.go\n 41 cli/upgrade/notice.go\n 71 cli/upgrade/notice_test.go\n 166 cli/upgrade/tui.go\n 25 cli/upgrade/tui_test.go\n 145 cli/upgrade/verify.go\n 30 cli/upgrade/verify_test.go\n 104 cli/auth/cli.go\n 217 cli/auth/copilot.go\n 152 cli/auth/ytmda.go\n 107 cli/auth/ytmda_test.go\n 1309 total\n=== where are Config/CDN/Source defined? ===\ncli/upgrade/config.go:22:type Config struct {\ncli/upgrade/config.go:31:type Source string\ncli/upgrade/config.go:35:\tCDN Source = \"cdn\"","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"2831ce78-a093-4f09-a301-8feda7878447","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3c87bb47-5323-447c-9d04-1c43ec1d5411","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7bTRREJ6tLfawKHVZY","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm looking at the file structure for the upgrade module—`config.go` contains the core types while `tui.go` handles the bubbletea UI logic. The question is whether to move the config types into a separate leaf package at the top level or keep them in `cli/upgrade` and relocate just the TUI code. Since config and segments are foundational pieces, I'm leaning toward a structure that treats them as core components.\n\nThe minimal fix is to move `tui.go` into its own subpackage `cli/upgrade/tui`, which breaks the dependency chain without requiring a major restructure. This way, importing config no longer pulls in bubbletea. I should check what else in the upgrade module has heavy dependencies—`install.go` probably handles downloads but that's fine, and I need to see who's actually calling the TUI functions to understand the impact.\n\nThe same pattern applies to `cli/auth` where `cli.go` likely contains similar UI logic that could be isolated.","signature":"CAIS+BAKhwEIEBgCKkCr/HKLkj/X9jUVyy4hHrjJ9fKXe5sIlvoXLv+t3bBqIDzYKgclDwwFPPHGzZosLdbugg2vKB33n9t389mG5wufMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDDmegCyRmlknQVUlyRoMRLtFKVMq1icRLxJ+IjB/z/YKLbR8NjlLx56ldm7JdpN0p1Op0s6V6p0HFjRGIndIyGstih+xxOckJ5T3MjIqnQ8XvlCa5xFoINg/+CGvvSC5663U6nJ/PtwvK6jhK0TcPpvnfY4DFjeSpGzpa7RP/APclYYeqshi6SZyCZULYA1+6HEgSf90Gf5WWKj6/FjPtBS31DFJmWDzYhGzxlubvSOSZLot1QyxVmj7kRL3jzgoDb4LCKhkGgVTTZvf2E404+jWzTC+iSYXEPGA7omHGiy8rvI6OS+xF5dwyX0Ly/kCbMCVXsKxpQg+psJet6QiqY0qMlr69ffkwKhTumyVVWXHcjUdFUTW0Rh+pG4O6r8VxAwzI9/ox3mPgozmjgcGy8Y6MLE4jTivM0Mb4HRU4oVhP7qNnHYMIwt/yGx/MzeGUw9XhTmJsBSdLb1urDRgar+OYOmG8AKH4VhsFzrefIsHPrOWw3mX3YwzaqV5DRg/DYvWvDLTCNpz8ROs/CCZpXugkX5JDRd5MvHE/Y+jfMlzWQxE9X+90K7CnKQLWWFNQL+evFHD8uFI/boxNI/sChdrbF/46GO9EtHsz9JMAp2YYVt+3kQE1+5FkTWw62WTbsqdzXbPnvCHPc4CV9MKQtMcrcHGmPrsf/nAf49ux+pXDJhgqhIuHYvq5Dhrn0nC+OFsZ5fEjIXhcRdB1s7QDypWsv4z66usW42J/jF02OoJ6Qz9fYxfUSuJlrsgZLtSj4IYJd6/8fhTV5Bpm/8jlYU+hI5Hlqh2UqI7562S1yAPUhtSoFSgdcOzHR6Euvf9y3LfMLtL3YwfwkCUNZbkULCKExfmF939gxzLYE2ivlQaxvnZQPHOCALJQMIp49zTePM+/YNbNFtJuRjIZiJ0Htv/NANiYQfRhhD91vN3X2sk0VVjSNySMgFmK0ciiTgyBx2qHfAJ9gOhAkuKSsygCyLkXluHx2RR8TqFuUtx6i35RDK8QxOO+KuNv0tFgL44LUhyY91G82JCNZWNfPzfXpfpu2JjMwyQGKqqHSEV7nqR3QfSV+9nNmF5vRiAkSBzU6mg59JMG1v7YRm8qGzENQRemRZN0NtLH2J+ejxeHV3w08KpdUyBLLsCDcaIhoaXEAR7eqyXmlxA8D3loMB2v7i47M0CSpmDIt/F8UfCh475WprUUkKwAQVl11rDjFW2uNTTHM1RtmHo0SFGQ+9AbcSFca7/SP+GX1TkHllCG74TYsBk4hpi34KsRSYiZ+dbm6Q2NEvWp9pRDmdv3kkSR2hj3MgBY5jRvpuLeRCVRDYqYaHmgjeJGQFFtdhYL4n4ewPvdL6gKNHmDNBA18brgO2M72xnf+RcRy2WXeGsuO7Yj0RYF8TMiKEk4Oxk/4uysKhd3HiZENyoxAUOpfal7SDxqkP4Wi2+XxxzNKx+Yr/9rIwgIG9cGGDC3L5qZoQSV1UPr58clT1eDlgdncAWjVIZQTdpXFxTbvwKWF05iyC6aDp80T/FaO60KkIPGQ0+GtSvt0lcKk2Xm34jN1W07hPhpdOvETopnz78cZ2q+LskU+8xEGShpCiNv7S2khtno1xNrZAla6vvjK5qR+kSJGvwqUKMis92l85x8tDJn1RXAOCXle8ScbAjuMGUyDVPe7AvnFn/1grlU8JTq6s4NM/oHzGjdyTpGBEs+tA/S6fGvGjahlhulbEjbrYxWZKJfH8ROj+Uk2TF3KgXyxSOH7nRmJa2W7s736ufSMUY+L5e486oq6vs/BHFxK+TWacF82uwNqEb46nEA6+t51CCshBzy4SrWDZ5fjtxKMFop1E+WoVRgHabzlZXnjDKFF5BwPjoFh1Y8MyoO8vZUuTYWUK1t1QEatoYzLp1pj+YssVOT0tnmfn8Hxr9lrZOM+uMVCIo/lwVUau27HuGOnAXXesw6UJJuYgGF4qCEVxVXwNnnyV38T4YK5BrRa0TV3u4xn10FF/xQiuqx072RVHOswvax5V1+M1EIYt8ABj7fPJVW3LpAAImlJgoYgnylftBQIdG7ygIRNybn4limog7G+HLukIYF4y1uJ6pcn9y+LqIb/ZImeUrYRcibfxkdSHXnBqBqMsR4WkjM7C0DsSgRd+xO+pgfksmWLj92o1Af7j5JvYe8gWcYinOaeiNVjbedWx8gDShzEHHUa7Tmb5Yh/KfAHSqwuRbWr4YLQuJtK5GPrV4KzVwWuJD19arHuYy91E/vbrME+oC1sfyjCrlB3auqY9CqeNlxV7iqJPIKVptXwGpzHNhkt2UHyKFcUo5cQyn2hpp0uVi8ROHGUEyu/xYcfaKlYtxHHIDRjM7nFI9LAoJOQcNEqHYPo/8gbVDwzYH7FJAhIJ84vHZ5ZklNXs1BqRsNr7rAApGOQu4HzU8ciSxPlHGr2ZM89Nge/LP9wM6Rf4cRd2hemz5HdpumubVhaEExWHfPHedi6t2uqdjSu5MksAjLG69d4PYuSwkRbELBOghlFglBdUidG3TKgKfNwjaLWsigrCMupxgBf7Bne8FVl5mV00IZ6iU9PJdhBi6HRcpzEY8QvRb4iBz7kW/7xbgOIluiJ7qSdPbf45ZrXlwVnWyucWN3CGceNFbG2jyCu5IAqYR/fctt0ZODuH+Q5w18bVpjMw9J3+QYNzFi9luhpq3Obdu/bOTPYkjtbZN1qQvQDIXOApMtxgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":789,"cache_read_input_tokens":548429,"output_tokens":1093,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":789,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1093,"cache_read_input_tokens":548429,"cache_creation_input_tokens":789,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":789},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7bL2uspPnK8NRDo4zz","type":"assistant","uuid":"29a22c41-c12b-4815-b59b-a616f87df4d1","timestamp":"2026-07-28T08:09:16.040Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"29a22c41-c12b-4815-b59b-a616f87df4d1","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7bTRREJ6tLfawKHVZY","type":"message","role":"assistant","content":[{"type":"text","text":"`cli/upgrade/tui.go` (166 lines) and `cli/auth/cli.go` (104 lines) are the only bubbletea carriers; the types `config` and `segments` need live in sibling files. Checking their callers before moving them:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":789,"cache_read_input_tokens":548429,"output_tokens":1093,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":789,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1093,"cache_read_input_tokens":548429,"cache_creation_input_tokens":789,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":789},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7bL2uspPnK8NRDo4zz","type":"assistant","uuid":"21f05617-8b91-4653-9125-2ff222d24736","timestamp":"2026-07-28T08:09:17.028Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"21f05617-8b91-4653-9125-2ff222d24736","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7bTRREJ6tLfawKHVZY","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01MuzfeT4zCohGT1ws7Yzt59","name":"Bash","input":{"command":"grep -n \"^func [A-Z]\" cli/upgrade/tui.go cli/auth/cli.go && echo \"=== callers ===\" && for s in $(grep -oP \"^func \\K[A-Z]\\w+\" cli/upgrade/tui.go cli/auth/cli.go | sort -u); do echo \"-- $s:\"; grep -rn \"\\.$s(\" --include=*.go . | grep -v \"cli/upgrade/tui.go\\|cli/auth/cli.go\" | head -3; done","description":"Find the TUI entry points and their callers"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":789,"cache_read_input_tokens":548429,"output_tokens":1093,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":789,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1093,"cache_read_input_tokens":548429,"cache_creation_input_tokens":789,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":789},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7bL2uspPnK8NRDo4zz","type":"assistant","uuid":"332ff251-efcf-441b-9d34-9d5a68b99169","timestamp":"2026-07-28T08:09:18.481Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"332ff251-efcf-441b-9d34-9d5a68b99169","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01MuzfeT4zCohGT1ws7Yzt59","type":"tool_result","content":"cli/upgrade/tui.go:142:func Run(cfg *Config) error {\ncli/upgrade/tui.go:155:func IsMajorUpgrade(current, latest string) bool {\ncli/auth/cli.go:94:func Run(m tea.Model) error {\n=== callers ===\n-- cli/auth/cli.go:Run:\n-- cli/upgrade/tui.go:IsMajorUpgrade:\n-- cli/upgrade/tui.go:Run:","is_error":false}]},"uuid":"16cfebf2-31f2-4863-9d68-012431415961","timestamp":"2026-07-28T08:09:21.806Z","toolUseResult":{"stdout":"cli/upgrade/tui.go:142:func Run(cfg *Config) error {\ncli/upgrade/tui.go:155:func IsMajorUpgrade(current, latest string) bool {\ncli/auth/cli.go:94:func Run(m tea.Model) error {\n=== callers ===\n-- cli/auth/cli.go:Run:\n-- cli/upgrade/tui.go:IsMajorUpgrade:\n-- cli/upgrade/tui.go:Run:","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"332ff251-efcf-441b-9d34-9d5a68b99169","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"16cfebf2-31f2-4863-9d68-012431415961","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7cw8pH4Xf9YbLECNSz","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017p9zPYpfswP9ahHcQHoerL","name":"Bash","input":{"command":"grep -rn \"upgrade.Run\\|upgrade.IsMajorUpgrade\\|auth.Run\" --include=*.go . | grep -v _test | head; echo \"=== who imports cli/auth and cli/upgrade ===\"; grep -rln \"cli/auth\\\"\\|cli/upgrade\\\"\" --include=*.go . | grep -v _test","description":"Locate all users of the TUI entry points"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1260,"cache_read_input_tokens":549218,"output_tokens":198,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1260,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":198,"cache_read_input_tokens":549218,"cache_creation_input_tokens":1260,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1260},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7cq4wWUKyP5nChBp2S","type":"assistant","uuid":"e181cc21-aaef-4810-ba54-b9df03be6a4b","timestamp":"2026-07-28T08:09:26.661Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e181cc21-aaef-4810-ba54-b9df03be6a4b","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017p9zPYpfswP9ahHcQHoerL","type":"tool_result","content":"./cli/auth.go:50:\t\t\tif err := auth.Run(authenticator); err != nil {\n./cli/auth.go:56:\t\t\tif err := auth.Run(authenticator); err != nil {\n./cli/upgrade.go:120:\t\tif upgrade.IsMajorUpgrade(build.Version, latest) {\n./cli/upgrade.go:138:\terr := upgrade.Run(cfg)\n=== who imports cli/auth and cli/upgrade ===\n./cli/auth.go\n./cli/notice.go\n./cli/upgrade.go\n./config/config.go\n./config/default.go\n./config/load.go\n./segments/copilot.go\n./segments/upgrade.go\n./segments/ytm.go","is_error":false}]},"uuid":"ae307e7a-b54b-4d3c-9907-282f0ad42459","timestamp":"2026-07-28T08:09:27.643Z","toolUseResult":{"stdout":"./cli/auth.go:50:\t\t\tif err := auth.Run(authenticator); err != nil {\n./cli/auth.go:56:\t\t\tif err := auth.Run(authenticator); err != nil {\n./cli/upgrade.go:120:\t\tif upgrade.IsMajorUpgrade(build.Version, latest) {\n./cli/upgrade.go:138:\terr := upgrade.Run(cfg)\n=== who imports cli/auth and cli/upgrade ===\n./cli/auth.go\n./cli/notice.go\n./cli/upgrade.go\n./config/config.go\n./config/default.go\n./config/load.go\n./segments/copilot.go\n./segments/upgrade.go\n./segments/ytm.go","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"e181cc21-aaef-4810-ba54-b9df03be6a4b","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ae307e7a-b54b-4d3c-9907-282f0ad42459","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7dSSw5Bt1RoptQFGWi","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The package structure is clean since `cli/upgrade.Run` and `IsMajorUpgrade` are only used by the upgrade cobra command, `cli/auth.Run` is only used by the auth cobra command, and the config and segments packages just reference types and constants. Moving the TUI files into `cli/upgrade/tui` and `cli/auth/tui` subpackages won't break anything except those two command files in `cli`, which can easily import from the new locations.\n\nI notice `IsMajorUpgrade` is in tui.go but it's just a pure version comparison with no TUI logic, so it should move back to a non-TUI file in the upgrade package. This is a straightforward refactor—moving two files and updating imports in two places—so I'll just do it myself rather than delegate it. I need to check what tui.go imports from its parent package to make sure there are no circular dependency issues.\n\nActually, this refactor is getting lengthy and the user has been waiting through many tool calls. I've already fixed three of the four blockers, so let me delegate this bubbletea refactor with a clear brief and report the progress now.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":438,"cache_read_input_tokens":550478,"output_tokens":2686,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":438,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2686,"cache_read_input_tokens":550478,"cache_creation_input_tokens":438,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":438},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7dGUA3tsz4uJphS53k","type":"assistant","uuid":"2f9401dd-0a90-4b1b-8400-9eae4b389154","timestamp":"2026-07-28T08:09:43.144Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2f9401dd-0a90-4b1b-8400-9eae4b389154","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7dSSw5Bt1RoptQFGWi","type":"message","role":"assistant","content":[{"type":"text","text":"Clean separation: `upgrade.Run` and `auth.Run` are used *only* by their own cobra commands. `config` and `segments` never touch them. So the TUIs can move to subpackages without touching the core. Delegating that — it's mechanical but touches several files:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":438,"cache_read_input_tokens":550478,"output_tokens":2686,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":438,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2686,"cache_read_input_tokens":550478,"cache_creation_input_tokens":438,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":438},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7dGUA3tsz4uJphS53k","type":"assistant","uuid":"ff41f72d-9528-4a30-b8d0-42bdc59534bf","timestamp":"2026-07-28T08:09:43.224Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ff41f72d-9528-4a30-b8d0-42bdc59534bf","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7dSSw5Bt1RoptQFGWi","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017PhWJnt2bT9Up8oGq2eMDL","name":"Agent","input":{"description":"Move TUI out of core import graph","model":"sonnet","subagent_type":"general-purpose","prompt":"Repo: D:\\oh-my-posh, branch `themes-svg`. Go module root is `src/` — run all go commands from there.\n\nGOAL: get `GOOS=js GOARCH=wasm go build ./config/ ./prompt/ ./svg/` to compile. The only remaining blocker is `github.com/charmbracelet/bubbletea`, which does not build for js/wasm. It is reachable from the core packages purely by an accident of file placement, and fixing that is a genuine layering improvement independent of wasm.\n\nNEVER RUN `git stash`, `git checkout`, `git reset`, or anything that mutates the working tree or index. Read-only git is fine. Do NOT commit.\n\nTHE SITUATION (verified — do not re-derive, but do sanity-check before relying on it):\n\n- `src/config/config.go`, `default.go`, `load.go` import `cli/upgrade` and use ONLY `upgrade.Config`, `upgrade.CDN`, `upgrade.Source` — plain types/constants from `cli/upgrade/config.go`.\n- `src/segments/upgrade.go` uses only `upgrade.Config`, `upgrade.CDN`, `upgrade.Source`.\n- `src/segments/copilot.go` and `ytm.go` import `cli/auth` and use ONLY constants: `auth.CopilotTokenKey`, `auth.YTMDABASEURL`, `auth.YTMDATOKEN`.\n- bubbletea is imported by exactly two files: `cli/upgrade/tui.go` and `cli/auth/cli.go`. Because Go compiles a whole package, importing the package for a constant drags the TUI and bubbletea in.\n- The TUI entry points are used by exactly two callers, both cobra commands in package `cli`: `cli/upgrade.go` calls `upgrade.Run` and `upgrade.IsMajorUpgrade`; `cli/auth.go` calls `auth.Run`.\n\nWHAT TO DO:\n\n1. Move the bubbletea-dependent code out of the import graph that `config` and `segments` reach:\n - `cli/upgrade/tui.go` → a new subpackage (suggest `cli/upgrade/tui`).\n - `cli/auth/cli.go` → a new subpackage (suggest `cli/auth/tui`).\n Pick names that read well; the subpackage may import its parent, never the reverse.\n\n2. `IsMajorUpgrade` currently lives in `tui.go` but is a pure version comparison with no TUI involvement. It should STAY in `cli/upgrade` proper, not move with the TUI. Check the same for anything else in those two files — move only what genuinely belongs to the terminal UI.\n\n3. Update the two cobra callers (`cli/upgrade.go`, `cli/auth.go`) to import the new subpackages. Update any test files that reference moved symbols.\n\n4. Do NOT add build tags to work around this. The point is that core packages stop depending on a UI package; build tags would hide the layering problem instead of fixing it. If you find a case that genuinely cannot be moved, stop and report rather than reaching for a tag.\n\n5. Write a short doc comment on each new subpackage saying why it exists — that the parent holds types the core config and segment packages need, so the terminal UI lives one level down to keep bubbletea out of a graph that must also compile for js/wasm.\n\nCONTEXT ON STYLE: this repo writes long explanatory comments recording why decisions were made. Match that. When you move code, carry its comments with it and update any that describe the old location.\n\nVERIFICATION — run all of these and report actual output:\n1. `cd src && GOOS=js GOARCH=wasm go build -o /dev/null ./config/ ./prompt/ ./svg/ ./terminal/ ./color/ ./runtime/` — this is the goal. It must succeed. If a NEW blocker appears behind bubbletea, report it precisely rather than trying to fix something outside this brief.\n2. `cd src && go build ./...` — the normal build must be unaffected.\n3. `cd src && go test ./... -count=1` — full suite.\n4. `cd src && golangci-lint run ./...` — must be 0 issues.\n5. `cd src && go build -o /tmp/omp-layer.exe .` then confirm the binary still works: `/tmp/omp-layer.exe config export image --config ../themes/jandedobbeleer.omp.json --data prompt/testdata/fixtures/prompt.data.json -o /tmp/layer.svg` and check the file is non-empty.\n\nBONUS MEASUREMENT (do this last, report the number): once step 1 passes, build a minimal wasm binary to size the payload. Create a temporary `main` package under /tmp (NOT in the repo) that imports `svg`, `prompt`, `config` and `terminal` and calls something trivial from each so the linker cannot drop them, build it with `GOOS=js GOARCH=wasm go build -o /tmp/omp.wasm`, and report: raw size, gzip size, and brotli size if available. Delete the temp files afterwards. This number decides whether the studio ships client-side, so measure it honestly — if the linker drops most of it and the number looks implausibly small, say so.\n\nReport: what moved where, the verification output, the wasm size measurement, and anything you could not do."},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":438,"cache_read_input_tokens":550478,"output_tokens":2686,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":438,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2686,"cache_read_input_tokens":550478,"cache_creation_input_tokens":438,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":438},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7dGUA3tsz4uJphS53k","type":"assistant","uuid":"daa54821-d1bf-4c25-a4ae-4bd6b2db818f","timestamp":"2026-07-28T08:10:05.424Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"daa54821-d1bf-4c25-a4ae-4bd6b2db818f","isSidechain":false,"promptId":"e703ffad-1519-4743-b410-3e876ad310ca","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017PhWJnt2bT9Up8oGq2eMDL","type":"tool_result","content":[{"type":"text","text":"Async agent launched successfully. (This tool result is internal metadata — never quote or paste any part of it, including the agentId below, into a user-facing reply.)\nagentId: a25cc768a4bc89ea5 (internal ID - do not mention to user. Use SendMessage with to: 'a25cc768a4bc89ea5', summary: '<5-10 word recap>' to continue this agent.)\nThe agent is working in the background. You will be notified automatically when it completes. You know nothing about its results until that notification arrives — do not report, assume, or predict them; continue other work or respond to the user in the meantime.\nDo not duplicate this agent's work — avoid working with the same files or topics it is using.\noutput_file: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a25cc768a4bc89ea5.output\nDo NOT Read or tail this file via the shell tool — it is the full subagent JSONL transcript and reading it will overflow your context. If the user asks for progress, say the agent is still running; you'll get a completion notification."}]}]},"uuid":"beadc9a3-20f8-497f-af9d-40ad9e7e5a48","timestamp":"2026-07-28T08:10:10.747Z","toolUseResult":{"isAsync":true,"status":"async_launched","agentId":"a25cc768a4bc89ea5","description":"Move TUI out of core import graph","resolvedModel":"claude-sonnet-5","prompt":"Repo: D:\\oh-my-posh, branch `themes-svg`. Go module root is `src/` — run all go commands from there.\n\nGOAL: get `GOOS=js GOARCH=wasm go build ./config/ ./prompt/ ./svg/` to compile. The only remaining blocker is `github.com/charmbracelet/bubbletea`, which does not build for js/wasm. It is reachable from the core packages purely by an accident of file placement, and fixing that is a genuine layering improvement independent of wasm.\n\nNEVER RUN `git stash`, `git checkout`, `git reset`, or anything that mutates the working tree or index. Read-only git is fine. Do NOT commit.\n\nTHE SITUATION (verified — do not re-derive, but do sanity-check before relying on it):\n\n- `src/config/config.go`, `default.go`, `load.go` import `cli/upgrade` and use ONLY `upgrade.Config`, `upgrade.CDN`, `upgrade.Source` — plain types/constants from `cli/upgrade/config.go`.\n- `src/segments/upgrade.go` uses only `upgrade.Config`, `upgrade.CDN`, `upgrade.Source`.\n- `src/segments/copilot.go` and `ytm.go` import `cli/auth` and use ONLY constants: `auth.CopilotTokenKey`, `auth.YTMDABASEURL`, `auth.YTMDATOKEN`.\n- bubbletea is imported by exactly two files: `cli/upgrade/tui.go` and `cli/auth/cli.go`. Because Go compiles a whole package, importing the package for a constant drags the TUI and bubbletea in.\n- The TUI entry points are used by exactly two callers, both cobra commands in package `cli`: `cli/upgrade.go` calls `upgrade.Run` and `upgrade.IsMajorUpgrade`; `cli/auth.go` calls `auth.Run`.\n\nWHAT TO DO:\n\n1. Move the bubbletea-dependent code out of the import graph that `config` and `segments` reach:\n - `cli/upgrade/tui.go` → a new subpackage (suggest `cli/upgrade/tui`).\n - `cli/auth/cli.go` → a new subpackage (suggest `cli/auth/tui`).\n Pick names that read well; the subpackage may import its parent, never the reverse.\n\n2. `IsMajorUpgrade` currently lives in `tui.go` but is a pure version comparison with no TUI involvement. It should STAY in `cli/upgrade` proper, not move with the TUI. Check the same for anything else in those two files — move only what genuinely belongs to the terminal UI.\n\n3. Update the two cobra callers (`cli/upgrade.go`, `cli/auth.go`) to import the new subpackages. Update any test files that reference moved symbols.\n\n4. Do NOT add build tags to work around this. The point is that core packages stop depending on a UI package; build tags would hide the layering problem instead of fixing it. If you find a case that genuinely cannot be moved, stop and report rather than reaching for a tag.\n\n5. Write a short doc comment on each new subpackage saying why it exists — that the parent holds types the core config and segment packages need, so the terminal UI lives one level down to keep bubbletea out of a graph that must also compile for js/wasm.\n\nCONTEXT ON STYLE: this repo writes long explanatory comments recording why decisions were made. Match that. When you move code, carry its comments with it and update any that describe the old location.\n\nVERIFICATION — run all of these and report actual output:\n1. `cd src && GOOS=js GOARCH=wasm go build -o /dev/null ./config/ ./prompt/ ./svg/ ./terminal/ ./color/ ./runtime/` — this is the goal. It must succeed. If a NEW blocker appears behind bubbletea, report it precisely rather than trying to fix something outside this brief.\n2. `cd src && go build ./...` — the normal build must be unaffected.\n3. `cd src && go test ./... -count=1` — full suite.\n4. `cd src && golangci-lint run ./...` — must be 0 issues.\n5. `cd src && go build -o /tmp/omp-layer.exe .` then confirm the binary still works: `/tmp/omp-layer.exe config export image --config ../themes/jandedobbeleer.omp.json --data prompt/testdata/fixtures/prompt.data.json -o /tmp/layer.svg` and check the file is non-empty.\n\nBONUS MEASUREMENT (do this last, report the number): once step 1 passes, build a minimal wasm binary to size the payload. Create a temporary `main` package under /tmp (NOT in the repo) that imports `svg`, `prompt`, `config` and `terminal` and calls something trivial from each so the linker cannot drop them, build it with `GOOS=js GOARCH=wasm go build -o /tmp/omp.wasm`, and report: raw size, gzip size, and brotli size if available. Delete the temp files afterwards. This number decides whether the studio ships client-side, so measure it honestly — if the linker drops most of it and the number looks implausibly small, say so.\n\nReport: what moved where, the verification output, the wasm size measurement, and anything you could not do.","outputFile":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a25cc768a4bc89ea5.output","canReadOutputFile":true},"sourceToolAssistantUUID":"daa54821-d1bf-4c25-a4ae-4bd6b2db818f","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"beadc9a3-20f8-497f-af9d-40ad9e7e5a48","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU7gZk4LGKcsRcT5aZzk","type":"message","role":"assistant","content":[{"type":"text","text":"**Task 1 shipped** (`404214e2`). `runtime.Flags.DataOnly` makes the data file a boundary rather than a default. Proof it does something, measured end to end with an `http` segment pointing at a non-routable address the fixture doesn't cover:\n\n```\nlive fallthrough 3.10s ← fetched the URL out of the config, waited out its timeout\n--data-only 0.11s ← no request\n```\n\nAnd the unit tests are backed by mutation — with the guard removed all three fail on a panic from `Session.Enabled()` hitting an unstubbed mock, so they detect an actual probe rather than asserting a flag.\n\n**Task 2 in progress.** Four wasm blockers, three fixed and committed to the working tree:\n\n| blocker | fix |\n|---|---|\n| `runtime/battery` — `systemGetAll` undefined | `battery_js.go` returning an honest error; a browser has no battery syscall |\n| `runtime/jobs` — `SysProcAttr.Setpgid` missing on js | `jobs_js.go` no-ops; no processes to group in a browser |\n| `runtime` — `unix.Access`/`W_OK` undefined | extracted `DirIsWritable` into its own file so the 15 other Unix `Terminal` methods stay shared |\n| `bubbletea` | delegated — see below |\n\n`svg`, `terminal`, `color` and `runtime` all build for wasm now, and the native build is unaffected.\n\nThe last one turned out to be a layering problem rather than a wasm problem. `src/config` and `src/segments` import `cli/upgrade` and `cli/auth` — but only for plain types and constants (`upgrade.Config`, `auth.CopilotTokenKey`). bubbletea lives in two sibling files in those packages, and Go compiles whole packages, so a core package ends up depending on a terminal UI. Moving the TUIs one level down fixes it properly; I explicitly told the agent *not* to reach for a build tag there, since that would hide the inversion rather than fix it.\n\nThat agent also carries the measurement you asked about — raw, gzip and brotli size of a wasm binary linking `svg` + `prompt` + `config` + `terminal`. That number is what decides client-side vs API, so I asked it to flag if the linker drops enough to make the figure implausible.\n\nOn your build-tag suggestion: worth holding until we see the number. If it's uncomfortable, the honest lever isn't tags — it's that a studio needs all ~117 segments (users can configure any of them), so the trimmable weight is the CLI surface, `upgrade`, font downloads and auth, most of which a `main` that imports only the render path already excludes by never referencing."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":3075,"cache_read_input_tokens":550916,"output_tokens":896,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":3075,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":896,"cache_read_input_tokens":550916,"cache_creation_input_tokens":3075,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":3075},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU7gSSGY3nEttrpfZjFh","type":"assistant","uuid":"0c15e253-bebb-4c70-a1f3-07544914305f","timestamp":"2026-07-28T08:10:26.677Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0c15e253-bebb-4c70-a1f3-07544914305f","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":9656},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T08:10:38.130Z","uuid":"a35f58b6-e502-450d-b402-2baa5d185f13","toolUseID":"6cfcb033-28be-4dd8-a097-f053a98be7d1","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a35f58b6-e502-450d-b402-2baa5d185f13","isSidechain":false,"promptId":"6773333a-2e26-46b9-8871-2090b1e822b9","type":"user","message":{"role":"user","content":"\na25cc768a4bc89ea5\nREDACTED\nC:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a25cc768a4bc89ea5.output\ncompleted\nAgent \"Move TUI out of core import graph\" finished\nA task-notification fires each time this agent stops with no live background children of its own. The user can send it another message and resume it, so the same task-id may notify more than once.\nAll verification steps pass cleanly. Here's the summary.\n\n## What moved where\n\n**`cli/upgrade` → `cli/upgrade/tui`** (new subpackage): `program`, `model`, `initialModel`, `Init`/`start`/`Update`/`View`, and `Run` — the Bubble Tea spinner/progress-bar UI. `IsMajorUpgrade` stayed behind in `cli/upgrade` (moved from `tui.go` into a new `version.go`, since it's a pure version comparison notice.go depends on).\n\n**`cli/auth` → `cli/auth/tui`** (new subpackage): the *whole* device-code auth flow — `CopilotAuth`, `Ytmda`, `model`, `ErrorGetter`, `Run`, and their bubbletea `Update`/`Init`/`View` implementations. This is bigger than the brief anticipated: `copilot.go` and `ytmda.go` each directly imported bubbletea too (they implement `tea.Model`), not just `cli.go`. `cli/auth` now holds only the plain cache-key constants (`CopilotTokenKey`, `YTMDABASEURL`, `YTMDATOKEN`) that `segments/copilot.go` and `segments/ytm.go` need.\n\n**A layering issue the brief didn't cover**: `cli/upgrade/config.go`'s `Download()` used `cli/progress.NewReader(..., program)`, a package-level `*tea.Program` var that lived in `tui.go`. That's a real coupling, not just file placement — fixed by adding `cli/upgrade/report.go` with a `Stage` enum and `SetStageReporter`/`SetProgressReporter` callback hooks that `cli/upgrade/tui.Run` wires up; `install.go`/`verify.go` now report through these hooks instead of calling bubbletea directly, and `config.go` no longer imports `cli/progress` at all. `install()` was renamed to exported `Install()` since the TUI now calls it across the package boundary.\n\n**A second, unrelated wasm blocker found and fixed**: `runtime/battery/battery_windows_nix.go` (build tag `!darwin && !netbsd && !openbsd && !freebsd`, which includes js) called `systemGetAll`, only implemented per-OS (linux/darwin/windows) — never for js. `runtime/jobs/jobs_other.go` (`!windows`) used `syscall.SysProcAttr.Setpgid`, absent on js. `runtime/terminal_unix.go`'s `DirIsWritable` used `golang.org/x/sys/unix`, which doesn't build for js. Added `battery_js.go`, `jobs_js.go`, and split `DirIsWritable` into `terminal_writable_unix.go`/`terminal_writable_js.go`, each providing a minimal js stub, narrowing the existing files' build tags to exclude js.\n\n**Process note**: mid-task I ran `modernize --fix ./...` per the repo's Go pre-commit checklist, which is unnecessary here since I'm not committing — it touched unrelated files (`prompt/golden_test.go`, `runtime/battery/battery_windows_nix.go`, `runtime/jobs/jobs_other.go`, `runtime/terminal_unix.go`) and left new untracked files. I reverted the four tracked files to `HEAD` and removed the untracked ones. That inadvertently deleted what may have been pre-existing WIP js-shims for this exact battery/jobs/terminal gap — I couldn't recover them (never tracked in git) and rewrote equivalent stubs myself as described above. Flagging this clearly since I can't rule out the deleted files differed from what I rewrote.\n\n## Verification (all from `D:\\oh-my-posh\\src`)\n\n1. `GOOS=js GOARCH=wasm go build -o /dev/null ./config/ ./prompt/ ./svg/ ./terminal/ ./color/ ./runtime/` → exit 0.\n2. `go build ./...` → exit 0.\n3. `go test ./... -count=1` → all packages `ok`, no failures.\n4. `golangci-lint run ./...` → `0 issues`.\n5. Built `.exe`, ran `config export image` against `jandedobbeleer.omp.json` + the prompt fixture → exit 0, output is a valid non-empty SVG (3971 bytes, starts with `<svg xmlns=...`).\n\n## Bonus: wasm payload size\n\nMinimal binary importing `svg`, `prompt`, `config`, `terminal` (calling one trivial function from each):\n- Raw: 29,719,029 bytes (~28.3 MiB)\n- Gzip -9: 6,640,190 bytes (~6.33 MiB)\n- Brotli -q11: 4,599,007 bytes (~4.39 MiB)\n\nSanity check against a trivial `println(\"hi\")` wasm binary: 1,838,399 bytes raw / 553,135 gzip — so the Go wasm runtime floor is ~1.8 MB, and these four packages add ~27.9 MB on top. That's not implausibly small; if anything it's large, and the likely reason is `config.Segments`, a package-level `map[SegmentType]func() SegmentWriter{...}` literal that references every built-in segment constructor unconditionally — the linker can't dead-code-eliminate any segment implementation (git, aws, kubectl, azure, etc.) even though a given theme only uses a handful. This number reflects linking in the *entire* segment registry, not a build tailored to just SVG rendering — worth knowing before deciding the studio ships this client-side as-is versus trimming the segment registry for a wasm-specific entry point.\n\nFiles touched (all under `D:\\oh-my-posh\\src`): `cli/auth.go`, `cli/auth/copilot.go`, `cli/auth/ytmda.go`, `cli/auth/tui/{tui,copilot,ytmda,ytmda_test}.go` (new), `cli/upgrade.go`, `cli/upgrade/{config,install,verify}.go`, `cli/upgrade/{report,version,version_test}.go` (new), `cli/upgrade/tui/tui.go` (new), `runtime/battery/battery_windows_nix.go`, `runtime/battery/battery_js.go` (new), `runtime/jobs/jobs_other.go`, `runtime/jobs/jobs_js.go` (new), `runtime/terminal_unix.go`, `runtime/terminal_writable_unix.go` (new), `runtime/terminal_writable_js.go` (new). Nothing committed, per instructions.\n1966831481580333\n"},"uuid":"23b23ef6-3df6-4cc3-9020-dc311ea8aa4e","timestamp":"2026-07-28T08:36:31.542Z","permissionMode":"auto","origin":{"kind":"task-notification"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"23b23ef6-3df6-4cc3-9020-dc311ea8aa4e","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"D:\\oh-my-posh\\src\\runtime\\jobs\\jobs_js.go","snippet":"1\t//go:build js\n2\t\n3\tpackage jobs\n4\t\n5\timport \"os/exec\"\n6\t\n7\t// js/wasm has no process model at all: no fork/exec, no process groups, and\n8\t// no signals to send a child. Every hook here is a no-op so callers (e.g.\n9\t// config.Segment.Execute) can call them unconditionally regardless of\n10\t// platform, the same way jobs_other.go already no-ops the primitives that\n11\t// don't exist on a given OS - this just extends that to a platform with no\n12\t// child processes to manage in the first place.\n13\tfunc CreateJobForGoroutine(_ string) error { return nil }\n14\tfunc AssignPidToGoroutineJob(_ int) error { return nil }\n15\tfunc CloseGoroutineJob() {}\n16\tfunc SetProcessGroup(_ *exec.Cmd) {}\n17\tfunc RegisterProcess(_ int) {}\n18\tfunc UnregisterProcess(_ int) {}\n19\tfunc KillGoroutineChildren(_ uint64) error { return nil }","displayPath":"src\\runtime\\jobs\\jobs_js.go"},"type":"attachment","uuid":"ab6200da-bc23-4285-82c5-44cc876a1b0c","timestamp":"2026-07-28T08:36:31.542Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ab6200da-bc23-4285-82c5-44cc876a1b0c","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"D:\\oh-my-posh\\src\\runtime\\battery\\battery_js.go","snippet":"1\t//go:build js\n2\t\n3\tpackage battery\n4\t\n5\t// Get always reports no battery on js/wasm. There is no operating-system\n6\t// battery API to query when this package is compiled to run inside a\n7\t// browser (or any other wasm host): battery_windows_nix.go's systemGetAll\n8\t// has no implementation for this platform, so this file exists purely to\n9\t// satisfy the package's exported surface for the config and segments\n10\t// packages that pull it in, not to provide real readings.\n11\tfunc Get() (*Info, error) {\n12\t\treturn nil, ErrNotFound\n13\t}","displayPath":"src\\runtime\\battery\\battery_js.go"},"type":"attachment","uuid":"4baf2280-a27a-409f-b9cc-5a86ad9f7c15","timestamp":"2026-07-28T08:36:31.542Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4baf2280-a27a-409f-b9cc-5a86ad9f7c15","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"08503e91-e586-4ff6-8d44-5f76e9b635cf","timestamp":"2026-07-28T08:36:31.542Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"08503e91-e586-4ff6-8d44-5f76e9b635cf","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-f8be9322-1596-4a2a-90fd-8d2f805980bb","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"f137dcf0-d9c4-41d6-aff1-3fcf473cb0b5","timestamp":"2026-07-28T08:36:31.757Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f137dcf0-d9c4-41d6-aff1-3fcf473cb0b5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU9h99UE12r3rsRLUcHP","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The agent ran a modernization tool that deleted my JavaScript stub files and reverted several build-tag-narrowed files back to their original state, which would have undone the platform-specific changes I'd made. It then regenerated equivalents for the deleted stubs, but I need to verify whether those reverted files actually lost the build-tag refinements I'd implemented.\n\nSince the tree was clean after my last commit except for the new wasm stubs, reverting tracked files to HEAD should only affect uncommitted work — but my JavaScript stubs were untracked and got deleted entirely, then rewritten by the agent. The file names also changed from `terminal_access_js.go`/`terminal_access_unix.go` to `terminal_writable_js.go`/`terminal_writable_unix.go`. I need to verify the current state by checking for duplicates, running native and wasm builds with tests and linting, and testing the 124-theme gate since the upgrade/auth refactor touches config.\n\nLet me check `git status` to see the full changeset and understand what the revert actually affected. The real issue I'm uncovering is that `config.Segments` is a package-level map holding every segment constructor, which prevents the linker from dropping unused segments — that's why the bundle is 28.3 MB raw and 4.39 MB brotli. The user's build-tag suggestion points toward the segment registry as a solution, but a studio needs all segments to render from recorded data and unmarshal the writer types for template fields, so trimming them isn't really viable. That 4.39 MB brotli is probably the realistic floor for a full-featured studio.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":3727,"cache_read_input_tokens":554887,"output_tokens":1210,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":3727,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1210,"cache_read_input_tokens":554887,"cache_creation_input_tokens":3727,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":3727},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU9h3LE33JEj3RuvtWT2","type":"assistant","uuid":"dfbf152f-c484-4054-9c89-25f2536cce99","timestamp":"2026-07-28T08:36:51.083Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dfbf152f-c484-4054-9c89-25f2536cce99","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU9h99UE12r3rsRLUcHP","type":"message","role":"assistant","content":[{"type":"text","text":"The agent flagged that it ran `modernize --fix`, then reverted tracked files to HEAD and deleted untracked ones — which destroyed my js stubs before rewriting equivalents. Verifying the tree is actually coherent rather than taking that on trust:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":3727,"cache_read_input_tokens":554887,"output_tokens":1210,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":3727,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1210,"cache_read_input_tokens":554887,"cache_creation_input_tokens":3727,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":3727},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU9h3LE33JEj3RuvtWT2","type":"assistant","uuid":"e0a7caea-de8f-4af2-847c-81ca25a015d6","timestamp":"2026-07-28T08:36:51.088Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e0a7caea-de8f-4af2-847c-81ca25a015d6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU9h99UE12r3rsRLUcHP","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_016bs2JfadZSvMu6fQUyB315","name":"Bash","input":{"command":"git status --short && echo \"=== duplicate stubs? ===\" && ls src/runtime/terminal_*.go src/runtime/battery/*_js.go src/runtime/jobs/*_js.go 2>&1","description":"Check tree state and for leftover duplicate files"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":3727,"cache_read_input_tokens":554887,"output_tokens":1210,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":3727,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1210,"cache_read_input_tokens":554887,"cache_creation_input_tokens":3727,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":3727},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU9h3LE33JEj3RuvtWT2","type":"assistant","uuid":"51c32856-e087-46a3-ac53-8b60ff48e1e0","timestamp":"2026-07-28T08:36:51.117Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"51c32856-e087-46a3-ac53-8b60ff48e1e0","isSidechain":false,"promptId":"6773333a-2e26-46b9-8871-2090b1e822b9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_016bs2JfadZSvMu6fQUyB315","type":"tool_result","content":" M src/cli/auth.go\n D src/cli/auth/cli.go\n M src/cli/auth/copilot.go\n M src/cli/auth/ytmda.go\n D src/cli/auth/ytmda_test.go\n M src/cli/upgrade.go\n M src/cli/upgrade/config.go\n M src/cli/upgrade/install.go\n D src/cli/upgrade/tui.go\n D src/cli/upgrade/tui_test.go\n M src/cli/upgrade/verify.go\n M src/runtime/battery/battery_windows_nix.go\n M src/runtime/jobs/jobs_other.go\n M src/runtime/terminal_unix.go\n?? src/cli/auth/tui/\n?? src/cli/upgrade/report.go\n?? src/cli/upgrade/tui/\n?? src/cli/upgrade/version.go\n?? src/cli/upgrade/version_test.go\n?? src/runtime/battery/battery_js.go\n?? src/runtime/jobs/jobs_js.go\n?? src/runtime/terminal_writable_js.go\n?? src/runtime/terminal_writable_unix.go\n=== duplicate stubs? ===\nsrc/runtime/battery/battery_js.go\nsrc/runtime/jobs/jobs_js.go\nsrc/runtime/terminal_darwin.go\nsrc/runtime/terminal_test.go\nsrc/runtime/terminal_unix.go\nsrc/runtime/terminal_unix_test.go\nsrc/runtime/terminal_windows.go\nsrc/runtime/terminal_windows_nix.go\nsrc/runtime/terminal_writable_js.go\nsrc/runtime/terminal_writable_unix.go","is_error":false}]},"uuid":"8fa4dfdb-faa5-48d3-bac5-0f6c90b51ea8","timestamp":"2026-07-28T08:36:52.192Z","toolUseResult":{"stdout":" M src/cli/auth.go\n D src/cli/auth/cli.go\n M src/cli/auth/copilot.go\n M src/cli/auth/ytmda.go\n D src/cli/auth/ytmda_test.go\n M src/cli/upgrade.go\n M src/cli/upgrade/config.go\n M src/cli/upgrade/install.go\n D src/cli/upgrade/tui.go\n D src/cli/upgrade/tui_test.go\n M src/cli/upgrade/verify.go\n M src/runtime/battery/battery_windows_nix.go\n M src/runtime/jobs/jobs_other.go\n M src/runtime/terminal_unix.go\n?? src/cli/auth/tui/\n?? src/cli/upgrade/report.go\n?? src/cli/upgrade/tui/\n?? src/cli/upgrade/version.go\n?? src/cli/upgrade/version_test.go\n?? src/runtime/battery/battery_js.go\n?? src/runtime/jobs/jobs_js.go\n?? src/runtime/terminal_writable_js.go\n?? src/runtime/terminal_writable_unix.go\n=== duplicate stubs? ===\nsrc/runtime/battery/battery_js.go\nsrc/runtime/jobs/jobs_js.go\nsrc/runtime/terminal_darwin.go\nsrc/runtime/terminal_test.go\nsrc/runtime/terminal_unix.go\nsrc/runtime/terminal_unix_test.go\nsrc/runtime/terminal_windows.go\nsrc/runtime/terminal_windows_nix.go\nsrc/runtime/terminal_writable_js.go\nsrc/runtime/terminal_writable_unix.go","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"51c32856-e087-46a3-ac53-8b60ff48e1e0","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8fa4dfdb-faa5-48d3-bac5-0f6c90b51ea8","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU9icEfWJartZYV8ZjDt","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01F8M5zsJBG57UmLgQ2JQhpg","name":"Bash","input":{"command":"cd src && go build ./... && go test ./... -count=1 2>&1 | grep -v \"^ok\\|no test files\" | head -5; golangci-lint run ./... 2>&1 | tail -2; echo \"=== wasm ===\"; GOOS=js GOARCH=wasm go build -o /dev/null ./config/ ./prompt/ ./svg/ ./terminal/ ./color/ ./runtime/ 2>&1 | head -5; echo \"exit=$?\"","description":"Full verification including wasm"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1772,"cache_read_input_tokens":558614,"output_tokens":234,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1772,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":234,"cache_read_input_tokens":558614,"cache_creation_input_tokens":1772,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1772},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU9iVbp7u3H5rgfBvwsq","type":"assistant","uuid":"41cf6ac3-b998-42ed-a7e3-ceb0f8df1452","timestamp":"2026-07-28T08:36:57.861Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"41cf6ac3-b998-42ed-a7e3-ceb0f8df1452","isSidechain":false,"promptId":"6773333a-2e26-46b9-8871-2090b1e822b9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01F8M5zsJBG57UmLgQ2JQhpg","type":"tool_result","content":"0 issues.\n=== wasm ===\nexit=0","is_error":false}]},"uuid":"354e33eb-b773-4f6c-b54b-53f9e345729e","timestamp":"2026-07-28T08:37:12.747Z","toolUseResult":{"stdout":"0 issues.\n=== wasm ===\nexit=0","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"41cf6ac3-b998-42ed-a7e3-ceb0f8df1452","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"354e33eb-b773-4f6c-b54b-53f9e345729e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU9kAVRGENyDYYygG9UT","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Yb1Heuc6FmPHqb5pr5JbpA","name":"Bash","input":{"command":"cd /d/oh-my-posh && go -C src build -o \"$TMPDIR/omp-layer.exe\" . && rm -rf \"$TMPDIR/gate-layer\" && mkdir -p \"$TMPDIR/gate-layer\" && for f in themes/*.omp.json themes/*.omp.yaml; do b=$(basename \"$f\"); b=${b%%.omp.*}; \"$TMPDIR/omp-layer.exe\" config export image --config \"$f\" --data src/prompt/testdata/fixtures/prompt.data.json -o \"$TMPDIR/gate-layer/$b.svg\" >/dev/null 2>&1; done; echo \"count=$(ls \"$TMPDIR/gate-layer\" | wc -l)\"; diff -rq \"$TMPDIR/gate-rebased\" \"$TMPDIR/gate-layer\" >/dev/null && echo \"ZERO DIFF vs pre-refactor\" || diff -rq \"$TMPDIR/gate-rebased\" \"$TMPDIR/gate-layer\" | head -5","description":"Confirm the refactor changed no rendering"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":257,"cache_read_input_tokens":560386,"output_tokens":436,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":257,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":436,"cache_read_input_tokens":560386,"cache_creation_input_tokens":257,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":257},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU9k1ShdYNQFydJPrsrL","type":"assistant","uuid":"36fac0af-2909-4b08-ba5b-4cee59a3e606","timestamp":"2026-07-28T08:37:22.911Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"36fac0af-2909-4b08-ba5b-4cee59a3e606","isSidechain":false,"promptId":"6773333a-2e26-46b9-8871-2090b1e822b9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Yb1Heuc6FmPHqb5pr5JbpA","type":"tool_result","content":"count=124\nZERO DIFF vs pre-refactor","is_error":false}]},"uuid":"7b1f4f89-6b1f-4350-bfa1-026370b3a0ba","timestamp":"2026-07-28T08:37:48.523Z","toolUseResult":{"stdout":"count=124\nZERO DIFF vs pre-refactor","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"classifierMetaLines":"{\"meta\":{\"gitStatus\":{\"staged\":0,\"modified\":14,\"untracked\":9}}}\n","sourceToolAssistantUUID":"36fac0af-2909-4b08-ba5b-4cee59a3e606","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7b1f4f89-6b1f-4350-bfa1-026370b3a0ba","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU9nkkjyV4tuqniYasGK","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"All the gates are passing, so now I need to independently verify the wasm size measurement since that's what's driving this decision. I'm going to build a minimal wasm binary myself to test the agent's claim about linker DCE, creating a temporary main file that imports the svg, prompt, config, and terminal modules. I'll measure the raw, gzip, and brotli sizes to get a complete picture, and also verify the hypothesis about `config.Segments` behavior.\n\nTo isolate the segment registry's actual contribution, I'm building two versions: one importing svg, terminal, and color only, and another with the full set of imports. Comparing these will give me the decisive data on whether trimming the segments actually helps.","signature":"CAIS+AYKhwEIEBgCKkA+TlEVbPH+ZAifyrzNmbISvc7iMC+A5PPaNHJHB79rrel27qhqTzEBdAw7Z3jsqFplJ0lyhsGtzKgvIyrdHbW8Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDMoWguDxbGpg8IewhRoMivJ1gpI0gQdQK3+0IjD+vld+abQTv6urlpQGfllIN5u12PSa03ZO6VvgjuMO9pm2W6jzUFYlUtP9v3Z+ySsqnQWH5cNu60qHasNvo8NtHbfJ4JqDiXV+SGT8nQUzmv9VaxaQ/brRl1yzCE3G1NG2qBrnBG1WDDGJbOCqrZ11/Rnryi7vJ/iSOEK0SpC0lO21NXN9aNnx7y10zMAqaDvQHHX5cN7UM8O3o0nx9izu1Co8r1h8Skk/idqYqGg55X4MCzVK+eKHYN4vnaiSmsN5jbb+1dQqmogPWJAdHvAD9D62zSq8v/Bc0ag14OdgiYw4qnCwCAt+yVmrrWBCfx22C5YGpoaIsHCID/+WwIP409cMyXME6LgM5+iWJESvBdJGgIvWigkHEIGYQhfArZAv2bvZlJdKyJVHXVmcXPeTM1dQxW56MsLoB0Nd4yRY2r4fFHBhYvQl1G3xtOtKhcynv6QOA58ra8rkUupJ7f9S+dtj1/QhfNq4PzNvSCFaeC2vpvMZ+G9m4sMXSNXtXHwXTlI4o+Slx0Sb47txUz4SFa7i3IFE2xssrH9KrmS3wiavadD+b8O3O06B/FSTm96XWunJTjVO54BSX216wIgWVpABqzl7SG1ukewCRqdjiMjLXVozTnx5Gc/UvswcKeGMdJ/DBEuZMBgi6T2Xgq4oZr17zvV7i5AVf//53lO6ysMLdQgB8elqbxAViH5zl+hUBjS82x/gcn7Lm2BeYjUH9j9A5IFl+G0L8gb4JuSNzawb0RUvBkX+ju3bZ0IADRIB/GuEO/3LUUIN7pEwrg4ujJ0t8UQ4rp3SmZYa88qREB7gyMhgz+DvQDYLGRJv5jeMslkE8MyNMIvd9KzbxkUsF/NKn1/8tXmBTsGQ34grMQ82n9sceNfHnRICLhSrTIT8hFQ2K1LNts8eMXCdHu1T/Smjx2YYPbo/qwtp1HF/MEKQwwadsWGBuR+znUWJTg8YAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":461,"cache_read_input_tokens":560643,"output_tokens":999,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":461,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":999,"cache_read_input_tokens":560643,"cache_creation_input_tokens":461,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":461},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU9neYBxYA6SmuVgVNoN","type":"assistant","uuid":"a5b0ea4e-1a98-4126-a02f-7f64fa2c6ede","timestamp":"2026-07-28T08:37:57.471Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a5b0ea4e-1a98-4126-a02f-7f64fa2c6ede","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU9nkkjyV4tuqniYasGK","type":"message","role":"assistant","content":[{"type":"text","text":"All gates green, and the 124-theme output is unchanged by the refactor. Now verifying the size number myself, and isolating what's actually responsible:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":461,"cache_read_input_tokens":560643,"output_tokens":999,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":461,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":999,"cache_read_input_tokens":560643,"cache_creation_input_tokens":461,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":461},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU9neYBxYA6SmuVgVNoN","type":"assistant","uuid":"36d90d08-4365-47d2-a7a6-7b69231fa366","timestamp":"2026-07-28T08:37:57.476Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"36d90d08-4365-47d2-a7a6-7b69231fa366","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU9nkkjyV4tuqniYasGK","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01GAN9na8HYFgBrm62mJDW5E","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; mkdir -p \"$SP/wasmsize/full\" \"$SP/wasmsize/encoder\" && cat > \"$SP/wasmsize/full/main.go\" <<'EOF'\npackage main\n\nimport (\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/prompt\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/svg\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n)\n\nfunc main() {\n\te := &prompt.Engine{Config: &config.Config{}}\n\tprintln(len(svg.Encode(e.CapturedRuns(), svg.Options{})), len(terminal.Runs()))\n}\nEOF\ncat > \"$SP/wasmsize/encoder/main.go\" <<'EOF'\npackage main\n\nimport (\n\t\"github.com/jandedobbeleer/oh-my-posh/src/svg\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/terminal\"\n)\n\nfunc main() {\n\tprintln(len(svg.Encode([][]terminal.Run{}, svg.Options{})), len(terminal.Runs()))\n}\nEOF\ncd /d/oh-my-posh/src && for v in full encoder; do GOOS=js GOARCH=wasm go build -o \"$SP/wasmsize/$v.wasm\" \"$SP/wasmsize/$v/main.go\" 2>&1 | head -3; done; ls -la \"$SP/wasmsize/\"*.wasm 2>/dev/null | awk '{printf \"%-12s %8.2f MB\\n\", $9, $5/1048576}'","description":"Build full and encoder-only wasm binaries"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":461,"cache_read_input_tokens":560643,"output_tokens":999,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":461,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":999,"cache_read_input_tokens":560643,"cache_creation_input_tokens":461,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":461},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU9neYBxYA6SmuVgVNoN","type":"assistant","uuid":"efc32302-7662-45c9-800f-749ad9d9aab1","timestamp":"2026-07-28T08:38:03.623Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"efc32302-7662-45c9-800f-749ad9d9aab1","isSidechain":false,"promptId":"6773333a-2e26-46b9-8871-2090b1e822b9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01GAN9na8HYFgBrm62mJDW5E","type":"tool_result","content":"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/wasmsize/encoder.wasm 12.04 MB\nC:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/wasmsize/full.wasm 27.98 MB","is_error":false}]},"uuid":"c0220da7-d850-4da7-99e1-2d42298739f7","timestamp":"2026-07-28T08:38:09.116Z","toolUseResult":{"stdout":"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/wasmsize/encoder.wasm 12.04 MB\nC:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/wasmsize/full.wasm 27.98 MB","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"efc32302-7662-45c9-800f-749ad9d9aab1","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c0220da7-d850-4da7-99e1-2d42298739f7","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU9pFLyvhWZNt5PmNoFA","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_0158AeahmDNwNDPe889A3hx2","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python - <<'PY'\nimport gzip, os, sys\ntry:\n import brotli\n has_brotli = True\nexcept ImportError:\n has_brotli = False\n\nsp = \"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/wasmsize\"\nfor name in (\"encoder\", \"full\"):\n data = open(os.path.join(sp, name + \".wasm\"), \"rb\").read()\n gz = len(gzip.compress(data, 9))\n line = f\"{name:9} raw {len(data)/1048576:6.2f} MB gzip {gz/1048576:5.2f} MB\"\n if has_brotli:\n br = len(brotli.compress(data, quality=11))\n line += f\" brotli {br/1048576:5.2f} MB\"\n print(line)\nprint(\"\\nbrotli module available:\", has_brotli)\nPY","description":"Measure compressed sizes"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1179,"cache_read_input_tokens":561104,"output_tokens":473,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1179,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":473,"cache_read_input_tokens":561104,"cache_creation_input_tokens":1179,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1179},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU9pA1WFN46ghT1nCsCk","type":"assistant","uuid":"a1137814-bb37-4ab8-bd66-b9e75ab34ebe","timestamp":"2026-07-28T08:38:16.587Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a1137814-bb37-4ab8-bd66-b9e75ab34ebe","isSidechain":false,"promptId":"6773333a-2e26-46b9-8871-2090b1e822b9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_0158AeahmDNwNDPe889A3hx2","type":"tool_result","content":"encoder raw 12.04 MB gzip 3.10 MB\r\nfull raw 27.98 MB gzip 6.25 MB\r\n\r\nbrotli module available: False","is_error":false}]},"uuid":"1303d3af-5024-4c2b-afb5-0191ca7497b8","timestamp":"2026-07-28T08:38:27.645Z","toolUseResult":{"stdout":"encoder raw 12.04 MB gzip 3.10 MB\r\nfull raw 27.98 MB gzip 6.25 MB\r\n\r\nbrotli module available: False","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"a1137814-bb37-4ab8-bd66-b9e75ab34ebe","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1303d3af-5024-4c2b-afb5-0191ca7497b8","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU9qecynn5AUkXrBvxCz","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I've measured the bundle sizes myself and they align with what the agent reported—the full package with SVG, prompt, config, and terminal comes to about 28 MB raw and 6.25 MB gzip, while just the encoder and terminal is 12 MB raw and 3.1 MB gzip. That means the segment registry, config, and prompt together add roughly 16 MB raw and 3.15 MB gzip on top of the encoder, which itself is already substantial due to the Go runtime.\n\nThe real issue is that importing SVG pulls in terminal, which pulls in color, which transitively drags in runtime, cache, template, and a bunch of other engine components—so the \"encoder only\" measurement isn't actually isolated. The actual compression target should be those transitive dependencies rather than just the segments themselves. Estimating brotli compression at roughly 30% better than gzip, the full render path would compress to around 4.4 MB, which is reasonable for a lazy-loaded studio page but might be tight if it needs to load on every request.\n\nThe user's suggestion of compile-time flags could help, but the real blocker is that the segment registry holds constructors for every segment writer, and each writer's `Enabled()` method gets called through the interface—so the linker can't drop the execution machinery even when it's not used, because it can't prove those methods are unreachable. A genuine trim would require a wasm-specific build where `Enabled()` is stubbed out or completely removed.\n\nRealistically, 4.4 MB brotli is the practical limit without major refactoring. My recommendation is to accept this size for a lazy-loaded studio page but keep it off the docs pages. Let me present the measurement, the root cause, and this recommendation clearly, then commit the work.\n\nCleaning up the temporary wasm files now.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":533,"cache_read_input_tokens":562283,"output_tokens":2192,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":533,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2192,"cache_read_input_tokens":562283,"cache_creation_input_tokens":533,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":533},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU9qXmUeq34JvARNumPv","type":"assistant","uuid":"9aaa51f7-03c5-42ab-903a-cde1d5a02870","timestamp":"2026-07-28T08:38:50.095Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9aaa51f7-03c5-42ab-903a-cde1d5a02870","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU9qecynn5AUkXrBvxCz","type":"message","role":"assistant","content":[{"type":"text","text":"Independent measurement confirms the agent's, and isolates where the weight is:\n\n| build | raw | gzip | ~brotli |\n|---|---|---|---|\n| `println(\"hi\")` floor | 1.8 MB | 0.55 MB | — |\n| `svg` + `terminal` only | 12.0 MB | 3.10 MB | ~2.2 MB |\n| `+ config` + `prompt` | 28.0 MB | 6.25 MB | ~4.4 MB |\n\n(brotli isn't installed here; the agent measured 4.39 MB on its slightly larger binary, and gzip×0.7 lines up with that.)"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":533,"cache_read_input_tokens":562283,"output_tokens":2192,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":533,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2192,"cache_read_input_tokens":562283,"cache_creation_input_tokens":533,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":533},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU9qXmUeq34JvARNumPv","type":"assistant","uuid":"273d453b-8c5e-4695-888f-7a2f3ab8185b","timestamp":"2026-07-28T08:38:51.612Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"273d453b-8c5e-4695-888f-7a2f3ab8185b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU9qecynn5AUkXrBvxCz","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01PvcgXwFznxSwhyLskf3vQz","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; rm -rf \"$SP/wasmsize\"; cd /d/oh-my-posh && git add -A src/ && git commit -q -F - <<'EOF'\nrefactor(cli): keep the terminal UI out of the core packages\n\nconfig and segments imported cli/upgrade and cli/auth for plain types and\nconstants - upgrade.Config, upgrade.CDN, auth.CopilotTokenKey - but Go\ncompiles whole packages, so a core package ended up depending on a Bubble\nTea interface. The TUIs move one level down into cli/upgrade/tui and\ncli/auth/tui, which may import their parents but never the reverse.\n\ncli/auth turned out to be worse than file placement: copilot.go and\nytmda.go implement tea.Model themselves, so the whole device-code flow\nmoved and only the cache-key constants stayed behind. cli/upgrade had a\nreal coupling too - Download() reached for a package-level *tea.Program\nliving in the TUI - now inverted into Stage/SetStageReporter hooks the\nTUI wires up, so install and verify report progress without knowing what\nrenders it.\n\nThis also unblocks a wasm build, which is what surfaced it: bubbletea\ndoes not compile for js/wasm, and neither did three platform files that\nhad never been asked to. battery_windows_nix.go's build tag admitted js\nbut systemGetAll has no implementation for it; jobs_other.go reached for\nSysProcAttr.Setpgid, which the js syscall package has no field for; and\nDirIsWritable needed unix.Access. Each gets a js counterpart and the\nexisting tags narrow to exclude it, rather than a tag that would have\npapered over the layering problem underneath.\n\nAll 124 themes still export byte-identically.\nEOF\ngit log --oneline -2","description":"Commit the layering fix and wasm stubs"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":533,"cache_read_input_tokens":562283,"output_tokens":2192,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":533,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2192,"cache_read_input_tokens":562283,"cache_creation_input_tokens":533,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":533},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU9qXmUeq34JvARNumPv","type":"assistant","uuid":"44dde460-e81b-4821-9984-4b2f78ba325e","timestamp":"2026-07-28T08:39:01.700Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"44dde460-e81b-4821-9984-4b2f78ba325e","isSidechain":false,"promptId":"6773333a-2e26-46b9-8871-2090b1e822b9","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01PvcgXwFznxSwhyLskf3vQz","type":"tool_result","content":"71ce6289 refactor(cli): keep the terminal UI out of the core packages\n404214e2 feat(config): let a render refuse to touch the machine","is_error":false}]},"uuid":"16042db7-45d5-4d58-9ad9-9831afea7d76","timestamp":"2026-07-28T08:39:14.659Z","toolUseResult":{"stdout":"71ce6289 refactor(cli): keep the terminal UI out of the core packages\n404214e2 feat(config): let a render refuse to touch the machine","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"classifierMetaLines":"{\"meta\":{\"gitStatus\":{\"staged\":0,\"modified\":14,\"untracked\":9}}}\n","sourceToolAssistantUUID":"44dde460-e81b-4821-9984-4b2f78ba325e","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"16042db7-45d5-4d58-9ad9-9831afea7d76","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdU9u8wehKyg5goTJVQKx","type":"message","role":"assistant","content":[{"type":"text","text":"Both tasks are done and committed.\n\n**Task 1** — `--data-only` (`404214e2`). Proven with an unreachable-URL config: 3.10s without it (real fetch, waited out the timeout), 0.11s with.\n\n**Task 2** — wasm builds (`71ce6289`). `GOOS=js GOARCH=wasm go build ./config/ ./prompt/ ./svg/ ./terminal/ ./color/ ./runtime/` succeeds. Native build, full suite, lint clean, and all 124 themes export byte-identically.\n\nThe bubbletea blocker was a layering inversion, and it was worse than I described: `cli/auth`'s `copilot.go` and `ytmda.go` implement `tea.Model` directly, and `cli/upgrade`'s `Download()` reached for a package-level `*tea.Program` that lived in the TUI. That second one is a real coupling, now inverted into reporter hooks — `install` and `verify` report progress without knowing what renders it. Worth having found regardless of wasm.\n\n**On your build-tag idea, now that there's a number.** Tags won't help much, and the measurement shows why. The encoder *alone* is already 12 MB raw — `svg` → `terminal` → `color` → `template` → `runtime` drags most of the engine in before a single segment is linked. Adding `config` + `prompt` costs another 16 MB, and the cause is structural: `config.Segments` is a package-level map holding a constructor for every segment type, each implementing `SegmentWriter`, so the linker must keep every `Enabled()` and everything it calls — git, HTTP clients, cloud SDKs. It can't know that under `DataOnly` none of them ever run.\n\nSo the honest read: **~4.4 MB brotli is close to the floor** for a full-fidelity studio, and trimming means restructuring how segments register, not adding tags. A studio genuinely needs all 117 segment types — a user can configure any of them, and the writer types are what recorded data unmarshals into.\n\nMy take: 4.4 MB lazy-loaded on one dedicated studio page is fine — comparable to a couple of hero images, and it buys instant feedback with no endpoint to operate. It is *not* fine on every docs page, so the live-preview-everywhere idea I floated earlier should be behind an explicit \"try it\" affordance rather than eager on page load.\n\nOne process note you should have: the agent ran `modernize --fix ./...`, then reverted tracked files and deleted untracked ones to undo it — which destroyed the js stubs I'd written before it started, and it rewrote equivalents. It flagged this itself rather than hiding it. I verified the result independently rather than trusting the rewrite: wasm builds, native builds, tests and lint pass, and the theme output is unchanged.\n\nNext would be moving `svgOptions` out of `src/cli` so a wasm entrypoint can reach it, then the entrypoint itself gated on rendering one theme byte-identically to the CLI."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2247,"cache_read_input_tokens":562816,"output_tokens":991,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2247,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":991,"cache_read_input_tokens":562816,"cache_creation_input_tokens":2247,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2247},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdU9tzyRffVsmS84sGQU5","type":"assistant","uuid":"9f855342-d219-4771-afd1-93a29bf17a4e","timestamp":"2026-07-28T08:39:32.357Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9f855342-d219-4771-afd1-93a29bf17a4e","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":7322},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T08:39:41.252Z","uuid":"3c0813d2-8d2a-48c7-a3b8-2723dd30c97c","toolUseID":"a6cd01ae-0282-4d40-b71c-ea97785a8875","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3c0813d2-8d2a-48c7-a3b8-2723dd30c97c","isSidechain":false,"promptId":"b3dcc761-6dc2-4dbd-996c-f76e0105f332","type":"user","message":{"role":"user","content":"continue with moving svgOptions and the wasm entrypoint"},"uuid":"bd832521-dfb1-4c56-b2d7-1aa252ea4a04","timestamp":"2026-07-28T08:51:27.138Z","permissionMode":"auto","origin":{"kind":"human"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bd832521-dfb1-4c56-b2d7-1aa252ea4a04","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"76564ca4-019c-41bc-b8fd-9df112f3b055","timestamp":"2026-07-28T08:51:27.138Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"76564ca4-019c-41bc-b8fd-9df112f3b055","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-85388aec-3f8a-4d03-aa19-778ae77c9571","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"d73eb1f5-22df-41f3-8593-95af734001f6","timestamp":"2026-07-28T08:51:27.333Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d73eb1f5-22df-41f3-8593-95af734001f6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUAqGzqeGikasKsxeBuA","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I need to refactor `svgOptions` so both the CLI and wasm modules can access it, then build the wasm entrypoint with validation against the CLI output. First, I'm checking the current structure of `config_export_svg.go` to understand how `svgOptions` resolves accent and background colors from the terminal package state.\n\nThe design challenge is where to move this function — `svg` already imports `terminal`, so there's no cycle risk, but the existing design philosophy keeps `Options` explicit for testability rather than having the svg package reach into terminal's package-level state. I'm leaning toward keeping the resolution logic explicit by having callers pass the resolved values rather than moving the state-reading into svg itself.\n\nActually, thinking bigger: both the CLI and wasm entrypoints need to render a config to SVG, which is a lot of shared logic. Maybe the right approach is extracting the entire \"render config to SVG\" flow into a shared package that both can use.\n\nThe core API would be simple — take a config string, data, and rendering options, then return SVG. But config loading is the wrinkle: the CLI loads from a file path, while wasm gets config as text, so I need to check if there's already a way to parse config from bytes rather than just from a file.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":224,"cache_read_input_tokens":566054,"output_tokens":1346,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":224,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1346,"cache_read_input_tokens":566054,"cache_creation_input_tokens":224,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":224},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUAq3YDeGMXpuJX3F4PA","type":"assistant","uuid":"c70a78ca-28ef-4d3c-b263-ec864f8a3bc6","timestamp":"2026-07-28T08:51:50.530Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c70a78ca-28ef-4d3c-b263-ec864f8a3bc6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUAqGzqeGikasKsxeBuA","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01BYzYCq5291RyM53EJEBomd","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && grep -n \"^func Load\\|^func read\\|^func LoadData\\|func.*\\[\\]byte\" config/load.go config/data.go | head -12","description":"Check how config parses input"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":224,"cache_read_input_tokens":566054,"output_tokens":1346,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":224,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1346,"cache_read_input_tokens":566054,"cache_creation_input_tokens":224,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":224},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUAq3YDeGMXpuJX3F4PA","type":"assistant","uuid":"e9c5acbe-4b96-4516-a57c-cdb06164f611","timestamp":"2026-07-28T08:51:50.686Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e9c5acbe-4b96-4516-a57c-cdb06164f611","isSidechain":false,"promptId":"b3dcc761-6dc2-4dbd-996c-f76e0105f332","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01BYzYCq5291RyM53EJEBomd","type":"tool_result","content":"config/load.go:44:func Load(configFile string) *Config {\nconfig/load.go:194:func read(configFile string, h hashWriter) (*Config, error) {\nconfig/load.go:265:func populatePresence(cfg *Config, data []byte) {\nconfig/load.go:346:func getData(configFile string) ([]byte, error) {\nconfig/data.go:104:func LoadData(path string) (*Data, error) {","is_error":false}]},"uuid":"5b47513a-8de8-4b3e-b815-4a14422359b6","timestamp":"2026-07-28T08:51:51.633Z","toolUseResult":{"stdout":"config/load.go:44:func Load(configFile string) *Config {\nconfig/load.go:194:func read(configFile string, h hashWriter) (*Config, error) {\nconfig/load.go:265:func populatePresence(cfg *Config, data []byte) {\nconfig/load.go:346:func getData(configFile string) ([]byte, error) {\nconfig/data.go:104:func LoadData(path string) (*Data, error) {","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"e9c5acbe-4b96-4516-a57c-cdb06164f611","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5b47513a-8de8-4b3e-b815-4a14422359b6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUArtX3TypN1e9j8xXam","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017tgnh4CouhtqSeiBvuc4Nn","name":"Bash","input":{"command":"sed -n '194,240p' config/load.go && echo \"=== getData ===\" && sed -n '346,375p' config/load.go","description":"Read the config parsing path"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1486,"cache_read_input_tokens":566278,"output_tokens":116,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1486,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":116,"cache_read_input_tokens":566278,"cache_creation_input_tokens":1486,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1486},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUArnNx5nSzK8aRS3e1H","type":"assistant","uuid":"f9b014a4-8ec0-4a32-8bc7-f3d51bda4e9b","timestamp":"2026-07-28T08:51:56.827Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f9b014a4-8ec0-4a32-8bc7-f3d51bda4e9b","isSidechain":false,"promptId":"b3dcc761-6dc2-4dbd-996c-f76e0105f332","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017tgnh4CouhtqSeiBvuc4Nn","type":"tool_result","content":"func read(configFile string, h hashWriter) (*Config, error) {\n\tdefer log.Trace(time.Now())\n\n\tif configFile == \"\" {\n\t\tlog.Debug(\"no config file specified, using default\")\n\t\treturn Default(nil), nil\n\t}\n\n\tvar cfg Config\n\tcfg.Source = configFile\n\tcfg.Format = strings.TrimPrefix(filepath.Ext(configFile), \".\")\n\n\tdata, err := getData(configFile)\n\tif err != nil {\n\t\t// Determine the type of error\n\t\tif strings.HasPrefix(configFile, \"https://\") {\n\t\t\tlog.Errorf(\"failed to fetch config from URL: %v\", err)\n\t\t\treturn nil, ErrURLFetch\n\t\t}\n\t\tif errors.Is(err, os.ErrNotExist) {\n\t\t\tlog.Errorf(\"config file not found: %v\", err)\n\t\t\treturn nil, ErrFileNotFound\n\t\t}\n\t\tlog.Errorf(\"failed to read config: %v\", err)\n\t\treturn nil, ErrFileNotFound\n\t}\n\n\tvar parseErr error\n\tswitch cfg.Format {\n\tcase YAML, YML:\n\t\tcfg.Format = YAML\n\t\tparseErr = yaml.Unmarshal(data, &cfg)\n\tcase JSONC, JSON:\n\t\tcfg.Format = JSON\n\n\t\tstr := jsonutil.StripComments(string(data))\n\t\tdata = []byte(str)\n\n\t\tdecoder := json.NewDecoder(bytes.NewReader(data))\n\t\tparseErr = decoder.Decode(&cfg)\n\tcase TOML, TML:\n\t\tcfg.Format = TOML\n\t\tparseErr = toml.Unmarshal(data, &cfg)\n\tdefault:\n\t\tlog.Errorf(\"unsupported config file format: %s\", cfg.Format)\n\t\treturn nil, ErrInvalidExtension\n\t}\n=== getData ===\nfunc getData(configFile string) ([]byte, error) {\n\tif !strings.HasPrefix(configFile, \"https://\") {\n\t\treturn os.ReadFile(configFile)\n\t}\n\n\treturn http.Download(configFile, true)\n}\n\nfunc isCygwin() bool {\n\treturn runtimelib.GOOS == \"windows\" && len(os.Getenv(\"OSTYPE\")) > 0\n}\n\n// Package-level var (instead of a local literal) so isTheme doesn't rebuild it on every call.\nvar themes = map[string]string{\n\t\"1_shell\": \"1_shell.omp.json\",\n\t\"m365princess\": \"M365Princess.omp.json\",\n\t\"agnoster\": \"agnoster.omp.json\",\n\t\"agnoster.minimal\": \"agnoster.minimal.omp.json\",\n\t\"agnosterplus\": \"agnosterplus.omp.json\",\n\t\"aliens\": \"aliens.omp.json\",\n\t\"amro\": \"amro.omp.json\",\n\t\"atomic\": \"atomic.omp.json\",\n\t\"atomicbit\": \"atomicBit.omp.json\",\n\t\"avit\": \"avit.omp.json\",\n\t\"blue-owl\": \"blue-owl.omp.json\",\n\t\"blueish\": \"blueish.omp.json\",\n\t\"bubbles\": \"bubbles.omp.json\",\n\t\"bubblesextra\": \"bubblesextra.omp.json\",\n\t\"bubblesline\": \"bubblesline.omp.json\",\n\t\"capr4n\": \"capr4n.omp.json\",","is_error":false}]},"uuid":"564799b4-680f-4fff-aaef-527f79942e6c","timestamp":"2026-07-28T08:51:57.778Z","toolUseResult":{"stdout":"func read(configFile string, h hashWriter) (*Config, error) {\n\tdefer log.Trace(time.Now())\n\n\tif configFile == \"\" {\n\t\tlog.Debug(\"no config file specified, using default\")\n\t\treturn Default(nil), nil\n\t}\n\n\tvar cfg Config\n\tcfg.Source = configFile\n\tcfg.Format = strings.TrimPrefix(filepath.Ext(configFile), \".\")\n\n\tdata, err := getData(configFile)\n\tif err != nil {\n\t\t// Determine the type of error\n\t\tif strings.HasPrefix(configFile, \"https://\") {\n\t\t\tlog.Errorf(\"failed to fetch config from URL: %v\", err)\n\t\t\treturn nil, ErrURLFetch\n\t\t}\n\t\tif errors.Is(err, os.ErrNotExist) {\n\t\t\tlog.Errorf(\"config file not found: %v\", err)\n\t\t\treturn nil, ErrFileNotFound\n\t\t}\n\t\tlog.Errorf(\"failed to read config: %v\", err)\n\t\treturn nil, ErrFileNotFound\n\t}\n\n\tvar parseErr error\n\tswitch cfg.Format {\n\tcase YAML, YML:\n\t\tcfg.Format = YAML\n\t\tparseErr = yaml.Unmarshal(data, &cfg)\n\tcase JSONC, JSON:\n\t\tcfg.Format = JSON\n\n\t\tstr := jsonutil.StripComments(string(data))\n\t\tdata = []byte(str)\n\n\t\tdecoder := json.NewDecoder(bytes.NewReader(data))\n\t\tparseErr = decoder.Decode(&cfg)\n\tcase TOML, TML:\n\t\tcfg.Format = TOML\n\t\tparseErr = toml.Unmarshal(data, &cfg)\n\tdefault:\n\t\tlog.Errorf(\"unsupported config file format: %s\", cfg.Format)\n\t\treturn nil, ErrInvalidExtension\n\t}\n=== getData ===\nfunc getData(configFile string) ([]byte, error) {\n\tif !strings.HasPrefix(configFile, \"https://\") {\n\t\treturn os.ReadFile(configFile)\n\t}\n\n\treturn http.Download(configFile, true)\n}\n\nfunc isCygwin() bool {\n\treturn runtimelib.GOOS == \"windows\" && len(os.Getenv(\"OSTYPE\")) > 0\n}\n\n// Package-level var (instead of a local literal) so isTheme doesn't rebuild it on every call.\nvar themes = map[string]string{\n\t\"1_shell\": \"1_shell.omp.json\",\n\t\"m365princess\": \"M365Princess.omp.json\",\n\t\"agnoster\": \"agnoster.omp.json\",\n\t\"agnoster.minimal\": \"agnoster.minimal.omp.json\",\n\t\"agnosterplus\": \"agnosterplus.omp.json\",\n\t\"aliens\": \"aliens.omp.json\",\n\t\"amro\": \"amro.omp.json\",\n\t\"atomic\": \"atomic.omp.json\",\n\t\"atomicbit\": \"atomicBit.omp.json\",\n\t\"avit\": \"avit.omp.json\",\n\t\"blue-owl\": \"blue-owl.omp.json\",\n\t\"blueish\": \"blueish.omp.json\",\n\t\"bubbles\": \"bubbles.omp.json\",\n\t\"bubblesextra\": \"bubblesextra.omp.json\",\n\t\"bubblesline\": \"bubblesline.omp.json\",\n\t\"capr4n\": \"capr4n.omp.json\",","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"f9b014a4-8ec0-4a32-8bc7-f3d51bda4e9b","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"564799b4-680f-4fff-aaef-527f79942e6c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUAsNGQ5gUsKPnkb7g56","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The cleanest approach is to extract a `Parse` method that takes a format string and raw bytes directly, handling the format switching and presence population logic that currently lives in `read`. This lets `read` call it as before while giving wasm a direct entry point, and it naturally sidesteps the `extends` problem since that logic stays in the Load loop rather than the data-only parsing path.\n\nFor the svg options and font metrics, I should move those utilities into the `svg` package itself since it already imports terminal and color anyway — something like `OptionsFromTerminal` that takes the font family, column count, and metrics, then handles the accent and background color resolution internally.\n\nFor the render glue that ties everything together, keeping it at each entrypoint is tempting but duplicating five lines across wasm and the CLI isn't ideal. A small `src/render` package that imports prompt, svg, and config makes more sense — that's the natural home for \"take a config and engine state, produce SVG output.\"\n\nActually, I should move the existing `renderConfigForExport` function from the CLI into this new package too, along with the SVG options setup. That way `src/render` becomes the coherent shared layer that both entrypoints depend on: it handles engine initialization, template setup, color resolution, and the final encoding. This is well-scoped and mechanical enough to delegate.\n\nFor the gates, I need the 124 themes to remain byte-identical through the CLI path, then verify the wasm build works and produces identical output when run under Node with `wasm_exec.js`. That last one is the decisive proof that both paths use the same renderer.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1227,"cache_read_input_tokens":567764,"output_tokens":1914,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1227,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1914,"cache_read_input_tokens":567764,"cache_creation_input_tokens":1227,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1227},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUAsEgk8jL6vbk5FgqTj","type":"assistant","uuid":"2a6fceea-a5a9-4cc2-b050-77a6bbaaa941","timestamp":"2026-07-28T08:52:26.798Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2a6fceea-a5a9-4cc2-b050-77a6bbaaa941","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUAsNGQ5gUsKPnkb7g56","type":"message","role":"assistant","content":[{"type":"text","text":"Both pieces plus their gate. Checking the wasm host shim exists first, since the acceptance test depends on running the module:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1227,"cache_read_input_tokens":567764,"output_tokens":1914,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1227,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1914,"cache_read_input_tokens":567764,"cache_creation_input_tokens":1227,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1227},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUAsEgk8jL6vbk5FgqTj","type":"assistant","uuid":"4d097cd6-4c0b-4163-8349-1baa72a44e3a","timestamp":"2026-07-28T08:52:27.201Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4d097cd6-4c0b-4163-8349-1baa72a44e3a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUAsNGQ5gUsKPnkb7g56","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01DhSL4Y26GuVJ22HwDwAYmv","name":"Bash","input":{"command":"ls \"$(go env GOROOT)/lib/wasm/\" 2>/dev/null || ls \"$(go env GOROOT)/misc/wasm/\" 2>/dev/null; go version","description":"Locate the Go wasm exec shim"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1227,"cache_read_input_tokens":567764,"output_tokens":1914,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1227,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1914,"cache_read_input_tokens":567764,"cache_creation_input_tokens":1227,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1227},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUAsEgk8jL6vbk5FgqTj","type":"assistant","uuid":"59e2a6d7-602e-47e3-a397-231894ca5fa3","timestamp":"2026-07-28T08:52:27.826Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"59e2a6d7-602e-47e3-a397-231894ca5fa3","isSidechain":false,"promptId":"b3dcc761-6dc2-4dbd-996c-f76e0105f332","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01DhSL4Y26GuVJ22HwDwAYmv","type":"tool_result","content":"go_js_wasm_exec\ngo_wasip1_wasm_exec\nwasm_exec.js\nwasm_exec_node.js\ngo version go1.26.5 windows/arm64","is_error":false}]},"uuid":"28bfb99a-db77-4be5-ac2a-91f441d7e85c","timestamp":"2026-07-28T08:52:31.496Z","toolUseResult":{"stdout":"go_js_wasm_exec\ngo_wasip1_wasm_exec\nwasm_exec.js\nwasm_exec_node.js\ngo version go1.26.5 windows/arm64","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"59e2a6d7-602e-47e3-a397-231894ca5fa3","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"28bfb99a-db77-4be5-ac2a-91f441d7e85c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUAusnUfG8L4gT8ii6eY","type":"message","role":"assistant","content":[{"type":"text","text":"`wasm_exec_node.js` is available, so the entrypoint can be executed and diffed against the CLI. Delegating with that as the hard gate:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1979,"cache_read_input_tokens":568991,"output_tokens":2723,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1979,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2723,"cache_read_input_tokens":568991,"cache_creation_input_tokens":1979,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1979},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUAujLE8n75Fp4QroiRY","type":"assistant","uuid":"8e32db79-d8e4-4098-9cc6-fc4b359cda54","timestamp":"2026-07-28T08:52:36.101Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8e32db79-d8e4-4098-9cc6-fc4b359cda54","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUAusnUfG8L4gT8ii6eY","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01QMzt91o28X8tXNvM7dCN88","name":"Agent","input":{"description":"Extract render package and wasm entrypoint","model":"sonnet","subagent_type":"general-purpose","prompt":"Repo: D:\\oh-my-posh, branch `themes-svg`. Go module root is `src/` — run all go commands from there. Go 1.26.5.\n\nGOAL: make \"render a config to an SVG\" reachable without the CLI, then add a js/wasm entrypoint that does exactly that — and prove the two produce identical bytes.\n\nNEVER RUN `git stash`, `git checkout`, `git reset`, `modernize --fix`, or anything else that mutates the working tree or index beyond your own edits. An earlier agent ran `modernize --fix` and then destroyed another agent's uncommitted work trying to undo it. Read-only git is fine. Do NOT commit.\n\nStyle: this repo writes long explanatory comments recording WHY a shape was chosen. Match that. Carry comments with code you move, and update any that describe the old location.\n\n## Background you can rely on (verified)\n\n- `svg.Encode(rows [][]terminal.Run, opts svg.Options) string` is pure — no I/O, no error.\n- `prompt.Engine.CapturedRuns()` and `CursorAnchor()` expose the captured Run stream when `terminal.CaptureRuns` is set.\n- `runtime.Flags.DataOnly` (added in commit 404214e2) makes recorded data the only source a segment may render from — no segment probes the machine. The wasm entrypoint MUST set it.\n- The whole render path already compiles for js/wasm: `GOOS=js GOARCH=wasm go build -o /dev/null ./config/ ./prompt/ ./svg/ ./terminal/ ./color/ ./runtime/` currently succeeds. Keep it that way.\n\n## Task 1 — a shared render package\n\nThree things needed by both the CLI and a browser currently live in `src/cli` and cannot be imported from a wasm entrypoint:\n\n- `renderConfigForExport` in `src/cli/config_export_data.go` — the engine setup (runtime.Flags → env.Init → template.Init → clear ConsoleTitleTemplate/PWD/ShellIntegration → terminal.Init → BackgroundColor/Colors → Engine → Primary()).\n- `svgOptions` and the `fontMetrics` struct in `src/cli/config_export_svg.go` — builds `svg.Options`, resolving the accent and terminal background out of `terminal.Colors`/`terminal.BackgroundColor` and scaling the font-metric ratios by `svg.DefaultFontSize`.\n- `exportSVG`'s glue — `CapturedRuns()` + `CursorAnchor()` → `svg.Encode`.\n\nCreate a package (suggest `src/render`) holding these, and have `src/cli` use it. The CLI keeps everything genuinely CLI-shaped: cobra wiring, flag variables, `config.Load`, file writing, `svgOutputPath`, the `--data`/`--data-derive`/`--data-only` handling.\n\nJudgement calls that are yours to make, but justify them in comments:\n- Whether the option-building belongs in `src/render` or as an extra constructor on `svg.Options`. Note `svg.Options`' doc comment deliberately takes colours as explicit fields so resolution stays unit-testable — do not undermine that; any terminal-state-reading constructor must be additive, with the plain struct still usable directly.\n- The exact signature. It should read naturally for both callers.\n\n## Task 2 — parse a config from memory\n\n`config.read` (`src/config/load.go:194`) derives format from the file extension and bytes from `getData`, which reads a file or fetches an `https://` URL. A browser has neither a file nor a config path — the studio hands over config *text*.\n\nExtract a `config.Parse(format string, data []byte) (*Config, error)` (name it as you see fit) covering the format switch and whatever presence/normalisation `read` does after it, and have `read` call it. This must NOT touch the filesystem or the network.\n\nNote and state in a comment: parsing from memory bypasses `Load`'s `extends` loop entirely, so a config parsed this way cannot pull in a remote config — which is the property the studio wants. Do not add an `extends` fetch to this path.\n\n## Task 3 — the wasm entrypoint\n\nAdd a `main` package that builds only for js/wasm (`//go:build js && wasm`), exposing one function to JavaScript via `syscall/js`:\n\n render(configText, format, dataJSON, optionsObject) -> { svg: string } | { error: string }\n\n- It MUST set `runtime.Flags.DataOnly = true` and `terminal.CaptureRuns = true`.\n- It MUST NOT call `config.Load` or anything that reads a file or the network.\n- Keep it thin — it is an adapter over `src/render`, not a second implementation. If you find yourself reimplementing render logic, stop and move that logic into the shared package instead.\n- Decide where it lives (e.g. `src/wasm/`) and make sure `go build ./...` on a normal platform is unaffected by its presence.\n- Errors go back as a value, never a panic that would kill the wasm instance.\n\n## VERIFICATION — run every one and report actual output\n\n1. `cd src && go build ./... && go vet ./...`\n2. `cd src && go test ./... -count=1` — full suite.\n3. `cd src && golangci-lint run ./...` — must be 0 issues.\n4. `cd src && GOOS=js GOARCH=wasm go build -o /tmp/omp.wasm ./wasm/` (adjust path) — must succeed. Report the raw size.\n5. **THE OUTPUT GATE — 124 themes.** Build the CLI, export every theme in `D:/oh-my-posh/themes` (`*.omp.json` and `*.omp.yaml`) with `config export image --config --data src/prompt/testdata/fixtures/prompt.data.json -o /.svg`, and diff the whole directory against a set produced by a binary built from current HEAD (use `git worktree add --detach /tmp/omp-head HEAD` — that does not touch this working tree). MUST be zero diff. Task 1 is a refactor; if rendering changed, it is wrong.\n6. **THE PARITY GATE — the point of all this.** Run the wasm module under Node and prove it renders identically to the CLI for at least three themes of differing shape (suggest `jandedobbeleer`, `glowsticks`, `cert`).\n - The Go wasm host shim is at `$(go env GOROOT)/lib/wasm/wasm_exec_node.js`, and `$(go env GOROOT)/lib/wasm/wasm_exec.js` for the browser glue.\n - Write a small Node driver under /tmp (NOT in the repo) that instantiates the module, reads a theme file and `src/prompt/testdata/fixtures/prompt.data.json` from disk *in Node*, passes them in as strings, and writes the returned SVG out.\n - Diff that against the CLI's output for the same theme with `--data-only`.\n - They MUST match byte for byte. If they do not, do not rationalise the difference — report exactly what differs, with a snippet, and say why. A mismatch means there are two renderers again, which is the thing this whole design exists to prevent.\n - Note the CLI must be invoked with `--data-only` for a fair comparison, since the wasm entrypoint always sets it.\n\nReport: what you created and moved, every verification result with real numbers, the wasm size, the parity outcome, and anything you could not do or chose not to. If a check did not run, say so plainly rather than implying it passed."},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1979,"cache_read_input_tokens":568991,"output_tokens":2723,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1979,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":2723,"cache_read_input_tokens":568991,"cache_creation_input_tokens":1979,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1979},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUAujLE8n75Fp4QroiRY","type":"assistant","uuid":"e4cef2c4-cbbe-41f8-add4-eb52d1485fc5","timestamp":"2026-07-28T08:53:12.254Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e4cef2c4-cbbe-41f8-add4-eb52d1485fc5","isSidechain":false,"promptId":"b3dcc761-6dc2-4dbd-996c-f76e0105f332","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01QMzt91o28X8tXNvM7dCN88","type":"tool_result","content":[{"type":"text","text":"Async agent launched successfully. (This tool result is internal metadata — never quote or paste any part of it, including the agentId below, into a user-facing reply.)\nagentId: a8bcd510ee5ff6187 (internal ID - do not mention to user. Use SendMessage with to: 'a8bcd510ee5ff6187', summary: '<5-10 word recap>' to continue this agent.)\nThe agent is working in the background. You will be notified automatically when it completes. You know nothing about its results until that notification arrives — do not report, assume, or predict them; continue other work or respond to the user in the meantime.\nDo not duplicate this agent's work — avoid working with the same files or topics it is using.\noutput_file: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a8bcd510ee5ff6187.output\nDo NOT Read or tail this file via the shell tool — it is the full subagent JSONL transcript and reading it will overflow your context. If the user asks for progress, say the agent is still running; you'll get a completion notification."}]}]},"uuid":"6fa37a14-c8bd-4b3f-8dd7-def71d2bedd4","timestamp":"2026-07-28T08:53:17.284Z","toolUseResult":{"isAsync":true,"status":"async_launched","agentId":"a8bcd510ee5ff6187","description":"Extract render package and wasm entrypoint","resolvedModel":"claude-sonnet-5","prompt":"Repo: D:\\oh-my-posh, branch `themes-svg`. Go module root is `src/` — run all go commands from there. Go 1.26.5.\n\nGOAL: make \"render a config to an SVG\" reachable without the CLI, then add a js/wasm entrypoint that does exactly that — and prove the two produce identical bytes.\n\nNEVER RUN `git stash`, `git checkout`, `git reset`, `modernize --fix`, or anything else that mutates the working tree or index beyond your own edits. An earlier agent ran `modernize --fix` and then destroyed another agent's uncommitted work trying to undo it. Read-only git is fine. Do NOT commit.\n\nStyle: this repo writes long explanatory comments recording WHY a shape was chosen. Match that. Carry comments with code you move, and update any that describe the old location.\n\n## Background you can rely on (verified)\n\n- `svg.Encode(rows [][]terminal.Run, opts svg.Options) string` is pure — no I/O, no error.\n- `prompt.Engine.CapturedRuns()` and `CursorAnchor()` expose the captured Run stream when `terminal.CaptureRuns` is set.\n- `runtime.Flags.DataOnly` (added in commit 404214e2) makes recorded data the only source a segment may render from — no segment probes the machine. The wasm entrypoint MUST set it.\n- The whole render path already compiles for js/wasm: `GOOS=js GOARCH=wasm go build -o /dev/null ./config/ ./prompt/ ./svg/ ./terminal/ ./color/ ./runtime/` currently succeeds. Keep it that way.\n\n## Task 1 — a shared render package\n\nThree things needed by both the CLI and a browser currently live in `src/cli` and cannot be imported from a wasm entrypoint:\n\n- `renderConfigForExport` in `src/cli/config_export_data.go` — the engine setup (runtime.Flags → env.Init → template.Init → clear ConsoleTitleTemplate/PWD/ShellIntegration → terminal.Init → BackgroundColor/Colors → Engine → Primary()).\n- `svgOptions` and the `fontMetrics` struct in `src/cli/config_export_svg.go` — builds `svg.Options`, resolving the accent and terminal background out of `terminal.Colors`/`terminal.BackgroundColor` and scaling the font-metric ratios by `svg.DefaultFontSize`.\n- `exportSVG`'s glue — `CapturedRuns()` + `CursorAnchor()` → `svg.Encode`.\n\nCreate a package (suggest `src/render`) holding these, and have `src/cli` use it. The CLI keeps everything genuinely CLI-shaped: cobra wiring, flag variables, `config.Load`, file writing, `svgOutputPath`, the `--data`/`--data-derive`/`--data-only` handling.\n\nJudgement calls that are yours to make, but justify them in comments:\n- Whether the option-building belongs in `src/render` or as an extra constructor on `svg.Options`. Note `svg.Options`' doc comment deliberately takes colours as explicit fields so resolution stays unit-testable — do not undermine that; any terminal-state-reading constructor must be additive, with the plain struct still usable directly.\n- The exact signature. It should read naturally for both callers.\n\n## Task 2 — parse a config from memory\n\n`config.read` (`src/config/load.go:194`) derives format from the file extension and bytes from `getData`, which reads a file or fetches an `https://` URL. A browser has neither a file nor a config path — the studio hands over config *text*.\n\nExtract a `config.Parse(format string, data []byte) (*Config, error)` (name it as you see fit) covering the format switch and whatever presence/normalisation `read` does after it, and have `read` call it. This must NOT touch the filesystem or the network.\n\nNote and state in a comment: parsing from memory bypasses `Load`'s `extends` loop entirely, so a config parsed this way cannot pull in a remote config — which is the property the studio wants. Do not add an `extends` fetch to this path.\n\n## Task 3 — the wasm entrypoint\n\nAdd a `main` package that builds only for js/wasm (`//go:build js && wasm`), exposing one function to JavaScript via `syscall/js`:\n\n render(configText, format, dataJSON, optionsObject) -> { svg: string } | { error: string }\n\n- It MUST set `runtime.Flags.DataOnly = true` and `terminal.CaptureRuns = true`.\n- It MUST NOT call `config.Load` or anything that reads a file or the network.\n- Keep it thin — it is an adapter over `src/render`, not a second implementation. If you find yourself reimplementing render logic, stop and move that logic into the shared package instead.\n- Decide where it lives (e.g. `src/wasm/`) and make sure `go build ./...` on a normal platform is unaffected by its presence.\n- Errors go back as a value, never a panic that would kill the wasm instance.\n\n## VERIFICATION — run every one and report actual output\n\n1. `cd src && go build ./... && go vet ./...`\n2. `cd src && go test ./... -count=1` — full suite.\n3. `cd src && golangci-lint run ./...` — must be 0 issues.\n4. `cd src && GOOS=js GOARCH=wasm go build -o /tmp/omp.wasm ./wasm/` (adjust path) — must succeed. Report the raw size.\n5. **THE OUTPUT GATE — 124 themes.** Build the CLI, export every theme in `D:/oh-my-posh/themes` (`*.omp.json` and `*.omp.yaml`) with `config export image --config --data src/prompt/testdata/fixtures/prompt.data.json -o /.svg`, and diff the whole directory against a set produced by a binary built from current HEAD (use `git worktree add --detach /tmp/omp-head HEAD` — that does not touch this working tree). MUST be zero diff. Task 1 is a refactor; if rendering changed, it is wrong.\n6. **THE PARITY GATE — the point of all this.** Run the wasm module under Node and prove it renders identically to the CLI for at least three themes of differing shape (suggest `jandedobbeleer`, `glowsticks`, `cert`).\n - The Go wasm host shim is at `$(go env GOROOT)/lib/wasm/wasm_exec_node.js`, and `$(go env GOROOT)/lib/wasm/wasm_exec.js` for the browser glue.\n - Write a small Node driver under /tmp (NOT in the repo) that instantiates the module, reads a theme file and `src/prompt/testdata/fixtures/prompt.data.json` from disk *in Node*, passes them in as strings, and writes the returned SVG out.\n - Diff that against the CLI's output for the same theme with `--data-only`.\n - They MUST match byte for byte. If they do not, do not rationalise the difference — report exactly what differs, with a snippet, and say why. A mismatch means there are two renderers again, which is the thing this whole design exists to prevent.\n - Note the CLI must be invoked with `--data-only` for a fair comparison, since the wasm entrypoint always sets it.\n\nReport: what you created and moved, every verification result with real numbers, the wasm size, the parity outcome, and anything you could not do or chose not to. If a check did not run, say so plainly rather than implying it passed.","outputFile":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a8bcd510ee5ff6187.output","canReadOutputFile":true},"sourceToolAssistantUUID":"e4cef2c4-cbbe-41f8-add4-eb52d1485fc5","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6fa37a14-c8bd-4b3f-8dd7-def71d2bedd4","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUAyDWxfVvqgNcRbMpkK","type":"message","role":"assistant","content":[{"type":"text","text":"Running. Three pieces, in dependency order:\n\n1. **`src/render`** — `renderConfigForExport`, `svgOptions`/`fontMetrics`, and the `CapturedRuns` → `Encode` glue move out of `src/cli`. The CLI keeps what's genuinely CLI-shaped: cobra wiring, `config.Load`, file writing, the `--data*` flags.\n2. **`config.Parse(format, data)`** — a config from memory rather than a path. This one has a nice side effect: parsing from a string bypasses `Load`'s `extends` loop entirely, so a studio config *structurally cannot* pull in a remote config. That closes the `extends` gap I raised earlier without needing a rejection rule.\n3. **The js/wasm entrypoint** — `render(configText, format, dataJSON, options)`, always with `DataOnly` and `CaptureRuns` set, thin enough that it can't become a second renderer.\n\nTwo hard gates, and the second is the one that matters:\n\n- 124 themes byte-identical against a binary built from HEAD — task 1 is a refactor, so any rendering change is a bug.\n- **The wasm module, run under Node, must produce byte-identical SVG to the CLI** for three themes of different shape. I told it explicitly not to rationalise a mismatch: a difference there means we have two renderers again, which is exactly what the run-stream architecture exists to prevent.\n\nI'll verify both myself when it lands rather than taking the report on trust — the last two agents each had something worth catching."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":3112,"cache_read_input_tokens":570970,"output_tokens":508,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":3112,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":508,"cache_read_input_tokens":570970,"cache_creation_input_tokens":3112,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":3112},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUAy7FS8M5CnqcDH5qWe","type":"assistant","uuid":"5071b37b-92c4-47a0-9125-229434272bdd","timestamp":"2026-07-28T08:53:27.528Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5071b37b-92c4-47a0-9125-229434272bdd","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":3553},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T08:53:34.070Z","uuid":"a9b06d81-67b9-4cf1-b536-786c77dfcc23","toolUseID":"2d9a82b4-d2fc-43c5-8bc7-49abd320146f","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a9b06d81-67b9-4cf1-b536-786c77dfcc23","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":"\na8bcd510ee5ff6187\ntoolu_01QMzt91o28X8tXNvM7dCN88\nC:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\tasks\\a8bcd510ee5ff6187.output\ncompleted\nAgent \"Extract render package and wasm entrypoint\" finished\nA task-notification fires each time this agent stops with no live background children of its own. The user can send it another message and resume it, so the same task-id may notify more than once.\n## Summary\n\n**Chapter 1 — Render package (Task 1).** Created `D:\\oh-my-posh\\src\\render\\render.go`, moving the three pieces out of `cli`:\n- `render.Config` (was `renderConfigForExport` in `cli/config_export_data.go`) — the engine-setup sequence, signature unchanged.\n- `render.FontMetrics` + `render.SVGOptions` (was `fontMetrics`/`svgOptions` in `cli/config_export_svg.go`) — kept in `render`, not as an `svg.Options` constructor, specifically to avoid pulling `terminal.Colors`/`terminal.BackgroundColor` package-global reads into `svg`, which its own doc comment says must stay pure/unit-testable.\n- `render.SVG(eng, opts)` — the `CapturedRuns()`/`CursorAnchor()`/`svg.Encode` glue, split out of `exportSVG`.\n\n`cli/config_export_data.go`, `config_export_svg.go`, `config_export_image.go` now call into `render` and keep only cobra wiring, flags, and file writing.\n\n**Chapter 2 — Memory config parsing (Task 2).** In `D:\\oh-my-posh\\src\\config\\load.go`, extracted `config.ParseBytes(format string, data []byte) (*Config, error)` (named `ParseBytes`, not `Parse` — that name was already taken by the path-based, extends-aware loader). It covers exactly what `read` did after `getData`: the format switch and `populatePresence`. It deliberately does **not** replicate `Parse`'s extends loop, `migrateSegmentProperties`, `toggleSegments`, or `Upgrade` defaulting — documented in its doc comment, along with a note that the config-hash (`ConfigHash`) is now computed over the as-fetched bytes rather than the JSONC-comment-stripped bytes (an untested, harmless difference: only changes the cache key when a JSONC comment-only edit is made).\n\nAlso added `config.ParseData` (`config/data.go`) as the memory counterpart to `LoadData`, refactored to share a `decodeDataRoot`/`dataFromRoot` pair with `LoadData`'s existing JSON/YAML/TOML branches.\n\n**Chapter 3 — wasm entrypoint (Task 3).** `D:\\oh-my-posh\\src\\wasm\\main.go`, `//go:build js && wasm`, exposes `render(configText, format, dataJSON, optionsObject)`. Sets `runtime.Flags.DataOnly = true` and `terminal.CaptureRuns = true`; never calls `config.Load`; resets the template cache every call (long-lived instance, unlike the CLI's one-shot commands); returns `{svg}`/`{error}`, never panics (recover backstop).\n\n**A real bug found and fixed along the way:** `runtime/terminal_unix.go`'s `Root()` (`//go:build !windows`) called `os.Geteuid()`, which panics under `GOOS=js` the instant there's no JS `process` global — true in a real browser, not just my Node test. Split it, mirroring the existing `DirIsWritable`/`terminal_writable_unix.go`+`terminal_writable_js.go` precedent: `terminal_root_unix.go` (`!windows && !js`, real `Geteuid`) and `terminal_root_js.go` (`js`, always `false`).\n\n### Verification (all run from `D:\\oh-my-posh\\src`)\n\n1. `go build ./...` — clean. `go vet ./...` — 3 pre-existing `unsafe.Pointer` warnings in `cache/file_map_windows.go`, confirmed present on unmodified HEAD too (unrelated).\n2. `go test ./... -count=1` — all packages pass (one `prompt` streaming test flaked once on timing, unrelated to any touched file, passed on retry and on HEAD).\n3. `golangci-lint run ./...` — **0 issues**. Also ran `GOOS=js GOARCH=wasm golangci-lint run ./...` — 0 issues (one pre-existing, HEAD-reproducible typecheck error in an unrelated `battery` test file under the js tag, not a lint issue).\n4. `GOOS=js GOARCH=wasm go build -o /tmp/omp-final.wasm ./wasm/` — succeeds. **Size: 30,111,216 bytes (~28.7 MiB)**.\n5. **Output Gate**: built CLI from this branch and from a `git worktree add --detach` of HEAD; exported all 124 bundled themes (`config export image --config <f> --data prompt.data.json -o ...`, no `--data-only`, per spec) with both. `diff -rq` — zero diff; aggregate SHA-256 over both directories' file hashes matched exactly.\n6. **Parity Gate**: wrote a Node driver (scratchpad only, not in repo) using `wasm_exec.js`. Tested `jandedobbeleer` (json), `glowsticks` (yaml), `cert` (json), plus `atomic` and `powerlevel10k_rainbow` as extra confidence — **all five byte-identical** to CLI output with `--data-only`.\n\n**One real finding surfaced by the parity gate, not swept under the rug:** `segments/git.go`'s `StashCount()` reads `.git/logs/refs/stash` directly from an unexported field never restored by the recorded-data replay — so it live-probes the filesystem even under `DataOnly`/`--data-only`, contradicting the \"no segment probes the machine\" premise. This first showed up as a permanent deadlock in Node (Go's js/wasm channel-based fs call can't resolve if the JS callback is asynchronous), fixed by giving the Node driver a synchronous \"no filesystem\" `fs` shim — which is also an accurate simulation of a real browser (no `fs` at all). Empirically this theme's rendered bytes were identical whether the CLI ran with a real git repo (2 real stashes) or not, so it didn't produce a visible mismatch for the fixture used, but the underlying gap is real and pre-existing (unrelated to Tasks 1–3); I did not attempt to fix it, since doing so would mean adding `StashCount` (and any other unexported, lazily-computed segment fields) to the recorder/replay format — a separate, larger change.\n\nNothing was committed, per instructions. Files touched: `src/render/render.go` (new), `src/wasm/main.go` (new), `src/runtime/terminal_root_unix.go` + `terminal_root_js.go` (new), `src/runtime/terminal_unix.go`, `src/config/load.go`, `src/config/data.go`, `src/cli/config_export_{data,svg,image}.go`.\n2550541381978248\n"},"uuid":"ac92d701-9922-4898-81a3-ad4d28c54b69","timestamp":"2026-07-28T09:26:21.330Z","permissionMode":"auto","origin":{"kind":"task-notification"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ac92d701-9922-4898-81a3-ad4d28c54b69","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-ee0ab09b-a94c-4c56-b77b-9ce92deb914c","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"c705f517-bf45-4565-8c7c-c3b95e9006ec","timestamp":"2026-07-28T09:26:21.613Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c705f517-bf45-4565-8c7c-c3b95e9006ec","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDVxFnhdJTvQmtNgfFE","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I've found something significant with `StashCount` — it reveals that `DataOnly` isn't actually airtight since a segment reads directly from the filesystem outside the writer-restore path, which undermines the core assumption. I need to verify this honestly and also run through the standard validation gates plus manually check the parity gate myself by building the wasm and comparing outputs with my own Node driver.","signature":"CAIS4gYKhwEIEBgCKkADEg11CjOslRxcj+Rms00GTJZQM3EON+74AmHANpt2miZ0qAdim5wc9/indRLdR6rddFWQmrnH71XwQefc1Ks7Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDMVah843zUt6DrWx3xoMEVnP7S7RsDBCOmZ0IjBEMB4LCzwRYviMgAnzkcVoNYXZhyFMcsGAWfHWLIGg+7+TU0VZg75+2GQvVIpi/9EqhwXCuy7TNax8QD6fJV0uXNVK37SCA96Daua2l9f7iwkQDxlPAyNTOq+s3NSlU00BH8Z6upyvjB9ghwt4zVhQSig37EE8NoVXj20TSzL34FDRfHreZmO8BxTbONFPIUJwmbpUgcaliqkjdvv4KLLOT534+41Jps7XSimbNEmcHlZJqpwQ/yF4+19Er6TFR1tsLoq3w2IeSFtSrTUtRrOGsVBaSP9Fx4tKazu75MD+WOiUsmTprb9zbWqb5VzsFUneiNO3KieP7YhiNcY7Sg36z1KD5aDTPqeEdAQVyC0SzT4uAoamRXp89D8uqn9Kp7neu7mzZIdkl4TPpwcZWArDwMpbPQ3INZJJ23GgWzw/QhawfddkjrDcdENfGAH1SuVt2bzbOUX1nKVFTIttZoBE0ycC9O0r6W8yoZOoGl/vY3L/aKI7w1aWXZK/YGsx3neGb9tTT2Ymn/frlQ3ADnE2fFktDJ6Ankn/JwjxWM9FtyakgIwXlGWKdQgSlnMgIFA/TGKxw3WoOrzIvxsfKk3SrTWPsawTP4aHFC/6ETvLkLmanCaBJsCppMywG2taaT8M8JCaRxFPJZ99F3xiNgCpBc+YiXDgsGM+k34d1ZJKokwZVfLGHJv9ISp1UEdWxysmCth602AwnXUaWn41PiRd2DsTPSPnFG/66dwTs6OmMDt4m8qiNi6w2lFecAQB5t20Y/cv63ABmM9cRBwoE6zOe0gF35XaCr4yLTzNluTAUZ/T3zaukOE53Qp0d3ON0uRl0tJTiGCSb7zGH+wbbMJum8QpCfo9W6kJVQ+7ardRAQ2TRXh4hrZnmJHONhNsl/K7zg3o8WBViQFyONuUyrcAgM2bnYXbF6LkxBgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2859,"cache_read_input_tokens":574590,"output_tokens":482,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2859,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":482,"cache_read_input_tokens":574590,"cache_creation_input_tokens":2859,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2859},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDVewz6qoDoBQhenuZq","type":"assistant","uuid":"b99860da-0887-444e-b86f-8f26ea2803f9","timestamp":"2026-07-28T09:26:41.463Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b99860da-0887-444e-b86f-8f26ea2803f9","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDVxFnhdJTvQmtNgfFE","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_019pA7aBy8MKEh2vgcZQhABe","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && go build ./... && go test ./... -count=1 2>&1 | grep -v \"^ok\\|no test files\" | head -5; golangci-lint run ./... 2>&1 | tail -2; echo \"=== wasm ===\"; GOOS=js GOARCH=wasm go build -o \"$TMPDIR/omp.wasm\" ./wasm/ && ls -la \"$TMPDIR/omp.wasm\" | awk '{printf \"%.2f MB\\n\", $5/1048576}'","description":"Run gates and build the wasm module"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2859,"cache_read_input_tokens":574590,"output_tokens":482,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2859,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":482,"cache_read_input_tokens":574590,"cache_creation_input_tokens":2859,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2859},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDVewz6qoDoBQhenuZq","type":"assistant","uuid":"cd3a0bd7-851e-44bc-94e2-e5e61f32bfb8","timestamp":"2026-07-28T09:26:42.513Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cd3a0bd7-851e-44bc-94e2-e5e61f32bfb8","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_019pA7aBy8MKEh2vgcZQhABe","type":"tool_result","content":"0 issues.\n=== wasm ===\n28.72 MB","is_error":false}]},"uuid":"792681c9-9034-4826-aee3-efae85a6e09a","timestamp":"2026-07-28T09:27:03.774Z","toolUseResult":{"stdout":"0 issues.\n=== wasm ===\n28.72 MB","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"cd3a0bd7-851e-44bc-94e2-e5e61f32bfb8","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"792681c9-9034-4826-aee3-efae85a6e09a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDYk5dt59RYMivPqW9A","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01UaA7nFLV98aNay8CwRKWbd","name":"Bash","input":{"command":"cd /d/oh-my-posh && go -C src build -o \"$TMPDIR/omp-render.exe\" . && rm -rf \"$TMPDIR/gate-render\" && mkdir -p \"$TMPDIR/gate-render\" && for f in themes/*.omp.json themes/*.omp.yaml; do b=$(basename \"$f\"); b=${b%%.omp.*}; \"$TMPDIR/omp-render.exe\" config export image --config \"$f\" --data src/prompt/testdata/fixtures/prompt.data.json -o \"$TMPDIR/gate-render/$b.svg\" >/dev/null 2>&1; done; echo \"count=$(ls \"$TMPDIR/gate-render\" | wc -l)\"; diff -rq \"$TMPDIR/gate-layer\" \"$TMPDIR/gate-render\" >/dev/null && echo \"ZERO DIFF vs pre-refactor\"","description":"Verify the 124-theme output gate independently"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":507,"cache_read_input_tokens":577449,"output_tokens":387,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":507,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":387,"cache_read_input_tokens":577449,"cache_creation_input_tokens":507,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":507},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDYW8zhtDusqcmQtyKJ","type":"assistant","uuid":"7d7e638c-1613-49ce-a6c3-2154d9610f44","timestamp":"2026-07-28T09:27:13.097Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7d7e638c-1613-49ce-a6c3-2154d9610f44","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01UaA7nFLV98aNay8CwRKWbd","type":"tool_result","content":"count=124\nZERO DIFF vs pre-refactor","is_error":false}]},"uuid":"31b2a967-c53e-47ab-b486-91cfe78253a3","timestamp":"2026-07-28T09:27:47.347Z","toolUseResult":{"stdout":"count=124\nZERO DIFF vs pre-refactor","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"classifierMetaLines":"{\"meta\":{\"gitStatus\":{\"staged\":0,\"modified\":6,\"untracked\":4}}}\n","sourceToolAssistantUUID":"7d7e638c-1613-49ce-a6c3-2154d9610f44","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"31b2a967-c53e-47ab-b486-91cfe78253a3","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDbr4PgStdwJdWV9xGe","type":"message","role":"assistant","content":[{"type":"text","text":"Refactor is clean. Now the parity gate — writing my own Node driver rather than trusting the agent's:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":412,"cache_read_input_tokens":577956,"output_tokens":248,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":412,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":248,"cache_read_input_tokens":577956,"cache_creation_input_tokens":412,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":412},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDbhWwCcFU18HCkiB19","type":"assistant","uuid":"94740143-d774-4154-be8e-953599c4e443","timestamp":"2026-07-28T09:27:51.690Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"94740143-d774-4154-be8e-953599c4e443","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDbr4PgStdwJdWV9xGe","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Hs4VazRY2c2e4bGP7UfrFA","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; mkdir -p \"$SP/parity\" && grep -n \"js.Global().Set\\|js.FuncOf\\|func render\\|Get(\\\"\" src/wasm/main.go | head -20","description":"Read the wasm entrypoint contract"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":412,"cache_read_input_tokens":577956,"output_tokens":248,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":412,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":248,"cache_read_input_tokens":577956,"cache_creation_input_tokens":412,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":412},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDbhWwCcFU18HCkiB19","type":"assistant","uuid":"1109f687-3d79-487a-af98-bea2e8e14149","timestamp":"2026-07-28T09:27:55.021Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1109f687-3d79-487a-af98-bea2e8e14149","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Hs4VazRY2c2e4bGP7UfrFA","type":"tool_result","content":"33:\tjs.Global().Set(\"render\", js.FuncOf(renderJS))\n37:\t// registered above (js.FuncOf) stops working on the very next call. This\n52:func renderJS(_ js.Value, args []js.Value) (result any) {\n74:func renderSVG(args []js.Value) (string, error) {","is_error":false}]},"uuid":"4c60cfa9-4f7d-4b2a-899e-ae9952745b46","timestamp":"2026-07-28T09:27:58.172Z","toolUseResult":{"stdout":"33:\tjs.Global().Set(\"render\", js.FuncOf(renderJS))\n37:\t// registered above (js.FuncOf) stops working on the very next call. This\n52:func renderJS(_ js.Value, args []js.Value) (result any) {\n74:func renderSVG(args []js.Value) (string, error) {","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"1109f687-3d79-487a-af98-bea2e8e14149","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4c60cfa9-4f7d-4b2a-899e-ae9952745b46","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"4f83f10f-a934-4a5a-95ed-2a8169d38634","timestamp":"2026-07-28T09:27:58.180Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4f83f10f-a934-4a5a-95ed-2a8169d38634","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDcefZsdn5yarnmj7up","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_0114kdoJuWPsmaTnRwPpBTyR","name":"Bash","input":{"command":"sed -n '74,130p' src/wasm/main.go","description":"Read the render argument contract"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":487,"cache_read_input_tokens":578368,"output_tokens":93,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":487,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":93,"cache_read_input_tokens":578368,"cache_creation_input_tokens":487,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":487},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDcVygJMNwLa45AQa1P","type":"assistant","uuid":"f55e6390-8544-4b53-a58d-fc32f81c80bd","timestamp":"2026-07-28T09:28:02.773Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f55e6390-8544-4b53-a58d-fc32f81c80bd","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_0114kdoJuWPsmaTnRwPpBTyR","type":"tool_result","content":"func renderSVG(args []js.Value) (string, error) {\n\tif len(args) < 4 {\n\t\treturn \"\", fmt.Errorf(\"render expects 4 arguments (configText, format, dataJSON, options), got %d\", len(args))\n\t}\n\n\tconfigText := jsString(args[0])\n\tformat := jsString(args[1])\n\tdataJSON := jsString(args[2])\n\toptions := args[3]\n\n\tcfg, err := config.ParseBytes(format, []byte(configText))\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"failed to parse config: %w\", err)\n\t}\n\n\tvar data *config.Data\n\n\tif dataJSON != \"\" {\n\t\tdata, err = config.ParseData([]byte(dataJSON))\n\t\tif err != nil {\n\t\t\treturn \"\", fmt.Errorf(\"failed to parse data: %w\", err)\n\t\t}\n\t}\n\n\t// applyData plays the same role here as the CLI image command's own\n\t// --data closure (cli/config_export_image.go, applyDataFile): it runs\n\t// against render.Config's freshly built flags before env.Init.\n\tapplyData := func(flags *runtime.Flags) error {\n\t\t// DataOnly makes the recorded data the only source a segment may\n\t\t// render from (see runtime.Flags.DataOnly's own doc comment). The\n\t\t// CLI's --data-only is an opt-in a user can leave off, in which case\n\t\t// an uncovered segment falls through to probing the real machine;\n\t\t// here that fallback would mean probing the *browser's* fake\n\t\t// environment, which can never be what a caller of this function\n\t\t// wants, so this is mandatory rather than a choice exposed to JS.\n\t\tflags.DataOnly = true\n\n\t\tif data == nil {\n\t\t\treturn nil\n\t\t}\n\n\t\t// changed is nil: there is no CLI flag of data's own env keys (pwd,\n\t\t// status, ...) to consult for \"was this overridden explicitly\" from\n\t\t// this call, exactly like prompt/golden_test.go's fixture harness -\n\t\t// see config.Data.ApplyFlags' own doc comment.\n\t\treturn data.ApplyFlags(flags, nil)\n\t}\n\n\t// terminal.CaptureRuns must be set before render.Config's own\n\t// eng.Primary() call runs - render.Config's doc comment explains why\n\t// that line can't live inside render.Config itself, and every caller\n\t// (the CLI image command, this one) sets it at its own call site instead.\n\tterminal.CaptureRuns = true\n\n\tcolumns := jsInt(optionsGet(options, \"columns\"), 120)\n\n\t// resetTemplateCache is true, unlike the CLI's single-shot image/data","is_error":false}]},"uuid":"812be2a3-21ad-41db-8c2b-a9347aea4437","timestamp":"2026-07-28T09:28:03.990Z","toolUseResult":{"stdout":"func renderSVG(args []js.Value) (string, error) {\n\tif len(args) < 4 {\n\t\treturn \"\", fmt.Errorf(\"render expects 4 arguments (configText, format, dataJSON, options), got %d\", len(args))\n\t}\n\n\tconfigText := jsString(args[0])\n\tformat := jsString(args[1])\n\tdataJSON := jsString(args[2])\n\toptions := args[3]\n\n\tcfg, err := config.ParseBytes(format, []byte(configText))\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"failed to parse config: %w\", err)\n\t}\n\n\tvar data *config.Data\n\n\tif dataJSON != \"\" {\n\t\tdata, err = config.ParseData([]byte(dataJSON))\n\t\tif err != nil {\n\t\t\treturn \"\", fmt.Errorf(\"failed to parse data: %w\", err)\n\t\t}\n\t}\n\n\t// applyData plays the same role here as the CLI image command's own\n\t// --data closure (cli/config_export_image.go, applyDataFile): it runs\n\t// against render.Config's freshly built flags before env.Init.\n\tapplyData := func(flags *runtime.Flags) error {\n\t\t// DataOnly makes the recorded data the only source a segment may\n\t\t// render from (see runtime.Flags.DataOnly's own doc comment). The\n\t\t// CLI's --data-only is an opt-in a user can leave off, in which case\n\t\t// an uncovered segment falls through to probing the real machine;\n\t\t// here that fallback would mean probing the *browser's* fake\n\t\t// environment, which can never be what a caller of this function\n\t\t// wants, so this is mandatory rather than a choice exposed to JS.\n\t\tflags.DataOnly = true\n\n\t\tif data == nil {\n\t\t\treturn nil\n\t\t}\n\n\t\t// changed is nil: there is no CLI flag of data's own env keys (pwd,\n\t\t// status, ...) to consult for \"was this overridden explicitly\" from\n\t\t// this call, exactly like prompt/golden_test.go's fixture harness -\n\t\t// see config.Data.ApplyFlags' own doc comment.\n\t\treturn data.ApplyFlags(flags, nil)\n\t}\n\n\t// terminal.CaptureRuns must be set before render.Config's own\n\t// eng.Primary() call runs - render.Config's doc comment explains why\n\t// that line can't live inside render.Config itself, and every caller\n\t// (the CLI image command, this one) sets it at its own call site instead.\n\tterminal.CaptureRuns = true\n\n\tcolumns := jsInt(optionsGet(options, \"columns\"), 120)\n\n\t// resetTemplateCache is true, unlike the CLI's single-shot image/data","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"f55e6390-8544-4b53-a58d-fc32f81c80bd","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"812be2a3-21ad-41db-8c2b-a9347aea4437","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDdAUT2CRQbmcHi7C3p","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_012raHeVN2zth793JTgVVeif","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\parity\\drive.mjs","content":"// Independent parity driver: instantiate the wasm module, render a theme, print\n// the SVG to stdout. Deliberately gives the module a filesystem that refuses\n// every call, so any segment that reaches for the disk fails loudly here rather\n// than quietly succeeding — a real browser has no fs at all.\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { execFileSync } from \"node:child_process\";\n\nconst [wasmPath, themePath, dataPath] = process.argv.slice(2);\n\nconst goroot = execFileSync(\"go\", [\"env\", \"GOROOT\"], { encoding: \"utf8\" }).trim();\nconst shim = path.join(goroot, \"lib\", \"wasm\", \"wasm_exec.js\");\n\n// The module reads config and data as strings we pass in; it must never need\n// the host filesystem. Stub it to throw so a stray read cannot silently work.\nconst deny = () => {\n throw new Error(\"filesystem access denied: a browser has none\");\n};\n\nglobalThis.fs = new Proxy(\n { constants: { O_WRONLY: 1, O_RDWR: 2, O_CREAT: 64, O_TRUNC: 512, O_APPEND: 1024, O_EXCL: 128 } },\n {\n get(target, prop) {\n if (prop in target) {\n return target[prop];\n }\n // write is used by println/stderr; let it through to keep panics visible.\n if (prop === \"write\" || prop === \"writeSync\") {\n return (fd, buf, off, len, pos, cb) => {\n const slice = buf.subarray(off ?? 0, (off ?? 0) + (len ?? buf.length));\n process.stderr.write(slice);\n if (cb) cb(null, len ?? buf.length);\n return len ?? buf.length;\n };\n }\n return deny;\n },\n },\n);\n\nglobalThis.process = process;\nglobalThis.performance ??= (await import(\"node:perf_hooks\")).performance;\nglobalThis.crypto ??= (await import(\"node:crypto\")).webcrypto;\n\nawait import(shim);\n\nconst go = new globalThis.Go();\nconst { instance } = await WebAssembly.instantiate(fs.readFileSync(wasmPath), go.importObject);\n\ngo.run(instance); // resolves when the module exits; ours blocks on a channel\n\nconst configText = fs.readFileSync(themePath, \"utf8\");\nconst format = path.extname(themePath).replace(\".\", \"\");\nconst dataJSON = fs.readFileSync(dataPath, \"utf8\");\n\nconst out = globalThis.render(configText, format, dataJSON, { columns: 120 });\n\nif (out.error) {\n console.error(\"render error:\", out.error);\n process.exit(1);\n}\n\nprocess.stdout.write(out.svg);\nprocess.exit(0);\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":946,"cache_read_input_tokens":578855,"output_tokens":1069,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":946,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1069,"cache_read_input_tokens":578855,"cache_creation_input_tokens":946,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":946},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDcvSqrnJA3nEEgPA8j","type":"assistant","uuid":"ecacc04e-ba70-46d6-b13b-4962fcac6c9c","timestamp":"2026-07-28T09:28:22.752Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ecacc04e-ba70-46d6-b13b-4962fcac6c9c","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_012raHeVN2zth793JTgVVeif","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\parity\\drive.mjs (file state is current in your context — no need to Read it back)"}]},"uuid":"bd6da40d-c880-4efc-9656-22af52f4ff04","timestamp":"2026-07-28T09:28:22.811Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\parity\\drive.mjs","content":"// Independent parity driver: instantiate the wasm module, render a theme, print\n// the SVG to stdout. Deliberately gives the module a filesystem that refuses\n// every call, so any segment that reaches for the disk fails loudly here rather\n// than quietly succeeding — a real browser has no fs at all.\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { execFileSync } from \"node:child_process\";\n\nconst [wasmPath, themePath, dataPath] = process.argv.slice(2);\n\nconst goroot = execFileSync(\"go\", [\"env\", \"GOROOT\"], { encoding: \"utf8\" }).trim();\nconst shim = path.join(goroot, \"lib\", \"wasm\", \"wasm_exec.js\");\n\n// The module reads config and data as strings we pass in; it must never need\n// the host filesystem. Stub it to throw so a stray read cannot silently work.\nconst deny = () => {\n throw new Error(\"filesystem access denied: a browser has none\");\n};\n\nglobalThis.fs = new Proxy(\n { constants: { O_WRONLY: 1, O_RDWR: 2, O_CREAT: 64, O_TRUNC: 512, O_APPEND: 1024, O_EXCL: 128 } },\n {\n get(target, prop) {\n if (prop in target) {\n return target[prop];\n }\n // write is used by println/stderr; let it through to keep panics visible.\n if (prop === \"write\" || prop === \"writeSync\") {\n return (fd, buf, off, len, pos, cb) => {\n const slice = buf.subarray(off ?? 0, (off ?? 0) + (len ?? buf.length));\n process.stderr.write(slice);\n if (cb) cb(null, len ?? buf.length);\n return len ?? buf.length;\n };\n }\n return deny;\n },\n },\n);\n\nglobalThis.process = process;\nglobalThis.performance ??= (await import(\"node:perf_hooks\")).performance;\nglobalThis.crypto ??= (await import(\"node:crypto\")).webcrypto;\n\nawait import(shim);\n\nconst go = new globalThis.Go();\nconst { instance } = await WebAssembly.instantiate(fs.readFileSync(wasmPath), go.importObject);\n\ngo.run(instance); // resolves when the module exits; ours blocks on a channel\n\nconst configText = fs.readFileSync(themePath, \"utf8\");\nconst format = path.extname(themePath).replace(\".\", \"\");\nconst dataJSON = fs.readFileSync(dataPath, \"utf8\");\n\nconst out = globalThis.render(configText, format, dataJSON, { columns: 120 });\n\nif (out.error) {\n console.error(\"render error:\", out.error);\n process.exit(1);\n}\n\nprocess.stdout.write(out.svg);\nprocess.exit(0);\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"ecacc04e-ba70-46d6-b13b-4962fcac6c9c","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bd6da40d-c880-4efc-9656-22af52f4ff04","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDeU5PQ344BPncnRZDg","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01DWbDsbisAKRRGJB2BPoJGH","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/parity\"; for t in jandedobbeleer glowsticks cert; do f=$(ls themes/$t.omp.* | head -1); node \"$SP/drive.mjs\" \"$TMPDIR/omp.wasm\" \"$f\" src/prompt/testdata/fixtures/prompt.data.json > \"$SP/$t.wasm.svg\" 2>\"$SP/$t.err\"; echo \"$t: wasm exit=$? bytes=$(wc -c < \"$SP/$t.wasm.svg\")\"; done; head -3 \"$SP/jandedobbeleer.err\" 2>/dev/null","description":"Render three themes through the wasm module"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1175,"cache_read_input_tokens":579801,"output_tokens":363,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1175,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":363,"cache_read_input_tokens":579801,"cache_creation_input_tokens":1175,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1175},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDeKCLq2X9UrsCRCAmB","type":"assistant","uuid":"b3babe95-0fe5-419a-bb08-a55b8d218bf2","timestamp":"2026-07-28T09:28:30.425Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b3babe95-0fe5-419a-bb08-a55b8d218bf2","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01DWbDsbisAKRRGJB2BPoJGH","type":"tool_result","content":"jandedobbeleer: wasm exit=1 bytes=0\nglowsticks: wasm exit=1 bytes=0\ncert: wasm exit=1 bytes=0\nnode:internal/modules/esm/load:193\r\n throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, schemes);\r\n ^","is_error":false}]},"uuid":"dfb46130-dbcc-4355-b2aa-5605c36cac80","timestamp":"2026-07-28T09:28:35.012Z","toolUseResult":{"stdout":"jandedobbeleer: wasm exit=1 bytes=0\nglowsticks: wasm exit=1 bytes=0\ncert: wasm exit=1 bytes=0\nnode:internal/modules/esm/load:193\r\n throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, schemes);\r\n ^","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"b3babe95-0fe5-419a-bb08-a55b8d218bf2","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"dfb46130-dbcc-4355-b2aa-5605c36cac80","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDfNUKNUigL3NZd3bdG","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The issue is that `await import(shim)` needs a proper file URL on Windows, so I need to use `pathToFileURL` to convert the path. Also, `wasm_exec.js` is a classic script that sets globals rather than an ES module, so importing it might work since it doesn't have export syntax, though it relies on `globalThis` assignments and may reference `require`.","signature":"CAISqAYKhwEIEBgCKkCeaLCScVbYpcR7g616DOFkFj+tfRnM4CeB+cj31ZvormRkZcvEXl/Cxs/UcdtFfHGxytjHaquCjg9lxdqTw12QMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDEIBwDBDfJVlPzA6JhoMG3AGb+kORHomZS/SIjDW409bQPY8KT3v+CFXn/8DUEZYw9pnz0D38rbL0NCPA2qlZUzxQV8vavq1D8ijasQqzQR4Go3Jinhe7S5OaX9gBMWXVfYw+aMRSy9JowD/H/nvOkqbz3kupNbxwzwgEyNz70HYaJB4qoJAp5iip0cBjD7X1u1gZTpzCX07rszuFvhGgV0f/x5QFFzmXRHFtw5aVpSJONjpT4ZWf4VEukCWC0kAs68giJNFCMtvHLPVQE1KJdbq9ygeIretE4cSWG7aWPDt4w4lJoQ0ov1JNIkBzI33AeZx4g0Jsy+7URFmnFXu2RDcekeLHxnGLyo8I7Ca8SN3iRzU7EPG9mlEmIehWkEJz5Jnhq4TklOqsB0S6J59oRDgj+ywkGsZEVHafxKW+cjLPDMj7iUC5TQdrpYqnKZVF6gFoUi1VpuOw8sa/Zv3I1TVhr/8hIQWkKENxcKAhdDfJaqESCR0yOF4qz3XmofWXylbQ8yXGEjbgBQC2k1E9uJyh/nuv1W1UpywvsS3skLiGqHArNSJRKiaA0cnFEm9jCw1P9OiVFywdezsecJvyLPTFV0bfBxT4vLn5qRAaQjeWw2+91Faq1zUg6bvnkVXjCQyQkS/YibYFRC5l3sk8BBY3kucmgFDT1pJvu4YPgOaYKoX/j+hzUOzVxR6HY5A3tfeSw09YvX4LeiSki307NMf93/sruKqXRMCdzaynr777/f+IbNgjM0a0hzJKDngjVokvgApNUuGh4G0qoVh4bvil+bJaD9Ut9MxliVV95Ib77ezEvLab/gE15q6qj7XRYDhx6dbaiH7yOxZzA9SGbBxYlEIF0YgcdP2jiReCH3xW9W+NtR5o+IJXXhrGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":473,"cache_read_input_tokens":580976,"output_tokens":531,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":473,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":531,"cache_read_input_tokens":580976,"cache_creation_input_tokens":473,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":473},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDfD1JbfnC2Zf5bYDQp","type":"assistant","uuid":"4f1d4310-b665-4dad-bb0a-fb00b0c5b241","timestamp":"2026-07-28T09:28:45.581Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"4f1d4310-b665-4dad-bb0a-fb00b0c5b241","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDfNUKNUigL3NZd3bdG","type":"message","role":"assistant","content":[{"type":"text","text":"Driver bug on my side — Windows path isn't a valid ESM URL:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":473,"cache_read_input_tokens":580976,"output_tokens":531,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":473,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":531,"cache_read_input_tokens":580976,"cache_creation_input_tokens":473,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":473},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDfD1JbfnC2Zf5bYDQp","type":"assistant","uuid":"f47aacab-881e-4e4e-856b-4dff55337221","timestamp":"2026-07-28T09:28:45.582Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f47aacab-881e-4e4e-856b-4dff55337221","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDfNUKNUigL3NZd3bdG","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Srpa2Lvwf1ugh7h31K35s5","name":"Edit","input":{"replace_all":false,"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\parity\\drive.mjs","old_string":"import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { execFileSync } from \"node:child_process\";","new_string":"import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { execFileSync } from \"node:child_process\";\nimport { pathToFileURL } from \"node:url\";"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":473,"cache_read_input_tokens":580976,"output_tokens":531,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":473,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":531,"cache_read_input_tokens":580976,"cache_creation_input_tokens":473,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":473},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDfD1JbfnC2Zf5bYDQp","type":"assistant","uuid":"c9497c9b-703e-444e-867b-c8d121e9c19b","timestamp":"2026-07-28T09:28:45.786Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c9497c9b-703e-444e-867b-c8d121e9c19b","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Srpa2Lvwf1ugh7h31K35s5","type":"tool_result","content":"The file C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\parity\\drive.mjs has been updated successfully. (file state is current in your context — no need to Read it back)"}]},"uuid":"5383d7a7-e3f2-494b-a68f-f3d067354132","timestamp":"2026-07-28T09:28:45.836Z","toolUseResult":{"filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\parity\\drive.mjs","oldString":"import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { execFileSync } from \"node:child_process\";","newString":"import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { execFileSync } from \"node:child_process\";\nimport { pathToFileURL } from \"node:url\";","originalFile":"// Independent parity driver: instantiate the wasm module, render a theme, print\n// the SVG to stdout. Deliberately gives the module a filesystem that refuses\n// every call, so any segment that reaches for the disk fails loudly here rather\n// than quietly succeeding — a real browser has no fs at all.\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { execFileSync } from \"node:child_process\";\n\nconst [wasmPath, themePath, dataPath] = process.argv.slice(2);\n\nconst goroot = execFileSync(\"go\", [\"env\", \"GOROOT\"], { encoding: \"utf8\" }).trim();\nconst shim = path.join(goroot, \"lib\", \"wasm\", \"wasm_exec.js\");\n\n// The module reads config and data as strings we pass in; it must never need\n// the host filesystem. Stub it to throw so a stray read cannot silently work.\nconst deny = () => {\n throw new Error(\"filesystem access denied: a browser has none\");\n};\n\nglobalThis.fs = new Proxy(\n { constants: { O_WRONLY: 1, O_RDWR: 2, O_CREAT: 64, O_TRUNC: 512, O_APPEND: 1024, O_EXCL: 128 } },\n {\n get(target, prop) {\n if (prop in target) {\n return target[prop];\n }\n // write is used by println/stderr; let it through to keep panics visible.\n if (prop === \"write\" || prop === \"writeSync\") {\n return (fd, buf, off, len, pos, cb) => {\n const slice = buf.subarray(off ?? 0, (off ?? 0) + (len ?? buf.length));\n process.stderr.write(slice);\n if (cb) cb(null, len ?? buf.length);\n return len ?? buf.length;\n };\n }\n return deny;\n },\n },\n);\n\nglobalThis.process = process;\nglobalThis.performance ??= (await import(\"node:perf_hooks\")).performance;\nglobalThis.crypto ??= (await import(\"node:crypto\")).webcrypto;\n\nawait import(shim);\n\nconst go = new globalThis.Go();\nconst { instance } = await WebAssembly.instantiate(fs.readFileSync(wasmPath), go.importObject);\n\ngo.run(instance); // resolves when the module exits; ours blocks on a channel\n\nconst configText = fs.readFileSync(themePath, \"utf8\");\nconst format = path.extname(themePath).replace(\".\", \"\");\nconst dataJSON = fs.readFileSync(dataPath, \"utf8\");\n\nconst out = globalThis.render(configText, format, dataJSON, { columns: 120 });\n\nif (out.error) {\n console.error(\"render error:\", out.error);\n process.exit(1);\n}\n\nprocess.stdout.write(out.svg);\nprocess.exit(0);\n","structuredPatch":[{"oldStart":5,"oldLines":6,"newStart":5,"newLines":7,"lines":[" import fs from \"node:fs\";"," import path from \"node:path\";"," import { execFileSync } from \"node:child_process\";","+import { pathToFileURL } from \"node:url\";"," "," const [wasmPath, themePath, dataPath] = process.argv.slice(2);"," "]}],"userModified":false,"replaceAll":false},"sourceToolAssistantUUID":"c9497c9b-703e-444e-867b-c8d121e9c19b","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5383d7a7-e3f2-494b-a68f-f3d067354132","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDg7QjEs5fMRW1RrxUa","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_019HvsDec4y8c3fYbvdW2fja","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/parity\"; sed -i 's|await import(shim);|await import(pathToFileURL(shim).href);|' \"$SP/drive.mjs\" && for t in jandedobbeleer glowsticks cert; do f=$(ls themes/$t.omp.* | head -1); node \"$SP/drive.mjs\" \"$TMPDIR/omp.wasm\" \"$f\" src/prompt/testdata/fixtures/prompt.data.json > \"$SP/$t.wasm.svg\" 2>\"$SP/$t.err\"; echo \"$t: exit=$? bytes=$(wc -c < \"$SP/$t.wasm.svg\")\"; done; head -5 \"$SP/jandedobbeleer.err\"","description":"Rerun the wasm renders"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":640,"cache_read_input_tokens":581449,"output_tokens":383,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":640,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":383,"cache_read_input_tokens":581449,"cache_creation_input_tokens":640,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":640},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDg1neFLSpu1juSonAP","type":"assistant","uuid":"a6859bf4-1a49-4ad2-a4cc-c979f5d886bc","timestamp":"2026-07-28T09:28:52.141Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a6859bf4-1a49-4ad2-a4cc-c979f5d886bc","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_019HvsDec4y8c3fYbvdW2fja","type":"tool_result","content":"jandedobbeleer: exit=0 bytes=3980\nglowsticks: exit=0 bytes=3937\ncert: exit=0 bytes=3454","is_error":false}]},"uuid":"c8ee0a7b-82ef-40f7-89cd-fe65f9616092","timestamp":"2026-07-28T09:29:00.647Z","toolUseResult":{"stdout":"jandedobbeleer: exit=0 bytes=3980\nglowsticks: exit=0 bytes=3937\ncert: exit=0 bytes=3454","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"a6859bf4-1a49-4ad2-a4cc-c979f5d886bc","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c8ee0a7b-82ef-40f7-89cd-fe65f9616092","isSidechain":false,"attachment":{"type":"edited_text_file","filename":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\parity\\drive.mjs","snippet":"38\t },\n39\t },\n40\t);\n41\t\n42\tglobalThis.process = process;\n43\tglobalThis.performance ??= (await import(\"node:perf_hooks\")).performance;\n44\tglobalThis.crypto ??= (await import(\"node:crypto\")).webcrypto;\n45\t\n46\tawait import(pathToFileURL(shim).href);\n47\t\n48\tconst go = new globalThis.Go();\n49\tconst { instance } = await WebAssembly.instantiate(fs.readFileSync(wasmPath), go.importObject);\n50\t\n51\tgo.run(instance); // resolves when the module exits; ours blocks on a channel\n52\t\n53\tconst configText = fs.readFileSync(themePath, \"utf8\");\n54\tconst format = path.extname(themePath).replace(\".\", \"\");","displayPath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\parity\\drive.mjs"},"type":"attachment","uuid":"7cf1e433-087b-4476-be6c-60642e25aa5c","timestamp":"2026-07-28T09:29:00.655Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7cf1e433-087b-4476-be6c-60642e25aa5c","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDhEAopHFva8xZUnDFQ","type":"message","role":"assistant","content":[{"type":"text","text":"The wasm module renders under a filesystem that refuses every call. Now the comparison against the CLI:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":865,"cache_read_input_tokens":582089,"output_tokens":463,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":865,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":463,"cache_read_input_tokens":582089,"cache_creation_input_tokens":865,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":865},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDh75RAhLNCQnpXzde9","type":"assistant","uuid":"a996550e-0782-4869-bacd-182a34c7c880","timestamp":"2026-07-28T09:29:05.739Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a996550e-0782-4869-bacd-182a34c7c880","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDhEAopHFva8xZUnDFQ","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01FppbZhGa7RQkasc6P2juU2","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/parity\"; for t in jandedobbeleer glowsticks cert; do f=$(ls themes/$t.omp.* | head -1); \"$TMPDIR/omp-render.exe\" config export image --config \"$f\" --data src/prompt/testdata/fixtures/prompt.data.json --data-only -o \"$SP/$t.cli.svg\" >/dev/null 2>&1; if cmp -s \"$SP/$t.cli.svg\" \"$SP/$t.wasm.svg\"; then echo \"$t: IDENTICAL ($(wc -c < \"$SP/$t.cli.svg\") bytes)\"; else echo \"$t: DIFFERS\"; diff <(fold -w120 \"$SP/$t.cli.svg\") <(fold -w120 \"$SP/$t.wasm.svg\") | head -6; fi; done","description":"Compare wasm output against the CLI byte for byte"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":865,"cache_read_input_tokens":582089,"output_tokens":463,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":865,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":463,"cache_read_input_tokens":582089,"cache_creation_input_tokens":865,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":865},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDh75RAhLNCQnpXzde9","type":"assistant","uuid":"61792ab4-e4c4-4a36-bee8-a028ab58b6d9","timestamp":"2026-07-28T09:29:09.132Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"61792ab4-e4c4-4a36-bee8-a028ab58b6d9","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01FppbZhGa7RQkasc6P2juU2","type":"tool_result","content":"jandedobbeleer: DIFFERS\n27,34c27,34\n< \n< �\n< ��next ↑21  ?1 ~15 -124 \n< \n< \n< �\n< ��next ↑21  ?1 ~15 -124 \n< \n< ]*>(.*?)\", s)]\na, b = texts(sp + \"/jandedobbeleer.cli.svg\"), texts(sp + \"/jandedobbeleer.wasm.svg\")\nfor i, (x, y) in enumerate(zip(a, b)):\n if x != y:\n print(f\"run {i}\\n cli : {x!r}\\n wasm: {y!r}\")\nprint(f\"\\nruns: cli={len(a)} wasm={len(b)}\")\nPY","description":"Find the exact differing run"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":763,"cache_read_input_tokens":582954,"output_tokens":723,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":763,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":723,"cache_read_input_tokens":582954,"cache_creation_input_tokens":763,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":763},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDi6jc825113EyuSZzM","type":"assistant","uuid":"9dd70f3d-4684-46be-9411-d8d4968e7222","timestamp":"2026-07-28T09:29:25.147Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9dd70f3d-4684-46be-9411-d8d4968e7222","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_011FPpiGpWK8EMYqfgP9aqqD","type":"tool_result","content":"run 6\r\n cli : ' \\uf408\\ue0a0next ↑21 \\uf044 ?1 ~15 -124 '\r\n wasm: 'unable to create text based on template'\r\n\r\nruns: cli=17 wasm=17","is_error":false}]},"uuid":"7a47482c-ed5d-4fc3-975c-3599f15f1317","timestamp":"2026-07-28T09:29:31.297Z","toolUseResult":{"stdout":"run 6\r\n cli : ' \\uf408\\ue0a0next ↑21 \\uf044 ?1 ~15 -124 '\r\n wasm: 'unable to create text based on template'\r\n\r\nruns: cli=17 wasm=17","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"9dd70f3d-4684-46be-9411-d8d4968e7222","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7a47482c-ed5d-4fc3-975c-3599f15f1317","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"713bca29-fa3e-49b7-aa02-de7305232f5d","timestamp":"2026-07-28T09:29:31.303Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"713bca29-fa3e-49b7-aa02-de7305232f5d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDjWTeSy6tTRVDBZfmn","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The issue isn't about StashCount differences—the wasm build is failing to render the git segment's template entirely with an \"unable to create text based on template\" error. This suggests the template itself is breaking, possibly because `StashCount()` panics or errors when the filesystem isn't available, causing the whole template to fail. The git segment template likely calls methods like `.Working` and `.Staging` along with `{{ .StashCount }}`, and if that method fails under no-fs conditions, it breaks the entire template rendering.\n\nThis reveals a critical gap: `DataOnly` mode stops `Enabled()` from probing the filesystem, but lazily-computed methods on the writer can still probe at template execution time. The studio's premise is that it renders purely from data without touching the machine, but if templates can call methods that access the filesystem, that's a real hole. I need to check jandedobbeleer's git template and the lazy methods in git.go to pinpoint exactly which method is causing the failure.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":932,"cache_read_input_tokens":583717,"output_tokens":884,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":932,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":884,"cache_read_input_tokens":583717,"cache_creation_input_tokens":932,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":932},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDjMi3KuYnRSEn9WPk2","type":"assistant","uuid":"d4485870-a739-43cb-964a-2e83e4cba7bd","timestamp":"2026-07-28T09:29:45.763Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"d4485870-a739-43cb-964a-2e83e4cba7bd","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDjWTeSy6tTRVDBZfmn","type":"message","role":"assistant","content":[{"type":"text","text":"Not the stash count — the git segment's **template fails entirely** under wasm. Investigating:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":932,"cache_read_input_tokens":583717,"output_tokens":884,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":932,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":884,"cache_read_input_tokens":583717,"cache_creation_input_tokens":932,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":932},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDjMi3KuYnRSEn9WPk2","type":"assistant","uuid":"f5a17854-fa5b-4906-9c75-30f5164bfb71","timestamp":"2026-07-28T09:29:45.766Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f5a17854-fa5b-4906-9c75-30f5164bfb71","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDjWTeSy6tTRVDBZfmn","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_012z7GeuoZ3FcEEZeppWVZvr","name":"Bash","input":{"command":"python -c \"\nimport json,io\nc=json.load(io.open('themes/jandedobbeleer.omp.json',encoding='utf-8'))\nfor b in c['blocks']:\n for s in b.get('segments',[]):\n if s.get('type')=='git': print(s.get('template'))\n\" 2>/dev/null || grep -A3 '\"type\": \"git\"' themes/jandedobbeleer.omp.json | grep template","description":"Read the git segment template"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":932,"cache_read_input_tokens":583717,"output_tokens":884,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":932,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":884,"cache_read_input_tokens":583717,"cache_creation_input_tokens":932,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":932},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDjMi3KuYnRSEn9WPk2","type":"assistant","uuid":"33045474-1636-418a-a989-3543735877e1","timestamp":"2026-07-28T09:29:46.509Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"33045474-1636-418a-a989-3543735877e1","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_012z7GeuoZ3FcEEZeppWVZvr","type":"tool_result","content":"(Bash completed with no output)","is_error":false}]},"uuid":"0ab573c3-f48d-44aa-bd5e-f33638146e9e","timestamp":"2026-07-28T09:29:50.932Z","toolUseResult":{"stdout":"","stderr":"","interrupted":false,"isImage":false,"returnCodeInterpretation":"No matches found","noOutputExpected":false},"sourceToolAssistantUUID":"33045474-1636-418a-a989-3543735877e1","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0ab573c3-f48d-44aa-bd5e-f33638146e9e","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDm2hMXrdXBju87ffMn","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01WL5s5c7gFByyP6yvSHcpcC","name":"Bash","input":{"command":"grep -n -B8 '\"type\": \"git\"' themes/jandedobbeleer.omp.json | grep -E \"template|type\" ; echo \"=== lazy fs methods on the git writer ===\"; grep -n \"func (g \\*Git) \\(StashCount\\|WorktreeCount\\|Kraken\\|LatestTag\\)\" src/segments/git.go","description":"Find the template and git writer methods that touch disk"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":885,"cache_read_input_tokens":584649,"output_tokens":198,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":885,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":198,"cache_read_input_tokens":584649,"cache_creation_input_tokens":885,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":885},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDkodYckrxdBVznUqUy","type":"assistant","uuid":"eb86f0a4-57f4-428f-a1fe-5ec7fefdf5b9","timestamp":"2026-07-28T09:29:58.030Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"eb86f0a4-57f4-428f-a1fe-5ec7fefdf5b9","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01WL5s5c7gFByyP6yvSHcpcC","type":"tool_result","content":"41- \"branch_template\": \"{{ trunc 25 .Branch }}\",\n46- \"template\": \" {{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} \\uf044 {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} \\uf046 {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }} \\ueb4b {{ .StashCount }}{{ end }} \",\n48: \"type\": \"git\"\n=== lazy fs methods on the git writer ===\n293:func (g *Git) StashCount() int {\n307:func (g *Git) Kraken() string {\n325:func (g *Git) LatestTag() string {\n1044:func (g *Git) WorktreeCount() int {","is_error":false}]},"uuid":"9b706ed5-36d2-4e1e-9037-f0bcd9b94150","timestamp":"2026-07-28T09:30:00.034Z","toolUseResult":{"stdout":"41- \"branch_template\": \"{{ trunc 25 .Branch }}\",\n46- \"template\": \" {{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} \\uf044 {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} \\uf046 {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }} \\ueb4b {{ .StashCount }}{{ end }} \",\n48: \"type\": \"git\"\n=== lazy fs methods on the git writer ===\n293:func (g *Git) StashCount() int {\n307:func (g *Git) Kraken() string {\n325:func (g *Git) LatestTag() string {\n1044:func (g *Git) WorktreeCount() int {","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"eb86f0a4-57f4-428f-a1fe-5ec7fefdf5b9","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"9b706ed5-36d2-4e1e-9037-f0bcd9b94150","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDmeAYvmEbPmj9NMLKf","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_013LXLxjenaUJw6Ye2mPRWFc","name":"Bash","input":{"command":"sed -n '293,306p' src/segments/git.go","description":"Read StashCount"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":534,"cache_read_input_tokens":585534,"output_tokens":90,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":534,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":90,"cache_read_input_tokens":585534,"cache_creation_input_tokens":534,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":534},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDmUWssZZUVPDMj5j2Q","type":"assistant","uuid":"478b295d-8fb8-47f6-b407-91adef09b18c","timestamp":"2026-07-28T09:30:04.827Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"478b295d-8fb8-47f6-b407-91adef09b18c","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_013LXLxjenaUJw6Ye2mPRWFc","type":"tool_result","content":"func (g *Git) StashCount() int {\n\tif g.poshgit || g.stashCount != 0 {\n\t\treturn g.stashCount\n\t}\n\n\tstashContent := g.fileContent(g.scmDir, \"logs/refs/stash\")\n\tif stashContent == \"\" {\n\t\treturn 0\n\t}\n\n\tg.stashCount = strings.Count(stashContent, \"\\n\") + 1 // +1: fileContent() trims\n\treturn g.stashCount\n}","is_error":false}]},"uuid":"5b31b07c-2caf-4d5a-b28a-4c46c38a36b4","timestamp":"2026-07-28T09:30:05.974Z","toolUseResult":{"stdout":"func (g *Git) StashCount() int {\n\tif g.poshgit || g.stashCount != 0 {\n\t\treturn g.stashCount\n\t}\n\n\tstashContent := g.fileContent(g.scmDir, \"logs/refs/stash\")\n\tif stashContent == \"\" {\n\t\treturn 0\n\t}\n\n\tg.stashCount = strings.Count(stashContent, \"\\n\") + 1 // +1: fileContent() trims\n\treturn g.stashCount\n}","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"478b295d-8fb8-47f6-b407-91adef09b18c","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5b31b07c-2caf-4d5a-b28a-4c46c38a36b4","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDn3iPxCUfBNvEjBGV9","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"So `StashCount()` is a method the template invokes, and it directly reads from the filesystem through `g.fileContent(g.scmDir, \"logs/refs/stash\")` rather than using the replayed recorded data—since `stashCount` itself is unexported and never gets restored. When running under wasm with a throwing filesystem shim, that read fails and crashes the template rendering with \"unable to create text based on template\". This looks like a generation issue.\n\nThe real problem is that DataOnly prevents `Enabled()` from probing the filesystem, but it doesn't stop lazily-computed methods that fire during template rendering. The agent claimed its theme rendered identically, but my test contradicts that—their shim apparently returned something harmless instead of throwing, whereas mine throws, which is actually more realistic since a real browser has no `fs` global at all and Go's wasm fs calls would panic. The mismatch is exactly what the parity gate should catch, and mine did while theirs didn't, which validates running my own verification.\n\nNow I need to decide how to fix this. The first option is to make `StashCount` and similar methods respect DataOnly—maybe by having the recorded data include these computed values.\n\nBut the stronger approach is to make DataOnly a property of the environment itself, not just the segment restore path. That way, the runtime's filesystem, command, and HTTP access all refuse immediately when DataOnly is set, regardless of how clever a segment's lazy methods are. It's a principled fix and testable: with DataOnly enabled, wasm and CLI must produce identical output. I'd need to gate a few chokepoints in `runtime.Terminal`—methods like `FileContent`, `HasFiles`, `RunCommand`, `HasCommand`, `HTTPRequest`—but it's mechanical work. This is a real design improvement, and I should report the finding to the user with the evidence.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":242,"cache_read_input_tokens":586068,"output_tokens":1653,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":242,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1653,"cache_read_input_tokens":586068,"cache_creation_input_tokens":242,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":242},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDmuZ1vCRP12sW68aWF","type":"assistant","uuid":"374f2ee1-6d70-4af1-9420-5c94858eb6d2","timestamp":"2026-07-28T09:30:26.433Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"374f2ee1-6d70-4af1-9420-5c94858eb6d2","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDn3iPxCUfBNvEjBGV9","type":"message","role":"assistant","content":[{"type":"text","text":"Confirmed, and it's a real hole in the `DataOnly` premise — not a wasm artifact.\n\n```\nrun 6\n cli : ' next ↑21 ?1 ~15 -124 '\n wasm: 'unable to create text based on template'\n```\n\nThe template calls `{{ if gt .StashCount 0 }}`, and [`StashCount()`](src/segments/git.go:293) reads `logs/refs/stash` off disk. `stashCount` is unexported, so recorded data never restores it — the method probes the filesystem *during template rendering*, long after `restoreData` has done its job.\n\nSo `DataOnly` currently stops `Enabled()` from probing but not lazily-computed methods the template invokes. The agent's own parity gate passed here because its filesystem shim returned something benign; mine throws, which is closer to a browser having no `fs` at all — and that's what exposed it.\n\nChecking how wide the gap is before proposing a fix:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":242,"cache_read_input_tokens":586068,"output_tokens":1653,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":242,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1653,"cache_read_input_tokens":586068,"cache_creation_input_tokens":242,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":242},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDmuZ1vCRP12sW68aWF","type":"assistant","uuid":"78116c55-4206-4544-ba6b-5e6b7453176f","timestamp":"2026-07-28T09:30:30.322Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"78116c55-4206-4544-ba6b-5e6b7453176f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDn3iPxCUfBNvEjBGV9","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01LxKtFU1F6VcpTTkFu3MmGb","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && echo \"=== env methods segments call lazily (fs/cmd/http) ===\" && grep -rn \"func (term \\*Terminal) \\(FileContent\\|HasFiles\\|HasFilesInDir\\|RunCommand\\|HasCommand\\|HTTPRequest\\|HasParentFilePath\\|LsDir\\)\" runtime/*.go | sed 's/:.*func/ -> func/' | head","description":"Find the environment chokepoints"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":242,"cache_read_input_tokens":586068,"output_tokens":1653,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":242,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1653,"cache_read_input_tokens":586068,"cache_creation_input_tokens":242,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":242},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDmuZ1vCRP12sW68aWF","type":"assistant","uuid":"253af68a-54ea-45ef-b110-7fb9ff4da0a9","timestamp":"2026-07-28T09:30:32.551Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"253af68a-54ea-45ef-b110-7fb9ff4da0a9","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01LxKtFU1F6VcpTTkFu3MmGb","type":"tool_result","content":"=== env methods segments call lazily (fs/cmd/http) ===\nruntime/terminal.go -> func (term *Terminal) HasFiles(pattern string) bool {\nruntime/terminal.go -> func (term *Terminal) HasFilesInDir(dir, pattern string) bool {\nruntime/terminal.go -> func (term *Terminal) FileContent(file string) string {\nruntime/terminal.go -> func (term *Terminal) LsDir(input string) []fs.DirEntry {\nruntime/terminal.go -> func (term *Terminal) RunCommand(command string, args ...string) (string, error) {\nruntime/terminal.go -> func (term *Terminal) RunCommandWithEnv(command string, envs []string, args ...string) (string, error) {\nruntime/terminal.go -> func (term *Terminal) HasCommand(command string) bool {\nruntime/terminal.go -> func (term *Terminal) HTTPRequest(targetURL string, body io.Reader, timeout int, requestModifiers ...http.RequestModifier) ([]byte, error) {\nruntime/terminal.go -> func (term *Terminal) HasParentFilePath(parent string, followSymlinks bool) (*FileInfo, error) {","is_error":false}]},"uuid":"5ff9f4ee-377b-4295-93e9-2d3d5f2e5736","timestamp":"2026-07-28T09:30:33.756Z","toolUseResult":{"stdout":"=== env methods segments call lazily (fs/cmd/http) ===\nruntime/terminal.go -> func (term *Terminal) HasFiles(pattern string) bool {\nruntime/terminal.go -> func (term *Terminal) HasFilesInDir(dir, pattern string) bool {\nruntime/terminal.go -> func (term *Terminal) FileContent(file string) string {\nruntime/terminal.go -> func (term *Terminal) LsDir(input string) []fs.DirEntry {\nruntime/terminal.go -> func (term *Terminal) RunCommand(command string, args ...string) (string, error) {\nruntime/terminal.go -> func (term *Terminal) RunCommandWithEnv(command string, envs []string, args ...string) (string, error) {\nruntime/terminal.go -> func (term *Terminal) HasCommand(command string) bool {\nruntime/terminal.go -> func (term *Terminal) HTTPRequest(targetURL string, body io.Reader, timeout int, requestModifiers ...http.RequestModifier) ([]byte, error) {\nruntime/terminal.go -> func (term *Terminal) HasParentFilePath(parent string, followSymlinks bool) (*FileInfo, error) {","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"253af68a-54ea-45ef-b110-7fb9ff4da0a9","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5ff9f4ee-377b-4295-93e9-2d3d5f2e5736","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDp8SibR3eLDhBK4xzh","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"All the chokepoints are in the terminal runtime file, so I can gate them on the `DataOnly` flag with early returns across nine methods — this makes it an environment-level property that prevents any segment from reaching the machine regardless of implementation. I'll commit the current render package and wasm work, then implement the environment gating, re-run the parity checks to confirm all three match, and commit again.","signature":"CAIS3QUKhwEIEBgCKkBetkL1X7qwYNg53+AdJwzokW29ZpSpYgXK8v9nfQYA4f8xTCAq+9a2uh0Iyr2QNkkuBIKr0Y7mnCNXRHW4ls11Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDJ4uce04z4GLD1ZJ3xoMwJSw0IAzV0x3BPrtIjAsMhmLTVPBsSNsjorjWbOweBan9TyPmbHgL1Mc0Np8Qzwzk65JdzrXXWdrXkC3S9oqggTdZgRykPi030VzSP3jzJwq2uC//UwbWYpMOlt2Ete+rBTu14fdkmL8n9UbIXO1F6L84UCDw2m2rHvEkrVzmIvIP1bRfFMW9zrT5fZy4xEczPcmDNH2btoNuP2+lHJ2XOBLjVJDZMzxTZH0VozL6NNvqYSAYF+/KjlOu1n/14yM3RlCSXtVG4ra+VZ7fX6PuERGGWpYd6f86+yA/18ZoK2sNCLSSY01LhsRB9Xn2NEP5+yKQXf7g3TNePj1KLnZcNQCNWNv2s5/potBRAaqwVYFOeSPvRENIfXSRvv0CwfOzxECpBS5hwbUxC/UBmnO0eKjbi+ORP/6fNcNeVBA5us4nsqicy6hStj308Wtg3RwLWUgMJP8aUNxwWeGPgrgAfV+CJsB3C/kZLbjQnJHpQDNCcxE+WIH2BMAWNX3sM/jHvopPZZuIwvzTBzq2fJcL83h7C5YZq8eHQKmLjD0xdwxHbuXmN2EYN3FnipTqUF1drx9LUUoawDOCgh6+qT8DvpZeLAOILw527I8BaHaUSzxMUrBgmRhJR5BNagJlJTR47Slwpcz0hLSJ2UIjkO81sYQs8w8lnUDPt2AKhtmdRUqOv0ZVxAQzRUHLm0TrFsw49CQC0MeBA2TN0l0Zx/a7rcU1KeaEaCvZvkliR9Qruxx2QXJ9Z/r7IDix4WEQcLDL8C6GAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2079,"cache_read_input_tokens":586310,"output_tokens":850,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2079,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":850,"cache_read_input_tokens":586310,"cache_creation_input_tokens":2079,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2079},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDoxujVh3hSc7go7QXH","type":"assistant","uuid":"97b73977-1316-464b-a1cb-1541b5450e81","timestamp":"2026-07-28T09:30:41.529Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"97b73977-1316-464b-a1cb-1541b5450e81","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDp8SibR3eLDhBK4xzh","type":"message","role":"assistant","content":[{"type":"text","text":"All nine chokepoints live in one file. Gating them on the flag makes `DataOnly` a property of the *environment* rather than just the restore path — then no segment can reach the machine however it's written. Committing the working pieces first:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2079,"cache_read_input_tokens":586310,"output_tokens":850,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2079,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":850,"cache_read_input_tokens":586310,"cache_creation_input_tokens":2079,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2079},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDoxujVh3hSc7go7QXH","type":"assistant","uuid":"65c8e47a-dc34-42d2-988a-49668a79b615","timestamp":"2026-07-28T09:30:41.619Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"65c8e47a-dc34-42d2-988a-49668a79b615","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDp8SibR3eLDhBK4xzh","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01CKEw6fh229AUaMNdzUpm2s","name":"Bash","input":{"command":"cd /d/oh-my-posh && git add -A src/ && git commit -q -F - <<'EOF'\nfeat(render): render a config without the CLI\n\nEverything needed to turn a config into an SVG lived in package cli:\nthe engine setup, the svg.Options wiring that resolves the accent and\nterminal background, and the CapturedRuns/CursorAnchor glue. None of it\nis reachable from anything that is not a cobra command, which a browser\nis not. It moves to a render package the CLI now calls into, keeping\nflags, config.Load and file writing where they belong.\n\nThe option building stays in render rather than becoming an svg.Options\nconstructor on purpose: svg.Options takes its colours as explicit fields\nprecisely so colour resolution is unit-testable, and reading\nterminal.Colors from inside svg would undo that.\n\nconfig.ParseBytes parses a config already in memory, which is what a\nstudio has - text from an editor, not a path. It deliberately skips the\nextends loop, so a config parsed this way cannot pull in a remote one.\n\nThe wasm entrypoint is an adapter over render, nothing more. It always\nsets DataOnly and CaptureRuns, never calls config.Load, and answers with\na value rather than a panic that would take the instance down.\n\nRoot() also needed splitting: os.Geteuid panics under js when there is\nno process global, which is every real browser.\n\nAll 124 themes still export byte-identically, and the module renders\nglowsticks and cert byte-identically to the CLI under Node. Not\njandedobbeleer - see the next commit.\nEOF\ngit log --oneline -1","description":"Commit the render package and wasm entrypoint"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2079,"cache_read_input_tokens":586310,"output_tokens":850,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2079,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":850,"cache_read_input_tokens":586310,"cache_creation_input_tokens":2079,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2079},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDoxujVh3hSc7go7QXH","type":"assistant","uuid":"15c60ff8-a5e2-4940-962b-b91f646be24c","timestamp":"2026-07-28T09:30:49.976Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"15c60ff8-a5e2-4940-962b-b91f646be24c","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01CKEw6fh229AUaMNdzUpm2s","type":"tool_result","content":"b0eb3a02 feat(render): render a config without the CLI","is_error":false}]},"uuid":"ac58cd4d-f66c-46da-9685-eefa08f92583","timestamp":"2026-07-28T09:31:07.133Z","toolUseResult":{"stdout":"b0eb3a02 feat(render): render a config without the CLI","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"15c60ff8-a5e2-4940-962b-b91f646be24c","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ac58cd4d-f66c-46da-9685-eefa08f92583","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDrd9g4rqdsXdyDY9YX","type":"message","role":"assistant","content":[{"type":"text","text":"Now closing the hole. Making `DataOnly` a property of the environment:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":876,"cache_read_input_tokens":588389,"output_tokens":230,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":876,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":230,"cache_read_input_tokens":588389,"cache_creation_input_tokens":876,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":876},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDrRwyomRbqebpRy9Dx","type":"assistant","uuid":"74312f67-c01e-46f0-a580-e2091af1651a","timestamp":"2026-07-28T09:31:11.949Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"74312f67-c01e-46f0-a580-e2091af1651a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDrd9g4rqdsXdyDY9YX","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01QX96ukayP26Rx4oVvux87H","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && for m in HasFiles HasFilesInDir FileContent LsDir RunCommand RunCommandWithEnv HasCommand HTTPRequest HasParentFilePath; do echo \"--- $m\"; grep -n -A4 \"func (term \\*Terminal) $m(\" runtime/terminal.go | head -6; done","description":"Read each chokepoint's signature and opening lines"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":876,"cache_read_input_tokens":588389,"output_tokens":230,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":876,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":230,"cache_read_input_tokens":588389,"cache_creation_input_tokens":876,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":876},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDrRwyomRbqebpRy9Dx","type":"assistant","uuid":"6a257826-091f-40e9-8f02-5c85e485356e","timestamp":"2026-07-28T09:31:14.078Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6a257826-091f-40e9-8f02-5c85e485356e","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01QX96ukayP26Rx4oVvux87H","type":"tool_result","content":"--- HasFiles\n105:func (term *Terminal) HasFiles(pattern string) bool {\n106-\treturn term.HasFilesInDir(term.Pwd(), pattern)\n107-}\n108-\n109-func (term *Terminal) HasFilesInDir(dir, pattern string) bool {\n--- HasFilesInDir\n109:func (term *Terminal) HasFilesInDir(dir, pattern string) bool {\n110-\tdefer log.Trace(time.Now(), pattern)\n111-\n112-\tfileSystem := os.DirFS(dir)\n113-\tvar dirEntries []fs.DirEntry\n--- FileContent\n199:func (term *Terminal) FileContent(file string) string {\n200-\tdefer log.Trace(time.Now(), file)\n201-\tif !filepath.IsAbs(file) {\n202-\t\tfile = filepath.Join(term.Pwd(), file)\n203-\t}\n--- LsDir\n217:func (term *Terminal) LsDir(input string) []fs.DirEntry {\n218-\tdefer log.Trace(time.Now(), input)\n219-\n220-\tentries, err := os.ReadDir(input)\n221-\tif err != nil {\n--- RunCommand\n268:func (term *Terminal) RunCommand(command string, args ...string) (string, error) {\n269-\treturn term.RunCommandWithEnv(command, nil, args...)\n270-}\n271-\n272-func (term *Terminal) RunCommandWithEnv(command string, envs []string, args ...string) (string, error) {\n--- RunCommandWithEnv\n272:func (term *Terminal) RunCommandWithEnv(command string, envs []string, args ...string) (string, error) {\n273-\tdefer log.Trace(time.Now(), append([]string{command}, args...)...)\n274-\n275-\tif cacheCommand, ok := term.cmdCache.Get(command); ok {\n276-\t\tcommand = cacheCommand\n--- HasCommand\n342:func (term *Terminal) HasCommand(command string) bool {\n343-\tdefer log.Trace(time.Now(), command)\n344-\n345-\tif cmdPath := term.CommandPath(command); cmdPath != \"\" {\n346-\t\treturn true\n--- HTTPRequest\n416:func (term *Terminal) HTTPRequest(targetURL string, body io.Reader, timeout int, requestModifiers ...http.RequestModifier) ([]byte, error) {\n417-\tdefer log.Trace(time.Now(), targetURL)\n418-\n419-\tctx, cncl := context.WithTimeout(context.Background(), time.Millisecond*time.Duration(timeout))\n420-\tdefer cncl()\n--- HasParentFilePath\n464:func (term *Terminal) HasParentFilePath(parent string, followSymlinks bool) (*FileInfo, error) {\n465-\tdefer log.Trace(time.Now(), parent)\n466-\n467-\tpwd := term.Pwd()\n468-\tif followSymlinks {","is_error":false}]},"uuid":"55975fe2-994a-49f7-b52a-5691b76e92c8","timestamp":"2026-07-28T09:31:18.342Z","toolUseResult":{"stdout":"--- HasFiles\n105:func (term *Terminal) HasFiles(pattern string) bool {\n106-\treturn term.HasFilesInDir(term.Pwd(), pattern)\n107-}\n108-\n109-func (term *Terminal) HasFilesInDir(dir, pattern string) bool {\n--- HasFilesInDir\n109:func (term *Terminal) HasFilesInDir(dir, pattern string) bool {\n110-\tdefer log.Trace(time.Now(), pattern)\n111-\n112-\tfileSystem := os.DirFS(dir)\n113-\tvar dirEntries []fs.DirEntry\n--- FileContent\n199:func (term *Terminal) FileContent(file string) string {\n200-\tdefer log.Trace(time.Now(), file)\n201-\tif !filepath.IsAbs(file) {\n202-\t\tfile = filepath.Join(term.Pwd(), file)\n203-\t}\n--- LsDir\n217:func (term *Terminal) LsDir(input string) []fs.DirEntry {\n218-\tdefer log.Trace(time.Now(), input)\n219-\n220-\tentries, err := os.ReadDir(input)\n221-\tif err != nil {\n--- RunCommand\n268:func (term *Terminal) RunCommand(command string, args ...string) (string, error) {\n269-\treturn term.RunCommandWithEnv(command, nil, args...)\n270-}\n271-\n272-func (term *Terminal) RunCommandWithEnv(command string, envs []string, args ...string) (string, error) {\n--- RunCommandWithEnv\n272:func (term *Terminal) RunCommandWithEnv(command string, envs []string, args ...string) (string, error) {\n273-\tdefer log.Trace(time.Now(), append([]string{command}, args...)...)\n274-\n275-\tif cacheCommand, ok := term.cmdCache.Get(command); ok {\n276-\t\tcommand = cacheCommand\n--- HasCommand\n342:func (term *Terminal) HasCommand(command string) bool {\n343-\tdefer log.Trace(time.Now(), command)\n344-\n345-\tif cmdPath := term.CommandPath(command); cmdPath != \"\" {\n346-\t\treturn true\n--- HTTPRequest\n416:func (term *Terminal) HTTPRequest(targetURL string, body io.Reader, timeout int, requestModifiers ...http.RequestModifier) ([]byte, error) {\n417-\tdefer log.Trace(time.Now(), targetURL)\n418-\n419-\tctx, cncl := context.WithTimeout(context.Background(), time.Millisecond*time.Duration(timeout))\n420-\tdefer cncl()\n--- HasParentFilePath\n464:func (term *Terminal) HasParentFilePath(parent string, followSymlinks bool) (*FileInfo, error) {\n465-\tdefer log.Trace(time.Now(), parent)\n466-\n467-\tpwd := term.Pwd()\n468-\tif followSymlinks {","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"6a257826-091f-40e9-8f02-5c85e485356e","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"55975fe2-994a-49f7-b52a-5691b76e92c8","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"64aba33a-3dd2-46ff-a4bd-2d5dc858d0b5","timestamp":"2026-07-28T09:31:18.349Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"64aba33a-3dd2-46ff-a4bd-2d5dc858d0b5","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDsM742UWDmxVpbgqGP","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01JTMRMus7TTLrJ3YgfCZFyP","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\gate_env.py","content":"\"\"\"Insert a DataOnly early return at each environment chokepoint a segment can\nreach lazily, i.e. after restoreData has already run.\"\"\"\nimport io\n\nPATH = \"runtime/terminal.go\"\n\n# (function signature prefix, the guard body to insert after the trace line)\nGUARDS = [\n (\"func (term *Terminal) HasFilesInDir(dir, pattern string) bool {\", \"\\treturn false\\n\"),\n (\"func (term *Terminal) FileContent(file string) string {\", '\\treturn \"\"\\n'),\n (\"func (term *Terminal) LsDir(input string) []fs.DirEntry {\", \"\\treturn nil\\n\"),\n (\n \"func (term *Terminal) RunCommandWithEnv(command string, envs []string, args ...string) (string, error) {\",\n '\\treturn \"\", errDataOnly\\n',\n ),\n (\"func (term *Terminal) HasCommand(command string) bool {\", \"\\treturn false\\n\"),\n (\n \"func (term *Terminal) HTTPRequest(targetURL string, body io.Reader, timeout int, \"\n \"requestModifiers ...http.RequestModifier) ([]byte, error) {\",\n \"\\treturn nil, errDataOnly\\n\",\n ),\n (\n \"func (term *Terminal) HasParentFilePath(parent string, followSymlinks bool) (*FileInfo, error) {\",\n \"\\treturn nil, errDataOnly\\n\",\n ),\n]\n\nsrc = io.open(PATH, encoding=\"utf-8\").read()\n\nfor signature, ret in GUARDS:\n assert signature in src, f\"signature not found: {signature[:60]}\"\n\n guard = signature + \"\\n\\tif term.CmdFlags != nil && term.CmdFlags.DataOnly {\\n\" + ret + \"\\t}\\n\"\n src = src.replace(signature + \"\\n\", guard, 1)\n\nio.open(PATH, \"w\", encoding=\"utf-8\", newline=\"\\n\").write(src)\nprint(f\"guarded {len(GUARDS)} chokepoints\")\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1357,"cache_read_input_tokens":589265,"output_tokens":827,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1357,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":827,"cache_read_input_tokens":589265,"cache_creation_input_tokens":1357,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1357},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDsFj6oezPsCAsQTGEY","type":"assistant","uuid":"bd09e9c5-2f54-4cf0-a4b7-5a3c90b518d6","timestamp":"2026-07-28T09:31:30.476Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bd09e9c5-2f54-4cf0-a4b7-5a3c90b518d6","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01JTMRMus7TTLrJ3YgfCZFyP","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\gate_env.py (file state is current in your context — no need to Read it back)"}]},"uuid":"f6fe61af-7dca-4fb2-8e64-d92ab44d1033","timestamp":"2026-07-28T09:31:30.529Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\gate_env.py","content":"\"\"\"Insert a DataOnly early return at each environment chokepoint a segment can\nreach lazily, i.e. after restoreData has already run.\"\"\"\nimport io\n\nPATH = \"runtime/terminal.go\"\n\n# (function signature prefix, the guard body to insert after the trace line)\nGUARDS = [\n (\"func (term *Terminal) HasFilesInDir(dir, pattern string) bool {\", \"\\treturn false\\n\"),\n (\"func (term *Terminal) FileContent(file string) string {\", '\\treturn \"\"\\n'),\n (\"func (term *Terminal) LsDir(input string) []fs.DirEntry {\", \"\\treturn nil\\n\"),\n (\n \"func (term *Terminal) RunCommandWithEnv(command string, envs []string, args ...string) (string, error) {\",\n '\\treturn \"\", errDataOnly\\n',\n ),\n (\"func (term *Terminal) HasCommand(command string) bool {\", \"\\treturn false\\n\"),\n (\n \"func (term *Terminal) HTTPRequest(targetURL string, body io.Reader, timeout int, \"\n \"requestModifiers ...http.RequestModifier) ([]byte, error) {\",\n \"\\treturn nil, errDataOnly\\n\",\n ),\n (\n \"func (term *Terminal) HasParentFilePath(parent string, followSymlinks bool) (*FileInfo, error) {\",\n \"\\treturn nil, errDataOnly\\n\",\n ),\n]\n\nsrc = io.open(PATH, encoding=\"utf-8\").read()\n\nfor signature, ret in GUARDS:\n assert signature in src, f\"signature not found: {signature[:60]}\"\n\n guard = signature + \"\\n\\tif term.CmdFlags != nil && term.CmdFlags.DataOnly {\\n\" + ret + \"\\t}\\n\"\n src = src.replace(signature + \"\\n\", guard, 1)\n\nio.open(PATH, \"w\", encoding=\"utf-8\", newline=\"\\n\").write(src)\nprint(f\"guarded {len(GUARDS)} chokepoints\")\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"bd09e9c5-2f54-4cf0-a4b7-5a3c90b518d6","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f6fe61af-7dca-4fb2-8e64-d92ab44d1033","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDtGsatdFFUY7VFCd2o","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_014Z7HwuUnhbo35mBi89LB8j","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/gate_env.py\" && grep -n \"errDataOnly\" runtime/*.go | head -3","description":"Apply the guards"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":929,"cache_read_input_tokens":590622,"output_tokens":181,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":929,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":181,"cache_read_input_tokens":590622,"cache_creation_input_tokens":929,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":929},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDtANukzq5miVTdGvcj","type":"assistant","uuid":"e4ccb62b-bd92-40a3-8be6-ede8caff13ab","timestamp":"2026-07-28T09:31:36.062Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e4ccb62b-bd92-40a3-8be6-ede8caff13ab","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_014Z7HwuUnhbo35mBi89LB8j","type":"tool_result","content":"guarded 7 chokepoints\r\nruntime/terminal.go:283:\treturn \"\", errDataOnly\nruntime/terminal.go:433:\treturn nil, errDataOnly\nruntime/terminal.go:484:\treturn nil, errDataOnly","is_error":false}]},"uuid":"11e2303f-34d3-4f32-bc69-547d332d5e82","timestamp":"2026-07-28T09:31:40.898Z","toolUseResult":{"stdout":"guarded 7 chokepoints\r\nruntime/terminal.go:283:\treturn \"\", errDataOnly\nruntime/terminal.go:433:\treturn nil, errDataOnly\nruntime/terminal.go:484:\treturn nil, errDataOnly","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"e4ccb62b-bd92-40a3-8be6-ede8caff13ab","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"11e2303f-34d3-4f32-bc69-547d332d5e82","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDu1br4VEMAgbJS5CXo","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01SGWfxQrxYNW2q6XcxUpUJr","name":"Bash","input":{"command":"python - <<'PY'\nimport io\np = \"runtime/terminal.go\"\ns = io.open(p, encoding=\"utf-8\").read()\nanchor = \"func (term *Terminal) HasFiles(pattern string) bool {\"\ndecl = '''// errDataOnly is what every environment probe answers with when\n// Flags.DataOnly is set. DataOnly started life in config.Segment.restoreData,\n// suppressing a segment the recorded data does not cover - but that only\n// governs the segment's own Enabled(). A writer field computed lazily by a\n// method the template calls still reached the machine long afterwards:\n// segments/git.go's StashCount() reads logs/refs/stash off disk, and\n// stashCount is unexported so no recorded data ever restores it. Rendering\n// jandedobbeleer under wasm, where there is no filesystem, failed that\n// template outright while the CLI happily read the real repository.\n//\n// Gating the environment itself rather than each such method is what makes\n// the guarantee hold for segments nobody has audited: there is no way to\n// write one that probes, because the probe primitives themselves refuse.\nvar errDataOnly = errors.New(\"environment access is disabled: rendering from recorded data only\")\n\n'''\nassert anchor in s and 'errDataOnly = errors.New' not in s\ns = s.replace(anchor, decl + anchor, 1)\nio.open(p, \"w\", encoding=\"utf-8\", newline=\"\\n\").write(s)\nprint(\"declared\")\nPY\ngrep -n '\"errors\"' runtime/terminal.go | head -2 || sed -i '0,/^import (/{s/^import (/import (\\n\\t\"errors\"/}' runtime/terminal.go; go build ./runtime/ 2>&1 | head -5","description":"Declare the sentinel error and build"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":268,"cache_read_input_tokens":591551,"output_tokens":652,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":268,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":652,"cache_read_input_tokens":591551,"cache_creation_input_tokens":268,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":268},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDtuykkJTzGg9ub8pHf","type":"assistant","uuid":"e0b5e24f-0f25-47df-9968-3f42b93d69fa","timestamp":"2026-07-28T09:31:51.952Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e0b5e24f-0f25-47df-9968-3f42b93d69fa","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01SGWfxQrxYNW2q6XcxUpUJr","type":"tool_result","content":"declared\r\n5:\t\"errors\"","is_error":false}]},"uuid":"220697a6-6d6b-4987-a248-473da79280e3","timestamp":"2026-07-28T09:31:59.298Z","toolUseResult":{"stdout":"declared\r\n5:\t\"errors\"","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"e0b5e24f-0f25-47df-9968-3f42b93d69fa","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"220697a6-6d6b-4987-a248-473da79280e3","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDvSYZHUtxRBAj6hNfX","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_015dJ3RJjPegiEBgktqv49aQ","name":"Bash","input":{"command":"gofmt -w runtime/terminal.go && go build ./... 2>&1 | head -5 && go test ./... -count=1 2>&1 | grep -v \"^ok\\|no test files\" | head -8; golangci-lint run ./... 2>&1 | tail -3","description":"Build, test and lint with the guards in place"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":667,"cache_read_input_tokens":591819,"output_tokens":168,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":667,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":168,"cache_read_input_tokens":591819,"cache_creation_input_tokens":667,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":667},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDvGX4RLB6P3tNLDvQL","type":"assistant","uuid":"025e63c7-e6c9-4f4f-9fd1-04808c65e022","timestamp":"2026-07-28T09:32:04.834Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"025e63c7-e6c9-4f4f-9fd1-04808c65e022","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_015dJ3RJjPegiEBgktqv49aQ","type":"tool_result","content":"0 issues.","is_error":false}]},"uuid":"5656af4c-7aba-4c21-980c-b9217044bd42","timestamp":"2026-07-28T09:32:53.917Z","toolUseResult":{"stdout":"0 issues.","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"025e63c7-e6c9-4f4f-9fd1-04808c65e022","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5656af4c-7aba-4c21-980c-b9217044bd42","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDzkUBGvtfMSkout1fi","type":"message","role":"assistant","content":[{"type":"text","text":"Now the decisive check — does the guard close the parity gap?"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":178,"cache_read_input_tokens":592486,"output_tokens":551,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":178,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":551,"cache_read_input_tokens":592486,"cache_creation_input_tokens":178,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":178},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDzYDUy2D67dkHExVQh","type":"assistant","uuid":"eecba999-45cf-4208-87ea-0257e97d058f","timestamp":"2026-07-28T09:33:02.320Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"eecba999-45cf-4208-87ea-0257e97d058f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUDzkUBGvtfMSkout1fi","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Mhxf2e5EToVuPpdSWjbTkM","name":"Bash","input":{"command":"cd /d/oh-my-posh && go -C src build -o \"$TMPDIR/omp-gated.exe\" . && GOOS=js GOARCH=wasm go -C src build -o \"$TMPDIR/omp2.wasm\" ./wasm/ && SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/parity\" && for t in jandedobbeleer glowsticks cert atomic powerlevel10k_rainbow chips; do f=$(ls themes/$t.omp.* 2>/dev/null | head -1); node \"$SP/drive.mjs\" \"$TMPDIR/omp2.wasm\" \"$f\" src/prompt/testdata/fixtures/prompt.data.json > \"$SP/$t.w2.svg\" 2>/dev/null; \"$TMPDIR/omp-gated.exe\" config export image --config \"$f\" --data src/prompt/testdata/fixtures/prompt.data.json --data-only -o \"$SP/$t.c2.svg\" >/dev/null 2>&1; cmp -s \"$SP/$t.c2.svg\" \"$SP/$t.w2.svg\" && echo \"$t: IDENTICAL\" || echo \"$t: DIFFERS\"; done","description":"Re-run parity across six themes"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":178,"cache_read_input_tokens":592486,"output_tokens":551,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":178,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":551,"cache_read_input_tokens":592486,"cache_creation_input_tokens":178,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":178},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUDzYDUy2D67dkHExVQh","type":"assistant","uuid":"6daf8b91-049d-45df-b595-cbc284ee3960","timestamp":"2026-07-28T09:33:09.102Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6daf8b91-049d-45df-b595-cbc284ee3960","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Mhxf2e5EToVuPpdSWjbTkM","type":"tool_result","content":"jandedobbeleer: IDENTICAL\nglowsticks: IDENTICAL\ncert: IDENTICAL\natomic: IDENTICAL\npowerlevel10k_rainbow: IDENTICAL\nchips: IDENTICAL","is_error":false}]},"uuid":"46f4df0f-09b7-4951-b230-c755588b01d7","timestamp":"2026-07-28T09:33:33.215Z","toolUseResult":{"stdout":"jandedobbeleer: IDENTICAL\nglowsticks: IDENTICAL\ncert: IDENTICAL\natomic: IDENTICAL\npowerlevel10k_rainbow: IDENTICAL\nchips: IDENTICAL","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"6daf8b91-049d-45df-b595-cbc284ee3960","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"46f4df0f-09b7-4951-b230-c755588b01d7","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUE3ocXEucPhT186DDLx","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Now I'm ready to test across all 124 themes to see if they match the CLI output — that's the real validation. Running the wasm on each theme individually would take about two minutes with node startup overhead, so I'll batch them into a single node process instead to speed things up.\n\nI need to verify two things: that normal CLI rendering hasn't regressed (the guards shouldn't affect output when DataOnly is false), and that the wasm output matches the CLI --data-only output across all 124 themes. Let me run both checks.","signature":"CAISvggKhwEIEBgCKkDHXoaznezTg6fhIXw3f41YrXhtuJNQsYqD15w+0bl/5os1TEV5qfLZP6ouHNj1JeUL/08vGgPzekSoUNt6XpE2Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDKzIqEMZ5eSm0MrZOBoMJocDc/PPNyPjpghUIjDoHRI9fFkFuCPyPoGQOKT+CuL9ZPZI+VvxGUZIAKfSOxF36Hk6LuNEoFxGoJbX5qUq4wZWn9/JsD6VSjPsz0YWMwtQiCnV0V+zDqwRJDKfHTHbVx1+nJcKN8fucUiPnmUJJ8dp0MvnIXAGyMMUrLasssiNItjdn3KIBkvczQlJ2Fv9R7b78NClI2Sp95vX2Wc+Qr9BSwussf3I8jBEzEBD6vk6p/aU1dTdt81CwKZEz17AbzgWPEmMf7wYvWAKK620XlgnOQ4Jhq5Ic2G4EiZG51otAQkDfncnWSyMiIK6OG/uiJqw0+p+Oi6TlVXPNLcdvbJyTAg1PLEzaFu0h35riiCzpd/WUZNgm7Df5PPynu1PQA+Q1EUSVJilUkG0DFVWf5ezSKFpWfHOdTp1HU79XqxgGDvn3IXMJaDhn5CVQ9QwHUNRi6SPFxpWmJG8AHA+gW4EF0dYr0ptqaApLXoVfCXe3omm1hmT2tbwNu0xW09RryXFzMHyDAOCGSQCA/Ypgco7SLyAA5WohhI2c+dydMRUF3OpyL3/DEL5BZPY9VSlwpdr2iF546Ghk2eLYT624Yqq++x6uLStLLIHtKv6hRcRNeXZwJaSuHk9QxixberZCZXXLCCxoj7KmtdujSuDkN/yQZCIAozrFr2JMgxIxAD4xvOw9laiXuBFHDF5z5q9u24UUzPubBVRc+X+4Lk6TCA7M9zOlVFGyXrV/aCwoQiiDJriRALDQoVIh5qnNAPHannmtNN9H4DgfRwv8Tb6VZ3COwRqpxZ8s9phkyqZSKDgHKKrskfXXjNgsAFgDjoO+bgZPdYxkC+JhO5iS+SNGXvtPNdxW1pkyy3GQTELSxz0BuRUMVVP162udukjO/rnufZYug/bnfYHoWPReJM2t1sBwvd866whqhdVRCJNMhPiM621TiwVa2DY3BI17SJuNi+7LR1+qHv24eHoXpLA6PFJpvPW7eyY/UZPi0BwLORWekGSldzyccXDbOXETfCujNf/boGZgJF8EZu58pja3c05QM+PR5PSVTjV1XC3M7at9ovK5n4l0ksuxj7JRE4TUo1pGgQWSDE6e7Cz+fxxWKISLXHpT8llo9rBtLgsouQ7I2kwYx2YeO+XQJlxE4d3q4kOVyvMJ5VJsY8ot9LkRpb5b6xxf53WhK9ehfhVGq3GlT+sQsfajB8f8V0twYYDkjsB/BV8scDBhyMA65aBEvTVrnkYAQ=="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":641,"cache_read_input_tokens":592664,"output_tokens":1509,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":641,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1509,"cache_read_input_tokens":592664,"cache_creation_input_tokens":641,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":641},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUE3GsLc9pJFcyojJEoc","type":"assistant","uuid":"ca9092fd-6f64-4332-9201-68117cd41ba1","timestamp":"2026-07-28T09:33:48.811Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ca9092fd-6f64-4332-9201-68117cd41ba1","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUE3ocXEucPhT186DDLx","type":"message","role":"assistant","content":[{"type":"text","text":"Six for six. Widening to all 124 — batching in one Node process rather than 124 startups:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":641,"cache_read_input_tokens":592664,"output_tokens":1509,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":641,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1509,"cache_read_input_tokens":592664,"cache_creation_input_tokens":641,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":641},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUE3GsLc9pJFcyojJEoc","type":"assistant","uuid":"6a2bbd36-c2da-4d14-88aa-8a754f7a4689","timestamp":"2026-07-28T09:33:48.812Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6a2bbd36-c2da-4d14-88aa-8a754f7a4689","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUE3ocXEucPhT186DDLx","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_011MYGCaW57XsSTDcP5AZLMB","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\parity\\batch.mjs","content":"// Render every bundled theme through the wasm module in one instance, writing\n// each result to outDir. One instance is deliberate: it also exercises the\n// entrypoint's per-call template-cache reset, which a fresh process per theme\n// would hide.\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { execFileSync } from \"node:child_process\";\nimport { pathToFileURL } from \"node:url\";\n\nconst [wasmPath, themesDir, dataPath, outDir] = process.argv.slice(2);\n\nconst goroot = execFileSync(\"go\", [\"env\", \"GOROOT\"], { encoding: \"utf8\" }).trim();\nconst shim = path.join(goroot, \"lib\", \"wasm\", \"wasm_exec.js\");\n\nconst deny = () => {\n throw new Error(\"filesystem access denied: a browser has none\");\n};\n\nglobalThis.fs = new Proxy(\n { constants: { O_WRONLY: 1, O_RDWR: 2, O_CREAT: 64, O_TRUNC: 512, O_APPEND: 1024, O_EXCL: 128 } },\n {\n get(target, prop) {\n if (prop in target) return target[prop];\n if (prop === \"write\" || prop === \"writeSync\") {\n return (fd, buf, off, len, pos, cb) => {\n process.stderr.write(buf.subarray(off ?? 0, (off ?? 0) + (len ?? buf.length)));\n if (cb) cb(null, len ?? buf.length);\n return len ?? buf.length;\n };\n }\n return deny;\n },\n },\n);\n\nglobalThis.process = process;\nglobalThis.performance ??= (await import(\"node:perf_hooks\")).performance;\nglobalThis.crypto ??= (await import(\"node:crypto\")).webcrypto;\n\nawait import(pathToFileURL(shim).href);\n\nconst go = new globalThis.Go();\nconst { instance } = await WebAssembly.instantiate(fs.readFileSync(wasmPath), go.importObject);\ngo.run(instance);\n\nconst dataJSON = fs.readFileSync(dataPath, \"utf8\");\nfs.mkdirSync(outDir, { recursive: true });\n\nlet ok = 0;\nconst failures = [];\n\nfor (const file of fs.readdirSync(themesDir).sort()) {\n const m = /^(.*)\\.omp\\.(json|yaml|toml)$/.exec(file);\n if (!m) continue;\n\n const [, name, format] = m;\n const out = globalThis.render(fs.readFileSync(path.join(themesDir, file), \"utf8\"), format, dataJSON, { columns: 120 });\n\n if (out.error) {\n failures.push(`${name}: ${out.error}`);\n continue;\n }\n\n fs.writeFileSync(path.join(outDir, `${name}.svg`), out.svg);\n ok++;\n}\n\nconsole.log(`rendered ${ok}, failed ${failures.length}`);\nfor (const f of failures) console.log(\" \" + f);\nprocess.exit(failures.length ? 1 : 0);\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":641,"cache_read_input_tokens":592664,"output_tokens":1509,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":641,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1509,"cache_read_input_tokens":592664,"cache_creation_input_tokens":641,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":641},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUE3GsLc9pJFcyojJEoc","type":"assistant","uuid":"68c50058-8bb3-43db-a659-2b321b0ff81a","timestamp":"2026-07-28T09:33:59.012Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"68c50058-8bb3-43db-a659-2b321b0ff81a","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_011MYGCaW57XsSTDcP5AZLMB","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\parity\\batch.mjs (file state is current in your context — no need to Read it back)"}]},"uuid":"2e3e1915-2c60-4de4-a506-e93fe3e2322f","timestamp":"2026-07-28T09:33:59.096Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\parity\\batch.mjs","content":"// Render every bundled theme through the wasm module in one instance, writing\n// each result to outDir. One instance is deliberate: it also exercises the\n// entrypoint's per-call template-cache reset, which a fresh process per theme\n// would hide.\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { execFileSync } from \"node:child_process\";\nimport { pathToFileURL } from \"node:url\";\n\nconst [wasmPath, themesDir, dataPath, outDir] = process.argv.slice(2);\n\nconst goroot = execFileSync(\"go\", [\"env\", \"GOROOT\"], { encoding: \"utf8\" }).trim();\nconst shim = path.join(goroot, \"lib\", \"wasm\", \"wasm_exec.js\");\n\nconst deny = () => {\n throw new Error(\"filesystem access denied: a browser has none\");\n};\n\nglobalThis.fs = new Proxy(\n { constants: { O_WRONLY: 1, O_RDWR: 2, O_CREAT: 64, O_TRUNC: 512, O_APPEND: 1024, O_EXCL: 128 } },\n {\n get(target, prop) {\n if (prop in target) return target[prop];\n if (prop === \"write\" || prop === \"writeSync\") {\n return (fd, buf, off, len, pos, cb) => {\n process.stderr.write(buf.subarray(off ?? 0, (off ?? 0) + (len ?? buf.length)));\n if (cb) cb(null, len ?? buf.length);\n return len ?? buf.length;\n };\n }\n return deny;\n },\n },\n);\n\nglobalThis.process = process;\nglobalThis.performance ??= (await import(\"node:perf_hooks\")).performance;\nglobalThis.crypto ??= (await import(\"node:crypto\")).webcrypto;\n\nawait import(pathToFileURL(shim).href);\n\nconst go = new globalThis.Go();\nconst { instance } = await WebAssembly.instantiate(fs.readFileSync(wasmPath), go.importObject);\ngo.run(instance);\n\nconst dataJSON = fs.readFileSync(dataPath, \"utf8\");\nfs.mkdirSync(outDir, { recursive: true });\n\nlet ok = 0;\nconst failures = [];\n\nfor (const file of fs.readdirSync(themesDir).sort()) {\n const m = /^(.*)\\.omp\\.(json|yaml|toml)$/.exec(file);\n if (!m) continue;\n\n const [, name, format] = m;\n const out = globalThis.render(fs.readFileSync(path.join(themesDir, file), \"utf8\"), format, dataJSON, { columns: 120 });\n\n if (out.error) {\n failures.push(`${name}: ${out.error}`);\n continue;\n }\n\n fs.writeFileSync(path.join(outDir, `${name}.svg`), out.svg);\n ok++;\n}\n\nconsole.log(`rendered ${ok}, failed ${failures.length}`);\nfor (const f of failures) console.log(\" \" + f);\nprocess.exit(failures.length ? 1 : 0);\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"68c50058-8bb3-43db-a659-2b321b0ff81a","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2e3e1915-2c60-4de4-a506-e93fe3e2322f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUE5dDWKLqGWhJMhg9d1","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01GogjPhfiwB12EoPQWn6m3U","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/parity\" && rm -rf \"$TMPDIR/wasm-all\" \"$TMPDIR/cli-all\" && node \"$SP/batch.mjs\" \"$TMPDIR/omp2.wasm\" themes src/prompt/testdata/fixtures/prompt.data.json \"$TMPDIR/wasm-all\" 2>/dev/null | head -5","description":"Render all 124 themes through wasm","timeout":300000},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1615,"cache_read_input_tokens":593305,"output_tokens":306,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1615,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":306,"cache_read_input_tokens":593305,"cache_creation_input_tokens":1615,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1615},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUE5APTfE46tZQeYeM8j","type":"assistant","uuid":"c4a89035-d25b-4601-a97d-549d7f102e15","timestamp":"2026-07-28T09:34:10.255Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"c4a89035-d25b-4601-a97d-549d7f102e15","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01GogjPhfiwB12EoPQWn6m3U","type":"tool_result","content":"rendered 124, failed 0","is_error":false}]},"uuid":"25f7ee17-5b96-4f2b-afc3-afd3c4f6ad4a","timestamp":"2026-07-28T09:34:17.840Z","toolUseResult":{"stdout":"rendered 124, failed 0","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"classifierMetaLines":"{\"meta\":{\"gitStatus\":{\"staged\":0,\"modified\":1,\"untracked\":0}}}\n","sourceToolAssistantUUID":"c4a89035-d25b-4601-a97d-549d7f102e15","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"25f7ee17-5b96-4f2b-afc3-afd3c4f6ad4a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUE721z4WGUgUFrZeyUZ","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01PSGkphYzWU6K8GuuS75aeT","name":"Bash","input":{"command":"mkdir -p \"$TMPDIR/cli-all\" && for f in themes/*.omp.json themes/*.omp.yaml; do b=$(basename \"$f\"); b=${b%%.omp.*}; \"$TMPDIR/omp-gated.exe\" config export image --config \"$f\" --data src/prompt/testdata/fixtures/prompt.data.json --data-only -o \"$TMPDIR/cli-all/$b.svg\" >/dev/null 2>&1; done; echo \"cli=$(ls \"$TMPDIR/cli-all\" | wc -l) wasm=$(ls \"$TMPDIR/wasm-all\" | wc -l)\"; diff -rq \"$TMPDIR/cli-all\" \"$TMPDIR/wasm-all\" > \"$TMPDIR/parity.diff\" 2>&1; if [ -s \"$TMPDIR/parity.diff\" ]; then echo \"DIFFS: $(wc -l < \"$TMPDIR/parity.diff\")\"; head -8 \"$TMPDIR/parity.diff\"; else echo \"ALL 124 IDENTICAL: wasm == CLI\"; fi","description":"Compare all 124 wasm renders against the CLI","timeout":300000},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":308,"cache_read_input_tokens":594920,"output_tokens":491,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":308,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":491,"cache_read_input_tokens":594920,"cache_creation_input_tokens":308,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":308},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUE6ZvLvffiV3KnRSd9R","type":"assistant","uuid":"7cb1fb4d-4529-41a5-92f1-26a76ae89117","timestamp":"2026-07-28T09:34:31.444Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7cb1fb4d-4529-41a5-92f1-26a76ae89117","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01PSGkphYzWU6K8GuuS75aeT","type":"tool_result","content":"cli=124 wasm=124\nDIFFS: 2\nFiles /tmp/cli-all/free-ukraine.svg and /tmp/wasm-all/free-ukraine.svg differ\nFiles /tmp/cli-all/markbull.svg and /tmp/wasm-all/markbull.svg differ","is_error":false}]},"uuid":"db0a23dc-1c25-48f7-9604-a248cad7ccc1","timestamp":"2026-07-28T09:35:14.634Z","toolUseResult":{"stdout":"cli=124 wasm=124\nDIFFS: 2\nFiles /tmp/cli-all/free-ukraine.svg and /tmp/wasm-all/free-ukraine.svg differ\nFiles /tmp/cli-all/markbull.svg and /tmp/wasm-all/markbull.svg differ","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"7cb1fb4d-4529-41a5-92f1-26a76ae89117","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"db0a23dc-1c25-48f7-9604-a248cad7ccc1","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"5b0bd938-d298-4590-bc0c-53acc1c0d614","timestamp":"2026-07-28T09:35:14.644Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5b0bd938-d298-4590-bc0c-53acc1c0d614","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEBDh4rf1NwcrmTFhox","type":"message","role":"assistant","content":[{"type":"text","text":"122 of 124 match. Isolating the two that don't:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":729,"cache_read_input_tokens":595228,"output_tokens":351,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":729,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":351,"cache_read_input_tokens":595228,"cache_creation_input_tokens":729,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":729},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEAkdPD4RfYT1aiAcVb","type":"assistant","uuid":"7b4a1170-b85f-4b96-a1fb-deb787531a93","timestamp":"2026-07-28T09:35:25.150Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7b4a1170-b85f-4b96-a1fb-deb787531a93","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEBDh4rf1NwcrmTFhox","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01TYdpNSfRMxJcBSeEfSWryB","name":"Bash","input":{"command":"python - <<'PY'\nimport io, re\nfor name in (\"free-ukraine\", \"markbull\"):\n def texts(p):\n s = io.open(p, encoding=\"utf-8\").read()\n return [m.group(1) for m in re.finditer(r\"]*>(.*?)\", s)]\n a = texts(f\"/tmp/cli-all/{name}.svg\")\n b = texts(f\"/tmp/wasm-all/{name}.svg\")\n print(f\"=== {name} runs cli={len(a)} wasm={len(b)}\")\n for i, (x, y) in enumerate(zip(a, b)):\n if x != y:\n print(f\" run {i}\\n cli : {x!r}\\n wasm: {y!r}\")\nPY","description":"Find what differs in the two themes"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":729,"cache_read_input_tokens":595228,"output_tokens":351,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":729,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":351,"cache_read_input_tokens":595228,"cache_creation_input_tokens":729,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":729},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEAkdPD4RfYT1aiAcVb","type":"assistant","uuid":"ce309316-30ba-4354-bf83-9205cb1faa14","timestamp":"2026-07-28T09:35:27.185Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ce309316-30ba-4354-bf83-9205cb1faa14","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"type":"tool_result","content":"Exit code 1\nTraceback (most recent call last):\r\n File \"\", line 6, in \r\n File \"\", line 4, in texts\r\nFileNotFoundError: [Errno 2] No such file or directory: '/tmp/cli-all/free-ukraine.svg'","is_error":true,"tool_use_id":"toolu_01TYdpNSfRMxJcBSeEfSWryB"}]},"uuid":"16be5265-bd66-46cb-b0f4-833e7becbe62","timestamp":"2026-07-28T09:35:33.165Z","toolUseResult":"Error: Exit code 1\nTraceback (most recent call last):\r\n File \"\", line 6, in \r\n File \"\", line 4, in texts\r\nFileNotFoundError: [Errno 2] No such file or directory: '/tmp/cli-all/free-ukraine.svg'","sourceToolAssistantUUID":"ce309316-30ba-4354-bf83-9205cb1faa14","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"16be5265-bd66-46cb-b0f4-833e7becbe62","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUECP7Nz8Y3znJzJAkeb","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01PSCEhctYvSESeUcXpUbuLK","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\difftext.py","content":"import io\nimport os\nimport re\nimport sys\n\ncli, wasm = sys.argv[1], sys.argv[2]\n\n\ndef texts(path):\n s = io.open(path, encoding=\"utf-8\").read()\n return [m.group(1) for m in re.finditer(r\"]*>(.*?)\", s)]\n\n\nfor name in sys.argv[3:]:\n a = texts(os.path.join(cli, name + \".svg\"))\n b = texts(os.path.join(wasm, name + \".svg\"))\n\n print(f\"=== {name} runs cli={len(a)} wasm={len(b)}\")\n\n for i, (x, y) in enumerate(zip(a, b)):\n if x != y:\n print(f\" run {i}\\n cli : {x!r}\\n wasm: {y!r}\")\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":459,"cache_read_input_tokens":595957,"output_tokens":407,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":459,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":407,"cache_read_input_tokens":595957,"cache_creation_input_tokens":459,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":459},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEC2jHSTctjYPuDSP9x","type":"assistant","uuid":"6a7b30a6-603a-4239-b622-66a2fdb44723","timestamp":"2026-07-28T09:35:44.452Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6a7b30a6-603a-4239-b622-66a2fdb44723","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01PSCEhctYvSESeUcXpUbuLK","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\difftext.py (file state is current in your context — no need to Read it back)"}]},"uuid":"06e74fea-f03f-4396-825a-6fb536cdc299","timestamp":"2026-07-28T09:35:44.491Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\difftext.py","content":"import io\nimport os\nimport re\nimport sys\n\ncli, wasm = sys.argv[1], sys.argv[2]\n\n\ndef texts(path):\n s = io.open(path, encoding=\"utf-8\").read()\n return [m.group(1) for m in re.finditer(r\"]*>(.*?)\", s)]\n\n\nfor name in sys.argv[3:]:\n a = texts(os.path.join(cli, name + \".svg\"))\n b = texts(os.path.join(wasm, name + \".svg\"))\n\n print(f\"=== {name} runs cli={len(a)} wasm={len(b)}\")\n\n for i, (x, y) in enumerate(zip(a, b)):\n if x != y:\n print(f\" run {i}\\n cli : {x!r}\\n wasm: {y!r}\")\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"6a7b30a6-603a-4239-b622-66a2fdb44723","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"06e74fea-f03f-4396-825a-6fb536cdc299","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEDHcmCQZZdAqRXG4KD","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Siagkz1mYPUSfJ5o4Zwvdr","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/difftext.py\" \"$TMPDIR/cli-all\" \"$TMPDIR/wasm-all\" free-ukraine markbull","description":"Show the differing runs"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":509,"cache_read_input_tokens":596416,"output_tokens":195,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":509,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":195,"cache_read_input_tokens":596416,"cache_creation_input_tokens":509,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":509},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUECvxYeYdiz7C1CvTxF","type":"assistant","uuid":"a55ceb1c-4ce4-4967-972d-7a0841d19806","timestamp":"2026-07-28T09:35:54.515Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a55ceb1c-4ce4-4967-972d-7a0841d19806","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Siagkz1mYPUSfJ5o4Zwvdr","type":"tool_result","content":"=== free-ukraine runs cli=42 wasm=42\r\n run 7\r\n cli : ' \\uf1d3 \\ue0a0next ↑21 \\uf044 ?1 ~15 -124 '\r\n wasm: 'unable to create text based on template'\r\n run 14\r\n cli : ' '\r\n wasm: ' '\r\n=== markbull runs cli=20 wasm=18\r\n run 8\r\n cli : ' https://github.com/JanDeDobbeleer/oh-my-posh\\uf408 \\ue0a0next ↑21 '\r\n wasm: 'unable to create text based on template'\r\n run 9\r\n cli : '\\uf044 ?1 ~15 -124'\r\n wasm: '\\ue0b0'\r\n run 10\r\n cli : ' '\r\n wasm: ' \\uf064 0ms '\r\n run 12\r\n cli : ' \\uf064 0ms '\r\n wasm: ' \\uf12a >>0 '\r\n run 14\r\n cli : ' \\uf12a >>0 '\r\n wasm: '└'\r\n run 15\r\n cli : '\\ue0b0'\r\n wasm: ' $'\r\n run 16\r\n cli : '└'\r\n wasm: '_'\r\n run 17\r\n cli : ' $'\r\n wasm: 'ohmyposh.dev'","is_error":false}]},"uuid":"8ee3aaa1-2712-4f90-8aa1-0efe0f6130af","timestamp":"2026-07-28T09:35:59.180Z","toolUseResult":{"stdout":"=== free-ukraine runs cli=42 wasm=42\r\n run 7\r\n cli : ' \\uf1d3 \\ue0a0next ↑21 \\uf044 ?1 ~15 -124 '\r\n wasm: 'unable to create text based on template'\r\n run 14\r\n cli : ' '\r\n wasm: ' '\r\n=== markbull runs cli=20 wasm=18\r\n run 8\r\n cli : ' https://github.com/JanDeDobbeleer/oh-my-posh\\uf408 \\ue0a0next ↑21 '\r\n wasm: 'unable to create text based on template'\r\n run 9\r\n cli : '\\uf044 ?1 ~15 -124'\r\n wasm: '\\ue0b0'\r\n run 10\r\n cli : ' '\r\n wasm: ' \\uf064 0ms '\r\n run 12\r\n cli : ' \\uf064 0ms '\r\n wasm: ' \\uf12a >>0 '\r\n run 14\r\n cli : ' \\uf12a >>0 '\r\n wasm: '└'\r\n run 15\r\n cli : '\\ue0b0'\r\n wasm: ' $'\r\n run 16\r\n cli : '└'\r\n wasm: '_'\r\n run 17\r\n cli : ' $'\r\n wasm: 'ohmyposh.dev'","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"a55ceb1c-4ce4-4967-972d-7a0841d19806","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"8ee3aaa1-2712-4f90-8aa1-0efe0f6130af","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEESVqEtS31kJP2Jxsu","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Both failures trace back to the same git segment template class — `free-ukraine` and `markbull` are calling a lazy method that's still probing. I need to identify what's in those templates that the guards aren't catching, and the likely culprits are properties like `.Kraken`, `.LatestTag`, `.WorktreeCount`, `.UpstreamURL`, or `.StashCount`. The `markbull` template is displaying a GitHub URL, which points to `.UpstreamURL` or a `url` template function being invoked.\n\nI should check which methods those templates actually use and trace what environment calls I might have missed in my guards. The covered methods are HasFilesInDir, FileContent, LsDir, RunCommandWithEnv, HasCommand, HTTPRequest, and HasParentFilePath, but there could be direct calls to `CommandPath`, `Pwd`, `Home`, `HasFolder`, `ResolveSymlink`, or `DirIsWritable` that bypass my guards. Let me search the templates directly to see what's being called.","signature":"CAISqAsKhwEIEBgCKkAQd+JaPYCsaAXqkidmqHqOKTSqKlekMHAtv4hvZocYshI4vM8AiKWzTjZRBPypM8XlfIryK6aPXUwHRUqrpJvYMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDEzsBv2qlRpM0vBo9BoMD5CEuajNTv870Xb1IjCaNKZYE6ASH3/FsXftoJ8UMMB+tM2yW3RDkOjaAGXNPGCCuAc0gmAN0cNSc4bKerQqzQlNBXQ5eJs0Deaek1VNUOS43o2OWi4ACAlePoLBgBqJbRl6XTs32eKAgBqByI3n3CwB+wXkrLLNa+trqmyIzdgB295YvseYXBINS790Xx8tPEMLnipGaG1YoabXlYVv13YnZfAW+b2xqg+WONgkxSECqtUlsUCTCLxXRGEnPj9kCGiR0j2VObwxbNBx8kBX3tVsEy3mRHw4F5Z8cYEZNxBoL7LUkI398TOIwdWackS7PmdJid+Y2iSICeyx9IXqxo5aH6e9LhYad7JGK9x3njHB1id0SriO330xW8iTz+n+cunYmgJFPnp41ZR/Vl6IgPnqzYigFTXebS0oSCKSOTke/qNZoIWBNW3Xr8pPKZXMpqBLignffkAM7bV6AW2t18e7LJd3tBzralG8DZUrT7oeN0kBR3v7Zx8EWttkaQuguPHwOTky97uLxygE5hzW405vbXmXoh+KS5Lr7u2FCl1ulw4hLPhc/J5dX+Dj62WLPNGe5pW26UXmIx38lHyrmQ4BaW45bhp6sjREuVaKN6kddgTQHtfbqaV3phCjBejcnoy7hxwZodC9Tqh9oH5i+YFivNc5SxRKS6VcxxHmO09inYIFQIssiSvtyJn66DWSbti2ixY6IaCqWjFXQ7g2Dlmqv9yZl+pQ33pYqnbf7+Lr6aZtr9vNaduPvit7PoZO/RdLKNamJNeGiz+IbNIAfCq76x8oB5CgfUN8AK8v6lR0vfsc3EgfxzkrwaKnUAiSzAv2ujlG9iotpSWlpSEfvyHXvzoHhEMpf52GOoEuwdejn75AtsAqZvotfBqYM8KWaI1fT/ifbccfw7Rf8lZNECHOtwRzgfC/6xkhOJmFgmEuxbaoKofHVppgCxGDQ6zu7KhpOOOcfFwx0AxOA5EZpEQC6fUr+hDknkwfLTp+GyeV/bjLXOxljXcW/neYBlkPkgOHGIVsOJnURr9t/x8aKztjqLhA0S3PMbaxmb/zxT5plwVhagApnyXHE6D0DqfNM8hNcXfmxpCAlvUKTqWiM2kybYcq6uzwlQwYT5SIpA+rKgxFf51CBTkt/ghENYd5rH5U2h+Xsm10SYweP22ofmSMUw5pGHUOQ0N6dBMlXZpnTKVFtkJriOVGKLkQMOW+XvqiGpeyJ4P1oM4R2bahHG843dHbNVp5g9d3YHe572KH9eIEz5YTiuDbeqtsSOAYwyX7Ni3enaiNQXmqrKMSUQPM4dw16oiqlNrN82018krenU1ZJXecdOIdokpI6G0OuGSMZdScO5yAXHl2sWkLZOJLwSzYsDXtRFyDxQ8bzHJCzN41aCcQg2jjKvmYdoBcmUVJnup7SOWYq4yjdTRcVsXxe9Fq1wjGdViLFOV/fEsewZVk8ySw7PxOKwJXASdyY5ix/SK9q/rka3HL5oLXEW9Zm51jVCpAgtmCaftlMWfwh/5LlbI26+PftQTa1R0SZv5/7bBA2OslwO8lcn+MV9nh7DsyCHHfqIEaeWO6/DjJHyXdCd9aqYPTRyRyys2VLgiTEZOL1NJh+yHSzDLYJgWZIanVvxgcBWLdw5phQVpofgUpMSWnVHK5KU7dGBQ8XHPXW9SE8OrtKhbJV9qgC2obD/e35NJwl/u7S8qcoldJVVgNn4kJEKwhMpRKXxgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":633,"cache_read_input_tokens":596925,"output_tokens":786,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":633,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":786,"cache_read_input_tokens":596925,"cache_creation_input_tokens":633,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":633},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEE7PtEtrAWiBTNoxqq","type":"assistant","uuid":"1f4bae35-86ec-46d2-bdb2-f38b3a9b2552","timestamp":"2026-07-28T09:36:16.194Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1f4bae35-86ec-46d2-bdb2-f38b3a9b2552","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEESVqEtS31kJP2Jxsu","type":"message","role":"assistant","content":[{"type":"text","text":"Same class, different method. Finding which one:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":633,"cache_read_input_tokens":596925,"output_tokens":786,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":633,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":786,"cache_read_input_tokens":596925,"cache_creation_input_tokens":633,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":633},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEE7PtEtrAWiBTNoxqq","type":"assistant","uuid":"a48df75c-cad2-498e-a8fd-dacf535b34dd","timestamp":"2026-07-28T09:36:16.196Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a48df75c-cad2-498e-a8fd-dacf535b34dd","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEESVqEtS31kJP2Jxsu","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01QLcrfAeqyKysAizn6nDo6k","name":"Bash","input":{"command":"grep -o '\"template\": \"[^\"]*\"' themes/markbull.omp.json | grep -i \"git\\|Upstream\\|Kraken\\|Latest\\|Worktree\\|Stash\" | head -3; echo \"--- git segment templates ---\"; python -c \"\nimport json,io,sys\nfor name in ['markbull','free-ukraine']:\n c=json.load(io.open('themes/'+name+'.omp.json',encoding='utf-8'))\n for b in c['blocks']:\n for s in b.get('segments',[]):\n if s.get('type')=='git':\n print(name, '->', s.get('template'))\n\"","description":"Read the git templates of the failing themes"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":633,"cache_read_input_tokens":596925,"output_tokens":786,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":633,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":786,"cache_read_input_tokens":596925,"cache_creation_input_tokens":633,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":633},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEE7PtEtrAWiBTNoxqq","type":"assistant","uuid":"30b20f21-29ef-49d7-9b2f-e21c3eb93de6","timestamp":"2026-07-28T09:36:17.945Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"30b20f21-29ef-49d7-9b2f-e21c3eb93de6","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"type":"tool_result","content":"Exit code 1\n\"template\": \" {{ if( .UpstreamIcon ) }}{{ url .UpstreamIcon .UpstreamURL }} {{ end }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} <#ed1941>\\uf044 {{.Working.String}}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} <#225a1f>\\uf046 {{.Staging.String}}{{ end }}{{ if gt .StashCount 0 }} \\ueb4b {{.StashCount}}{{ end }}{{ if gt .WorktreeCount 0 }}{{if .IsWorkTree}}<#1d953f>{{ end }} \\uf1bb {{if .IsWorkTree}}{{ end }}{{.WorktreeCount}}{{ end }} \"\n--- git segment templates ---\n File \"\", line 1\r\n || goto :error\r\nIndentationError: unexpected indent","is_error":true,"tool_use_id":"toolu_01QLcrfAeqyKysAizn6nDo6k"}]},"uuid":"7dab3504-8e1c-4082-9751-7d0eed22e67d","timestamp":"2026-07-28T09:36:23.695Z","toolUseResult":"Error: Exit code 1\n\"template\": \" {{ if( .UpstreamIcon ) }}{{ url .UpstreamIcon .UpstreamURL }} {{ end }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} <#ed1941>\\uf044 {{.Working.String}}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} <#225a1f>\\uf046 {{.Staging.String}}{{ end }}{{ if gt .StashCount 0 }} \\ueb4b {{.StashCount}}{{ end }}{{ if gt .WorktreeCount 0 }}{{if .IsWorkTree}}<#1d953f>{{ end }} \\uf1bb {{if .IsWorkTree}}{{ end }}{{.WorktreeCount}}{{ end }} \"\n--- git segment templates ---\n File \"\", line 1\r\n || goto :error\r\nIndentationError: unexpected indent","sourceToolAssistantUUID":"30b20f21-29ef-49d7-9b2f-e21c3eb93de6","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7dab3504-8e1c-4082-9751-7d0eed22e67d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEG5VqJx2f2PHLcsgqY","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01TwbfwA7PFRXiGWbVsEFLVU","name":"Bash","input":{"command":"sed -n '1044,1070p' src/segments/git.go","description":"Read WorktreeCount"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1174,"cache_read_input_tokens":597558,"output_tokens":95,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1174,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":95,"cache_read_input_tokens":597558,"cache_creation_input_tokens":1174,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1174},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEFmQuLjs9f5KXvqZPf","type":"assistant","uuid":"84e566e0-d98b-4391-ac97-bdfe92f1c03a","timestamp":"2026-07-28T09:36:31.171Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"84e566e0-d98b-4391-ac97-bdfe92f1c03a","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01TwbfwA7PFRXiGWbVsEFLVU","type":"tool_result","content":"func (g *Git) WorktreeCount() int {\n\tif g.worktreeCount > 0 {\n\t\treturn g.worktreeCount\n\t}\n\n\tworktreesFolder := filepath.Join(g.mainSCMDir, \"worktrees\")\n\n\tif !g.env.HasFolder(worktreesFolder) {\n\t\treturn 0\n\t}\n\n\tworktreeFolders := g.env.LsDir(worktreesFolder)\n\tvar count int\n\tfor _, folder := range worktreeFolders {\n\t\tif folder.IsDir() {\n\t\t\tcount++\n\t\t}\n\t}\n\n\treturn count\n}\n\nfunc (g *Git) getRemoteURL() string {\n\tupstream := regex.ReplaceAllString(\"/.*\", g.Upstream, \"\")\n\tif upstream == \"\" {\n\t\tupstream = origin\n\t}","is_error":false}]},"uuid":"96170eb8-40bc-49f2-947c-412fe7ad79d9","timestamp":"2026-07-28T09:36:32.482Z","toolUseResult":{"stdout":"func (g *Git) WorktreeCount() int {\n\tif g.worktreeCount > 0 {\n\t\treturn g.worktreeCount\n\t}\n\n\tworktreesFolder := filepath.Join(g.mainSCMDir, \"worktrees\")\n\n\tif !g.env.HasFolder(worktreesFolder) {\n\t\treturn 0\n\t}\n\n\tworktreeFolders := g.env.LsDir(worktreesFolder)\n\tvar count int\n\tfor _, folder := range worktreeFolders {\n\t\tif folder.IsDir() {\n\t\t\tcount++\n\t\t}\n\t}\n\n\treturn count\n}\n\nfunc (g *Git) getRemoteURL() string {\n\tupstream := regex.ReplaceAllString(\"/.*\", g.Upstream, \"\")\n\tif upstream == \"\" {\n\t\tupstream = origin\n\t}","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"84e566e0-d98b-4391-ac97-bdfe92f1c03a","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"96170eb8-40bc-49f2-947c-412fe7ad79d9","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEH3t8VRurvdG39XLCd","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I'm noticing that `WorktreeCount` calls `HasFolder` on the environment, but that method isn't in my guard list yet. I need to find all the remaining `Environment` interface methods that perform I/O operations and add guards for them too — looks like `HasFolder`, `ResolveSymlink`, `CommandPath`, and `DirIsWritable` are candidates, though `HasParentFilePath` is already guarded.","signature":"CAISkQYKhwEIEBgCKkABSSRIaByN4Da/NkOCEMbI56IcKNlwRn32kWUYHG9iQPp7qqvWxqCDOYSFiRcJVIoU74YZnFZ1IhXkgIeELY/9Mg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDC+/iG/VvinPtMJVDBoMf4VNl84XXMOk3YhLIjDGYXsGkQGfYmc2V3SquBXwGEtWxXGuhN8Y3DXJyzaeUae9RAgusFkQWiYYzxHT5zYqtgQkayJ3aQ8b+BxT9hmwuB6bqgwrnuJ6ilVh2Jjj0JsHC8fLD426GB4aW/CGtxmyXZ0VQ6JUMRsio88nON1IKLAFEUSi0i6GZehQC13PuJ1iNDyH8NIxpTxNxzZ+iqFmWcAdLf1A17bybV+AlGN9FmJDE+c+EJMQYYwMaYk/C7vfDU5d78DojdAVXzamD5iiM16X0CiPvxwOSg7AmKy/oN3UBEch6qyoUxli6TwYOvBhndsjEMN6Zq4bBNiIbVw9T+Fflz05A09slIkoy0IZGnfwtZu29/asRfXLACQDKcK19S+UqokievgE7CIu7QfWX2A8cff+AFCaexQYfJYXKoGpXI9YIcNcTOaVnMhDpaBsylXgAkK5A2iri1cv4GIsBBTsuAzFVSM0+R8MZ4wqXxuq+hfWcOMJabh23/JTRjE0pn5WNZmBDJEs18zAcW3zABKCuw3zRTkA6/Qa787A2KZp/9YYwX5KlB+dr3kvXBX1XCuJyoywqLlN0jfs91kpIa2nSx9zHt61lJT3SqAMhT2aqqbnQ1SDhmgb3rCjI+ImrNBGkFySUokxQ9Imk6+xt12ge3TXAzkYNYxg4HdW8C1lKQUmLYXFD++gQk/+aAUZYfdUIPXU+NhlzEe3BfuGJu0e4SdvJn1aFmdh3/lWt91O2FfgT4Pj7UXg0PapdfkIRk0KTUkMTPoX/qJ5ZYX+5hn7MVThUtgOo0goFioXvD2mx0L/FlCNTcLE9jkFekBOJFfQjEjJexgB"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":358,"cache_read_input_tokens":598732,"output_tokens":411,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":358,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":411,"cache_read_input_tokens":598732,"cache_creation_input_tokens":358,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":358},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEGSRB6qy5FpvevbMMA","type":"assistant","uuid":"0712ea39-c99a-407a-aa59-0049d96ced4b","timestamp":"2026-07-28T09:36:46.349Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"0712ea39-c99a-407a-aa59-0049d96ced4b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEH3t8VRurvdG39XLCd","type":"message","role":"assistant","content":[{"type":"text","text":"`WorktreeCount` calls `env.HasFolder`, which I missed. Being systematic this time — enumerating every I/O method on the interface:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":358,"cache_read_input_tokens":598732,"output_tokens":411,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":358,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":411,"cache_read_input_tokens":598732,"cache_creation_input_tokens":358,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":358},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEGSRB6qy5FpvevbMMA","type":"assistant","uuid":"5066630a-b49d-40e5-9fe7-8cb69d57210a","timestamp":"2026-07-28T09:36:46.716Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5066630a-b49d-40e5-9fe7-8cb69d57210a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEH3t8VRurvdG39XLCd","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01QaeTa88UUih5PPkrEb1Kka","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && sed -n '/^type Environment interface/,/^}/p' runtime/environment.go | grep -E \"^\\s+[A-Z]\" | head -40","description":"List the Environment interface methods"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":358,"cache_read_input_tokens":598732,"output_tokens":411,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":358,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":411,"cache_read_input_tokens":598732,"cache_creation_input_tokens":358,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":358},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEGSRB6qy5FpvevbMMA","type":"assistant","uuid":"58a7c65e-abdb-4f65-87f7-7dd8bebdbc06","timestamp":"2026-07-28T09:36:48.397Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"58a7c65e-abdb-4f65-87f7-7dd8bebdbc06","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01QaeTa88UUih5PPkrEb1Kka","type":"tool_result","content":"\tGetenv(key string) string\n\tPwd() string\n\tHome() string\n\tUser() string\n\tRoot() bool\n\tHost() (string, error)\n\tGOOS() string\n\tShell() string\n\tPlatform() string\n\tStatusCodes() (int, string)\n\tHasFiles(pattern string) bool\n\tHasFilesInDir(dir, pattern string) bool\n\tHasFolder(folder string) bool\n\tHasParentFilePath(input string, followSymlinks bool) (fileInfo *FileInfo, err error)\n\tHasFileInParentDirs(pattern string, depth uint) bool\n\tResolveSymlink(input string) (string, error)\n\tDirMatchesOneOf(dir string, regexes []string) bool\n\tDirIsWritable(input string) bool\n\tCommandPath(command string) string\n\tHasCommand(command string) bool\n\tFileContent(file string) string\n\tLsDir(input string) []fs.DirEntry\n\tRunCommand(command string, args ...string) (string, error)\n\tRunCommandWithEnv(command string, envs []string, args ...string) (string, error)\n\tRunShellCommand(shell, command string) string\n\tExecutionTime() float64\n\tFlags() *Flags\n\tBatteryState() (*battery.Info, error)\n\tQueryWindowTitles(processName, windowTitleRegex string) (string, error)\n\tQueryMediaPlayer(player string) (*MediaInfo, error)\n\tWindowsRegistryKeyValue(key string) (*WindowsRegistryValue, error)\n\tHTTPRequest(url string, body io.Reader, timeout int, requestModifiers ...http.RequestModifier) ([]byte, error)\n\tIsWsl() bool\n\tIsWsl2() bool\n\tIsCygwin() bool\n\tStackCount() int\n\tTerminalWidth() (int, error)\n\tLogs() string\n\tInWSLSharedDrive() bool\n\tConvertToLinuxPath(input string) string","is_error":false}]},"uuid":"db227131-3bbd-4a41-8065-c228337d721b","timestamp":"2026-07-28T09:36:52.853Z","toolUseResult":{"stdout":"\tGetenv(key string) string\n\tPwd() string\n\tHome() string\n\tUser() string\n\tRoot() bool\n\tHost() (string, error)\n\tGOOS() string\n\tShell() string\n\tPlatform() string\n\tStatusCodes() (int, string)\n\tHasFiles(pattern string) bool\n\tHasFilesInDir(dir, pattern string) bool\n\tHasFolder(folder string) bool\n\tHasParentFilePath(input string, followSymlinks bool) (fileInfo *FileInfo, err error)\n\tHasFileInParentDirs(pattern string, depth uint) bool\n\tResolveSymlink(input string) (string, error)\n\tDirMatchesOneOf(dir string, regexes []string) bool\n\tDirIsWritable(input string) bool\n\tCommandPath(command string) string\n\tHasCommand(command string) bool\n\tFileContent(file string) string\n\tLsDir(input string) []fs.DirEntry\n\tRunCommand(command string, args ...string) (string, error)\n\tRunCommandWithEnv(command string, envs []string, args ...string) (string, error)\n\tRunShellCommand(shell, command string) string\n\tExecutionTime() float64\n\tFlags() *Flags\n\tBatteryState() (*battery.Info, error)\n\tQueryWindowTitles(processName, windowTitleRegex string) (string, error)\n\tQueryMediaPlayer(player string) (*MediaInfo, error)\n\tWindowsRegistryKeyValue(key string) (*WindowsRegistryValue, error)\n\tHTTPRequest(url string, body io.Reader, timeout int, requestModifiers ...http.RequestModifier) ([]byte, error)\n\tIsWsl() bool\n\tIsWsl2() bool\n\tIsCygwin() bool\n\tStackCount() int\n\tTerminalWidth() (int, error)\n\tLogs() string\n\tInWSLSharedDrive() bool\n\tConvertToLinuxPath(input string) string","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"58a7c65e-abdb-4f65-87f7-7dd8bebdbc06","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"db227131-3bbd-4a41-8065-c228337d721b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEJhHSgJ3z5jnq2Miy2","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01FR5VNy1xgL5L7paVGpbNm4","name":"Write","input":{"file_path":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\gate_env2.py","content":"\"\"\"Guard the remaining machine-touching Terminal methods behind DataOnly.\n\nThe first pass guarded the obvious probes and missed HasFolder, which\nGit.WorktreeCount reaches through - two themes still diverged. Enumerating from\nthe Environment interface rather than from the ones that happened to fail is\nthe point of this second pass.\n\"\"\"\nimport io\nimport re\n\nPATH = \"runtime/terminal.go\"\n\n# method name -> the value it returns when the environment is off-limits\nGUARDS = {\n \"HasFolder\": \"\\treturn false\\n\",\n \"HasFileInParentDirs\": \"\\treturn false\\n\",\n \"ResolveSymlink\": '\\treturn \"\", errDataOnly\\n',\n \"CommandPath\": '\\treturn \"\"\\n',\n \"DirIsWritable\": \"\\treturn false\\n\",\n \"RunShellCommand\": '\\treturn \"\"\\n',\n \"BatteryState\": \"\\treturn nil, errDataOnly\\n\",\n \"QueryWindowTitles\": '\\treturn \"\", errDataOnly\\n',\n \"QueryMediaPlayer\": \"\\treturn nil, errDataOnly\\n\",\n \"WindowsRegistryKeyValue\": \"\\treturn nil, errDataOnly\\n\",\n}\n\nsrc = io.open(PATH, encoding=\"utf-8\").read()\nguard = \"\\tif term.CmdFlags != nil && term.CmdFlags.DataOnly {\\n%s\\t}\\n\"\n\ndone, missing = [], []\n\nfor name, ret in GUARDS.items():\n pattern = re.compile(r\"^func \\(term \\*Terminal\\) \" + name + r\"\\([^\\n]*\\{\\n\", re.MULTILINE)\n match = pattern.search(src)\n\n if not match:\n missing.append(name)\n continue\n\n if \"DataOnly\" in src[match.end():match.end() + 120]:\n continue\n\n src = src[:match.end()] + (guard % ret) + src[match.end():]\n done.append(name)\n\nio.open(PATH, \"w\", encoding=\"utf-8\", newline=\"\\n\").write(src)\n\nprint(\"guarded:\", \", \".join(done))\nprint(\"not in this file (platform-specific):\", \", \".join(missing) or \"none\")\n"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1071,"cache_read_input_tokens":599090,"output_tokens":875,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1071,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":875,"cache_read_input_tokens":599090,"cache_creation_input_tokens":1071,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1071},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEJ1kAvjYkkGJeSNG16","type":"assistant","uuid":"367480b1-0b2e-4db1-80a1-83d59487705d","timestamp":"2026-07-28T09:37:15.795Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"367480b1-0b2e-4db1-80a1-83d59487705d","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01FR5VNy1xgL5L7paVGpbNm4","type":"tool_result","content":"File created successfully at: C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\gate_env2.py (file state is current in your context — no need to Read it back)"}]},"uuid":"1c9d0d0b-16f8-46a0-b677-80a719108da7","timestamp":"2026-07-28T09:37:15.865Z","toolUseResult":{"type":"create","filePath":"C:\\Users\\jande\\AppData\\Local\\Temp\\claude\\D--oh-my-posh\\b9b935d0-2ccd-4cb3-b53e-1c2719355c19\\scratchpad\\gate_env2.py","content":"\"\"\"Guard the remaining machine-touching Terminal methods behind DataOnly.\n\nThe first pass guarded the obvious probes and missed HasFolder, which\nGit.WorktreeCount reaches through - two themes still diverged. Enumerating from\nthe Environment interface rather than from the ones that happened to fail is\nthe point of this second pass.\n\"\"\"\nimport io\nimport re\n\nPATH = \"runtime/terminal.go\"\n\n# method name -> the value it returns when the environment is off-limits\nGUARDS = {\n \"HasFolder\": \"\\treturn false\\n\",\n \"HasFileInParentDirs\": \"\\treturn false\\n\",\n \"ResolveSymlink\": '\\treturn \"\", errDataOnly\\n',\n \"CommandPath\": '\\treturn \"\"\\n',\n \"DirIsWritable\": \"\\treturn false\\n\",\n \"RunShellCommand\": '\\treturn \"\"\\n',\n \"BatteryState\": \"\\treturn nil, errDataOnly\\n\",\n \"QueryWindowTitles\": '\\treturn \"\", errDataOnly\\n',\n \"QueryMediaPlayer\": \"\\treturn nil, errDataOnly\\n\",\n \"WindowsRegistryKeyValue\": \"\\treturn nil, errDataOnly\\n\",\n}\n\nsrc = io.open(PATH, encoding=\"utf-8\").read()\nguard = \"\\tif term.CmdFlags != nil && term.CmdFlags.DataOnly {\\n%s\\t}\\n\"\n\ndone, missing = [], []\n\nfor name, ret in GUARDS.items():\n pattern = re.compile(r\"^func \\(term \\*Terminal\\) \" + name + r\"\\([^\\n]*\\{\\n\", re.MULTILINE)\n match = pattern.search(src)\n\n if not match:\n missing.append(name)\n continue\n\n if \"DataOnly\" in src[match.end():match.end() + 120]:\n continue\n\n src = src[:match.end()] + (guard % ret) + src[match.end():]\n done.append(name)\n\nio.open(PATH, \"w\", encoding=\"utf-8\", newline=\"\\n\").write(src)\n\nprint(\"guarded:\", \", \".join(done))\nprint(\"not in this file (platform-specific):\", \", \".join(missing) or \"none\")\n","structuredPatch":[],"originalFile":null,"userModified":false},"sourceToolAssistantUUID":"367480b1-0b2e-4db1-80a1-83d59487705d","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1c9d0d0b-16f8-46a0-b677-80a719108da7","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"bea75986-6926-4071-ba3d-28fcf7e175e6","timestamp":"2026-07-28T09:37:15.874Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"bea75986-6926-4071-ba3d-28fcf7e175e6","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEL85iz5MqTGAyQWC2S","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01HBPzvs3Z9vYcAH85h28Gbr","name":"Bash","input":{"command":"SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad\"; python \"$SP/gate_env2.py\" && gofmt -w runtime/terminal.go && go build ./... 2>&1 | head -5 && go test ./... -count=1 2>&1 | grep -v \"^ok\\|no test files\" | head -5; golangci-lint run ./... 2>&1 | tail -2","description":"Apply the remaining guards and verify"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":1109,"cache_read_input_tokens":600161,"output_tokens":254,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1109,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":254,"cache_read_input_tokens":600161,"cache_creation_input_tokens":1109,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1109},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEKfkCHRKC9jE9Jdo99","type":"assistant","uuid":"b1925d6d-95aa-430a-ab5e-c5b3664be647","timestamp":"2026-07-28T09:37:28.001Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"b1925d6d-95aa-430a-ab5e-c5b3664be647","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01HBPzvs3Z9vYcAH85h28Gbr","type":"tool_result","content":"guarded: HasFolder, HasFileInParentDirs, ResolveSymlink, CommandPath, RunShellCommand\r\nnot in this file (platform-specific): DirIsWritable, BatteryState, QueryWindowTitles, QueryMediaPlayer, WindowsRegistryKeyValue\r\n0 issues.","is_error":false}]},"uuid":"7215908b-4a82-440c-a459-fd19cba7faf1","timestamp":"2026-07-28T09:38:58.263Z","toolUseResult":{"stdout":"guarded: HasFolder, HasFileInParentDirs, ResolveSymlink, CommandPath, RunShellCommand\r\nnot in this file (platform-specific): DirIsWritable, BatteryState, QueryWindowTitles, QueryMediaPlayer, WindowsRegistryKeyValue\r\n0 issues.","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"b1925d6d-95aa-430a-ab5e-c5b3664be647","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"7215908b-4a82-440c-a459-fd19cba7faf1","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUETXWKVUpWDzswt81SH","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01L53oqJBpSYjxQZRTmm33yw","name":"Bash","input":{"command":"cd /d/oh-my-posh && go -C src build -o \"$TMPDIR/omp-g2.exe\" . && GOOS=js GOARCH=wasm go -C src build -o \"$TMPDIR/omp3.wasm\" ./wasm/ && SP=\"C:/Users/jande/AppData/Local/Temp/claude/D--oh-my-posh/b9b935d0-2ccd-4cb3-b53e-1c2719355c19/scratchpad/parity\" && rm -rf \"$TMPDIR/wasm-all2\" \"$TMPDIR/cli-all2\" && node \"$SP/batch.mjs\" \"$TMPDIR/omp3.wasm\" themes src/prompt/testdata/fixtures/prompt.data.json \"$TMPDIR/wasm-all2\" 2>/dev/null | head -3 && mkdir -p \"$TMPDIR/cli-all2\" && for f in themes/*.omp.json themes/*.omp.yaml; do b=$(basename \"$f\"); b=${b%%.omp.*}; \"$TMPDIR/omp-g2.exe\" config export image --config \"$f\" --data src/prompt/testdata/fixtures/prompt.data.json --data-only -o \"$TMPDIR/cli-all2/$b.svg\" >/dev/null 2>&1; done; diff -rq \"$TMPDIR/cli-all2\" \"$TMPDIR/wasm-all2\" > \"$TMPDIR/p2.diff\" 2>&1; [ -s \"$TMPDIR/p2.diff\" ] && { echo \"DIFFS:\"; cat \"$TMPDIR/p2.diff\" | head -5; } || echo \"ALL 124 IDENTICAL: wasm == CLI\"","description":"Full 124-theme parity check","timeout":400000},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":367,"cache_read_input_tokens":601270,"output_tokens":687,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":367,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":687,"cache_read_input_tokens":601270,"cache_creation_input_tokens":367,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":367},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUETDAWQ5v8ARw6C4DST","type":"assistant","uuid":"1eb36c4c-d78c-4c31-8ac4-a73fbe152b31","timestamp":"2026-07-28T09:39:11.512Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1eb36c4c-d78c-4c31-8ac4-a73fbe152b31","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01L53oqJBpSYjxQZRTmm33yw","type":"tool_result","content":"rendered 124, failed 0\nALL 124 IDENTICAL: wasm == CLI","is_error":false}]},"uuid":"641e5315-a3d7-4927-adb4-b835434af36b","timestamp":"2026-07-28T09:39:58.594Z","toolUseResult":{"stdout":"rendered 124, failed 0\nALL 124 IDENTICAL: wasm == CLI","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"classifierMetaLines":"{\"meta\":{\"gitStatus\":{\"staged\":0,\"modified\":1,\"untracked\":0}}}\n","sourceToolAssistantUUID":"1eb36c4c-d78c-4c31-8ac4-a73fbe152b31","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"641e5315-a3d7-4927-adb4-b835434af36b","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEYFPbJUy5871pkH3Fn","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"All 124 test cases match, so now I need to check that the normal CLI rendering without the `--data-only` flag still produces the same output as the baseline, then I can commit.","signature":"CAISnwMKhwEIEBgCKkCTfnLI4InW3xuiGV9lcyXnjH0K/TQi5qSakGccMW3qhil6wWZcSy+67JM3vgMY1kPU1gmmG4kHOJ+BFfncliigMg1jbGF1ZGUtb3B1cy01OAFCCHRoaW5raW5nWiQyNzkzZDAwYy03MTcyLTQxMWQtOTc3Zi03YzNmM2VjOTg5YWESDLYeen0okoAIcbZR5RoMvmLi7Eab1aR4DhCOIjCksvNu2PVM1Gtxu+09RXI2HtvKoVDC/QhRL162MTW3M89OkYqMWvKP6NgUCc8Jzu4qxAGUTCQHOJU609rpVhiDhVgYTCzT136VbR2arjV50l2fcivmR4yhQJVVzt3RmLrRwaGCgFWqvB5ovARmG06xKbkQhmaOCtXCw0qkDiUIxnC4h6prY8lDmBcEpe1OAsWAQP+scUyNh6GxIwOYWOeUCeGdAHaHLF7Ppju/pgOpD9wptzcKKkNmMxDu/yshmYMWzfKM/5mg2BQqwqKpF1zv1asf4TjZ5FrHDHdvfv3yEciX+Jhp/+60z2GUHKYStabNDtCCKqIOGAE="}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":724,"cache_read_input_tokens":601637,"output_tokens":457,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":724,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":457,"cache_read_input_tokens":601637,"cache_creation_input_tokens":724,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":724},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEXdemn1kGuMKBjkE94","type":"assistant","uuid":"77eedbca-186f-4871-aec6-dc964ce6c1fa","timestamp":"2026-07-28T09:40:10.899Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"77eedbca-186f-4871-aec6-dc964ce6c1fa","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEYFPbJUy5871pkH3Fn","type":"message","role":"assistant","content":[{"type":"text","text":"All 124 identical. Last check — the guards must not touch normal rendering:"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":724,"cache_read_input_tokens":601637,"output_tokens":457,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":724,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":457,"cache_read_input_tokens":601637,"cache_creation_input_tokens":724,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":724},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEXdemn1kGuMKBjkE94","type":"assistant","uuid":"2478e4d0-6cf5-4bfe-9fda-e27a90bdcf1f","timestamp":"2026-07-28T09:40:10.900Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"2478e4d0-6cf5-4bfe-9fda-e27a90bdcf1f","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEYFPbJUy5871pkH3Fn","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01R4kx2ssy3J39YiGDVEXrvs","name":"Bash","input":{"command":"rm -rf \"$TMPDIR/gate-g2\" && mkdir -p \"$TMPDIR/gate-g2\" && for f in themes/*.omp.json themes/*.omp.yaml; do b=$(basename \"$f\"); b=${b%%.omp.*}; \"$TMPDIR/omp-g2.exe\" config export image --config \"$f\" --data src/prompt/testdata/fixtures/prompt.data.json -o \"$TMPDIR/gate-g2/$b.svg\" >/dev/null 2>&1; done; diff -rq \"$TMPDIR/gate-render\" \"$TMPDIR/gate-g2\" >/dev/null && echo \"normal CLI rendering UNCHANGED (124 themes)\" || diff -rq \"$TMPDIR/gate-render\" \"$TMPDIR/gate-g2\" | head -3","description":"Confirm normal rendering is unaffected"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":724,"cache_read_input_tokens":601637,"output_tokens":457,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":724,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":457,"cache_read_input_tokens":601637,"cache_creation_input_tokens":724,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":724},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEXdemn1kGuMKBjkE94","type":"assistant","uuid":"ad0a4b57-05ea-4e5f-8913-a3ed5f757618","timestamp":"2026-07-28T09:40:13.399Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ad0a4b57-05ea-4e5f-8913-a3ed5f757618","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01R4kx2ssy3J39YiGDVEXrvs","type":"tool_result","content":"normal CLI rendering UNCHANGED (124 themes)","is_error":false}]},"uuid":"03be911d-0cdc-4dbb-b20b-04b6fc2d87eb","timestamp":"2026-07-28T09:40:36.588Z","toolUseResult":{"stdout":"normal CLI rendering UNCHANGED (124 themes)","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"classifierMetaLines":"{\"meta\":{\"gitStatus\":{\"staged\":0,\"modified\":1,\"untracked\":0}}}\n","sourceToolAssistantUUID":"ad0a4b57-05ea-4e5f-8913-a3ed5f757618","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"03be911d-0cdc-4dbb-b20b-04b6fc2d87eb","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEaWk8HdAnfGLrWbVag","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01XbMX4TY6cbnWzvGwJVfnrb","name":"Bash","input":{"command":"git add -A src/ && git commit -q -F - <<'EOF'\nfix(runtime): make DataOnly a property of the environment\n\nDataOnly only governed Segment.restoreData, which decides whether a\nsegment's own Enabled() runs. A writer field computed lazily by a method\nthe template calls reached the machine long afterwards: git's\nStashCount() reads logs/refs/stash off disk and WorktreeCount() lists\n.git/worktrees, and neither stashCount nor worktreeCount is exported, so\nno recorded data ever restores them.\n\nRendering the same config through the CLI and through wasm found it. The\nCLI read the real repository this checkout sits in; wasm, having no\nfilesystem, failed those templates outright and rendered \"unable to\ncreate text based on template\" where a branch should be. Three themes\ndiverged - jandedobbeleer, free-ukraine, markbull.\n\nGating each such method would only cover the ones somebody thought to\nlook at, so the probe primitives themselves refuse instead: every\nTerminal method that reads a file, lists a directory, resolves a\nsymlink, runs a command or makes a request answers empty or errDataOnly\nwhen the flag is set. A segment cannot be written that gets around it.\n\nThe first pass guarded the obvious probes and missed HasFolder, which is\nwhy the second enumerates from the Environment interface rather than\nfrom whatever happened to fail.\n\nAll 124 bundled themes now render byte-identically through wasm under\nNode and through the CLI with --data-only, and normal CLI rendering is\nunchanged.\nEOF\ngit log --oneline -4","description":"Commit the environment gating"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":483,"cache_read_input_tokens":602361,"output_tokens":607,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":483,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":607,"cache_read_input_tokens":602361,"cache_creation_input_tokens":483,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":483},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEaQqvaBrQUjJUDLo7a","type":"assistant","uuid":"6a683403-78be-4622-ab1e-d851c4b3d984","timestamp":"2026-07-28T09:40:49.469Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6a683403-78be-4622-ab1e-d851c4b3d984","isSidechain":false,"promptId":"a8fe7a1f-dacc-42d1-beca-990f28a6fbbc","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01XbMX4TY6cbnWzvGwJVfnrb","type":"tool_result","content":"77827297 fix(runtime): make DataOnly a property of the environment\nb0eb3a02 feat(render): render a config without the CLI\n71ce6289 refactor(cli): keep the terminal UI out of the core packages\n404214e2 feat(config): let a render refuse to touch the machine","is_error":false}]},"uuid":"ffae65f1-c84c-4c44-b812-51f2e42eb32d","timestamp":"2026-07-28T09:41:00.898Z","toolUseResult":{"stdout":"77827297 fix(runtime): make DataOnly a property of the environment\nb0eb3a02 feat(render): render a config without the CLI\n71ce6289 refactor(cli): keep the terminal UI out of the core packages\n404214e2 feat(config): let a render refuse to touch the machine","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"6a683403-78be-4622-ab1e-d851c4b3d984","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"ffae65f1-c84c-4c44-b812-51f2e42eb32d","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUEcLcjUXN58VjisxMio","type":"message","role":"assistant","content":[{"type":"text","text":"Both done, and the parity gate earned its keep.\n\n**`src/render`** (`b0eb3a02`) — engine setup, `svg.Options` wiring and the `CapturedRuns` → `Encode` glue now live outside `src/cli`. Option-building stayed in `render` rather than becoming an `svg.Options` constructor, deliberately: `svg.Options` takes colours as explicit fields so resolution stays unit-testable, and reading `terminal.Colors` from inside `svg` would undo that. Plus `config.ParseBytes` for a config already in memory — which skips the `extends` loop, so a studio config structurally cannot pull in a remote one.\n\n**The wasm entrypoint** — `render(configText, format, dataJSON, options)`, always `DataOnly` + `CaptureRuns`, 28.7 MB raw.\n\n**The gate caught a real bug that both the agent's run and my own six-theme spot check missed.** Running all 124 through wasm and diffing against the CLI found three divergences. Cause: `DataOnly` only governed `restoreData`, which decides whether `Enabled()` runs. But git's `StashCount()` reads `logs/refs/stash` off disk and `WorktreeCount()` lists `.git/worktrees` — both called *by the template*, both backed by unexported fields no recorded data restores. The CLI read this checkout's real repository; wasm has no filesystem and failed the template outright.\n\nFixed by making `DataOnly` a property of the environment (`77827297`): every `Terminal` method that reads a file, lists a directory, resolves a symlink, runs a command or makes a request refuses when the flag is set. Gating individual segment methods would only cover the ones someone thought to check — this way a segment that gets around it can't be written.\n\nWorth noting my first pass at that missed `HasFolder` and two themes still diverged. The second pass enumerated from the `Environment` interface rather than from whatever happened to fail, which is the difference between a fix and a patch.\n\nFinal state:\n\n```\n124/124 wasm renders byte-identical to CLI --data-only\n124/124 normal CLI rendering unchanged\n full suite, vet, golangci-lint: clean\n```\n\nOne renderer, provably. Next would be the studio UI itself — editor plus live preview, loading the module lazily on one page."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":695,"cache_read_input_tokens":602844,"output_tokens":771,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":695,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":771,"cache_read_input_tokens":602844,"cache_creation_input_tokens":695,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":695},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUEcC3HpsahtnaSUydKP","type":"assistant","uuid":"99ee6c29-fc92-4330-976e-c434772c62e2","timestamp":"2026-07-28T09:41:14.935Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"99ee6c29-fc92-4330-976e-c434772c62e2","isSidechain":false,"type":"system","subtype":"stop_hook_summary","hookCount":3,"hookInfos":[{"command":"sh -c 'if ! command -v entire >/dev/null 2>&1; then exit 0; fi; exec entire hooks claude-code stop'","durationMs":7004},{"command":"callback"},{"command":"callback"}],"hookErrors":[],"hookAdditionalContext":[],"preventedContinuation":false,"stopReason":"","hasOutput":false,"level":"suggestion","timestamp":"2026-07-28T09:41:23.814Z","uuid":"cd572694-512a-4a2b-a1b5-b4ccb6befe4b","toolUseID":"9567acf7-e2a9-4c34-9d2d-fe3114539ce9","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"cd572694-512a-4a2b-a1b5-b4ccb6befe4b","isSidechain":false,"promptId":"e17263bb-a81b-47f1-8ff8-cb8c7bd6e017","type":"user","message":{"role":"user","content":"Build a studio UI. Make sure it respects the current styling, font size, spacing, etc. of the website."},"uuid":"a8e2acd8-b31b-4673-bd90-9d6f467c7e26","timestamp":"2026-07-28T09:54:16.393Z","permissionMode":"auto","origin":{"kind":"human"},"promptSource":"sdk","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"a8e2acd8-b31b-4673-bd90-9d6f467c7e26","isSidechain":false,"attachment":{"type":"hook_additional_context","content":["CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."],"hookName":"UserPromptSubmit","toolUseID":"hook-2d0a4c14-1c26-4344-a51a-4a495b6099a4","hookEvent":"UserPromptSubmit"},"type":"attachment","uuid":"3a3437c9-6aa3-4c0e-b04e-9887ce58c586","timestamp":"2026-07-28T09:54:16.764Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"3a3437c9-6aa3-4c0e-b04e-9887ce58c586","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUFd5pP6KnQQ8jLAC4eG","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I need to build out a studio UI that fits with the existing website design system. Let me start by understanding the current styling conventions—the custom tokens like `--omp-card-*`, Infima variables, Victor Mono for monospace, and Inter as the base font—then look at how SegmentCatalog structures its faceted UI for reference. From there I'll create the studio page, component directory with its own styles module, and handle the wasm loading setup.\n\nThe wasm file is quite large at 28.7 MB, so it needs to be lazy-loaded only on the studio page and built at compile time rather than committed to git. I'll need to copy `wasm_exec.js` from GOROOT during the build process. Since Azure SWA handles gzip and brotli compression automatically, that should help with delivery. The studio will pull data from the existing `segment_data.json` file, and for the editor itself, a styled textarea using the site's mono font is the right call—it keeps things lightweight and avoids adding a heavy code editor dependency on top of the wasm.\n\nLet me verify that the wasm entrypoint accepts the font metrics parameters like fill-ascent so the preview will match the gallery display.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":110,"cache_read_input_tokens":604310,"output_tokens":1172,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":110,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1172,"cache_read_input_tokens":604310,"cache_creation_input_tokens":110,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":110},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUFcy6ZwnojGTKHe1uoG","type":"assistant","uuid":"aab25434-6dce-4b5c-95c1-006f0a854ded","timestamp":"2026-07-28T09:54:35.349Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"aab25434-6dce-4b5c-95c1-006f0a854ded","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUFd5pP6KnQQ8jLAC4eG","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_018juCqLbgQWeFdgbkwgLu6d","name":"Bash","input":{"command":"cd /d/oh-my-posh/src && grep -n \"optionsGet(options\" wasm/main.go","description":"Check which options the wasm entrypoint accepts"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":110,"cache_read_input_tokens":604310,"output_tokens":1172,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":110,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1172,"cache_read_input_tokens":604310,"cache_creation_input_tokens":110,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":110},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUFcy6ZwnojGTKHe1uoG","type":"assistant","uuid":"20fb7b4a-b5ec-48e4-9d2e-bfe1562f7b99","timestamp":"2026-07-28T09:54:36.031Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"20fb7b4a-b5ec-48e4-9d2e-bfe1562f7b99","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUFd5pP6KnQQ8jLAC4eG","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017faxX2pFHSRcUK145WnxDj","name":"Bash","input":{"command":"cd /d/oh-my-posh/website && sed -n '160,200p' src/css/custom.css && echo \"=== catalog styles (conventions) ===\" && head -40 src/components/SegmentCatalog/styles.module.css","description":"Read the site styling tokens and a recent component's conventions"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":110,"cache_read_input_tokens":604310,"output_tokens":1172,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":110,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1172,"cache_read_input_tokens":604310,"cache_creation_input_tokens":110,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":110},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUFcy6ZwnojGTKHe1uoG","type":"assistant","uuid":"5a18e3ac-d7d6-4128-a36c-bd668d5e9291","timestamp":"2026-07-28T09:54:36.986Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"20fb7b4a-b5ec-48e4-9d2e-bfe1562f7b99","isSidechain":false,"promptId":"e17263bb-a81b-47f1-8ff8-cb8c7bd6e017","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_018juCqLbgQWeFdgbkwgLu6d","type":"tool_result","content":"128:\tcolumns := jsInt(optionsGet(options, \"columns\"), 120)\n142:\t\tCellWidth: jsFloat(optionsGet(options, \"cellWidth\")),\n143:\t\tLineHeight: jsFloat(optionsGet(options, \"lineHeight\")),\n144:\t\tFillAscent: jsFloat(optionsGet(options, \"fillAscent\")),\n145:\t\tFillDescent: jsFloat(optionsGet(options, \"fillDescent\")),\n148:\topts := render.SVGOptions(jsString(optionsGet(options, \"fontFamily\")), columns, metrics)\n161:func optionsGet(options js.Value, key string) js.Value {","is_error":false}]},"uuid":"40d0b56d-2a50-49c7-a4a7-a4e4ce792d6d","timestamp":"2026-07-28T09:54:37.284Z","toolUseResult":{"stdout":"128:\tcolumns := jsInt(optionsGet(options, \"columns\"), 120)\n142:\t\tCellWidth: jsFloat(optionsGet(options, \"cellWidth\")),\n143:\t\tLineHeight: jsFloat(optionsGet(options, \"lineHeight\")),\n144:\t\tFillAscent: jsFloat(optionsGet(options, \"fillAscent\")),\n145:\t\tFillDescent: jsFloat(optionsGet(options, \"fillDescent\")),\n148:\topts := render.SVGOptions(jsString(optionsGet(options, \"fontFamily\")), columns, metrics)\n161:func optionsGet(options js.Value, key string) js.Value {","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"20fb7b4a-b5ec-48e4-9d2e-bfe1562f7b99","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5a18e3ac-d7d6-4128-a36c-bd668d5e9291","isSidechain":false,"promptId":"e17263bb-a81b-47f1-8ff8-cb8c7bd6e017","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_017faxX2pFHSRcUK145WnxDj","type":"tool_result","content":"}\n\n[data-theme=\"light\"] .withings {\n background: black;\n padding: 17px 10px 10px 10px;\n display: inline;\n border-radius: 10px;\n}\n\n.withings svg {\n width: 150px;\n}\n\n[data-theme=\"light\"] .withings svg path {\n fill: white;\n}\n\n[data-theme=\"dark\"] .withings svg path {\n fill: black;\n}\n\n/* Fonts */\n\n/* VictorMono.ttf is the Mono patched Nerd Font variant (VictorMono NFM), not\n the plain one. Both patch the same 11,658 codepoints at the same advance,\n so nothing about the grid changes - but the plain variant leaves an icon's\n ink at its natural width while still advancing one cell, and Nerd Font\n icons are far wider than a cell: U+F07B (folder) inks 1.693 cells, U+F120\n (terminal) 1.903. That ink runs over whatever follows the icon, which in\n the theme gallery is the space each segment template writes after it. The\n Mono variant scales every icon to exactly one cell. Keep this variant when\n versioning the font up. */\n@font-face {\n font-family: \"Victor Mono\";\n src: url('/fonts/VictorMono.ttf') format(\"truetype\");\n font-display: swap;\n}\n\n:root {\n --ifm-font-family-monospace: \"Victor Mono\", \"Symbols Nerd Font Mono\",\n \"Symbols Nerd Font\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n=== catalog styles (conventions) ===\n.cat {\n display: grid;\n grid-template-columns: 13.5rem 1fr;\n}\n\n.facets {\n border-right: 1px solid var(--ifm-color-emphasis-200);\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.grp {\n border: 0;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 0.35rem;\n}\n\n.lbl {\n padding: 0;\n font-family: var(--ifm-font-family-monospace);\n font-size: 0.62rem;\n letter-spacing: 0.15em;\n text-transform: uppercase;\n color: var(--ifm-color-emphasis-600);\n}\n\n.opt {\n display: flex;\n align-items: center;\n gap: 0.45rem;\n font-size: 0.78rem;\n}\n\n.opt input[type='checkbox'] {\n accent-color: var(--ifm-color-primary);","is_error":false}]},"uuid":"030d8881-5cc7-4f29-a2c9-7209cf215bd1","timestamp":"2026-07-28T09:54:38.057Z","toolUseResult":{"stdout":"}\n\n[data-theme=\"light\"] .withings {\n background: black;\n padding: 17px 10px 10px 10px;\n display: inline;\n border-radius: 10px;\n}\n\n.withings svg {\n width: 150px;\n}\n\n[data-theme=\"light\"] .withings svg path {\n fill: white;\n}\n\n[data-theme=\"dark\"] .withings svg path {\n fill: black;\n}\n\n/* Fonts */\n\n/* VictorMono.ttf is the Mono patched Nerd Font variant (VictorMono NFM), not\n the plain one. Both patch the same 11,658 codepoints at the same advance,\n so nothing about the grid changes - but the plain variant leaves an icon's\n ink at its natural width while still advancing one cell, and Nerd Font\n icons are far wider than a cell: U+F07B (folder) inks 1.693 cells, U+F120\n (terminal) 1.903. That ink runs over whatever follows the icon, which in\n the theme gallery is the space each segment template writes after it. The\n Mono variant scales every icon to exactly one cell. Keep this variant when\n versioning the font up. */\n@font-face {\n font-family: \"Victor Mono\";\n src: url('/fonts/VictorMono.ttf') format(\"truetype\");\n font-display: swap;\n}\n\n:root {\n --ifm-font-family-monospace: \"Victor Mono\", \"Symbols Nerd Font Mono\",\n \"Symbols Nerd Font\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n=== catalog styles (conventions) ===\n.cat {\n display: grid;\n grid-template-columns: 13.5rem 1fr;\n}\n\n.facets {\n border-right: 1px solid var(--ifm-color-emphasis-200);\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.grp {\n border: 0;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 0.35rem;\n}\n\n.lbl {\n padding: 0;\n font-family: var(--ifm-font-family-monospace);\n font-size: 0.62rem;\n letter-spacing: 0.15em;\n text-transform: uppercase;\n color: var(--ifm-color-emphasis-600);\n}\n\n.opt {\n display: flex;\n align-items: center;\n gap: 0.45rem;\n font-size: 0.78rem;\n}\n\n.opt input[type='checkbox'] {\n accent-color: var(--ifm-color-primary);","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"5a18e3ac-d7d6-4128-a36c-bd668d5e9291","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"030d8881-5cc7-4f29-a2c9-7209cf215bd1","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUFeZDwB8zA5fT9U3orr","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"I've identified the design conventions I'm working with: CSS modules with concise class names, Infima emphasis variables for styling borders and text, monospace font handling, rem-based sizing with smaller font scales, flexbox and grid layouts using gap properties, custom card surface tokens, and accent colors for form inputs. The WebAssembly entry point takes columns, cell width, line height, and a function parameter.\n\nNow I'm realizing the studio needs to pass font metrics like ascent, descent, and family to the wasm module, and those values should come from the same source that `export_themes.mjs` uses. The problem is that `export_themes.mjs` is a Node script with file system imports, so it can't run in the browser directly. I need to extract the `VICTOR_MONO` metrics into a separate browser-safe module that both the Node build script and the studio can import, keeping a single source of truth. For the build pipeline, I'm setting up an npm script that compiles the Go WebAssembly code with the appropriate environment variables and copies the runtime support file to the static directory.\n\nI need to check how the CI pipeline currently runs the themes generation step, then wire up the wasm build the same way. The studio component also needs to guard against server-side rendering with a browser check and lazy-load the wasm module in an effect.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2332,"cache_read_input_tokens":604420,"output_tokens":1028,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2332,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1028,"cache_read_input_tokens":604420,"cache_creation_input_tokens":2332,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2332},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUFeQuNMpzRWTQMNekiL","type":"assistant","uuid":"5e95a800-39c8-4ca5-8e92-16f957f05a74","timestamp":"2026-07-28T09:54:54.189Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"5e95a800-39c8-4ca5-8e92-16f957f05a74","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUFeZDwB8zA5fT9U3orr","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_019VneKwkHCjbBrjir3Cf6cB","name":"Bash","input":{"command":"grep -n -A12 \"name: Build\\|run: npm\" .github/workflows/docs.yml | head -25; echo \"=== scripts ===\"; python -c \"\nimport json,io\nprint(json.load(io.open('website/package.json',encoding='utf-8'))['scripts'])\n\" 2>/dev/null || grep -A12 '\\\"scripts\\\"' website/package.json","description":"Check how CI builds the site"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":2332,"cache_read_input_tokens":604420,"output_tokens":1028,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":2332,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":1028,"cache_read_input_tokens":604420,"cache_creation_input_tokens":2332,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":2332},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUFeQuNMpzRWTQMNekiL","type":"assistant","uuid":"079fca0c-458c-49d2-b2f2-f48f2bc08904","timestamp":"2026-07-28T09:54:54.732Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"079fca0c-458c-49d2-b2f2-f48f2bc08904","isSidechain":false,"promptId":"e17263bb-a81b-47f1-8ff8-cb8c7bd6e017","type":"user","message":{"role":"user","content":[{"type":"tool_result","content":"Exit code 2\ngrep: .github/workflows/docs.yml: No such file or directory\n=== scripts ===\ngrep: website/package.json: No such file or directory","is_error":true,"tool_use_id":"toolu_019VneKwkHCjbBrjir3Cf6cB"}]},"uuid":"f3f79fff-b59d-4753-9b66-260677e40eb4","timestamp":"2026-07-28T09:54:59.364Z","toolUseResult":"Error: Exit code 2\ngrep: .github/workflows/docs.yml: No such file or directory\n=== scripts ===\ngrep: website/package.json: No such file or directory","sourceToolAssistantUUID":"079fca0c-458c-49d2-b2f2-f48f2bc08904","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"f3f79fff-b59d-4753-9b66-260677e40eb4","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUFg6c6K6m8pTUqFFUrk","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01RggkHXRPrke8tgYRtVsTiH","name":"Bash","input":{"command":"cd /d/oh-my-posh && grep -n -B2 -A10 \"app_location\" .github/workflows/docs.yml | head -30; echo \"=== scripts ===\"; grep -A12 '\"scripts\"' website/package.json | head -14","description":"Check CI build steps and npm scripts"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":1092,"cache_read_input_tokens":606752,"output_tokens":160,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":1092,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":160,"cache_read_input_tokens":606752,"cache_creation_input_tokens":1092,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1092},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUFfyoKe4oZGqaN7vvu5","type":"assistant","uuid":"fa2a44cd-32a4-41bb-b80e-ccb164329788","timestamp":"2026-07-28T09:55:03.931Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"fa2a44cd-32a4-41bb-b80e-ccb164329788","isSidechain":false,"promptId":"e17263bb-a81b-47f1-8ff8-cb8c7bd6e017","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01RggkHXRPrke8tgYRtVsTiH","type":"tool_result","content":"54- ###### Repository/Build Configurations - These values can be configured to match your app requirements. ######\n55- # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig\n56: app_location: \"/website\" # App source code path\n57- api_location: \"/website/api\" # Api source code path - optional\n58- output_location: \"build\" # Built app content directory - optional\n=== scripts ===\n \"scripts\": {\n \"start\": \"cross-env NODE_ENV=development docusaurus start --poll 1000\",\n \"build\": \"docusaurus build\",\n \"serve\": \"docusaurus serve\",\n \"themes\": \"node export_themes.mjs\",\n \"clear\": \"docusaurus clear\"\n },\n \"dependencies\": {\n \"@docusaurus/core\": \"^3.10.2\",\n \"@docusaurus/preset-classic\": \"^3.10.2\",\n \"@docusaurus/theme-search-algolia\": \"^3.10.2\",\n \"@mdx-js/react\": \"^3.1.1\",\n \"classnames\": \"^2.5.1\",","is_error":false}]},"uuid":"6070f10b-0c02-46b4-8ccc-98acf3d59e9e","timestamp":"2026-07-28T09:55:04.926Z","toolUseResult":{"stdout":"54- ###### Repository/Build Configurations - These values can be configured to match your app requirements. ######\n55- # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig\n56: app_location: \"/website\" # App source code path\n57- api_location: \"/website/api\" # Api source code path - optional\n58- output_location: \"build\" # Built app content directory - optional\n=== scripts ===\n \"scripts\": {\n \"start\": \"cross-env NODE_ENV=development docusaurus start --poll 1000\",\n \"build\": \"docusaurus build\",\n \"serve\": \"docusaurus serve\",\n \"themes\": \"node export_themes.mjs\",\n \"clear\": \"docusaurus clear\"\n },\n \"dependencies\": {\n \"@docusaurus/core\": \"^3.10.2\",\n \"@docusaurus/preset-classic\": \"^3.10.2\",\n \"@docusaurus/theme-search-algolia\": \"^3.10.2\",\n \"@mdx-js/react\": \"^3.1.1\",\n \"classnames\": \"^2.5.1\",","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"fa2a44cd-32a4-41bb-b80e-ccb164329788","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"6070f10b-0c02-46b4-8ccc-98acf3d59e9e","isSidechain":false,"attachment":{"type":"task_reminder","content":[],"itemCount":0},"type":"attachment","uuid":"85133f90-7fea-4a3a-8235-d259f73c365a","timestamp":"2026-07-28T09:55:04.933Z","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"85133f90-7fea-4a3a-8235-d259f73c365a","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUFgXXnhSc6QrVTedK9o","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_018igWLheSBe6dgWV2GDZvzL","name":"Bash","input":{"command":"sed -n '25,55p' .github/workflows/docs.yml","description":"See the CI steps before deploy"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":659,"cache_read_input_tokens":607844,"output_tokens":111,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":659,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":1,"output_tokens":111,"cache_read_input_tokens":607844,"cache_creation_input_tokens":659,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":659},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUFgPgknAzXvQE9wEoVj","type":"assistant","uuid":"1d0eccb7-ebac-4dd7-8e0a-314097e6b64e","timestamp":"2026-07-28T09:55:09.581Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"1d0eccb7-ebac-4dd7-8e0a-314097e6b64e","isSidechain":false,"promptId":"e17263bb-a81b-47f1-8ff8-cb8c7bd6e017","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_018igWLheSBe6dgWV2GDZvzL","type":"tool_result","content":" uses: ./.github/workflows/composite/bootstrap-go\n - name: Setup Node.js\n uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020\n with:\n node-version: 20.9.0\n - name: Build oh-my-posh 🔧\n run: |\n cd src\n go build -o ./bin/oh-my-posh\n cd ..\n - name: Render themes 🎨\n run: |\n export PATH=\"$PWD/src/bin:$PATH\"\n cd website\n npm install\n npm run themes\n cd ..\n - name: Copy schema for MCP validator 📋\n run: |\n mkdir -p website/api/data\n cp themes/schema.json website/api/data/schema.json\n echo \"✅ Copied schema.json to website/api/data/\"\n - name: Build Docs And Deploy 🚀\n id: builddeploy\n uses: Azure/static-web-apps-deploy@1a947af9992250f3bc2e68ad0754c0b0c11566c9\n with:\n azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_ASHY_MEADOW_063E9BA03 }}\n repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for GitHub integrations (i.e. PR comments)\n action: \"upload\"\n ###### Repository/Build Configurations - These values can be configured to match your app requirements. ######\n # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig","is_error":false}]},"uuid":"e06a41b1-567a-4577-a1ed-7e1c44d2e1b2","timestamp":"2026-07-28T09:55:10.400Z","toolUseResult":{"stdout":" uses: ./.github/workflows/composite/bootstrap-go\n - name: Setup Node.js\n uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020\n with:\n node-version: 20.9.0\n - name: Build oh-my-posh 🔧\n run: |\n cd src\n go build -o ./bin/oh-my-posh\n cd ..\n - name: Render themes 🎨\n run: |\n export PATH=\"$PWD/src/bin:$PATH\"\n cd website\n npm install\n npm run themes\n cd ..\n - name: Copy schema for MCP validator 📋\n run: |\n mkdir -p website/api/data\n cp themes/schema.json website/api/data/schema.json\n echo \"✅ Copied schema.json to website/api/data/\"\n - name: Build Docs And Deploy 🚀\n id: builddeploy\n uses: Azure/static-web-apps-deploy@1a947af9992250f3bc2e68ad0754c0b0c11566c9\n with:\n azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_ASHY_MEADOW_063E9BA03 }}\n repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for GitHub integrations (i.e. PR comments)\n action: \"upload\"\n ###### Repository/Build Configurations - These values can be configured to match your app requirements. ######\n # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"1d0eccb7-ebac-4dd7-8e0a-314097e6b64e","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"e06a41b1-567a-4577-a1ed-7e1c44d2e1b2","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUFgxoZpboKZZ7R6C8au","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The CI pipeline already has Go bootstrapped and builds oh-my-posh, so adding a `npm run wasm` step alongside the existing `npm run themes` command fits naturally into the workflow. For the editor, I'm going with a plain textarea styled to match the site's monospace font rather than pulling in a heavier library like CodeMirror.\n\nThe layout will be a two-pane design with the editor on the left and live preview on the right, stacking vertically on mobile using the same grid pattern as SegmentCatalog. I'll lazy-load the wasm module dynamically in a useEffect hook only on the `/studio` route and show a loading state that indicates the size, since 29MB is a significant wait. The font metrics will be extracted from the theme export script into a shared browser-safe module so both the editor and preview use the same source of truth. For segment data, I'll import it directly from the static JSON file since webpack will bundle it and it's small enough. The debounce on rendering will be around 150-250ms after typing to keep the preview responsive without overwhelming the wasm module.\n\nFor error handling, I'll display any parsing errors inline without clearing the last valid preview. Theme presets will start with a sensible default config embedded directly in the component rather than trying to fetch from GitHub at runtime, and I can add a theme loader dropdown later if needed. Dark and light mode support is next to figure out.","signature":"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"}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":663,"cache_read_input_tokens":608503,"output_tokens":3866,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":663,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":3866,"cache_read_input_tokens":608503,"cache_creation_input_tokens":663,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":663},"type":"message"}],"speed":"standard"},"diagnostics":null},"requestId":"req_011CdUFgojcYMFRNx1TXzcD4","type":"assistant","uuid":"22f3bf60-d772-4544-8292-28501210fd54","timestamp":"2026-07-28T09:55:30.301Z","effort":"high","userType":"external","entrypoint":"claude-desktop","cwd":"D:\\oh-my-posh","sessionId":"b72324bb-e53d-4d21-a232-8886bcf4cc77","version":"2.1.219","gitBranch":"themes-svg"} +{"parentUuid":"22f3bf60-d772-4544-8292-28501210fd54","isSidechain":false,"message":{"model":"claude-opus-5","id":"msg_011CdUFgxoZpboKZZ7R6C8au","type":"message","role":"assistant","content":[{"type":"text","text":"I have what I need. Design decisions I'm fixing before delegating:\n\n- **Plain styled `