Repository navigation
Releases: yotamleo-org/Himmel
Release list
v1.1.2
v1.1.2 release notes (HIMMEL-5252)
Curated, user-facing summary of what changed since v1.1.1, grouped by theme
(81 merged PRs). CHANGELOG.md stays the generated, per-commit record
(scripts/gen-changelog.sh, never hand-edited); this file is the readable
version.
Release date: 2026-10-11.
Critical fixes
- The hook-integrity recorder can no longer brick a session. An integrity
failure on aStophook now skips that hook and lets the session stop
(HIMMEL-5168); a killed or failed recorder fails open with a notice instead
of denying every hook (HIMMEL-5171); in a hook chain a member that fails
integrity is skipped alone and its intact neighbours keep running
(HIMMEL-5172); a chain member'sStopblock keeps its own reason
(HIMMEL-5198). record-hook-integrityruns under macOS bash 3.2 (#2333, reported and
fixed by Goomal, an external contributor; closes #2332).- Main CI runs on a 7-hour cron plus
workflow_dispatchinstead of every merge
(HIMMEL-5113);merge-on-greenrefuses on a red main unless the PR is the
declared fix (HIMMEL-5115, HIMMEL-5134).
Guardrails and hooks
- Destructive-command and write fences. Auto-approve never allows a root
walk (HIMMEL-5088) and passes--files0-from,cd-relative walks and
CR-glued writer operands correctly (HIMMEL-5187); the chokepoint denies any
IFSassignment beside a chokepoint word and no longer depends on the ambient
locale (HIMMEL-5152, HIMMEL-5153); its relief now voids onreadpipe,
executing short options and ripgrep program-running options (HIMMEL-4402,
HIMMEL-5197, HIMMEL-5210). - The
/pr-checkliteral guard countsgit bisect runandrebase --execas
program-running (HIMMEL-5102) and denies a guarded writer behind a git editor
or alias hook (HIMMEL-5170). - The live-settings fence decodes
env -Sescapes before judging
(HIMMEL-4521); the bank-lift write guard trims a classified over-deny
(HIMMEL-4545). - Every Bash chain member runs in time linear in its input, with latency RED
controls (HIMMEL-4729, HIMMEL-5154). himmel-busstore guard denies direct bus-root access and registration verbs
from a session's own tool calls (HIMMEL-4829).
Console and legs
grant-round.sh: the console grants one more review round on a signed
judge record, instead of a hand-pasted counter file (HIMMEL-5058,
HIMMEL-5126).write-verdict.sh --bind-reviewedbinds a NO-GO to the reviewed
head across a test-only or comment-only commit (HIMMEL-5109).- Review gate. A claude-only delta round cannot strand a PR (HIMMEL-5128);
one post-cap delta round runs when every prior finding is recorded fixed
(HIMMEL-5185); the ledger confirms each finding append (HIMMEL-5155); gate 4d
paths survivequotePath(HIMMEL-4637, HIMMEL-4641, HIMMEL-5158). - Merge gate.
merge-on-greenre-runs the plugin-version bump check from the
trusted base-tip checker and requires its success line (HIMMEL-5188,
HIMMEL-5203, HIMMEL-5208);merge-forward-checkcovers a merge-base with the
next completed cron or dispatch main run and refuses non-success conclusions
(HIMMEL-5124, HIMMEL-5137). console-judge-ro, a read-only judge agent with a 1 h cache TTL
(HIMMEL-5180); judge scratch directories are released when a verdict is
written and are no longer fully rsynced into tmpfs (HIMMEL-5165, HIMMEL-5173).- The arming gate runs
brief-linton every brief (HIMMEL-4619);
close-wrapped-legresolves a claudex leg's config dir (HIMMEL-5182). - Launchers register and bind a session on the himmel-bus, and
arm-resume
rebinds a resumed session (HIMMEL-4832, HIMMEL-5201, HIMMEL-5207). - The tick flags stalled cloud sessions, cloud-route sends already-fixed tickets
to a local verify, and the cloud environment is declared from the repo with a
self-check (HIMMEL-5163). Tick and board surface suite-flake ledger rows
(HIMMEL-5131). - Autocompact A/B arm and report (HIMMEL-5193, HIMMEL-5196).
Lanes
- Lane canary (
scripts/lanes/lane-canary.sh): launches one no-op leg per
lane and reports PASS, FAIL or SKIP with time-to-first-bullet (HIMMEL-5230). - DeepSeek lane legs start without the external-imports prompt (HIMMEL-5249);
the OpenRouter lane hands the child a thinkingEXTRA_BODYso the auto
classifier works, and the Haiku pin moved to haiku-5.5 (HIMMEL-5248). - The claudex client-side classifier no longer over-generalises the
rm -rf
deny rule (HIMMEL-5077); the claudex jail hook matching and lane scope are
tighter (HIMMEL-5176). - A stale codex bank cache refreshes once, bounded, and the doctor warns
(HIMMEL-5220).
himmel-bus
bus wait verb, a leg-bus profile and catalog entry for a live round trip
(HIMMEL-4831); a bus root that enforces 0700 only on himmel/bus, with a
failed launcher register surfaced (HIMMEL-5221); the console profile carries
himmel-bus so a console registers on launch (HIMMEL-5241). The first live POC
recorded five failures (HIMMEL-4838); see Known issues.
CI and test tooling
- Flake handling. A failed suite is retried once; a pass on retry is a
FLAKE recorded in a per-repo ledger with a repeat-flake "file a ticket" line
(HIMMEL-5116, HIMMEL-5121, HIMMEL-5144, HIMMEL-5145, HIMMEL-5147,
HIMMEL-5156, HIMMEL-5157, HIMMEL-5161, HIMMEL-5169, HIMMEL-5184). - Impacted-suite selector always runs tree-scanning suites, covers
lowercase and split uninstall callers, template root files and suites that
name a changed script without its extension, and fails closed on a failed
temp write (HIMMEL-5114, HIMMEL-5122, HIMMEL-5123, HIMMEL-5132, HIMMEL-5160,
HIMMEL-5167, HIMMEL-5174). main-sweep-redpersists the newest processed run id, closes a report on a
green dispatch run and ignores cancelled-shard aggregate failures
(HIMMEL-5129, HIMMEL-5143, HIMMEL-5146).- The plugin version-bump check compares against the current base tip and
passes a PR that never touched the plugin (HIMMEL-5177, HIMMEL-5195). - Live end-to-end suites: console-kit fixture fleet (HIMMEL-5229), review gate
andmerge-on-greenagainst a throwaway repo (HIMMEL-5232), a mock-Anthropic
turn proving a registered hook fires and denies (HIMMEL-5228).
Telegram
/console queues to a busy armed console and matches a unique name fragment
(HIMMEL-5125); /console, the fleet verbs and /lockdown accept any case and
the /verb@botname form (HIMMEL-5148, HIMMEL-5150); the break-glass allow-rule
refuses symlinks, keeps mode, ignores backups and unless the registry text
equals the approved text (HIMMEL-5112, HIMMEL-5127, HIMMEL-5140).
Plugins, tickets and docs
i-have-adhdis vendored, pinned, in the base profile and always on in the
installer and updater (HIMMEL-5239);emilkowalski-skillsre-pinned
(HIMMEL-5247).jira createenforces a plain Impact / What / Why block (HIMMEL-5226).- Config UI AG-UI stream: the journal fd is opened then verified, and the
mapper confirms each ledger verdict (HIMMEL-4657, HIMMEL-4655). - Docs and
llms.txtdescribe the himmel UI surfaces and close the gaps for
user-facing surfaces; the release checklist keeps them current
(HIMMEL-5251, HIMMEL-5256). - The doctor names a non-qmd listener on the qmd daemon port (HIMMEL-5227).
Dependencies
One PR bumped every in-policy dependency (HIMMEL-5252, VM-proven): bun 1.4.3,
the CI claude CLI pin 2.1.296, in-range lockfile refreshes, marketplace SHA
pins and the vault template (0.4.71). claude-hud and the impeccable,
superpowers and ponytail fork pins were left for HIMMEL-5259 and HIMMEL-5260.
Station tools: deferred
The three station tools named in the dependency PR did not move on the
operator's station during this release, by ruling:
- graphify stays at the installed version; the repo pin is 0.9.80, and the
update step refuses to swap the install under livegraphify-mcpsessions.
It rolls once those sessions are gone (himmel-update.sh --only graphify). - ast-grep is an opt-in tool and is not installed on the station, so there
was nothing to bump. - cli-proxy-api stays at v7.3.15, the repo pin. v8.0.23 is a major bump
that needscli-proxy-lane.shVERSIONand checksum overrides and a
VM-first upgrade stage (HIMMEL-5267).
Known issues
- claudex auto mode does not block destructive actions (HIMMEL-5264): the
gateway classifier allowed a force push to main. Run no unattended claudex
legs; explicit deny rules and adontAskfallback are in flight
(HIMMEL-5270, HIMMEL-5271). - Guard gaps (label
guards): git global options hidepush --force,
reset --hardandclean -f(HIMMEL-5274); no destructive-verb floor for
gh(HIMMEL-5275); the Codex hook chain has no deny list (HIMMEL-5276);
secret-read, exfil and env-dump verbs (HIMMEL-5277); tag and ref deletion
(HIMMEL-5278); remote exec beyondcurl | sh(HIMMEL-5279); process and host
kill verbs (HIMMEL-5280);shred,truncate,dd of=/devand
chmod -R(HIMMEL-5281); infra, DB and docker destroy verbs (HIMMEL-5282);
hook-disabling shapes (HIMMEL-5283); state and vault repos have no
client-side force-push floor (HIMMEL-5284);git restore .,checkout -f
andreset --keep(HIMMEL-5285). - himmel-bus has had one live round trip POC with failures recorded
(HIMMEL-4838); treat the bus as opt-in until its station acceptance closes. - The lane canary reports a launcher bank refusal (exit 11, for example
OpenRouter credit below its floor) as FAIL rather than SKIP. - Windows remains unsupported (epic HIMMEL-4102).
v1.1.1
What's Changed
- feat(config-ui): [HIMMEL-4816] add per-tool health rates and lane comparisons by @yotamleo in #2077
- feat(ci): [HIMMEL-4856] check-ci waits on a workflow run or job id by @yotamleo in #2075
- feat(lanes): [HIMMEL-4881] Haiku 5.5 lane, routing and prompting guides by @yotamleo in #2081
- fix(bank): [HIMMEL-4868] reset jitter, standing 100% policy and invalid reasons by @yotamleo in #2076
- feat(telegram): [HIMMEL-4875] bare /console routes to the live console; /consoles; announce by @yotamleo in #2082
- feat(console-kit): [HIMMEL-4858] one cached batched PR snapshot for ready-check, tick and board by @yotamleo in #2083
- fix(bus): [HIMMEL-4880] store tests in CI, malformed cursors can't wedge the log, EACCES/EPERM propagate by @yotamleo in #2084
- feat(config-ui): [HIMMEL-4808] console fleet pages, runtime and orphan diagnostics by @yotamleo in #2079
- fix(console-kit): [HIMMEL-4867] non-native legs launch with their lane in env by @yotamleo in #2086
- feat(ci): [HIMMEL-4857] check-ci polls REST-first with ETag and rotates API budgets by @yotamleo in #2085
- chore(hooks): [HIMMEL-4899] drop the unwired GLM-lane verdict hook by @yotamleo in #2088
- fix(hooks): [HIMMEL-4894] guard-implementor-dispatch honors the validated bank lift by @yotamleo in #2090
- fix(hooks): [HIMMEL-4591] [HIMMEL-4598] write fence: linear large-payload scan; /tmp archive relief excludes the primary by @yotamleo in #2092
- chore(luna): [HIMMEL-4896] remove the win2 receiver ship machinery by @yotamleo in #2087
- feat(bank): [HIMMEL-4904] API credit state and hard-cap reservations (lane off) by @yotamleo in #2096
- test(eval): [HIMMEL-4906] lane quality eval and routing update by @yotamleo in #2101
- feat: [HIMMEL-4747] ag-ui stale-build check: a deleted agui-web/src directory hides the warning by @yotamleo11-test in #2098
- feat: [HIMMEL-4757] leg-digest-step wall_after: handle clock changes over 1h (antarctica/troll 2h) by @yotamleo11-test in #2100
- fix: [HIMMEL-4814] [HIMMEL-4811] [HIMMEL-4812] [HIMMEL-4813] repair cloud repo retrieval by @yotamleo in #2067
- feat(eval): [HIMMEL-4926] friction ledger: refusals by source, class and cost by @yotamleo in #2103
- feat: [HIMMEL-4728] ag-ui fleet: drop a quiet session's fold from the cache (seen set after the recency check) by @yotamleo11-test in #2099
- fix: [HIMMEL-4683] test-leg-digest: ledger-priority check uses one category on both sides, so it cannot fail by @yotamleo11-test in #2109
- fix: [HIMMEL-4671] cr-ledger eval: refuse duplicate coded ids, parse --until as a datetime, refuse a negative --sample by @yotamleo11-test in #2108
- fix: [HIMMEL-4851] obsidian-triage route gate: dual-spelling match can widen under broad-first rules; evaluate each spelling and refuse if either refuses by @yotamleo11-test in #2070
- feat(tracker): [HIMMEL-4930] drift trend, unplanned as a flag, unthemed tickets flagged by @yotamleo in #2107
- feat: [HIMMEL-4740] trajectory scorer: normalize env and wrappers inside the quiet-run inner command by @yotamleo11-test in #2105
- fix: [HIMMEL-4631] doctor c53: report a failed ssh -g resolution instead of probing the unresolved alias by @yotamleo11-test in #2113
- feat(telegram): [HIMMEL-4893] [HIMMEL-4905] slash console commands, stale refusal and lockdown by @yotamleo in #2091
- fix: [HIMMEL-4662] eval regression gauge: validate eval-compare.json bands as finite non-negative numbers by @yotamleo11-test in #2110
- feat: [HIMMEL-4741] failure router: fl- label can collide across classes (codex-1 hardening) by @yotamleo11-test in #2097
- feat(config-ui): [HIMMEL-4925] AG-UI fleet: running vs archived, status separated from lineage by @yotamleo in #2104
- feat: [HIMMEL-4877] console board shows bank lift state and invalid reason (deferred from himmel-4868) by @yotamleo11-test in #2112
- feat: [HIMMEL-4802] obsidian-triage hls: run a real ffmpeg in ci over rewritten playlists (ts and fmp4) by @yotamleo11-test in #2093
- feat(console-kit): [HIMMEL-4902] cheaper console succession by @yotamleo in #2094
- fix: [HIMMEL-4666] review-panel eval: count only parsed bullets, validate --only, require critic roster by @yotamleo11-test in #2114
- fix: [HIMMEL-4667] lane-quality: judge_call returns the cleanup status; --timeout 00 slips past validation by @yotamleo11-test in #2115
- fix: [HIMMEL-4644] jira edit: read back every field it sends, not only priority by @yotamleo11-test in #2111
- fix: [HIMMEL-4682] trajectory.py denial_list: index denials by canonical call (quadratic on denial-heavy journals) by @yotamleo11-test in #2117
- feat(config-ui): [HIMMEL-4925] AG-UI fleet: orphans, filters, chains and one-line cards by @yotamleo in #2119
- fix(qmd): [HIMMEL-4897] reindex reports embed-busy as BUSY and the real pending count by @yotamleo in #2116
- feat(cr): [HIMMEL-4885] refuse a delta round when a NO-GO class repeats across heads by @yotamleo in #2095
- fix(hooks): [HIMMEL-4948] auto-arm watchdogs honor the validated bank lift by @yotamleo in #2118
- feat(console-kit): [HIMMEL-4942] shepherd.sh, one scripted pass over a cloud PR by @yotamleo in #2121
- feat(eval): [HIMMEL-4853] exit-code registry; the leg digest counts result codes apart from failures by @yotamleo in #2120
- fix(hooks): [HIMMEL-4916] pr-check-literal treats git pathspec operands as mentions, not exec by @yotamleo in #2106
- fix(telegram): [HIMMEL-4947] truthful lockdown notices and terminal malformed-label refusal by @yotamleo in #2124
- fix(obsidian-triage): [HIMMEL-4850] component-scan and dedup-sweep suites are hermetic in worktrees by @yotamleo in #2127
- fix(cr): [HIMMEL-4945] review-round ancestry check fails closed on git errors by @yotamleo in #2128
- fix(eval): [HIMMEL-4946] review-panel eval flags finding-shaped bullets that fail BULLET by @yotamleo in #2126
- fix(handover): [HIMMEL-4931] legs record rulings as plain-fact bullets; quote-backs stay in the reply by @yotamleo in #2131
- fix(console-kit): [HIMMEL-4928] verdict records carry PR identity; trust GO refuses another PR's verdict by @yotamleo in #2130
- fix(hooks): [HIMMEL-4950] pr-check-literal refuses brace-expanded git options before a guarded pathspec by @yotamleo in #2129
- fix(hooks): [HIMMEL-4920] guard-implementor-dispatch defaults lift vars under set -u and clamps CADENCE_BANK_MAX_PCT by @yotamleo in #2132
- fix(hooks): [HIMMEL-4933] block-chokepoint-env-prefix seam-var check needs a real env prefix by @yotamleo in #2133
- fix(hooks): [HIMMEL-4934] live-settings guard keys on write targets; main-checkout guard resolves literal cd targets by @yotamleo in #2134
- fix(hooks): [HIMMEL-4954] block-chokepoint-env-prefix vcmd anchors on newline and keyword stage heads by @yotamleo in #2137
- fix(cloud): [HIMMEL-4744] setup-env passes paths to sh -c as positional args by @yotamleo in #2139
- chore(jira): [HIMMEL-4864] jira CLI MCP server on the stable TypeScript SDK v2 by @yotamleo in #2140
- chore(telegram): [HIMMEL-4865] telegram-himmel MCP server on the stable TypeScript SDK v2 by @yotamleo in #2144
- fix(hooks): [HIMMEL-4725] leg context guard accepts a quoted literal cd path by @yotamleo in #2141
- fix(console-kit): [HIMMEL-4753] write-verdict fails closed on an ACL probe error and bounds the record name by @yotamleo in #2142
- fix(hooks): [HIMMEL-4529] [HIMMEL-4414] chokepoint hook scans arith bodies and unset names in linear time by @yotamleo in #2145
- fix(hooks): [HIMMEL-4681] classifier-denial logger records the bracketed category as reason_tag by @yotamleo in #2154
- fix(hooks): [HIMMEL-4...
v1.1.0
What's Changed
- docs(tool-adoption): [HIMMEL-4654] record external eval framework decisions by @yotamleo in #1962
- feat(config-ui): [HIMMEL-4480] GET /api/agui/ streams a session journal as AG-UI over SSE by @yotamleo in #1964
- feat(eval): [HIMMEL-4647] eval-runs ledger and eval-compare by @yotamleo in #1965
- feat(doctor): [HIMMEL-4531] C54 reports orphaned hook copies via hook-copy-reaper (report-only) by @yotamleo in #1963
- feat(eval): [HIMMEL-4650] qmd-quality bootstrap CIs, paired per-query compare, config-stamped rows by @yotamleo in #1967
- feat(observability): [HIMMEL-4652] eval-runs ledger to Prometheus/Grafana with drift alerts by @yotamleo in #1968
- feat(config-ui): [HIMMEL-4480] serve the AG-UI page at /agui/ and print its live URL by @yotamleo in #1970
- feat(eval): [HIMMEL-4649] review-panel recall eval: seeded fixtures, hidden key, scorer by @yotamleo in #1969
- feat(eval): [HIMMEL-4648] lane-quality repeats, bootstrap CIs and judge calibration by @yotamleo in #1971
- test(config-ui): [HIMMEL-4480] opt-in e2e of the AG-UI page and a README GIF of a live run by @yotamleo in #1972
- fix(config-ui): [HIMMEL-4646] AG-UI page polish: run clock anchor, close open text on run end, own-property pointer checks by @yotamleo in #1973
- docs(evals): [HIMMEL-4482] review-panel write-up from the CR ledger by @yotamleo in #1974
- docs(evals): [HIMMEL-4550] prompt-cache and harness eval case study by @yotamleo in #1975
- fix(jira): [HIMMEL-4640] edit --priority reads the field back and fails loud on a no-op by @yotamleo in #1959
- feat(config-ui): [HIMMEL-4669] AG-UI page: per-agent attribution, agent filter, failure highlighting by @yotamleo in #1976
- feat(eval): [HIMMEL-4651] trajectory scoring from eval transcripts by @yotamleo in #1977
- fix(pipeline): [HIMMEL-4675] Instagram via Scrapling, deferred non-blocking partials, whisper/av pin by @yotamleo in #1980
- feat(hooks): [HIMMEL-4676] MCP call tracking + gating seam by @yotamleo in #1979
- fix(pipeline): [HIMMEL-4677] Scrapling-first for YouTube and X media, cookies demoted to fallback by @yotamleo in #1982
- feat(eval): [HIMMEL-4670] leg-digest extractor (P1) by @yotamleo in #1981
- feat(eval): [HIMMEL-4670] leg-failures ledger + leg-trajectory eval-runs rows (P2) by @yotamleo in #1984
- fix(cr): [HIMMEL-4697] accept a version-only plugin.json bump as merge-forward by @yotamleo in #1985
- fix(triage): [HIMMEL-4685] Phase 7 mark + Phase 8 move become one checked tool by @yotamleo in #1983
- feat(console-kit): [HIMMEL-4670] digest step in close-wrapped-leg (P3) by @yotamleo in #1987
- fix(telegram): [HIMMEL-4687] fresh plugin-profiles import for dispatch settings + alert on repeated identical failure by @yotamleo in #1988
- fix(pipeline): [HIMMEL-4684] IG fetch budget, batch tool writes .harvest.done, IG backend recorded by @yotamleo in #1989
- fix(hooks): [HIMMEL-4569] block a leg's non-hand-off work past 75 % context until its RESUME doc exists by @yotamleo in #1978
- fix(console-kit): [HIMMEL-4689] a sanctioned verdict writer for console-judge calls by @yotamleo in #1990
- feat(pipeline): [HIMMEL-4708] opt every cookie-backed media path out by default (HIMMEL_MEDIA_COOKIES) by @yotamleo in #1994
- feat(console-kit): [HIMMEL-4670] advisory fails= tick field + board failures panel (P4) by @yotamleo in #1996
- fix(cr): [HIMMEL-4700] a judge NO-GO record on the last reviewed head buys one delta round by @yotamleo in #1995
- feat(config-ui): [HIMMEL-4711] stale-dist banner, per-agent live state, live/idle top bar by @yotamleo in #1997
- fix(pipeline): [HIMMEL-4677] harvest a bare YouTube link via Scrapling; [HIMMEL-4684] backlog does not withhold harvest DONE by @yotamleo in #1998
- fix(doctor): [HIMMEL-4721] C22 counts a recent window, C3 ignores handovers/ churn by @yotamleo in #2000
- fix(luna): [HIMMEL-4719] upgrade dirty guard checks only template-owned paths by @yotamleo in #1999
- fix(console-kit): [HIMMEL-4714] write-verdict.sh always lands a NO-GO veto, plus evidence/stamp/lock/relay hardening by @yotamleo in #2001
- feat: [HIMMEL-4705] leg-digest-step --doc fallback window drops sessions of a leg spanning more than one midnight by @yotamleo11-test in #2004
- feat: [HIMMEL-4722] harvest youtube rung: validate scrapling helper payload types before rendering by @yotamleo11-test in #2003
- feat: [HIMMEL-4706] telegram bridge: retry the repeated-failure alert when its delivery throws by @yotamleo11-test in #2007
- fix(hooks): [HIMMEL-4710] leg context guard off by default, 75 % threshold, BLOCKED frees hand-off only by @yotamleo in #2002
- test: [HIMMEL-4694] assert the rtag canary row joins toolu_c2 by @yotamleo in #2009
- feat(config-ui): [HIMMEL-4712] AG-UI fleet view: every live session on one page by @yotamleo in #2012
- feat: [HIMMEL-4720] review-round verdict trigger follow-ups: pin the one-record-one-round and writer-stamp checks with tests; bind a record to its branch by @yotamleo11-test in #2013
- fix: [HIMMEL-4724] doctor c22 octal window value and c3 escaped porcelain paths (himmel-4721 follow-ups) by @yotamleo11-test in #2008
- fix(tests): [HIMMEL-4739] pin T25 hand-off entry set instead of a bare count by @yotamleo in #2015
- feat: [HIMMEL-4698] trajectory scorer misses quiet-run-wrapped suites (red_before_green / verify_before_claim mis-scored on legs) by @yotamleo11-test in #2014
- feat: [HIMMEL-4716] ag-ui stale-build check misses a deleted source file by @yotamleo11-test in #2018
- feat: [HIMMEL-4717] ag-ui clock jumps back when a live stream closes with a background call open by @yotamleo11-test in #2016
- feat: [HIMMEL-4668] test-himmel-doctor c19 healthy case compares worktree copies against the primary checkout by @yotamleo11-test in #2010
- fix(hooks): [HIMMEL-4678] make the Bash chain's command walkers linear by @yotamleo in #2011
- feat(cloud): [HIMMEL-4726] graphify and repo-only qmd in the cloud environment; cloud-route stops forcing them local by @yotamleo in #2006
- fix(console-kit): [HIMMEL-4731] [HIMMEL-4723] write-verdict keeps a NO-GO for another head; portable scratch-root mode read by @yotamleo in #2021
- feat(console-kit): [HIMMEL-4670] failure router (P5): recurrence, routing table, Jira file/comment, decision log by @yotamleo in #2020
- feat: [HIMMEL-4718] ag-ui: an agent's last activity misses the run end that closed its call by @yotamleo11-test in #2017
- fix: [HIMMEL-4734] test-tick.sh flake: plan-index-launch.sh writes .last-run before its exit trap removes .launch (himmel-4059 case) by @yotamleo11-test in #2019
- feat: [HIMMEL-4738] review-round.sh: refuse a verdict record when the consumed-qid scan fails (unreadable .verdicts) by @yotamleo11-test in #2025
- feat: [HIMMEL-4699] leg_ledger backfill freezes a still-live session at its first ok digest by @yotamleo11-test in #2023
- feat: [HIMMEL-4735] harvest youtube test: split malformed description and transcript cases by @yotamleo11-test in #2022
- feat: [HIMMEL-4730] leg-digest-step --doc fallback miscounts a midnight across a dst fall-back by @yotamleo11-test in #2024
- feat(leg-digest): [HIMMEL-4713] daily failure review cadence: router dry-run, digest, one Telegram line by @yotamleo in #2026
- fix: [HIMMEL-4701] leg_ledger: ok upgrade replaces stale rows, last title wins, live-minutes skip test by @yotamleo in #2027
- feat(config-ui): [HIMMEL-4711] fold the AG-UI into the config console: one rail, one theme, one URL by @yotamleo in #2028
- fix: [HIMMEL-4736] doctor C3 ages an untracked unstaged-move destination by ctime by @yotamleo in https://github.com/yotamleo/Himme...
v1.0.2
What's Changed
- fix(luna): [HIMMEL-4374] instagram-media probe surfaces the real failure; a login redirect reports a rejected session with the operator remedy by @yotamleo in #1832
- fix(hooks): [HIMMEL-4329] write fence matches path-qualified wrappers and reads chroot targets by @yotamleo in #1821
- fix(doctor): [HIMMEL-4382] doctor judges the station checkout; counts and last.tsv written together from one run by @yotamleo in #1840
- feat(config-ui): [HIMMEL-4379] bundle rows by feature: collapsed bundles, rollup health, problems-only toggle by @yotamleo in #1841
- feat(profiles): [HIMMEL-4400] leg-e2e profile carries one pinned Playwright MCP under strict mode by @yotamleo in #1842
- test(config-ui): [HIMMEL-4400] Playwright e2e for the bundle UI checklist and the consent contract by @yotamleo in #1843
- fix(hooks): [HIMMEL-4399] chokepoint hook stops UNSET_NAMES self-append; dedupe and fail-closed cap by @yotamleo in #1845
- fix(himmelctl): [HIMMEL-4403] handover-wiring resolves the real root from any checkout; feed.himmel identity by @yotamleo in #1844
- feat(observability): [HIMMEL-4289] opt-in observability-grafana item on Linux (pinned user units, cadence-alert, doctor C19) by @yotamleo in #1846
- chore(release): [HIMMEL-4417] bump VERSION to 1.0.2; cut-tag and a CI suite enforce VERSION == tag by @yotamleo in #1848
- feat(config-ui): [HIMMEL-4405] multi-page shell, page registry and version header by @yotamleo in #1850
- fix(handover): [HIMMEL-4416] headed-arm-leg loads .env HANDOVER_DIR before resolving the root by @yotamleo in #1849
- feat(console): [HIMMEL-4419] legs drive their ticket's Jira status; board shows per-version status by @yotamleo in #1851
- fix(doctor): [HIMMEL-4383] C40 initialize budget measured under load, no flap on a slow-but-alive qmd daemon by @yotamleo in #1853
- feat(cloud): [HIMMEL-4206] setup paste ends || true, cloud brief replaces handover/lock, static hooks audit by @yotamleo in #1854
- feat(tmp-reap): [HIMMEL-4224] a detached non-dumpable daemon no longer blocks --apply by @yotamleo in #1856
- docs(handover): [HIMMEL-4428] leg-brief-template gains an optional Exemplar line by @yotamleo in #1859
- feat(config-ui): [HIMMEL-4405] [HIMMEL-4291] Health page: doctor, setup, jobs, bank, legs, freshness by @yotamleo in #1860
- fix(eval): [HIMMEL-4439] qmd-quality adopts the index's embed model or refuses a mismatch by @yotamleo in #1858
- fix(doctor): [HIMMEL-4436] C44 is INFO when the qmd items are not wanted by @yotamleo in #1861
- fix(install): [HIMMEL-4435] pre-commit item not wanted for vault=none; no uv/pipx warning without a vault by @yotamleo in #1857
- feat(console): [HIMMEL-3990] roadmap tracker redesign: drill-down numbers, user-impact rows, live legs by @yotamleo in #1532
- fix(hooks): [HIMMEL-4157] chokepoint text layer fails closed on a glob that hides the anchor by @yotamleo in #1685
- fix(luna): [HIMMEL-4392] pin fetch-health error-line redaction for x-media, x-twitter-cli and github by @yotamleo in #1862
- test(claude): [HIMMEL-4410] credential-free Claude startup suite under a loopback-only network sandbox by @yotamleo in #1847
- fix(tmp-reap): [HIMMEL-4437] an orphaned non-dumpable session child is not detached by @yotamleo in #1866
- feat(himmelctl): [HIMMEL-4432] status owns qmd daemon health (qmd-daemon item); doctor C40 composes it by @yotamleo in #1867
- fix(console): [HIMMEL-4441] tracker: empty versions snapshot falls back; actuals count only Results bullets by @yotamleo in #1869
- fix(config-ui): [HIMMEL-4443] Health polish: loading view on Config return, per-source monitoring failure by @yotamleo in #1870
- fix(cr): [HIMMEL-4452] guard leg-jira-status.sh; closure test ignores the jira dist build by @yotamleo in #1872
- fix(himmelctl): [HIMMEL-4440] pre-commit item wanted for a core target shipping its own config by @yotamleo in #1873
- fix(telegram): [HIMMEL-4446] poller-gate-shape skips with a clear line when plugin deps are absent by @yotamleo in #1864
- fix(handover): [HIMMEL-4420] handover_root callers load .env HANDOVER_DIR first by @yotamleo in #1865
- test(cr): [HIMMEL-4455] closure test drops the jira dist edge per parent, not globally by @yotamleo in #1875
- test(claude): [HIMMEL-4411] mock-anthropic scripted /v1/messages for zero-cost Claude turn tests by @yotamleo in #1868
- fix(hooks): [HIMMEL-4442] [HIMMEL-4448] chokepoint relief refuses every function shadowing a relief name by @yotamleo in #1871
- perf(hooks): [HIMMEL-4447] chokepoint relief stops the token walk once no marker is left by @yotamleo in #1877
- fix(auth): [HIMMEL-4459] native-auth-pin fails closed under shadowed tools by @yotamleo in #1876
- fix(lanes): [HIMMEL-4462] leg-pr-open refuses a title whose ticket mismatches the branch or PR by @yotamleo in #1879
- fix(auth): [HIMMEL-4461] move cd before the native-auth launch gate, state the guarantee's limits by @yotamleo in #1880
- fix(profiles): [HIMMEL-4401] composed profiles refuse conflicting mcpServers allowlists by @yotamleo in #1881
- feat(guardrails): [HIMMEL-4328] block salus content from the hosted agent-native (Builder.io) MCP by @yotamleo in #1878
- test(ci): [HIMMEL-4412] mock-backed consult-sandbox and hook-chain smokes in claude-startup by @yotamleo in #1882
- feat(hooks): [HIMMEL-4445] block-bank-lift-writes: agents cannot write the bank lift or run bank-lift.sh set by @yotamleo in #1874
- feat(bank): [HIMMEL-4423] expiring, account-bound seven_day lift read by bank-preflight by @yotamleo in #1855
- fix(handover): [HIMMEL-4456] resolve the Jira CLI dist from the primary checkout in arm-resume and breadcrumb by @yotamleo in #1885
- fix(guardrails): [HIMMEL-4463] agent-native egress hook fails closed on its residuals by @yotamleo in #1883
- feat(bank): [HIMMEL-4421] bank-monitor + tick project unspent weekly quota at reset by @yotamleo in #1884
- test(eval): [HIMMEL-4422] account-switch scenario + prompt-cache audit row from live bank reset by @yotamleo in #1888
- feat(jira): [HIMMEL-4469] version-archive op with issue-count guard by @yotamleo in #1887
- fix(hooks): [HIMMEL-4359] write fence taints ~ and $HOME after an in-command HOME assignment by @yotamleo in #1886
- fix(console): [HIMMEL-4468] tracker.py writes the luna-map cache with a trailing newline by @yotamleo in #1890
- docs(handover): [HIMMEL-4430] account-switch runbook section in running-a-console by @yotamleo in #1891
- feat(bank): [HIMMEL-4470] bank-monitor five_hour_reset_in field by @yotamleo in #1889
- feat(luna): [HIMMEL-4344] local-headless scrape backend via Scrapling stealth fetcher by @yotamleo in #1894
- fix(cr): [HIMMEL-4323] scan-roots map: npm-licenses row, veto rows for skipped files by @yotamleo in #1895
- fix(hooks): [HIMMEL-4367] [HIMMEL-4364] narrow read-only over-denies in live-settings, read-secrets and pr-check-literal by @yotamleo in #1896
- fix(auth): [HIMMEL-4461] [HIMMEL-4460] shadow-proof pin enumeration, exact-name seam gate, seam registered by @yotamleo in #1893
- feat(luna): [HIMMEL-4471] vault-stall cadence remediates benign pre-commit refusals by @yotamleo in #1897
- fix(jira): [HIMMEL-4489] freeze default never targets a released version, explicit --fix-version wins by @yotamleo in #1898
- feat(qmd): [HIMMEL-4184] weekly qmd-quality drift cadence, off until armed by @yotamleo in #1906
- fix(tests): [HIMMEL-4434] [HIMMEL-4236] trap-clean leaking fixtures in six non-trust-path suites by @yotamleo in #1902
- fix(hermes): [HIMMEL-4209] classify manage_catalog; make live-install registry read opt-in by @yotamleo in https://github.com/yotamleo/H...
v1.0.2-pre.1
What's Changed
- feat: [HIMMEL-4018] enable obsidian-second-brain in the vault profiles only by @yotamleo in #1774
- fix(hooks): [HIMMEL-4249] mark five shebang hook scripts executable by @yotamleo in #1782
- fix(luna): [HIMMEL-4306] throttle and buffer every Instagram request, cache the health probe by @yotamleo in #1786
- feat(doctor): [HIMMEL-4254] himmel-doctor --json, the config UI's status feed (P1) by @yotamleo in #1788
- fix(gates): [HIMMEL-4301] CI range gate for unchecked mktemp; merge-inherited lines not the merge's own by @yotamleo in #1783
- fix(hooks): [HIMMEL-4171] fold every component spelling of the home dot-claude name by @yotamleo in #1773
- fix(hermes): [HIMMEL-4307] resolve the hermes runtime via its launcher, not the legacy 3.11 venv by @yotamleo in #1787
- fix(console): [HIMMEL-4311] board and tick list the project's PRs, not himmel's (#1785) by @Goomal in #1791
- fix(hooks): [HIMMEL-4225] insteadOf decoders read comments and heredoc bodies as non-quoting by @yotamleo in #1789
- fix(template): [HIMMEL-3642] delete the dead vault conventional-commit-msg hook (operator ruling) by @yotamleo in #1793
- fix(ci): [HIMMEL-4250] [HIMMEL-4265] shellcheck green on main; CI shellcheck at hook parity by @yotamleo in #1794
- fix(console): [HIMMEL-4300] ticket-coverage lint legs run before READY by @yotamleo in #1797
- fix(ci): [HIMMEL-4256] impacted selector selects directory-scan suites via a scan-roots map by @yotamleo in #1798
- feat(himmelctl): [HIMMEL-4254] himmelctl report --json and the flag registry (P2) by @yotamleo in #1792
- fix(hooks): [HIMMEL-4255] deny the find -delete forms both hooks share, and bound the shell FIND_DELETE_PAT by @yotamleo in #1799
- feat(console): [HIMMEL-4235] close-wrapped-leg reaps the wrapped leg's /tmp scratch by @yotamleo in #1796
- fix(qmd): [HIMMEL-4314] embed-model swap holds one lock that every daemon start honours by @yotamleo in #1795
- fix(himmelctl): [HIMMEL-4327] secret presence from per-secret probes, redactor hardening by @yotamleo in #1803
- feat(doctor): [HIMMEL-4268] qmd fork build stamp vs deployed HEAD vs pin by @yotamleo in #1802
- feat(profiles): [HIMMEL-4326] agent-native in the design profile (VM-proven) by @yotamleo in #1801
- fix(hooks): [HIMMEL-4244] [HIMMEL-4245] qmd guard reads residual launchers; stdin-shell check needs the consumer's program by @yotamleo in #1784
- feat: [HIMMEL-4290] ledger registry (ledgers.json) + lint; cadence-alerts.log to jsonl with delivered field by @yotamleo11-test in #1804
- fix(hooks): [HIMMEL-4213] [HIMMEL-4228] write fence reads the verb behind prefix words and
${…}/$ […] values by @yotamleo in #1790 - feat(observability): [HIMMEL-4288] run the flow exporter as a systemd user unit / launchd agent by @yotamleo in #1810
- fix(update): [HIMMEL-4313] update's drift pass runs the qmd skills-collection ensure by @yotamleo in #1811
- fix(doctor): [HIMMEL-4333] [HIMMEL-4287] C41 ack/env path, C22 fixture exclusion, C19 gated on desired item, C16/C21 records by @yotamleo in #1807
- feat(himmelctl): [HIMMEL-4254] himmelctl ui, read-only config UI (P3) by @yotamleo in #1808
- fix: [HIMMEL-2318] queue-lock: a live leg silently outruns the 6h ttl - the aging warning is pull-only, emitted from queue_lock_status() which a long leg never calls by @yotamleo11-test in #1809
- fix(hooks): [HIMMEL-4298] [HIMMEL-4192] live-settings HOME forms, interpreter writes, linear $" and heredoc scans by @yotamleo in #1800
- fix(worktree): [HIMMEL-4334] merged worktrees stop piling up: scratch dir, root strays, retry, daemon cwd by @yotamleo in #1806
- feat(himmelctl): [HIMMEL-4341] [HIMMEL-4342] observability-stack probe via install-stack status; escape % in unit paths by @yotamleo in #1813
- feat(luna): [HIMMEL-4335] firecrawl per-call ledger, scrape via jina reader behind a flag, free health probe by @yotamleo in #1812
- feat(config-ui): [HIMMEL-4254] actions: preview, typed consent, run, lock, audit (P4) by @yotamleo in #1815
- fix(hooks): [HIMMEL-4253] write fence resolves tilde redirect targets by @yotamleo in #1814
- fix(ci): [HIMMEL-4332] [HIMMEL-4350] pin node 22 for flag-registry-lint, bun-suites checkout drops persisted credentials, config-feed blank-first-line value by @yotamleo in #1817
- fix(himmelctl): [HIMMEL-4350] himmelctl ui refuses under an agent session; gaps help alignment by @yotamleo in #1819
- fix(luna): [HIMMEL-4351] harvest G-1 gate enforces .harvest-deny/.harvest-allow for every scrape backend by @yotamleo in #1816
- fix(qmd): [HIMMEL-4237] pin the qmd fork to 932839a2 (rerank load timeout) by @yotamleo in #1820
- fix(doctor): [HIMMEL-4363] full doctor runs refresh the statusline counts; a stale segment shows its age by @yotamleo in #1823
- fix(config-ui): [HIMMEL-4354] audit rejected runs, supervise an onSpawn failure, stream-decode output, lock follow-ups by @yotamleo in #1825
- feat(luna): [HIMMEL-4361] scrape-provider registry, per-site .harvest-backends routing, kill switch and credit ceiling by @yotamleo in #1824
- feat(eval): [HIMMEL-4362] scrape-provider benchmark harness and first results by @yotamleo in #1822
- fix(tmp-reap): [HIMMEL-4325] judge scratch dirs carry a holder; reap a dead judge's dir at once, never a live one by @yotamleo in #1828
- fix(config-ui): [HIMMEL-4369] server idleTimeout covers every route budget; the feed no longer dies at 10 s by @yotamleo in #1827
- fix(luna): [HIMMEL-4371] Firecrawl unavailable (credits exhausted) parks affected items, warns in doctor, retries after reset by @yotamleo in #1829
- fix(himmelctl): [HIMMEL-4373] config feed: one owner per finding, a remedy on every FAIL/WARN row, station-anchored probes by @yotamleo in #1830
- fix(luna): [HIMMEL-4370] [HIMMEL-4368] scrape routing hardening: strict credit and budget parsing, stealth refusal, deny parity, ceiling notice by @yotamleo in #1835
- fix(eval): [HIMMEL-4378] scrape-bench follow-ups: fixture ids, stale rows, long-body error markers, unknown-vs-zero credits by @yotamleo in #1834
- fix(update): [HIMMEL-4380] a deleted _CLAUDE.md section resolves once, catch-up skips uninstalled plugins, graphify sync can clear, himmel shim by @yotamleo in #1831
- chore: [HIMMEL-4381] remove zero-usage improve and guardrail-sim; clear doctor C18 by @yotamleo in #1833
- fix(minerva): [HIMMEL-4375] surface-shaped designs carry a fact-ownership matrix; every invariant names its test by @yotamleo in #1836
- fix(hooks): [HIMMEL-4353] live-settings fence reads glob and brace targets inside interpreter bodies by @yotamleo in #1818
- fix(eval): [HIMMEL-4389] scrape-bench: error-page detection keys on short marker-dominated bodies; portable ledger-warning test by @yotamleo in #1838
- fix(template): [HIMMEL-4386] upgrade vault-deletion resolver parses diff3 with a unique marker size and requires complete hunks by @yotamleo in #1839
- test(hooks): [HIMMEL-4164] split the write-fence suite under the CI cap by @yotamleo in #1837
Full Changelog: v1.0.1...v1.0.2-pre.1
v1.0.1
What's Changed
- feat(update): [HIMMEL-4088] himmel-update upgrades behind probe-mode station tools by @yotamleo in #1599
- fix(template): [HIMMEL-4087] backport vault autosync stall fixes (gitleaks SHA allowlist, hook excludes) by @yotamleo in #1598
- fix(lanes): [HIMMEL-4084] deepseek alias-route model slug, vault-by-marker classification, ps1 seed-lock guard by @yotamleo in #1602
- fix(lanes): [HIMMEL-4070] runtimeNamesOf applies install scope and projectPath by @yotamleo in #1601
- feat(lanes): [HIMMEL-4084] headed-arm-leg --lane registry (native, claudex, openrouter, deepseek) by @yotamleo in #1600
- fix(plugins): [HIMMEL-4020] telegram profile drops unused claude-obsidian by @yotamleo in #1603
- fix(lanes): [HIMMEL-4033] content-addressed profile settings file; hop derives profile from doc by @yotamleo in #1604
- docs(handover): [HIMMEL-4089] claudex legs stay awake on BLOCKED and READY via an own-inbox Monitor; trust-path pre-dispatch step by @yotamleo in #1605
- fix(lanes): [HIMMEL-4060] skill listing passes the cwd to runtimeNamesOf by @yotamleo in #1606
- test(ci): [HIMMEL-4077] at/atd install test catches a swallowed install failure by @yotamleo in #1608
- fix(lanes): [HIMMEL-4091] shared lane mirror-seed; nested-edit reseed; seed-lock steal checks owner liveness by @yotamleo in #1609
- test(lanes): [HIMMEL-4096] lane-mirror-seed test asserts the full copy set and deletion mirror by @yotamleo in #1610
- feat(lanes): [HIMMEL-4021] per-profile autocompact ceiling read by the launchers; contextBudget recalibrated from measured legs by @yotamleo in #1607
- chore(ci): [HIMMEL-4075] refresh stale shard duration weights by @yotamleo in #1611
- fix(lanes): [HIMMEL-4093] mirror-seed lock steal retires a stale lock by inode identity, closing the check-then-rename race by @yotamleo in #1612
- fix(lanes): [HIMMEL-4094] context cap names its profile source; ambient context-profile env no longer trusted by @yotamleo in #1613
- fix(lanes): [HIMMEL-4096] mirror-seed pending dir survives pid reuse, special files no longer fail a launch; [HIMMEL-4093] retirement unlinks a planted owner and rechecks identity by @yotamleo in #1614
- feat(lanes): [HIMMEL-4094] the leg-burn line names the leg's profile by @yotamleo in #1615
- feat(lanes): [HIMMEL-4094] the leg launcher hands each leg its profile name by @yotamleo in #1616
- fix(lanes): [HIMMEL-4096] mirror-seed reseed no longer fails on a read-only mirrored directory by @yotamleo in #1618
- fix(lanes): [HIMMEL-4086] gateway launchers set CLAUDE_CODE_AUTO_MODE_SERVER=0 by @yotamleo in #1622
- feat(lanes): [HIMMEL-4083] claude-openrouter maps each model tier to its own slug by @yotamleo in #1621
- feat(plugins): [HIMMEL-4019] dormant plugins as profile candidates; catalog-vs-installed check by @yotamleo in #1623
- fix(lanes): [HIMMEL-4096] deepseek PS uses first curl on PATH; Codex PS suite runs in ubuntu CI by @yotamleo in #1620
- fix(hooks): [HIMMEL-4100] end-session-wiki PS resolves pwsh as an Application by @yotamleo in #1624
- fix(ps): [HIMMEL-4100] pin the first PATH match for Get-Command .Source by @yotamleo in #1625
- fix(ci): [HIMMEL-4073] install at without apt-get update in the common case by @yotamleo in #1626
- feat(console-kit): [HIMMEL-3748] fleet manifest is the single source for Live state, waiter and board by @yotamleo in #1629
- fix(hooks): [HIMMEL-4104] auto-arm-on-cap passes through the claudex proxy lane by @yotamleo in #1630
- fix(ci): [HIMMEL-4103] OEM-encoding detector ignores Get-Command arguments by @yotamleo in #1631
- feat(lanes): [HIMMEL-4082] headless claude spawn sites honour a HIMMEL_CLAUDE_LANE seam by @yotamleo in #1632
- fix(handover): [HIMMEL-3884] console arms default to 1m context; console.sh --context flag by @yotamleo in #1633
- fix(hooks): [HIMMEL-4106] auto-arm-on-cap z.ai lane check matches by host by @yotamleo in #1635
- fix(handover): [HIMMEL-4112] leg test reliability — merge-forward, timing suites, skip truth table by @yotamleo in #1634
- Revert "fix(handover): [HIMMEL-4112] leg test reliability — merge-forward, timing suites, skip truth table" by @yotamleo in #1636
- feat(lanes): [HIMMEL-4081][HIMMEL-4089] OpenRouter bank gate on effective key balance; dead-owner fleet reservations reclaimed by @yotamleo in #1628
- fix(lanes): [HIMMEL-4116] size skill-listing budget against the profile's own context window by @yotamleo in #1639
- fix(console-kit): [HIMMEL-4069] confine consult sandbox writes; lift the 4066 refusal on the confined path by @yotamleo in #1638
- fix(hooks): [HIMMEL-3961] stop reading rg/grep -ln flag clusters as the ln verb by @yotamleo in #1640
- fix(handover): [HIMMEL-4114] merge-forward only for a red inherited from the base; re-land HIMMEL-4112 salvage by @yotamleo in #1637
- fix(hooks): [HIMMEL-4011] refuse quoted qmd verbs; bound test-qmd-bounded hanging cases by @yotamleo in #1641
- feat(plugins): [HIMMEL-4024] opt-in code kit profiles (code, code-ui) with CLI install and drift rows by @yotamleo in #1642
- fix(hooks): [HIMMEL-4095] chokepoint guard reads only real env long options as env-clearing by @yotamleo in #1645
- fix(fleet): [HIMMEL-4115] hold a dead-owner reservation for a grace window before reclaim by @yotamleo in #1646
- docs: [HIMMEL-4122] land post-09-29 memory-compound lessons in console, hermes and gotchas docs by @yotamleo in #1648
- feat(eval): [HIMMEL-4090] lane-quality eval harness, phase 1 (native lane) by @yotamleo in #1647
- fix(eval): [HIMMEL-4090] mark lane-quality claude launch sites profile-exempt by @yotamleo in #1651
- fix(hooks): [HIMMEL-3991] scan backslash-newline-joined text in block-destructive-commands by @yotamleo in #1643
- fix(hooks): [HIMMEL-3980] no-headless-claude gate sees a spawn split by a comment line by @yotamleo in #1644
- fix(handover): [HIMMEL-4117] suite-coverage cap reads the runner's default; classification tests assert exit status by @yotamleo in #1653
- fix(fleet): [HIMMEL-4125] read the debris seen-stamp base 10 and length-bounded by @yotamleo in #1649
- feat(eval): [HIMMEL-4090] lane-quality eval phase 2: OpenRouter lane with real-spend cap by @yotamleo in #1655
- docs: [HIMMEL-4018] obsidian-second-brain installs as the himmel plugin, never a user-scope clone by @yotamleo in #1654
- fix(hooks): [HIMMEL-4124] [HIMMEL-4123] share the headless spawn join; gemini argv-spawn parity, comment-proof join by @yotamleo in #1656
- fix(update): [HIMMEL-4127] update url-sourced @himmel plugins; drop the stale manual-clone text by @yotamleo in #1657
- docs: [HIMMEL-4128] stuck-playbook trailer recovery is a recut, matching ready-check check 5 by @yotamleo in #1659
- fix(hooks): [HIMMEL-3984][HIMMEL-3983] destructive floor sees rm behind wrappers, compound keywords and find -exec/-delete by @yotamleo in #1658
- fix(ci): [HIMMEL-4131] check-ci --max-wait bounds the whole run, not each watch round by @yotamleo in #1660
- fix(hooks): [HIMMEL-4132] read gate inputs from stdin so a name=value filename cannot fail open by @yotamleo in #1662
- fix(hooks): [HIMMEL-4010] write fence sees ANSI-C quotes, computed targets, verbs in substitution bodies by @yotamleo in #1661
- fix(handover): [HIMMEL-4118] consult confinement follow-ups: argv assert, arm-resume seam scrub, plugin-hook canary by @yotamleo in #1665
- fix(guardrails): [HIMMEL-4137] lint-fail-open rel() guards ident= dirs; pip-hashes suite; pin marked -lead.js by @yotamleo in #1668
- fix(handover): [HIMMEL-4139] wrap-subtree-check treats the claude-hud statusline refresh as harness by @yotamleo in #16...
v1.0.1-pre.4
What's Changed
- feat(lanes): [HIMMEL-4076] leg launcher --lane openrouter with a credit floor by @yotamleo in #1595
- feat(lanes): [HIMMEL-4084] claude-deepseek launcher with per-station egress flag by @yotamleo in #1596
- feat(plugins): [HIMMEL-4018] obsidian-second-brain as a profile-controlled plugin; probe refuses user-scope skills by @yotamleo in #1597
Full Changelog: v1.0.1-pre.3...v1.0.1-pre.4
v1.0.1-pre.3
What's Changed
- chore(statusline): [HIMMEL-4085] re-vendor claude-hud to upstream v0.9.0 by @yotamleo in #1594
- fix(console): [HIMMEL-4066] consult sandbox hardening: in-repo doc refusal, scope-merge guard, opt-in smoke test by @yotamleo in #1589
Full Changelog: v1.0.1-pre.2...v1.0.1-pre.3
v1.0.1-pre.2
What's Changed
- fix(lanes): [HIMMEL-4072] profile probe reports environment plugins separately instead of failing the profile by @yotamleo in #1591
- fix(ci): [HIMMEL-4073] at/atd install skips apt-get update unless the plain install fails by @yotamleo in #1592
- fix(console): [HIMMEL-4071] leg owns pre-READY CI red; merge-block alerts reach the console only after GO by @yotamleo in #1590
Full Changelog: v1.0.1-pre.1...v1.0.1-pre.2
v1.0.1-pre.1
What's Changed
- fix(ci): [HIMMEL-3916] shard-manifest-verify fails closed on a suite path containing whitespace by @yotamleo in #1493
- fix(ci): [HIMMEL-3906] macos shard uploads failed.txt only after a completion sentinel by @yotamleo in #1492
- fix(release): [HIMMEL-3603] gen-changelog folds same-commit pre-release sections into the final tag, regenerate CHANGELOG by @yotamleo in #1497
- fix(ci): [HIMMEL-3920] release workflow uses the curated notes file, bounded generated notes otherwise by @yotamleo in #1499
- fix(hooks): [HIMMEL-3915] block-unresolved-cr-merge fails closed on an unresolved PR lookup for a real merge by @yotamleo in #1494
- fix(hooks): [HIMMEL-3917] prlit backstop denies the write channel, not the executor by @yotamleo in #1500
- fix(ci): [HIMMEL-3919] timeout-minutes on the shell-unit shards and a bounded apt/at install by @yotamleo in #1498
- fix(lanes): [HIMMEL-1700] one shared codex-bank refuse threshold (90) for bank-status and spawn-claudex by @yotamleo in #1502
- fix(jira): [HIMMEL-3901] print jira link as Jira stores it, document positional direction by @yotamleo in #1505
- fix(where-are-we): [HIMMEL-3871] use shared isMain in collect/index/provision entry guards by @yotamleo in #1506
- fix(lanes): [HIMMEL-1687] dispatch summary states pushed/commits/worktree_clean by @yotamleo in #1507
- fix(lanes): [HIMMEL-1448] profile-managed lanes stay suppressed when the registry grows by @yotamleo in #1503
- fix(hooks): [HIMMEL-1608] guard-implementor-dispatch names the Plan route and stops reading data as an action verb by @yotamleo in #1504
- chore(packaging): [HIMMEL-3931] bump AUR PKGBUILD to v1.0.0 by @yotamleo in #1509
- fix(lanes): [HIMMEL-3926] worktree_clean ignores user/repo status config by @yotamleo in #1510
- fix(hooks): [HIMMEL-3793] auto-approve-safe-bash falls through on an unquoted escaped ampersand by @yotamleo in #1512
- fix(lanes): [HIMMEL-3927] profileManaged marker gates the claude-tier allowlist exemption by @yotamleo in #1511
- fix(hooks): [HIMMEL-3918] block-unresolved-cr-merge closes six residual gaps by deny by @yotamleo in #1501
- fix(hooks): [HIMMEL-3914] chokepoints refuse a seam that differs from the session launch env by @yotamleo in #1508
- fix(hooks): [HIMMEL-3700] block-edit-live-settings closes four pre-existing write paths by @yotamleo in #1513
- fix(security): [HIMMEL-3932] anchor-handoff source line no longer trusts a PATH-resolved dirname by @yotamleo in #1515
- feat(console): [HIMMEL-3933] console-kit keeps the roadmap tracker current (tick tracker= field) by @yotamleo in #1516
- fix(ci): [HIMMEL-3923] a suite lock held by an orphaned owner is reclaimed by @yotamleo in #1519
- fix(console): [HIMMEL-3768] board.mjs --changed reflects CI colour and fleet capacity by @yotamleo in #1521
- fix(console): [HIMMEL-3954] tracker drops Closed-by-roadmap, shows parked tickets, counts only open unplanned by @yotamleo in #1523
- fix(ci): [HIMMEL-3953] W19 waits for the waiter's branded ticket before deleting it by @yotamleo in #1522
- docs(tooling): [HIMMEL-3883] sprint-1 re-audit verdicts for caveman, agent-skills, Understand-Anything by @yotamleo in #1524
- feat(console): [HIMMEL-3957] tracker design pass: row fields, legend, ledger, plan caps, palettes by @yotamleo in #1529
- fix(hooks): [HIMMEL-2195] no-headless-claude gate catches argv-array spawns of claude by @yotamleo in #1526
- fix(hooks): [HIMMEL-3668] auto-approve falls through on uniq output operand and rg --pre by @yotamleo in #1525
- feat(console): [HIMMEL-3748] fleet manifest drives the waiter's leg set (tick --legs-from) by @yotamleo in #1530
- fix(hooks): [HIMMEL-3650] deny recursive rm spelled with quoted/escaped flags by @yotamleo in #1528
- fix(hooks): [HIMMEL-3622] write fence scans redirects inside $(...) and backtick bodies by @yotamleo in #1531
- fix(hooks): [HIMMEL-3921] text-deny seam writes beside an obfuscated chokepoint path by @yotamleo in #1518
- feat(jira): [HIMMEL-4006] version-move verb positions a version after another by @yotamleo in #1534
- fix(hooks): [HIMMEL-3929] block-unresolved-cr-merge recognises every gh merge spelling by @yotamleo in #1517
- fix(qmd): [HIMMEL-3956] bound every qmd run by a process-group deadline and carry the launcher-signal fork by @yotamleo in #1533
- feat(skills): [HIMMEL-3995] effort-assess skill: reference-class estimate with DoD gate by @yotamleo in #1535
- fix(lanes): [HIMMEL-4012] design profile enables the full design pack by @yotamleo in #1536
- fix(console): [HIMMEL-4026] tracker keeps trail versions (v1.0.1a/b/c) by @yotamleo in #1539
- fix(tests): [HIMMEL-4008] make test-update-autostash hermetic to real station state by @yotamleo in #1541
- fix(setup): [HIMMEL-4025] plugin-profile reads claude plugin list --json, tolerates multi-project rows by @yotamleo in #1538
- fix(tests): [HIMMEL-4009] SC6L pins git's fatal: line, not its pre-2.56 wording by @yotamleo in #1542
- feat(usage): [HIMMEL-3994] per-ticket usage records, computed once, append-only by @yotamleo in #1544
- feat(plugins): [HIMMEL-4012] design kit PR2a: drift guard for tag streams and git-subdir, impeccable git-subdir, emilkowalski pilot by @yotamleo in #1545
- feat(handover): [HIMMEL-1880] periodic seat-liveness reconcile with DIED/NEVER-STARTED/STILL-RUNNING by @yotamleo in #1543
- feat(lanes): [HIMMEL-4036] profile probe measures the post-cap skill listing by @yotamleo in #1547
- test(setup): [HIMMEL-4028] plugin-profile verified apply through the --json path by @yotamleo in #1549
- fix(cr): [HIMMEL-4040] pr-check spells scripts/cr calls as the relative literal in a matching worktree by @yotamleo in #1550
- fix(hooks): [HIMMEL-844] deny url.insteadOf git config in all three write fences by @yotamleo in #1527
- fix(hooks): [HIMMEL-3955] chokepoint text layer scopes env-clearing tokens to env-like words by @yotamleo in #1537
- fix(doctor): [HIMMEL-4037] warn on plugins enabled but not installed by @yotamleo in #1548
- feat(usage): [HIMMEL-4030] PR/CI facts join usage records, fail-closed by @yotamleo in #1552
- feat(minerva): [HIMMEL-3996] grill gates the spec critic on estimate, alternatives and DoD by @yotamleo in #1551
- fix(lanes): [HIMMEL-4013] every claude launch path applies a role-matched profile by @yotamleo in #1546
- feat(release): [HIMMEL-4034] follow-up classes, required deferral label, per-version report by @yotamleo in #1553
- feat(roadmap): [HIMMEL-4000] index the plan into a roadmap-plan qmd collection, rebuilt only on change by @yotamleo in #1554
- fix(console): [HIMMEL-4052] console arm applies the console profile and propagates a profile refusal by @yotamleo in #1555
- feat(plugins): [HIMMEL-4012] design kit PR2b: remaining rows, add-on profiles, shadcn-mcp wrapper by @yotamleo in #1556
- feat(lanes): [HIMMEL-3997] effort-assess record recommends LEG_EFFORT in /lanes, fanout and arm-leg by @yotamleo in #1558
- fix(hooks): [HIMMEL-3938] block-edit-live-settings closes brace/glob leaf, parent-dir copy and Windows alias bypasses by @yotamleo in #1557
- feat(console): [HIMMEL-4051] tick refreshes the roadmap plan index and reports plan-index= by @yotamleo in #1560
- feat(roadmap): [HIMMEL-4050] plan index emits graph.json with typed edges by @yotamleo in #1559
- fix(handover): [HIMMEL-4054] hop propagates arm-resume's exit status by @yotamleo in #1563
- fix(hooks): [HIMMEL-2141] block-unresolved-cr-merge binds the PR number to its repo by @yotamleo in #1561
- fix(cr): ...