8c975352b8
---ci---
phase: 1-5
milestone: v0.11
project: ci
status: execute
decisions:
- id: D-092
decision: Independent sessions via AgentSession (not shared state)
rationale: Aligns with git-native model; sessions communicate through commits and .ciagent/ files
confidence: 0.90
- id: D-093
decision: Personas as runtime configs (not new Agent classes)
rationale: Less code, more flexible. Persona md files define domain knowledge and framework opinions.
confidence: 0.88
- id: D-094
decision: Lead developer as task decomposer (not separate pipeline stage)
rationale: EXECUTE stays one stage. Lead decomposes before execution, each persona group runs.
confidence: 0.85
- id: D-095
decision: File-based git locking (not DB or IPC)
rationale: Git-native. .session-lock files are simple JSON with session ID, timestamp, project slug.
confidence: 0.87
- id: D-096
decision: Territory enforcement with warn/strict modes
rationale: Warn for teams learning boundaries. Strict for mature projects. Configurable per-project.
confidence: 0.82
- id: D-097
decision: Task decomposition by file patterns + requirement IDs
rationale: File patterns are deterministic; no LLM needed. Requirement IDs in PLAN.md already map to domains.
confidence: 0.88
requirements:
covered: [SESSION-01, SESSION-02, SESSION-03, SESSION-04, SESSION-05, PERSONA-01, PERSONA-02, PERSONA-03, PERSONA-04, PERSONA-05, PERSONA-06, PERSONA-07, PERSONA-08, PERSONA-09, PERSONA-10, PERSONA-11, CLI-01, CLI-02, CLI-03, CLI-04, INTEG-01, INTEG-02, INTEG-03, INTEG-04, INTEG-05]
---/ci---
29 lines
707 B
TypeScript
29 lines
707 B
TypeScript
import { PipelineStage } from "./pipeline.js";
|
|
|
|
export type SessionStatus = "pending" | "running" | "paused" | "completed" | "failed" | "cancelled";
|
|
|
|
export type SessionIsolation = "branch";
|
|
|
|
export interface SessionConfig {
|
|
max_concurrent_sessions: number;
|
|
session_timeout_ms: number;
|
|
session_isolation: SessionIsolation;
|
|
}
|
|
|
|
export interface SessionInfo {
|
|
id: string;
|
|
project_slug: string;
|
|
project_path: string;
|
|
phase: number;
|
|
stage: PipelineStage;
|
|
status: SessionStatus;
|
|
started_at: string;
|
|
last_updated: string;
|
|
error?: string;
|
|
}
|
|
|
|
export const DEFAULT_SESSION_CONFIG: SessionConfig = {
|
|
max_concurrent_sessions: 3,
|
|
session_timeout_ms: 3600000,
|
|
session_isolation: "branch",
|
|
}; |