Gio Della-Libera
103e1a4cc9
fix(claws): recover lifecycle state safely ( #123254 )
...
* fix(claws): preserve runtime lifecycle state
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 34377cd6-beac-4e49-8ab0-22cfaf8b54a5
* fix(claws): harden lifecycle reconciliation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 34377cd6-beac-4e49-8ab0-22cfaf8b54a5
* fix(mcp): serialize ownership mutations
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 34377cd6-beac-4e49-8ab0-22cfaf8b54a5
* test(mcp): prove lifecycle lease ordering
* fix(claws): page cron recovery inventory
* fix(claws): fail closed on missing cron ownership
* refactor(claws): keep pending cron recovery unchanged
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Co-authored-by: Gio Della-Libera <235387111+giodl73-repo@users.noreply.github.com >
Copilot-Session: 34377cd6-beac-4e49-8ab0-22cfaf8b54a5
2026-08-14 20:52:45 -07:00
Gio Della-Libera
1ec4e4582e
fix(claws): freeze installed tool profile authority ( #121327 )
...
* fix(claws): freeze installed tool profile authority
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* chore(claws): normalize consent helper file modes
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): preserve consented tool authority
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* chore(claws): normalize source file modes
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* chore(claws): allowlist runtime provenance probe
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): close consent review gaps
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* docs(claws): require concrete frozen tool grants
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): reject dynamic MCP selectors
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): type profile resolution at parse boundary
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): preserve bounded update authority
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): prepare consent provenance at config load
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): isolate consent provenance failures
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): keep runtime grants inside consent
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): own consent cache in state lifecycle
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): guide legacy full profile repair
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* chore(claws): keep consent cache internals private
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): satisfy strict consent cache types
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): fail closed when state cache closes
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): integrate consent cache with state owner
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): fail closed before consent state opens
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): resume legacy v1 profile installs
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* test(claws): isolate legacy resume regression
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): follow tool policy normalizer rename
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): bind runtime consent to agent config
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* chore(claws): normalize digest helper mode
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): drop stale digest helper import
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* test(runtime): keep snapshot mocks complete
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): retain bounded legacy profile plans
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): verify ownership before runtime consent
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* test(claws): remove stale runtime import
* fix(claws): drop stale add import
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): resume failed v1 promotion
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* test(claws): codify cold-state authority fence
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* chore(plugin-sdk): refresh API baseline
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
---------
Co-authored-by: Gio Della-Libera <235387111+giodl73-repo@users.noreply.github.com >
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
2026-08-12 11:37:04 -07:00
Gio Della-Libera
a3094582ff
feat(claws): export reviewed native bootstrap ( #115371 )
...
* feat(claws): export reviewed native bootstrap
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3cdcdb00-ade8-4e61-85a7-8151b35f216a
* fix(claws): fail export when the package bootstrap drifted
Export re-emitted BOOTSTRAP.md only while the seeded copy was still pending, so
an agent whose bootstrap had been edited, flagged unsafe, or become unreadable
exported a package with no bootstrap at all. That is the same class of silent
loss the managed workspace files already guard against, so treat it the same
way: drifted bootstrap state now fails with `bootstrap_drifted` unless the
author supplies a reviewed `--bootstrap` replacement. A consumed bootstrap
stays a completed lifecycle state and still exports without BOOTSTRAP.md.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3cdcdb00-ade8-4e61-85a7-8151b35f216a
* fix(claws): bind pending bootstrap export bytes
* fix(claws): preserve current export ownership limits
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3cdcdb00-ade8-4e61-85a7-8151b35f216a
2026-08-08 12:32:26 -07:00
Gio Della-Libera
7774f9a36c
feat(claws): apply schema-v1 profile requirements ( #115962 )
...
* test(claws): model provenance columns in CLI state mock
* fix(claws): normalize owned upgrade preflight
* fix(claws): normalize owned upgrade preflight
* fix(claws): normalize owned upgrade preflight
* fix(claws): satisfy current validation gates
2026-08-07 18:51:45 -07:00
Gio Della-Libera
60fc2fe64d
feat(claws): adopt portable profiles and native bootstrap ( #115237 )
2026-08-07 04:04:51 -07:00
Peter Steinberger
33ea3e16e9
refactor: consolidate core micro-helpers ( #117825 )
...
* refactor: centralize stable stringification
* refactor: reuse canonical record coercion
* refactor: reuse safe JSON parsing in cron storage
* refactor: centralize environment truthiness
* fix: enforce model scan and block reply timeouts
* refactor: consolidate signal-aware sleep helper
* fix: preserve plugin SDK sleep contract
* test: satisfy model scan timeout lint
2026-08-01 23:10:46 -07:00
Gio Della-Libera
346a870395
fix(claws): harden add and remove lifecycle ( #114670 )
...
* fix(claws): wait for agent reload before cron add
* test(claws): cover gateway config readiness
* test(claws): cover gateway config readiness
2026-07-27 17:37:23 -07:00
Gio Della-Libera
e79faff8aa
feat(claws): materialize CLAW.md prompts ( #113454 )
...
* fix(claws): align prompt lifecycle validation
* test(claws): cover Unicode frontmatter
* feat(claws): materialize CLAW.md prompts
* fix(claws): preserve portable provenance import
2026-07-27 08:30:50 -07:00
Gio Della-Libera
e9b3252ae8
feat(claws): separate portable and OpenClaw profiles ( #112773 )
...
* feat(claws): add portable agent policy settings
* fix(claws): align portable agent policy
* fix(claws): preserve host policy boundaries
* feat(claws): separate portable and OpenClaw profiles
* test(claws): align profile fixtures with portable schema
* fix(claws): align portable profile boundaries
2026-07-24 12:06:02 -07:00
Gio Della-Libera
7d159fdc77
Apply consented grouped Claw updates ( #102982 )
...
* Apply consented grouped Claw updates
* test(claws): cover update application
* docs(claws): document consented updates
* fix(claws): preserve uncertain update state
* fix(claws): preserve inherited lifecycle guards
* fix(claws): derive update package contracts
* fix(claws): type update package lookup
* test(claws): complete update capability fixtures
* refactor(claws): share cron payload builder for updates
* refactor(claws): extract update plan summary
* fix(claws): activate cron after update dependencies
* fix(claws): preserve state after uncertain cron update
* fix(claws): persist partial update provenance
* fix(claws): preserve update ownership metadata
* test(claws): track update apply temp dirs
* test(claws): align update cron mock result
* fix(claws): update apply writes agent entries
---------
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-07-22 17:42:42 -07:00
Gio Della-Libera
f004d76a0e
Plan grouped Claw agent updates ( #102959 )
...
* Plan grouped Claw agent updates
* test(claws): cover update planning
* docs(claws): document update preview
* fix(claws): bind update capability effects
* fix(claws): redact update capability effects
* fix(claws): bind capability previews to exact changes
---------
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-07-22 13:44:09 -07:00
Gio Della-Libera
b56006babf
Manage Claw MCP server ownership ( #102406 )
...
* Manage Claw MCP server ownership
* test(claws): cover MCP resource lifecycle
* docs(claws): document MCP resources
* fix(claws): preserve lifecycle status contracts
* fix(claws): reconcile missing MCP removals
* fix(claws): recheck restored MCP before releasing provenance
* fix(claws): protect restored MCP identity
* refactor(claws): isolate MCP removal lifecycle
* fix(claws): export lifecycle status record
* style(claws): remove obsolete lifecycle lint exemption
* fix(claws): read MCP status from agent entries
* test(claws): clean MCP restack fixtures
* fix(claws): repair MCP state schema restack
* test(claws): remove stale MCP status import
---------
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-07-22 08:37:44 -07:00
Gio Della-Libera
96e3051838
Manage Claw cron jobs through the gateway ( #102383 )
...
* Manage Claw cron jobs through the gateway
* test(claws): cover scheduled work lifecycle
* docs(claws): document scheduled work
* fix(claws): preserve modified cron jobs
* fix(claws): internalize cron gateway payloads
* fix(claws): make cron removal convergent
* style(claws): satisfy intermediate lifecycle lint
* refactor(claws): extract lifecycle state contracts
* test(claws): clean cron restack fixtures
---------
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-07-22 08:04:54 -07:00
Gio Della-Libera
6134fdfdcd
Export installed agents as grouped Claw packages ( #102306 )
...
* Export installed agents as grouped Claw packages
* test(claws): cover exact agent export
* docs(claws): document agent export
* fix(claws): use current bounded file reader
---------
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-07-22 06:40:29 -07:00
Peter Steinberger
edecdbd05e
refactor(config): config-surface reduction tranche 3 — product consolidations (review request) ( #111527 )
...
* refactor(config): consolidate media model lists
* refactor(config): unify memory configuration
* refactor(config): consolidate TTS ownership
* refactor(config): move typing policy to agents
* refactor(config): retire product-level config surfaces
* refactor(config): share scoped tool policy type
* chore(config): refresh generated baselines
* fix(config): honor agent typing overrides
* fix(config): migrate sibling config consumers
* refactor(infra): keep base64url decoder private
* fix(config): strip invalid legacy TTS values
* chore(config): refresh rebased baseline hash
* fix(doctor): route legacy messages.tts.realtime voice to talk during tts move
* refactor(config): polish final layout names
* refactor(config): freeze retired tuning defaults
* feat(config): add fast mode default symmetry
* refactor(config): key agent entries by id
* docs(config): update final layout reference
* test(config): cover final layout migrations
* chore(config): refresh final layout baselines
* fix(config): align final layout runtime readers
* fix(config): align remaining readers
* fix(config): stabilize final layout migrations
* fix(config): finalize config projection proof
* fix(config): address final layout review
* docs(release): preserve historical config names
* fix(config): complete keyed agent migration
* fix(config): close final migration gaps
* fix(config): finish full-branch review
* fix(config): complete runtime secret detection
* fix(config): close final review findings
* fix(config): finish canonical docs and heartbeat migration
* fix(config): integrate latest main after rebase
* refactor(env): isolate test-only controls
* refactor(env): isolate build and development controls
* refactor(env): collapse process identity indirection
* refactor(env): remove duplicate config and temp aliases
* docs(env): define the operator-facing allowlist
* ci(env): ratchet production variable count
* fix(env): remove stale provider helper import
* fix(env): make ratchet sorting explicit
* test(env): keep test seam in dead-code audit
* test(env): cover ratchet growth and boundary; document surface budgets
* docs(config): document tier-eval consolidations
* docs(config): clarify speech preference ownership
* test(memory): align retired tuning fixtures
* refactor(memory): freeze engine heuristics
* refactor(config): apply tier-eval tranche
* refactor(tts): move persona shaping to providers
* refactor(compaction): move prompt policy to providers
* test(config): align hookified prompt fixtures
* chore(deadcode): classify test-only exports
* chore(github): remove unused spawn helper
* chore(deadcode): classify queue diagnostics
* chore(deadcode): remove unused lane snapshot export
* chore(plugin-sdk): ratchet consolidated surface
* fix(config): integrate latest main after rebase
2026-07-21 20:28:43 -07:00
Gio Della-Libera
137dabc929
Add plan-first Claw status and remove ( #102296 )
...
* Add plan-first Claw status and remove
* test(claws): cover status and removal
* docs(claws): document status and removal
* fix(claws): report incomplete root state
* test(claws): complete adoption plan fixtures
* fix(claws): revalidate package removal ownership
* style(plugins): format lifecycle uninstall
* fix(claws): align agent removal preconditions
---------
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-07-21 19:53:08 -07:00
Gio Della-Libera
ba467fbd3e
Install ClawHub packages for new Claw agents ( #102228 )
...
* Install ClawHub packages for new Claw agents
* test(claws): cover skill and plugin installation
* docs(claws): document package artifacts
* fix(claws): bind package trust preflight
* fix(claws): bind package capability consent
* fix(claws): satisfy package type guards
* test(claws): update package installer fixtures
* test(claws): complete package plan fixtures
* test(claws): model complete ClawHub results
* fix(claws): serialize plugin ownership changes
* fix(claws): cover legacy plugin lifecycle updates
* fix(claws): preserve legacy ClawHub update selectors
* test(claws): type lifecycle lease mock
* refactor(claws): isolate plugin update lifecycle
* fix(claws): declare managed installer coordination
* test(claws): preserve partial collision result
* test(claws): clean installer temp dirs
---------
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-07-21 18:55:10 -07:00
Gio Della-Libera
88a7306308
Create Claw agent and root install record ( #101755 )
...
* Create Claw agent and root install record
* test(claws): cover consented agent creation
* docs(claws): document consented agent creation
* fix(claws): normalize agent collisions at commit
* test(claws): expect partial normalized collision
* test(claws): isolate normalized collision state
* test(claws): reject normalized agent collisions
* test(claws): align capability output expectation
* fix(claws): align add plan call with current schema
---------
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-07-21 17:24:24 -07:00
Gio Della-Libera
138d2a5627
Add grouped Claw schema and read-only add plan ( #101328 )
...
* Add grouped Claw schema and read-only add plan
* test(claws): cover grouped schema and preview
* docs(claws): document experimental preview
* fix(claws): harden preview consent
* fix(claws): satisfy tool filter lint
* fix(claws): bind plans to validated sources
2026-07-21 14:50:36 -07:00