Skip to content

feat(org): Phase 3 in-host Governance UI - #60

Merged
XYAIStudio merged 1 commit into
mainfrom
cursor/org-governance-phase3-02d2
Sep 19, 2026
Merged

XYAIStudio merged 1 commit into
mainfrom
cursor/org-governance-phase3-02d2

Conversation

@XYAIStudio

Copy link
Copy Markdown
Owner

Summary

Phase 3 vertical slice: Governance UI as an in-host Organization sub-UI, using the same org-ui dual-delivery seam as Announcements (#57), Org chart (#58), and Employees (#59).

  • Shared page: dashboard/src/org-ui/pages/governance (GovernancePage)
  • Dashboard route: /organization/governance (workbench path tab + entry card)
  • Host APIs: existing POST /api/org-module/governance/check|resolve and GET /audit; this slice adds GET /api/org-module/governance/pauses so the pending list is not sidecar-only
  • Resolve stays require_permission("plugins") (admin bypass); the page hides approve/reject for non-admins
  • freeos org export-standalone now lists governance and imports the same GovernancePage

No sidecar, no iframe, no second login wall. The PEP/PDP engine is not rewritten.

Data model (host SoT)

Surface Store API
Durable pauses {FREEOS_HOME}/governance/pauses/<id>.json GET /api/org-module/governance/pauses · POST …/resolve
Local audit {FREEOS_HOME}/governance/audit.jsonl GET /api/org-module/governance/audit
Policy check same store POST /api/org-module/governance/check (unchanged)

openXYOS sidecar /api/governance (permission matrix, comm rules, process templates) is reference-only. Default path does not start or call :3780.

Deferrals (out of this PR)

  • Chat / start conversation from governance
  • Sidecar permission matrix / communication rules / process-template CRUD
  • IM /approve wiring
  • Skills, Agents, Tasks, Knowledge, Reflections, Settings
  • Full export-standalone Vite/Node packaging (Phase 5)

Test plan

  • uv run pytest tests/unit/test_org_governance.py tests/unit/cli/test_org_export_standalone.py tests/unit/test_org_chart.py tests/unit/test_org_announcements.py (23 passed)
  • uv run ruff check + uv run mypy --strict on changed org/governance modules
  • cd dashboard && npx tsc --noEmit
  • cd dashboard && npx vitest run src/org-ui src/pages/Organization src/routes/controlAdminPath.test.ts (64 passed)
  • make all (full ship bar; run in CI)

Live browser walkthrough of /organization/governance was not run here (no signed-in FreeOS host in this environment). Component tests cover list/approve without iframe.

Open in Web Open in Cursor 

Surface pending approvals, host audit, and resolve actions as a
shell-agnostic org-ui page at /organization/governance. Wire to the
existing PEP/PDP; add GET /governance/pauses so the list is not
sidecar-only.

Co-authored-by: XYAI Labs <haoboy8@gmail.com>
@XYAIStudio
XYAIStudio marked this pull request as ready for review September 19, 2026 03:26
@XYAIStudio
XYAIStudio merged commit 96eb23e into main Sep 19, 2026
4 checks passed
@XYAIStudio
XYAIStudio deleted the cursor/org-governance-phase3-02d2 branch September 19, 2026 03:26
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