Skip to content

Latest commit

 

History

History
228 lines (168 loc) · 6.8 KB

File metadata and controls

228 lines (168 loc) · 6.8 KB

IronSilo Sprint Backlog

Sprint 1: Test Remediation & Production Readiness


Sprint Goal

Achieve 100% test pass rate (664/664 tests passing) and prepare the codebase for production deployment.


Definition of Done (DoD)

  • All unit tests pass
  • All integration tests pass
  • Code coverage ≥ 80% (maintained)
  • No import errors
  • No runtime exceptions in happy path
  • Documentation updated

User Stories & Tasks

US-001: Fix Proxy Module State Access

Priority: P0 | Estimate: 2h | Assignee: SWE

As a developer running tests,
I want the proxy module to expose state via module-level attributes,
So that existing tests can access _compressor, _compression_enabled, and _start_time.

Acceptance Criteria:

  • proxy._compressor returns app.state.compressor
  • proxy._compression_enabled returns app.state.compression_enabled
  • proxy._start_time returns app.state.start_time
  • All 15 proxy-related tests pass

Technical Notes:

  • Implement __getattr__ at module level for backward compatibility
  • Maintain FastAPI state management pattern for production use

Subtasks:

  • T1.1.1: Add __getattr__ to proxy/proxy.py
  • T1.1.2: Test with pytest tests/unit/test_proxy_proxy.py -v
  • T1.1.3: Verify health endpoint works

US-002: Expose MCP Server Tool Handlers

Priority: P0 | Estimate: 2h | Assignee: SWE

As a developer testing MCP servers,
I want to access registered tool handlers directly,
So that I can unit test tool implementations in isolation.

Acceptance Criteria:

  • server.get_tool_handler(name) returns the handler function
  • All 17 MCP server tests pass
  • Tool registration still works via decorator

Technical Notes:

  • Add get_tool_handler method to MCPServerBase
  • Tools are stored in self._tools dict

Subtasks:

  • T1.2.1: Add get_tool_handler to mcp/framework.py
  • T1.2.2: Update tests/unit/test_mcp_servers_100.py to use new API
  • T1.2.3: Run pytest tests/unit/test_mcp_servers_100.py -v

US-003: Fix Cache KV Store Test

Priority: P1 | Estimate: 1h | Assignee: SWE

As a developer running cache tests,
I want the test assertions to match the implementation,
So that the persistence format test passes.

Acceptance Criteria:

  • test_create_kv_cache_with_persist passes
  • JSON format is documented as intentional choice

Technical Notes:

  • Implementation uses JSON for human-readability
  • Test was written for pickle format
  • Update test to expect .json extension

Subtasks:

  • T1.3.1: Update tests/unit/test_cache_kv_store.py
  • T1.3.2: Verify test passes

US-004: Fix LRU Cache Size Calculation

Priority: P1 | Estimate: 1h | Assignee: SWE

As a developer testing LRU cache,
I want size calculation to handle edge cases correctly,
So that the fallback behavior test passes.

Acceptance Criteria:

  • test_calculate_size_exception_fallback passes
  • Fallback to 1024 bytes is documented behavior

Technical Notes:

  • When sys.getsizeof fails, fallback should be 1024
  • Test currently expects 1024, implementation may differ

Subtasks:

  • T1.4.1: Review cache/kv_store.py calculate_size method
  • T1.4.2: Fix implementation or update test
  • T1.4.3: Verify test passes

US-005: Replace Deprecated datetime.utcnow()

Priority: P2 | Estimate: 2h | Assignee: SWE

As a developer maintaining code quality,
I want to eliminate deprecation warnings,
So that the codebase follows current Python best practices.

Acceptance Criteria:

  • Zero datetime.utcnow() deprecation warnings
  • All datetime operations use datetime.now(datetime.UTC)
  • Tests still pass after migration

Files to Update:

  • security/key_manager.py
  • pipeline/task_schema.py
  • tests/unit/test_key_manager_100.py
  • tests/unit/test_security.py
  • tests/unit/test_pipeline_task_schema.py

Subtasks:

  • T1.5.1: Search for all datetime.utcnow() occurrences
  • T1.5.2: Replace with datetime.now(datetime.UTC)
  • T1.5.3: Run full test suite to verify

US-006: Fix Async Coroutine Warnings

Priority: P2 | Estimate: 1h | Assignee: SWE

As a developer running TUI tests,
I want async coroutines to be properly awaited,
So that there are no runtime warnings.

Acceptance Criteria:

  • Zero "coroutine was never awaited" warnings
  • TUI widgets still function correctly

Files to Update:

  • tui/widgets/container_status.py
  • tui/widgets/resource_monitor.py

Subtasks:

  • T1.6.1: Fix coroutine await in container_status.py
  • T1.6.2: Fix coroutine await in resource_monitor.py
  • T1.6.3: Run pytest tests/unit/test_tui_pilot.py -v

US-007: Update Documentation

Priority: P2 | Estimate: 1h | Assignee: PM

As a new developer joining the project,
I want accurate documentation reflecting current state,
So that I can understand the architecture and contribute effectively.

Acceptance Criteria:

  • ARCHITECTURE.md reflects actual test status
  • README.md updated with current test count
  • No misleading claims about completion status

Subtasks:

  • T1.7.1: Update test count in README.md (664 tests)
  • T1.7.2: Update ARCHITECTURE.md with test status
  • T1.7.3: Update any version references

Sprint Velocity

Metric Value
Total Tasks 7
Total Story Points 10
Estimated Hours 10h
Target Tests Fixed 35

Dependencies

US-001 (Proxy) ─────────────────┐
US-002 (MCP) ──────────────────┤
US-003 (Cache persist) ────────┼──> US-FINAL (Full Test Run)
US-004 (Cache size) ───────────┤
US-005 (datetime) ─────────────┤
US-006 (async) ────────────────┤
US-007 (Docs) ─────────────────┘

Risks & Mitigations

Risk Mitigation
State access change breaks production Maintain backward compatibility via __getattr__
MCP handler change breaks runtime Keep decorator pattern, add accessor method
Test changes introduce new failures Run full suite after each change

Acceptance Criteria Summary

Sprint Complete When:

  • pytest tests/ -v shows 664 passed, 0 failed ✅
  • pytest --cov=. shows ≥ 80% coverage (81.6%) ✅
  • python -c "import proxy; import mcp; import genesys" succeeds
  • Documentation is updated and accurate ✅

Generated by: Enterprise Orchestrator v4.0
Sprint Start: 2026-04-24
Target Completion: 2026-04-24