kimi-code/packages/protocol/src
7Sageer 47cd55b731 feat: multi-instance session lease, write fencing, and fs/watch reliability
Single-instance reliability:
- Journal: preserve content on write failure with sticky JournalStorageError,
  per-batch fsync, last-header open, and zero-write cold reads
- Broadcaster: writeFailure gate, deterministic dispose drain, replay failure
  now triggers resync_required; graceful close ordering in start.ts
- fswatch: per-connection monotonic seq, pinned truncated semantics, and
  gitignore double-cache invalidation; __global__ session made volatile

Cross-process lock unification:
- agent-core-v2 CrossProcessLockService: parameterized lock modes
  (heartbeat-TTL implemented), token-guarded release/update, rename-isolated
  stale takeover, creation window, PID-reuse detection (conservative on macOS)
- config.toml and workspace registry locked read-modify-write; mcp.json watch
- kap-server lock protocol aligned (lock_id, process_started_at, three-layer
  stale detection); minidb release ownership fixed, legacy cleanup removed

Multi-instance session ownership (gated by multi_server flag):
- Session leases with write fencing; 40921 SESSION_HELD_BY_PEER with typed
  details (routable/creating/holder-unresponsive/held-by-local-instance) and
  unregistered-writer detection; write-authority registry hard gate in
  AppendLogStore, session metadata, and flush paths
- kimi-web redirect to the holder with pending approvals/questions replay;
  klient transparent redirect with loop guard
- session.list_changed cross-instance discovery via two-layer fs watch;
  ownership field on GET /sessions

Stale-write fencing and skill hot reload:
- Session file ledger + agent file fencing: hard gate with the flag on,
  advisory note with it off; dirty-tick signals from fs watch
- Skill root watcher hot reload: catalog reload, turn-boundary listing
  reminder, and skill_catalog.changed volatile event to web clients
2026-07-22 20:08:21 +08:00
..
__tests__ feat: multi-instance session lease, write fencing, and fs/watch reliability 2026-07-22 20:08:21 +08:00
rest feat: multi-instance session lease, write fencing, and fs/watch reliability 2026-07-22 20:08:21 +08:00
approval.ts feat(protocol): extract shared protocol package from agent-core (#612) 2026-06-10 14:03:38 +08:00
asyncapi.ts feat(web): introduce Kimi web app and daemon gateway (#625) 2026-06-17 20:53:46 +08:00
display.ts feat(v2): land agent-core-v2 engine and kap-server behind experimental flag (#1441) 2026-07-12 21:44:04 +08:00
envelope.ts feat: multi-instance session lease, write fencing, and fs/watch reliability 2026-07-22 20:08:21 +08:00
error-codes.ts feat: multi-instance session lease, write fencing, and fs/watch reliability 2026-07-22 20:08:21 +08:00
events.ts feat: multi-instance session lease, write fencing, and fs/watch reliability 2026-07-22 20:08:21 +08:00
file.ts feat(protocol): extract shared protocol package from agent-core (#612) 2026-06-10 14:03:38 +08:00
fs.ts feat: multi-instance session lease, write fencing, and fs/watch reliability 2026-07-22 20:08:21 +08:00
index.ts feat: multi-instance session lease, write fencing, and fs/watch reliability 2026-07-22 20:08:21 +08:00
message.ts feat(web): introduce Kimi web app and daemon gateway (#625) 2026-06-17 20:53:46 +08:00
modelCatalog.ts refactor!: overhaul thinking config and effort resolution (#1132) 2026-06-30 22:34:13 +08:00
pagination.ts feat(protocol): extract shared protocol package from agent-core (#612) 2026-06-10 14:03:38 +08:00
question.ts fix(web): stop auto-dismissing pending questions and approvals on a timeout (#1070) 2026-06-24 19:15:06 +08:00
request-id.ts feat(protocol): extract shared protocol package from agent-core (#612) 2026-06-10 14:03:38 +08:00
session-ownership.ts feat: multi-instance session lease, write fencing, and fs/watch reliability 2026-07-22 20:08:21 +08:00
session.ts feat: multi-instance session lease, write fencing, and fs/watch reliability 2026-07-22 20:08:21 +08:00
skill.ts feat(web): introduce Kimi web app and daemon gateway (#625) 2026-06-17 20:53:46 +08:00
task.ts feat(v2): land agent-core-v2 engine and kap-server behind experimental flag (#1441) 2026-07-12 21:44:04 +08:00
time.ts feat(protocol): extract shared protocol package from agent-core (#612) 2026-06-10 14:03:38 +08:00
tool.ts feat(kap-server): expose per-tool active state in GET /api/v1/tools (#2005) 2026-07-21 19:23:15 +08:00
workspace.ts refactor: remove git detection from workspace wire and folder browse (#1787) 2026-07-16 21:05:19 +08:00
ws-control.ts feat: multi-instance session lease, write fencing, and fs/watch reliability 2026-07-22 20:08:21 +08:00