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
7422222788
feat(claws): add local project author lifecycle ( #117037 )
...
* feat(claws): add local project lifecycle
* fix(claws): harden local project lifecycle
* fix(claws): harden project source selection
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3cdcdb00-ade8-4e61-85a7-8151b35f216a
* fix(claws): preserve project archive paths
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): harden author lifecycle
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* chore(claws): normalize authoring test mode
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): normalize archive path spellings
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): exclude repository-local sources
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): satisfy CI contracts
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* chore: record CI fix attribution
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
* fix(claws): reject excluded manifest links
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3cdcdb00-ade8-4e61-85a7-8151b35f216a
Copilot-Session: db3a73db-01ff-428e-a451-b7b710cd5085
2026-08-09 03:30:21 -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
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
8bed69a26f
fix(claws): normalize cron defaults during removal ( #113045 )
...
Fixes Claw cron removal by normalizing scheduler default cron tool authority before comparing Claw-managed cron config. This lets a live Gateway cron job with the persisted default `payload.toolsAllow: ["*"]` match a Claw manifest that omitted the default cap, while preserving explicit tool caps.
Validation:
- `git diff --check origin/main...HEAD`
- `pnpm exec oxlint --deny-warnings src/claws/cron.ts src/claws/lifecycle-state.test.ts`
- `node scripts/run-vitest.mjs src/claws/lifecycle-state.test.ts src/claws/cron.test.ts`
- Hosted exact-head gates passed for `410ac9e74cb3f009713107e65390accb8303ec31`: CI#30024039807, Workflow Sanity#30024039519
- ClawSweeper exact review run 30024149686 completed successfully for this head
Co-authored-by: Gio Della-Libera <235387111+giodl73-repo@users.noreply.github.com >
2026-07-23 09:44:19 -07:00
Gio Della-Libera
9636f2aa2d
Add CLAW.md manifest support ( #111391 )
...
* Add CLAW.md manifest support
* test(claws): cover CLAW.md manifests
* docs(claws): document CLAW.md packages
* fix(claws): harden claw markdown parsing
* fix(claws): bound claw document reads
2026-07-22 18:37:08 -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
31ff00fe82
Add experimental Claw lifecycle diagnostics ( #102427 )
...
* Add experimental Claw lifecycle diagnostics
* test(claws): cover lifecycle diagnostics
* docs(claws): document doctor diagnostics
* test(claws): derive future state schema version
* test(claws): clean doctor restack fixture
* test(claws): align doctor drift fixture with agent entries
---------
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-07-22 11:55:47 -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
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
ebe2420482
Create Claw-managed workspace files ( #101973 )
...
* Create Claw-managed workspace files
* test(claws): cover managed workspace files
* docs(claws): document workspace files
* docs(claws): correct workspace manifest example
* fix(claws): preserve failed workspace ownership boundaries
* test(claws): align symlink escape diagnostic
* test(claws): canonicalize workspace alias fixture
* test(claws): clean workspace temp dirs
---------
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-07-21 17:36:33 -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