You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f2d4336
Browse filesBrowse the repository at this point in the historyBrowse files
Merge branch 'vps2/n2-viewstates-durability' (f3ca33b) into #2235
Real merge, not a fast-forward: merge base is main e943530, with 28 commits on this side and 18 on
theirs. Five shared paths had to be decided (ProviderSettingsManager.spec.ts, importExport.ts and
importExport.spec.ts are byte-identical across the two heads and git resolved them without a decision);
ClineProvider.spec.ts auto-merged and carries 378 declarations against the 375 floor this branch pins.
Resolutions, taken from the stage-2 (ours) and stage-3 (theirs) blobs only. This chain's stage-1
recursive base is itself polluted with conflict markers, so it was never consulted as a base.
- packages/types/src/vscode-extension-host.ts: both sides added the same two union members
("diagnosticsRequest" and "viewStateClaim") in opposite order. Kept this side's order. No content
change; five viewStateClaim references and one diagnosticsRequest remain, one copy each.
- src/core/config/ContextProxy.ts: union. resetAllState now both advances every stateWriteGenerations
entry, which is what this side's rejected-write continuations gate on, and clears
stateWriteOwner/secretWriteOwner, which is what their side needs for the case where the mocked
Memento answers the post-reset read-back with the pre-reset value. Both guards are additive on the
same reset path; neither replaces the other.
- src/core/config/__tests__/ContextProxy.spec.ts: took their version of the pending-write test, which
adds the mocked Memento read-back that makes the guarantee observable, plus their new
does-not-restore-a-pre-reset-secret test. 79 -> 81 declarations, no test title lost from either side.
- src/core/webview/ClineProvider.ts: nine regions. Their side's activation group now owns the mirror,
and it writes { currentApiConfigName: name, apiConfiguration: providerSettings } into this view's
buffer at ClineProvider.ts:2889-2892. Their non-activating branch refreshes the pinned self overlay
and then the siblings, and refreshSiblingsAfterProfileSave is adopted whole (2879-2903): an
overlay-mirror loop over ClineProvider.getAllInstances() for live siblings pinned to the profile,
then the name/id strip and updateTaskApiHandlerIfNeeded(taskSettings, { forceRebuild: true }) for
instances whose current task follows the profile. This side kept its own post-activation self refresh
and the ordering comment it exists for - a failed activation group must not leave the overlay ahead
of the restored shared state - and kept savePersistedViewState returning whether storage landed,
because this side's rollback path consumes that boolean.
What the merge carries and what it does not: the activation-success mirror for the saving view now
names both keys; the two sibling loops mirror apiConfiguration only and nothing in them writes
currentApiConfigName, so sibling-level pin mirroring still exists on no head in this series.
Whether that answers the open reviewer row about the activation mirror is a question for the merged
head, not for this paragraph.
Two defects the merge introduced that only the compiler caught, both of the lost-chunk class:
- ClineProvider.ts held two identical `type PersistedViewStateValues = Pick<...>` aliases, one from
each side, which is TS2300 twice. Removed the undocumented copy and kept the documented one.
- The constructor lost its `this.viewId = ${renderContext}-${ClineProvider.nextViewId++}` and
`this.viewStateId = this.viewId` assignments: git matched them into a hunk whose incoming side was
empty, so the merged file declared both properties and assigned neither, which is TS2564 twice.
Restored from the incoming side's text. Line 941's TS18048 (Object possibly undefined) went away with
them, which is how I know they were the cause and not a symptom.
Gates: the compile job's thirteen commands in the job's own order, against exactly this tree.
format:check 0 (prettier --check ., "All matched files use Prettier code style!"), lint 0 (12 tasks),
check-types 0 (11 tasks / 13 packages), test:code-qa-ci 0, solheim-smoke:check-types 0,
test:agent-evals:unit 0 (48 tests), agent-evals:check-types 0, lifecycle:model-check 0,
webview-recovery:check-types + model-check 0, mcp:integration-check 0. The two solheim runtime steps
fail on this machine and for platform reasons only: test:solheim-smoke-ci fails its
record.test-helper.sh SIGTERM teardown cases and test:solheim-smoke:unit asserts the POSIX literal
'/tmp/isolated/.config' against buildChildEnvironment's win32 output
'\tmp\isolated\.config' (config.test.ts:54). All 17 files under scripts/solheim-smoke and the workflow
self-test are blob-identical to main here, the merge touched nothing under scripts/, and both failures
reproduce identically on the unrelated #1552 and #1557 heads, so CI on ubuntu-latest is not being asked
to accept something this merge broke.
Line endings were checked before reading any local format result: core.autocrlf=false, core.eol=lf, and
the merged and incoming blobs of ClineProvider.ts, ContextProxy.ts, ClineProvider.spec.ts and
webview-ui/tsconfig.json all contain zero CRLF pairs, so a local format red here would have been a real
defect rather than a working-copy artifact - and it is green.
eslint --prune-suppressions over all seven merged files: clean, and src/eslint-suppressions.json is
count-neutral (3301 before, 3301 after) so it was reverted rather than committed.
No .changeset files and no CHANGELOG change, per repository policy.
0 commit comments