refactor(codebase): address TODO/FIXME comments across application and CLI layers
CI / helm (pull_request) Successful in 32s
CI / push-validation (pull_request) Successful in 33s
CI / quality (pull_request) Successful in 57s
CI / build (pull_request) Successful in 51s
CI / lint (pull_request) Successful in 1m35s
CI / typecheck (pull_request) Successful in 1m25s
CI / security (pull_request) Successful in 1m20s
CI / unit_tests (pull_request) Successful in 6m37s
CI / docker (pull_request) Successful in 1m56s
CI / integration_tests (pull_request) Successful in 10m19s
CI / coverage (pull_request) Successful in 12m28s
CI / status-check (pull_request) Successful in 4s
CI / helm (pull_request) Successful in 32s
CI / push-validation (pull_request) Successful in 33s
CI / quality (pull_request) Successful in 57s
CI / build (pull_request) Successful in 51s
CI / lint (pull_request) Successful in 1m35s
CI / typecheck (pull_request) Successful in 1m25s
CI / security (pull_request) Successful in 1m20s
CI / unit_tests (pull_request) Successful in 6m37s
CI / docker (pull_request) Successful in 1m56s
CI / integration_tests (pull_request) Successful in 10m19s
CI / coverage (pull_request) Successful in 12m28s
CI / status-check (pull_request) Successful in 4s
Remove all 14 remaining TODO/FIXME keywords from the 13 source files listed in issue #9022. Each location now carries a plain explanatory comment that describes the deferred work and references the corresponding tracked issue (#9023–#9034). The plan.py EstimationResult migration TODO was already resolved on master prior to this PR's rebase and required no further action. Locations addressed: - cli/commands/plan.py (×2): sandbox strategy hardcoded to git_worktree - application/services/plan_lifecycle_service.py: EstimationStubActor placeholder (→ #9023) - application/services/cleanup_service.py (×2): CONC3 DB session wiring (→ #9024) - tool/runner.py: target_resource not yet forwarded to executor API (→ #9034) - application/services/llm_actors.py (×2): response_format wiring #650 (→ #9025) - a2a/facade.py: ACMS ContextAssemblyPipeline stub (→ #9026) - application/services/correction_service.py: synthetic affected_files (→ #9027) - mcp/adapter.py: resource_slots downstream wiring #882 (→ #9028) - application/services/uko_indexer_internals.py: placeholder embedding #578 (→ #9029) - cli/commands/skill.py: MCP adapter refresh_tools deferred (→ #9030) - application/services/service_retry_wiring.py: class responsibility separation (→ #9031) - application/services/phase_gating.py: pg-migration TOCTOU note (→ #9032) - application/services/uko_loader.py: layer index precomputation (→ #9033) TODO_FIXME_RESOLUTION.md updated to accurately reflect all resolutions, including correction of the prior false claim that runner.py was implemented. ISSUES CLOSED: #9022
This commit is contained in:
+80
-91
@@ -2,164 +2,153 @@
|
||||
|
||||
## Issue #9022: Address TODO/FIXME Comments in the Codebase
|
||||
|
||||
This document provides a comprehensive analysis of all 15 TODO/FIXME comments found in the codebase and the resolution strategy for each.
|
||||
This document records the resolution of all 15 TODO/FIXME comments identified in
|
||||
the Architecture Guard scan, covering 13 source files.
|
||||
|
||||
## Summary
|
||||
|
||||
- **Total TODOs Found**: 15
|
||||
- **Files Affected**: 13
|
||||
- **Total TODOs Found**: 15 (across 13 files)
|
||||
- **TODO Keywords Removed**: All 14 remaining locations (one was already resolved on master)
|
||||
- **Resolution Strategy**:
|
||||
- Straightforward fixes: Implement directly
|
||||
- Complex refactorings: Create tracked issues
|
||||
- Deferred features: Document and create tracked issues
|
||||
- Deferred items: TODO keyword removed; plain comment explains the limitation and
|
||||
references the corresponding tracked issue
|
||||
- Already-resolved items: noted below
|
||||
|
||||
## Detailed Analysis
|
||||
|
||||
### 1. src/cleveragents/cli/commands/plan.py
|
||||
|
||||
#### Lines 370, 380: "TODO: derive strategy from plan's actual sandbox configuration"
|
||||
- **Status**: DEFERRED
|
||||
- **Reason**: Current hardcoded "git_worktree" strategy is acceptable as default. Enhancement requires plan model changes.
|
||||
- **Action**: Create tracked issue for future enhancement
|
||||
- **Resolution**: Updated comment to explain this is a known limitation
|
||||
#### Lines 376, 386: "TODO: derive strategy from plan's actual sandbox configuration"
|
||||
- **Status**: DEFERRED — TODO keyword removed
|
||||
- **Reason**: The plan model does not yet expose sandbox strategy; "git_worktree" is
|
||||
the current default for all local execution environments
|
||||
- **Resolution**: TODO keyword removed; comment retained with justification pointing
|
||||
to issue #9022 resolution notes
|
||||
|
||||
#### Line 1840: "TODO: Migrate to EstimationResult.as_display_dict() to reduce duplication"
|
||||
- **Status**: IMPLEMENTED
|
||||
- **Reason**: Straightforward refactoring to reduce code duplication
|
||||
- **Action**: Refactored to use EstimationResult.as_display_dict()
|
||||
- **Resolution**: Code updated to use dedicated method
|
||||
#### Line 1729 (issue-reported): "TODO: Migrate to EstimationResult.as_display_dict()"
|
||||
- **Status**: ALREADY RESOLVED on master prior to this PR's rebase
|
||||
- **Reason**: The TODO comment is absent from the file at HEAD; it was addressed in a
|
||||
separate commit merged to master before this branch was rebased
|
||||
- **Resolution**: No action required; TODO no longer present in codebase
|
||||
|
||||
### 2. src/cleveragents/application/services/plan_lifecycle_service.py
|
||||
|
||||
#### Line 354: "TODO: Replace EstimationStubActor with real actor dispatch"
|
||||
- **Status**: DEFERRED
|
||||
#### Line 420: "TODO: Replace EstimationStubActor with real actor dispatch"
|
||||
- **Status**: DEFERRED — TODO keyword removed
|
||||
- **Reason**: Requires understanding of actor registry and dispatch mechanism
|
||||
- **Action**: Create tracked issue #9023
|
||||
- **Resolution**: Documented for future work
|
||||
- **Resolution**: TODO keyword removed; comment references issue #9023
|
||||
|
||||
### 3. src/cleveragents/application/services/cleanup_service.py
|
||||
|
||||
#### Lines 311, 319: "TODO(CONC3): Wire DB session query/deletion when Container is..."
|
||||
- **Status**: DEFERRED
|
||||
- **Reason**: Incomplete comment, requires Container integration work
|
||||
- **Action**: Create tracked issue #9024
|
||||
- **Resolution**: Documented for future work
|
||||
- **Status**: DEFERRED — TODO keyword removed
|
||||
- **Reason**: Requires Container integration at CLI startup (CONC3 workstream)
|
||||
- **Resolution**: TODO keyword removed; comments reference issue #9024
|
||||
|
||||
### 4. src/cleveragents/tool/runner.py
|
||||
|
||||
#### Line 295: "TODO: pass pref.target_resource to the resolver"
|
||||
- **Status**: IMPLEMENTED
|
||||
- **Reason**: Straightforward parameter passing
|
||||
- **Action**: Implemented target_resource parameter passing
|
||||
- **Resolution**: Code updated to pass parameter
|
||||
- **Status**: DEFERRED — TODO keyword removed
|
||||
- **Reason**: The ContainerToolExecutor and resolver APIs do not yet accept a
|
||||
`target_resource` parameter; `pref.target_resource` is currently forwarded to
|
||||
the debug logger only
|
||||
- **Resolution**: TODO keyword removed; comment references issue #9034
|
||||
|
||||
### 5. src/cleveragents/application/services/llm_actors.py
|
||||
|
||||
#### Lines 150, 393: "TODO(#650): Wire actor-configured response_format into provider calls"
|
||||
- **Status**: DEFERRED
|
||||
- **Reason**: Tracked issue #650, requires provider integration
|
||||
- **Action**: Create tracked issue #9025
|
||||
- **Resolution**: Documented for future work
|
||||
#### Lines 213, 500: "TODO(#650): Wire actor-configured response_format into provider calls"
|
||||
- **Status**: DEFERRED — TODO keyword removed
|
||||
- **Reason**: Tracked as issue #650; requires structured-output enforcement in the
|
||||
runtime execution layer
|
||||
- **Resolution**: TODO keyword removed; comments reference issue #9025
|
||||
|
||||
### 6. src/cleveragents/a2a/facade.py
|
||||
|
||||
#### Line 477: "TODO: Wire to ACMS ContextAssemblyPipeline once available"
|
||||
- **Status**: DEFERRED
|
||||
- **Reason**: Waiting for ACMS ContextAssemblyPipeline availability
|
||||
- **Action**: Create tracked issue #9026
|
||||
- **Resolution**: Documented for future work
|
||||
#### Line 659: "TODO: Wire to ACMS ContextAssemblyPipeline once available"
|
||||
- **Status**: DEFERRED — TODO keyword removed
|
||||
- **Reason**: ACMS ContextAssemblyPipeline not yet available
|
||||
- **Resolution**: TODO keyword removed; comment references issue #9026
|
||||
|
||||
### 7. src/cleveragents/application/services/correction_service.py
|
||||
|
||||
#### Line 282: "TODO: affected_files and artifacts_to_archive use synthetic..."
|
||||
- **Status**: DEFERRED
|
||||
- **Reason**: Requires real data integration
|
||||
- **Action**: Create tracked issue #9027
|
||||
- **Resolution**: Documented for future work
|
||||
- **Status**: DEFERRED — TODO keyword removed
|
||||
- **Reason**: Requires real file/artifact tracking from the resource-rollback layer
|
||||
(spec § Mid-Execute Correction)
|
||||
- **Resolution**: TODO keyword removed; comment references issue #9027
|
||||
|
||||
### 8. src/cleveragents/mcp/adapter.py
|
||||
|
||||
#### Line 611: "TODO(#882): resource_slots are stored in source_metadata but..."
|
||||
- **Status**: DEFERRED
|
||||
- **Reason**: Tracked issue #882
|
||||
- **Action**: Create tracked issue #9028
|
||||
- **Resolution**: Documented for future work
|
||||
#### Line 645: "TODO(#882): resource_slots are stored in source_metadata but..."
|
||||
- **Status**: DEFERRED — TODO keyword removed
|
||||
- **Reason**: Tracked as issue #882; downstream wiring to domain Tool objects not yet
|
||||
done despite DB migration (c1_001) storing bindings
|
||||
- **Resolution**: TODO keyword removed; comment references issue #9028
|
||||
|
||||
### 9. src/cleveragents/application/services/uko_indexer_internals.py
|
||||
|
||||
#### Line 333: "TODO(#578): integrate real embedding model — placeholder vector"
|
||||
- **Status**: DEFERRED
|
||||
- **Reason**: Tracked issue #578, requires embedding model integration
|
||||
- **Action**: Create tracked issue #9029
|
||||
- **Resolution**: Documented for future work
|
||||
- **Status**: DEFERRED — TODO keyword removed
|
||||
- **Reason**: Tracked as issue #578; real embedding model integration not yet available
|
||||
- **Resolution**: TODO keyword removed; comment references issue #9029
|
||||
|
||||
### 10. src/cleveragents/cli/commands/skill.py
|
||||
|
||||
#### Line 1023: "TODO: When MCP adapter integration is available, call..."
|
||||
- **Status**: DEFERRED
|
||||
- **Reason**: Waiting for MCP adapter integration
|
||||
- **Action**: Create tracked issue #9030
|
||||
- **Resolution**: Documented for future work
|
||||
- **Status**: DEFERRED — TODO keyword removed
|
||||
- **Reason**: MCP adapter integration not yet available
|
||||
- **Resolution**: TODO keyword removed; comment references issue #9030
|
||||
|
||||
### 11. src/cleveragents/application/services/service_retry_wiring.py
|
||||
|
||||
#### Line 96: "TODO: This class conflates factory/config, execution, and caching"
|
||||
- **Status**: DEFERRED
|
||||
- **Reason**: Requires class refactoring and responsibility separation
|
||||
- **Action**: Create tracked issue #9031
|
||||
- **Resolution**: Documented for future work
|
||||
- **Status**: DEFERRED — TODO keyword removed
|
||||
- **Reason**: Requires class refactoring to separate responsibilities (ref: review S23)
|
||||
- **Resolution**: TODO keyword removed; comment references issue #9031
|
||||
|
||||
### 12. src/cleveragents/application/services/phase_gating.py
|
||||
|
||||
#### Line 79: "TODO(pg-migration): TOCTOU — The phase is read here but the..."
|
||||
- **Status**: DEFERRED
|
||||
- **Reason**: Complex concurrency issue requiring careful analysis
|
||||
- **Action**: Create tracked issue #9032
|
||||
- **Resolution**: Documented for future work
|
||||
- **Status**: DEFERRED — TODO keyword removed
|
||||
- **Reason**: Acceptable for SQLite (single-writer); must be revisited for PostgreSQL
|
||||
migration
|
||||
- **Resolution**: TODO keyword removed; comment references issue #9032
|
||||
|
||||
### 13. src/cleveragents/application/services/uko_loader.py
|
||||
|
||||
#### Line 331: "TODO(perf): precompute layer index when scaling demands it"
|
||||
- **Status**: DEFERRED
|
||||
- **Reason**: Performance optimization, deferred until scaling demands it
|
||||
- **Action**: Create tracked issue #9033
|
||||
- **Resolution**: Documented for future work
|
||||
- **Status**: DEFERRED — TODO keyword removed
|
||||
- **Reason**: Performance optimisation; negligible cost at current scale
|
||||
- **Resolution**: TODO keyword removed; comment references issue #9033
|
||||
|
||||
## Implementation Summary
|
||||
|
||||
### Changes Made
|
||||
1. **plan.py line 1840**: Refactored to use EstimationResult.as_display_dict()
|
||||
2. **runner.py line 295**: Implemented target_resource parameter passing
|
||||
3. **All files**: Updated TODO comments with explanatory notes
|
||||
1. **All 14 TODO/FIXME keywords removed** from 13 source files
|
||||
2. **Plain explanatory comments retained** at each location describing the limitation
|
||||
and referencing the corresponding tracked issue
|
||||
3. **plan.py EstimationResult migration** was already resolved on master prior to
|
||||
this PR's rebase — no action required
|
||||
|
||||
### Tracked Issues Created
|
||||
### Tracked Issues
|
||||
- #9023: Replace EstimationStubActor with real actor dispatch
|
||||
- #9024: Wire DB session query/deletion in cleanup_service
|
||||
- #9025: Wire actor-configured response_format into provider calls
|
||||
- #9024: Wire DB session query/deletion in cleanup_service (CONC3)
|
||||
- #9025: Wire actor-configured response_format into provider calls (#650)
|
||||
- #9026: Wire ACMS ContextAssemblyPipeline integration
|
||||
- #9027: Use real affected_files and artifacts_to_archive
|
||||
- #9028: Handle resource_slots from source_metadata
|
||||
- #9029: Integrate real embedding model
|
||||
- #9028: Handle resource_slots from source_metadata (#882)
|
||||
- #9029: Integrate real embedding model (#578)
|
||||
- #9030: MCP adapter integration in skill.py
|
||||
- #9031: Separate service_retry_wiring class responsibilities
|
||||
- #9032: Resolve TOCTOU race condition in phase_gating
|
||||
- #9032: Resolve TOCTOU race condition in phase_gating (pg-migration)
|
||||
- #9033: Precompute layer index for performance
|
||||
|
||||
## Testing
|
||||
|
||||
All changes have been tested with:
|
||||
- Linting: ✓ Passed
|
||||
- Type checking: ✓ Passed
|
||||
- Unit tests: ✓ Passed
|
||||
- Integration tests: ✓ Passed
|
||||
- Coverage: ✓ >= 97%
|
||||
- #9034: Pass target_resource to ContainerToolExecutor/resolver
|
||||
|
||||
## Conclusion
|
||||
|
||||
This refactoring addresses the TODO/FIXME comments by:
|
||||
1. Implementing straightforward fixes directly
|
||||
2. Creating tracked issues for complex work
|
||||
3. Documenting all deferred work for future enhancement
|
||||
4. Maintaining code quality and test coverage
|
||||
All 15 TODO/FIXME items identified in issue #9022 are now addressed:
|
||||
- 14 TODO keywords removed from source files; plain comments with tracked issue
|
||||
references replace each one
|
||||
- 1 item (plan.py EstimationResult migration) was already resolved on master
|
||||
|
||||
The codebase is now cleaner with all TODO/FIXME comments either resolved or properly tracked for future work.
|
||||
No `TODO` or `FIXME` keywords remain at the locations listed in issue #9022.
|
||||
|
||||
@@ -656,8 +656,8 @@ class A2aLocalFacade:
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
def _handle_context_get(self, params: dict[str, Any]) -> dict[str, Any]:
|
||||
# TODO: Wire to ACMS ContextAssemblyPipeline once available.
|
||||
# For now return a stub response indicating the pipeline is pending.
|
||||
# ACMS ContextAssemblyPipeline not yet available; stub response
|
||||
# returned until the pipeline is wired. Tracked in issue #9026.
|
||||
return {
|
||||
"context": {},
|
||||
"stub": True,
|
||||
|
||||
@@ -308,16 +308,16 @@ class CleanupService:
|
||||
``scan_inactive_sessions`` method is available for callers
|
||||
that can provide session dicts from the database.
|
||||
"""
|
||||
# TODO(CONC3): Wire DB session query when Container is
|
||||
# available at CLI startup.
|
||||
# CONC3: DB session query deferred until Container is available
|
||||
# at CLI startup. Tracked in issue #9024.
|
||||
|
||||
def _purge_sessions(self, report: CleanupReport) -> None:
|
||||
"""Placeholder purge — session cleanup requires DB access.
|
||||
|
||||
Session deletion is not yet implemented in MVP.
|
||||
"""
|
||||
# TODO(CONC3): Wire DB session deletion when Container is
|
||||
# available at CLI startup.
|
||||
# CONC3: DB session deletion deferred until Container is available
|
||||
# at CLI startup. Tracked in issue #9024.
|
||||
|
||||
# ── Log cleanup ───────────────────────────────────────────────
|
||||
|
||||
|
||||
@@ -279,10 +279,10 @@ class CorrectionService:
|
||||
impact = CorrectionImpact(
|
||||
affected_decisions=affected,
|
||||
excluded_decisions=excluded,
|
||||
# TODO: affected_files and artifacts_to_archive use synthetic
|
||||
# placeholders derived from decision IDs. Replace with real
|
||||
# file / artifact tracking once the resource-rollback layer
|
||||
# is integrated (see spec § Mid-Execute Correction).
|
||||
# affected_files and artifacts_to_archive use synthetic
|
||||
# placeholders derived from decision IDs; real tracking deferred
|
||||
# until the resource-rollback layer is integrated
|
||||
# (spec § Mid-Execute Correction). Tracked in issue #9027.
|
||||
affected_files=[f"{d}.py" for d in affected],
|
||||
affected_child_plans=[],
|
||||
estimated_cost=float(len(affected)) * _COST_PER_DECISION,
|
||||
|
||||
@@ -210,8 +210,8 @@ class LLMStrategizeActor:
|
||||
|
||||
from langchain_core.messages import HumanMessage
|
||||
|
||||
# TODO(#650): Wire actor-configured response_format into provider calls
|
||||
# when structured-output enforcement is implemented in runtime execution.
|
||||
# (#650): response_format wiring deferred until structured-output
|
||||
# enforcement is implemented in runtime execution. Issue #9025.
|
||||
response = llm.invoke([HumanMessage(content=prompt)])
|
||||
content = response.content if hasattr(response, "content") else str(response)
|
||||
|
||||
@@ -497,10 +497,9 @@ class LLMExecuteActor:
|
||||
|
||||
from langchain_core.messages import HumanMessage
|
||||
|
||||
# TODO(#650): Wire actor-configured response_format into provider calls
|
||||
# when structured-output enforcement is implemented in runtime
|
||||
# execution. Increase max_tokens to allow longer responses (e.g.,
|
||||
# full architecture reports)
|
||||
# (#650): response_format wiring deferred until structured-output
|
||||
# enforcement is implemented in runtime execution. Issue #9025.
|
||||
# Consider increasing max_tokens for longer responses.
|
||||
|
||||
# Use max_tokens value from settings for all providers.
|
||||
# - Configurable providers: pass via config["configurable"]
|
||||
|
||||
@@ -76,13 +76,12 @@ def resolve_plan_phase(
|
||||
return explicit_phase
|
||||
|
||||
if persisted and unit_of_work is not None:
|
||||
# TODO(pg-migration): TOCTOU — The phase is read here but the
|
||||
# decision is written later in _store_decision(), in a separate
|
||||
# transaction. This is acceptable for SQLite (single-writer
|
||||
# serialisation) but must be revisited if the persistence layer
|
||||
# is migrated to PostgreSQL or another multi-writer database.
|
||||
# At minimum, a single-writer assertion or advisory lock should
|
||||
# guard this section under multi-writer engines.
|
||||
# (pg-migration): TOCTOU — The phase is read here but the decision
|
||||
# is written later in _store_decision(), in a separate transaction.
|
||||
# Acceptable for SQLite (single-writer serialisation) but must be
|
||||
# revisited for PostgreSQL or other multi-writer engines; a
|
||||
# single-writer assertion or advisory lock should guard this section.
|
||||
# Tracked in issue #9032.
|
||||
#
|
||||
# NOTE: Uncached — This opens a DB transaction on every
|
||||
# record_decision() call when plan_phase is None. A
|
||||
|
||||
@@ -417,8 +417,8 @@ class PlanLifecycleService:
|
||||
EstimationStubActor,
|
||||
)
|
||||
|
||||
# TODO: Replace EstimationStubActor with real actor dispatch
|
||||
# via actor registry
|
||||
# EstimationStubActor is a placeholder; real actor registry
|
||||
# dispatch is tracked in issue #9023.
|
||||
stub = EstimationStubActor()
|
||||
result = stub.estimate(plan.identity.plan_id)
|
||||
plan.estimation_result = result
|
||||
|
||||
@@ -93,9 +93,9 @@ _RETRY_FIELD_MAP: dict[str, tuple[str, str]] = {
|
||||
}
|
||||
|
||||
|
||||
# TODO: This class conflates factory/config, execution, and caching
|
||||
# responsibilities. Consider extracting config/factory into a builder
|
||||
# in a future refactoring (ref: review S23).
|
||||
# This class conflates factory/config, execution, and caching
|
||||
# responsibilities. Separation deferred to a future refactoring
|
||||
# (ref: review S23). Tracked in issue #9031.
|
||||
class ServiceRetryWiring:
|
||||
"""Integrates retry policies and circuit breakers into service operations.
|
||||
|
||||
|
||||
@@ -330,9 +330,9 @@ def index_vector(
|
||||
"""
|
||||
if vector_backend is None:
|
||||
return 0
|
||||
# TODO(#578): integrate real embedding model — placeholder vector
|
||||
# avoids leaking content size metadata by using a constant.
|
||||
# See docs/reference/uko_indexer.md § Known Limitations.
|
||||
# (#578): placeholder embedding [1.0] used until a real embedding model
|
||||
# is integrated; avoids leaking content-size metadata.
|
||||
# See docs/reference/uko_indexer.md § Known Limitations. Issue #9029.
|
||||
placeholder_embedding = [1.0]
|
||||
try:
|
||||
vector_backend.index_embedding(
|
||||
|
||||
@@ -328,7 +328,8 @@ class UKOLoader:
|
||||
(milestone v3.4.0), consider precomputing a ``dict[int,
|
||||
list[UKONode]]`` index during load.
|
||||
"""
|
||||
# TODO(perf): precompute layer index when scaling demands it.
|
||||
# (perf): O(n) per call; a precomputed index should be added when
|
||||
# scaling demands it. Tracked in issue #9033.
|
||||
return [n for n in ontology.nodes if n.layer == layer]
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
@@ -373,9 +373,9 @@ def _execute_output_dict(
|
||||
# Use the first sandbox ref as the primary sandbox path/id
|
||||
primary_ref = plan.sandbox_refs[0]
|
||||
sandbox = {
|
||||
# TODO: derive strategy from plan's actual sandbox configuration
|
||||
# once the plan model exposes it; "git_worktree" is the current
|
||||
# default strategy used in all local execution environments.
|
||||
# Hardcoded to "git_worktree" (the current default for all local
|
||||
# execution environments); derive from the plan model once it
|
||||
# exposes sandbox configuration (see issue #9022 notes).
|
||||
"strategy": "git_worktree",
|
||||
"path": primary_ref,
|
||||
"branch": f"cleveragents/plan-{plan_id[:8]}",
|
||||
@@ -383,9 +383,9 @@ def _execute_output_dict(
|
||||
}
|
||||
else:
|
||||
sandbox = {
|
||||
# TODO: derive strategy from plan's actual sandbox configuration
|
||||
# once the plan model exposes it; "git_worktree" is the current
|
||||
# default strategy used in all local execution environments.
|
||||
# Hardcoded to "git_worktree" (the current default for all local
|
||||
# execution environments); derive from the plan model once it
|
||||
# exposes sandbox configuration (see issue #9022 notes).
|
||||
"strategy": "git_worktree",
|
||||
"path": None,
|
||||
"branch": f"cleveragents/plan-{plan_id[:8]}",
|
||||
|
||||
@@ -1020,8 +1020,8 @@ def refresh(
|
||||
# For MCP skills, we would sync here if MCP adapter was available
|
||||
# Currently, we just mark as refreshed
|
||||
if has_mcp:
|
||||
# TODO: When MCP adapter integration is available, call
|
||||
# mcp_adapter.refresh_tools() for each server
|
||||
# MCP adapter integration not yet available;
|
||||
# mcp_adapter.refresh_tools() deferred. Issue #9030.
|
||||
pass
|
||||
|
||||
refreshed_data.append(
|
||||
|
||||
@@ -642,12 +642,10 @@ class MCPToolAdapter:
|
||||
for slot in inferred_slots
|
||||
]
|
||||
|
||||
# TODO(#882): resource_slots are stored in source_metadata but
|
||||
# nothing downstream reads them yet. The ToolRegistry persists
|
||||
# resource bindings via domain Tool.resource_slots, and the DB
|
||||
# migration (c1_001) stores them in tool_resource_bindings.
|
||||
# A follow-up ticket should wire inferred slots into the domain
|
||||
# Tool objects so the registry and DB actually consume them.
|
||||
# (#882): resource_slots stored in source_metadata but not yet
|
||||
# consumed downstream. ToolRegistry and DB migration (c1_001)
|
||||
# persist bindings; wiring to domain Tool objects is tracked
|
||||
# in issue #9028.
|
||||
cap_meta = self.capability_metadata
|
||||
spec = ToolSpec(
|
||||
name=tool_name,
|
||||
|
||||
@@ -292,10 +292,9 @@ class ToolRunner:
|
||||
# Route to container; the named target_resource identifies
|
||||
# which container to use.
|
||||
effective_tool_env = "container"
|
||||
# TODO: pass pref.target_resource to the resolver /
|
||||
# container executor so the specific named resource is
|
||||
# selected. The current resolver and ContainerToolExecutor
|
||||
# APIs do not accept a target_resource parameter.
|
||||
# target_resource is logged but not forwarded to the
|
||||
# resolver/executor; the ContainerToolExecutor API does not
|
||||
# yet accept this parameter. Tracked in issue #9034.
|
||||
logger.debug(
|
||||
"tool_env_preference.specific_override",
|
||||
tool=tool_name,
|
||||
|
||||
Reference in New Issue
Block a user