Repository navigation
Conversation
Reverse the temporary rollback and restore the exact tree from 6c2c5a2. The following commit reapplies the Whiteboard 0.2.1 version fields. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: ab10ae26-42f2-4ecd-86d0-79f5a9edecf0
Carry forward the production release version in product.json and the two package manifests after restoring the original diffr import snapshot. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: ab10ae26-42f2-4ecd-86d0-79f5a9edecf0
Benchmark query compilation, full core/shape processing, and isolated context shaping with Criterion and bundled PR998 inputs. Document timing boundaries and plugin rebuild requirements. Imported from devdotfast/diffr#103. AI-assisted: OpenAI Codex. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
A leaf's new `pair` field names the leaf on the other side with the same `alignment_id`, and is absent for an added or deleted leaf. Projection sets it as it numbers leaves, and a cut names each new tail's partner. diffr-ts and the TUI's wire schema accept the field. AI-assisted: developed with Claude Code. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
`has_changes`, `is_one_sided` and change coverage asked whether a leaf is paired by collecting every alignment id on the other side, once per call. `paired_leaf` searched the other side for the matching leaf. They now read the leaf's `pair`. Test fixtures name pairs from their alignment ids. AI-assisted: developed with Claude Code. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
Every lookup by id searched both trees. The cursor now keeps each region's side, parent and path from its side's root, so a lookup is a probe and a descent. `cut` and `join` rewrite the entries of the regions they move. The sides become private so nothing else can move a region; the plugin host takes them back with `into_sides`. No behavior change. AI-assisted: developed with Claude Code. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
`linked_regions`, `set_collapsed` and `link` walked both trees to find the regions in a fold state. The cursor now keeps the regions of each fold state, and `cut`, `join` and `link` update it. AI-assisted: developed with Claude Code. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
`startup/one_file` compiles the default queries, then diffs and projects one fixture: what a run pays before its first result. AI-assisted: developed with Claude Code. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
Startup compiled the fold and context queries of every language before diffing the first file. `Params` now keeps each language's assembled sources and compiles them the first time that language is diffed. A query that does not compile no longer fails the run at startup. It fails each file in its language with a `query_error`; files in other languages diff as usual. Reading query files and resolving their imports still happens at startup. AI-assisted: developed with Claude Code. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
Bun 1.3.10 on Linux reads process.ppid once and never again. The TUI's watchdog compares it with the parent it started under, so a released Linux TUI keeps running after its launcher is killed without a hangup. Bun 1.3.14 reads it each time. The Bun type declarations move to 1.3.14 to match. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
diffr pprint renders saved NDJSON for people and agents. The script only reproduced the TUI's rows as text, nothing ran it, and it reached into the TUI's internals. mock_gemini.py served only its wrapper. Agent-Session: 01a118c6-60a6-7373-bad2-7f763da2c3c2 Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: ab10ae26-42f2-4ecd-86d0-79f5a9edecf0 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
palette.ts holds the palette, Helix theme mapping and theme config with no Bun.TOML or node:fs, and events.ts parses NDJSON text with stream.ts left to decode bytes. The model layer can then be bundled outside Bun. The bundled dark and light palettes move to theme.ts with the rest of theme loading. Agent-Session: 01a118c6-60a6-7373-bad2-7f763da2c3c2 Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: ab10ae26-42f2-4ecd-86d0-79f5a9edecf0 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
…its rail (AI-assisted) A collapsed fold's chevron and label arm it, so its chevron takes the accent as an open scope's does. A syntax body folded behind a multi-line summary keeps its chevron on the opener, stands the summary beside the scope's own rail, and boxes its brackets while armed, as the Whiteboard client does. Label lines name their fold with labelOf, so clicking the summary opens it. Agent-Session: 01a118c6-60a6-7373-bad2-7f763da2c3c2 Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: ab10ae26-42f2-4ecd-86d0-79f5a9edecf0 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
The TUI moves from tui/ to packages/tui, with Hunk's packages/hunk/src flattened to src. xtask, the release archives and their smoke test, NOTICE and the diffr-ts fixture path follow. Release archives keep mirroring the repository's license paths, as NOTICE cites them. No code changes. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: ab10ae26-42f2-4ecd-86d0-79f5a9edecf0 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
Theme parsing then runs anywhere, not only under Bun, so the code can be shared with frontends that do not run on Bun. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: ab10ae26-42f2-4ecd-86d0-79f5a9edecf0 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
packages/viewer holds what does not depend on OpenTUI, one folder per domain: protocol (diffr's wire format, events and store), document (regions, rows, the file tree and selection), viewport (row geometry), terminal (text measurement and sanitizing) and theme (the palette, Helix theme loading and the themes). It type-checks against ES2023 plus the few web APIs every host has, so nothing Bun-, Node- or DOM-only creeps in. packages/ becomes a Bun workspace with one lockfile, and xtask installs at its root. Code moves unchanged apart from imports; the row and span types join rows.ts, and the regions tests' file builders join fixture.ts. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: ab10ae26-42f2-4ecd-86d0-79f5a9edecf0 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
planCell lays one side of a code row out as coloured runs, with the cells a click folds or opens and the scope the pointer focuses. CodeRowView draws the runs and routes OpenTUI's mouse through those targets. No behaviour change. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: ab10ae26-42f2-4ecd-86d0-79f5a9edecf0 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
…ted) On a collapsed fold's label line, the pointer over an enclosing scope's rail arms that scope, but a click opened the label's fold instead. A click now picks the same target as the pointer. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: ab10ae26-42f2-4ecd-86d0-79f5a9edecf0 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
Viewer holds open files and folds, the reader's position, layout mode, wrap, theme, pan, the scope under the pointer, and the fold and navigation keys. It lays out the diff column at a given size and notifies on change, so App reads it through useSyncExternalStore. App keeps its file tree, menus, selection and breakdown. No behaviour change. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: ab10ae26-42f2-4ecd-86d0-79f5a9edecf0 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
The mod runs diffr and draws @diffr/viewer's rows, folds and keys in a Claude Code pane, with its own file tree and title bar. Clicks, hovers, drags and keys reach it through Client surface modules; each post resends the inputs not yet acknowledged, since a later post replaces an undelivered one. H and L pan by 16 columns, as Claude Code reports shifted letters. build.ts bundles it into plugin/hooks. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: ab10ae26-42f2-4ecd-86d0-79f5a9edecf0 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
Generated by bun run build in diffr/packages/claude-code. Installs read the plugin folder as is, so the bundle is committed. Its NOTICE points to diffr's source and licenses for the code it bundles. /plugin install diffr --marketplace devdotfast/whiteboard Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
A job type-checks and tests the viewer and the TUI, tests the mod, and rebuilds the mod's bundle to check the committed one matches its source. The build pins Bun 1.3.14, as the release workflow does, since another Bun version emits a slightly different bundle. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
It maps a fold's tint to a palette colour, as captureColor maps a syntax capture, so the theme no longer depends on the document. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
…ted) They slice and wrap spans by their text and merge runs whose other fields all match, so they no longer import the document's span type. That removes the last import from a lower folder of @diffr/viewer to a higher one. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
…g (AI-assisted) visibleRows used only the start and end of Hunk's window, whose zero-height rows and spacer sizes never occur in diffr: every measured row is at least one line tall. A binary search for the first row in view and a walk to the bottom replace it. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
…isted) wrapText, wrapTextByWidth, cellRangeToCharRange, fitText, padText, measureWrappedSpansLineCount, formatTerminalPath, RenderSpan.transformFg, and the sanitizer's options for keeping newlines and ANSI colours: only sanitizeTerminalLine's behaviour is used. Their tests go with them. rows.ts also stops re-exporting sourceLines, which callers import from regions.ts. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
counts.ts redeclared the wire's snapshot union as its own Snapshot, which also shadowed the store's unrelated Snapshot. The protocol now exports it as ComparisonEnd, and the store and the comparison label use it. Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 01a11ab9-c68e-7c52-916b-e1b0123e302f
Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 01a11ab9-c68e-7c52-916b-e1b0123e302f Agent-Session: ea85fcc1-e10f-453d-afea-1d46506e7e1e
…e (AI-assisted) Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676 Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf Agent-Session: 01a11ab9-c68e-7c52-916b-e1b0123e302f
Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: 01a11c34-48e4-7ec1-bb72-2c496acb90dc Agent-Session: 01a11c3d-70b4-7df1-be1a-f0e12840fadf Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
sidkmenon
force-pushed
the
codex/diffr-consumer-validation
branch
from
October 8, 2026 18:22
f063f45 to
416b498
Compare
sidkmenon
force-pushed
the
codex/diffr-herdr
branch
from
October 8, 2026 18:22
9d3f848 to
2d80f2e
Compare
sidkmenon
force-pushed
the
codex/diffr-consumer-validation
branch
from
October 8, 2026 18:23
416b498 to
d5d87bd
Compare
Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: 01a11ab9-c68e-7c52-916b-e1b0123e302f Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: 01a11c34-48e4-7ec1-bb72-2c496acb90dc Agent-Session: 01a11c3d-70b4-7df1-be1a-f0e12840fadf Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: 01a11ab9-c68e-7c52-916b-e1b0123e302f Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: 01a11c34-48e4-7ec1-bb72-2c496acb90dc Agent-Session: 01a11c3d-70b4-7df1-be1a-f0e12840fadf Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: 01a11ab9-c68e-7c52-916b-e1b0123e302f Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: 01a11c34-48e4-7ec1-bb72-2c496acb90dc Agent-Session: 01a11c3d-70b4-7df1-be1a-f0e12840fadf Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: 01a11c34-48e4-7ec1-bb72-2c496acb90dc Agent-Session: 01a11c3d-70b4-7df1-be1a-f0e12840fadf Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: 01a11c34-48e4-7ec1-bb72-2c496acb90dc Agent-Session: 01a11c3d-70b4-7df1-be1a-f0e12840fadf Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: 01a11c34-48e4-7ec1-bb72-2c496acb90dc Agent-Session: 01a11c3d-70b4-7df1-be1a-f0e12840fadf Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: 01a11c34-48e4-7ec1-bb72-2c496acb90dc Agent-Session: 01a11c3d-70b4-7df1-be1a-f0e12840fadf Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4 Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: 01a11ab9-c68e-7c52-916b-e1b0123e302f Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: 01a11c34-48e4-7ec1-bb72-2c496acb90dc Agent-Session: 01a11c3d-70b4-7df1-be1a-f0e12840fadf Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: 01a11ab9-c68e-7c52-916b-e1b0123e302f Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: 01a11c34-48e4-7ec1-bb72-2c496acb90dc Agent-Session: 01a11c3d-70b4-7df1-be1a-f0e12840fadf Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: 01a11ab9-c68e-7c52-916b-e1b0123e302f Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: 01a11c34-48e4-7ec1-bb72-2c496acb90dc Agent-Session: 01a11c3d-70b4-7df1-be1a-f0e12840fadf Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1 Agent-Session: 01a11ab9-c68e-7c52-916b-e1b0123e302f Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: 01a11c34-48e4-7ec1-bb72-2c496acb90dc Agent-Session: 01a11c3d-70b4-7df1-be1a-f0e12840fadf Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: 01a11c34-48e4-7ec1-bb72-2c496acb90dc Agent-Session: 01a11c3d-70b4-7df1-be1a-f0e12840fadf Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: 01a11c34-48e4-7ec1-bb72-2c496acb90dc Agent-Session: 01a11c3d-70b4-7df1-be1a-f0e12840fadf Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
sidkmenon
force-pushed
the
codex/diffr-herdr
branch
from
October 8, 2026 19:09
2d80f2e to
e0c04ae
Compare
sidkmenon
force-pushed
the
codex/diffr-consumer-validation
branch
from
October 8, 2026 19:09
d5d87bd to
6f8821f
Compare
Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e Agent-Session: 01a11cf1-8ad4-7910-b120-b0d622692a95
sidkmenon
force-pushed
the
codex/diffr-herdr
branch
from
October 9, 2026 02:11
e0c04ae to
ab12b90
Compare
Contributor
Author
|
Folded into the rebuilt stack: CI moved into each package's PR, the Pi fixes into #1024, and the research doc was dropped. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Document the consumer architecture, differences from Claude, supported public APIs, installation instructions, test evidence, and remaining release work. Extend CI for new consumer typechecks, behavioral tests, Pi build, and OpenCode's Solid-preloaded real-renderer test.
Validation: frozen workspace install; seven package typechecks; 151 regression tests plus one OpenCode renderer test; seven Claude plugin runtime tests; Pi and Claude builds with unchanged checked-in Claude bundles. Real Ghostty coverage and the earlier Herdr run are recorded in
diffr/docs/agent-consumers.md.OpenCode v2 now provides the required native split. Pi uses public overlays but still needs a supported true-split solution. Pi now passes real mouse/Enter/button-to-draft, layout/state, files, and lifecycle checks, including a live two-file Git comparison and nested-overlay cleanup. OpenCode real mouse selection, Add to chat, and divider dragging remain unverified; its automated selection-to-draft test passes. Herdr recipient coverage remains Pi-only. Packages remain private source-workspace integrations pending release work.
Base: #1026.
Stack: #1023 → #1024 → #1025 → #1026 → #1027 (above #1019).