Commit 358ae42
feat: combine 17 open PRs (cluster, supply-chain, workflows, plugins, messaging, mcp, exploration + more) onto current main (#740)
## Summary
Combines **all 17 open PRs by @arielshad** (everything in the open list
**except #731**, as requested) into a single branch, rebased onto
**current `main` (v1.210.0)** with conflicts resolved.
These PRs forked from an **old main (Mar–Apr)**; the repo history was
later rewritten and `main` advanced ~3 months. Each PR's real commits
were replayed onto current `main` via 3‑way rebase (reconstructed exact
fork points), conflicts resolved, then assembled here. Where `main` had
already implemented a PR's feature differently, **main's version was
kept** and only genuinely net‑new functionality was integrated (per
agreed strategy).
**Local verification:** `pnpm typecheck` ✓ (0 errors) · `pnpm lint`
(changed files) ✓ · `pnpm build` ✓ · adopt‑branch unit+integration tests
✓. Full unit/int suite run is in progress as follow‑up.
## PRs integrated
| PR | Feature | Verdict |
|----|---------|---------|
| #566 | Cluster entity + agent + CLI + web UI (k8s) | NET‑NEW |
| #527 | Policy‑driven supply‑chain security | NET‑NEW (renamed
`SecurityPolicy`→`SupplyChainSecurityPolicy` to avoid ASPM clash) |
| #441 | Scheduled workflows engine | NET‑NEW (renamed to `Scheduled*` /
`scheduled-workflows/` to avoid main's workflow‑steps clash) |
| #555 | Pluggable AI tool system (MCP lifecycle) | NET‑NEW |
| #512 | Messaging remote control | NET‑NEW |
| #513 | Prototype exploration mode | PARTIAL — mapped onto main's
existing `BuildMode` (added `Exploration`); dropped the obsolete
`fast`→enum migration |
| #469 | MCP server for AI agent integration | NET‑NEW |
| #367 | Per‑repo webhook enable/disable | NET‑NEW (token renamed
`IWebhookService`→`IGitHubWebhookService` to avoid clash) |
| #538 | Feature reparenting + auto‑rebase | NET‑NEW (adapted onto
main's evolved graph‑state) |
| #430 + #434 | `--remote` flag + auto‑fork | PARTIAL — main already had
fork fields/import use case; kept main's, added the net‑new bits |
| #417 | AgentRun + spec init on adopted branches | NET‑NEW (refactored
to inject `ISettingsProvider` for clean‑arch) |
| #384 | Agent‑based dev‑environment analysis | PARTIAL — kept main's
deploy use cases; added agent ports/services (see note) |
| #470 | Evidence image lightbox | NET‑NEW |
| #443 | File‑tree merge‑review diff | NET‑NEW |
| #409 | `repo init-remote` command | SUPERSEDED — main already has it;
kept specs, dropped a stale test |
| #399 | Restore deploy state across drawer cycles | SUPERSEDED — main's
store‑based deploy architecture already solves it; specs only |
## Integration notes
- **Migrations** renumbered to a unique, sequential `120–134` range
(above main's `119`); loader globs by filename so no index changes
needed.
- **TypeSpec** `generated/output.ts` regenerated authoritatively from
the merged `tsp/` sources (`pnpm tsp:compile`).
- **New deps:** `@modelcontextprotocol/sdk`, `@types/which`, `ws`,
`cloudflared`.
- **Feature flags** added: `clusters`, `supplyChainSecurity`,
`scheduledWorkflows` (wired through
tsp/mapper/repo/defaults/feature‑flags/sidebar/settings + all 9
locales).
## Follow‑ups (called out honestly)
- **#384**: `AgentDeploymentService`/`DevEnvironmentAgentService` are
registered but not yet wired to a consumer — main's deploy flows use
their own use cases. Main's `DeploymentService.start()` doesn't accept a
command override, so the agent‑analyzed command is currently logged
rather than passed; wiring an explicit override is a follow‑up.
- Full unit/integration/e2e suite still to be run end‑to‑end;
web/Storybook build not yet exercised.
🐑 Combined and reconciled with Shep.
https://claude.ai/code/session_01TzQM4PuyfCbUi5dSNezXPE
---
_Generated by [Claude
Code](https://claude.ai/code/session_01TzQM4PuyfCbUi5dSNezXPE)_
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Shep Bot <shep-agent@users.noreply.github.com>1 parent c9667e1 commit 358ae42
902 files changed
Lines changed: 93249 additions & 580 deletions
File tree
- .github/workflows
- .storybook
- mocks/app/actions
- apis/json-schema
- docs
- development
- superpowers
- plans
- specs
- packages
- core
- src
- application
- ports/output
- agents
- repositories
- services
- use-cases
- agents
- clusters
- features
- create
- promote
- messaging
- plugins
- scheduled-workflows
- templates
- security
- tools
- domain
- errors
- factories
- generated
- infrastructure
- di
- modules
- errors
- persistence/sqlite
- mappers
- migrations
- repositories
- services
- agents
- cluster-agent
- nodes
- common/executors
- feature-agent
- nodes
- prompts
- argocd
- deployment
- docker
- external
- git
- k3d
- kubectl
- mcp
- tools
- messaging
- notifications
- plugin
- security
- spec
- tool-installer
- tools
- tunnel
- webhook
- workflow-scheduler
- electron
- specs
- 068-agent-dev-environment-93a417
- evidence
- 069-drawer-deploy-state
- evidence
- 069-github-remote-init
- evidence
- 071-adopted-branch-agent-runs
- evidence
- 072-remote-repo-support
- 073-auto-fork-support
- contracts
- 073-file-tree-diff-view
- evidence
- 073-scheduled-workflows
- evidence
- 077-evidence-image-lightbox
- evidence
- 077-mcp-server
- evidence
- 082-messaging-remote-control
- evidence
- 082-prototype-exploration-mode
- evidence
- 083-supply-chain-security
- evidence
- 084-feature-dependency-rebase
- evidence
- 089-ai-tool-plugin-system
- evidence
- 090-cluster-agent
- evidence
- src/presentation
- cli
- commands
- cluster
- feat
- plugin
- repo
- settings
- workflow
- web
- app
- (dashboard)
- @drawer
- adopt
- create
- actions
- api
- clusters
- [id]
- destroy
- link
- provision
- status
- webhooks
- deliveries
- github
- repos
- disable
- enable
- status
- status
- clusters
- plugins
- webhooks
- workflows
- components
- common
- action-button
- cluster-node
- control-center-drawer
- evidence-lightbox
- feature-create-drawer
- feature-drawer-tabs
- feature-node
- github-import-dialog
- merge-review
- plugin-catalog
- plugin-list
- repository-node
- task-progress-view
- features
- clusters
- control-center
- features-canvas
- settings
- tools
- webhooks
- workflows
- layouts/app-sidebar
- ui
- hooks
- lib
- tests
- e2e/web
- integration
- application/use-cases/features
- features
- infrastructure
- persistence/sqlite
- repositories
- services
- agents/graph-state-transitions
- git/merge-step-real-git
- mcp
- unit
- application
- ports/output/services
- use-cases
- agents
- clusters
- code-review
- features
- messaging
- plugins
- repositories
- security
- settings
- workflows
- commands
- plugin
- domain
- entities
- enums
- errors
- factories
- generated
- infrastructure
- errors
- persistence/sqlite/mappers
- services
- agents
- cluster-agent
- nodes
- executors
- feature-agent
- nodes
- prompts
- langgraph
- nodes
- argocd
- deployment
- docker
- external
- git
- interactive
- k3d
- kubectl
- mcp
- tools
- messaging
- notifications
- plugin
- pr-sync
- security
- spec
- tunnel
- webhook
- workflow-scheduler
- presentation
- cli/commands
- cluster
- feat
- workflow
- tui/wizards
- web
- actions
- features
- app
- actions
- dashboard/drawer/create
- components
- common
- add-repository-button
- control-center-drawer
- evidence-lightbox
- feature-create-drawer
- merge-review
- features
- control-center
- settings
- features/control-center
- layouts
- lib
- use-cases/features
- translations
- ar
- de
- en
- es
- fr
- he
- pt
- ru
- uk
- tsp
- common/enums
- domain/entities
- types
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
11 | | - | |
12 | | - | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| |||
308 | 308 | | |
309 | 309 | | |
310 | 310 | | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
311 | 339 | | |
312 | 340 | | |
313 | 341 | | |
| |||
364 | 392 | | |
365 | 393 | | |
366 | 394 | | |
| 395 | + | |
367 | 396 | | |
368 | 397 | | |
369 | 398 | | |
| |||
455 | 484 | | |
456 | 485 | | |
457 | 486 | | |
| 487 | + | |
458 | 488 | | |
459 | 489 | | |
460 | 490 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
104 | 104 | | |
105 | 105 | | |
106 | 106 | | |
107 | | - | |
| 107 | + | |
| 108 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
3 | 4 | | |
| 5 | + | |
4 | 6 | | |
5 | 7 | | |
6 | 8 | | |
| |||
14 | 16 | | |
15 | 17 | | |
16 | 18 | | |
17 | | - | |
18 | | - | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
3 | 11 | | |
4 | 12 | | |
5 | 13 | | |
| |||
10 | 18 | | |
11 | 19 | | |
12 | 20 | | |
| 21 | + | |
13 | 22 | | |
14 | 23 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
0 commit comments