Skip to content

feat(plane): add secure dispatch and multi-role decision workflow - #596

Merged
lefarcen merged 16 commits into
feat/looper-auto-flowchart-runtimefrom
feat/opend-1645-plane-looper-control
Jul 22, 2026
Merged

feat(plane): add secure dispatch and multi-role decision workflow#596
lefarcen merged 16 commits into
feat/looper-auto-flowchart-runtimefrom
feat/opend-1645-plane-looper-control

Conversation

@lefarcen

Copy link
Copy Markdown
Contributor

Summary

  • Add a self-service Plane connection flow for one owner-bound local Looper node.
  • Consume signed, session-fenced Plane dispatches and report queued, running, failed, waiting, review, and completion state back to Plane.
  • Route product, design, engineering, and QA questions to their owners; evaluate natural-language replies with the model, follow up when incomplete, and resume automatically after convergence.
  • Keep formal product specs as an explicit Plane document gate while making Feishu notification-only.

This is a stacked PR on #526. Its Plane server/UI counterpart is makeplane/plane#9459.

Testing

  • go test ./...
  • Additional targeted checks:
    • go test ./internal/planestrict ./internal/planner/... ./internal/runtime -count=1
    • strict signed request/reply client contract tests
    • model verdict parsing, exact question coverage, delegation, and formal product-spec guard tests
    • isolated Plane browser flow and cross-repository signed contract flow

A full go test ./... run completed except for one pre-existing timing-sensitive TestExecutorRefusedFallbackRebindSurfacesKilled failure; its immediate isolated rerun passed.

E2E / Invariant Risk

  • No Looper E2E / invariant risk
  • Daemon boot / config / runtime path risk
  • Worktree / repo isolation / lifecycle risk
  • GitHub CLI contract / auth / scope risk
  • Resolve-comments / PR thread mutation risk
  • Real sandbox GitHub behavior risk

Regression Policy

  • This is not a P0/P1 bug fix
  • This is a P0/P1 bug fix and includes a regression test that fails before the fix
  • Cross-component lifecycle / worktree / GitHub command / daemon / resolve-comments regression is covered by a contract/invariant integration scenario
  • Real GitHub auth / scope / thread mutation / rate-limit regression is covered by sandbox E2E

Regression Mapping

Reviewer Checklist

  • Tests validate user-visible invariants, not only implementation details
  • P0/P1 regression policy requirements above are satisfied

mrcfps and others added 16 commits July 21, 2026 10:56
* fix: make dashboard config vendor saves apply cleanly

Auto-stage companion model clears on vendor switches, stop mislabeling
those guards as restart-required, unlock same-revision 409s without
reload errors, and make unsaved Save changes affordances obvious.

* fix: suppress profile model when vendor switch would re-inherit global

Stage model:"" for profile vendor edits when the profile model equals the
post-patch global model so roles keep vendor default instead of the same
resolved model under RestartRequiredChanges.

Generated-By: looper 0.11.0 (runner=fixer, agent=grok-build)

* fix: clear inherited model companions on global vendor switch

Stage role/profile model suppress or unset when agent.vendor changes for
roles that inherit the global vendor, suppress model-less profile vendor
switches that would retain global model, and allow blank profile/role
model drafts to create explicit vendor-default suppress bindings.

Generated-By: looper 0.11.0 (runner=fixer, agent=grok-build)
@lefarcen
lefarcen merged commit e306b21 into feat/looper-auto-flowchart-runtime Jul 22, 2026
7 checks passed
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.

2 participants