{"generated":"2026-09-28T10:35:54Z","total":1000,"per_page":100,"pages":10,"prs":[{"n":126153,"t":"Kanban workers boot on store-Python installs; unknown assignee, gh identity and dead-credential exits fixed (#122299 #122487 #122500 #122422 #122689, salvage #122420 #122567 #122714 #122716)","a":"teknium1","s":"open","m":"","c":12},{"n":126172,"t":"fix(pm): package-manager installs keep features, deps and diagnostics across updates (salvage #124060, #124246, #124446, #124656)","a":"teknium1","s":"open","m":"","c":24},{"n":126165,"t":"Off-turn work (curator, deferred reviews, catalog SWR, plugin API routes, ledger replay) runs under the requesting profile; import model_tools no longer creates state.db (#125032 #108537 #120310 #123372 #103778 #123265)","a":"teknium1","s":"open","m":"","c":19},{"n":126163,"t":"Gateway status, update, dashboard and served-profile guard stop lying about multiplex/standalone state (#120991 #125390 #123088 #123869 #121352 #120871 #124553, salvage #120997 #125397 #123106 #121574 #122169 #124669)","a":"teknium1","s":"open","m":"","c":22},{"n":126160,"t":"Multiplex secondary profiles keep their A2A gate, Buzz config, plugin injector, MCP headers, describe and tools.list scoped to the served profile (#122126 #125985 #125102 #119092 #120726 #117977)","a":"teknium1","s":"open","m":"","c":21},{"n":126156,"t":"cron under multiplex: liveness, manual-run delivery, managed routes, degraded-send retention and worker secrets follow the job's owning profile (#121881 #99579 #99631 #124248 #120330 #125363 #121212 #121929)","a":"teknium1","s":"open","m":"","c":14},{"n":121169,"t":"feat(bot_desktop): Bot Screen, computer_use and the browser run inside the terminal backend","a":"teknium1","s":"merged","m":"2026-09-28","c":49},{"n":126159,"t":"Desktop/TUI act on the session's owning profile, not the backend launch profile: /save, interrupt hook, /model sync, resume hint and route, slash palette, Open Logs, API-server card (8 issues, salvages 6 PRs)","a":"teknium1","s":"merged","m":"2026-09-28","c":31},{"n":126150,"t":"hermes update works on shallow, stale and partial-clone checkouts (salvage #122430, #123312, #124293, #124671)","a":"teknium1","s":"merged","m":"2026-09-28","c":10},{"n":126178,"t":"Held SQLite locks no longer read as dropped under parallel load (preview lock test flake, write-lock owner warning)","a":"teknium1","s":"merged","m":"2026-09-28","c":5},{"n":126113,"t":"Updates work behind corporate CA/npm mirrors, and refused .env writes stop reporting success (#124654, #123132, #119928)","a":"teknium1","s":"merged","m":"2026-09-28","c":19},{"n":126149,"t":"fix(update): bring a manual dashboard back after the PM takeover, and book a failed respawn as failed","a":"teknium1","s":"merged","m":"2026-09-28","c":9},{"n":121110,"t":"Publish nousresearch/hermes-sandbox:desktop, the terminal-backend sandbox image with a display stack","a":"teknium1","s":"merged","m":"2026-09-28","c":4},{"n":125995,"t":"Desktop app ships the default browser driver (browser-harness in the main venv)","a":"teknium1","s":"merged","m":"2026-09-28","c":17},{"n":126073,"t":"chore(catalog): bump desensitize pin to 4f6697c (v1.4.1)","a":"teknium1","s":"merged","m":"2026-09-28","c":1},{"n":126041,"t":"feat(plugin-catalog): add antigravity-oauth model provider plugin","a":"neerazz","s":"merged","m":"2026-09-28","c":1},{"n":125665,"t":"catalog: session-dashboard — pin f5a880c + social preview image","a":"tommulkins","s":"merged","m":"2026-09-28","c":1},{"n":125945,"t":"chore(plugin-catalog): bump hermes-lcm-x to v0.24.3","a":"100yenadmin","s":"merged","m":"2026-09-28","c":1},{"n":125836,"t":"chore(plugin-catalog): bump next-prompt to 0.3.0","a":"soymarketing","s":"merged","m":"2026-09-28","c":1},{"n":125789,"t":"feat(plugin-catalog): bump memory-rewind to 1.3.2 and fit its card in the plugin page header","a":"AhmetArif0","s":"merged","m":"2026-09-28","c":1},{"n":125740,"t":"catalog: bump telegram-notify to v1.1.3","a":"madpower2000","s":"merged","m":"2026-09-28","c":1},{"n":125622,"t":"Bump mnemostack to 1.0.3","a":"Udjin79","s":"merged","m":"2026-09-28","c":1},{"n":124519,"t":"chore: add hermes-self-healing-context to plugin catalog","a":"forumevi","s":"merged","m":"2026-09-28","c":1},{"n":125936,"t":"chore(catalog): bump hermes-switchyard pin to b3cf546 (v0.5.6)","a":"bgrablin","s":"merged","m":"2026-09-28","c":1},{"n":125387,"t":"plugin-catalog: bump bridge-adapter pin 073f2e8 -> 8de6264","a":"Kesuek","s":"merged","m":"2026-09-28","c":1},{"n":122043,"t":"feat(catalog): add Nachos plugin","a":"naterchrdsn","s":"merged","m":"2026-09-28","c":1},{"n":126044,"t":"feat(plugin-catalog): add PIR8 brain-graph, android-emulator, and OR Picker","a":"PIR8-Software","s":"merged","m":"2026-09-28","c":5},{"n":125931,"t":"Catalog: add bunny_space-platform (Bunny Space platform adapter)","a":"jasm001","s":"merged","m":"2026-09-28","c":1},{"n":125902,"t":"Catalog: hermes-rich-ui v0.1.0 @ 754ae51","a":"jacobhausler","s":"merged","m":"2026-09-28","c":1},{"n":125856,"t":"plugin-catalog: add unbrowse","a":"lekt9","s":"merged","m":"2026-09-28","c":1},{"n":126008,"t":"fix(desktop): test runs stop leaking temp dirs into the scratch dir","a":"teknium1","s":"merged","m":"2026-09-28","c":5},{"n":125721,"t":"fix: Hermes's own lint, activate, tui and MCP launchers use PM's node/npx/uv, never the user's","a":"teknium1","s":"merged","m":"2026-09-28","c":14},{"n":125589,"t":"fix: Hermes never falls back to the user's node/npm/npx/uv","a":"teknium1","s":"merged","m":"2026-09-28","c":25},{"n":125681,"t":"fix(desktop): Hermes's own children run the store node/npm/uv, not the login shell's","a":"teknium1","s":"merged","m":"2026-09-28","c":3},{"n":125644,"t":"MCP servers with a native addon built by another Node now say so and name the rebuild under Hermes's Node (#124264)","a":"teknium1","s":"merged","m":"2026-09-28","c":7},{"n":125691,"t":"hermes update no longer exits 1 over a respawned dashboard's unreaped zombie (handoff E2E, carries #125682)","a":"teknium1","s":"merged","m":"2026-09-28","c":3},{"n":125769,"t":"fix: fresh installs ship cua-driver and the Browser Use CLI again (salvage #122428)","a":"teknium1","s":"merged","m":"2026-09-28","c":13},{"n":124058,"t":"fix(plugins): gate installs of catalog entries that document known issues (#124037)","a":"happy5318","s":"merged","m":"2026-09-28","c":8},{"n":125471,"t":"refactor(plugin-catalog): rename browserclaw to browserpaw","a":"GoldenLoaf24h","s":"merged","m":"2026-09-27","c":2},{"n":125315,"t":"plugin-catalog: add memex8 memory provider","a":"Ex8-ca","s":"merged","m":"2026-09-27","c":1},{"n":125052,"t":"feat(catalog): add AnyRouter model-provider plugin","a":"duyetbot","s":"merged","m":"2026-09-27","c":1},{"n":41236,"t":"feat(desktop): auto-detect Linux keychain backend for secure token storage","a":"hsearcy","s":"merged","m":"2026-08-13","c":null},{"n":22622,"t":"fix(credential-pool): clear exhaustion state on key rotation","a":"pasevin","s":"merged","m":"2026-08-04","c":null},{"n":39166,"t":"fix(cli): restart managed dashboard service after update","a":"andyylin","s":"merged","m":"2026-07-22","c":null},{"n":20379,"t":"feat(ui-tui): widget-grid layout engine + background-aware theme engine","a":"OutThisLife","s":"merged","m":"2026-07-21","c":null},{"n":43501,"t":"fix(docs): fix broken image and video in TUI docs","a":"alelpoan","s":"merged","m":"2026-07-19","c":null},{"n":51020,"t":"feat(desktop): declarative memory provider panel + full-config modal","a":"erosika","s":"merged","m":"2026-07-19","c":null},{"n":51639,"t":"feat(tui+cli): change your Nous plan from the terminal (/subscription, /topup, terminal-billing UX)","a":"alt-glitch","s":"merged","m":"2026-07-18","c":null},{"n":38416,"t":"fix(cli): force npm --include=dev at install chokepoints so NODE_ENV=production can't strip build toolchains","a":"kshitijk4poor","s":"merged","m":"2026-07-16","c":null},{"n":52482,"t":"fix(dashboard): drop _HERMES_GATEWAY when spawning hermes actions","a":"devorun","s":"merged","m":"2026-07-16","c":null},{"n":43692,"t":"fix(kanban): spawn goal_mode workers with -Q so the goal loop actually runs","a":"momomojo","s":"merged","m":"2026-07-13","c":null},{"n":40630,"t":"feat(desktop): render Mermaid code blocks in markdown file preview","a":"teknium1","s":"merged","m":"2026-07-07","c":null},{"n":45300,"t":"feat(cli): --safe-mode troubleshooting flag (Claude Code v2.1.169-inspired)","a":"teknium1","s":"merged","m":"2026-07-07","c":null},{"n":46355,"t":"fix: cool down transient Telegram typing failures","a":"teknium1","s":"merged","m":"2026-07-07","c":null},{"n":46356,"t":"fix(memory): default null target to memory store","a":"teknium1","s":"merged","m":"2026-07-07","c":null},{"n":46363,"t":"fix: repair URL authority whitespace before web fetches","a":"teknium1","s":"merged","m":"2026-07-07","c":null},{"n":48711,"t":"fix(schema): preserve multi-type JSON Schema arrays as anyOf (port opencode#31877)","a":"teknium1","s":"merged","m":"2026-07-07","c":null},{"n":36727,"t":"feat(curator): add `hermes curator usage` — all-skills usage view","a":"teknium1","s":"merged","m":"2026-07-06","c":null},{"n":37272,"t":"feat(skills): add dynamic-workflow orchestration skill","a":"teknium1","s":"merged","m":"2026-07-06","c":null},{"n":38138,"t":"refactor(skills): rename shop-app skill to shop","a":"teknium1","s":"merged","m":"2026-07-06","c":null},{"n":40622,"t":"feat(config): add display.timestamp_format and honor it in CLI timestamps","a":"teknium1","s":"merged","m":"2026-07-06","c":null},{"n":40623,"t":"feat(plugins): surface entry-point plugins in hermes plugins list","a":"teknium1","s":"merged","m":"2026-07-06","c":null},{"n":40624,"t":"feat(banner): size skills display to terminal width instead of fixed 8/47","a":"teknium1","s":"merged","m":"2026-07-06","c":null},{"n":40626,"t":"fix(desktop): default HERMES_DESKTOP_CWD to cwd when --cwd omitted","a":"teknium1","s":"merged","m":"2026-07-06","c":null},{"n":40628,"t":"test(desktop): regression-guard fetchJsonViaOauthSession headers (#40069)","a":"teknium1","s":"merged","m":"2026-07-06","c":null},{"n":20468,"t":"feat(hooks): spill oversized hook-injected context to disk","a":"teknium1","s":"merged","m":"2026-07-05","c":null},{"n":38290,"t":"fix(nix): follow root pyproject inputs","a":"WadydX","s":"merged","m":"2026-07-05","c":null},{"n":51489,"t":"chore(providers): remove dead cloudcode-pa quota-fallback branches","a":"teknium1","s":"merged","m":"2026-07-05","c":null},{"n":51751,"t":"feat(discord): optional admin-only gate for exec-approval buttons","a":"teknium1","s":"merged","m":"2026-07-05","c":null},{"n":52220,"t":"Port from cline/cline#11803: recursively normalize JSON-string tool args by schema","a":"teknium1","s":"merged","m":"2026-07-05","c":null},{"n":52336,"t":"fix: remove dead f-string prefixes via ruff F541 (216 sites)","a":"teknium1","s":"merged","m":"2026-07-05","c":null},{"n":52750,"t":"feat(mcp): adopt mcp__server__tool naming convention (port from opencode#33533)","a":"teknium1","s":"merged","m":"2026-07-05","c":null},{"n":30179,"t":"feat(egress): iron-proxy credential-injection firewall for sandboxes","a":"teknium1","s":"merged","m":"2026-07-04","c":null},{"n":49435,"t":"Prevent deleted profiles from being recreated by stale dashboards","a":"LeonSGP43","s":"merged","m":"2026-07-02","c":null},{"n":53116,"t":"fix(desktop): call checkUpdates() in startUpdatePoller so version pill auto-populates","a":"DavidMetcalfe","s":"merged","m":"2026-07-02","c":null},{"n":52349,"t":"security(browser): enforce cloud-metadata floor on all backends; CDP is non-local","a":"claudlos","s":"merged","m":"2026-07-01","c":null},{"n":40825,"t":"style(desktop): bring installer & update overlays onto the design system","a":"OutThisLife","s":"merged","m":"2026-06-30","c":null},{"n":52570,"t":"add timings report to CI","a":"ethernet8023","s":"merged","m":"2026-06-30","c":null},{"n":49044,"t":"feat(logging): opt-in HTTP/WS body capture to an isolated, share-excluded gui_bodies.log","a":"kshitijk4poor","s":"merged","m":"2026-06-28","c":null},{"n":52656,"t":"fix(desktop): retry empty resumed transcripts","a":"helix4u","s":"merged","m":"2026-06-28","c":null},{"n":51024,"t":"faster docker builds","a":"ethernet8023","s":"merged","m":"2026-06-27","c":null},{"n":52890,"t":"fix(agent): classify message-only 'overloaded' as server overload (salvage of #14261 by @ms-alan)","a":"Bartok9","s":"merged","m":"2026-06-27","c":null},{"n":53239,"t":"fix(dashboard-auth): exclude non-interactive providers from interactive login surfaces","a":"IAvecilla","s":"merged","m":"2026-06-27","c":null},{"n":52239,"t":"fix(gateway,windows): respawn gateway windowless after GUI update (no persistent console window)","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52412,"t":"fix(agent): gate verify-on-stop nudge off for messaging surfaces","a":"GodsBoy","s":"merged","m":"2026-06-26","c":null},{"n":52671,"t":"fix(cron): detect partial job loss in restore_cron_jobs_if_emptied (#52144)","a":"kshitijk4poor","s":"merged","m":"2026-06-26","c":null},{"n":52678,"t":"fix(fuzzy-match): preserve boundary space after whitespace-normalized match (#52491)","a":"kshitijk4poor","s":"merged","m":"2026-06-26","c":null},{"n":52744,"t":"fix(telegram): persistent heartbeat loop to detect CLOSE-WAIT polling sockets (#48495)","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52745,"t":"desktop: bundle main.cjs for electron","a":"ethernet8023","s":"merged","m":"2026-06-26","c":null},{"n":52756,"t":"feat(delegation): calm \"will resume\" affordance for background delegate_task","a":"OutThisLife","s":"merged","m":"2026-06-26","c":null},{"n":52760,"t":"fix(auth): write rotated Codex/xAI pool grant through to global root (#48415)","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52761,"t":"fix(gateway): defer cross-process cache cleanup off the cache lock (#52197)","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52768,"t":"fix(approval): fold Windows absolute home paths in dangerous-command detection","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52772,"t":"feat(desktop): in-app spot editor for the file preview pane","a":"OutThisLife","s":"merged","m":"2026-06-26","c":null},{"n":52789,"t":"fix(docker): skip symlinked stage2 chown targets","a":"harjothkhara","s":"merged","m":"2026-06-26","c":null},{"n":52795,"t":"fix(agent): route reasoning-model thinking-timeouts to timeout, not phantom context_overflow (#52271)","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52797,"t":"fix(gateway): add init-time provider fallback to TUI/gateway _make_agent (#47627)","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52798,"t":"fix(state): detect and repair FTS write corruption that silently drops gateway history (#50502)","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52801,"t":"fix(email): reject spoofed From: header for authorization (GHSA-rxqh-5572-8m77)","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52828,"t":"fix(desktop): show remote backend updates without counts","a":"helix4u","s":"merged","m":"2026-06-26","c":null},{"n":52830,"t":"feat(relay): multi-platform-per-agent — list identity, N-hello, per-frame egress (Phase 1.5)","a":"benbarclay","s":"merged","m":"2026-06-26","c":null},{"n":52831,"t":"fix(gateway): scale-to-zero never armed — arm-gate counted disabled placeholder platforms","a":"benbarclay","s":"merged","m":"2026-06-26","c":null},{"n":52833,"t":"fix(desktop): WSL2 clipboard paste, titlebar layout, HMR survival, and GPU acceleration","a":"OutThisLife","s":"merged","m":"2026-06-26","c":null},{"n":52841,"t":"fix(install): discard managed lockfile churn before stashing","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52844,"t":"fix(telegram): preserve Bot API update queue on watcher reconnect (#46621)","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52845,"t":"feat(agent): apply per-reasoning-model stale-timeout floor in stream + non-stream detectors (#52217)","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52848,"t":"feat(kanban): typed block reasons + unblock-loop breaker","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52849,"t":"fix(curator): protect skills.external_dirs from autonomous curation (#47688)","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52850,"t":"fix(browser): redact recognized secrets in browser_type display surfaces","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52854,"t":"fix(interrupt): keep partial streamed reply when stopped mid-response","a":"OutThisLife","s":"merged","m":"2026-06-26","c":null},{"n":52871,"t":"fix(tui-gateway): make stop interrupt queued turns","a":"OutThisLife","s":"merged","m":"2026-06-26","c":null},{"n":52877,"t":"feat(desktop): Alt+wheel to scale the pet, never cropped","a":"OutThisLife","s":"merged","m":"2026-06-26","c":null},{"n":52888,"t":"chore: add Tranquil-Flow to AUTHOR_MAP for auxiliary base_url salvage","a":"kshitijk4poor","s":"merged","m":"2026-06-26","c":null},{"n":52891,"t":"fix(auxiliary): gate Anthropic base_url override on Anthropic-compatible host (#52608)","a":"kshitijk4poor","s":"merged","m":"2026-06-26","c":null},{"n":52901,"t":"style(desktop,tui): fix all lint/type/formatting issues","a":"OutThisLife","s":"merged","m":"2026-06-26","c":null},{"n":52911,"t":"fix(relay): accept is_reconnect kwarg in RelayAdapter.connect","a":"benbarclay","s":"merged","m":"2026-06-26","c":null},{"n":52913,"t":"fix(hermes): fall back to system npm when managed node tree is broken","a":"xxxigm","s":"merged","m":"2026-06-26","c":null},{"n":52920,"t":"fix(config): surface invalid platform_toolsets instead of silently dropping tools (#38798)","a":"kshitijk4poor","s":"merged","m":"2026-06-26","c":null},{"n":52925,"t":"fix(security): stop blocking AGENTS.md/SOUL.md that name an agent 'Praxis'","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52926,"t":"fix(auxiliary): recover malformed provider responses (#52853)","a":"kshitijk4poor","s":"merged","m":"2026-06-26","c":null},{"n":52935,"t":"feat(desktop): inline rich embeds, diagrams & alerts in assistant markdown","a":"OutThisLife","s":"merged","m":"2026-06-26","c":null},{"n":52936,"t":"fix(mcp): auto-recover from invalid_client on stale OAuth client registration (salvage #37096)","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52937,"t":"feat(gateway+dashboard-auth): external drain coordination (safe-shutdown Phase 2) — salvage #50519","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52957,"t":"fix(whatsapp_cloud): resolve reply-to text so the agent sees reply context","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52959,"t":"Settle TUI resume scroll after hydration (salvage #52902)","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52960,"t":"fix(security): align cron invisible-unicode set with install-time scanner","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52962,"t":"Reconnect dashboard PTY chat after socket drops (salvage #52906)","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52975,"t":"docs(nix): mark Nix/NixOS as no longer explicitly supported","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":52983,"t":"chore: add Dr1985 to AUTHOR_MAP for launchd salvage","a":"kshitijk4poor","s":"merged","m":"2026-06-26","c":null},{"n":52984,"t":"fix(macos): distinguish launchd supervision from detached fallback in gateway status (#42524)","a":"kshitijk4poor","s":"merged","m":"2026-06-26","c":null},{"n":52990,"t":"fix(backup): include projects.db and kanban boards in pre-update snapshot (#52889)","a":"kshitijk4poor","s":"merged","m":"2026-06-26","c":null},{"n":52993,"t":"feat(desktop): redesign the clarify prompt + fix its awaiting-input states","a":"OutThisLife","s":"merged","m":"2026-06-26","c":null},{"n":52997,"t":"fix(security): circuit breaker for tirith crashes to prevent agent hangs (#41400)","a":"kshitijk4poor","s":"merged","m":"2026-06-26","c":null},{"n":53050,"t":"fix(gateway): stamp drain marker with instantiation epoch so a durable-volume restart clears it (NS-570)","a":"benbarclay","s":"merged","m":"2026-06-26","c":null},{"n":53110,"t":"fix(terminal): prefer $SHELL over bash for background process spawning (#42203)","a":"kshitijk4poor","s":"merged","m":"2026-06-26","c":null},{"n":53132,"t":"fix(config): use read_raw_config() in migrations to prevent expanding defaults (#40821)","a":"kshitijk4poor","s":"merged","m":"2026-06-26","c":null},{"n":53191,"t":"fix(skills-hub): surface per-tap providers in runtime search/filter","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":53206,"t":"docs(moa): add HermesBench results to Mixture of Agents page","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":53208,"t":"clarify platform support","a":"ethernet8023","s":"merged","m":"2026-06-26","c":null},{"n":53211,"t":"docs(moa): clarify MoA presets are selectable on every surface","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":53216,"t":"fix(security): extend gateway-lifecycle guard to launchctl and pidof kills","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":53218,"t":"docs(moa): document prompt-caching behavior for references and aggregator","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":53223,"t":"fix(agent): silence verification-stop loop status line","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":53226,"t":"fix(skills): background review fork respects pinned skills","a":"teknium1","s":"merged","m":"2026-06-26","c":null},{"n":53227,"t":" fix(dashboard): offload PTY spawn/close off the event loop","a":"IAvecilla","s":"merged","m":"2026-06-26","c":null},{"n":46081,"t":"feat(moa): expose MoA presets as selectable virtual models","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":47959,"t":"Pet generation: frame-perfect hatch flow, backend picker, CPU-safe chroma, and CI-hardening","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":49037,"t":"feat(desktop): first-class projects — sidebar, coding rail, review pane, and agent project tools","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":50278,"t":"fix(desktop): show statusbar item tooltips on hover","a":"DavidMetcalfe","s":"merged","m":"2026-06-25","c":null},{"n":50636,"t":"fix(terminal): sanitize host/relative cwd override before it reaches docker run -w","a":"benbarclay","s":"merged","m":"2026-06-25","c":null},{"n":52088,"t":"fix(telegram): gate rich draft previews separately","a":"helix4u","s":"merged","m":"2026-06-25","c":null},{"n":52147,"t":"fix(mcp): run OSV malware preflight off the event loop with a bounded timeout (#29184)","a":"kshitijk4poor","s":"merged","m":"2026-06-25","c":null},{"n":52183,"t":"fix(desktop): make Agents indicator match the Spawn-tree panel","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52187,"t":"fix(desktop): wire Ctrl+B voice, declutter voice settings, stop endless TTS hang","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52189,"t":"fix(desktop): give the gateway reconnect loop an escape hatch","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52190,"t":"fix(relay): authorize relay inbound via connector-enforced upstream authz","a":"benbarclay","s":"merged","m":"2026-06-25","c":null},{"n":52192,"t":"fix(desktop): let the session watchdog heal a stuck \"looping\" turn","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52199,"t":"fix(gateway): scope dashboard liveness fallback to the profile (salvage #52151)","a":"benbarclay","s":"merged","m":"2026-06-25","c":null},{"n":52201,"t":"fix(desktop): don't report a bogus update count for a shallow checkout","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52203,"t":"fix(update): announce gateway drain waits so desktop updates don't look hung","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52205,"t":"fix(desktop): route gateway restart / status / update to the active profile","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52206,"t":"fix(desktop): hide platform/internal toolsets from the Skills & Tools list","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52208,"t":"fix(desktop): stop the update overlay looking frozen while it works","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52210,"t":"fix(desktop): surface update progress lines","a":"helix4u","s":"merged","m":"2026-06-25","c":null},{"n":52229,"t":"fix(desktop): stop refText crash on undefined composer attachment holes","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52232,"t":"fix(tui): route /learn through command.dispatch so the prompt fires (#51829)","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52243,"t":"feat(gateway): scale-to-zero idle detection + dormant-quiesce (Phase 0)","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52246,"t":"fix(soul): installers seed real default persona, upgrade legacy empty SOUL.md","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52250,"t":"feat(cron): continuable cron jobs — thread-preferred continuation with DM-mirror fallback","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52263,"t":"fix(relay): re-attach DM author user_id on outbound for connector egress","a":"benbarclay","s":"merged","m":"2026-06-25","c":null},{"n":52265,"t":"fix(desktop): localize tool title shimmer","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52270,"t":"fix(auth): honor NOUS_INFERENCE_BASE_URL env override for Nous OAuth sessions","a":"benbarclay","s":"merged","m":"2026-06-25","c":null},{"n":52273,"t":"perf(desktop): bound tool-result rendering so big /learn runs don't freeze","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52285,"t":"feat(agent): record coding verification evidence","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52286,"t":"feat(gateway): expose coding verification status","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52295,"t":"fix(cache): content-address prompt_cache_key so recurring cron jobs reuse the warm prefix","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52296,"t":"Add verification stop loop","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52297,"t":"Support ad-hoc verification scripts","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52303,"t":"feat(pets): quality-first OpenRouter chain, stronger atlas gates, global pet-gen notifications","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52306,"t":"fix(relay): authorize relay-delivered events by delivery, not source.platform","a":"benbarclay","s":"merged","m":"2026-06-25","c":null},{"n":52321,"t":"fix(desktop): compact tool row titles","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52326,"t":"fix(ui): share compact tool previews across clients","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52333,"t":"fix(zai): adaptive backoff for Coding Plan GLM-5.2 overload (1305) + named custom-provider extra_body","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52338,"t":"fix(pets): raise generation timeouts for the slow quality-first model path","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52340,"t":"fix(windows): suppress console flashes and harden gateway restarts","a":"helix4u","s":"merged","m":"2026-06-25","c":null},{"n":52359,"t":"fix(gateway): harden scale-to-zero dormancy guards","a":"benbarclay","s":"merged","m":"2026-06-25","c":null},{"n":52364,"t":"feat(setup): Z.AI endpoint picker for Global/China/Coding Plan selection","a":"kshitijk4poor","s":"merged","m":"2026-06-25","c":null},{"n":52366,"t":"feat(pets): remix a draft into a fresh round","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52372,"t":"fix(learn): teach /learn the full CONTRIBUTING.md skill standards","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52375,"t":"fix(gateway): dedupe user turns on transient failure (#47237)","a":"kshitijk4poor","s":"merged","m":"2026-06-25","c":null},{"n":52386,"t":"fix(utils): unify YAML list indent across all config writers (#31999)","a":"kshitijk4poor","s":"merged","m":"2026-06-25","c":null},{"n":52388,"t":"fix(learn): name distilled skills as author Hermes, not the host OS user","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52548,"t":"fix(ci): run CI on all PRs to anywhere","a":"ethernet8023","s":"merged","m":"2026-06-25","c":null},{"n":52569,"t":"fix(terminal): sudo -S password delivery and cache invalidation on auth failure","a":"kshitijk4poor","s":"merged","m":"2026-06-25","c":null},{"n":52591,"t":"fix(desktop): ad-hoc sign macOS self-update rebuilds","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52592,"t":"fix(agent): close tool-call sequence on all interrupt aborts (#48879 follow-up)","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52594,"t":"fix(tui_gateway): queue mid-turn prompts instead of dropping them on a busy retry","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52616,"t":"fix: persist non-NULL system prompt on fresh turn setup (#45499)","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52618,"t":"fix(tools): defensive type coercion in todo_tool for malformed LLM input (#14185)","a":"kshitijk4poor","s":"merged","m":"2026-06-25","c":null},{"n":52620,"t":"perf(desktop): make session switching fast under load","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52628,"t":"fix(gateway): pass session_db to compress temp agents so persistence works","a":"kshitijk4poor","s":"merged","m":"2026-06-25","c":null},{"n":52646,"t":"fix(cron): add default retention to per-run job output (#52383)","a":"kshitijk4poor","s":"merged","m":"2026-06-25","c":null},{"n":52647,"t":"feat(krea): allow Krea via managed Nous Subscription gateway","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52651,"t":"fix(tools): let session_search match session titles","a":"kshitijk4poor","s":"merged","m":"2026-06-25","c":null},{"n":52653,"t":"fix(config): quote .env values containing # to prevent token truncation (#30355)","a":"kshitijk4poor","s":"merged","m":"2026-06-25","c":null},{"n":52658,"t":"feat(compression): flip in_place default to True + guard fix (#38763) [salvage #51959]","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52660,"t":"fix(cron): restore [SILENT] silence + suppress empty-turn explainer on Telegram","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52661,"t":"fix(auxiliary): make compression survive a bad/limited fallback (salvage #49076 #52230 #51835 #52421)","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52664,"t":"fix(telegram): render pipe tables natively when Topics enabled","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52666,"t":"fix(hermes_state): persist billing route after mid-session /model switch (#48248)","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52703,"t":"fix(desktop): reject cross-wired runtime-id cache on session resume (salvage #50464)","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52704,"t":"fix(desktop): recover root error boundary from transient render races (salvage #41787)","a":"OutThisLife","s":"merged","m":"2026-06-25","c":null},{"n":52717,"t":"fix: stop reporting cache-hit rate and cost across all UI surfaces","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52729,"t":"fix(update): default pre-update backup to off","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":52731,"t":"fix(state): resume compacted sessions at the live tip, skip delegate/branch children [salvage #45035 + #48682]","a":"teknium1","s":"merged","m":"2026-06-25","c":null},{"n":46464,"t":"Pets: animated mascots across CLI, TUI, and desktop","a":"OutThisLife","s":"merged","m":"2026-06-24","c":null},{"n":51025,"t":"fix(gateway): consume was_auto_reset so /model survives session auto-reset (#48031)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":51027,"t":"fix(model_switch): route typed configured models off openai-codex (#45006)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":51043,"t":"fix(tui): preserve config on model switch — atomic writes + custom-provider guard (#48305)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":51051,"t":"fix(cron): fail closed when an unpinned job provider drifts from creation snapshot (#44585)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":51161,"t":"fix(photon): recover degraded upstream stream (salvage #51105 + #50071)","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51323,"t":"fix(docker): redirect lazy installs to a durable target so opt-in backends work in the immutable image (#51136)","a":"benbarclay","s":"merged","m":"2026-06-24","c":null},{"n":51595,"t":"feat(relay): Phase 5 Unit C — wake primitive (gateway side)","a":"benbarclay","s":"merged","m":"2026-06-24","c":null},{"n":51601,"t":"fix(update): reuse an existing uv on Termux instead of source-building","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51602,"t":"fix(installer): re-resolve Python fallback at venv stage on Windows (#50769)","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51633,"t":"docs(relay): §3.4 — obligations on a future scale-to-zero behaviour layer","a":"benbarclay","s":"merged","m":"2026-06-24","c":null},{"n":51675,"t":"fix(docker): make boot-time config migration transactional (#51579)","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51676,"t":"fix(config): write config.yaml as UTF-8 to stop emoji/personality corruption","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51678,"t":"fix(gateway): track + reap no-systemd gateway restart runtimes (WSL orphan)","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51683,"t":"fix(cron): tell the user TUI/CLI cron jobs are local-only at create time","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51693,"t":"fix(tui): stop a cwd package named utils/proxy/ui from crashing the gateway child","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51695,"t":"fix(cron): anchor naive schedule timestamps to configured timezone","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51696,"t":"feat(cron): warn when gateway not running on cron create/list","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51698,"t":"fix(gateway): stop tokenless-profile s6 crash-loop (exit 78 + finish script + propagation)","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51702,"t":"fix(cron): rename plugins/cron → plugins/cron_providers to kill the core-cron shadowing class (#50872)","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51709,"t":"fix(profiles): detect a separate-process gateway in profile status","a":"benbarclay","s":"merged","m":"2026-06-24","c":null},{"n":51716,"t":"feat(telegram): configurable command menu + raise default cap so skills stay visible","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51717,"t":"fix(dashboard): serve uvicorn on SelectorEventLoop on Windows (#50641)","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51719,"t":"fix(profiles): clone auth.json so OAuth credentials carry to cloned profiles","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51723,"t":"fix(anthropic): use platform.claude.com for OAuth login token exchange","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51724,"t":"fix(delegation): use target_model for bedrock api_mode routing (#49095)","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51726,"t":"docs(sessions): clarify sessions.json is the gateway routing index, not the session list","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51727,"t":"fix(agent): close tool-call sequence on interrupt to prevent role alternation violation (#48879)","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51728,"t":"fix(desktop): guard composer mutations when the composer core isn't bound (#49903)","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51730,"t":"fix(discord): authorize pairing-approved users for component button clicks (#50627)","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51731,"t":"fix(matrix): use member_count as DM signal for named DM rooms (#48551)","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51732,"t":"revert(profiles): don't clone auth.json — duplicating OAuth grant causes sibling revocation (#48415)","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51734,"t":"fix(gateway): detect launchd in /restart service-manager probe (#43475)","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51736,"t":"fix(telegram): clip mid-stream overflow instead of splitting (#48648)","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51737,"t":"refactor(dashboard): remove the dead tools box from the chat sidebar","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51740,"t":"fix(browser): validate agent-browser is runnable, not just present (#48521)","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51743,"t":"docs: stop recommending pip install; curl installer is the only supported path","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51744,"t":"chore(desktop): sync package-lock version to apps/desktop 0.17.0","a":"teknium1","s":"merged","m":"2026-06-24","c":null},{"n":51781,"t":"feat(relay): terminal 4401 (opt-out) → clean \"Relay disabled\" state","a":"benbarclay","s":"merged","m":"2026-06-24","c":null},{"n":51836,"t":"docs(chronos): pin hop-1 auth to the hosted-agent bootstrap token","a":"benbarclay","s":"merged","m":"2026-06-24","c":null},{"n":51870,"t":"fix(cli): honor non-interactive context in prompt_yes_no (desktop gateway restart hang)","a":"xxxigm","s":"merged","m":"2026-06-24","c":null},{"n":51881,"t":"fix(compression): abort + preserve context on transient network summary failure (#29559, #25585)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":51884,"t":"fix(desktop): preserve onboarding state on transient runtime probe failures","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":51889,"t":"fix(gateway): offload Discord /model provider-listing off the event loop (#41289)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":51890,"t":"fix(gateway): offload handoff-watcher SQLite calls to avoid blocking the async heartbeat (#40695)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":51898,"t":"feat(openviking): add full recall prefetch policy (salvage #48927)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":51950,"t":"revert(plugins): restore user dashboard plugin backend API auto-import (#43719)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":52008,"t":"fix(desktop): stop Nous Portal onboarding from validating stale Anthropic config","a":"infinitycrew39","s":"merged","m":"2026-06-24","c":null},{"n":52044,"t":"fix(install): kill venv-resident gateway before recreating venv on Windows","a":"jquesnelle","s":"merged","m":"2026-06-24","c":null},{"n":52053,"t":"fix(compression): make minimum context floor configurable (#31600)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":52084,"t":"fix(gateway): surface retry hint instead of silently dropping turn after /stop (#31884)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":52086,"t":"feat(desktop): remember window size/position/maximized across launches (salvage #39154)","a":"OutThisLife","s":"merged","m":"2026-06-24","c":null},{"n":52090,"t":"fix(gateway): offload agent cleanup off the event loop in /new reset (#35994)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":52091,"t":"fix(memory): skip drift guard for add (append-only) action (#42874)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":52112,"t":"revert(plugins): revert minimum context floor configurable (#52053)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":52114,"t":"fix(agent): trigger preflight compression on few-but-huge sessions (#27405)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":52116,"t":"fix(gateway): skip non-dict entries in session loading (#46994)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":52118,"t":"fix(ddgs): bound DuckDuckGo search with a wall-clock timeout (#36776)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":52121,"t":"fix(delegate): strip cronjob toolset from delegated children (#43466)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":52134,"t":"fix(agent): deepcopy plugin context engine to prevent parent corruption on delegate_task (#42449)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":52135,"t":"fix(tools): catch mkdtemp OSError in tirith install (#51826)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":52140,"t":"fix(agent): validate context/memory tool schemas before wrapping (#47707)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":52143,"t":"fix(gateway): honor server retry_after in Telegram flood control (#46762)","a":"kshitijk4poor","s":"merged","m":"2026-06-24","c":null},{"n":44335,"t":"feat(memory): Honcho OAuth connect — desktop and CLI flows + token refresh","a":"erosika","s":"merged","m":"2026-06-23","c":null},{"n":45610,"t":"fix(windows): harden gateway scheduled task","a":"lEWFkRAD","s":"merged","m":"2026-06-23","c":null},{"n":49272,"t":"ci: run only the lanes a PR affects + build Docker on main only","a":"OutThisLife","s":"merged","m":"2026-06-23","c":null},{"n":49286,"t":"ci: retry transient dependency installs + skip native rebuild in typecheck","a":"OutThisLife","s":"merged","m":"2026-06-23","c":null},{"n":50852,"t":"fix(install): stop auto-detecting a system browser; always install bundled Chromium","a":"xxxigm","s":"merged","m":"2026-06-23","c":null},{"n":50994,"t":"fix(computer-use): working vision capture + whole-screen/desktop target on Windows","a":"teknium1","s":"merged","m":"2026-06-23","c":null},{"n":51103,"t":"fix(desktop): manual tool previews via status stack","a":"OutThisLife","s":"merged","m":"2026-06-23","c":null},{"n":51116,"t":"revert(cron): return cron job storage to per-profile (reverts #32117 + #50993)","a":"teknium1","s":"merged","m":"2026-06-23","c":null},{"n":51121,"t":"docs(computer-use): document Windows UIPI elevated-window limitation","a":"teknium1","s":"merged","m":"2026-06-23","c":null},{"n":51168,"t":"feat(discord): render reasoning as -# subtext via display.reasoning_style","a":"teknium1","s":"merged","m":"2026-06-23","c":null},{"n":51248,"t":"feat(relay): declare relevance policy to the connector + document the management plane","a":"benbarclay","s":"merged","m":"2026-06-23","c":null},{"n":51259,"t":"feat(agent): expose coding-context project facts (project.facts RPC)","a":"OutThisLife","s":"merged","m":"2026-06-23","c":null},{"n":51261,"t":"feat(agent): one-shot LLM helper + llm.oneshot gateway RPC","a":"OutThisLife","s":"merged","m":"2026-06-23","c":null},{"n":51287,"t":"fix(slack): transcribe in-app voice messages (audio/mp4) instead of failing","a":"kshitijk4poor","s":"merged","m":"2026-06-23","c":null},{"n":51315,"t":"fix(desktop): replace native title tooltips with styled Tip component","a":"wnuuee1","s":"merged","m":"2026-06-23","c":null},{"n":51389,"t":"ci: gate ci at job run-time","a":"ethernet8023","s":"merged","m":"2026-06-23","c":null},{"n":51439,"t":"fix(ci): only run supplychain checks in pr","a":"ethernet8023","s":"merged","m":"2026-06-23","c":null},{"n":51441,"t":"feat(cli): track background subagents in the status bar","a":"teknium1","s":"merged","m":"2026-06-23","c":null},{"n":51457,"t":"fix(ci): classify should default to no MCP","a":"ethernet8023","s":"merged","m":"2026-06-23","c":null},{"n":51485,"t":"feat(tui): track background subagents in the status bar","a":"teknium1","s":"merged","m":"2026-06-23","c":null},{"n":51487,"t":"feat(slack): add --no-assistant flag to manifest generation","a":"teknium1","s":"merged","m":"2026-06-23","c":null},{"n":51494,"t":"feat(ollama-cloud): wire reasoning_effort (xhigh→max) [salvage #29221]","a":"teknium1","s":"merged","m":"2026-06-23","c":null},{"n":51506,"t":"feat(skills): /learn — distill a reusable skill from anything you describe","a":"teknium1","s":"merged","m":"2026-06-23","c":null},{"n":51507,"t":"fix(mcp): skip killpg when child shares gateway's process group (#47134)","a":"kshitijk4poor","s":"merged","m":"2026-06-23","c":null},{"n":51509,"t":"fix(tui): preserve live session identity across compression (#49041)","a":"kshitijk4poor","s":"merged","m":"2026-06-23","c":null},{"n":51539,"t":"fix(agent): persist tool calls before turn-end flush (#49045)","a":"kshitijk4poor","s":"merged","m":"2026-06-23","c":null},{"n":51541,"t":"fix(telegram): wire keepalive limits into general request pool to fix CLOSE_WAIT fd leak (#31599)","a":"kshitijk4poor","s":"merged","m":"2026-06-23","c":null},{"n":51549,"t":"fix(agent): handle concurrent tool submit shutdown","a":"kshitijk4poor","s":"merged","m":"2026-06-23","c":null},{"n":51552,"t":"fix(discord): prevent double dispatch via thread-starter dedup (#51057)","a":"kshitijk4poor","s":"merged","m":"2026-06-23","c":null},{"n":51553,"t":"fix(gateway): preserve _session_tasks on guard mismatch to heal stale session lock (#48300)","a":"kshitijk4poor","s":"merged","m":"2026-06-23","c":null},{"n":51554,"t":"chore(release): map manusjs email to manus-use","a":"kshitijk4poor","s":"merged","m":"2026-06-23","c":null},{"n":51566,"t":"fix(gateway): refuse model switch on stale checkout to avoid env_float ImportError","a":"kshitijk4poor","s":"merged","m":"2026-06-23","c":null},{"n":51572,"t":"feat(relay): Phase 5 §5.3 going-idle / buffered-flip primitive (gateway side)","a":"benbarclay","s":"merged","m":"2026-06-23","c":null},{"n":15624,"t":"feat(mem0): v3 API, OSS mode, update/delete tools, telemetry & review fixes","a":"kartik-mem0","s":"merged","m":"2026-06-22","c":null},{"n":49252,"t":"feat(background-review): aux-model routing + context digest + adaptive cadence to cut self-improvement cost","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50062,"t":"fix(cron): run missed-grace jobs once instead of deferring forever","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":50108,"t":"fix(auth): consult credential_pool in resolve_anthropic_token (#26344)","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":50109,"t":"fix(tools): preserve core tools when a platform bundle is disabled","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":50112,"t":"fix(cron): anchor cron storage at the default root home (#32091)","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":50117,"t":"fix(cron): layer enabled MCP servers onto per-job enabled_toolsets (#23997)","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":50214,"t":"fix(desktop): rename a branched session via session.title RPC (fixes \"Session not found\")","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":50468,"t":"fix: re-validate PID identity before killing host processes (#43846)","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50470,"t":"fix(desktop): relaunch on Linux after in-app update instead of hanging (salvage #45205)","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50473,"t":"refactor(kanban): fold worker/orchestrator skills into injected guidance","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50476,"t":"fix(security): harden MCP-config persistence attack surface","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50479,"t":"fix(mem0): add self-hosted support via MEM0_HOST / host config","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50480,"t":"fix(agent): strip stale reasoning_content when falling back to a strict provider","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50489,"t":"feat(process): escalate SIGTERM→SIGKILL on host-pid termination after grace (#15008)","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50492,"t":"feat(providers): remove google-gemini-cli + google-antigravity OAuth providers","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50497,"t":"fix(banner): don't advertise toolsets/skills the agent wasn't given","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50498,"t":"fix(logging): remove logging.basicConfig from library __init__ (compressor + swe-runner)","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50499,"t":"feat(cli): /reasoning full — show complete thinking, not 10-line clamp","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50501,"t":"feat(goals): completion contracts for /goal — evidence-based judging","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50503,"t":"feat(goals): /goal wait <pid> — park the loop on a background process","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50506,"t":"feat(cli): /timestamps command + timestamps in /history","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50509,"t":"feat(cli): /prompt — compose your next prompt in $EDITOR","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50528,"t":"docs: repoint stale gateway/platforms adapter refs to plugins/platforms (salvage #50481)","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50534,"t":"fix(terminal): make hermes install dir reachable in subshell PATH","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50551,"t":"feat(dashboard): interactive auth setup on no-provider non-loopback bind","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50552,"t":"feat(computer_use): cross-platform cua-driver (macOS/Windows/Linux) — salvage #50507","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50560,"t":"feat(cli): Ctrl+G submits the edited draft on save (TUI parity)","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50563,"t":"fix(gateway): accept any inbound file type across all messaging platforms","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50566,"t":"fix(dashboard): show live session title in /chat header","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50567,"t":"fix(nous): keep Nous auth fresh for idle dashboard/gateway agents","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50568,"t":"fix(email): make pairing opt-in, ignore unknown senders by default","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50600,"t":"fix(container): detect dashboard role under s6-overlay v3 (#49196)","a":"benbarclay","s":"merged","m":"2026-06-22","c":null},{"n":50631,"t":"fix(terminal): bridge docker_extra_args to TERMINAL_DOCKER_EXTRA_ARGS in CLI + gateway","a":"benbarclay","s":"merged","m":"2026-06-22","c":null},{"n":50702,"t":"feat(relay): handle passthrough_forward over the WS (Phase 5 §5.1, gateway half)","a":"benbarclay","s":"merged","m":"2026-06-22","c":null},{"n":50726,"t":"fix(agent): count tokens, not just message rows, as compression progress (#23767, #39550)","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":50731,"t":"feat(desktop): PR-style file diffs in chat","a":"OutThisLife","s":"merged","m":"2026-06-22","c":null},{"n":50740,"t":"fix(agent): count tokens, not just rows, as preflight compression progress (#23767, #39548)","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":50751,"t":"fix(compressor): count tool_call envelope in tail-budget token estimate (#23767, #28053)","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":50762,"t":"fix(agent): defer preflight compaction until real usage after a compaction (#23767, #36718)","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":50767,"t":"fix(gateway): redact credentials from approval prompt before sending to chat platform (#48456)","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":50772,"t":"feat(relay): forward stable instance id at self-provision (Phase 6 Unit α)","a":"benbarclay","s":"merged","m":"2026-06-22","c":null},{"n":50773,"t":"fix(security): restrict dashboard plugin backend auto-import to bundled plugins — defense-in-depth (#43719)","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":50778,"t":"fix(delivery): adapter-aware cron output chunking (salvage #50145)","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50781,"t":"fix(compress): reserve output tokens in the compaction threshold (#23767, #43547)","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":50784,"t":"fix(update): don't count across shallow-clone boundary (bogus '12492 commits behind')","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50804,"t":"fix(gateway): cold-start installed Windows gateway after update when none was running","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50808,"t":"fix(desktop): set AppUserModelID on Windows so notifications fire","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50809,"t":"fix(picker): keep flat-namespace reseller (opencode-go/zen) first-party models in desktop picker","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50814,"t":"fix(desktop): show all of a provider's models when searching the composer picker","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50833,"t":"fix(openviking): gate memory writes behind MemoryManager + add viking_forget","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50842,"t":"feat(computer_use): disable cua-driver telemetry by default, add opt-in","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50843,"t":"fix(slack): honor documented mention_patterns wake words (salvage #50789/#50818)","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50848,"t":"fix(delegation): emit high-concurrency cost warning once per process","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50849,"t":"feat(skills): add cloudflare-temporary-deploy optional skill","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50953,"t":"fix(gateway): redact credentials from TUI approval prompts (#48456 follow-up)","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":50977,"t":"fix(desktop): keep floating composer on-screen, scoped to the thread area","a":"OutThisLife","s":"merged","m":"2026-06-22","c":null},{"n":50989,"t":"fix(cron): deliver final report on last allowed turn instead of failing","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50990,"t":"fix(telegram): prune stale DM topic binding + disable topic mode when last lane gone","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50992,"t":"fix(discord): delete obsolete slash commands before creating (avoid 100-cap error 30032)","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":50993,"t":"fix(cron): scope job execution to its owning profile (#32091 follow-up)","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":51001,"t":"fix(computer-use): delete broken pre-install asset probe; trust the upstream installer — salvage #50855","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":51005,"t":"fix(api): allow dashboard updates for git checkouts in containers","a":"austinpickett","s":"merged","m":"2026-06-22","c":null},{"n":51031,"t":"fix(image/video gen): make schema delivery instruction platform-neutral","a":"teknium1","s":"merged","m":"2026-06-22","c":null},{"n":51055,"t":"fix(security): deny root-level credential stores in media delivery","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":51056,"t":"fix(memory): apply /memory approve against a fresh on-disk store when no live agent","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":51060,"t":"fix(file_tools): resolve tilde using profile home for file operations (#48552)","a":"kshitijk4poor","s":"merged","m":"2026-06-22","c":null},{"n":51072,"t":"feat(computer-use): add a cross-platform readiness preflight to the desktop","a":"OutThisLife","s":"merged","m":"2026-06-22","c":null},{"n":51078,"t":"fix(computer-use): vision capture returns an image on cua-driver >=0.5.x","a":"OutThisLife","s":"merged","m":"2026-06-22","c":null},{"n":51093,"t":"fix(desktop): avoid stack overflow on embedded image replay","a":"OutThisLife","s":"merged","m":"2026-06-22","c":null},{"n":51094,"t":"feat(desktop): conversation timeline rail for long threads","a":"OutThisLife","s":"merged","m":"2026-06-22","c":null},{"n":51096,"t":"fix(agent): shrink anthropic-native image history","a":"OutThisLife","s":"merged","m":"2026-06-22","c":null},{"n":46548,"t":"fix: show desktop approval fallback","a":"itsflownium","s":"merged","m":"2026-06-21","c":null},{"n":49624,"t":"fix(desktop): filter undefined entries in AttachmentList to prevent refText crash on session switch","a":"liuhao1024","s":"merged","m":"2026-06-21","c":null},{"n":49772,"t":"fix(compression): preserve goal, platform, and session indexing across rotation","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49776,"t":"fix(gateway): FIFO busy-mode text follow-ups instead of newline-merging them","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49839,"t":"fix(whatsapp): resolve bridge dir with HERMES_HOME mirror in read-only Docker (fix #49561)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49840,"t":"fix(chat-completions): strip internal timestamp field before strict providers","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49853,"t":"test(web_server): make profile-wrapper alias test OS-aware","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49854,"t":"docs(kanban-worker): document kanban_complete artifacts deliverable param","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49855,"t":"fix(kanban): materialize per-task linked worktrees + anchor on board default_workdir","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49890,"t":"fix(doctor): audit WhatsApp bridge at its resolved HERMES_HOME dir (follow-up #49561)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49913,"t":"fix(gateway): correct sys.path insertion in all migrated platform adapters (cron namespace collision)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49914,"t":"docs: salvage 9 validated docs-update PRs (cluster)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49925,"t":"fix(gateway): preserve transcript when hygiene auto-compress can't rotate (#21301)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49928,"t":"fix(compression): protect the summary call from mid-flight interrupts (#23975)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49944,"t":"docs: salvage 28 validated docs PRs from the older backlog (cluster 2)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49946,"t":"test(matrix): make voice-detection tests hermetic against mention gating","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49986,"t":"fix(compression): stop fallback summary triplicating the latest user ask (#49307)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49989,"t":"fix(gateway): dedup image_generate media across the compression boundary (#46627)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49996,"t":"fix(telegram): recover reply text from native rich echo (#49534)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49997,"t":"fix(memory): recover from missing old_text on single-op replace/remove","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":49998,"t":"fix(compression): auto-compression triggers at minimum context length (#14690)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50001,"t":"fix(compression): decay protect_first_n so early turns don't fossilize (#11996)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50002,"t":"fix(browser): enable SSRF guard when terminal runs in container (#38690)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50003,"t":"fix(tui): persist interrupted session transcript on force-quit / SIGHUP","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50004,"t":"fix(cli): persist interrupted session transcript on SIGHUP/SIGTERM/window-close","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50007,"t":"feat(api-server): configurable concurrent-run cap to prevent DoS (#7483)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50009,"t":"fix(agent): guard finalize_turn cleanup chain so it never drops the response","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50010,"t":"fix(telegram): keep chunk markers outside code fences (#48517)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50011,"t":"fix(cron): resolve model.default + fail fast on missing model","a":"kshitijk4poor","s":"merged","m":"2026-06-21","c":null},{"n":50016,"t":"fix(cron): keep ticker alive on BaseException + heartbeat-aware status","a":"kshitijk4poor","s":"merged","m":"2026-06-21","c":null},{"n":50018,"t":"fix(cron): make live-adapter delivery confirmation reliable (#38922, #47056, #43014)","a":"kshitijk4poor","s":"merged","m":"2026-06-21","c":null},{"n":50023,"t":"fix(cron): route Telegram DM-topic cron delivery through DeliveryRouter (#22773)","a":"kshitijk4poor","s":"merged","m":"2026-06-21","c":null},{"n":50025,"t":"fix(cron): execute job immediately on action=run","a":"kshitijk4poor","s":"merged","m":"2026-06-21","c":null},{"n":50034,"t":"fix(cron): repair migrated timezone offsets to prevent double-fire","a":"kshitijk4poor","s":"merged","m":"2026-06-21","c":null},{"n":50100,"t":"fix(desktop): preserve other providers' hide-all in model visibility dialog (salvage #47450)","a":"kshitijk4poor","s":"merged","m":"2026-06-21","c":null},{"n":50104,"t":"fix(mcp): detect 'unknown method' phrasing in ping keepalive fallback (salvage #50035, fix #50028)","a":"kshitijk4poor","s":"merged","m":"2026-06-21","c":null},{"n":50115,"t":"fix(cli): warn when in-session model switch will preflight-compress","a":"kshitijk4poor","s":"merged","m":"2026-06-21","c":null},{"n":50131,"t":"feat(gateway+dashboard): busy/idle readout for safe lifecycle actions (salvage #50103)","a":"kshitijk4poor","s":"merged","m":"2026-06-21","c":null},{"n":50136,"t":"fix(agent): scale tool-output budget to the model context window (#23767)","a":"kshitijk4poor","s":"merged","m":"2026-06-21","c":null},{"n":50137,"t":"fix(agent): reset stale token calibration on model switch (#23767)","a":"kshitijk4poor","s":"merged","m":"2026-06-21","c":null},{"n":50186,"t":"feat(desktop): add Update now button to About panel","a":"OutThisLife","s":"merged","m":"2026-06-21","c":null},{"n":50194,"t":"fix(gateway): raise session-hygiene hard message limit 400 → 5000","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50196,"t":"fix(telegram): preserve newlines in rich slash-command output (#46070)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50201,"t":"fix(auth): make load_pool() non-destructive for env-seeded credentials","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50221,"t":"fix(file): harden read_file device alias blocking","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50222,"t":"fix(telegram): avoid rich messages for CJK text (#47653)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50224,"t":"fix(process): keep poll read-only so notify_on_complete watcher fires (#10156)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50226,"t":"fix(codex): bridge app-server tool-progress to the gateway (#38835)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50297,"t":"fix(compressor): treat empty-content summary response as failure, not an empty summary","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50298,"t":"fix(agent): Copilot Claude chat-completions — plain httpx transport + preserve routed headers (#12066)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50299,"t":"fix(session): finalize owned SQLite session rows on AIAgent.close() (#12029)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50302,"t":"fix(agent): route repeated-compression warning through _emit_status (#36908)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50303,"t":"fix(tui): /compress shows a before/after summary (#46686)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50307,"t":"fix(bedrock): price Claude prompt-cache tokens in /usage","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50308,"t":"fix(hindsight): skip local_embedded daemon when running as root","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50312,"t":"fix(gateway): persist in-flight transcript on restart/shutdown drain timeout","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50313,"t":"fix(config): redact api_key in config show/set output (#50245)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50318,"t":"fix(file): reject read_file line-numbered output in write_file","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50319,"t":"fix(api-server): stop silently promising async delivery on stateless HTTP path","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50321,"t":"fix(gateway): cap inbound media download size to prevent memory exhaustion","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50322,"t":"fix(telegram): make Bot API 10.1 rich messages opt-in (default off) (#48422)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50324,"t":"fix(security): redact secrets in kanban tool payloads before persistence","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50325,"t":"fix(backup): capture memory-provider state stored outside HERMES_HOME","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50329,"t":"fix(agent): stop delegate cascade from deleting the parent session","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50331,"t":"fix(kanban): single-writer dispatch lock to prevent orphan-dispatcher DB corruption","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50334,"t":"fix(file): anchor device symlink guard to task cwd (dropped commit from #34466)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50339,"t":"fix(photon): ride through Spectrum/Envoy upstream overflow (retry + typing cooldown + crash detection)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50341,"t":"feat(hindsight): configurable embedded daemon health grace timeout","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50342,"t":"feat(gateway): typed send-error classification (SendResult.error_kind)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50345,"t":"fix(desktop): close the cold-start boot loop on Windows (#50209)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50346,"t":"feat(plugins): add ctx.profile_name for session-agnostic profile access","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50348,"t":"fix(kanban): pin worker TERMINAL_CWD to the task workspace","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50349,"t":"feat(kanban): add task lifecycle plugin hooks (claimed/completed/blocked)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50351,"t":"fix(telegram): stop typing indicator lingering after final reply (#48678)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50352,"t":"docs(plugins): document acting from hooks via ctx.profile_name + dispatch_tool","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50353,"t":"fix(kanban): bound the cross-process init lock so connect() can't hang forever","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50354,"t":"fix(security): validate snapshot_id and manifest paths in restore_quick_snapshot (#9217)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50355,"t":"fix(cli): branch new worktrees from the fresh remote tip, not stale local HEAD","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50358,"t":"fix(kanban): honor kanban.auto_decompose toggle live, without a gateway restart","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50361,"t":"fix(cli): auto-restore a deleted ui-tui workspace before TUI launch","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50366,"t":"fix(kanban): make reclaim claim-lock-aware to stop task/run status desync","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50367,"t":"docs(ui-tui): sync README file paths, billing command, and File map with current TUI tree","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50368,"t":"fix(email): resolve IMAP/SMTP host from config.extra and validate before connecting (#49736)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50373,"t":"fix(gateway): respawn unmapped Windows gateways after update (#50090)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50375,"t":"fix(model-switch): failed in-place swap must be a no-op, not a dead session","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50378,"t":"fix(gateway): pause Telegram typing before stream finalize (#49712)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50379,"t":"fix(whatsapp): normalize bare phone targets to JIDs (salvage #8639)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50381,"t":"fix(desktop/windows): stop in-app update from cascading into a backend restart loop","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50382,"t":"fix(approval): honor interrupt in blocking gateway approval wait (#8697)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50385,"t":"fix(config): honor model.api_base for custom providers (alias to base_url)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50389,"t":"fix(security): fail-closed when WebSocket peer is empty in loopback mode (#15544)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50392,"t":"fix(security): sanitize Kanban dashboard markdown HTML at the render sink","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50398,"t":"fix(windows): prefer cmd npm shim on PATH fallback","a":"helix4u","s":"merged","m":"2026-06-21","c":null},{"n":50413,"t":"fix(gateway): respect adapter decline of fresh-final to prevent double delivery (#47048)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50414,"t":"fix(security): handle IPv6 scope IDs in URL safety checks to prevent bypass (#25961)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50417,"t":"fix(browser): verify daemon identity before orphan reaper kills a PID (#14073)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50423,"t":"fix(redact): mask all Authorization schemes and x-api-key style headers","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50425,"t":"fix(security): reject path traversal in SessionEntry session fields + resilient load (#9560)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50445,"t":"fix(gateway): don't lazy-install SDKs for unconfigured platforms on startup (desktop stuck at 94%)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50448,"t":"feat(desktop/windows): show update-in-progress feedback before the desktop exits","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50451,"t":"fix(codex): seed app-server sessions with configured cwd","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50452,"t":"fix(security): harden smart approval guard against prompt injection (#8876)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50454,"t":"fix(antigravity): native google-antigravity OAuth provider (Gemini CLI sunset)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":50466,"t":"fix(desktop): keep the floating composer in-bounds (can't be lost off-screen)","a":"OutThisLife","s":"merged","m":"2026-06-21","c":null},{"n":50467,"t":"fix(security): quote HERMES_TIMEZONE in remote code execution (#8007)","a":"teknium1","s":"merged","m":"2026-06-21","c":null},{"n":36733,"t":"feat(setup): Blank Slate setup mode — minimal agent, opt in to everything","a":"teknium1","s":"merged","m":"2026-06-20","c":null},{"n":45296,"t":"feat(titles): language-aware session titles with optional pinned language (Claude Code v2.1.176-inspired)","a":"teknium1","s":"merged","m":"2026-06-20","c":null},{"n":49240,"t":"fix(plugins): silence raft check_fn log spam for users without raft CLI","a":"ruangraung","s":"merged","m":"2026-06-20","c":null},{"n":49318,"t":"fix(agent): keep system-prompt model identity in sync across provider failover","a":"teknium1","s":"merged","m":"2026-06-20","c":null},{"n":49337,"t":"fix(tui): handle dispatch payloads from slash exec","a":"helix4u","s":"merged","m":"2026-06-20","c":null},{"n":49358,"t":"fix(desktop): handle slash exec dispatch payloads","a":"counterposition","s":"merged","m":"2026-06-20","c":null},{"n":49380,"t":"fix(model): clear stale endpoint credentials across all provider switches","a":"teknium1","s":"merged","m":"2026-06-20","c":null},{"n":49408,"t":"refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins (salvage #41284)","a":"teknium1","s":"merged","m":"2026-06-20","c":null},{"n":49488,"t":"feat(desktop): pop the composer out into a draggable floating window","a":"OutThisLife","s":"merged","m":"2026-06-20","c":null},{"n":49489,"t":"docs(delegate): clarify subagent model is config-level, not per-call","a":"kshitijk4poor","s":"merged","m":"2026-06-20","c":null},{"n":49515,"t":"fix(desktop): mute hidden link-title window so historical links don't autoplay audio","a":"xxxigm","s":"merged","m":"2026-06-20","c":null},{"n":49530,"t":"refactor(signal): salvage AAC voice-note remux + shared markdown formatting (batch of #47766, #46386)","a":"kshitijk4poor","s":"merged","m":"2026-06-20","c":null},{"n":49558,"t":"fix(env): guard malformed numeric env vars across gateway/agent with utils helpers","a":"kshitijk4poor","s":"merged","m":"2026-06-20","c":null},{"n":49563,"t":"fix(signal): salvage quoted-reply context (#46388)","a":"kshitijk4poor","s":"merged","m":"2026-06-20","c":null},{"n":49583,"t":"fix(signal): salvage self-mention strip + explicit stop-typing RPC (batch of #31217, #40054)","a":"kshitijk4poor","s":"merged","m":"2026-06-20","c":null},{"n":49678,"t":"fix(signal): salvage echo-ring LRU+TTL hardening (#31250)","a":"kshitijk4poor","s":"merged","m":"2026-06-20","c":null},{"n":49680,"t":"fix(signal): FIFO-evict the quote-detection timestamp cache (follow-up to #49678)","a":"kshitijk4poor","s":"merged","m":"2026-06-20","c":null},{"n":49729,"t":"fix(desktop): add tooltips to right sidebar header buttons","a":"teknium1","s":"merged","m":"2026-06-20","c":null},{"n":49734,"t":"feat(delegation): background fan-out — parallel subagents, one consolidated return","a":"teknium1","s":"merged","m":"2026-06-20","c":null},{"n":49735,"t":"fix(auth): heal poisoned Nous inference URL on refresh instead of retaining it","a":"teknium1","s":"merged","m":"2026-06-20","c":null},{"n":49738,"t":"fix(gateway): never interrupt a busy session with an internal completion event","a":"teknium1","s":"merged","m":"2026-06-20","c":null},{"n":49739,"t":"feat(compression): in-place compaction option, single session id (#38763) [1/2]","a":"teknium1","s":"merged","m":"2026-06-20","c":null},{"n":49741,"t":"fix(compression): abort on auth failure instead of rotating into a degraded session","a":"teknium1","s":"merged","m":"2026-06-20","c":null},{"n":49750,"t":"fix(agent): fail over to fallback provider on persistent auth failure (401/403)","a":"teknium1","s":"merged","m":"2026-06-20","c":null},{"n":49838,"t":"fix(install): expand 8.3 short %TEMP% so Windows Node/Electron stages don't abort","a":"teknium1","s":"merged","m":"2026-06-20","c":null},{"n":37475,"t":"fix(terminal): block gateway lifecycle commands from inside the gateway process","a":"AhmetArif0","s":"merged","m":"2026-06-19","c":null},{"n":42402,"t":"feat(optional-skills/creative-ideation): expand to v2.1.0 method library","a":"SHL0MS","s":"merged","m":"2026-06-19","c":null},{"n":45638,"t":"docs: clean up three stale comments from the #32848 audit","a":"KeyArgo","s":"merged","m":"2026-06-19","c":null},{"n":48210,"t":"feat(gateway): add Raft bundled platform plugin with activity hooks","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":48259,"t":"fix(dashboard): clean up upload temp file on client disconnect + pin python-multipart (NS-501)","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":48273,"t":"feat(gateway): multiplex all profiles over one gateway process (opt-in)","a":"benbarclay","s":"merged","m":"2026-06-19","c":null},{"n":48275,"t":"feat(cron): pluggable CronScheduler interface + Chronos managed-cron provider (scale-to-zero)","a":"benbarclay","s":"merged","m":"2026-06-19","c":null},{"n":48367,"t":"fix(agent): summarize non-retryable API errors so raw HTML never leaks to delivery","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":48541,"t":"fix(docker): support WebUI installs from read-only sources","a":"r266-tech","s":"merged","m":"2026-06-19","c":null},{"n":48561,"t":"fix(dashboard): resolve chat TUI argv off event loop","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":48615,"t":"fix(dashboard): use DS Button prefix/size API instead of inline icons","a":"jquesnelle","s":"merged","m":"2026-06-19","c":null},{"n":48673,"t":"Update Stripe Projects skill docs","a":"colinwren-stripe","s":"merged","m":"2026-06-19","c":null},{"n":48688,"t":"fix(state): survive SQLite builds without trigram tokenizer + warn on unavailable session store","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":48691,"t":"feat(model-picker): add Refresh Models control to bust stale model cache","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":48699,"t":"feat(cli): lock hermes worktrees so concurrent processes can't clobber them","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":48705,"t":"feat(image-gen): add image-to-image / editing to image_generate","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":48724,"t":"fix(relay): trigger self-provision on relay-config + NAS token, not is_managed()","a":"benbarclay","s":"merged","m":"2026-06-19","c":null},{"n":48783,"t":"fix(agent): summarize structured provider error messages instead of crashing","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":48828,"t":"fix(relay): make hosted gateways actually connect AND complete the inbound/outbound round-trip","a":"benbarclay","s":"merged","m":"2026-06-19","c":null},{"n":48830,"t":"fix(gateway): strict gateway command-line matcher + Windows restart verification","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":48834,"t":"fix(gateway): refresh max_turns for fresh and cached agents without restart","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":48846,"t":"fix(clarify): unwrap dict choices at the source + smart-truncate Discord buttons","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":48862,"t":"Restart dashboard chat on idle exit hotkeys","a":"shannonsands","s":"merged","m":"2026-06-19","c":null},{"n":48880,"t":"fix(dashboard): Slack allowed-users setup field + wildcard/empty-entry validation (salvages #48824)","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":48882,"t":"fix(tui): keep hosted dashboard chat alive on /exit (salvage #48739)","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":48883,"t":"fix(nix): hashless npm deps via importNpmLock (salvage #48213)","a":"alt-glitch","s":"merged","m":"2026-06-19","c":null},{"n":48899,"t":"feat(skills): add html-artifact skill, fold in sketch + architecture-diagram + concept-diagrams","a":"alt-glitch","s":"merged","m":"2026-06-19","c":null},{"n":48924,"t":"fix(openviking): structured turn sync — guard empty tool_id, reuse env_var_enabled (salvage #48894)","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":48933,"t":"fix(agent): aggregate Anthropic aux calls via stream","a":"tt-a1i","s":"merged","m":"2026-06-19","c":null},{"n":48941,"t":"fix(backup): exclude regeneratable dep/cache dirs so backups don't balloon","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":48950,"t":"fix(dashboard): refresh Sessions list in real time when new sessions are created","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":48953,"t":"fix(tui): route pending-input commands via command.dispatch (#48848)","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":48966,"t":"chore: add tt-a1i to AUTHOR_MAP","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":48981,"t":"fix(debug): include gui.log (dashboard/TUI/pty/websocket) in hermes debug share","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":48982,"t":"fix(tui): disable fast-echo bypass inside tmux (incl. SSH-from-tmux)","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":48999,"t":"fix(desktop): resume stored session id on notification click","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":49000,"t":"fix(sessions): let a compression continuation reclaim its base title (salvages #48989)","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":49053,"t":"Revert \"feat(skills): add html-artifact skill, fold in sketch + architecture-diagram + concept-diagrams (#48899)\"","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49056,"t":"fix(cli): make idle refresh_interval configurable, default 0 (no auto-scroll)","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49058,"t":"fix(cron): compact cron failure messages + repair bare repo dirs after git gc","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49059,"t":"fix(tui): guard /update against hosted dashboard mode (salvage #48904)","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49060,"t":"feat(tts): expose speaker_id on built-in Piper provider","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49061,"t":"feat(tts): add auxiliary-model auto speech tags for xAI","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49062,"t":"feat(tts): add xAI TTS speed and optimize_streaming_latency config knobs","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49063,"t":"fix(desktop): allow selecting slash output and shell logs in thread","a":"OutThisLife","s":"merged","m":"2026-06-19","c":null},{"n":49064,"t":"fix(kanban): hold reclaim while the worker is still alive","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49066,"t":"fix(model): persist /model switch by default across sessions","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49068,"t":"fix(kanban): machine-global singleton lock for the embedded dispatcher (#41448)","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49070,"t":"feat(simplify-code): risk-tiered application, Chesterton's Fence, slop + silent failure detection","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49073,"t":"fix(desktop): render send/prefill directive notices (/goal, /undo)","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49077,"t":"feat(dashboard): session switcher panel on the Chat tab","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49080,"t":"feat(desktop): unify provider list — one source for hermes model + Providers tabs (salvage #48800)","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49081,"t":"fix(gateway): don't let delayed Discord status messages partition history backfill","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49084,"t":"fix(dashboard): chat model picker switches the running model + stops badge drift","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49085,"t":"fix(hindsight): lazy-install cloud client dependency + align version to 0.6.1","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49087,"t":"fix(cli): default cli_refresh_interval to 1.0 to keep status bar alive","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49089,"t":"fix(clarify): put options in choices[] only, never enumerate in question text","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49094,"t":"fix(desktop): rename \"Restart messaging\" → \"Restart gateway\", surface restarts in the statusbar, make logs selectable","a":"OutThisLife","s":"merged","m":"2026-06-19","c":null},{"n":49098,"t":"feat(managed-scope): administrator-pinned, user-immutable config & secrets","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49104,"t":"fix(dashboard): sort chat session switcher by most-recent activity","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49105,"t":"fix(cli): status bar no longer stays hidden after resize during idle","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49113,"t":"chore(deps): npm audit fix — clear transitive undici advisories","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49120,"t":"fix(cli): clear viewport on width-change resize so the status bar can't duplicate","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49134,"t":"feat(telegram): opt-in Online/Offline bot status indicator","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49140,"t":"fix(agent): accept pixel-correct image downscale when bytes grow (#48013)","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49141,"t":"feat(dashboard): add a reasoning-effort picker to the chat sidebar","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49203,"t":"feat(tools): MCP elicitation handler with gateway-aware approval routing","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49207,"t":"fix(cron): sanitize env for job script subprocesses","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":49208,"t":"fix(mcp): expose late-connecting MCP tools to the agent (TUI/CLI/gateway)","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49212,"t":"fix(discord): hydrate channel context when replying to a message","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49221,"t":"fix(mcp): keep short-TTL HTTP sessions alive with configurable ping keepalive","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49230,"t":"chore: release v0.17.0 (2026.6.19)","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49236,"t":"chore(desktop): sync package.json version fallback to 0.17.0","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49245,"t":"fix(gateway): rename Telegram topic from /title, not only auto-titles","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":49254,"t":"fix(windows): prefer managed node for whatsapp and desktop","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":49264,"t":"fix(gateway): persist inline-keyboard model-picker selections by default, matching /model (#49066)","a":"kshitijk4poor","s":"merged","m":"2026-06-19","c":null},{"n":49269,"t":"fix(dashboard): hide sidecar sessions from history","a":"helix4u","s":"merged","m":"2026-06-19","c":null},{"n":49308,"t":"feat(teams): native send_video/send_voice/send_document attachments","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49310,"t":"feat(desktop): notify renderer when GPU acceleration is disabled due to remote display","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49312,"t":"fix(signal): reject silent per-recipient delivery failures in live adapter (#49260)","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49313,"t":"fix(tools): never let a model whitelist strip the prompt / source images","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49315,"t":"fix(cli): restore memory on_session_end on /exit (publish agent ref to cli module)","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":49321,"t":"fix(gateway): break the restart loop at the source on session resume","a":"teknium1","s":"merged","m":"2026-06-19","c":null},{"n":37546,"t":"fix(desktop): show Hindsight memory provider","a":"benfrank241","s":"merged","m":"2026-06-18","c":null},{"n":43051,"t":"fix(approval): honor glob command allowlist entries","a":"helix4u","s":"merged","m":"2026-06-18","c":null},{"n":45449,"t":"feat(billing): /billing terminal billing — interactive TUI + CLI client","a":"alt-glitch","s":"merged","m":"2026-06-18","c":null},{"n":47555,"t":"fix(docker): supervised gateway uses --replace to take over stale holder (NS-505)","a":"benbarclay","s":"merged","m":"2026-06-18","c":null},{"n":47663,"t":"fix(dashboard): stream file uploads via multipart instead of base64 JSON (NS-501)","a":"benbarclay","s":"merged","m":"2026-06-18","c":null},{"n":47674,"t":"fix(dashboard): recover the Chat tab when the agent session ends (NS-504)","a":"benbarclay","s":"merged","m":"2026-06-18","c":null},{"n":48108,"t":"fix(xai): native web_search swap + incomplete guard for OAuth Responses (salvage #44341)","a":"teknium1","s":"merged","m":"2026-06-18","c":null},{"n":48109,"t":"fix(agent): dampen empty-name phantom tool-call loop (#47967)","a":"teknium1","s":"merged","m":"2026-06-18","c":null},{"n":48122,"t":"fix(desktop): retry the self-update rebuild once so the app relaunches","a":"OutThisLife","s":"merged","m":"2026-06-18","c":null},{"n":48147,"t":"feat(relay): connector⇄gateway channel auth + signed-HTTP inbound receiver + enroll CLI","a":"benbarclay","s":"merged","m":"2026-06-18","c":null},{"n":48188,"t":"fix(update): scope install-method stamp to the code tree, not $HERMES_HOME","a":"benbarclay","s":"merged","m":"2026-06-18","c":null},{"n":48206,"t":"fix(openviking): adapt memory provider for current api","a":"ehz0ah","s":"merged","m":"2026-06-18","c":null},{"n":48242,"t":"feat(relay): managed-boot self-provision client (Phase 3, gateway side)","a":"benbarclay","s":"merged","m":"2026-06-18","c":null},{"n":48243,"t":"fix(backup): hermes import never overwrites volatile gateway runtime state (NS-501/508)","a":"benbarclay","s":"merged","m":"2026-06-18","c":null},{"n":48261,"t":"chore: drop committed PR-infographic assets from the repo","a":"benbarclay","s":"merged","m":"2026-06-18","c":null},{"n":48262,"t":"feat(memory): improve OpenViking setup UX (salvage #32445)","a":"kshitijk4poor","s":"merged","m":"2026-06-18","c":null},{"n":48265,"t":"refactor(openviking): reuse atomic_json_write for ovcli config; drop dead constants","a":"kshitijk4poor","s":"merged","m":"2026-06-18","c":null},{"n":48286,"t":"feat(skills): find & diff user-modified bundled skills (salvage of #47802)","a":"kshitijk4poor","s":"merged","m":"2026-06-18","c":null},{"n":48292,"t":"fix(langfuse): scope trace state by turn/request ids (salvage #47945)","a":"kshitijk4poor","s":"merged","m":"2026-06-18","c":null},{"n":48293,"t":"refactor(skills): dedupe file-listing + share user-modified predicate (follow-up to #48286)","a":"kshitijk4poor","s":"merged","m":"2026-06-18","c":null},{"n":48294,"t":"feat(relay): WS-only inbound on the gateway adapter (Phase 3)","a":"benbarclay","s":"merged","m":"2026-06-18","c":null},{"n":48299,"t":"chore(release): map infinitycrew39 author email","a":"kshitijk4poor","s":"merged","m":"2026-06-18","c":null},{"n":48341,"t":"fix(install): resolve PowerShell host instead of bare `powershell` for uv install","a":"xxxigm","s":"merged","m":"2026-06-18","c":null},{"n":48397,"t":"feat(mcp-catalog): add official Unreal Engine 5.8 MCP server","a":"teknium1","s":"merged","m":"2026-06-18","c":null},{"n":48402,"t":"fix(tui): MCP headline counts connected servers, not disabled ones","a":"teknium1","s":"merged","m":"2026-06-18","c":null},{"n":48403,"t":"fix(tui): refresh tool snapshot when MCP discovery lands after agent build","a":"teknium1","s":"merged","m":"2026-06-18","c":null},{"n":48421,"t":"fix(desktop): dispose open PTY sessions in before-quit handler","a":"teknium1","s":"merged","m":"2026-06-18","c":null},{"n":48423,"t":"fix(cua): scrub operator environment before launching cua-driver MCP (#37878)","a":"teknium1","s":"merged","m":"2026-06-18","c":null},{"n":48424,"t":"fix(skills): rmtree scope guard + default pre_update_backup to true (#48200)","a":"teknium1","s":"merged","m":"2026-06-18","c":null},{"n":48425,"t":"fix(tui): don't make Enter swallow trailing-space-only slash completions","a":"xxxigm","s":"merged","m":"2026-06-18","c":null},{"n":48457,"t":"fix(nix): refresh npmDepsHash after the Electron 40.10.2 pin (#47792)","a":"alt-glitch","s":"merged","m":"2026-06-18","c":null},{"n":48507,"t":"feat(memory): batch operations for single-turn memory updates","a":"teknium1","s":"merged","m":"2026-06-18","c":null},{"n":48520,"t":"feat(dashboard): surface full per-MCP catalog detail; fix pip-install doc","a":"teknium1","s":"merged","m":"2026-06-18","c":null},{"n":48529,"t":"fix(install): relax EAP=Stop around native git/uv calls + fail-fast on uv venv failure (#48352, salvage of #48372)","a":"kshitijk4poor","s":"merged","m":"2026-06-18","c":null},{"n":48533,"t":"fix(prompt,desktop,tui): dedupe parallel-tool-call steer + surface self-improvement review summary","a":"teknium1","s":"merged","m":"2026-06-18","c":null},{"n":48547,"t":"fix(desktop): never persist or restore a named custom provider as bare \"custom\"","a":"teknium1","s":"merged","m":"2026-06-18","c":null},{"n":48584,"t":"fix(compression): preserve messages across session rotation (flush-before-rotate + /compress rewrite guard)","a":"teknium1","s":"merged","m":"2026-06-18","c":null},{"n":48611,"t":"fix(picker): remove max_models=50 cap in interactive model pickers","a":"teknium1","s":"merged","m":"2026-06-18","c":null},{"n":48619,"t":"fix(desktop): add scroll to long user message bubbles","a":"alelpoan","s":"merged","m":"2026-06-18","c":null},{"n":48630,"t":"feat(prompt): configurable per-platform system-prompt hints (salvage #48597)","a":"teknium1","s":"merged","m":"2026-06-18","c":null},{"n":48633,"t":"fix(gateway): resume follows the compression tip so post-compression replies render","a":"OutThisLife","s":"merged","m":"2026-06-18","c":null},{"n":48635,"t":"feat(kanban): config-gated auto-subscribe on kanban_create (salvage #28720)","a":"teknium1","s":"merged","m":"2026-06-18","c":null},{"n":48641,"t":"fix(desktop): make session delete idempotent and id-resolving","a":"OutThisLife","s":"merged","m":"2026-06-18","c":null},{"n":48657,"t":"fix(npm): lock react-simple-icons to 13.11.1","a":"ethernet8023","s":"merged","m":"2026-06-18","c":null},{"n":46794,"t":"fix(logging): alias RotatingFileHandler to concurrent-log-handler (salvage #44921)","a":"austinpickett","s":"merged","m":"2026-06-17","c":null},{"n":46818,"t":"fix(photon): preserve text in mixed iMessage attachments (salvage #46513)","a":"austinpickett","s":"merged","m":"2026-06-17","c":null},{"n":47131,"t":"fix(cli): detect containerd/CRI cgroup-v2 containers in is_container()","a":"Bartok9","s":"merged","m":"2026-06-17","c":null},{"n":47490,"t":"Harden hosted Docker install tree against self-modification","a":"shannonsands","s":"merged","m":"2026-06-17","c":null},{"n":47645,"t":"fix(desktop): stop a failed turn leaking into every other thread","a":"OutThisLife","s":"merged","m":"2026-06-17","c":null},{"n":47655,"t":"fix(desktop): recover stranded session windows when resume fails","a":"austinpickett","s":"merged","m":"2026-06-17","c":null},{"n":47664,"t":"fix(desktop): stop a single message from crashing or freezing the chat","a":"OutThisLife","s":"merged","m":"2026-06-17","c":null},{"n":47701,"t":"fix(cli): keep typing responsive by running completion off the UI event loop","a":"kshitijk4poor","s":"merged","m":"2026-06-17","c":null},{"n":47706,"t":"fix(cli): deprecated `hermes login` fails gracefully for any provider","a":"kshitijk4poor","s":"merged","m":"2026-06-17","c":null},{"n":47723,"t":"fix(anthropic): no single-underscore mcp_ tool names on the OAuth wire (plan-limit billing)","a":"kshitijk4poor","s":"merged","m":"2026-06-17","c":null},{"n":47792,"t":"fix(desktop): pin Electron below the broken native extract-zip install","a":"xxxigm","s":"merged","m":"2026-06-17","c":null},{"n":47836,"t":"fix(codex): restore session_id/x-client-request-id HTTP headers for cache routing (#47335)","a":"teknium1","s":"merged","m":"2026-06-17","c":null},{"n":47839,"t":"fix(curator): stop the rollback safety snapshot from pruning its target","a":"teknium1","s":"merged","m":"2026-06-17","c":null},{"n":47840,"t":"feat(curator): make skill consolidation opt-in (prune stays default-on)","a":"teknium1","s":"merged","m":"2026-06-17","c":null},{"n":47841,"t":"fix(desktop): list markers and quote border follow RTL message direction","a":"teknium1","s":"merged","m":"2026-06-17","c":null},{"n":47842,"t":"fix(gateway): defer macOS launchd reload when run inside the gateway tree","a":"teknium1","s":"merged","m":"2026-06-17","c":null},{"n":47843,"t":"fix(dashboard): scope gateway lifecycle + Telegram onboarding to selected profile","a":"teknium1","s":"merged","m":"2026-06-17","c":null},{"n":47846,"t":"feat(prompt): scale context-file cap to model window + point agent at truncated file","a":"teknium1","s":"merged","m":"2026-06-17","c":null},{"n":47856,"t":"refactor: remove agent-callable send_message tool","a":"teknium1","s":"merged","m":"2026-06-17","c":null},{"n":47860,"t":"fix(auth): retry Codex device-code login on 429 with clear rate-limit message","a":"teknium1","s":"merged","m":"2026-06-17","c":null},{"n":47861,"t":"fix(curator): stop restore from matching unrelated skills by name prefix","a":"teknium1","s":"merged","m":"2026-06-17","c":null},{"n":47866,"t":"feat(search_files): headroom compression evaluation report + lossless densification","a":"teknium1","s":"merged","m":"2026-06-17","c":null},{"n":47907,"t":"fix(agent): preserve multimodal user content through crash-resilience persist","a":"teknium1","s":"merged","m":"2026-06-17","c":null},{"n":47908,"t":"feat(xai): surface Composer 2.5 in the xAI OAuth model picker","a":"teknium1","s":"merged","m":"2026-06-17","c":null},{"n":47913,"t":"fix(desktop): stop the \"Backend out of date\" toast nagging on every session open","a":"xxxigm","s":"merged","m":"2026-06-17","c":null},{"n":47919,"t":"fix(desktop): keep streaming painting in unfocused secondary chat windows","a":"xxxigm","s":"merged","m":"2026-06-17","c":null},{"n":47938,"t":"feat(pets): pop-out desktop overlay + notifications","a":"OutThisLife","s":"merged","m":"2026-06-17","c":null},{"n":47973,"t":"fix(tests): type-correct OpenViking skill-scaffolding test sentinels","a":"kshitijk4poor","s":"merged","m":"2026-06-17","c":null},{"n":47985,"t":"feat(desktop): add dismiss control to chat error banners","a":"austinpickett","s":"merged","m":"2026-06-17","c":null},{"n":47987,"t":"fix(desktop): persist /title set before the first message instead of queuing","a":"austinpickett","s":"merged","m":"2026-06-17","c":null},{"n":48042,"t":"fix(openviking): implement on_session_switch hook + harden session writes (salvage #47662)","a":"kshitijk4poor","s":"merged","m":"2026-06-17","c":null},{"n":48078,"t":"feat(gateway): relay adapter + capability descriptor (Gateway Gateway phases 0-1)","a":"teknium1","s":"merged","m":"2026-06-17","c":null},{"n":48081,"t":"fix(desktop): resolve electronDist to the actual electron install location","a":"teknium1","s":"merged","m":"2026-06-17","c":null},{"n":48091,"t":"fix(desktop): resolve electronDist dynamically + self-heal blocked installs (supersedes #48081/#48082)","a":"OutThisLife","s":"merged","m":"2026-06-17","c":null},{"n":48104,"t":"fix(dump): show commit date instead of release date in hermes debug","a":"teknium1","s":"merged","m":"2026-06-17","c":null},{"n":46857,"t":"fix(models): merge live API results with curated static catalog in generic provider path","a":"liuhao1024","s":"merged","m":"2026-06-16","c":null},{"n":46890,"t":"fix(telegram): edit streamed previews in place as rich (Bot API 10.1)","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":46895,"t":"fix(desktop): open remote-gateway artifacts via authenticated download","a":"OutThisLife","s":"merged","m":"2026-06-16","c":null},{"n":46907,"t":"fix(photon): unify dashboard/Spectrum project ids and simplify provisioning","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":46929,"t":"fix(skills): guard recursive skill delete against tree-escape (port Kilo #11240)","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":46951,"t":"feat(desktop): hotkey to open a new session in a compact window","a":"OutThisLife","s":"merged","m":"2026-06-16","c":null},{"n":46958,"t":"Hide hosted dashboard update controls","a":"shannonsands","s":"merged","m":"2026-06-16","c":null},{"n":46959,"t":"feat(desktop): composer model selector, per-model presets & external-provider disconnect","a":"OutThisLife","s":"merged","m":"2026-06-16","c":null},{"n":46968,"t":"fix(delegation): forward background flag so delegate_task(background=true) runs async","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47011,"t":"fix(desktop): route global remote profile REST calls","a":"helix4u","s":"merged","m":"2026-06-16","c":null},{"n":47060,"t":"feat(desktop): stream subagent activity into watch windows","a":"OutThisLife","s":"merged","m":"2026-06-16","c":null},{"n":47223,"t":"fix(auth): preserve Codex pool-only rate-limit state","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47226,"t":"feat(display): configurable background memory/skill notifications","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47228,"t":"feat(gateway): configurable tool_progress_grouping (accumulate | separate)","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47230,"t":"test(tui): isolate session-create no-race test from shard-sibling leakage","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47235,"t":"fix(auxiliary): honor fallback policy for auto tasks","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47240,"t":"fix(gateway): accept metadata kwarg in WhatsApp/email send_image","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47245,"t":"feat(desktop): allow /browser connect on a local gateway","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47248,"t":"fix(slack): route /debug via /hermes to restore Telegram-parity","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47249,"t":"fix(skills): ignore support docs in skill discovery","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47250,"t":"fix(mattermost): harden thread routing and delivery hygiene","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47251,"t":"feat(prompt): configurable context-file truncation limit + warnings","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47252,"t":"feat(hooks): emit session:compress lifecycle event","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47253,"t":"feat(gateway): optional message timestamps for LLM context","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47276,"t":"fix(desktop): re-download Electron binary via mirror when pack fails (#47266)","a":"xxxigm","s":"merged","m":"2026-06-16","c":null},{"n":47309,"t":"feat(skills): replace shop-app with CLI-based shop skill","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47311,"t":"fix(memory): strip skill scaffolding for all providers (generalizes #32663)","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47371,"t":"feat(xai): default to grok-build-0.1","a":"Jaaneek","s":"merged","m":"2026-06-16","c":null},{"n":47391,"t":"feat: add z-ai/glm-5.2 to OpenRouter and Nous model lists","a":"kshitijk4poor","s":"merged","m":"2026-06-16","c":null},{"n":47405,"t":"fix(models): pass model.base_url to fetch_models in /model picker","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47407,"t":"fix(inventory): keep user-defined custom providers in model dedup","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47409,"t":"fix(telegram): resolve replies to rich (sendRichMessage) messages","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47417,"t":"fix(model-switch): probe /v1/models for providers without api_key","a":"teknium1","s":"merged","m":"2026-06-16","c":null},{"n":47447,"t":"fix(desktop): honor pre-session model pick + restore global reasoning/speed defaults","a":"OutThisLife","s":"merged","m":"2026-06-16","c":null},{"n":31343,"t":"feat(skills): add optional payments skills (Stripe Link, MPP, Projects)","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":40946,"t":"feat(delegation): async background subagents via delegate_task(background=true)","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":44159,"t":"fix(desktop): inset hover-reveal trigger past the adjacent scrollbar","a":"AIalliAI","s":"merged","m":"2026-06-15","c":null},{"n":44431,"t":"feat(honcho): gateway-gated identity tree + canonicalize on pinUserPeer","a":"erosika","s":"merged","m":"2026-06-15","c":null},{"n":45120,"t":"fix(windows): kill hermes before recreating venv to release _bcrypt.pyd lock","a":"leo4226","s":"merged","m":"2026-06-15","c":null},{"n":46078,"t":"fix(discord): cap slash commands at Discord's 100-command limit","a":"xxxigm","s":"merged","m":"2026-06-15","c":null},{"n":46085,"t":"fix(install): make `npm install -g` packages reachable on PATH","a":"xxxigm","s":"merged","m":"2026-06-15","c":null},{"n":46244,"t":"fix(desktop): keep file tree refresh clickable","a":"skyc1e","s":"merged","m":"2026-06-15","c":null},{"n":46266,"t":"fix(s6): register profile gateways without auto-starting","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46289,"t":"fix(s6): clear stale log lock before startup","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46290,"t":"fix(s6): detect supervisor directly for gateway restart","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46291,"t":"fix(s6): make profile gateway log parent writable","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46292,"t":"fix(s6): persist profile gateway desired state","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46293,"t":"fix(docker): skip gateway reconciliation in dashboard container (autodetect)","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46344,"t":"fix(mcp): fail fast for non-interactive OAuth MCP without tokens","a":"helix4u","s":"merged","m":"2026-06-15","c":null},{"n":46483,"t":"fix(s6): reserved default gateway must not follow sticky active_profile","a":"benbarclay","s":"merged","m":"2026-06-15","c":null},{"n":46487,"t":"fix(dashboard): pin machine-dashboard reroute to the machine root, not $HOME/.hermes","a":"benbarclay","s":"merged","m":"2026-06-15","c":null},{"n":46552,"t":"fix(tools): respect session cwd in file tools (salvage of #46460)","a":"kshitijk4poor","s":"merged","m":"2026-06-15","c":null},{"n":46611,"t":"feat(hindsight): make retain observation scopes configurable","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46614,"t":"fix(auth): resolve xAI OAuth credentials across profiles + write rotated tokens back to root","a":"kshitijk4poor","s":"merged","m":"2026-06-15","c":null},{"n":46628,"t":"fix(dump): report effective terminal backend in `hermes debug`","a":"xxxigm","s":"merged","m":"2026-06-15","c":null},{"n":46629,"t":"fix(disk-cleanup): prune protected cleanup walks","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46631,"t":"fix(gateway): evict stale scoped locks on PID start collisions","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46632,"t":"fix(auth): refresh xAI OAuth tokens earlier","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46633,"t":"fix(bedrock): check boto3 version before Converse streaming","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46635,"t":"fix(messaging): route WhatsApp group JIDs to target","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46637,"t":"fix(agent): redact secrets in request debug dumps","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46639,"t":"fix(cron): serialize jobs.json writes across processes","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46646,"t":"docs: recommend standard installer for development","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46648,"t":"fix(minimax): route M3 reasoning controls through profile","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46652,"t":"fix(cli,deps): clear esbuild audit loop","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46655,"t":"fix: salvage browser, status, session listing improvements","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46658,"t":"fix(desktop): sync $connection on profile switch so remote profiles upload image bytes","a":"xxxigm","s":"merged","m":"2026-06-15","c":null},{"n":46659,"t":"fix(process): label background completion causes","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46665,"t":"fix(dashboard): scope chat sidebar model card to selected profile","a":"austinpickett","s":"merged","m":"2026-06-15","c":null},{"n":46707,"t":"fix(desktop): pin @assistant-ui/store so the build stops failing on install/update","a":"xxxigm","s":"merged","m":"2026-06-15","c":null},{"n":46737,"t":"change(ci): rip out nix ci for now","a":"ethernet8023","s":"merged","m":"2026-06-15","c":null},{"n":46739,"t":"fix(desktop): move tsconfig to es2023","a":"ethernet8023","s":"merged","m":"2026-06-15","c":null},{"n":46744,"t":"fix(deps): declare websockets as core dep + relax dev setuptools pin (salvage #45486, #44693)","a":"austinpickett","s":"merged","m":"2026-06-15","c":null},{"n":46764,"t":"fix(teams): package Microsoft Teams SDK as an installable extra (salvage #43945)","a":"austinpickett","s":"merged","m":"2026-06-15","c":null},{"n":46772,"t":"fix(desktop): read HERMES_HOME from the Windows registry when env is stale (salvage #45628)","a":"austinpickett","s":"merged","m":"2026-06-15","c":null},{"n":46795,"t":"docs: point desktop download links to site root (deprecate /desktop)","a":"austinpickett","s":"merged","m":"2026-06-15","c":null},{"n":46796,"t":"fix(desktop): let explicit model switches escape broken config providers (salvage #42971)","a":"austinpickett","s":"merged","m":"2026-06-15","c":null},{"n":46822,"t":"fix(doctor): accept NVIDIA vendor slugs","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46829,"t":"fix(inventory): deduplicate aggregator model rows","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46836,"t":"fix(desktop): restore Electron binary before macOS pack rename (salvage #38673)","a":"OutThisLife","s":"merged","m":"2026-06-15","c":null},{"n":46867,"t":"fix(ci): always run pull_request checks","a":"ethernet8023","s":"merged","m":"2026-06-15","c":null},{"n":46885,"t":"fix(mattermost): preserve thread-local delivery hygiene","a":"teknium1","s":"merged","m":"2026-06-15","c":null},{"n":46909,"t":"fix(desktop): coalesce interleaved reasoning/content stream parts","a":"OutThisLife","s":"merged","m":"2026-06-15","c":null},{"n":28479,"t":"fix(dispatch): pass session_id into registry.dispatch","a":"aimable100","s":"merged","m":"2026-06-14","c":null},{"n":42480,"t":"feat(desktop): add curated completion cue for agent turn completion","a":"OutThisLife","s":"merged","m":"2026-06-14","c":null},{"n":45681,"t":"fix(ssl): surface broken CA bundles before provider calls","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":45695,"t":"feat(zai): add GLM-5.2 with verified 1M context window","a":"am423","s":"merged","m":"2026-06-14","c":null},{"n":45830,"t":"fix(gateway): resolve sudo profile system installs","a":"helix4u","s":"merged","m":"2026-06-14","c":null},{"n":45831,"t":"perf(process): wake waiters on background completion","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":45842,"t":"fix(providers): support Anthropic proxy v1 endpoints","a":"helix4u","s":"merged","m":"2026-06-14","c":null},{"n":45852,"t":"fix(mcp): preserve event loop during probes","a":"helix4u","s":"merged","m":"2026-06-14","c":null},{"n":45866,"t":"feat(desktop): native OS notifications with per-type toggles","a":"OutThisLife","s":"merged","m":"2026-06-14","c":null},{"n":45937,"t":"fix: read dashboard spa assets as utf-8","a":"LeonSGP43","s":"merged","m":"2026-06-14","c":null},{"n":45947,"t":"fix(file-safety): relax user-write deny policy","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":45948,"t":"perf(execute-code): stop waiting on idle RPC accept","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":45950,"t":"fix(tui): scope resumed profile cwd to profile db","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":45951,"t":"fix: add safe provider account removal","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":45953,"t":"feat(telegram): restore rich messages opt-out","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":45979,"t":"fix: shrink images to provider dimension limit","a":"OutThisLife","s":"merged","m":"2026-06-14","c":null},{"n":46013,"t":"fix(agent): surface model refusals as content_filter (salvage #43108 + edge-case fix)","a":"kshitijk4poor","s":"merged","m":"2026-06-14","c":null},{"n":46014,"t":"fix(desktop): clarify UX — loading, enter-to-send, radio align","a":"OutThisLife","s":"merged","m":"2026-06-14","c":null},{"n":46029,"t":"fix(desktop): show summarizing indicator during auto-compaction","a":"OutThisLife","s":"merged","m":"2026-06-14","c":null},{"n":46030,"t":"fix(desktop): show copied checkmark on session Copy ID","a":"OutThisLife","s":"merged","m":"2026-06-14","c":null},{"n":46065,"t":"perf(webhook): prune request caches incrementally","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46071,"t":"fix(agent): persist repaired-turn responses","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46073,"t":"fix(desktop): keep profile homes out of bootstrap","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46074,"t":"fix(gateway): serialize startup auto-resume before inbound","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46075,"t":"fix: make profile subprocess HOME policy explicit","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46079,"t":"perf(api-server): normalize chat content linearly","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46080,"t":"fix(gateway): suppress exact silence tokens without mutating history","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46083,"t":"fix(mcp): block exfil-shaped stdio server configs","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46084,"t":"fix(email): use implicit TLS for port 465","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46102,"t":"fix(telegram): guard rich details math crash","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46105,"t":"docs(gateway): document exact silence tokens","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46107,"t":"fix(gateway): include replied-to media attachments","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46110,"t":"fix(messaging): correct Weixin personal setup copy","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46111,"t":"fix(gateway): stop interrupted tool replay loops","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46112,"t":"fix(mcp): block suspicious stdio configs before probe","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46114,"t":"perf(model-metadata): persist OpenRouter metadata cache","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46120,"t":"fix(gateway): block duplicate foreground gateway runs earlier","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46149,"t":"perf(skills): share raw config cache in skill utils","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46197,"t":"fix(desktop): limit thinking shimmer to the disclosure label","a":"OutThisLife","s":"merged","m":"2026-06-14","c":null},{"n":46206,"t":"fix(telegram): avoid rich final duplicate previews","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46236,"t":"fix(skills): platform-disabled skills still appear in <available_skills> + unify all resolution sites (#46201)","a":"kshitijk4poor","s":"merged","m":"2026-06-14","c":null},{"n":46237,"t":"fix(gateway): cross-process agent-cache coherence (#45966) + preserve prompt caching","a":"kshitijk4poor","s":"merged","m":"2026-06-14","c":null},{"n":46309,"t":"fix(kimi): surface K2.7 Code in native picker","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46345,"t":"fix: migrate cloned profile configs","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":46350,"t":"revert(web): remove keyless Parallel search fallback","a":"teknium1","s":"merged","m":"2026-06-14","c":null},{"n":33539,"t":"Port from cline/cline#10945: accept browser-pasted GitHub URLs in `hermes plugins install`","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":36141,"t":"fix(gemini): strip self provider prefix before native generateContent","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":36142,"t":"Port from nearai/ironclaw#4211: search budget hits become soft truncation","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":37082,"t":"feat(read): extract .ipynb/.docx/.xlsx to text in read_file","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":43852,"t":"fix(utils): EXDEV/EBUSY copy fallback in atomic_replace (port from gemini-cli#21541)","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":44864,"t":"feat(desktop): expand the full command inline from the approval bar","a":"xxxigm","s":"merged","m":"2026-06-13","c":null},{"n":44953,"t":"fix(tui): honor provider_routing config in the desktop/TUI backend","a":"xxxigm","s":"merged","m":"2026-06-13","c":null},{"n":45255,"t":"fix(desktop): dismiss settled tool rows (persistent, caret-safe)","a":"OutThisLife","s":"merged","m":"2026-06-13","c":null},{"n":45271,"t":"fix(acp): preserve memory provider tools","a":"helix4u","s":"merged","m":"2026-06-13","c":null},{"n":45273,"t":"feat(desktop): worktree-aware sidebar grouping + composer/sidebar UX fixes","a":"OutThisLife","s":"merged","m":"2026-06-13","c":null},{"n":45289,"t":"fix(agent): credential-pool recovery for custom providers (custom vs custom:<name> mismatch)","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45302,"t":"docs(docker): clarify per-profile gateway ports (no gateway.port key)","a":"xxxigm","s":"merged","m":"2026-06-13","c":null},{"n":45343,"t":"perf(desktop): cut GUI streaming & interaction lag","a":"OutThisLife","s":"merged","m":"2026-06-13","c":null},{"n":45354,"t":"fix(desktop): theme the image-gen placeholder instead of a white square","a":"OutThisLife","s":"merged","m":"2026-06-13","c":null},{"n":45404,"t":"fix(desktop): keep recents sorted unless manually reordered","a":"helix4u","s":"merged","m":"2026-06-13","c":null},{"n":45414,"t":"fix(desktop): stop stranding queued prompts across backend bounces","a":"OutThisLife","s":"merged","m":"2026-06-13","c":null},{"n":45445,"t":"fix(desktop): stabilize thread scrolling and session switching","a":"OutThisLife","s":"merged","m":"2026-06-13","c":null},{"n":45466,"t":"fix(desktop): keep generated images in the tool slot, not inline","a":"OutThisLife","s":"merged","m":"2026-06-13","c":null},{"n":45488,"t":"fix(desktop): keep composer usable during reconnect","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45489,"t":"fix(desktop): keep profile color picker open from the context menu","a":"OutThisLife","s":"merged","m":"2026-06-13","c":null},{"n":45492,"t":"fix(models): remove unavailable claude-fable-5","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45512,"t":"fix(slack): make video attachments available to agents","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45515,"t":"fix(installer): clear an unmerged git index before stashing on update","a":"xxxigm","s":"merged","m":"2026-06-13","c":null},{"n":45517,"t":"fix(gateway): suppress duplicate final stream sends","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45529,"t":"fix(gateway): sync compression splits before failed turns","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45566,"t":"fix(photon): correct gateway start command","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45567,"t":"fix(doctor): stop recommending crashing npm audit fixes","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45573,"t":"fix(auth): self-heal Codex OAuth token drift","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45578,"t":"fix(desktop): preserve custom provider identity on resume","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45579,"t":"fix(moonshot): handle union type arrays in tool schemas","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45582,"t":"fix: merge session-only model analytics rows","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45584,"t":"feat(telegram): make rich messages always on","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45586,"t":"fix(cli): preserve resize renderer state","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45587,"t":"fix(auxiliary): preserve main provider base url","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45589,"t":"fix(installer): clear unmerged index before installer autostash","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45590,"t":"fix(kanban): pin assigned profile toolsets for workers","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45592,"t":"fix: keep CLI idle timer ticking","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45593,"t":"fix(dashboard): keep local file browser on home","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45594,"t":"fix(desktop): hand off Windows bootstrap recovery","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45597,"t":"fix(model): show bare custom endpoints in gateway picker","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45598,"t":"fix(dashboard): scope sessions and analytics to selected profile","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45605,"t":"fix(gemini): add role field to systemInstruction","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45613,"t":"fix(gateway): rebind topic after compression auto-reset","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45616,"t":"fix(docs): reuse healthy skills index during Pages deploys","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45630,"t":"feat(profile): clone profiles from any source","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45631,"t":"fix(matrix): preserve markdown table structure","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45633,"t":"fix(codex): drop extra_headers for chatgpt.com backend","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45634,"t":"fix(security): fail closed own-policy gateway adapters","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45642,"t":"fix(security): withhold host metadata from public status","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45645,"t":"fix(platform): accept legacy Office document uploads","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45673,"t":"fix(update): stop Windows gateways before mutating install","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45675,"t":"fix(bedrock): omit sampling params for restricted Claude models","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45747,"t":"fix(telegram): preserve rich formatting on stream final","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45753,"t":"fix(gateway): claim session slot before auto-resume task to prevent duplicate agents (#45456)","a":"kshitijk4poor","s":"merged","m":"2026-06-13","c":null},{"n":45760,"t":"fix(desktop): polish slash command completion (space/tab/click + typed args)","a":"OutThisLife","s":"merged","m":"2026-06-13","c":null},{"n":45801,"t":"fix(agent): scope Nous tags to Nous auxiliary calls","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45812,"t":"fix(desktop): bypass Chromium editing pipeline for large paste & select-delete","a":"OutThisLife","s":"merged","m":"2026-06-13","c":null},{"n":45814,"t":"fix(codex-responses): let final_answer complete top-level incomplete responses","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45821,"t":"fix(approval): gate sensitive user-file terminal writes","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45822,"t":"fix(agent): treat Codex reasoning items as thinking-only","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45824,"t":"fix(telegram): harden rich message fallback handling","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45837,"t":"fix(skills): make bundled-update backup handling crash-safe","a":"teknium1","s":"merged","m":"2026-06-13","c":null},{"n":45853,"t":"fix(desktop): surface off-screen approvals via the jump-to-bottom control","a":"OutThisLife","s":"merged","m":"2026-06-13","c":null},{"n":30766,"t":"feat(whatsapp): add WhatsApp Business Cloud API adapter","a":"jquesnelle","s":"merged","m":"2026-06-12","c":null},{"n":43508,"t":"feat(Yuanbao): support wechat forward msg","a":"loongfay","s":"merged","m":"2026-06-12","c":null},{"n":43674,"t":"fix(ci): only save test durations when tests pass","a":"ethernet8023","s":"merged","m":"2026-06-12","c":null},{"n":43703,"t":"fix(ci): fix hermes updating mid test","a":"ethernet8023","s":"merged","m":"2026-06-12","c":null},{"n":43896,"t":"fix(desktop): collect + persist API key for custom OpenAI-compatible endpoints","a":"OutThisLife","s":"merged","m":"2026-06-12","c":null},{"n":43921,"t":"feat(whatsapp): WhatsApp Business Cloud API adapter","a":"jquesnelle","s":"merged","m":"2026-06-12","c":null},{"n":44331,"t":"feat(whatsapp): WhatsApp Business Cloud API adapter (salvage #43921)","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":44446,"t":"fix(cli): use subprocess on Windows for dashboard profile re-exec (#44282)","a":"kyssta-exe","s":"merged","m":"2026-06-12","c":null},{"n":44518,"t":"fix(gateway): reset _last_flushed_db_idx on cached agent reuse (#44327)","a":"kyssta-exe","s":"merged","m":"2026-06-12","c":null},{"n":44527,"t":"fix(nix/desktop): patch process.resourcesPath to resolve extraResources in nix builds","a":"ethernet8023","s":"merged","m":"2026-06-12","c":null},{"n":44529,"t":"fix(desktop): close out the multi-profile desktop fallout — WS auth + cross-profile session reads","a":"OutThisLife","s":"merged","m":"2026-06-12","c":null},{"n":44545,"t":"fix(coding): don't expose primary worktree path in coding context","a":"ethernet8023","s":"merged","m":"2026-06-12","c":null},{"n":44550,"t":"fix(mcp): capability-gate tools/list so prompt-only MCP servers can connect (port opencode#31271)","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":44559,"t":"fix(terminal): advertise persistent env state","a":"OutThisLife","s":"merged","m":"2026-06-12","c":null},{"n":44565,"t":"refactor(desktop): use port 0 for ephemeral port discovery","a":"ethernet8023","s":"merged","m":"2026-06-12","c":null},{"n":44596,"t":"feat(desktop): auto-detect RTL/bidi text direction in chat","a":"OutThisLife","s":"merged","m":"2026-06-12","c":null},{"n":44627,"t":"fix(desktop): move tool-row copy control into expanded body","a":"OutThisLife","s":"merged","m":"2026-06-12","c":null},{"n":44630,"t":"feat(desktop): composer status stack, live subagent windows, editable prompts","a":"OutThisLife","s":"merged","m":"2026-06-12","c":null},{"n":44642,"t":"fix(desktop): bundle JetBrains Mono for the terminal pane","a":"OutThisLife","s":"merged","m":"2026-06-12","c":null},{"n":44648,"t":"fix(desktop): make file-preview source + markdown selectable","a":"OutThisLife","s":"merged","m":"2026-06-12","c":null},{"n":44664,"t":"feat(plugins): expose register_slack_action_handler API (salvage #20589)","a":"kshitijk4poor","s":"merged","m":"2026-06-12","c":null},{"n":44674,"t":"fix(plugins,slack): registry bookkeeping fixes + ack reaction events (salvage #42561)","a":"kshitijk4poor","s":"merged","m":"2026-06-12","c":null},{"n":44676,"t":"fix(tools): strip default from $ref nodes in tool schemas","a":"OutThisLife","s":"merged","m":"2026-06-12","c":null},{"n":44687,"t":"fix(agent): focus automatic compression on recent user turns (salvages #38155)","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":44691,"t":"fix(cli,tui): wrap long approval commands instead of truncating","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":44695,"t":"fix(gateway): classify document attachments as DOCUMENT on Signal, Email, and SimpleX","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":44702,"t":"feat(cli): persist resolved approval/clarify prompts in scrollback","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":44708,"t":"fix(agent): strip MEDIA directives from compressor summarizer input (salvages #15369)","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":44713,"t":"feat(photon): markdown rendering, emoji reactions, sidecar lifecycle fixes, telemetry toggle (salvage #44486)","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":44716,"t":"fix(credits): top-up-aware usage gauge + display.credits_notices toggle","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":44738,"t":"fix(memory): flatten multimodal content before provider sync","a":"kshitijk4poor","s":"merged","m":"2026-06-12","c":null},{"n":44776,"t":"feat(billing): /credits command — balance + portal top-up handoff","a":"alt-glitch","s":"merged","m":"2026-06-12","c":null},{"n":44778,"t":"fix(teams): cache document attachments and classify as DOCUMENT","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":44792,"t":"fix(dashboard): profile-scope Channels endpoints and seed per-profile .env","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":44814,"t":"fix(desktop): complete backend PATH for Homebrew Codex","a":"y0shua1ee","s":"merged","m":"2026-06-12","c":null},{"n":44829,"t":"feat(telegram): Bot API 10.1 rich messages (opt-in)","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":44836,"t":"fix: stop Discord typing after replies","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":45023,"t":"docs(website): redirect old automation-templates URL to automation-blueprints","a":"SHL0MS","s":"merged","m":"2026-06-12","c":null},{"n":45057,"t":"fix(desktop): new chat honours the active profile instead of rubberbanding to default","a":"OutThisLife","s":"merged","m":"2026-06-12","c":null},{"n":45085,"t":"fix(tui): pick up config model changes in open chats and on the Models page (salvage #44463)","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":45086,"t":"feat(desktop): window translucency slider","a":"OutThisLife","s":"merged","m":"2026-06-12","c":null},{"n":45108,"t":"fix(ci): only save test durations when tests pass","a":"ethernet8023","s":"merged","m":"2026-06-12","c":null},{"n":45116,"t":"fix(send): helpful error when --file gets a binary; document MEDIA: attachments","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":45136,"t":"fix(agent): re-enter retry loop on genuine Nous 429 so fallback guard runs (from #44061)","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":45145,"t":"fix(update): never spawn an interactive polkit prompt when restarting a system-scope gateway","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":45149,"t":"fix(delegation): remove the default subagent wall-clock timeout","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":45150,"t":"fix(dashboard): skill installs from the dashboard silently auto-cancel","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":45153,"t":"fix(compression): append END OF CONTEXT SUMMARY marker to all standalone summaries (salvages #33346)","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":45246,"t":"fix(profiles): exclude session history, backups, and snapshots from --clone-all","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":45247,"t":"fix(profiles): backfill .env for pre-existing profiles on hermes update","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":45249,"t":"fix(compressor,webui): keep last visible assistant reply readable after compaction (salvages #29862)","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":45259,"t":"fix(agent): honor protect_last_n (capped) as the compaction tail floor (salvages #39170)","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":45260,"t":"fix(agent): clamp and rewind session flush cursor after repair_message_sequence compaction (#44837)","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":45262,"t":"fix(skills): run youtube transcript helper through uv","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":45263,"t":"feat(desktop): follow streaming output at bottom + jump-to-bottom button","a":"OutThisLife","s":"merged","m":"2026-06-12","c":null},{"n":45281,"t":"fix(agent): metadata flag on compression summary messages, wire-safe key (salvages #38434)","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":45283,"t":"chore: add Kimi K2.7 code catalog slug","a":"teknium1","s":"merged","m":"2026-06-12","c":null},{"n":18505,"t":"fix(matrix): isolate room context and restore reliable inbound dispatch","a":"nepenth","s":"merged","m":"2026-06-11","c":null},{"n":41309,"t":"feat(cron): Automation Blueprints — parameterized automation templates across every surface","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":42351,"t":"desktop: registry-driven slash commands + first-class /resume & /handoff","a":"OutThisLife","s":"merged","m":"2026-06-11","c":null},{"n":43316,"t":"feat(agent): coding-context posture across CLI/TUI/desktop/ACP","a":"OutThisLife","s":"merged","m":"2026-06-11","c":null},{"n":43487,"t":"fix(desktop): deduplicate sidebar rows by compression lineage","a":"liuhao1024","s":"merged","m":"2026-06-11","c":null},{"n":43496,"t":"fix(desktop): preserve explicit hide-all choice in model visibility dialog","a":"liuhao1024","s":"merged","m":"2026-06-11","c":null},{"n":43541,"t":"fix(desktop): stop file tree throwing \"Cannot have two HTML5 backends\" on remount","a":"xxxigm","s":"merged","m":"2026-06-11","c":null},{"n":43570,"t":"fix(streaming): stop socket read timeout from preempting stale-stream detector","a":"xxxigm","s":"merged","m":"2026-06-11","c":null},{"n":43618,"t":"fix(desktop): Harden local file tree paths","a":"yucode-kk","s":"merged","m":"2026-06-11","c":null},{"n":43798,"t":"feat(web): Parallel-backed web search & extract — free Search MCP when keyless, v1 REST when keyed","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":43801,"t":"docs: cross-link write-approval gate from skills, configuration, and slash-command docs","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":43808,"t":"feat(dashboard): profile-scoped skills & toolsets management","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":43855,"t":"feat(sessions): drop empty sessions on CLI exit and rotation (port from gemini-cli#27770)","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":43858,"t":"fix(web): profiles page modal","a":"austinpickett","s":"merged","m":"2026-06-11","c":null},{"n":43926,"t":"desktop: un-truncate the active slash row so long descriptions stay readable","a":"OutThisLife","s":"merged","m":"2026-06-11","c":null},{"n":43943,"t":"fix(anthropic): preserve interleaved thinking/tool_use block order on replay (#17861)","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":43956,"t":"revert(cron): remove per-job profile support (#28124)","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":43959,"t":"fix(desktop): per-thread composer drafts on decoupled lifecycle (salvage #43660, supersedes #43939)","a":"OutThisLife","s":"merged","m":"2026-06-11","c":null},{"n":43968,"t":"fix(gateway): collapse repeated terminal headers in consecutive tool progress blocks","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":43969,"t":"fix(gateway): /restart from chat leaves gateway dead — scrub _HERMES_GATEWAY from detached restart watchers (salvage #41264)","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":43977,"t":"fix(desktop): refresh session model metadata on switch","a":"OmarB97","s":"merged","m":"2026-06-11","c":null},{"n":43986,"t":"fix(cli): omit --workspace when subpackage has its own package-lock.json (#42973)","a":"OutThisLife","s":"merged","m":"2026-06-11","c":null},{"n":44007,"t":"feat(dashboard): unify multi-profile management — one machine dashboard, global profile switcher","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44021,"t":"feat(dashboard): enable webhooks from the Webhooks page (salvage #43999)","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44038,"t":"fix(cli): show quick commands in /help output","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44047,"t":"fix(desktop): recover stale session before stop","a":"kshitijk4poor","s":"merged","m":"2026-06-11","c":null},{"n":44074,"t":"fix(sessions): archive compressed conversation lineages","a":"kshitijk4poor","s":"merged","m":"2026-06-11","c":null},{"n":44082,"t":"fix(backup): stage SQLite snapshots beside output zip (all paths) and stop excluding nested hermes-agent skill dirs","a":"kshitijk4poor","s":"merged","m":"2026-06-11","c":null},{"n":44084,"t":"fix(install/windows): repair stale winget registration + refresh/merge PATH after every package manager","a":"kshitijk4poor","s":"merged","m":"2026-06-11","c":null},{"n":44085,"t":"fix(update): avoid SSH auth for passive official checks","a":"kshitijk4poor","s":"merged","m":"2026-06-11","c":null},{"n":44205,"t":"fix(whatsapp): restart stale bridge processes instead of silently reusing them","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44220,"t":"fix(mcp): propagate HERMES_HOME override onto the MCP event loop","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44223,"t":"fix(delegate): stop subagent tool completion lines leaking into parent CLI display","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44231,"t":"feat(dashboard): SKILL.md editor on Skills page + attach-skill selector in cron modals","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44237,"t":"fix(dashboard): normalize model assignments + confirm-modal for backup import","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44245,"t":"fix(gateway): gate oversized Telegram voice/audio before download","a":"austinpickett","s":"merged","m":"2026-06-11","c":null},{"n":44265,"t":"feat(cli,tui): show time since last final agent response on the status bar","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44267,"t":"fix(gateway): refuse to write service definitions with a temp-dir HERMES_HOME","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44286,"t":"fix(dashboard): Anthropic API Key status checks ANTHROPIC_API_KEY; hide deprecated tool-progress env vars","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44293,"t":"fix(bedrock): fall back to non-streaming InvokeModel when IAM denies InvokeModelWithResponseStream","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44324,"t":"fix(mcp): preserve stdio argv passthrough in mcp add and allow Windows env vars","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44326,"t":"feat(desktop): browse remote backend files (salvage #43434)","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44328,"t":"fix(tui): decode TUI startup subprocess output as utf-8 on Windows","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44333,"t":"fix(mcp): show configured/connecting instead of false failed in startup banner","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44342,"t":"fix(agent): demote non-coding skill categories to names-only — never hide skills","a":"OutThisLife","s":"merged","m":"2026-06-11","c":null},{"n":44374,"t":"fix(dashboard): Config page header shows the switched profile's config.yaml path","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44383,"t":"fix(discord): recover from runtime gateway task exits","a":"austinpickett","s":"merged","m":"2026-06-11","c":null},{"n":44387,"t":"fix(agent): gate coding-posture skill-index demotion behind the opt-in focus mode","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44411,"t":"fix(agent): steer GPT/Codex family to V4A for single-file edits too","a":"OutThisLife","s":"merged","m":"2026-06-11","c":null},{"n":44415,"t":"fix(desktop): disable spellcheck on composer inputs","a":"OutThisLife","s":"merged","m":"2026-06-11","c":null},{"n":44427,"t":"fix(dashboard): suppress unicode-animations postinstall during npm ci","a":"austinpickett","s":"merged","m":"2026-06-11","c":null},{"n":44429,"t":"fix(gateway): attachment context notes guide extraction instead of punting (PDF/DOCX + audio)","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44432,"t":"fix(discord): cancel _bot_task on connect() failure to prevent zombie client (salvage #44389)","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44433,"t":"fix(web): guarantee keyless web search/extract registration + don't cache failed plugin discovery","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44442,"t":"fix(node): fix @types/node version","a":"ethernet8023","s":"merged","m":"2026-06-11","c":null},{"n":44453,"t":"fix(desktop): carve sidebar nav rows out of the titlebar drag region","a":"OutThisLife","s":"merged","m":"2026-06-11","c":null},{"n":44454,"t":"fix(agent): stop compaction summaries hijacking the current task (salvages #44345 + #41650)","a":"teknium1","s":"merged","m":"2026-06-11","c":null},{"n":44470,"t":"docs: finish Automation Blueprints terminology rebrand","a":"austinpickett","s":"merged","m":"2026-06-11","c":null},{"n":44493,"t":"fix(desktop): recover from transient assistant-ui index-lookup crash","a":"mollusk","s":"merged","m":"2026-06-11","c":null},{"n":44500,"t":"fix(skills): let ClawHub index build walk past the 12s browse budget","a":"austinpickett","s":"merged","m":"2026-06-11","c":null},{"n":44510,"t":"fix(desktop): stop named-profile desktop backend boot loop","a":"OutThisLife","s":"merged","m":"2026-06-11","c":null},{"n":44511,"t":"fix(dashboard): show Windows 11 in host panel","a":"helix4u","s":"merged","m":"2026-06-11","c":null},{"n":44512,"t":"fix(desktop): load MCP tools for dashboard /api/ws backends","a":"OutThisLife","s":"merged","m":"2026-06-11","c":null},{"n":44528,"t":"fix(ui-tui): stabilize embedded dashboard chat gateway","a":"austinpickett","s":"merged","m":"2026-06-11","c":null},{"n":44534,"t":"fix(approval): carry allow_permanent to TUI + desktop approval prompts","a":"OutThisLife","s":"merged","m":"2026-06-11","c":null},{"n":33699,"t":"fix(config): preserve original .env file mode instead of unconditionally tightening to 0600","a":"benbarclay","s":"merged","m":"2026-06-10","c":null},{"n":37556,"t":"fix(gateway): stop typing before post-delivery callbacks","a":"konsisumer","s":"merged","m":"2026-06-10","c":null},{"n":38199,"t":"feat(memory,skills): approve/deny gate for memory + skill writes","a":"teknium1","s":"merged","m":"2026-06-10","c":null},{"n":38749,"t":"fix(docker): optimize image size — .dockerignore, drop dev deps, split build layers","a":"thedavidweng","s":"merged","m":"2026-06-10","c":null},{"n":39084,"t":"feat(dashboard): full-featured profile builder (model + skills + MCPs)","a":"teknium1","s":"merged","m":"2026-06-10","c":null},{"n":39353,"t":"change(tooling): typecheck in CI, update ts to 6","a":"ethernet8023","s":"merged","m":"2026-06-10","c":null},{"n":39639,"t":"fix(desktop): send on Enter from live editor text, not stale composer state","a":"xxxigm","s":"merged","m":"2026-06-10","c":null},{"n":40892,"t":"fix(tui_gateway): honor target profile's terminal.cwd on desktop profile switch","a":"xxxigm","s":"merged","m":"2026-06-10","c":null},{"n":41976,"t":"Repair cron ownership on container restart","a":"LeonSGP43","s":"merged","m":"2026-06-10","c":null},{"n":42090,"t":"fix(gateway): return tuple from voice transcription on placeholder caption","a":"synapsesx","s":"merged","m":"2026-06-10","c":null},{"n":42172,"t":"fix(update): self-heal a venv left half-built by an interrupted install","a":"teknium1","s":"merged","m":"2026-06-10","c":null},{"n":42413,"t":"fix(docker): pre-install matrix deps in Docker image (#30399)","a":"Tranquil-Flow","s":"merged","m":"2026-06-10","c":null}]}