* fix(migration): map default_yolo to default_permission_mode instead of dead yolo field
The kimi-cli config key `default_yolo` was being migrated to `yolo` in
kimi-code config.toml, but `yolo` is a dead field that no code reads.
The real config key for yolo mode is `default_permission_mode = "yolo"`.
* chore: add changeset for migration yolo mapping fix
* feat(migration-legacy): migrate user skills from kimi-cli
The first-launch migration previously left ~/.kimi/skills/ behind: the
new scanner only reads ~/.kimi-code/skills/ and ~/.agents/skills/, so any
custom skills authored against kimi-cli silently disappeared after the
upgrade. Adds a skills step that copies top-level entries from
~/.kimi/skills/ into ~/.kimi-code/skills/ with skip-existing semantics,
wires it into the existing run-migration pipeline and result screen, and
surfaces the count alongside config/mcp/REPL-history.
* refactor(migration): hide OAuth from migration UX
OAuth credentials are deliberately never migrated (refresh tokens
rotate server-side, so two installs sharing one token would fight over
who gets refreshed). The previous UX framed this as a limitation: the
result screen carried a yellow ⚠ "kimi-cli login not migrated — run
/login" line, and the pre-migration summary listed "kimi-cli login
(needs /login)" alongside real migratable data classes, making users
think a login was about to be transferred and only the last step had
failed.
Drops both surfaces and short-circuits the pre-migration screen when
the only legacy data is `credentials/*.json`. kimi-code's own /login
flow handles re-auth on first use, so a dedicated migration notice is
redundant. The `report.notices.oauthLoginsRequiringRelogin` JSON field
is left intact for debugging.
* chore: changeset for skills migration and OAuth UX cleanup