Excise the Changelog feature

Kigi never publishes CDN changelogs, so the entire inherited feature
was dead weight: the welcome-menu Changelog row, the hero-box info
slot (bullets + clickable CTA), /release-notes with its /changelog
alias, and the ChangelogManager CDN-fetch/disk-cache pipeline
(Effect::FetchChangelog, TaskResult::ChangelogFetched, startup and
post-login fetch kickoffs, AppView cache fields, mouse hover/click
handling). Welcome menu is now [Import] / New worktree / Resume
session / Quit; the hero box keeps title + version + subtitle and its
layout math simplifies to 3 + menu rows (verified equivalent by the
surviving boundary tests). Action::ShowReleaseNotes and the DocViewer
modal stay — /docs uses them. builtin.rs keeps deleting stale
CHANGELOG.{json,md} caches written by kigi ≤ 0.1.0.

kigi-shell-base drops its reqwest 'blocking' feature (only the deleted
module used it). -1206 lines net.

Gates: fmt clean, workspace check/clippy --all-targets 0/0, kigi-tui
lib 6609 / shell-base 56 / shell util:: 258 all passing, welcome pty
e2e (3 tests incl. braille logo) passing.
This commit is contained in:
2026-07-18 12:31:52 -04:00
parent 6e26d15428
commit 10d0c0816f
19 changed files with 66 additions and 1206 deletions
@@ -1471,10 +1471,6 @@ pub enum Effect {
/// `SwitchModelComplete` so `IncompatibleAgent` can roll back.
prev_model_id: Option<acp::ModelId>,
},
/// Fetch changelog from CDN (both markdown + structured JSON).
/// Runs off the render path via `spawn_blocking`. Result is cached
/// on `AppView` so `/release-notes` and the welcome screen share it.
FetchChangelog,
/// Persist memory modal fullscreen preference to `[hints]` in config.toml.
PersistMemoryFullscreen { fullscreen: bool },
/// Persist the project-picker opt-out to `[hints] project_picker_disabled`.
@@ -2130,11 +2126,6 @@ pub enum TaskResult {
/// rollback on `IncompatibleAgent`.
prev_model_id: Option<acp::ModelId>,
},
/// Changelog fetched from CDN (both formats).
ChangelogFetched {
markdown: Option<String>,
entries: Vec<kigi_shell::util::changelog::ChangelogEntry>,
},
/// Cross-session prompt history loaded from ACP.
PromptHistoryLoaded {
agent_id: AgentId,