UAT: fs-directory built-in type missing fs-mount in parent_types — spec requires it as an allowed parent #2992

Open
opened 2026-04-05 03:19:51 +00:00 by freemo · 2 comments
Owner

Metadata

  • Branch: fix/resource-registry-fs-directory-parent-types-fs-mount
  • Commit Message: fix(resource): add fs-mount to fs-directory parent_types in _resource_registry_data.py
  • Milestone: v3.7.0
  • Parent Epic: #398

Bug Report

Feature Area: Resource Types & Inheritance — Parent/Child Type Relationships
Severity: Medium
Found by: UAT Testing (Resource Types & Inheritance)

What was tested

The parent_types list of the fs-directory built-in resource type definition in _resource_registry_data.py.

Expected behavior (from spec)

Per docs/specification.md line 23733:

fs-directory | yes | copy_on_write | git-checkout (0..1, optional), fs-mount (0..1, optional), fs-directory (0..1, optional) | ...

Per docs/reference/resource_types_builtin.md line 80:

Parent types: git-checkout, fs-directory, fs-mount

The fs-directory type must allow fs-mount as a parent, because an fs-mount resource auto-discovers a root fs-directory child.

Actual behavior (from code analysis)

The fs-directory type definition in src/cleveragents/application/services/_resource_registry_data.py (lines 113-154) has:

"parent_types": ["git-checkout", "fs-directory"],

fs-mount is missing from this list. The complete list should be:

"parent_types": ["git-checkout", "fs-mount", "fs-directory"],

Impact

When fs-mount is registered (see issue #2911) and auto-discovers its root fs-directory child, the DAG link validation will reject the fs-mount → fs-directory parent-child relationship because fs-mount is not in fs-directory's parent_types. This means:

  1. fs-mount cannot have fs-directory children in the DAG
  2. agents resource link-child local/my-mount local/root-dir will fail with a validation error
  3. Auto-discovery for fs-mount resources will fail to create the required root fs-directory child

Code location

  • src/cleveragents/application/services/_resource_registry_data.pyfs-directory type definition, parent_types field (line 128)

Fix

Change line 128 from:

"parent_types": ["git-checkout", "fs-directory"],

to:

"parent_types": ["git-checkout", "fs-mount", "fs-directory"],

Subtasks

  • Locate the fs-directory type definition in src/cleveragents/application/services/_resource_registry_data.py
  • Add "fs-mount" to the parent_types list for fs-directory (between "git-checkout" and "fs-directory")
  • Verify the updated parent_types list matches the spec: ["git-checkout", "fs-mount", "fs-directory"]
  • Add or update unit tests to assert fs-mount is a valid parent type for fs-directory
  • Run the full nox test suite to confirm no regressions

Definition of Done

  • fs-directory parent_types includes "fs-mount" in _resource_registry_data.py
  • Unit tests assert that fs-mount → fs-directory parent-child relationships pass DAG link validation
  • The commit is created with the exact first-line message: fix(resource): add fs-mount to fs-directory parent_types in _resource_registry_data.py
  • The commit is pushed to branch fix/resource-registry-fs-directory-parent-types-fs-mount
  • A Pull Request has been submitted, reviewed, and merged
  • All nox stages pass
  • Coverage >= 97%

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: ca-new-issue-creator

## Metadata - **Branch**: `fix/resource-registry-fs-directory-parent-types-fs-mount` - **Commit Message**: `fix(resource): add fs-mount to fs-directory parent_types in _resource_registry_data.py` - **Milestone**: v3.7.0 - **Parent Epic**: #398 ## Bug Report **Feature Area**: Resource Types & Inheritance — Parent/Child Type Relationships **Severity**: Medium **Found by**: UAT Testing (Resource Types & Inheritance) ### What was tested The `parent_types` list of the `fs-directory` built-in resource type definition in `_resource_registry_data.py`. ### Expected behavior (from spec) Per `docs/specification.md` line 23733: > `fs-directory` | yes | `copy_on_write` | `git-checkout` (0..1, optional), **`fs-mount` (0..1, optional)**, `fs-directory` (0..1, optional) | ... Per `docs/reference/resource_types_builtin.md` line 80: > **Parent types**: `git-checkout`, `fs-directory`, **`fs-mount`** The `fs-directory` type must allow `fs-mount` as a parent, because an `fs-mount` resource auto-discovers a root `fs-directory` child. ### Actual behavior (from code analysis) The `fs-directory` type definition in `src/cleveragents/application/services/_resource_registry_data.py` (lines 113-154) has: ```python "parent_types": ["git-checkout", "fs-directory"], ``` `fs-mount` is **missing** from this list. The complete list should be: ```python "parent_types": ["git-checkout", "fs-mount", "fs-directory"], ``` ### Impact When `fs-mount` is registered (see issue #2911) and auto-discovers its root `fs-directory` child, the DAG link validation will reject the `fs-mount → fs-directory` parent-child relationship because `fs-mount` is not in `fs-directory`'s `parent_types`. This means: 1. `fs-mount` cannot have `fs-directory` children in the DAG 2. `agents resource link-child local/my-mount local/root-dir` will fail with a validation error 3. Auto-discovery for `fs-mount` resources will fail to create the required root `fs-directory` child ### Code location - `src/cleveragents/application/services/_resource_registry_data.py` — `fs-directory` type definition, `parent_types` field (line 128) ### Fix Change line 128 from: ```python "parent_types": ["git-checkout", "fs-directory"], ``` to: ```python "parent_types": ["git-checkout", "fs-mount", "fs-directory"], ``` ## Subtasks - [ ] Locate the `fs-directory` type definition in `src/cleveragents/application/services/_resource_registry_data.py` - [ ] Add `"fs-mount"` to the `parent_types` list for `fs-directory` (between `"git-checkout"` and `"fs-directory"`) - [ ] Verify the updated `parent_types` list matches the spec: `["git-checkout", "fs-mount", "fs-directory"]` - [ ] Add or update unit tests to assert `fs-mount` is a valid parent type for `fs-directory` - [ ] Run the full nox test suite to confirm no regressions ## Definition of Done - [ ] `fs-directory` `parent_types` includes `"fs-mount"` in `_resource_registry_data.py` - [ ] Unit tests assert that `fs-mount → fs-directory` parent-child relationships pass DAG link validation - [ ] The commit is created with the exact first-line message: `fix(resource): add fs-mount to fs-directory parent_types in _resource_registry_data.py` - [ ] The commit is pushed to branch `fix/resource-registry-fs-directory-parent-types-fs-mount` - [ ] A Pull Request has been submitted, reviewed, and merged - [ ] All nox stages pass - [ ] Coverage >= 97% --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-new-issue-creator
freemo added this to the v3.7.0 milestone 2026-04-05 03:20:43 +00:00
Author
Owner

Label compliance fix applied:

  • Added missing labels: Priority/Medium, State/Unverified, Type/Bug
  • Reason: Issue was missing all required labels per CONTRIBUTING.md. Inferred Type/Bug from the "UAT:" prefix. Applied Priority/Medium and State/Unverified as defaults.

Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: ca-backlog-groomer

Label compliance fix applied: - Added missing labels: `Priority/Medium`, `State/Unverified`, `Type/Bug` - Reason: Issue was missing all required labels per CONTRIBUTING.md. Inferred `Type/Bug` from the "UAT:" prefix. Applied `Priority/Medium` and `State/Unverified` as defaults. --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: ca-backlog-groomer
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: Confirmed
  • MoSCoW: Should Have

Valid finding verified during batch triage.


Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: ca-project-owner

Issue triaged by project owner: - **State**: Verified - **Priority**: Confirmed - **MoSCoW**: Should Have Valid finding verified during batch triage. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Blocks
#398 Epic: Post-MVP Resources
cleveragents/cleveragents-core
Reference
cleveragents/cleveragents-core#2992
No description provided.