feat(agent): add workspace skills support#2488
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
This comment has been minimized.
This comment has been minimized.
|
✅ No security or compliance issues detected. Reviewed everything up to 6bbdbb3. Security OverviewDetected Code ChangesThe diff is too large to display a summary of code changes. |
This comment has been minimized.
This comment has been minimized.
|
✅ No security or compliance issues detected. Reviewed everything up to 37e6998. Security OverviewDetected Code ChangesThe diff is too large to display a summary of code changes. |
50bda51 to
6466336
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 094dfdd6eb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fbe15f8668
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
This comment has been minimized.
This comment has been minimized.
# Conflicts: # frontend/src/client/schemas.gen.ts # frontend/src/client/types.gen.ts
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1fe9b3ff61
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: abb552c60d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 02b109ce14
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2c01715ed2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 11a2087adc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 289ce353fb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: be71e3caea
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

What changed
Why
Workspace skills need a backend lifecycle that is independent from agent presets while still producing reproducible runtime snapshots. This PR establishes that foundation and the runtime plumbing the UI will build on in the next stacked PR.
Impact
Validation
uv run ruff check tracecat/agent/skill tracecat/agent/preset tracecat/agent/session tracecat/agent/executor/activity.py tracecat/agent/runtime/claude_code/runtime.py tracecat/agent/sandbox/config.py tracecat/agent/sandbox/nsjail.py tracecat/agent/service.py tracecat/agent/types.py tracecat/agent/workflow_config.py tracecat/agent/workflow_schemas.py tracecat/api/app.py tracecat/chat/tools.py tracecat/config.py tracecat/db/models.py tracecat/db/tenant_rls.py tracecat/mcp/server.py tracecat/storage/blob.py tests/unit/test_skill_service.py tests/unit/test_agent_preset_service.py tests/unit/test_agent_session_preset_versioning.py tests/unit/test_agent_activities.py tests/unit/test_mcp_server.py tests/unit/test_storage_blob.py alembic/versions/0c6bb8f8e1d1_add_workspace_skills.pyuv run basedpyright tracecat/agent/skill tracecat/agent/preset tracecat/agent/session tracecat/agent/executor/activity.py tracecat/agent/runtime/claude_code/runtime.py tracecat/agent/sandbox/config.py tracecat/agent/sandbox/nsjail.py tracecat/agent/service.py tracecat/agent/types.py tracecat/agent/workflow_config.py tracecat/agent/workflow_schemas.py tracecat/api/app.py tracecat/chat/tools.py tracecat/config.py tracecat/db/models.py tracecat/db/tenant_rls.py tracecat/mcp/server.py tracecat/storage/blob.py tests/unit/test_skill_service.py tests/unit/test_agent_preset_service.py tests/unit/test_agent_session_preset_versioning.py tests/unit/test_agent_activities.py tests/unit/test_mcp_server.py tests/unit/test_storage_blob.py alembic/versions/0c6bb8f8e1d1_add_workspace_skills.pyuv run pytest tests/unit/test_skill_service.py tests/unit/test_agent_preset_service.py tests/unit/test_agent_session_preset_versioning.py tests/unit/test_agent_activities.py tests/unit/test_mcp_server.py tests/unit/test_storage_blob.py