Extract `disposeAllInstancesAfterProviderAuthCallback` into a dedicated
module and invoke it from the provider OAuth callback handler instead of
coupling it to the ProviderAuth layer. This removes the InstanceStore
dependency from `ProviderAuth.layer`.
Additional changes:
- Add `--cloud-fork` CLI option to the run command for fetching sessions
from cloud and continuing locally
- Replace the Zod-bridged `Schema.Any` indexing config with a native
Effect `IndexingSchema` definition in kilo-indexing, propagating typed
config through the SDK OpenAPI spec
- Use `optionalOmitUndefined` for `recommendedIndex` to emit clean JSON
- Fix `request.source.signal` access by guarding with `instanceof Request`
- Replace `Effect.catchAllCause` with `Effect.catchCause` in telemetry
- Migrate tests from `BashTool` to `ShellTool`, extract `TestConfig`
fixture, and convert stats-subagent-cost tests to use `testEffect`
- Reorder SDK event union members to match updated OpenAPI schema
- Export `aggregateSessionStats` for Kilo regression test coverage
- Widen `setViewedSessions` input to accept readonly arrays
Picks up expanded blocking of exploitable git config keys (core.fsmonitor,
--template, merge-related) and GIT_CONFIG_COUNT env var. No breaking API
changes for our usage — the only removed export (ParsedVulnerabilities)
is not referenced anywhere in the repo.
* feat: support Kilo-hosted indexing embeddings
* fix: format indexing settings
* fix: serialize local model persistence
* fix: annotate local model persistence
* fix: stabilize MCP OAuth browser test
* fix: annotate MCP OAuth test wait
* fix: keep KiloProvider under line cap
* fix: align Kilo indexing auth defaults
* fix(vscode): add missing indexing translations
* feat(indexing): fetch Kilo embedding model catalog
* fix(indexing): align Kilo embedding metadata fallback
* fix(gateway): remove unused indexing dependency
* fix(indexing): keep fallback catalog webview safe
* fix(agent-manager): include embedding model provider
* fix(vscode): provide embedding models in stories
* refactor(indexing): rely on Cloud embedding catalog
* fix(indexing): hydrate Kilo model metadata from Cloud
* fix(indexing): clear model when switching provider
* fix(ui): correct diff line numbers by padding hunks to their real file positions
When reconstructing before/after content from patches, hunks starting
at lines other than 1 were rendered starting at line 1. Pad blank lines
before each hunk so content aligns with actual file line numbers. Also
add hunkSeparators="simple" prop across all diff viewer instances and
guard against undefined patch parse results.
* refactor(diff): replace content reconstruction with Pierre's native FileDiffMetadata rendering
Migrate all diff viewers from manually reconstructing before/after strings
to passing FileDiffMetadata directly to Pierre's renderer. This ensures
hunk headers are the source of truth for line numbers without requiring
blank-line padding.
Key changes:
- Rename `contents()` to `normalize()` and return FileDiffMetadata
alongside before/after text for legacy consumers
- Introduce discriminated union DiffProps (DiffPair | DiffPatch) so
components accept either before/after or a pre-parsed fileDiff
- Thread `patch` field through openDiff payloads and DiffVirtualProvider
- Update DiffVirtualApp, PermissionDiff, and message-part to use the
new `normalize()` API and render via fileDiff prop
- Add test coverage verifying hunk start lines are preserved without
padding
BREAKING CHANGE: `contents()` export from session-diff is removed; consumers must migrate to `normalize()`
* fix(diff): normalize trailing newline in text() helper output
* refactor(ui): remove before/after fields from diff payload interfaces
The diff pipeline now relies exclusively on patch strings for rendering
and opening diffs. This eliminates the redundant before/after content
fields from DiffVirtualFile, PermissionFileDiff, OpenDiffFn, and
ApplyPatchFile interfaces across all packages.
- Drop before/after from all diff-related type definitions
- Simplify normalize() call sites to require only patch presence
- Make DiffText type private (no longer exported from session-diff)
- Update edit tool to render from tool input during pending state
- Fix DiffVirtualApp to nest markdown view inside patch guard
- Adjust contract tests to match new fallback behavior
* fix(kilo-ui): Move session-diff normalization logic into kilo-ui package
* refactor(ui): decouple DiffProps type hierarchy between shared and kilo-ui packages
Simplify the shared ui package's DiffProps back to a single concrete
type requiring before/after contents, and relocate the discriminated
union (DiffPair | DiffPatch with optional FileDiffMetadata) into the
kilo-ui package where patch-based rendering is actually needed.
- Revert shared DiffProps to a flat type without fileDiff variant
- Define extended DiffProps union in kilo-ui/src/pierre/index.ts
- Update kilo-ui diff components to import from local pierre module
- Expand OpenDiffFn signature with optional before/after fields
Auto-merge from v1.14.33 produced duplicate "rotating-file-stream" entries in packages/core/package.json (both kilo-main and upstream added the same dependency in the same release window). bun install fails fast on duplicate keys, breaking CI setup. Drop the redundant entry and refresh bun.lock.
Swap jschardet for the actively-maintained chardet library for text
encoding detection. chardet ships with TypeScript definitions, so the
local jschardet module shim is no longer needed.