Update after live session issue:

Summary:
- Restored the missing Automator conversation index entry for `cinik-rponse`; the Claude transcript was still present at `/home/dev/.claude/projects/-opt-automator-cinik-rponse/09f84699-1f77-4009-b867-26a75b45f6b2.jsonl`.
- Added a defensive merge in `SaveSessions`: before writing `sessions.json`, it now reloads the current disk state and merges legacy sessions, conversations, and project settings. For duplicate conversations/settings, the newest `updated_at` wins.
- Added the global rule in injected `CLAUDE.md` / `AGENTS.md`: before the last push and before creating/updating a PR, the agent must run `/handoff` and include the `HANDOFF.md` commit.
- Updated `HANDOFF.md` as part of this finalization.
- Deployed the rebuilt `/opt/claude-code/cc` binary live without restarting `ttyd` / `ttyd-attach`.

Validation:
- `go test ./internal/config ./internal/agent`
- `go test ./...`
- `git diff --check`
- Confirmed `cinik-rponse` is back in `/home/dev/.config/claude-code/sessions.json`.
