Skip to content

v0.2.0

Choose a tag to compare

@yusing yusing released this 07 Oct 09:11
· 864 commits to main since this release
v0.2.0
de3acf5

Breaking Changes

  • Execution: Mekugi mode requires Codex's JavaScript exec interface (6e5797c)
    • Choose a model that exposes Codex's JavaScript exec interface; models offering only direct execution tools fail before inference.
    • Execution feature overrides apply only to the invocation and do not rewrite user configuration.
  • Execution/Approvals: Interactive remote repository writes require approval even with --yolo (cb2a80a, 88424e2, 73f6074)
    • The guard requires unsandboxed execution, Codex command-hook support, and mekugi-exec installed beside mekugi.
    • Use --vcs-guard=false to retain sandboxed execution or launch interactive passthrough.
    • Conflicting hook configuration can block launch or a new turn without discarding the composer draft.
    • Headless and noninteractive commands do not use the guard.
    • The guard protects against accidental remote writes, not arbitrary program behavior or sandbox escape.
  • Journal/Recovery: Context resets use retained journal evidence by default (eccc727, 5308310, b001417)
    • The default --journal-compaction=auto handles manual and context-full resets for Main and child threads without a provider summary request.
    • Unavailable recovery evidence stops an auto-mode reset with a visible error instead of falling back to the provider.
    • Use --journal-compaction=off to restore provider compaction, or slice to reset only at planned slice boundaries.
    • Recovery focuses on current work and indexes retained details for selective journal reads.
    • Child recovery content appears once under readable agent headings with child-local paths.
    • Passthrough implies off and rejects explicit auto or slice settings.
  • Diagnostics/Profiling: Replace replay-session profile flags with mekugi-pprof (74ee26b)
    • Build with make mekugi-pprof and collect live-session or replay profiles through the diagnostic binary's printed loopback URL.
    • The diagnostic listener has no additional authentication; local callers can access private process information.
    • Normal builds start no profiling listener.
  • UI/Composer: Escape expedites pending steers instead of restoring them to the editor (121e847)
    • The current draft remains unchanged and already-committed input is never resent.
    • Ctrl-C retains the interrupt-and-restore behavior without automatic resending.
  • UI/Diff: Saved Diff no longer has a follow mode (95ad743, 31a956a)
    • Incoming saved edits refresh without moving the chosen file or scroll position.
    • Press s to show and focus the navigator; Enter focuses the selected diff and Escape returns to the list.
    • The r shortcut still resumes following in streaming previews.

Bug Fixes

  • UI/Terminal: macOS UI input setup no longer makes inherited stdout nonblocking (1aee568)
  • UI/Service Tiers: The tier picker changes the effective provider tier (2b550c3, abfd0f0)
    • Explicit choices, including default, override configured per-model tiers for the current thread and routed model during the invocation.
    • The picker shows the effective tier without rewriting the configuration file.
  • UI/Composer: All panes repaint after returning from the draft editor (58bf45c)
  • UI/Composer: Bracketed paste no longer triggers shortcuts or freezes composer input (0e9bdc4)
  • UI/Questions: Question answers preserve editing and complete tool input (2712bd0, f64872e)
    • Bare Left and Right move the caret while editing an Other answer or option note. (2712bd0)
    • Submitted question answers wait until tool input is complete rather than interrupting a partially generated edit or script. (f64872e)
  • Transport/WebSocket: WebSocket interruption preserves valid captures and cancellation status (53bab3b, 4fcf9d1)
    • Cancellation after a completed response no longer marks its capture incomplete.
    • Instant interruption remains cancellation rather than producing an inspection failure notice.
  • Journal: Journal reads and child completion handoffs remain consistent (261e605)
    • Completed child lifecycles can hand off without forcibly closing child-owned unfinished tasks.
    • Parent integration is no longer blocked solely by unfinished task states in a completed child.
    • Provider answers included in a retained child result appear as one complete enriched reply with stable assignment links.
  • Journal/Delivery: Confirmed journal answer delivery survives an immediate disconnect (4099fd5)
  • Changes: VCS effects no longer inflate agent-authored change evidence (e8d8a6b, 463af65)
    • Recognized repository imports, discards, and redirected or piped VCS output remain diagnostic history rather than authored changes.
    • Recognized VCS effects no longer open pending or running live-diff cards.
    • Source-named authored edits in mixed calls remain visible.
    • Existing retained provenance is not rewritten.
  • UI/Live Diff: Finished file operations no longer leave live previews covering the transcript (d86c09d, ebd6bb8, f24e08e, c7276b5)
    • Completed sh and supported env-prefixed formatter commands release their live previews.
    • Guarded formatter commands also release their previews before later work finishes.
    • Move-only operations retain completed evidence without opening live source cards.
  • Execution/Tracking: Command tracking retains per-command evidence inside Codex sandboxes (0f18118)
  • UI/Session: Copied Session Overview values exclude visual wrapping and indentation (907896d)
  • UI/Notifications: Completion notifications wait until automatic continuation is finished (3aa5e65)

New Features

  • UI/Approvals: Interactive sessions can run without --yolo (60471fa, b17cf4d, e63ee43, 5d78fe5)
    • The UI answers Codex command, edit, and permission approval requests using the offered scopes.
    • Command denials can include a typed or pasted reason without losing the parked composer draft or attachments.
    • Remote-write approvals can be remembered for the exact expanded arguments, workdir, and executable until the UI closes.
    • Command rows show pending, approved, denied, and automatically denied states with full details in their dialogs.
    • Headless sessions still require --yolo.
  • Projection: Opt in to duplicate-content references with --duplicate-output (abd95d6, 766e597, de3acf5)
    • Repeated tool output and attached file or skill content can reference earlier visible text in model input.
    • Request-local source IDs distinguish duplicate sources and remain stable as the request grows.
    • Full host results, retained evidence, and UI output remain unchanged.
    • The option is off by default and has no effect in passthrough.
  • UI/File Dialogs: Open local Markdown file links in the shared content dialog (bac7772, 5a4bb24, ab53c1e)
    • Relative links resolve against the session workspace; absolute paths and local file URLs are also supported.
    • Line and line-range suffixes reveal the referenced source and highlight its line numbers.
    • Markdown files open in rendered Markdown view with a separate numbered File view.
    • Each view retains its own scroll and search state; whole-page copy returns the original file bytes.
    • Files must be UTF-8 text no larger than 8 MiB; unsupported content and read failures show copyable errors.
  • UI/Selection: Extend text selections beyond the visible viewport (521a061, 676b222, 5a4bb24)
    • Wheel and keyboard scrolling preserve a frozen selection across transcript panes, saved Diff, side answers, and content dialogs.
    • Content dialogs offer Reference, Copy, and Clear actions matching the transcript.
    • Selection backgrounds preserve source syntax colors.
  • UI/Skills: Inspect the skills loaded in each agent's current context (2cff522, 676b222)
    • Main's title and child-agent rows count confirmed skill reads and submitted skill attachments in the current context.
    • Click a loaded-skills count to open the sorted names.
    • Resume reconstructs confirmed loads from history; incomplete counts remain hidden rather than appearing as zero.
  • Execution/Tracking: Per-command tracking supports Linux dash-backed sh (be2356d, e0c51da, 97e6b65)
    • Supported command lists stream per-command output with individual exit status and measured elapsed time.
    • Supported single Bash and dash-backed sh commands show measured command time.
    • Unsupported scripts retain aggregate host output rather than fabricated command boundaries.
  • UI/Activity: Running command headers remain visible above the transcript (8750436)
    • Off-screen running headers stay pinned in Main and the filtered child Activity view until completion.
    • Pinned headers retain their output-dialog click targets.
  • UI/Activity: Long-running command rows show known timeout bounds (7f75217, bc53eb8)
    • Supported literal shell timeout prefixes and available exec_command timeout_ms inputs appear after 500 ms of command runtime.
    • Recognized reads, skills, and supported pipelines retain their operation labels under literal timeout prefixes.
    • Fresh resume omits parameter-derived bounds when the original invocation input is unavailable.

Improvements

  • Metrics/Throughput: Provider-measured token rates stay visible while streaming and between requests (e00c2c4, 218642c, 050d6e3, 3e57156, 30b6d3e)
    • Main's rate appears in its composer and child rates appear in their roster rows.
    • Measured durations exclude local processing and delivery of response bytes already received.
    • Rates remain blank until the first valid measurement and survive resume when retained.
  • UI/Diff: Diffs emphasize changed words within replacement lines (b038f97)
    • Replacement blocks preserve syntax colors and emphasize inserted and removed words.
    • Shared source previews use the same highlighting without changing copied source or retained evidence.
  • UI/Transcript: Completed transcript activity uses compact summaries (0b4e369, 03dc239, 887536e)
    • Settled Main operation groups collapse after scrolling out of view and start collapsed on resume.
    • Collapsed groups retain failure counts and open their operations and completed edits in the shared dialog.
    • Fresh attachment receipts remain expanded until they leave the viewport.
    • Reasoning sections fold after their displayed content finishes.
  • UI/Journal: Journal updates use flat, Markdown-styled activity rows (e80d4d5, 0b0de97)
    • Main journal events use flat rows without an extra journal heading or nested rail.
    • Child journal updates join their normal agent activity group.
    • Titles and reason previews render inline Markdown, including code spans and links.
  • UI/Edit Activity: Edit activity distinguishes requested work from observed command completion (7346fa4, 260187d, 4a5339c, 4af1376, 2d75bc6)
    • Recognized edits remain separate from requested Run rows in combined-output dialogs.
    • Successful tracked writer commands show ran before later commands finish, without claiming confirmed file changes.
    • Unresolved interpreter effects retain a normal Run row with their source available.
    • Proven temporary helper writes stay ordinary command activity rather than edit warnings.
  • UI/Errors: User-only router errors appear beside the composer (bea4404, 1aee568)
    • Click composer error feedback to read full details or dismiss it with its check button.
    • Model-visible errors remain in the transcript.
    • Background storage-cleanup warnings identify the failed phase and underlying error.
  • UI/Activity: Confirmed whole-directory deletions use one row with a file count (4daebf6)
  • UI/Paths: Read and search paths use the command's working directory for display (85c366a)
  • UI/Session Titles: Automatic session naming includes submitted file snapshots (7720c24)
  • UI/Markdown: Inline code highlighting detects content instead of assuming shell syntax (3fd8d69, e908537)
  • Journal/Guidance: Subagents receive shorter journal guidance for bounded assignments (7ff2d9c)
  • UI/Performance: Long sessions avoid repeated rendering of unchanged history and edit receipts (bd9bc56, efc7910)
  • Storage/Performance: Request preparation avoids repeated whole-store size scans (5d5cc22)
  • Journal/Performance: Repeated journal reads allocate fewer temporary buffers (d60a19c)

Full Changelog

  • de3acf5 fix(projection): identify duplicate sources with request-local IDs
  • 5d78fe5 fix(activity): show approval states on existing command rows
  • da9f70f test(ui): extend terminal style snapshots across renderers
  • 4a5339c fix(ui): preserve typed operations in combined command output
  • 1aee568 fix(terminal): preserve shared macOS stdio flags
  • 4860819 docs(guidance): mention frontend shell pipes
  • 766e597 feat(projection): opt in to partial output and attachment references
  • 7720c24 fix(router): include attached files in session title input
  • 5478f8a test(ui): snapshot terminal styles and syntax highlighting
  • ebd6bb8 fix(livediff): match guarded formatter segment completion
  • ab53c1e feat(ui): add Markdown and File views to file dialogs
  • 0b0de97 feat(journal): render markdown in native items
  • b038f97 feat(diff): emphasize changed words while preserving syntax
  • 463af65 fix(live-diff): exclude recognized vcs effects from playback
  • 66caf1b docs(journal): prefer action-first Markdown item titles
  • 00b6bdb docs(journal): align tracked work with the task workflow
  • 5a4bb24 fix(ui): preserve source ranges and selection syntax colors
  • 58bf45c fix(ui): repaint all panes after returning from draft editor
  • eccc727 feat(journal): default to journal context resets
  • 85c366a fix(ui): shorten classified paths against command directories
  • bd89d8e fix(ui): hide tracked journal transport commands
  • c7276b5 fix(router): exclude move-only preview state from replay comparison
  • 258e820 test(exec): await streamed segment state before asserting it
  • be2356d feat(execsegment): track dash-backed sh commands
  • d86c09d fix(livediff): retire completed sh formatter previews
  • 30b6d3e fix(metrics): retain provider-measured TPS while streaming
  • 7f75217 feat(ui): show command timeout bounds after 500 ms
  • bc53eb8 fix(router): retain operation labels under timeout
  • abd95d6 feat(outputdedupe): reference repeated output in model input
  • 97e6b65 fix(ui): keep empty command output clickable
  • 88424e2 fix(exec): prevent guarded mise shims from redispatching recursively
  • bea4404 fix(ui): centralize composer error feedback
  • 6a77d98 ci: gate builds on offline tests and static checks
  • 0995305 docs(agents): clarify interface and diagnostic guidance
  • e908537 docs(ui): describe content-detected inline highlighting
  • f24e08e fix(livediff): keep move operations out of live source cards
  • b17cf4d feat(router): add exact session approval and denial feedback
  • e0c51da fix(activity): show measured single-command time
  • bac7772 feat(ui): open markdown file links in shared dialog
  • c032dde fix(ui): separate Main reply quotes from user excerpts
  • 8750436 feat(ui): pin running command headers until completion
  • 887536e fix(ui): collapse reasoning sections as they finish
  • 4daebf6 fix(activity): compact whole-directory deletion events
  • facb086 docs(guidance): add transcript fallback and output artifact hints
  • 1129812 fix(router): clean recorded stock instruction conflicts
  • e63ee43 fix(ui): show approval outcomes on commands and dialogs
  • 260187d fix(activity): settle successful edit segments before later commands
  • 5ccd6c9 fix(tests): isolate vcs fixtures from live approval guards
  • 7ff2d9c fix(journal): use shorter guidance for subagents
  • e80d4d5 fix(ui): flatten journal updates in main and child activity
  • 553e052 docs(agents): guide agent-friendly model-visible text
  • b001417 fix(journal): group child work under readable agent headings
  • 4fcf9d1 fix(router): preserve completed WebSocket captures after cancellation
  • 5308310 perf(journal): keep recovery focused on current work
  • 3aa5e65 fix(router): suppress completion notices during auto-continue
  • efc7910 perf(router): reuse captured edit receipts on unchanged activity
  • 3e57156 fix(metrics): time buffered output at body receipt
  • 050d6e3 fix(metrics): clear stale live output estimates
  • 907896d fix(ui): copy wrapped session values as logical text
  • 6e5797c fix(execution): require the stock JavaScript exec interface
  • 2b71440 fix(guidance): remove conflicting stock progress instructions
  • 73f6074 fix(ui): hide generated VCS guard command prefixes
  • 455ad08 refactor(vcsguard): share command source rewriting helpers
  • aeae133 fix(journal): bound slices to progressive checkable results
  • e8d8a6b fix(changes): exclude vcs effects from authored evidence
  • c9159bf refactor(vcsguard): share command effect classification
  • 7346fa4 fix(activity): show unresolved edits as command activity
  • 676b222 fix(ui): align loaded skills links and dialog selection
  • 0ccc93b test(router): isolate readiness client connections
  • 3a59aa7 fix(ui): remove redundant native UI terminology
  • cb2a80a feat(vcsguard): guard remote writes independently of Codex policy
  • 0f18118 fix(exec-track): retain segment evidence inside Codex sandboxes
  • 60471fa feat(ui): answer approvals without --yolo
  • 4099fd5 fix(journal): retain confirmed answer receipts after disconnect
  • 78bfa77 fix(journal): leave absent state untouched on no-change transactions
  • a581194 test(router): align quick-switch tier notices with current behavior
  • 2712bd0 fix(router): move answer caret with bare arrow keys
  • f64872e fix(router): defer question answers during tool input emission
  • 36efa28 fix(journal): record only established work in the journal
  • ff4581a fix(activity): omit framed uppercase section labels
  • 05617d5 fix(journal): keep Outcomes out of task-tree ordinals
  • 218642c fixup! fix(metrics): meter streamed output and keep token rates visible
  • 03dc239 fix(ui): preserve live provenance for attachment receipts
  • e00c2c4 fix(metrics): meter streamed output and keep token rates visible
  • c7b0895 docs(agents): defer shared policy to global guidance
  • 2cff522 feat(ui): show skills active in each agent's current context
  • 0b4e369 feat(ui): collapse Main operation batches once out of view
  • 3fd8d69 fix(ui): use library detection for inline code
  • 53bab3b fix(router): preserve cancellation during websocket response reads
  • d60a19c perf(journal): pool temporary journal read buffers
  • 5d5cc22 perf(storage): reuse revision-validated admission sizes
  • bd9bc56 perf(ui): reduce live transcript rendering churn
  • 74ee26b feat(profiling)!: add shared live and replay pprof workflow
  • 4661eed refactor(diff): remove renderer follow-focus state
  • 521a061 fix(ui): scroll and select beyond the visible viewport
  • ddce07a docs(agents): scope guidance to affected contracts and requested changes
  • 2d75bc6 fix(activity): retain temporary bindings across log commands
  • abfd0f0 docs(ui): describe effective runtime tier choices
  • 4af1376 fix(activity): suppress warnings for proven temporary writes
  • 2b550c3 fix(ui): make the tier toggle change the effective tier
  • 121e847 fix(composer): expedite pending steers on escape
  • 0e9bdc4 fix(composer): keep paste boundaries out of shell shortcuts
  • 31a956a fix(diff): remove saved follow without stopping live updates
  • 95ad743 fix(diff): separate navigator and content focus
  • efad38a test(launcher): canonicalize temporary fixture paths
  • 261e605 fix(journal): stabilize reads and reconcile child completions