Skip to content

feat(org): Phase 3 in-host Org chart (org-ui + Dashboard + export list) - #58

Merged
XYAIStudio merged 1 commit into
mainfrom
cursor/org-chart-phase3-dc14
Sep 19, 2026
Merged

XYAIStudio merged 1 commit into
mainfrom
cursor/org-chart-phase3-dc14

Conversation

@XYAIStudio

Copy link
Copy Markdown
Owner

Summary

Phase 3 vertical slice for Organization UI: Org chart as an in-host Organization sub-UI, same dual-delivery seam as Phase 2 Announcements (#57). Organization module / host is the source of truth. No iframe, no second port, no sidecar required.

  • Backend: /api/org-module/org (tree, departments, employees) matching the openXYOS /api/org envelope { success, data } where practical. Persists to {FREEOS_HOME}/org/org_chart.sqlite. Auth is existing FreeOS JWT (current_user); create/update/delete require admin. Read is available to any signed-in user.
  • Frontend: Shell-agnostic dashboard/src/org-ui (OrgChartPage + createOrgApiClient().org). Dashboard adapter at /organization/org with a workbench path tab and entry card beside Announcements.
  • Export skeleton: freeos org export-standalone --out … now lists both Announcements and Org chart and imports the same OrgChartPage. Full Vite + Node packaging remains a Phase 5 TODO.

Acceptance (same A–E bar as Phase 2)

# Criterion How
A Route under /organization/... /organization/org
B No iframe / second port In-host API + native page; sidecar optional
C Same page for export dashboard/src/org-ui + CLI scaffold imports OrgChartPage
D Logged-in FreeOS user can use the chart Host JWT; admin CRUD; no sidecar login wall
E Chat runtime untouched No openXYOS Chat; no agent runtime changes

Deferred (not in this PR)

  • Chat / starting a conversation from the chart (conversation stays FreeOS/Octop)
  • Employees directory page (/employees); lifecycle / spawn already on the host
  • Reporting lines, position levels, skill bindings, org versions
  • File import and PNG/SVG/PDF export (html-to-image / jsPDF)
  • Avatar upload and preset images
  • Remaining Open-12 pages (workspace expansion, skills catalog UI, agents, tasks, knowledge, reflections, governance UI, settings)
  • IdentityBridge local-JWT wiring for a real standalone server
  • Full export-standalone Vite + Node packaging (Phase 5)
  • Commercial App.tsx routes
  • Extracting packages/org-ui

Verification

  • uv run pytest tests/unit/test_org_chart.py tests/unit/test_org_announcements.py tests/unit/cli/test_org_export_standalone.py tests/unit/i18n/test_catalog.py green
  • cd dashboard && npx tsc --noEmit green
  • Dashboard vitest: src/org-ui, Organization page, controlAdminPath green
  • Browser E2E against a running host was not available in this environment; the page is covered by component tests (no iframe) plus API tests for tree/CRUD
Open in Web Open in Cursor 

Add host org tree CRUD and a shared OrgChartPage mounted at
/organization/org, following the Phase 2 Announcements dual-delivery seam.

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