The forge subsystem page gains the overview and viewed mark types and
contracts, and the generated Cordis, configuration, and event catalogs
follow the new service methods and the maxViewedFiles option.
`typescript/no-confusing-void-expression` rejects the shorthand arrow that
returns `rmSync`'s void expression; the staged lint configuration does not
enable type-aware rules, so only the full lint gate caught it.
The Windows coverage lane provisions the locked Electron binary through the
runner proxy. A gateway timeout on that one fetch failed the required lane
before any test ran: on 2026-11-09 four jobs on three branches stopped at
`504 (Gateway Time-out)` for the release archive, while other jobs fetched the
same archive minutes later (2.5 s from a warm cache, 14.7 s cold).
`electron-install` now declares two retries with a 15 s wait, and the
aggregate executor repeats a failed gate only when it declares `retries`. A
gate the fail-fast signal terminated is not repeated, and the returned
duration covers every attempt.
The forge subsystem page documents ctx.forge.writeReview, its write
and result types, and the panel's changeRequestReviewWrite; the package
READMEs describe the GitHub mutations and their measured behavior, the
thread actions, and the pending review flow. A new Agent Note records
moving pull request comment drafts to the code host's pending review,
and the forge panel note links it. The Web e2e replies to, edits,
deletes, and resolves threads, and starts, submits, and discards a
pending review through the scripted gh double.
The forge subsystem page documents ctx.forge.readReview, its thread
types, and the panel's changeRequestReview cache; the package READMEs
describe the GitHub thread mapping, the overlay and thread list, and the
new panel Config fields. An upgrade guide covers the unsupported
ForgeFailure code. The Web e2e overlays scripted threads, opens them from
the thread list, and sends a quoted thread through a replayed turn.
The changes view gains a lens of All, Interface, Implementation, and Tests
that spans the file tree above it, a switch that hides test files from the
tree and the diff, and a viewed checkbox on each file header that collapses
the file. The toolbar counts viewed files and V toggles the file being read.
Marks are kept per Session, source, path, and change digest in browser
storage, so a file that changes again reads as changed since viewed. All
commits beside Submit review, and beside the base branch of the Branch scope,
shows one commit or a Shift run of commits.
Port the existing Windows CUA implementation from feat/cua-windows in deepseek-harness2 to the current branch, with adapters for the current app/window interfaces and Windows-only bundle activation. Retain the native Shell/UWP implementation for later interface work.
dsh-llm depends on dsh-attachment and dsh-typert-protocol, so classes in
those packages could not extend a base defined in dsh-llm without a
project-reference cycle. HarnessError now lives in @deepseek-ai/dsh-error,
which has no dependencies; dsh-llm declares it as a peer and re-exports
the same class, so existing imports and instanceof checks keep working.
The Agent Note records why the original leaf-package placement no longer
holds.
Refs #7869