1. 27 Sep, 2026 1 commit
    • Vũ Hoàng Anh's avatar
      feat(plane-project-os): integrate Plane multi-layout views, sprint cycles... · 5ed41f55
      Vũ Hoàng Anh authored
      feat(plane-project-os): integrate Plane multi-layout views, sprint cycles engine, triage intake, pure monochrome SVGs, and LangGraph supervisor multi-agent runtime
      
      - Implemented Plane Multi-Layout Views: Kanban Board (4 columns), Dense List View (Linear style), Spreadsheet Grid View with inline quick edits, and 14-day Timeline Gantt view with 7 agent swimlanes.
      - Built Plane Cycles Engine: sprint management (Cycle 102/103), dynamic burn-down calculations, story points tracking, and automated settlement on Founder Gate approval.
      - Built Plane Triage Intake Gate: 1-click triage accept, reject with reason, and technical station assignment for founder briefs and swarm subtasks.
      - Purged all legacy unicode glyphs and color noise across OrgChartView, replacing with 6 bespoke technical vector SVGs and pure monochrome tokens.
      - Integrated LangGraph Supervisor Multi-Agent Engine: 5 specialized sub-graphs (PM Spec, Architect, Coder Sandbox, QA Security, Deliverables) with native HITL interrupt/resume and compaction checkpoints.
      - Generated and verified 4 enterprise deliverables (Excel XLSX with SUMIFS, Word DOCX A4 spec, PowerPoint PPTX 16:9, PostgreSQL ACID migration SQL).
      - Verified with 12/12 Playwright Plane E2E tests, 20/20 OrgChart tests, 17/17 Bun unit tests, and 0 TypeScript compilation errors.
      5ed41f55
  2. 28 Aug, 2026 2 commits
    • Vũ Hoàng Anh's avatar
      feat(memory-service): implement Paperclip Document Revisions, Diff Viewer, and... · 29f8ac7a
      Vũ Hoàng Anh authored
      feat(memory-service): implement Paperclip Document Revisions, Diff Viewer, and Collaborative Annotation Threads
      
      - Added database models and repositories for DocumentRevision, DocumentAnnotationThread, DocumentAnnotationComment.
      - Added REST APIs for document revisions (/api/documents/{id}/revisions) and annotations (/api/documents/{id}/annotations, /api/annotations/{id}/resolve).
      - Built GitHub-style Split-View Diff Viewer (LCS dynamic line diff algorithm) with Transitions.dev spring motion.
      - Added inline text annotation bubbles and multi-agent Slide-over Discussion Drawer in Memory Hub.
      - Integrated automated cross-agent review workflow (Architect PRD critique -> PM resolution -> Coder/QA notification).
      - Verified with 810/810 passing tests (544 Pytest + 266 Bun frontend/E2E) and clean Vite build.
      29f8ac7a
    • Vũ Hoàng Anh's avatar
      feat(ai-company): complete AI Company OS with Company HQ Dashboard, Dynamic... · ff3c9110
      Vũ Hoàng Anh authored
      feat(ai-company): complete AI Company OS with Company HQ Dashboard, Dynamic Agent Hiring, and AI Company Auditor Matrix
      
      - Implemented 5-layer Python FastAPI backend with SQLite WAL mode and real-time SSE streaming.
      - Built Pure Dark Mode Monochrome (#09090b) Company HQ Dashboard with Transitions.dev spring motion.
      - Added Live Org Chart Tree, Deliverables Kanban with Founder Gate, Scoped Memory Hub, and Token Budget tracker.
      - Built AI Company Auditor with 5-dimension scoring matrix (Grade A+ / 96 pts) and Scorecard Badge.
      - Integrated Dynamic Agent Hiring Flow & On-Demand Org Growth based on Paperclip Core.
      - Added 722+ comprehensive automated test cases with 100% pass rate.
      ff3c9110
  3. 27 Aug, 2026 1 commit
  4. 25 Aug, 2026 2 commits
  5. 24 Aug, 2026 3 commits
  6. 09 Jun, 2026 1 commit
  7. 08 Jun, 2026 1 commit
  8. 04 Jun, 2026 2 commits
  9. 01 Jun, 2026 6 commits
    • Admin's avatar
      docs: move 04_audit_fixes to plan/done — all gates verified · 1145df18
      Admin authored
      All 6 completion criteria confirmed:
      - grep canifa (source .py) = 0
      - blueprint_id wired into POST /pipelines/run
      - reports_to validator active
      - 2-company DB constraint OK
      - 5/5 blueprint E2E tests pass
      - frontend build 0 errors
      Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
      1145df18
    • Admin's avatar
      feat: platform generalization — Company Blueprint system (Paperclip OS) · 406a39cf
      Admin authored
      Transforms Canifa-specific codebase into a generic AI Company platform
      that can instantiate any business type from a YAML Company Blueprint.
      
      Core additions:
      - backend/schemas/blueprint.py: CompanyBlueprint, BlueprintRole,
        BlueprintPipelineNode, BlueprintSummary Pydantic models with
        reports_to cross-validation via @model_validator(mode='after')
      - backend/services/blueprint_service.py: load/list/validate blueprints,
        deploy_company_from_blueprint() with 2-pass agent seeding for FK safety
      - backend/blueprints/: 4 YAML blueprints (fashion-retail, software-studio,
        ecommerce-brand, marketing-agency) with roles, pipeline DAGs, nocobase_collections
      - backend/tests/test_blueprint_e2e.py: 5 E2E tests — all pass
      
      API changes:
      - GET /companies/blueprints → List[BlueprintSummary] (with role_count)
      - GET /companies/blueprints/{name} → full blueprint detail
      - POST /companies/from-blueprint → deploy company from blueprint
      - POST /pipelines/run accepts blueprint_id to drive orchestrator DAG
      
      Orchestrator:
      - ProjectOrchestrator now accepts pipeline_spec: list[dict] | None
      - topological_sort_stages() (Kahn's BFS) derives parallel stages from blueprint DAG
      - Falls back to PIPELINE_STAGES if no spec provided
      
      De-branded:
      - Removed all "Canifa" strings from models/services/api/tasks source files
      - run_logs.py demo data → generic "Demo Brand/Server/Landing Page"
      - agents.py demo HTML → "Demo Company"
      - seed_db.py → uses deploy_company_from_blueprint("fashion-retail")
      
      NocoBase:
      - NocoBaseConnector: params-based init + from_company() classmethod
      - company_secrets: UniqueConstraint('company_id', 'key') instead of global unique
      
      Frontend:
      - OnboardingWizard: blueprint picker with org-chart preview + DAG layer render
      - blueprints.ts API client
      - Companies.tsx: blueprint badge on company cards
      Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
      406a39cf
    • Admin's avatar
    • Admin's avatar
    • Admin's avatar
    • Admin's avatar
  10. 30 May, 2026 1 commit
  11. 29 May, 2026 1 commit
  12. 28 May, 2026 4 commits
  13. 26 May, 2026 5 commits
    • Admin's avatar
    • Admin's avatar
      feat: add agent log viewer, SSE streaming, and L1 sandbox · 71aa8270
      Admin authored
      - services/agent_log_writer.py: Writes ExecutionRunLog rows via AIAgent
        callbacks (tool_start, tool_complete, step, status). Errors swallowed
        to never block agent execution.
      
      - services/workspace_manager.py: Creates isolated workspace directories
        per agent run (workspaces/{company_id}/{run_id}/) with src/,
        .agent_output/, README.md structure.
      
      - services/path_security.py: Path validation to prevent directory
        traversal, blocks dangerous paths (C:\Windows, /etc, .env, .git).
      
      - api/routes/run_logs.py: Added company-scoped runs_router with:
        GET /companies/{id}/runs/{runId} — run detail with all logs
        GET /companies/{id}/runs/{runId}/stream — SSE real-time log stream
      
      - api/routes/agents.py: run_agent_in_background now creates workspace,
        instantiates AgentLogWriter, passes callbacks to AIAgent, and cleans
        up workspace in finally block.
      
      - tests/test_agent_flow.py: Updated to mock WorkspaceManager and
        AgentLogWriter, relaxed AIAgent assertion to check core kwargs only.
      
      All 3 tests pass. Dashboard verified 0 JS errors via Playwright.
      71aa8270
    • Admin's avatar
      fix: activity endpoint returns flat array instead of paginated object · 5bed3e6c
      Admin authored
      Frontend calls (g ?? []).slice(0,10) on activity data, which crashes
      when API returns {total, offset, limit, items} instead of ActivityEvent[].
      Changed response_model from PaginatedResponse to List[ActivityLogResponse].
      Also fixed .mcp.json Playwright package name.
      
      Verified via Playwright MCP: 0 console errors on dashboard.
      5bed3e6c
    • Admin's avatar
      fix: sync/async boundary fixes, closure bug, missing deps, runtime imports · b5c29abf
      Admin authored
      - Fix run_conversation sync/async boundary in 5 files:
        - run_agent.py main(): use _run_conversation_sync
        - batch_runner.py: use _run_conversation_sync
        - background_review.py: use _run_conversation_sync
        - curator.py: use _run_conversation_sync
        - acp_adapter/server.py: use _run_conversation_sync
      - Fix classic Python closure late-binding bug in get_tools.py
        (is_async captured by reference, not value)
      - Add missing deps to requirements.txt: openai, langchain-core, pyyaml, fire
      - Fix missing HTTPException import in environment_config.py
      - Fix missing List import in org_chart_svg.py
      b5c29abf
    • Admin's avatar
  14. 25 May, 2026 4 commits
  15. 23 May, 2026 3 commits
  16. 21 May, 2026 3 commits