Releases: mukundzha/hazzel
Releases · mukundzha/hazzel
Release list
v1.5.7: remove panels shim
Highlights
- Compat shim removal (#20):
hazzel.ui.panels(87 lines of pure re-exports) is deleted. The one internal importer now imports frommessagesdirectly, and the package map documents the real modules. Zero behavior change.
Install
pip install hazzel==1.5.7
# or try without installing:
uvx hazzelFull changelog: CHANGELOG.md
v1.5.6: remove dead UI stubs
Highlights
- Dead code removal (#21):
show_turn_card/show_turn_from_tracealways returnedNoneand had zero callers — removed along with their re-exports fromhazzel.uiand thepanelscompat shim. Smaller surface, same terminal.
Install
pip install hazzel==1.5.6
# or try without installing:
uvx hazzelFull changelog: CHANGELOG.md
v1.5.5: background jobs wait/clear, tool-row dedupe
Highlights
- Background jobs
wait/clear:jobs(action=wait)blocks until a job finishes or the timeout passes — no more poll-spam turns.jobs(action=clear)drops finished jobs and deletes their logs. Available as/jobs wait <id> [seconds]and/jobs clear. - Tool-row dedupe (#26, @pollychen-lab): live tool-row append/trim handling extracted into one helper, with a regression test for loader-mode capping.
- UI state proxy tests (#27, @binaryCoder-101): regression coverage for mutable state forwarding between
hazzel.uiandhazzel.ui._state.
Install
pip install hazzel==1.5.5
# or try without installing:
uvx hazzelFull changelog: CHANGELOG.md
v1.5.4: ask-once approvals, ui package split
Highlights
- Ask-once approvals: a y/N decision now sticks for the turn. Approvals run without re-prompting, denials fail fast with guidance instead of asking again and again. Wired into
run_command,write_file,edit_file,apply_edits, andgit_commit. - UI package split: the 2.6k-line
ui.pyis nowhazzel.ui(_state,input,stream,messages,git/,help_docs,usage,selectors). Zero behavior change —from hazzel import uikeeps working. - README zero-install quickstart (
uvx hazzel), CI coverage report, test-count badge,vercel.jsonpinned tomain.
Install
pip install hazzel==1.5.4
# or try without installing:
uvx hazzelFull changelog: CHANGELOG.md
v1.5.3: quieter first run, SEO landing page
What's new in 1.5.3
Removed
- Star nudge is gone — first launch no longer prints the star line, and the 0600-perm marker file (
~/.config/hazzel/.star_nudged) system is removed with it. Quieter first run.
Changed
- Landing page (
site/): full SEO pass — keyword title/meta, canonical, OG/Twitter cards,SoftwareApplication+FAQPageJSON-LD, live demo GIF, Hazzel-vs-alternatives comparison, crawlable FAQ,robots.txt/sitemap.xml; dropped the locomotive-scroll dependency (~40KB) for faster loads.
pip install hazzel==1.5.3
Full changelog: https://github.com/mukundzha/hazzel/blob/main/CHANGELOG.md
v1.5.2 - README overhaul: architecture diagram, comparison table, community files
Added
- README: architecture diagram (mermaid) and an honest comparison table (Hazzel vs Aider vs cloud agents).
- Community: issue templates (bug, feature request, security routing), PR template, CODE_OF_CONDUCT.md, CONTRIBUTING.md, FUNDING.yml, GitHub Discussions.
Changed
- README rewritten: 280 → ~200 lines, repetition cut, features compressed into a scannable table, "Recently shipped" now leads with the first external contribution.
Full changelog: https://github.com/mukundzha/hazzel/blob/main/CHANGELOG.md
v1.5.1 - confirmation prompts accept y and yes
Fixed
- Confirmation prompts accept both
yandyes, regardless of letter case (@Gambit-Checkmate in #7).
second external contribution — thanks @Gambit-Checkmate.
v1.5.0 - read the diff back before it lands
Hazzel v1.5.0 — read the diff back before it lands
Added
/review [--staged]: read-only review of your uncommitted diff. The current
model gets your changed files + diffs (capped at 20 files / 12k chars,
untracked files synthesized in) and answers with
Summary · Risks · Missing · Before commit as rendered markdown.- Offline fallback: a deterministic heuristic scan (
review.py) kicks in when
no model is reachable, so/reviewnever leaves you hanging. - Safety first: it never writes files, runs commands, or creates undo
checkpoints — and it leaves the last reply set so/copyworks right after.
Changed
- Reply colors, one fixed role per color (
formatter.py): brand orange
(#ec8500) is reserved for structure (headings, bullets, panel titles,
quote bars), a lighter tint (#ffb454) highlights the bold "main words" in
prose, and a single cool blue (#8ab4f8) marks everything that points
somewhere (links,@filementions). Italics and strikethrough stay
uncolored. Nothing is colored at random.
Fixed
- Reply rendering (
formatter.py): bold/italic no longer match inside words,
so__init__,my_var_name, and1*2*3render verbatim. Tables hug their
content instead of padding to a 20-char floor, blockquotes get an accent bar
(▌) with dimmed content, and anonymous code fences no longer show a
meaninglesstexttitle.
Upgrade
pip install -U hazzelv1.4.9 — background shell jobs
Long commands no longer block the loop.
Added
- run_command(background=true) starts a detached job (dev servers, long test suites) and returns a job id; new jobs agent tool (list/poll/kill — reads are plan-mode and hazzel -p safe).
- REPL: !command & runs in background, /jobs, /jobs , /jobs kill .
- Per-job full logs in /tmp/hazzel-job-*.log, up to 32 jobs, remaining jobs killed on exit.
- Stdlib only, no new dependencies. 256 tests pass, ruff clean.
v1.4.6
Added
- Non-interactive print mode:
hazzel -p "prompt"runs one turn, prints the reply, and exits (0 ok, 1 turn failure, 2 usage/no-key, 130 cancelled). - Piped stdin becomes context (
git diff | hazzel -p "summarize"); bare-puses stdin as the prompt. - Read-only by default (writes/runs blocked with a re-run hint);
-y/--yespre-approves them;--output-format jsonemits{response, model, usage}for scripts. - Progress UI stays off stdout; saved sessions untouched.
- Homepage documents
-p.