Skip to content

feat(ui): build workspace skills studio#2487

Merged
daryllimyt merged 34 commits intomainfrom
feat/skills-1
Apr 23, 2026
Merged

feat(ui): build workspace skills studio#2487
daryllimyt merged 34 commits intomainfrom
feat/skills-1

Conversation

@daryllimyt
Copy link
Copy Markdown
Contributor

@daryllimyt daryllimyt commented Apr 6, 2026

What changed

  • add the workspace skills studio routes, data hooks, and editor/list/playground components
  • add preset-builder UI for attaching published skills and preset version diff UI for skill binding changes
  • add skills navigation and the small frontend support changes needed for the new skill session entity

Why

This is the UI layer on top of #2488. It exposes the backend skill lifecycle in the workspace, and lets users attach published skill versions to presets and test skills interactively.

Impact

  • users can browse, create, edit, publish, and test skills from the workspace UI
  • preset editing now supports pinning published skill versions
  • preset version comparison now shows skill binding changes

Validation

  • pnpm -C frontend check
  • pnpm -C frontend run typecheck

@mintlify
Copy link
Copy Markdown
Contributor

mintlify Bot commented Apr 6, 2026

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
tracecat 🟢 Ready View Preview Apr 6, 2026, 4:22 PM

@zeropath-ai
Copy link
Copy Markdown

zeropath-ai Bot commented Apr 6, 2026

No security or compliance issues detected. Reviewed everything up to a3b9322.

Security Overview
Detected Code Changes

The diff is too large to display a summary of code changes.

@daryllimyt daryllimyt changed the base branch from main to graphite-base/2487 April 6, 2026 16:40
@daryllimyt daryllimyt changed the base branch from graphite-base/2487 to feat/skills-backend April 6, 2026 16:40
Copy link
Copy Markdown
Contributor Author

daryllimyt commented Apr 6, 2026

This stack of pull requests is managed by Graphite. Learn more about stacking.

@daryllimyt daryllimyt changed the title [codex] Add workspace skills support and studio feat(ui): build workspace skills studio Apr 6, 2026
@daryllimyt daryllimyt force-pushed the feat/skills-1 branch 3 times, most recently from 90bb2f1 to 8d72955 Compare April 6, 2026 18:17
@daryllimyt daryllimyt force-pushed the feat/skills-backend branch from 50bda51 to 6466336 Compare April 9, 2026 20:14
@daryllimyt daryllimyt marked this pull request as ready for review April 10, 2026 01:18
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

5 issues found across 28 files

Confidence score: 3/5

  • There is moderate merge risk because several high-confidence medium-severity issues are concrete and user-facing (render/update behavior, state lifecycle, and async error handling), rather than just style or cleanup concerns.
  • In frontend/src/components/ai-elements/markdown-with-frontmatter.tsx, the custom memo comparator only checks children, which can block expected re-renders when props like className or other Streamdown props change.
  • In frontend/src/components/skills/file-tree.tsx and frontend/src/components/skills/use-skills-studio.ts, calling setState during render and missing try/catch around restoreSkillVersion can cause unstable UI behavior and unhandled promise rejections without clear user feedback.
  • Pay close attention to frontend/src/components/ai-elements/markdown-with-frontmatter.tsx, frontend/src/components/skills/file-tree.tsx, frontend/src/components/skills/use-skills-studio.ts, and frontend/src/components/tiptap-templates/plain/plain-text-editor.tsx - reactivity/state-sync and error-path issues may surface as stale UI or failed actions.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="frontend/src/components/ai-elements/markdown-with-frontmatter.tsx">

<violation number="1" location="frontend/src/components/ai-elements/markdown-with-frontmatter.tsx:89">
P2: The custom `memo` comparator ignores all props except `children`, which can prevent updates when `className` or other `Streamdown` props change.</violation>
</file>

<file name="frontend/src/components/tiptap-templates/plain/plain-text-editor.tsx">

<violation number="1" location="frontend/src/components/tiptap-templates/plain/plain-text-editor.tsx:168">
P2: Word/character counters are computed from the prop value instead of current editor text, so counts can be stale while typing (especially when `onChange` is omitted or parent updates are delayed).</violation>
</file>

<file name="frontend/src/components/skills/file-tree.tsx">

<violation number="1" location="frontend/src/components/skills/file-tree.tsx:43">
P2: Avoid calling `setState` during render; move folder-expansion syncing to an effect keyed by `selectedPath`.</violation>
</file>

<file name="frontend/src/components/skills/use-skills-studio.ts">

<violation number="1" location="frontend/src/components/skills/use-skills-studio.ts:458">
P2: Toast message is misleading: `isEditablePath` accepts 15+ text extensions (`.md`, `.py`, `.txt`, `.js`, `.ts`, `.json`, `.yaml`, etc.), but the error tells users only `.md` and `.py` are allowed.</violation>

<violation number="2" location="frontend/src/components/skills/use-skills-studio.ts:581">
P2: Missing error handling: `handleRestore` does not wrap `restoreSkillVersion` in try/catch, unlike every other async handler in this hook. A failed restore will surface as an unhandled rejection with no user-facing feedback.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread frontend/src/components/ai-elements/markdown-with-frontmatter.tsx Outdated
Comment thread frontend/src/components/tiptap-templates/plain/plain-text-editor.tsx Outdated
Comment thread frontend/src/components/skills/file-tree.tsx Outdated
Comment thread frontend/src/components/skills/use-skills-studio.ts Outdated
Comment thread frontend/src/components/skills/use-skills-studio.ts Outdated
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fc63493d51

ℹ️ 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".

Comment thread frontend/src/components/skills/use-skills-studio.ts Outdated
Comment thread frontend/src/components/agents/agent-presets-builder.tsx
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 87c04ee55b

ℹ️ 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".

Comment thread frontend/src/components/skills/create-skill-dialog.tsx Outdated
Comment thread frontend/src/components/skills/use-skills-studio.ts Outdated
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0c9821ff47

ℹ️ 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".

Comment thread frontend/src/lib/skills-studio.tsx
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c061132856

ℹ️ 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".

Comment thread frontend/src/components/skills/working-copy-bar.tsx
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5b99f69c72

ℹ️ 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".

Comment thread frontend/src/components/skills/use-skills-studio.ts Outdated
Comment thread frontend/src/components/skills/use-skills-studio.ts
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3478aa8fc0

ℹ️ 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".

Comment thread frontend/src/lib/markdown-frontmatter.ts Outdated
Comment thread frontend/src/components/skills/use-skills-studio.ts Outdated
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b675463141

ℹ️ 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".

Comment thread frontend/src/lib/markdown-frontmatter.ts Outdated
Comment thread frontend/src/components/agents/agent-presets-builder.tsx Outdated
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 61dbb8a345

ℹ️ 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".

Comment thread frontend/src/components/skills/use-skills-studio.ts Outdated
Comment thread frontend/src/components/ai-elements/response.tsx
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bfadfb0faf

ℹ️ 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".

Comment thread frontend/src/components/sidebar/app-sidebar.tsx Outdated
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7f01d6931b

ℹ️ 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".

Comment thread tracecat/agent/skill/service.py Outdated
@daryllimyt daryllimyt temporarily deployed to internal-registry-ci April 23, 2026 16:50 — with GitHub Actions Inactive
@daryllimyt daryllimyt temporarily deployed to internal-registry-ci April 23, 2026 16:50 — with GitHub Actions Inactive
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 2 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="docker-compose.dev.yml">

<violation number="1" location="docker-compose.dev.yml:348">
P1: Avoid enabling `SYS_ADMIN` + `seccomp:unconfined` unconditionally on `agent-executor`; this removes key container isolation and materially increases host breakout risk.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread docker-compose.dev.yml Outdated
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: df11b643db

ℹ️ 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".

Comment thread tracecat/agent/skill/service.py
Comment thread frontend/src/components/skills/use-skills-studio.ts
@daryllimyt daryllimyt temporarily deployed to internal-registry-ci April 23, 2026 17:23 — with GitHub Actions Inactive
@daryllimyt daryllimyt temporarily deployed to internal-registry-ci April 23, 2026 17:23 — with GitHub Actions Inactive
@cubic-dev-ai
Copy link
Copy Markdown
Contributor

cubic-dev-ai Bot commented Apr 23, 2026

You're iterating quickly on this pull request. To help protect your rate limits, cubic has paused automatic reviews on new pushes for now—when you're ready for another review, comment @cubic-dev-ai review.

@daryllimyt daryllimyt temporarily deployed to internal-registry-ci April 23, 2026 17:31 — with GitHub Actions Inactive
@daryllimyt daryllimyt temporarily deployed to internal-registry-ci April 23, 2026 17:31 — with GitHub Actions Inactive
@daryllimyt
Copy link
Copy Markdown
Contributor Author

@cubic-dev-ai review

@cubic-dev-ai
Copy link
Copy Markdown
Contributor

cubic-dev-ai Bot commented Apr 23, 2026

@cubic-dev-ai review

@daryllimyt I have started the AI code review. It will take a few minutes to complete.

@daryllimyt daryllimyt merged commit 48efdf8 into main Apr 23, 2026
20 checks passed
@daryllimyt daryllimyt deleted the feat/skills-1 branch April 23, 2026 18:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant