Skip to content

Tags: apache/maka

Tags

v0.2.0-dev.23.20260906

Toggle v0.2.0-dev.23.20260906's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(desktop): let the launch-owner guard retire the owned Host on quit (

#4756)

v0.2.0-dev.22.20260905

Toggle v0.2.0-dev.22.20260905's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(storage): reclaim the bytes the v1 upgrade orphaned (#4867)

The v1 upgrade rebuilds the artifact catalog by dropping the table and
re-inserting what still decodes. A record naming a retired source, one
naming no source, the tombstone a user's deletion left behind, and any row
too malformed or self-inconsistent to carry over all fail that gate -- and
every one of them leaves its file on disk, unreachable from the catalog
that used to name it.

Dropping a row is the last moment anything knows where its bytes are, so
the upgrade now records every path it does not carry over, in the same
transaction. Unlinking there is not an option: a rollback after one would
be unrecoverable. The store drains that list on recovery, a path some
record has since claimed keeps its bytes, and a file that will not go
keeps only its own note rather than holding up the ones behind it.

Recording what the upgrade drops is exact where a file-name pattern could
only be a guess, so there is nothing to scan and nothing to keep in step
with the writers that produced these files. The cost is that a store
converted by an earlier build keeps its residue: its rows are already gone.

Generated-by: Claude Code

v0.2.0-dev.20.20260904

Toggle v0.2.0-dev.20.20260904's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(release): make unsigned Windows artifacts reproducible (#4690)

Make independently built unsigned Windows x64 payloads byte-identical by removing build timestamps and variable linker metadata, while preserving real publication metadata.

Add regression coverage for the actual electron-builder ZIP and NSIS paths.

Refs #3276 and #3414.

Generated-by: Codex

v0.2.0-dev.19.20260904

Toggle v0.2.0-dev.19.20260904's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(release): decouple Nightly from registry audit (#4703)

Keep valid moderate-or-higher shipped advisories blocking while treating audit-service unavailability as nonfatal for Product Nightly and pull request validation.

Consolidate shipped dependency audit at the product boundary, remove duplicate matrix and workflow requests, and keep publishable formal candidates fail-closed.

Generated-by: Codex

v0.2.0-dev.16.20260903

Toggle v0.2.0-dev.16.20260903's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
ci(dependabot): label npm and actions updates with dependencies only (#…

…4681)

Neither update block sets `labels`, so dependabot applies its defaults:
`dependencies` plus a language label, `javascript` for npm and
`github_actions` for github-actions. `javascript` appears only on
dependabot PRs and nobody, human or workflow, reads it; the
`github_actions` label does not even exist in the repository.

Pin both blocks to `dependencies` alone. The configuration has to
change before the `javascript` label is deleted, otherwise dependabot
recreates it on its next update.

Generated-by: Claude Code

v0.2.0-dev.15.20260902

Toggle v0.2.0-dev.15.20260902's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(desktop): accept Intel Mach-O architecture in package verification (

#4589)

macOS Intel Nightly packages pass notarization but fail verification because lipo reports x86_64 while the release target uses Node architecture x64. Translate that name at the existing Mach-O assertion while retaining the single-architecture requirement for both Nightly and formal releases.

Exercise the packaged-app verifier with real ASAR and update configuration fixtures. Cover accepted Intel and ARM packages, wrong architectures, and universal binaries. The Intel regression fails without the mapping and passes with it.

Generated-by: Codex

v0.2.0-dev.12.20260901

Toggle v0.2.0-dev.12.20260901's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(desktop): declare a mode for Bot sessions

Every Bot conversation — Feishu, Telegram, WeCom — answered
`Maka 暂时无法处理这条消息:机器人对话处理失败` and never created a session, while the
platform connection itself stayed healthy.

`explore` is a boundary a product mode confers, not one a caller may request directly
(`create-session-input.ts`). The Bot adapter asked for it directly: `permissionMode:
'explore'` with no `mode`. `prepareCreate` rejected that, and the rejection matched no
category in `generalizedErrorMessage`, so what the user saw was a generic fallback that
read like a platform or credentials fault. Desktop chat was never affected — it starts
at `ask`.

A Bot session is exactly such a product intent, so `bot` joins `SESSION_START_MODE_SPECS`
and the adapter names the mode instead of asking for the boundary. Unlike Deep Research it
carries no name of its own: `prepareCreate` resolves `mode?.name ?? input.name`, and a
fixed spec name would flatten `飞书 任务` and `Telegram 任务` into one label, so
`SessionStartModeSpec.name` becomes optional. The `mode:bot` label is reserved for free,
since `prepareCreate` already refuses caller-supplied mode labels.

`session.create.mode` therefore accepts a value it did not before, and a Host that predates
it answers `Invalid Session start mode`, so `RUNTIME_HOST_COMPATIBILITY_EPOCH` moves 89 → 90.

The mode registry moves from `deep-research.ts` to `session-start-mode.ts`. It was born
there when Deep Research was its only member; `bot` is a sibling, not a Deep Research
detail, and nobody looks for Bot permissions in a file named for Deep Research. Pure move.

A mode without a name of its own also exposed a sibling defect: `sessions:create` dropped
the requested name whenever a mode was present, which held only while every mode carried
one. It now forwards the name either way and leaves the precedence to the Host. The Bot
adapter talks to the Host directly and never took that path, so that is a contract repair
rather than a second user-visible bug. Both regressions are guarded where they were
rejected — at the coordinator and at the IPC handler; the Bot adapter's own test reached
neither, because its fake client returns a session without entering `prepareCreate`, which
is why this shipped.

Deliberately not covered: `bot-incoming-main.ts` still swallows `invalid_request` into
`机器人对话处理失败`, which is what made this take a packaged-app patch to diagnose, and
`updateSessionConfiguration` still admits `explore` with no mode — the path `prepareSession`
uses to re-arm a bound Bot session.

Fixes #4193

Generated-by: Claude Code

v0.2.0-dev.11.20260831

Toggle v0.2.0-dev.11.20260831's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat(desktop): warn that deleting a parent keeps and archives its sub…

…tasks (#3781)

Deleting a parent task permanently removes it, but its ordinary linked subagent subtasks are intentionally kept and moved to the archive rather than cascade-deleted (#1467 / #3151). The confirm said nothing and the completion gave no feedback, so the archived rows that appeared next read as tasks from nowhere.

The delete confirm now warns, when the task has ordinary linked subtasks, that they are kept and moved to Archived; the completion toast reports how many moved. Both counts are owned by the Host rather than estimated by the renderer, whose catalog projection carries linked children as `subagent: { parentSessionId }` with no operator marker or copy state:

- `session.remove` returns `archivedSubtaskCount` (deduplicated by revision family), which the toast reports verbatim.
- A read-only `session.remove.preview` query returns how many subtasks a delete would archive, computed by the same `#readRemovalPlanSessionIds` the mutation uses. The confirm warns off it. Agent Graph operators (retired with the parent rather than archived), already-archived children, copies mid-preparation, and absent targets all preview zero. On preview failure the confirm falls back to an uncertain note rather than hiding the warning, and the delete still proceeds.
- Bulk purge sums the executed counts into `SessionPurgeOutcome.archivedSubtasks`; the archived-tasks purge confirm warns and its toast reports how many moved.

Because Agent Graph operator Sessions are retired with the parent, the notices say "ordinary subtasks" rather than "linked subtasks", so operators are never presented as survivors on either surface.

Copy lives in `shell-copy.ts` and `settings-tasks-copy.ts` (zh + en). Deletion semantics are unchanged.

Compatibility: bumps `RUNTIME_HOST_COMPATIBILITY_EPOCH` to 82 for the new removed-result field and the new query, both of which an older peer rejects. `session.remove.preview` is added to `REMOTE_OWNER_OPERATION_GRANTS`; it is a strictly weaker read of a plan whose mutation is already granted, so it expands no privilege.

Fixes #3780

Generated-by: Claude Code

v0.2.0-dev.10.20260831

Toggle v0.2.0-dev.10.20260831's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix: preserve skill outcomes across queued-message recovery

Keep the Host-produced SkillInvocationResult for every admitted message disposition, including steering, follow-up, queued, started, and blocked submissions.

Persist both the original submitted placement and the Skill outcome through admission, SQLite recovery, promotion, restart, and durable retry. This lets Desktop and CLI report partial Skill preparation failures without turning a promoted next-turn retry into an operation conflict.

Update the Runtime Host protocol epoch and session schema together, with production-owner recovery coverage and exact-head CI passing.

Fixes #4026

Generated-by: OpenAI Codex

v0.2.0-dev.9.20260831

Toggle v0.2.0-dev.9.20260831's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
refactor(runtime): persist durable Tool Result projections (#4287)

* feat(core): define durable tool result projections

Generated-by: Codex

* feat(runtime): add durable projection codec

Generated-by: Codex

* feat(runtime): commit projections atomically at T2

Generated-by: Codex

* refactor(runtime): replay effective tool result projections

Generated-by: Codex

* feat(runtime-host): persist projected artifacts and recoveries

Generated-by: Codex

* refactor(runtime): remove transient Tool Result authority

Generated-by: Codex

* fix(storage): reuse projected image artifacts

Generated-by: Codex

* fix(runtime): remap projected artifacts on copy

Generated-by: Codex

* refactor(runtime): remove synthetic projection return

Generated-by: Codex

* refactor(runtime): privatize synthetic result writer

Generated-by: Codex

* fix(runtime): validate projected images before persistence

Generated-by: Codex

* fix(runtime): reject unowned projection copies

Generated-by: Codex

* refactor(runtime): remove retired conversation copy owner

Generated-by: Codex

* test(runtime): verify durable projection owner boundaries

Generated-by: Codex

* refactor(runtime): keep projection helper types private

Generated-by: Codex

* test(runtime): target durable projection T2 rollback

Generated-by: Codex

* refactor(runtime): trim projection artifact input

Generated-by: Codex

* test(runtime): produce restart projection through T2

Generated-by: Codex

* style(runtime): format session manager tests

Generated-by: Codex

* fix(runtime): make projection admission side-effect free

Generated-by: Codex

* test(runtime): replay persisted image after restart

Generated-by: Codex

* test(runtime-host): cover projection artifact restart

Generated-by: Codex

* refactor(runtime): preserve projection content fidelity

Generated-by: Codex

* fix(storage): protect projection artifacts

Generated-by: Codex

* fix(runtime): admit tool calls before publication

Generated-by: Codex

* fix(runtime): bound projection copies before allocation

Generated-by: Codex

* test(runtime-host): consolidate projection lifecycle coverage

Generated-by: Codex

* test(runtime): lock T1 failure side effects

Generated-by: Codex

* refactor(core): unify artifact source policy

Generated-by: Codex

* fix(runtime): make tool result projectors total

Generated-by: Codex