Skip to content

fix(capabilities): remove consolidated uFlow/uKnowledge repo requirements - #40

Merged
fredporter merged 3 commits into
mainfrom
fix/capability-requirements-uflow-uknowledge
Sep 16, 2026
Merged

fredporter merged 3 commits into
mainfrom
fix/capability-requirements-uflow-uknowledge

Conversation

@fredporter

Copy link
Copy Markdown
Owner

Summary

  • Rectify stale capability requirements that required uFlow and uKnowledge as separate external repositories under ~/Code.
  • uFlow and uKnowledge were merged into uCore on 2026-09-12 (under backend/app/flow and backend/app/knowledge) and their extensions (uflow and uknowledge) are loaded internally by uCore.
  • Update config/capability_requirements.json for:
    • workflow.run: remove repos: ["uFlow"], keeping extension uflow and tool git.
    • knowledge.search: remove repos: ["uKnowledge"], keeping extension uknowledge.
    • developer.guided: remove uFlow and uKnowledge from repos list, retaining ["uCore", "uCode"].
  • Add comprehensive integration tests in backend/tests/test_capabilities_preflight.py verifying 200/ready responses for both single preflight endpoints and batch readiness snapshots.

Verification

  • Preflight endpoints verified live on port 8484:
    • GET /api/capabilities/workflow.run/preflight -> {"ready": true, "repair_required": false, "repair": []}
    • GET /api/capabilities/knowledge.search/preflight -> {"ready": true, "repair_required": false, "repair": []}
    • GET /api/capabilities/developer.guided/preflight -> {"ready": true, "repair_required": false, "repair": []}
  • All governance scripts pass:
    • python3 scripts/check_home_path_policy.py
    • python3 scripts/validate_capability_requirements.py
    • bash scripts/validate_planning_governance.sh
    • python3 scripts/validate_docs_nonregression.py
    • PYTHONPATH=backend python3 scripts/check_documentation_route_contract.py
    • python3 scripts/validate_extension_manifests.py
    • python3 scripts/audit_duplicate_routes.py
    • python3 scripts/validate_legacy_settings_cleanup.py
  • All 5 tests in backend/tests/test_capabilities_preflight.py passed.
  • Frontend type-check and 108 vitest tests passed.
  • Production build succeeded.

…quirements

uFlow and uKnowledge are consolidated internal subsystems of uCore (under
app.flow and app.knowledge) rather than standalone git checkouts under ~/Code.
Remove legacy repo requirements for workflow.run, knowledge.search, and
developer.guided, and add preflight/readiness integration tests.
Copilot AI lite review requested due to automatic review settings September 16, 2026 23:41

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Tests do not deterministically verify the requirement changes, and existing user-level overrides are not migrated.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Updates capability requirements after consolidating uFlow and uKnowledge into uCore, with added preflight integration tests.

Changes:

  • Removes obsolete repository requirements.
  • Adds capability readiness and preflight tests.
File summaries
File Summary
config/capability_requirements.json Removes stale uFlow/uKnowledge repository dependencies.
backend/tests/test_capabilities_preflight.py Adds preflight and batch readiness tests.
Review details

Suppressed comments (2)

backend/tests/test_capabilities_preflight.py:54

  • This test is not deterministic in the repository's backend CI environment: developer.guided still requires the uCode repo, but CI sets UDOS_ROOT to the workspace parent while checking out uCode at external/uCode, so _evaluate_capability checks for <workspace-parent>/uCode and returns a missing-repo repair. Provision the required repo paths in the fixture or update the backend job layout before asserting ready here.
        assert data["capability"] == "knowledge.search"
        assert data["ready"] is True
        assert data["repair_required"] is False
        assert data["repair"] == []

    async def test_developer_guided_preflight_excludes_uflow_and_uknowledge(self):
        resp = await self.client.get("/api/capabilities/developer.guided/preflight")
        data = await resp.json()

config/capability_requirements.json:5

  • This changes only the repository fallback file, but _load_capability_requirements() prefers settings.config_dir / "capability_requirements.json" whenever that user-level override exists (backend/app/api/extensions_api.py:35-46). Existing installations with the stale copied requirements file will therefore continue to report missing uFlow/uKnowledge repositories, so the stated fix does not propagate to the deployment path used by those installations. Add an explicit config migration/update or otherwise define how existing overrides are refreshed.
    "repos": [],
  • Files reviewed: 2/2 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread backend/tests/test_capabilities_preflight.py
@fredporter
fredporter merged commit ad31f80 into main Sep 16, 2026
3 checks passed
@fredporter
fredporter deleted the fix/capability-requirements-uflow-uknowledge branch September 16, 2026 23:47
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