feat(resource): add LSP resource types #1046

Merged
hamza.khyari merged 1 commit from feature/lsp-resource-types into master 2026-03-24 13:36:31 +00:00
Member

Summary

Adds 4 LSP-related built-in resource types to the resource registry, bridging the resource DAG with the LSP runtime.

Closes #832

Resource Types

Type Kind User-Addable Parent Types Child Types Auto-Discovery
executable physical yes container-exec-env, fs-directory (none) Lazy, from container PATH
lsp-server physical yes container-instance, container-exec-env lsp-workspace No (user-registered)
lsp-workspace physical no lsp-server lsp-document From lsp-server initialization
lsp-document physical no lsp-workspace (none) From lsp-workspace

All types have sandbox_strategy: none and are registered in bootstrap.

Hierarchy

executable (standalone, references edge to lsp-server)
lsp-server
  +-- lsp-workspace
        +-- lsp-document

Files

  • src/cleveragents/application/services/_resource_registry_lsp.py — 4 type definitions
  • examples/resource-types/{executable,lsp-server,lsp-workspace,lsp-document}.yaml — YAML configs
  • features/resource_type_lsp.feature + steps — 18 Behave scenarios
  • robot/resource_type_lsp.robot + helper — 6 Robot integration tests

Spec Reference

  • docs/adr/ADR-039-container-resource-types.md (executable)
  • docs/adr/ADR-040-lsp-resource-types.md (lsp-server, lsp-workspace, lsp-document)
## Summary Adds 4 LSP-related built-in resource types to the resource registry, bridging the resource DAG with the LSP runtime. Closes #832 ## Resource Types | Type | Kind | User-Addable | Parent Types | Child Types | Auto-Discovery | |------|------|-------------|-------------|------------|---------------| | `executable` | physical | yes | `container-exec-env`, `fs-directory` | (none) | Lazy, from container PATH | | `lsp-server` | physical | yes | `container-instance`, `container-exec-env` | `lsp-workspace` | No (user-registered) | | `lsp-workspace` | physical | no | `lsp-server` | `lsp-document` | From `lsp-server` initialization | | `lsp-document` | physical | no | `lsp-workspace` | (none) | From `lsp-workspace` | All types have `sandbox_strategy: none` and are registered in bootstrap. ## Hierarchy ``` executable (standalone, references edge to lsp-server) lsp-server +-- lsp-workspace +-- lsp-document ``` ## Files - `src/cleveragents/application/services/_resource_registry_lsp.py` — 4 type definitions - `examples/resource-types/{executable,lsp-server,lsp-workspace,lsp-document}.yaml` — YAML configs - `features/resource_type_lsp.feature` + steps — 18 Behave scenarios - `robot/resource_type_lsp.robot` + helper — 6 Robot integration tests ## Spec Reference - `docs/adr/ADR-039-container-resource-types.md` (executable) - `docs/adr/ADR-040-lsp-resource-types.md` (lsp-server, lsp-workspace, lsp-document)
hamza.khyari added this to the v3.6.0 milestone 2026-03-18 11:43:38 +00:00
freemo approved these changes 2026-03-19 04:55:55 +00:00
Dismissed
freemo left a comment

Code Review — PR #1046 feat(resource): add LSP resource types

Focused PR adding 4 LSP resource types (executable, lsp-server, lsp-workspace, lsp-document). The hierarchy is logically sound with proper parent/child relationships and auto-discovery chains. The executable type with lazy auto-discovery from PATH is a nice touch.

18 Behave scenarios + 6 Robot tests including a DB roundtrip test that verifies types survive the bootstrap → SQLite → query cycle.

Approved. No issues found.

## Code Review — PR #1046 `feat(resource): add LSP resource types` Focused PR adding 4 LSP resource types (`executable`, `lsp-server`, `lsp-workspace`, `lsp-document`). The hierarchy is logically sound with proper parent/child relationships and auto-discovery chains. The `executable` type with lazy auto-discovery from PATH is a nice touch. 18 Behave scenarios + 6 Robot tests including a DB roundtrip test that verifies types survive the bootstrap → SQLite → query cycle. **Approved.** No issues found.
Owner

Day 43 Review — Rebase Required

This PR has merge conflicts with master and cannot be merged in its current state. This is one of 9 Hamza PRs in the resource/LSP domain (v3.5.0-v3.6.0) that all have conflicts. These PRs likely share a common dependency chain and should be rebased sequentially.

@hamza.khyari: Please rebase onto current master. If multiple PRs depend on each other, start with the base PR in the chain and work upward.

Rebase priority: HIGH — these PRs represent significant feature work that is blocked by merge conflicts. Every day they remain conflicted is a day they cannot be reviewed or merged.

**Day 43 Review — Rebase Required** This PR has merge conflicts with `master` and cannot be merged in its current state. This is one of 9 Hamza PRs in the resource/LSP domain (v3.5.0-v3.6.0) that all have conflicts. These PRs likely share a common dependency chain and should be rebased sequentially. @hamza.khyari: Please rebase onto current `master`. If multiple PRs depend on each other, start with the base PR in the chain and work upward. **Rebase priority**: HIGH — these PRs represent significant feature work that is blocked by merge conflicts. Every day they remain conflicted is a day they cannot be reviewed or merged.
hamza.khyari force-pushed feature/lsp-resource-types from c35425c8eb
All checks were successful
CI / lint (pull_request) Successful in 15s
CI / typecheck (pull_request) Successful in 49s
CI / quality (pull_request) Successful in 34s
CI / benchmark-publish (pull_request) Has been skipped
CI / security (pull_request) Successful in 50s
CI / build (pull_request) Successful in 15s
CI / integration_tests (pull_request) Successful in 3m45s
CI / unit_tests (pull_request) Successful in 5m1s
CI / e2e_tests (pull_request) Successful in 4m43s
CI / docker (pull_request) Successful in 1m6s
CI / coverage (pull_request) Successful in 6m15s
CI / benchmark-regression (pull_request) Successful in 37m35s
to b3c0177d6a
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 17s
CI / lint (pull_request) Successful in 3m18s
CI / unit_tests (pull_request) Successful in 3m30s
CI / typecheck (pull_request) Successful in 3m55s
CI / quality (pull_request) Successful in 4m2s
CI / security (pull_request) Successful in 4m2s
CI / docker (pull_request) Successful in 1m2s
CI / e2e_tests (pull_request) Successful in 8m17s
CI / benchmark-regression (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
2026-03-24 12:54:19 +00:00
Compare
hamza.khyari dismissed freemo's review 2026-03-24 12:54:19 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

hamza.khyari force-pushed feature/lsp-resource-types from b3c0177d6a
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 17s
CI / lint (pull_request) Successful in 3m18s
CI / unit_tests (pull_request) Successful in 3m30s
CI / typecheck (pull_request) Successful in 3m55s
CI / quality (pull_request) Successful in 4m2s
CI / security (pull_request) Successful in 4m2s
CI / docker (pull_request) Successful in 1m2s
CI / e2e_tests (pull_request) Successful in 8m17s
CI / benchmark-regression (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
to 03f7e347ff
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 29s
CI / lint (pull_request) Successful in 3m20s
CI / integration_tests (pull_request) Successful in 3m33s
CI / quality (pull_request) Successful in 3m42s
CI / typecheck (pull_request) Successful in 3m55s
CI / security (pull_request) Successful in 3m58s
CI / unit_tests (pull_request) Successful in 6m52s
CI / docker (pull_request) Successful in 51s
CI / e2e_tests (pull_request) Successful in 7m51s
CI / coverage (pull_request) Successful in 11m18s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-24 13:03:18 +00:00
Compare
hamza.khyari force-pushed feature/lsp-resource-types from 03f7e347ff
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 29s
CI / lint (pull_request) Successful in 3m20s
CI / integration_tests (pull_request) Successful in 3m33s
CI / quality (pull_request) Successful in 3m42s
CI / typecheck (pull_request) Successful in 3m55s
CI / security (pull_request) Successful in 3m58s
CI / unit_tests (pull_request) Successful in 6m52s
CI / docker (pull_request) Successful in 51s
CI / e2e_tests (pull_request) Successful in 7m51s
CI / coverage (pull_request) Successful in 11m18s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Has been cancelled
to 65a2e4db76
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 21s
CI / lint (pull_request) Successful in 3m18s
CI / quality (pull_request) Successful in 3m46s
CI / typecheck (pull_request) Successful in 3m54s
CI / security (pull_request) Successful in 4m3s
CI / unit_tests (pull_request) Successful in 5m57s
CI / integration_tests (pull_request) Successful in 6m45s
CI / docker (pull_request) Successful in 56s
CI / e2e_tests (pull_request) Successful in 8m29s
CI / coverage (pull_request) Successful in 11m12s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Failing after 52m33s
2026-03-24 13:21:22 +00:00
Compare
hamza.khyari scheduled this pull request to auto merge when all checks succeed 2026-03-24 13:29:49 +00:00
hamza.khyari deleted branch feature/lsp-resource-types 2026-03-24 13:37:16 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core!1046
No description provided.