Context
Follow-up from #1113 (versioning infrastructure evaluation). These configuration entities were identified as high-value candidates for versioning via the generic VersionSnapshot[T] infrastructure from #1076.
Candidates
EvaluationConfig (HIGH value, TRIVIAL migration)
- Location:
src/synthorg/hr/evaluation/config.py
- Why: Scoring framework changes affect all agent evaluations. Audit trail needed for "which config was active when this agent was evaluated?"
- Rollback value: HIGH -- revert to prior scoring methodology
- Change frequency: Low (quarterly/annually)
BudgetConfig (HIGH value, TRIVIAL migration)
- Location:
src/synthorg/budget/config.py
- Why: Cost policy changes affect spending behavior. Trace cost spikes to policy changes.
- Rollback value: MEDIUM -- revert quota policies
- Change frequency: Low (every few weeks)
CompanyStructure (HIGH value, MEDIUM migration)
- Location:
src/synthorg/core/company.py (ReportingLine, Department, Company)
- Why: Org chart changes are major events. Compliance-critical for approval chain audits ("who was authorized to approve this task?")
- Rollback value: HIGH -- revert org restructuring
- Change frequency: Very low (2-4 times/year)
Implementation
For each candidate:
- Create
<entity>_versions table via SQLiteVersionRepository[T]
- Wire into persistence backend
- Use
VersioningService[T].snapshot_if_changed() at mutation points
- Add API endpoint for listing historical configs
- Tests
Depends on #1131 (WorkflowDefinitionVersion migration validates the pattern).
Context
Follow-up from #1113 (versioning infrastructure evaluation). These configuration entities were identified as high-value candidates for versioning via the generic
VersionSnapshot[T]infrastructure from #1076.Candidates
EvaluationConfig (HIGH value, TRIVIAL migration)
src/synthorg/hr/evaluation/config.pyBudgetConfig (HIGH value, TRIVIAL migration)
src/synthorg/budget/config.pyCompanyStructure (HIGH value, MEDIUM migration)
src/synthorg/core/company.py(ReportingLine, Department, Company)Implementation
For each candidate:
<entity>_versionstable viaSQLiteVersionRepository[T]VersioningService[T].snapshot_if_changed()at mutation pointsDepends on #1131 (WorkflowDefinitionVersion migration validates the pattern).