Skip to content

Batch 19: Skills framework - #35

Merged
sixvolts merged 1 commit into
mainfrom
ci/fix-19-skills
Sep 28, 2026
Merged

sixvolts merged 1 commit into
mainfrom
ci/fix-19-skills

Conversation

@sixvolts

@sixvolts sixvolts commented Sep 28, 2026 •

Copy link
Copy Markdown
Owner

Stacked on ci/fix-18-platform (PR 14 of 16 precedes it). Merge with "Create a merge commit" (squash or rebase would re-mint untested commits), one PR at a time, bottom-up. GitHub retargets this PR when the one below it merges and its branch is deleted.

fix(skills): admit only the previewed package, cap request bodies, keep authored skills and base.md upgrades

  • Import confirm carries the previewed package digest and is refused if
    the package changed; the panel sends it.
  • Skill endpoints cap request bodies (imports 22MB, others 512KB).
  • The personal skill import endpoint is removed (no UI used it); users
    author skills, admins import.
  • New skill refuses a name already in use (409).
  • Creates and imports of one name are serialized; Save and Approve are
    disabled while in flight; re-import only self-heals a real not-found.
  • A shard can't bind two skills of one name; existing pairs serve the
    owner's.
  • Saving the system prompt unchanged doesn't create an override; both
    settings are written in one transaction.
  • Shard skill prompt blocks are capped like chat, keeping built-ins.
  • Weather forecasts use the location's dates; the weather cache is
    bounded.
  • Skill catalog and chat toggle fixes in the panel.

Breaking: scripted imports must send the preview's digest.

Tests cover each change.

Testing

The icecube tiers passed on this PR's tree before a migration-lock commit was added under the stack, as the first commit of #21: Go tests without and with Postgres, Playwright without a model, and Playwright against a local model. That commit changes only internal/db/migrate.go and its test, and the db package's tests pass with Postgres at every commit of the stack. The CI run on this PR tests the head as pushed.

🤖 Generated with Claude Code

https://claude.ai/code/session_01UwpkZbULrgj6JLeSra78AT

…ep authored skills and base.md upgrades

- Import confirm carries the previewed package digest and is refused if
  the package changed; the panel sends it.
- Skill endpoints cap request bodies (imports 22MB, others 512KB).
- The personal skill import endpoint is removed (no UI used it); users
  author skills, admins import.
- New skill refuses a name already in use (409).
- Creates and imports of one name are serialized; Save and Approve are
  disabled while in flight; re-import only self-heals a real not-found.
- A shard can't bind two skills of one name; existing pairs serve the
  owner's.
- Saving the system prompt unchanged doesn't create an override; both
  settings are written in one transaction.
- Shard skill prompt blocks are capped like chat, keeping built-ins.
- Weather forecasts use the location's dates; the weather cache is
  bounded.
- Skill catalog and chat toggle fixes in the panel.

Breaking: scripted imports must send the preview's digest.

Tests cover each change.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UwpkZbULrgj6JLeSra78AT
Base automatically changed from ci/fix-18-platform to main September 28, 2026 16:05
@sixvolts
sixvolts merged commit 54004d4 into main Sep 28, 2026
1 check passed
@sixvolts
sixvolts deleted the ci/fix-19-skills branch September 28, 2026 16:06
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