Private
Public Access
The track directory was created at the start of the fix but the spec.md, plan.md, and metadata.json were never committed. They are committed now (the implementation has been done; this is the planning artifact pair). The plan is marked as executed via the per-file atomic commits that landed during the fix; the state.toml is already set to status=completed. Refs: conductor/tracks/tier2_no_appdata_20260618
79 lines
4.2 KiB
JSON
79 lines
4.2 KiB
JSON
{
|
|
"id": "tier2_no_appdata_20260618",
|
|
"name": "Tier 2 Sandbox - Move State/Failures Off AppData",
|
|
"date": "2026-06-18",
|
|
"type": "fix",
|
|
"priority": "A",
|
|
"spec": "conductor/tracks/tier2_no_appdata_20260618/spec.md",
|
|
"plan": "conductor/tracks/tier2_no_appdata_20260618/plan.md",
|
|
"status": "active",
|
|
"blocked_by": {},
|
|
"blocks": {},
|
|
"scope": {
|
|
"new_files": [],
|
|
"modified_files": [
|
|
"scripts/tier2/failcount.py",
|
|
"scripts/tier2/write_report.py",
|
|
"scripts/tier2/run_track.py",
|
|
"scripts/tier2/setup_tier2_clone.ps1",
|
|
"scripts/tier2/run_tier2_sandboxed.ps1",
|
|
"scripts/tier2/write_track_completion_report.py",
|
|
"conductor/tier2/opencode.json.fragment",
|
|
"conductor/tier2/agents/tier2-autonomous.md",
|
|
"conductor/tier2/commands/tier-2-auto-execute.md",
|
|
"docs/guide_tier2_autonomous.md",
|
|
"conductor/workflow.md",
|
|
".gitignore",
|
|
"tests/test_tier2_slash_command_spec.py",
|
|
"tests/test_no_temp_writes.py"
|
|
],
|
|
"deleted_files": []
|
|
},
|
|
"verification_criteria": [
|
|
"scripts/tier2/failcount.py default state dir is scripts/tier2/state/<track>/ (Path.cwd()-relative)",
|
|
"scripts/tier2/write_report.py default failures dir is scripts/tier2/failures/ (Path.cwd()-relative)",
|
|
"scripts/tier2/run_track.py chdirs to repo_path before state/report calls",
|
|
"conductor/tier2/opencode.json.fragment has NO AppData allow rules in read/write",
|
|
"conductor/tier2/opencode.json.fragment has *AppData\\* bash deny rule (in addition to *AppData\\Local\\Temp\\*)",
|
|
"conductor/tier2/agents/tier2-autonomous.md contains 'NEVER USE APPDATA' or equivalent phrasing; no AppData path strings",
|
|
"conductor/tier2/commands/tier-2-auto-execute.md contains no AppData path strings",
|
|
"scripts/tier2/setup_tier2_clone.ps1 has no AppData variable declarations or New-Item/Set-Acl calls",
|
|
"scripts/tier2/run_tier2_sandboxed.ps1 has no AppData variable declarations",
|
|
"docs/guide_tier2_autonomous.md has no AppData path strings",
|
|
"conductor/workflow.md hard-bans table row says 'File access outside Tier 2 clone (AppData denied)'",
|
|
".gitignore has scripts/tier2/state/ and scripts/tier2/failures/",
|
|
"tests/test_tier2_slash_command_spec.py asserts NO AppData refs in agent prompt and command",
|
|
"uv run python scripts/run_tests_batched.py passes for test_failcount.py + test_tier2_report_writer.py + test_tier2_slash_command_spec.py + test_no_temp_writes.py",
|
|
"uv run python scripts/audit_no_temp_writes.py --strict exits 0"
|
|
],
|
|
"regressions_and_pre_existing_failures": [],
|
|
"pre_existing_failures_remaining": [],
|
|
"deferred_to_followup_tracks": [
|
|
{
|
|
"title": "Re-bootstrap the live Tier 2 clone",
|
|
"description": "The user re-runs pwsh -File scripts/tier2/setup_tier2_clone.ps1 after this track merges so the clone picks up the new inside-clone conventions and the AppData-denied permissions.",
|
|
"track_status": "manual user action"
|
|
}
|
|
],
|
|
"estimated_effort": {
|
|
"method": "scope (per workflow.md §Tier 1 Track Initialization Rules). NO day estimates.",
|
|
"scope": "11 source files + 3 test files + 1 doc + 1 workflow.md section + 1 .gitignore; ~15 atomic commits across 6 phases."
|
|
},
|
|
"risk_register": [
|
|
{
|
|
"risk": "An existing Tier 2 run is using the old AppData config and its state cannot be migrated automatically",
|
|
"likelihood": "high",
|
|
"mitigation": "Document in the spec that the user's existing live_gui_test_fixes_20260618 run is unaffected by this change until re-bootstrap. State on AppData is discarded on next bootstrap."
|
|
},
|
|
{
|
|
"risk": "The AppData path strings are hard-coded in a downstream script we missed",
|
|
"likelihood": "medium",
|
|
"mitigation": "Run scripts/audit_no_temp_writes.py --strict after the changes. Run a grep for 'AppData' across scripts/ and conductor/ and docs/ as the final verification."
|
|
},
|
|
{
|
|
"risk": "The TIER2_STATE_DIR / TIER2_FAILURES_DIR env-var escape hatch is removed by mistake",
|
|
"likelihood": "low",
|
|
"mitigation": "The existing tests (tests/test_failcount.py:176,190,198 and tests/test_tier2_report_writer.py:25,33,40,71) monkeypatch the env var. They must still pass after the change."
|
|
}
|
|
]
|
|
} |