feat(registry): chrysalis agent designer + catalog auto-install#285
Merged
toadkicker merged 5 commits intomainfrom Apr 14, 2026
Merged
feat(registry): chrysalis agent designer + catalog auto-install#285toadkicker merged 5 commits intomainfrom
toadkicker merged 5 commits intomainfrom
Conversation
- Add "Design Agent" nav link in Chrysalis sidebar under Registry section - Add "Design Agent" CTA button on the Agents page header - Complete Sign & Register flow in agent_designer.rs: replaces Phase 4 stub with spawn_local calling sign_advertisement → register_agent_json; fixes signed_by field (was empty, causing verification to always fail) - Add install_catalog_agents() server fn to api.rs: loads pap-agents catalog, generates deterministic Ed25519 keypair per agent (SHA-256 of name), signs and upserts all entries — fully idempotent reinstall - Add CatalogInstallResult struct with installed/skipped/errors/path - Add PAP Catalog Agents card to Settings page with install button and teal/red status feedback Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…catalog startup seeding Eliminates duplicated deterministic-key logic between install_catalog_agents() and startup seeding by adding to_signed_advertisement() on DynamicAgentDef. - crates/pap-agents/src/dynamic.rs: add to_signed_advertisement() — derives deterministic Ed25519 keypair from SHA-256(name), builds and signs an AgentAdvertisement; single source of truth for idempotent catalog installs - crates/pap-agents/Cargo.toml: add sha2 workspace dep - apps/registry/src/ui/api.rs: refactor install_catalog_agents() loop to use entry.to_signed_advertisement() — removes manual key derivation inline - apps/registry/src/main.rs: extend first-boot seeding block to load TOML catalog agents via PAP_CATALOG_PATH when set, using the same method - e2e/Dockerfile.ci-chrysalis: COPY catalog dir to runtime image + set PAP_CATALOG_PATH=/app/catalog so first-boot seeding finds the TOML files - e2e/tests/chrysalis-integration.spec.ts: add test group 7 covering /agents Design Agent CTA, /agents/design reachability, /settings Catalog Install card, and startup-seeded TOML catalog breadth (305 agents, 22/22 pass) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Benchmark Regression ReportThreshold: 10% regression vs baseline from main |
- Regenerate Cargo.lock to include sha2 in pap-agents dependency list
(sha2 = { workspace = true } was added to pap-agents/Cargo.toml in the
previous commit but the lockfile was not updated)
- Ignore RUSTSEC-2026-0097 (rand unsound with custom logger): PAP does
not use custom loggers that invoke rand::rng(); no patched rand release
available; tracked for upgrade separately
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…-local cargo run compiles a different binary than cargo test (no test harness), so pap-registry must recompile in the registry-local step on cold/stale Rust caches (e.g. after Cargo.lock changes). Moving the build before the 120s health-check loop ensures the timer measures only server startup, not compilation. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Revert the over-broad cargo generate-lockfile that bumped ~30 transitive dependencies (including rand, tokio, rayon) and caused benchmark regressions. Instead, apply only the necessary change: add "sha2" to pap-agents' dependency list in Cargo.lock, matching the sha2 workspace dep added to pap-agents/Cargo.toml. All other package versions stay pinned to the baseline used when the benchmark regression gate was calibrated. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test plan
🤖 Generated with Claude Code