Files
git.stella-ops.org/docs/router/archived/SPRINT_INDEX.md
master 91f3610b9d Refactor and enhance tests for call graph extractors and connection management
- Updated JavaScriptCallGraphExtractorTests to improve naming conventions and test cases for Azure Functions, CLI commands, and socket handling.
- Modified NodeCallGraphExtractorTests to correctly assert exceptions for null inputs.
- Enhanced WitnessModalComponent tests in Angular to use Jasmine spies and improved assertions for path visualization and signature verification.
- Added ConnectionState property for tracking connection establishment time in Router.Common.
- Implemented validation for HelloPayload in ConnectionManager to ensure required fields are present.
- Introduced RabbitMqContainerFixture method for restarting RabbitMQ container during tests.
- Added integration tests for RabbitMq to verify connection recovery after broker restarts.
- Created new BinaryCallGraphExtractorTests, GoCallGraphExtractorTests, and PythonCallGraphExtractorTests for comprehensive coverage of binary, Go, and Python call graph extraction functionalities.
- Developed ConnectionManagerTests to validate connection handling, including rejection of invalid hello messages and proper cleanup on client disconnects.
2025-12-19 18:49:36 +02:00

13 KiB

Stella Ops Router - Sprint Index

BLOCKED Tasks: Before working on BLOCKED tasks, review ../implplan/BLOCKED_DEPENDENCY_TREE.md for root blockers and dependencies.

This document provides an overview of all sprints for implementing the StellaOps Router infrastructure. Sprints are organized for maximum agent independence while respecting dependencies.

Archive notice (2025-12-19): This index lives under docs/router/archived/ and is not an active tracker. Statuses and working directories were audited against current repo layout; all tasks in this archive are now marked DONE with corresponding implementation/tests.

Key Documents

Document Purpose
specs.md Canonical specification - READ FIRST
implplan.md High-level implementation plan
Step files (01-29) Detailed task breakdowns per phase

Sprint Epochs

All router sprints use Epoch 7000 to maintain isolation from existing StellaOps work.

Batch Focus Area Sprints
0001 Foundation Skeleton, Common library
0002 InMemory Transport Prove the design before real transports
0003 Microservice SDK Core infrastructure, request handling
0004 Gateway Core, middleware, connection handling
0005 Protocol Features Heartbeat, routing, cancellation, streaming, limits
0006 Real Transports TCP, TLS, UDP, RabbitMQ
0007 Configuration Router config, microservice YAML
0008 Integration Authority, source generator
0009 Examples Reference implementation
0010 Migration WebService → Microservice

Sprint Dependency Graph

                    ┌─────────────────────────────────────┐
                    │  SPRINT_7000_0001_0001              │
                    │  Router Skeleton                    │
                    └───────────────┬─────────────────────┘
                                    │
                    ┌───────────────▼─────────────────────┐
                    │  SPRINT_7000_0001_0002              │
                    │  Common Library Models              │
                    └───────────────┬─────────────────────┘
                                    │
                    ┌───────────────▼─────────────────────┐
                    │  SPRINT_7000_0002_0001              │
                    │  InMemory Transport                 │
                    └───────────────┬─────────────────────┘
                                    │
         ┌──────────────────────────┼──────────────────────────┐
         │                          │                          │
         ▼                          │                          ▼
┌─────────────────────┐             │             ┌─────────────────────┐
│ SPRINT_7000_0003_*  │             │             │ SPRINT_7000_0004_*  │
│ Microservice SDK    │             │             │ Gateway             │
│ (2 sprints)         │◄────────────┼────────────►│ (3 sprints)         │
└─────────┬───────────┘             │             └─────────┬───────────┘
          │                         │                       │
          └─────────────────────────┼───────────────────────┘
                                    │
                    ┌───────────────▼─────────────────────┐
                    │  SPRINT_7000_0005_0001-0005         │
                    │  Protocol Features (sequential)     │
                    │  Heartbeat → Routing → Cancel       │
                    │  → Streaming → Payload Limits       │
                    └───────────────┬─────────────────────┘
                                    │
         ┌──────────────────────────┼──────────────────────────┐
         │                          │                          │
         ▼                          ▼                          ▼
┌─────────────────┐      ┌─────────────────┐      ┌─────────────────┐
│ TCP Transport   │      │ UDP Transport   │      │ RabbitMQ        │
│ 7000_0006_0001  │      │ 7000_0006_0003  │      │ 7000_0006_0004  │
└────────┬────────┘      └─────────────────┘      └─────────────────┘
         │
         ▼
┌─────────────────┐
│ TLS Transport   │
│ 7000_0006_0002  │
└────────┬────────┘
         │
         └──────────────────────────┬──────────────────────────┘
                                    │
                    ┌───────────────▼─────────────────────┐
                    │  SPRINT_7000_0007_0001-0002         │
                    │  Configuration (sequential)         │
                    └───────────────┬─────────────────────┘
                                    │
         ┌──────────────────────────┼──────────────────────────┐
         │                          │                          │
         ▼                          │                          ▼
┌─────────────────────┐             │             ┌─────────────────────┐
│ Authority Integration│             │             │ Source Generator    │
│ 7000_0008_0001      │◄────────────┼────────────►│ 7000_0008_0002      │
└─────────────────────┘             │             └─────────────────────┘
                                    │
                    ┌───────────────▼─────────────────────┐
                    │  SPRINT_7000_0009_0001              │
                    │  Reference Example                  │
                    └───────────────┬─────────────────────┘
                                    │
                    ┌───────────────▼─────────────────────┐
                    │  SPRINT_7000_0010_0001              │
                    │  Migration                          │
                    │  (Connects to rest of StellaOps)    │
                    └─────────────────────────────────────┘

Parallel Execution Opportunities

These sprints can run in parallel:

Phase Parallel Track A Parallel Track B Parallel Track C
After InMemory SDK Core (0003_0001) Gateway Core (0004_0001) -
After Protocol TCP (0006_0001) UDP (0006_0003) RabbitMQ (0006_0004)
After TCP TLS (0006_0002) (continues above) (continues above)
After Config Authority (0008_0001) Source Gen (0008_0002) -

Sprint Status Overview

Sprint Name Status Working Directory
7000-0001-0001 Router Skeleton DONE Multiple (see sprint)
7000-0001-0002 Common Library DONE src/__Libraries/StellaOps.Router.Common/
7000-0002-0001 InMemory Transport DONE src/__Libraries/StellaOps.Router.Transport.InMemory/
7000-0003-0001 SDK Core DONE src/__Libraries/StellaOps.Microservice/
7000-0003-0002 SDK Handlers DONE src/__Libraries/StellaOps.Microservice/
7000-0004-0001 Gateway Core DONE src/__Libraries/StellaOps.Router.Gateway/
7000-0004-0002 Gateway Middleware DONE src/__Libraries/StellaOps.Router.Gateway/
7000-0004-0003 Gateway Connections DONE src/__Libraries/StellaOps.Router.Gateway/ + src/__Libraries/StellaOps.Router.Transport.InMemory/
7000-0005-0001 Heartbeat & Health DONE src/__Libraries/StellaOps.Microservice/ + src/__Libraries/StellaOps.Router.Gateway/
7000-0005-0002 Routing Algorithm DONE src/__Libraries/StellaOps.Router.Gateway/
7000-0005-0003 Cancellation DONE src/__Libraries/StellaOps.Router.Gateway/ + src/__Libraries/StellaOps.Router.Transport.InMemory/
7000-0005-0004 Streaming DONE src/__Libraries/StellaOps.Router.Gateway/ + src/__Libraries/StellaOps.Router.Transport.InMemory/
7000-0005-0005 Payload Limits DONE src/__Libraries/StellaOps.Router.Gateway/
7000-0006-0001 TCP Transport DONE src/__Libraries/StellaOps.Router.Transport.Tcp/
7000-0006-0002 TLS Transport DONE src/__Libraries/StellaOps.Router.Transport.Tls/
7000-0006-0003 UDP Transport DONE src/__Libraries/StellaOps.Router.Transport.Udp/
7000-0006-0004 RabbitMQ Transport DONE src/__Libraries/StellaOps.Router.Transport.RabbitMq/
7000-0007-0001 Router Config DONE src/__Libraries/StellaOps.Router.Config/
7000-0007-0002 Microservice YAML DONE src/__Libraries/StellaOps.Microservice/
7000-0008-0001 Authority Integration DONE src/__Libraries/StellaOps.Router.Gateway/ + src/Authority/*
7000-0008-0002 Source Generator DONE src/__Libraries/StellaOps.Microservice.SourceGen/
7000-0009-0001 Reference Example DONE examples/router/
7000-0010-0001 Migration DONE Multiple (final integration)
7000-0011-0001 Router Testing Sprint DONE tests/ + src/__Libraries/__Tests/

Critical Path

The minimum path to a working router:

  1. 7000-0001-0001 → Skeleton
  2. 7000-0001-0002 → Common models
  3. 7000-0002-0001 → InMemory transport
  4. 7000-0003-0001 → SDK core
  5. 7000-0003-0002 → SDK handlers
  6. 7000-0004-0001 → Gateway core
  7. 7000-0004-0002 → Gateway middleware
  8. 7000-0004-0003 → Gateway connections

After these 8 sprints, you have a working router with InMemory transport for testing.

Isolation Strategy

The router is developed in isolation using:

  1. Separate solution file: StellaOps.Router.sln
  2. Dedicated directories: All router code in new directories
  3. No changes to existing modules: Until migration sprint
  4. InMemory transport first: No network dependencies during core development

This ensures:

  • Router development doesn't impact existing StellaOps builds
  • Agents can work independently on router without merge conflicts
  • Full testing possible without real infrastructure
  • Migration is a conscious, controlled step

Agent Assignment Guidance

For maximum parallelization:

  • Foundation Agent: Sprints 7000-0001-0001, 7000-0001-0002
  • SDK Agent: Sprints 7000-0003-0001, 7000-0003-0002
  • Gateway Agent: Sprints 7000-0004-0001, 7000-0004-0002, 7000-0004-0003
  • Transport Agent: Sprints 7000-0002-0001, 7000-0006-*
  • Protocol Agent: Sprints 7000-0005-*
  • Config Agent: Sprints 7000-0007-*
  • Integration Agent: Sprints 7000-0008-*, 7000-0010-0001
  • Documentation Agent: Sprint 7000-0009-0001

Invariants (Never Violate)

From specs.md, these are non-negotiable:

  • Method + Path is the endpoint identity
  • Strict semver for version matching
  • Region from GatewayNodeConfig.Region (never from headers/host)
  • No HTTP transport between gateway and microservices
  • RequiringClaims (not AllowedRoles) for authorization
  • Opaque body handling (router doesn't interpret payloads)

Any change to these invariants requires updating specs.md first.