2025-05-26 - 2026-05-26
Overview
1 Release published by 1 user
Published
v0.1.0
1 Pull request merged by 1 user
Merged
#1 phase0 review: tighten phase 2 row + add Q9, Q10, sharpen Q6
101 Issues closed from 1 user
Closed
#101 context: proactive periodic summarization (not just on eviction)
Closed
#102 memory: auto-summarize session into memory.jsonl on :q (cross-session distillation)
Closed
#89 Cloud-preplanner → local-executor split (TASK: decomposition)
Closed
#87 Context compression on route-to-local (truncate older turns + shell-output tails)
Closed
#88 GBNF grammar-sampling passthrough for llama.cpp routes (enforce CMD: / YES/NO output)
Closed
#86 Per-routing-class system_prompts (constrain small-model output)
Closed
#100 TC #100 — Phase 9 AISH_TRUST_FILE env override works
Closed
#98 TC #98 — Phase 9 :config show full masks sensitive keys recursively (R6)
Closed
#99 TC #99 — Phase 9 dofile failure on .aish.lua skips overlay safely
Closed
#97 TC #97 — Phase 9 sources map tags each key as user/project
Closed
#95 TC #95 — Phase 9 -p mode skips trust prompt entirely (R2)
Closed
#96 TC #96 — Phase 9 shallow merge replaces top-level blocks
Closed
#93 TC #93 — Phase 9 trust prompt accepted persists, cached on next startup
Closed
#94 TC #94 — Phase 9 sha256-mismatch re-prompts on content change
Closed
#90 TC #90 — Phase 9 walk-up from nested cwd
Closed
#91 TC #91 — Phase 9 walk-up R1 fix: HOME-prefix false positive
Closed
#92 TC #92 — Phase 9 trust prompt declined skips overlay
Closed
#85 TC #85 — Phase 8 per-turn _tokens cache amortizes estimate_tokens cost
Closed
#83 TC #83 — Phase 8 :cost detail estimate row shows budget utilization
Closed
#84 TC #84 — Phase 8 broker.token_count cache key is endpoint-only (R6)
Closed
#82 TC #82 — Phase 8 R4 tokenize_fn closure follows :model switch
Closed
#81 TC #81 — Phase 8 R2 enforce_budget guard against infinite loop
Closed
#80 TC #80 — Phase 8 enforce_budget honors token_budget (pillar 5)
Closed
#79 TC #79 — Phase 8 estimate_tokens char/4 path unchanged when no tokenize_fn
Closed
#78 TC #78 — Phase 8 estimate_tokens uses tokenize_fn when set
Closed
#77 TC #77 — Phase 8 broker.token_count falls back to char/4 on bad endpoint
Closed
#76 TC #76 — Phase 8 broker.token_count returns real BPE count for local
Closed
#74 TC #74 — Phase 7 R2 fallback retry credits FALLBACK model name (INTERACTIVE)
Closed
#73 TC #73 — Phase 7 :cost detail 3-level deterministic sort
Closed
#75 TC #75 — Phase 7 opts.include_usage = false suppresses stream_options
Closed
#70 TC #70 — Phase 7 warn_at_tokens fires independently of warn_at_dollars
Closed
#71 TC #71 — Phase 7 :cost reset zeros totals + warn flags
Closed
#72 TC #72 — Phase 7 :reset preserves usage_totals + warn flags (R8 parity)
Closed
#68 TC #68 — Phase 7 5 categories all populate accumulator
Closed
#69 TC #69 — Phase 7 warn_at_dollars one-shot
Closed
#65 TC #65 — Phase 7 broker.chat_stream emits usage kind on cloud
Closed
#66 TC #66 — Phase 7 broker.chat returns (text, usage) tuple
Closed
#67 TC #67 — Phase 7 R6 is_local sticky flag
Closed
#52 Wire #13 secret redaction into safety.lua broker call sites
Closed
#62 TC #62 — Phase 6 N1 SOL anchor — inline ``` does not open a fence
Closed
#63 TC #63 — Phase 6 [project] block Norris-suppressed
Closed
#61 TC #61 — Phase 6 fence-aware filter handles B2 split fences
Closed
#60 TC #60 — Phase 6 :highlight toggle + status + install-hint
Closed
#64 TC #64 — Phase 6 :reset preserves ctx.project and memory_items
Closed
#58 TC #58 — Phase 6 :diff handles bad ref, empty diff, --cached
Closed
#59 TC #59 — Phase 6 @<r1>..<r2> tiered resolution
Closed
#55 TC #55 — Phase 6 :tree off clears project and opts
Closed
#56 TC #56 — Phase 6 cfg.project.auto_tree startup hook
Closed
#57 TC #57 — Phase 6 :diff working tree produces clean ANSI-free output
Closed
#53 TC #53 — Phase 6 :tree no-arg scans cwd in a git repo
Closed
#54 TC #54 — Phase 6 :tree N caches opts; :tree refresh reuses them
Closed
#13 Secret redaction: scrub credentials before broker, rehydrate in reply
Closed
#6 Sub-broker delegation (cheaper-model side calls)
Closed
#8 Background CMD with handle/poll: CMD&: and :bg-output <id>
Closed
#11 In-session recurring prompts: :every <interval> "<prompt>"
Closed
#9 Permission policy DSL (richer than confirm_cmd boolean)
Closed
#2 User-defined skills (custom meta-commands)
Closed
#3 Pre/post-CMD hooks (shell scripts around command execution)
Closed
#10 Status line / prompt template customization
Closed
#7 @filename mention expansion in input line
Closed
#5 Plan mode: :plan toggle, no CMD: execution
Closed
#14 Phase 2: re-render system_prompt on :model switch (depends on Q9)
Closed
#23 boltzmann proxy: model field ignored — all requests routed to loaded fast model
Closed
#4 Non-interactive mode: aish -p "<prompt>" and stdin pipe
Closed
#32 validate tool names at tools_schema() against strictest provider regex
Closed
#33 warn on auto_approve policy keys that match no registered tool
Closed
#51 enforce_budget runs only post-loop in run_norris; mid-loop eviction never fires (PHASE3 spec gap)
Closed
#15 test-case: streaming visibility — tokens arrive incrementally
Closed
#38 test-case: Norris context budget — goal anchor survives eviction
Closed
#37 test-case: GOAL: complete sentinel exits the loop
Closed
#35 test-case: HALT proceed/skip/abort prompt
Closed
#42 test-case: :memory summarize against a compliant model
Closed
#39 test-case: \C-n inserts ':norris ' at the cursor
Closed
#48 test-case: cloud fallback fires on local transport failure
Closed
#49 test-case: summarize-on-evict produces a rolling [earlier summary]
Closed
#50 test-case: no routing/no summarize config = Phase 4 behavior intact
Closed
#45 test-case: no memory block in config = Phase 3 behavior intact
Closed
#46 test-case: :route check classifies prompts correctly
Closed
#47 test-case: routing actually swaps model for one request
Closed
#41 test-case: :memory forget + clear
Closed
#43 test-case: [background] suppressed in Norris mode
Closed
#44 test-case: multi-process flock contention
Closed
#36 test-case: :safety patterns and :safety check
Closed
#40 test-case: :remember + restart persistence
Closed
#34 test-case: no Norris block in config = Phase 2 behavior intact
Closed
#25 test-case: max_tool_depth cap and orphan-tool_calls protection
Closed
#31 test-case: CMD: extraction still works alongside MCP (substrate invariant)
Closed
#30 test-case: declined tool call preserves alternation
Closed
#26 test-case: tool-call sub-loop end-to-end
Closed
#28 test-case: :mcp connect / :mcp disconnect at runtime
Closed
#29 test-case: :mcp tools and :mcp tool <alias.name>
Closed
#27 test-case: MCP startup connect + :mcp list
Closed
#24 test-case: no MCP block = Phase 1 behavior (regression)
Closed
#22 test-case: CMD: extraction + confirm gate (yes and no answers)
Closed
#21 test-case: :resume refuses to clobber an active conversation
Closed
#20 test-case: session log save + resume round-trip
Closed
#19 test-case: \C-n reserved key fires status message
Closed
#18 test-case: htop renders and exits via single key
Closed
#17 test-case: less paginates inside aish
Closed
#16 test-case: vim works inside aish (interactive PTY)
Closed
#12 Use hossenfelder as the canonical broker endpoint
101 Issues created by 0 users
Opened
#2 User-defined skills (custom meta-commands)
Opened
#3 Pre/post-CMD hooks (shell scripts around command execution)
Opened
#4 Non-interactive mode: aish -p "<prompt>" and stdin pipe
Opened
#5 Plan mode: :plan toggle, no CMD: execution
Opened
#6 Sub-broker delegation (cheaper-model side calls)
Opened
#7 @filename mention expansion in input line
Opened
#8 Background CMD with handle/poll: CMD&: and :bg-output <id>
Opened
#9 Permission policy DSL (richer than confirm_cmd boolean)
Opened
#10 Status line / prompt template customization
Opened
#11 In-session recurring prompts: :every <interval> "<prompt>"
Opened
#12 Use hossenfelder as the canonical broker endpoint
Opened
#13 Secret redaction: scrub credentials before broker, rehydrate in reply
Opened
#14 Phase 2: re-render system_prompt on :model switch (depends on Q9)
Opened
#15 test-case: streaming visibility — tokens arrive incrementally
Opened
#16 test-case: vim works inside aish (interactive PTY)
Opened
#17 test-case: less paginates inside aish
Opened
#18 test-case: htop renders and exits via single key
Opened
#19 test-case: \C-n reserved key fires status message
Opened
#20 test-case: session log save + resume round-trip
Opened
#21 test-case: :resume refuses to clobber an active conversation
Opened
#22 test-case: CMD: extraction + confirm gate (yes and no answers)
Opened
#23 boltzmann proxy: model field ignored — all requests routed to loaded fast model
Opened
#24 test-case: no MCP block = Phase 1 behavior (regression)
Opened
#25 test-case: max_tool_depth cap and orphan-tool_calls protection
Opened
#26 test-case: tool-call sub-loop end-to-end
Opened
#27 test-case: MCP startup connect + :mcp list
Opened
#28 test-case: :mcp connect / :mcp disconnect at runtime
Opened
#29 test-case: :mcp tools and :mcp tool <alias.name>
Opened
#30 test-case: declined tool call preserves alternation
Opened
#31 test-case: CMD: extraction still works alongside MCP (substrate invariant)
Opened
#32 validate tool names at tools_schema() against strictest provider regex
Opened
#33 warn on auto_approve policy keys that match no registered tool
Opened
#34 test-case: no Norris block in config = Phase 2 behavior intact
Opened
#35 test-case: HALT proceed/skip/abort prompt
Opened
#36 test-case: :safety patterns and :safety check
Opened
#37 test-case: GOAL: complete sentinel exits the loop
Opened
#38 test-case: Norris context budget — goal anchor survives eviction
Opened
#39 test-case: \C-n inserts ':norris ' at the cursor
Opened
#40 test-case: :remember + restart persistence
Opened
#41 test-case: :memory forget + clear
Opened
#42 test-case: :memory summarize against a compliant model
Opened
#43 test-case: [background] suppressed in Norris mode
Opened
#44 test-case: multi-process flock contention
Opened
#45 test-case: no memory block in config = Phase 3 behavior intact
Opened
#46 test-case: :route check classifies prompts correctly
Opened
#47 test-case: routing actually swaps model for one request
Opened
#48 test-case: cloud fallback fires on local transport failure
Opened
#49 test-case: summarize-on-evict produces a rolling [earlier summary]
Opened
#50 test-case: no routing/no summarize config = Phase 4 behavior intact
Opened
#51 enforce_budget runs only post-loop in run_norris; mid-loop eviction never fires (PHASE3 spec gap)
Opened
#52 Wire #13 secret redaction into safety.lua broker call sites
Opened
#53 TC #53 — Phase 6 :tree no-arg scans cwd in a git repo
Opened
#54 TC #54 — Phase 6 :tree N caches opts; :tree refresh reuses them
Opened
#55 TC #55 — Phase 6 :tree off clears project and opts
Opened
#56 TC #56 — Phase 6 cfg.project.auto_tree startup hook
Opened
#57 TC #57 — Phase 6 :diff working tree produces clean ANSI-free output
Opened
#58 TC #58 — Phase 6 :diff handles bad ref, empty diff, --cached
Opened
#59 TC #59 — Phase 6 @<r1>..<r2> tiered resolution
Opened
#60 TC #60 — Phase 6 :highlight toggle + status + install-hint
Opened
#61 TC #61 — Phase 6 fence-aware filter handles B2 split fences
Opened
#62 TC #62 — Phase 6 N1 SOL anchor — inline ``` does not open a fence
Opened
#63 TC #63 — Phase 6 [project] block Norris-suppressed
Opened
#64 TC #64 — Phase 6 :reset preserves ctx.project and memory_items
Opened
#65 TC #65 — Phase 7 broker.chat_stream emits usage kind on cloud
Opened
#66 TC #66 — Phase 7 broker.chat returns (text, usage) tuple
Opened
#67 TC #67 — Phase 7 R6 is_local sticky flag
Opened
#68 TC #68 — Phase 7 5 categories all populate accumulator
Opened
#69 TC #69 — Phase 7 warn_at_dollars one-shot
Opened
#70 TC #70 — Phase 7 warn_at_tokens fires independently of warn_at_dollars
Opened
#71 TC #71 — Phase 7 :cost reset zeros totals + warn flags
Opened
#72 TC #72 — Phase 7 :reset preserves usage_totals + warn flags (R8 parity)
Opened
#73 TC #73 — Phase 7 :cost detail 3-level deterministic sort
Opened
#74 TC #74 — Phase 7 R2 fallback retry credits FALLBACK model name (INTERACTIVE)
Opened
#75 TC #75 — Phase 7 opts.include_usage = false suppresses stream_options
Opened
#76 TC #76 — Phase 8 broker.token_count returns real BPE count for local
Opened
#77 TC #77 — Phase 8 broker.token_count falls back to char/4 on bad endpoint
Opened
#78 TC #78 — Phase 8 estimate_tokens uses tokenize_fn when set
Opened
#79 TC #79 — Phase 8 estimate_tokens char/4 path unchanged when no tokenize_fn
Opened
#80 TC #80 — Phase 8 enforce_budget honors token_budget (pillar 5)
Opened
#81 TC #81 — Phase 8 R2 enforce_budget guard against infinite loop
Opened
#82 TC #82 — Phase 8 R4 tokenize_fn closure follows :model switch
Opened
#83 TC #83 — Phase 8 :cost detail estimate row shows budget utilization
Opened
#84 TC #84 — Phase 8 broker.token_count cache key is endpoint-only (R6)
Opened
#85 TC #85 — Phase 8 per-turn _tokens cache amortizes estimate_tokens cost
Opened
#86 Per-routing-class system_prompts (constrain small-model output)
Opened
#87 Context compression on route-to-local (truncate older turns + shell-output tails)
Opened
#88 GBNF grammar-sampling passthrough for llama.cpp routes (enforce CMD: / YES/NO output)
Opened
#89 Cloud-preplanner → local-executor split (TASK: decomposition)
Opened
#90 TC #90 — Phase 9 walk-up from nested cwd
Opened
#91 TC #91 — Phase 9 walk-up R1 fix: HOME-prefix false positive
Opened
#92 TC #92 — Phase 9 trust prompt declined skips overlay
Opened
#93 TC #93 — Phase 9 trust prompt accepted persists, cached on next startup
Opened
#94 TC #94 — Phase 9 sha256-mismatch re-prompts on content change
Opened
#95 TC #95 — Phase 9 -p mode skips trust prompt entirely (R2)
Opened
#96 TC #96 — Phase 9 shallow merge replaces top-level blocks
Opened
#97 TC #97 — Phase 9 sources map tags each key as user/project
Opened
#98 TC #98 — Phase 9 :config show full masks sensitive keys recursively (R6)
Opened
#99 TC #99 — Phase 9 dofile failure on .aish.lua skips overlay safely
Opened
#100 TC #100 — Phase 9 AISH_TRUST_FILE env override works
Opened
#101 context: proactive periodic summarization (not just on eviction)
Opened
#102 memory: auto-summarize session into memory.jsonl on :q (cross-session distillation)