fix(release): repair v0.8.44 gates
This commit is contained in:
+22
-4
@@ -17,9 +17,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- **Session picker inline rename.** Press `r` in the session picker (Ctrl+R)
|
||||
to rename the selected session inline. Type the new title, Enter to confirm,
|
||||
Esc to cancel (#1600).
|
||||
- **Session picker on clean startup.** When saved sessions exist and no
|
||||
`--resume`/`--continue`/`--fresh` flag is given, the session picker opens
|
||||
automatically so you can pick up where you left off (#1638).
|
||||
- **Plan detail display.** The \"Plan Confirmation\" modal now shows the plan
|
||||
explanation and step list from `update_plan` so you can review what was
|
||||
proposed before accepting (#834).
|
||||
@@ -40,6 +37,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
`.deepseek/config.toml`. Both are read; the CodeWhale root takes precedence.
|
||||
- **Doctor reports active state root** and whether legacy `~/.deepseek/`
|
||||
state is also present.
|
||||
- **README contributor acknowledgements are current for this release.**
|
||||
Thanks @jeoor, @LING71671, and @ousamabenyounes for the fixes and reports
|
||||
now reflected in the public credits.
|
||||
- **Harvested-contribution credit audit completed.** The README Thanks list now
|
||||
includes previously missed community helpers whose code, reports, or review
|
||||
notes were already credited in older changelog entries but not in the public
|
||||
contributor surface: @mvanhorn, @krisclarkdev, @tdccccc, @LittleBlacky,
|
||||
@AnaheimEX, @THatch26, @alvin1, @knqiufan, @IIzzaya, @duanchao-lab,
|
||||
@imkingjh999, @eng2007, @chennest, @kunpeng-ai-lab, @asdfg314284230,
|
||||
@maker316, @lalala-233, @muyuliyan, @czf0718, @MeAiRobot, @tiger-dog,
|
||||
@MMMarcinho, @lucaszhu-hue, @sandofree, @zhuangbiaowei, @NorethSea,
|
||||
@Jianfengwu2024, @Fire-dtx, @oooyuy92, @qinxianyuzou, @tyouter,
|
||||
@xulongzhe, @YaYII, @47Cid, and @JafarAkhondali.
|
||||
- **Harvest guidance now requires GitHub-visible attribution.** Maintainer
|
||||
harvests should preserve the original commit author where possible or add
|
||||
`Co-authored-by` trailers from the original PR commits, in addition to the
|
||||
existing `Harvested from PR #N by @handle` trailer and changelog credit.
|
||||
- **Enter now steers when busy-waiting.** When the model is busy but not
|
||||
actively streaming (waiting on tool results, sub-agents, or shell
|
||||
commands), pressing Enter tries to steer your message into the current
|
||||
@@ -55,6 +69,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
preventing unbounded growth of `~/.codewhale/sessions/`.
|
||||
- **Checkpoint path resolution** no longer hardcodes `~/.deepseek/` — uses
|
||||
the resolved session directory instead.
|
||||
- **Plain startup no longer auto-opens the session picker.** `codewhale` and
|
||||
`codew` start in a fresh composer again even when saved sessions exist.
|
||||
Use `/sessions`, Ctrl+R, `--resume`, or `--continue` when you want to resume.
|
||||
- **Work sidebar now refreshes immediately** after `checklist_write`,
|
||||
`checklist_update`, and `update_plan` tool calls, matching the existing
|
||||
`todo_write` behavior instead of relying on the 2.5s periodic poll (#1787).
|
||||
@@ -4789,7 +4806,8 @@ Welcome — and thank you.
|
||||
- Hooks system and config profiles
|
||||
- Example skills and launch assets
|
||||
|
||||
[Unreleased]: https://github.com/Hmbown/CodeWhale/compare/v0.8.43...HEAD
|
||||
[Unreleased]: https://github.com/Hmbown/CodeWhale/compare/v0.8.44...HEAD
|
||||
[0.8.44]: https://github.com/Hmbown/CodeWhale/compare/v0.8.43...v0.8.44
|
||||
[0.8.43]: https://github.com/Hmbown/CodeWhale/compare/v0.8.42...v0.8.43
|
||||
[0.8.42]: https://github.com/Hmbown/CodeWhale/compare/v0.8.41...v0.8.42
|
||||
[0.8.41]: https://github.com/Hmbown/CodeWhale/compare/v0.8.40...v0.8.41
|
||||
|
||||
@@ -95,6 +95,11 @@ When this happens:
|
||||
- The harvested commit's message includes `Harvested from PR #N by
|
||||
@your-handle`. This is the contract: that line is your credit and the
|
||||
signal that your contribution shipped.
|
||||
- If the maintainer copies or adapts your code, the harvested commit also
|
||||
keeps attribution with the original author identity when possible: either by
|
||||
preserving the commit author on a cherry-pick or by adding a
|
||||
`Co-authored-by: Name <email>` trailer from the original PR commit. This is
|
||||
what lets GitHub's contribution surfaces recognize more than prose credit.
|
||||
- The `CHANGELOG.md` entry for the next release credits you by handle.
|
||||
- The auto-close workflow closes your PR with a templated thank-you and
|
||||
a link to the commit on `main`.
|
||||
|
||||
@@ -668,6 +668,40 @@ This project ships with help from a growing community of contributors:
|
||||
- **[eltociear](https://github.com/eltociear)** — Japanese README translation (#746)
|
||||
- **[Ling](https://github.com/LING71671)** — `grep_files` cancellation-token support and Ctrl+Z composer-draft recovery (#1839, #1911)
|
||||
- **[Ben Younes](https://github.com/ousamabenyounes)** — Linux Wayland (non-wlroots) clipboard support (#1938)
|
||||
- **[Matt Van Horn](https://github.com/mvanhorn)** — Docker first-run permission fix and runtime system-prompt regression tests (#1699, #1702)
|
||||
- **[Kristopher Clark](https://github.com/krisclarkdev)** — compaction user-query preservation fix (#1704)
|
||||
- **[tdccccc](https://github.com/tdccccc)** — composer scroll fix and pager mouse-wheel support (#1715, #1716)
|
||||
- **[LittleBlacky](https://github.com/LittleBlacky)** — provider-gated `reasoning_content` stream fix (#1680)
|
||||
- **[Anaheim](https://github.com/AnaheimEX)** — `rlm_open` blank-source schema validation report (#1712)
|
||||
- **[THatch26](https://github.com/THatch26)** — terminal resize paging fix (#1724)
|
||||
- **[Alvin](https://github.com/alvin1)** — Zed ACP id compatibility report (#1696)
|
||||
- **[knqiufan](https://github.com/knqiufan)** — sub-agent file-write delegation work (#1833)
|
||||
- **[IIzzaya](https://github.com/IIzzaya)** — exact-alias-first slash-completion ordering idea (#1811)
|
||||
- **[DC](https://github.com/duanchao-lab)** — terminal cleanup-guard idea (#1630)
|
||||
- **[imkingjh999](https://github.com/imkingjh999)** — provider/model switching fixes (#1642)
|
||||
- **[Photo](https://github.com/eng2007)** — provider-aware `/model` picker catalog work (#1201)
|
||||
- **[chennest](https://github.com/chennest)** — diagnostics schema report (#1685)
|
||||
- **[kunpeng-ai-lab](https://github.com/kunpeng-ai-lab)** — Windows composer scroll fix (#1578)
|
||||
- **[WuMing](https://github.com/asdfg314284230)** — Windows PowerShell flicker fix (#1591)
|
||||
- **[maker316](https://github.com/maker316)** — LoopGuard/checklist loop report (#1574)
|
||||
- **[lalala](https://github.com/lalala-233)** — approval denial regression report (#1617)
|
||||
- **[muyuliyan](https://github.com/muyuliyan)** — `pandoc_convert` validation fix (#1523)
|
||||
- **[czf0718](https://github.com/czf0718)** — resize and turn-completion flicker fix (#1537)
|
||||
- **[MeAiRobot](https://github.com/MeAiRobot)** — toast overlay composer-input fix (#1485)
|
||||
- **[tiger-dog](https://github.com/tiger-dog)** — approval modal collapse and markdown identifier fixes (#1455)
|
||||
- **[MMMarcinho](https://github.com/MMMarcinho)** — opt-in `image_analyze` vision tool (#1467)
|
||||
- **[lucaszhu-hue](https://github.com/lucaszhu-hue)** — AtlasCloud provider integration (#1436)
|
||||
- **[sandofree](https://github.com/sandofree)** — Tavily and Bocha `web_search` backends (#1294)
|
||||
- **[zhuangbiaowei](https://github.com/zhuangbiaowei)** — `/change` release-notes command (#1416)
|
||||
- **[NorethSea](https://github.com/NorethSea)** — updater companion-binary refresh fix (#1492)
|
||||
- **[Jianfengwu2024](https://github.com/Jianfengwu2024)** — Windows MSVC toolchain environment preservation (#1487)
|
||||
- **[Fire-dtx](https://github.com/Fire-dtx)** — npm postinstall recoverability work (#1059)
|
||||
- **[oooyuy92](https://github.com/oooyuy92)** — long-session palette readability report (#1070, #936)
|
||||
- **[qinxianyuzou](https://github.com/qinxianyuzou)** — zh-Hans destructive approval wording (#1087, #1091)
|
||||
- **[tyouter](https://github.com/tyouter)** — session title/history preview cleanup (#1510)
|
||||
- **[xulongzhe](https://github.com/xulongzhe)** — issue-template and vision-boundary follow-ups (#1530, #1544)
|
||||
- **[YaYII](https://github.com/YaYII)** — trusted media path work (#1462)
|
||||
- **[47Cid](https://github.com/47Cid)** and **[Jafar Akhondali](https://github.com/JafarAkhondali)** — responsible security disclosures and hardening reports
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1565,8 +1565,7 @@ pub fn migrate_config_if_needed() -> Result<()> {
|
||||
}
|
||||
// Copy the config to the new home.
|
||||
if let Some(parent) = primary.parent() {
|
||||
std::fs::create_dir_all(parent)
|
||||
.context("failed to create codewhale config directory")?;
|
||||
std::fs::create_dir_all(parent).context("failed to create codewhale config directory")?;
|
||||
}
|
||||
std::fs::copy(&legacy, &primary)
|
||||
.context("failed to migrate config from deepseek to codewhale home")?;
|
||||
|
||||
+71
-1
@@ -7,6 +7,75 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.8.44] - 2026-05-24
|
||||
|
||||
### Added
|
||||
|
||||
- **`codew` convenience alias.** `codew` is a short-form command that silently
|
||||
forwards to `codewhale`. Six fewer keystrokes, same binary. Ships with the
|
||||
Rust `codewhale-cli` crate and the npm `codewhale` package (#2013).
|
||||
- **Session picker inline rename.** Press `r` in the session picker (Ctrl+R)
|
||||
to rename the selected session inline. Type the new title, Enter to confirm,
|
||||
Esc to cancel (#1600).
|
||||
- **Plan detail display.** The \"Plan Confirmation\" modal now shows the plan
|
||||
explanation and step list from `update_plan` so you can review what was
|
||||
proposed before accepting (#834).
|
||||
- **Agent team UX.** Delegate cards in the transcript now show human-readable
|
||||
roles (scout, builder, reviewer, verifier, executor) and the completion
|
||||
summary instead of raw `agent_xxx` IDs (#1981).
|
||||
- **`--continue` / `-c` CLI flag.** `codewhale --continue` resumes your most
|
||||
recent interactive session for the current workspace.
|
||||
|
||||
### Changed
|
||||
|
||||
- **App state migrates to `~/.codewhale/`.** New installs write product-owned
|
||||
state (config, sessions, tasks, skills, logs, etc.) under `~/.codewhale/`.
|
||||
`~/.deepseek/` continues to work as a compatibility fallback — no data loss,
|
||||
no forced migration. `CODEWHALE_HOME` and `CODEWHALE_CONFIG_PATH` env vars
|
||||
are now supported alongside existing `DEEPSEEK_*` vars (#2011).
|
||||
- **Project config overlay prefers `.codewhale/config.toml`** before
|
||||
`.deepseek/config.toml`. Both are read; the CodeWhale root takes precedence.
|
||||
- **Doctor reports active state root** and whether legacy `~/.deepseek/`
|
||||
state is also present.
|
||||
- **README contributor acknowledgements are current for this release.**
|
||||
Thanks @jeoor, @LING71671, and @ousamabenyounes for the fixes and reports
|
||||
now reflected in the public credits.
|
||||
- **Harvested-contribution credit audit completed.** The README Thanks list now
|
||||
includes previously missed community helpers whose code, reports, or review
|
||||
notes were already credited in older changelog entries but not in the public
|
||||
contributor surface: @mvanhorn, @krisclarkdev, @tdccccc, @LittleBlacky,
|
||||
@AnaheimEX, @THatch26, @alvin1, @knqiufan, @IIzzaya, @duanchao-lab,
|
||||
@imkingjh999, @eng2007, @chennest, @kunpeng-ai-lab, @asdfg314284230,
|
||||
@maker316, @lalala-233, @muyuliyan, @czf0718, @MeAiRobot, @tiger-dog,
|
||||
@MMMarcinho, @lucaszhu-hue, @sandofree, @zhuangbiaowei, @NorethSea,
|
||||
@Jianfengwu2024, @Fire-dtx, @oooyuy92, @qinxianyuzou, @tyouter,
|
||||
@xulongzhe, @YaYII, @47Cid, and @JafarAkhondali.
|
||||
- **Harvest guidance now requires GitHub-visible attribution.** Maintainer
|
||||
harvests should preserve the original commit author where possible or add
|
||||
`Co-authored-by` trailers from the original PR commits, in addition to the
|
||||
existing `Harvested from PR #N by @handle` trailer and changelog credit.
|
||||
- **Enter now steers when busy-waiting.** When the model is busy but not
|
||||
actively streaming (waiting on tool results, sub-agents, or shell
|
||||
commands), pressing Enter tries to steer your message into the current
|
||||
turn instead of silently queueing it. During active streaming, Enter
|
||||
still queues to avoid interrupting in-flight reasoning (#2009).
|
||||
|
||||
### Fixed
|
||||
|
||||
- **`/save` no longer creates repo-local `session_*.json`.** Default saves
|
||||
now go to the managed sessions directory instead of the current workspace.
|
||||
Explicit `/save path/to/file.json` exports still work as before (#2010).
|
||||
- **Boot-time session prune** caps managed sessions at 50 on every startup,
|
||||
preventing unbounded growth of `~/.codewhale/sessions/`.
|
||||
- **Checkpoint path resolution** no longer hardcodes `~/.deepseek/` — uses
|
||||
the resolved session directory instead.
|
||||
- **Plain startup no longer auto-opens the session picker.** `codewhale` and
|
||||
`codew` start in a fresh composer again even when saved sessions exist.
|
||||
Use `/sessions`, Ctrl+R, `--resume`, or `--continue` when you want to resume.
|
||||
- **Work sidebar now refreshes immediately** after `checklist_write`,
|
||||
`checklist_update`, and `update_plan` tool calls, matching the existing
|
||||
`todo_write` behavior instead of relying on the 2.5s periodic poll (#1787).
|
||||
|
||||
## [0.8.43] - 2026-05-24
|
||||
|
||||
### Fixed
|
||||
@@ -4737,7 +4806,8 @@ Welcome — and thank you.
|
||||
- Hooks system and config profiles
|
||||
- Example skills and launch assets
|
||||
|
||||
[Unreleased]: https://github.com/Hmbown/CodeWhale/compare/v0.8.43...HEAD
|
||||
[Unreleased]: https://github.com/Hmbown/CodeWhale/compare/v0.8.44...HEAD
|
||||
[0.8.44]: https://github.com/Hmbown/CodeWhale/compare/v0.8.43...v0.8.44
|
||||
[0.8.43]: https://github.com/Hmbown/CodeWhale/compare/v0.8.42...v0.8.43
|
||||
[0.8.42]: https://github.com/Hmbown/CodeWhale/compare/v0.8.41...v0.8.42
|
||||
[0.8.41]: https://github.com/Hmbown/CodeWhale/compare/v0.8.40...v0.8.41
|
||||
|
||||
@@ -1575,9 +1575,9 @@ fn resolve_cors_origins(config: &Config, flag_origins: &[String]) -> Vec<String>
|
||||
}
|
||||
|
||||
fn deepseek_home_dir() -> PathBuf {
|
||||
codewhale_config::codewhale_home()
|
||||
.unwrap_or_else(|_| dirs::home_dir()
|
||||
.map_or_else(|| PathBuf::from(".codewhale"), |h| h.join(".codewhale")))
|
||||
codewhale_config::codewhale_home().unwrap_or_else(|_| {
|
||||
dirs::home_dir().map_or_else(|| PathBuf::from(".codewhale"), |h| h.join(".codewhale"))
|
||||
})
|
||||
}
|
||||
|
||||
/// Resolve the default tools directory. Mirrors `default_skills_dir` shape.
|
||||
@@ -2076,10 +2076,10 @@ async fn run_doctor(config: &Config, workspace: &Path, config_path_override: Opt
|
||||
// State root (v0.8.44)
|
||||
println!();
|
||||
println!("{}", "State Root:".bold());
|
||||
let code_home = codewhale_config::codewhale_home()
|
||||
.unwrap_or_else(|_| PathBuf::from("~/.codewhale"));
|
||||
let legacy_home = codewhale_config::legacy_deepseek_home()
|
||||
.unwrap_or_else(|_| PathBuf::from("~/.deepseek"));
|
||||
let code_home =
|
||||
codewhale_config::codewhale_home().unwrap_or_else(|_| PathBuf::from("~/.codewhale"));
|
||||
let legacy_home =
|
||||
codewhale_config::legacy_deepseek_home().unwrap_or_else(|_| PathBuf::from("~/.deepseek"));
|
||||
let active_root = if code_home.exists() {
|
||||
&code_home
|
||||
} else if legacy_home.exists() {
|
||||
|
||||
@@ -617,9 +617,8 @@ fn is_git_metadata_entry(path: &Path) -> bool {
|
||||
/// v0.8.44: prefers `~/.codewhale/sessions`, falls back to
|
||||
/// `~/.deepseek/sessions` for existing installs.
|
||||
pub fn default_sessions_dir() -> std::io::Result<PathBuf> {
|
||||
codewhale_config::resolve_state_dir("sessions").map_err(|e| {
|
||||
std::io::Error::new(std::io::ErrorKind::NotFound, e.to_string())
|
||||
})
|
||||
codewhale_config::resolve_state_dir("sessions")
|
||||
.map_err(|e| std::io::Error::new(std::io::ErrorKind::NotFound, e.to_string()))
|
||||
}
|
||||
|
||||
/// Prune snapshots older than `max_age` for `workspace`.
|
||||
|
||||
@@ -102,10 +102,7 @@ pub struct PlanPromptView {
|
||||
|
||||
impl PlanPromptView {
|
||||
pub fn new(plan: Option<PlanSnapshot>) -> Self {
|
||||
Self {
|
||||
selected: 0,
|
||||
plan,
|
||||
}
|
||||
Self { selected: 0, plan }
|
||||
}
|
||||
|
||||
fn max_index(&self) -> usize {
|
||||
|
||||
@@ -474,24 +474,6 @@ pub async fn run_tui(config: &Config, options: TuiOptions) -> Result<()> {
|
||||
};
|
||||
refresh_active_task_panel(&mut app, &task_manager).await;
|
||||
|
||||
// v0.8.44: push session picker on clean startup when saved sessions
|
||||
// exist and no explicit resume was requested (#1638).
|
||||
if options.resume_session_id.is_none()
|
||||
&& options.initial_input.is_none()
|
||||
&& !options.skip_onboarding
|
||||
{
|
||||
if let Ok(manager) = crate::session_manager::SessionManager::default_location() {
|
||||
if let Ok(sessions) = manager.list_sessions() {
|
||||
if !sessions.is_empty() {
|
||||
app.view_stack
|
||||
.push(crate::tui::session_picker::SessionPickerView::new(
|
||||
&app.workspace,
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let engine_config = build_engine_config(&app, config);
|
||||
|
||||
// Spawn the Engine - it will handle all API communication
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "deepseek-tui",
|
||||
"version": "0.8.43",
|
||||
"version": "0.8.44",
|
||||
"description": "Legacy compatibility package. Renamed to `codewhale`; run `npm install -g codewhale` for new installs.",
|
||||
"author": "Hmbown",
|
||||
"license": "MIT",
|
||||
|
||||
Reference in New Issue
Block a user