fix(skills): repair butler cron and doc drift (2026-07-22 audit)#664
Open
IceyLiu wants to merge 2 commits into
Open
fix(skills): repair butler cron and doc drift (2026-07-22 audit)#664IceyLiu wants to merge 2 commits into
IceyLiu wants to merge 2 commits into
Conversation
- cron jobs update example used a flat string for `schedule`; backend expects the tagged CronScheduleDto object (same as create). A flat string fails to deserialize and the update errors out. - Added inline note distinguishing the tagged-object schedule used by `cron jobs` from the flat-string schedule used by `cron current`. - Replaced `default_mcp_ids` prose (silently ignored by backend) with `defaults.mcps` — the actual AssistantDefaultsRequest field. - Renamed "test" to `try-connect` for custom agents and added a minimal example showing the `command` field.
Cron run-state fields are nested under `state` in CronJobResponse, not top-level. Timestamps use _ms suffix (epoch ms). The old field names (`next_run_at`, `last_run_at` at top level) do not exist — the agent would silently find nothing. Also adds a fallback hint for `cron.failing` being empty: a known backend bug in the diagnose CLI reads `last_status` at the wrong depth, so the overview `cron.failing` list is always empty. Direct inspection of `all[].state.last_status` in `diagnose cron summary` is the workaround.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Daily drift audit (2026-07-22) found two breaking issues and two doc
problems in the butler's built-in skills. This PR fixes all four.
Changes are asset-only — no
.rschanges — and ship to users viainclude_dir!on the next binary build.Fixes
B1 —
aionui-config:cron jobs updateschedule field type (BREAKING)The update example used
"schedule": "0 10 * * MON"(flat string). Thebackend
UpdateCronJobRequest.scheduleisOption<CronScheduleDto>(
crates/aionui-api-types/src/cron.rs:203-204) — the same internally-taggedobject as create. A plain string fails to deserialize and the request
errors out. Fixed the example to
{ "kind": "cron", "expr": "0 10 * * MON" }and added a note distinguishing the two cron families (
cron jobsusestagged object;
cron currentuses flat string).B2 —
aionui-troubleshooting: cron field names/paths (BREAKING → misdiagnosis)The skill told the reading agent to look at top-level
last_status,next_run_at,last_run_atetc. These don't exist there. All run-statefields are nested under
stateinCronJobResponse(
crates/aionui-api-types/src/cron.rs:113-140), and the timestamp fieldscarry
_mssuffixes. The agent would silently find nothing and misreportcron state. Corrected to
state.last_status,state.last_error,state.next_run_at_ms,state.last_run_at_ms, etc.Also added a fallback hint for the
cron.failingoverview field beingempty (see backend bug report linked below).
D1 —
aionui-config:default_mcp_ids→defaults.mcpsProse at line 149 named
default_mcp_idsas a settable field on assistantupdate. No such field exists on
UpdateAssistantRequest; MCP defaults areset via
defaults.mcps(assistant.rs:164). Withoutdeny_unknown_fields,the old name was silently ignored. Corrected the prose.
D2 —
aionui-config:agents custom test→try-connectThe prose said "test a custom agent" but the actual subcommand is
try-connect(cmd_config.rs:800-808). Renamed and added a minimalexample.
How verified
Every fix was verified against
file:linein the freshly-pulledmain(
10cdd579) before editing:UpdateCronJobRequest:cron.rs:203-204CronJobStateDtonesting:cron.rs:113-140AssistantDefaultsRequest.mcps:assistant.rs:164try-connectdispatch:cmd_config.rs:800-808Related
Backend bug (not in this PR):
diagnose cron summary/overviewreadlast_statusat the wrong depth (cmd_diagnose.rs:764, 783), socron.failingis always empty. A separate issue is filed for that.rsfix.
Deploy path
Asset-only change. Ships via
include_dir!inaionui-appwhen thebinary is rebuilt. No migration, no schema change.