chore: format tracked sf migrating projections
This commit is contained in:
parent
f2db20b4d6
commit
a0eee1de72
6 changed files with 959 additions and 995 deletions
|
|
@ -1,102 +1,96 @@
|
|||
{
|
||||
"schemaVersion": 1,
|
||||
"origin": "db-projection",
|
||||
"generatedAt": "2026-05-06T21:03:18.498Z",
|
||||
"sourceDbPath": "/home/mhugo/code/singularity-forge/.sf/sf.db",
|
||||
"milestone": {
|
||||
"id": "M001-6377a4",
|
||||
"title": "Consolidate Memory Systems into Unified node:sqlite Store",
|
||||
"status": "active",
|
||||
"vision": "Replace the three fragmented memory systems (KNOWLEDGE.md, memory-store.js/sf.db, and memory extension/sql.js) with a single unified memory store backed by node:sqlite. All memory ingestion, querying, and prompt injection flows through one canonical database table with semantic search, confidence ranking, and automatic maintenance.",
|
||||
"dependsOn": [],
|
||||
"successCriteria": [
|
||||
"A single `memories` table in `sf.db` stores all project memory with categories, confidence, hit_count, and embeddings",
|
||||
"Session transcript extraction pipeline writes directly to `sf.db` instead of separate `agent.db`",
|
||||
"KNOWLEDGE.md is retired as a live system; existing entries are optionally migrated",
|
||||
"Memory query returns ranked results via `getRelevantMemoriesRanked(query, limit)` using node:sqlite",
|
||||
"System prompt injection uses the unified memory store, not multiple competing sources",
|
||||
"All better-sqlite3 and sql.js dependencies for memory are removed"
|
||||
],
|
||||
"definitionOfDone": [
|
||||
"All three legacy memory systems are removed or deprecated",
|
||||
"Unified memory store passes all new tests",
|
||||
"Migration script can import existing KNOWLEDGE.md and old agent.db data",
|
||||
"Documentation updated to describe the single memory system",
|
||||
"No references to better-sqlite3 or sql.js in memory-related code"
|
||||
],
|
||||
"requirementCoverage": "Covers: unified memory storage, semantic search, session-based learning. Partially covers: cross-session context persistence. Leaves for later: multi-project memory sharing, cloud-synced memory.",
|
||||
"boundaryMapMarkdown": "### S01 → S02\n\nProduces:\n- Unified `memories` table schema in `sf.db`\n- `MemoryStore` class with CRUD, query, and ranking API\n- `formatMemoriesForPrompt()` for system prompt injection\n\nConsumes:\n- Existing `sf-db.js` adapter and schema initialization\n\n### S02 → S03\n\nProduces:\n- Session transcript scanner and LLM extraction pipeline\n- Direct write path to `sf.db` memories table\n- `/memory` command reading from unified store\n\nConsumes:\n- `MemoryStore` API from S01\n- `completeSimple` LLM call from pi-ai\n\n### S03 → S04\n\nProduces:\n- KNOWLEDGE.md importer\n- Legacy agent.db migration script\n- Deprecation warnings for old memory paths\n\nConsumes:\n- `MemoryStore` API from S01\n- Existing KNOWLEDGE.md and agent.db files"
|
||||
},
|
||||
"slices": [
|
||||
{
|
||||
"id": "S01",
|
||||
"title": "Unified Memory Schema and Core API",
|
||||
"status": "pending",
|
||||
"risk": "high",
|
||||
"depends": [],
|
||||
"demo": "A test creates a memory, queries it by relevance, and formats it for prompt injection — all via node:sqlite",
|
||||
"goal": "Create the canonical `memories` table in `sf.db` and a `MemoryStore` class that replaces memory-store.js with a node:sqlite implementation",
|
||||
"successCriteria": "- `sf.db` has a `memories` table with: id, category, content, confidence, hit_count, source, session_id, source_unit_type, source_unit_id, created_at, updated_at, superseded_by\n- `MemoryStore` class exposes: createMemory, updateMemory, reinforceMemory, supersedeMemory, getActiveMemoriesRanked, getRelevantMemoriesRanked, formatMemoriesForPrompt\n- All methods gracefully degrade when DB is unavailable\n- Unit tests cover CRUD, ranking, source filtering, and embedding fallback",
|
||||
"proofLevel": "contract",
|
||||
"integrationClosure": "Produces the MemoryStore API that all downstream slices consume. No external wiring yet.",
|
||||
"observabilityImpact": "No runtime signals added yet; tests verify table schema and query correctness.",
|
||||
"isSketch": false,
|
||||
"sketchScope": "",
|
||||
"sequence": 1
|
||||
},
|
||||
{
|
||||
"id": "S02",
|
||||
"title": "Session Transcript Extraction Pipeline",
|
||||
"status": "pending",
|
||||
"risk": "medium",
|
||||
"depends": [
|
||||
"S01"
|
||||
],
|
||||
"demo": "After running a session, the pipeline extracts memories and stores them in sf.db; `/memory view` shows the extracted knowledge",
|
||||
"goal": "Port the two-phase extraction pipeline from the memory extension to write directly into the unified sf.db store instead of separate agent.db",
|
||||
"successCriteria": "- Session .jsonl files are scanned and filtered for the current cwd\n- Phase 1: LLM extracts durable knowledge from transcripts, writes to sf.db memories table with source='extracted'\n- Phase 2: Consolidation deduplicates and ranks memories\n- /memory command reads from unified store\n- Pipeline runs fire-and-forget on session start without blocking dispatch\n- Rate limiting prevents store bloat (max 10 memories per session)",
|
||||
"proofLevel": "integration",
|
||||
"integrationClosure": "Wires the extraction pipeline into the session lifecycle and replaces the old memory extension storage path.",
|
||||
"observabilityImpact": "Pipeline logs extraction stats (processed, errors) to the console. Memory store tracks hit_count for reinforcement.",
|
||||
"isSketch": false,
|
||||
"sketchScope": "",
|
||||
"sequence": 2
|
||||
},
|
||||
{
|
||||
"id": "S03",
|
||||
"title": "Migration and Legacy Deprecation",
|
||||
"status": "pending",
|
||||
"risk": "low",
|
||||
"depends": [
|
||||
"S02"
|
||||
],
|
||||
"demo": "Running a migration command imports existing KNOWLEDGE.md and agent.db memories into sf.db; old files are left as read-only backups",
|
||||
"goal": "Provide a one-time migration path from KNOWLEDGE.md and the old agent.db into the unified store, then deprecate the legacy systems",
|
||||
"successCriteria": "- Migration script can import KNOWLEDGE.md entries as memories with source='migrated'\n- Migration script can import agent.db stage1_outputs as memories with source='extracted'\n- Dry-run mode reports counts without modifying database\n- sf.db is automatically backed up before migration\n- knowledge-compounding.js and knowledge-injector.js are removed or no-op'd\n- Memory extension uses MemoryStore instead of sql.js\n- CHANGELOG documents the consolidation and deprecation",
|
||||
"proofLevel": "contract",
|
||||
"integrationClosure": "Cleans up legacy code paths and provides a safe migration for existing users.",
|
||||
"observabilityImpact": "Migration script reports counts of imported records per source. Deprecation warnings logged for old API usage.",
|
||||
"isSketch": false,
|
||||
"sketchScope": "",
|
||||
"sequence": 3
|
||||
},
|
||||
{
|
||||
"id": "S04",
|
||||
"title": "System Prompt Integration and Cleanup",
|
||||
"status": "pending",
|
||||
"risk": "medium",
|
||||
"depends": [
|
||||
"S03"
|
||||
],
|
||||
"demo": "Starting a new session injects relevant ranked memories from sf.db into the system prompt; no references to old memory systems remain in the codebase",
|
||||
"goal": "Replace all system prompt injection paths to use the unified memory store, remove dead code, and verify end-to-end",
|
||||
"successCriteria": "Not provided.",
|
||||
"proofLevel": "Not provided.",
|
||||
"integrationClosure": "Not provided.",
|
||||
"observabilityImpact": "Not provided.",
|
||||
"isSketch": false,
|
||||
"sketchScope": "",
|
||||
"sequence": 4
|
||||
}
|
||||
]
|
||||
"schemaVersion": 1,
|
||||
"origin": "db-projection",
|
||||
"generatedAt": "2026-05-06T21:03:18.498Z",
|
||||
"sourceDbPath": "/home/mhugo/code/singularity-forge/.sf/sf.db",
|
||||
"milestone": {
|
||||
"id": "M001-6377a4",
|
||||
"title": "Consolidate Memory Systems into Unified node:sqlite Store",
|
||||
"status": "active",
|
||||
"vision": "Replace the three fragmented memory systems (KNOWLEDGE.md, memory-store.js/sf.db, and memory extension/sql.js) with a single unified memory store backed by node:sqlite. All memory ingestion, querying, and prompt injection flows through one canonical database table with semantic search, confidence ranking, and automatic maintenance.",
|
||||
"dependsOn": [],
|
||||
"successCriteria": [
|
||||
"A single `memories` table in `sf.db` stores all project memory with categories, confidence, hit_count, and embeddings",
|
||||
"Session transcript extraction pipeline writes directly to `sf.db` instead of separate `agent.db`",
|
||||
"KNOWLEDGE.md is retired as a live system; existing entries are optionally migrated",
|
||||
"Memory query returns ranked results via `getRelevantMemoriesRanked(query, limit)` using node:sqlite",
|
||||
"System prompt injection uses the unified memory store, not multiple competing sources",
|
||||
"All better-sqlite3 and sql.js dependencies for memory are removed"
|
||||
],
|
||||
"definitionOfDone": [
|
||||
"All three legacy memory systems are removed or deprecated",
|
||||
"Unified memory store passes all new tests",
|
||||
"Migration script can import existing KNOWLEDGE.md and old agent.db data",
|
||||
"Documentation updated to describe the single memory system",
|
||||
"No references to better-sqlite3 or sql.js in memory-related code"
|
||||
],
|
||||
"requirementCoverage": "Covers: unified memory storage, semantic search, session-based learning. Partially covers: cross-session context persistence. Leaves for later: multi-project memory sharing, cloud-synced memory.",
|
||||
"boundaryMapMarkdown": "### S01 → S02\n\nProduces:\n- Unified `memories` table schema in `sf.db`\n- `MemoryStore` class with CRUD, query, and ranking API\n- `formatMemoriesForPrompt()` for system prompt injection\n\nConsumes:\n- Existing `sf-db.js` adapter and schema initialization\n\n### S02 → S03\n\nProduces:\n- Session transcript scanner and LLM extraction pipeline\n- Direct write path to `sf.db` memories table\n- `/memory` command reading from unified store\n\nConsumes:\n- `MemoryStore` API from S01\n- `completeSimple` LLM call from pi-ai\n\n### S03 → S04\n\nProduces:\n- KNOWLEDGE.md importer\n- Legacy agent.db migration script\n- Deprecation warnings for old memory paths\n\nConsumes:\n- `MemoryStore` API from S01\n- Existing KNOWLEDGE.md and agent.db files"
|
||||
},
|
||||
"slices": [
|
||||
{
|
||||
"id": "S01",
|
||||
"title": "Unified Memory Schema and Core API",
|
||||
"status": "pending",
|
||||
"risk": "high",
|
||||
"depends": [],
|
||||
"demo": "A test creates a memory, queries it by relevance, and formats it for prompt injection — all via node:sqlite",
|
||||
"goal": "Create the canonical `memories` table in `sf.db` and a `MemoryStore` class that replaces memory-store.js with a node:sqlite implementation",
|
||||
"successCriteria": "- `sf.db` has a `memories` table with: id, category, content, confidence, hit_count, source, session_id, source_unit_type, source_unit_id, created_at, updated_at, superseded_by\n- `MemoryStore` class exposes: createMemory, updateMemory, reinforceMemory, supersedeMemory, getActiveMemoriesRanked, getRelevantMemoriesRanked, formatMemoriesForPrompt\n- All methods gracefully degrade when DB is unavailable\n- Unit tests cover CRUD, ranking, source filtering, and embedding fallback",
|
||||
"proofLevel": "contract",
|
||||
"integrationClosure": "Produces the MemoryStore API that all downstream slices consume. No external wiring yet.",
|
||||
"observabilityImpact": "No runtime signals added yet; tests verify table schema and query correctness.",
|
||||
"isSketch": false,
|
||||
"sketchScope": "",
|
||||
"sequence": 1
|
||||
},
|
||||
{
|
||||
"id": "S02",
|
||||
"title": "Session Transcript Extraction Pipeline",
|
||||
"status": "pending",
|
||||
"risk": "medium",
|
||||
"depends": ["S01"],
|
||||
"demo": "After running a session, the pipeline extracts memories and stores them in sf.db; `/memory view` shows the extracted knowledge",
|
||||
"goal": "Port the two-phase extraction pipeline from the memory extension to write directly into the unified sf.db store instead of separate agent.db",
|
||||
"successCriteria": "- Session .jsonl files are scanned and filtered for the current cwd\n- Phase 1: LLM extracts durable knowledge from transcripts, writes to sf.db memories table with source='extracted'\n- Phase 2: Consolidation deduplicates and ranks memories\n- /memory command reads from unified store\n- Pipeline runs fire-and-forget on session start without blocking dispatch\n- Rate limiting prevents store bloat (max 10 memories per session)",
|
||||
"proofLevel": "integration",
|
||||
"integrationClosure": "Wires the extraction pipeline into the session lifecycle and replaces the old memory extension storage path.",
|
||||
"observabilityImpact": "Pipeline logs extraction stats (processed, errors) to the console. Memory store tracks hit_count for reinforcement.",
|
||||
"isSketch": false,
|
||||
"sketchScope": "",
|
||||
"sequence": 2
|
||||
},
|
||||
{
|
||||
"id": "S03",
|
||||
"title": "Migration and Legacy Deprecation",
|
||||
"status": "pending",
|
||||
"risk": "low",
|
||||
"depends": ["S02"],
|
||||
"demo": "Running a migration command imports existing KNOWLEDGE.md and agent.db memories into sf.db; old files are left as read-only backups",
|
||||
"goal": "Provide a one-time migration path from KNOWLEDGE.md and the old agent.db into the unified store, then deprecate the legacy systems",
|
||||
"successCriteria": "- Migration script can import KNOWLEDGE.md entries as memories with source='migrated'\n- Migration script can import agent.db stage1_outputs as memories with source='extracted'\n- Dry-run mode reports counts without modifying database\n- sf.db is automatically backed up before migration\n- knowledge-compounding.js and knowledge-injector.js are removed or no-op'd\n- Memory extension uses MemoryStore instead of sql.js\n- CHANGELOG documents the consolidation and deprecation",
|
||||
"proofLevel": "contract",
|
||||
"integrationClosure": "Cleans up legacy code paths and provides a safe migration for existing users.",
|
||||
"observabilityImpact": "Migration script reports counts of imported records per source. Deprecation warnings logged for old API usage.",
|
||||
"isSketch": false,
|
||||
"sketchScope": "",
|
||||
"sequence": 3
|
||||
},
|
||||
{
|
||||
"id": "S04",
|
||||
"title": "System Prompt Integration and Cleanup",
|
||||
"status": "pending",
|
||||
"risk": "medium",
|
||||
"depends": ["S03"],
|
||||
"demo": "Starting a new session injects relevant ranked memories from sf.db into the system prompt; no references to old memory systems remain in the codebase",
|
||||
"goal": "Replace all system prompt injection paths to use the unified memory store, remove dead code, and verify end-to-end",
|
||||
"successCriteria": "Not provided.",
|
||||
"proofLevel": "Not provided.",
|
||||
"integrationClosure": "Not provided.",
|
||||
"observabilityImpact": "Not provided.",
|
||||
"isSketch": false,
|
||||
"sketchScope": "",
|
||||
"sequence": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,28 +1,28 @@
|
|||
{
|
||||
"schemaVersion": 3,
|
||||
"status": "warming",
|
||||
"startedAt": "2026-05-06T21:03:03.705Z",
|
||||
"command": "/nix/store/vzx1mi9c0xfadmsm9dhd83d005cb1qs9-coreutils-9.8/bin/timeout",
|
||||
"cwd": "/home/mhugo/code/singularity-forge",
|
||||
"args": [
|
||||
"--kill-after=10",
|
||||
"600",
|
||||
"/home/mhugo/.cargo/bin/sift",
|
||||
"search",
|
||||
"--json",
|
||||
"--strategy",
|
||||
"page-index-hybrid",
|
||||
"--limit",
|
||||
"1",
|
||||
"--retriever-timeout-ms",
|
||||
"30000",
|
||||
".",
|
||||
"repo architecture source tests entrypoints configuration"
|
||||
],
|
||||
"scope": ".",
|
||||
"siftBinary": "/home/mhugo/.cargo/bin/sift",
|
||||
"hardTimeoutSec": 600,
|
||||
"searchCache": "/home/mhugo/code/singularity-forge/.sf/runtime/sift/search-cache",
|
||||
"tmpDir": "/home/mhugo/code/singularity-forge/.sf/runtime/sift/tmp",
|
||||
"pid": 602029
|
||||
"schemaVersion": 3,
|
||||
"status": "warming",
|
||||
"startedAt": "2026-05-06T21:03:03.705Z",
|
||||
"command": "/nix/store/vzx1mi9c0xfadmsm9dhd83d005cb1qs9-coreutils-9.8/bin/timeout",
|
||||
"cwd": "/home/mhugo/code/singularity-forge",
|
||||
"args": [
|
||||
"--kill-after=10",
|
||||
"600",
|
||||
"/home/mhugo/.cargo/bin/sift",
|
||||
"search",
|
||||
"--json",
|
||||
"--strategy",
|
||||
"page-index-hybrid",
|
||||
"--limit",
|
||||
"1",
|
||||
"--retriever-timeout-ms",
|
||||
"30000",
|
||||
".",
|
||||
"repo architecture source tests entrypoints configuration"
|
||||
],
|
||||
"scope": ".",
|
||||
"siftBinary": "/home/mhugo/.cargo/bin/sift",
|
||||
"hardTimeoutSec": 600,
|
||||
"searchCache": "/home/mhugo/code/singularity-forge/.sf/runtime/sift/search-cache",
|
||||
"tmpDir": "/home/mhugo/code/singularity-forge/.sf/runtime/sift/tmp",
|
||||
"pid": 602029
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
{
|
||||
"schemaVersion": 1,
|
||||
"generatedAt": "2026-05-06T21:03:15.738Z",
|
||||
"verdict": "clear",
|
||||
"classification": "healthy",
|
||||
"signals": {
|
||||
"lock": "missing",
|
||||
"parity": "ok",
|
||||
"ledger": "consistent",
|
||||
"runtimeProjection": "ok",
|
||||
"wrapper": "unknown"
|
||||
},
|
||||
"currentUnit": null,
|
||||
"latestRun": null,
|
||||
"runtimeUnits": [],
|
||||
"issues": [],
|
||||
"recommendations": [],
|
||||
"reportPath": "/home/mhugo/code/singularity-forge/.sf/runtime/uok-diagnostics.json"
|
||||
"schemaVersion": 1,
|
||||
"generatedAt": "2026-05-06T21:03:15.738Z",
|
||||
"verdict": "clear",
|
||||
"classification": "healthy",
|
||||
"signals": {
|
||||
"lock": "missing",
|
||||
"parity": "ok",
|
||||
"ledger": "consistent",
|
||||
"runtimeProjection": "ok",
|
||||
"wrapper": "unknown"
|
||||
},
|
||||
"currentUnit": null,
|
||||
"latestRun": null,
|
||||
"runtimeUnits": [],
|
||||
"issues": [],
|
||||
"recommendations": [],
|
||||
"reportPath": "/home/mhugo/code/singularity-forge/.sf/runtime/uok-diagnostics.json"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,27 +1,27 @@
|
|||
{
|
||||
"generatedAt": "2026-05-06T21:03:18.493Z",
|
||||
"sourcePath": "/home/mhugo/code/singularity-forge/.sf/runtime/uok-parity.jsonl",
|
||||
"totalEvents": 0,
|
||||
"paths": {},
|
||||
"statuses": {},
|
||||
"criticalMismatches": [],
|
||||
"historicalCriticalMismatches": [],
|
||||
"currentErrorEvents": 0,
|
||||
"historicalErrorEvents": 0,
|
||||
"enterEvents": 0,
|
||||
"exitEvents": 0,
|
||||
"missingExitEvents": 0,
|
||||
"legacyMissingExitEvents": 0,
|
||||
"ledgerRunCount": 0,
|
||||
"unmatchedRuns": [],
|
||||
"freshUnmatchedRuns": [],
|
||||
"historicalUnmatchedRuns": [],
|
||||
"totalDiffs": 0,
|
||||
"divergencesByPlane": {
|
||||
"plan": 0,
|
||||
"graph": 0,
|
||||
"model-policy": 0,
|
||||
"audit-envelope": 0,
|
||||
"gitops": 0
|
||||
}
|
||||
"generatedAt": "2026-05-06T21:03:18.493Z",
|
||||
"sourcePath": "/home/mhugo/code/singularity-forge/.sf/runtime/uok-parity.jsonl",
|
||||
"totalEvents": 0,
|
||||
"paths": {},
|
||||
"statuses": {},
|
||||
"criticalMismatches": [],
|
||||
"historicalCriticalMismatches": [],
|
||||
"currentErrorEvents": 0,
|
||||
"historicalErrorEvents": 0,
|
||||
"enterEvents": 0,
|
||||
"exitEvents": 0,
|
||||
"missingExitEvents": 0,
|
||||
"legacyMissingExitEvents": 0,
|
||||
"ledgerRunCount": 0,
|
||||
"unmatchedRuns": [],
|
||||
"freshUnmatchedRuns": [],
|
||||
"historicalUnmatchedRuns": [],
|
||||
"totalDiffs": 0,
|
||||
"divergencesByPlane": {
|
||||
"plan": 0,
|
||||
"graph": 0,
|
||||
"model-policy": 0,
|
||||
"audit-envelope": 0,
|
||||
"gitops": 0
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,181 +1,181 @@
|
|||
{
|
||||
"schemaVersion": 1,
|
||||
"applied": [
|
||||
{
|
||||
"path": "src/AGENTS.md",
|
||||
"template": "src/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:ac5f874be887aed0bd29105a7c3b7e9269b4b3c0cc7b5b1506da0994c466cf01"
|
||||
},
|
||||
{
|
||||
"path": "tests/AGENTS.md",
|
||||
"template": "tests/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:dab2b9a31c2c48e07e4913cd8744be8553f279ea516ebc138730301ae401a683"
|
||||
},
|
||||
{
|
||||
"path": "docs/AGENTS.md",
|
||||
"template": "docs/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:b35804ce78ca309cab8769719f6e0738141f1121682fbd46490419abd2c6f870"
|
||||
},
|
||||
{
|
||||
"path": "docs/records/AGENTS.md",
|
||||
"template": "docs/records/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:dc21117dfa7607d7ce4cc6ce5724658348a95e9807673ff526b9cf02e2568de0"
|
||||
},
|
||||
{
|
||||
"path": "docs/RECORDS_KEEPER.md",
|
||||
"template": "docs/RECORDS_KEEPER.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:3872de9cd72bd9129814a5e77e3b86abe76bef33f3ca34e04ae7582b4cfd066a"
|
||||
},
|
||||
{
|
||||
"path": "docs/design-docs/AGENTS.md",
|
||||
"template": "docs/design-docs/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:707d43067edcfd33dc0a11db32d383f89739e187f95da4bda6b94575a9e3d272"
|
||||
},
|
||||
{
|
||||
"path": "docs/exec-plans/AGENTS.md",
|
||||
"template": "docs/exec-plans/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:7bd9f815617cb42b1f2c85e6d557986a2f1e7fbc081fcc4e71f3d14cecefc5f0"
|
||||
},
|
||||
{
|
||||
"path": "docs/generated/db-schema.md",
|
||||
"template": "docs/generated/db-schema.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:8488a607c1a2981654a3b030600d2e10627d132ebd0c75700648a08dede93368"
|
||||
},
|
||||
{
|
||||
"path": "docs/product-specs/index.md",
|
||||
"template": "docs/product-specs/index.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:ca3477e8d74fe277a2e0b2cdb3f03c235e294015a6ece2f571a82acc7475d31c"
|
||||
},
|
||||
{
|
||||
"path": "docs/product-specs/AGENTS.md",
|
||||
"template": "docs/product-specs/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:cc7b5687e8b1ea78848ee318ca5a25346e5a6ee0dc33b54506d8f56bc16f13c4"
|
||||
},
|
||||
{
|
||||
"path": "docs/references/design-system-reference-llms.txt",
|
||||
"template": "docs/references/design-system-reference-llms.txt",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:5a5a35a3f80c8b4433ad30c1f155b1e8c7fd245ce2a3def9627daa9f40854eb3"
|
||||
},
|
||||
{
|
||||
"path": "docs/references/nixpacks-llms.txt",
|
||||
"template": "docs/references/nixpacks-llms.txt",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:22f9a8549e3ced71d0b0a912c6dcdfb2ec83a573168ee1b44ca266f1eb0307bf"
|
||||
},
|
||||
{
|
||||
"path": "docs/references/uv-llms.txt",
|
||||
"template": "docs/references/uv-llms.txt",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:e8a998667c0f830a15b68e207f6b69e6377dd7e82728833f842678f72864e9b6"
|
||||
},
|
||||
{
|
||||
"path": "docs/FRONTEND.md",
|
||||
"template": "docs/FRONTEND.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:03087953d690c9902d35297720d1482262c1610e3050084f891db3be711571ef"
|
||||
},
|
||||
{
|
||||
"path": ".sf/harness/AGENTS.md",
|
||||
"template": ".sf/harness/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:685c41e601340086b8076263a71315c66554efdaeb074bc1b907eebf879174c6"
|
||||
},
|
||||
{
|
||||
"path": ".sf/harness/specs/AGENTS.md",
|
||||
"template": ".sf/harness/specs/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:0f4fbf4111704d05744e4a4e13a9bf3eada262f0da9517c2010f0b46f4bd3c45"
|
||||
},
|
||||
{
|
||||
"path": ".sf/harness/specs/bootstrap.md",
|
||||
"template": ".sf/harness/specs/bootstrap.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:b86ba7cf2cec39a7a9f9d94f885998cfe26eebfc5b76fdd8375ef125e927e0cf"
|
||||
},
|
||||
{
|
||||
"path": ".sf/harness/evals/AGENTS.md",
|
||||
"template": ".sf/harness/evals/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:6f88bf8a2bad95d8db5985c9b3317b9edd65592c12e98bb0bff1a24ec152d768"
|
||||
},
|
||||
{
|
||||
"path": ".sf/harness/graders/AGENTS.md",
|
||||
"template": ".sf/harness/graders/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:2db17feae1acfe62d85aafbe32d016873c3036d4d76e9dd0db478375fae0794e"
|
||||
},
|
||||
{
|
||||
"path": ".sf/PRINCIPLES.md",
|
||||
"template": ".sf/PRINCIPLES.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:9d5c50cb3d602f66468a33a4324068fab8a022fab0fd6940c371a5986af2947e"
|
||||
},
|
||||
{
|
||||
"path": ".sf/TASTE.md",
|
||||
"template": ".sf/TASTE.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:ee9ea8ade6f8434e9425a989bab9735d2068395978d61940e18679b93b1f11b0"
|
||||
},
|
||||
{
|
||||
"path": ".sf/ANTI-GOALS.md",
|
||||
"template": ".sf/ANTI-GOALS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:56b4f7d20d49e4558ac5aea5e967cf3475ef98d68dfa8985ba42b3e2b0d72e25"
|
||||
}
|
||||
]
|
||||
"schemaVersion": 1,
|
||||
"applied": [
|
||||
{
|
||||
"path": "src/AGENTS.md",
|
||||
"template": "src/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:ac5f874be887aed0bd29105a7c3b7e9269b4b3c0cc7b5b1506da0994c466cf01"
|
||||
},
|
||||
{
|
||||
"path": "tests/AGENTS.md",
|
||||
"template": "tests/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:dab2b9a31c2c48e07e4913cd8744be8553f279ea516ebc138730301ae401a683"
|
||||
},
|
||||
{
|
||||
"path": "docs/AGENTS.md",
|
||||
"template": "docs/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:b35804ce78ca309cab8769719f6e0738141f1121682fbd46490419abd2c6f870"
|
||||
},
|
||||
{
|
||||
"path": "docs/records/AGENTS.md",
|
||||
"template": "docs/records/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:dc21117dfa7607d7ce4cc6ce5724658348a95e9807673ff526b9cf02e2568de0"
|
||||
},
|
||||
{
|
||||
"path": "docs/RECORDS_KEEPER.md",
|
||||
"template": "docs/RECORDS_KEEPER.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:3872de9cd72bd9129814a5e77e3b86abe76bef33f3ca34e04ae7582b4cfd066a"
|
||||
},
|
||||
{
|
||||
"path": "docs/design-docs/AGENTS.md",
|
||||
"template": "docs/design-docs/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:707d43067edcfd33dc0a11db32d383f89739e187f95da4bda6b94575a9e3d272"
|
||||
},
|
||||
{
|
||||
"path": "docs/exec-plans/AGENTS.md",
|
||||
"template": "docs/exec-plans/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:7bd9f815617cb42b1f2c85e6d557986a2f1e7fbc081fcc4e71f3d14cecefc5f0"
|
||||
},
|
||||
{
|
||||
"path": "docs/generated/db-schema.md",
|
||||
"template": "docs/generated/db-schema.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:8488a607c1a2981654a3b030600d2e10627d132ebd0c75700648a08dede93368"
|
||||
},
|
||||
{
|
||||
"path": "docs/product-specs/index.md",
|
||||
"template": "docs/product-specs/index.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:ca3477e8d74fe277a2e0b2cdb3f03c235e294015a6ece2f571a82acc7475d31c"
|
||||
},
|
||||
{
|
||||
"path": "docs/product-specs/AGENTS.md",
|
||||
"template": "docs/product-specs/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:cc7b5687e8b1ea78848ee318ca5a25346e5a6ee0dc33b54506d8f56bc16f13c4"
|
||||
},
|
||||
{
|
||||
"path": "docs/references/design-system-reference-llms.txt",
|
||||
"template": "docs/references/design-system-reference-llms.txt",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:5a5a35a3f80c8b4433ad30c1f155b1e8c7fd245ce2a3def9627daa9f40854eb3"
|
||||
},
|
||||
{
|
||||
"path": "docs/references/nixpacks-llms.txt",
|
||||
"template": "docs/references/nixpacks-llms.txt",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:22f9a8549e3ced71d0b0a912c6dcdfb2ec83a573168ee1b44ca266f1eb0307bf"
|
||||
},
|
||||
{
|
||||
"path": "docs/references/uv-llms.txt",
|
||||
"template": "docs/references/uv-llms.txt",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:e8a998667c0f830a15b68e207f6b69e6377dd7e82728833f842678f72864e9b6"
|
||||
},
|
||||
{
|
||||
"path": "docs/FRONTEND.md",
|
||||
"template": "docs/FRONTEND.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:03087953d690c9902d35297720d1482262c1610e3050084f891db3be711571ef"
|
||||
},
|
||||
{
|
||||
"path": ".sf/harness/AGENTS.md",
|
||||
"template": ".sf/harness/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:685c41e601340086b8076263a71315c66554efdaeb074bc1b907eebf879174c6"
|
||||
},
|
||||
{
|
||||
"path": ".sf/harness/specs/AGENTS.md",
|
||||
"template": ".sf/harness/specs/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:0f4fbf4111704d05744e4a4e13a9bf3eada262f0da9517c2010f0b46f4bd3c45"
|
||||
},
|
||||
{
|
||||
"path": ".sf/harness/specs/bootstrap.md",
|
||||
"template": ".sf/harness/specs/bootstrap.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:b86ba7cf2cec39a7a9f9d94f885998cfe26eebfc5b76fdd8375ef125e927e0cf"
|
||||
},
|
||||
{
|
||||
"path": ".sf/harness/evals/AGENTS.md",
|
||||
"template": ".sf/harness/evals/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:6f88bf8a2bad95d8db5985c9b3317b9edd65592c12e98bb0bff1a24ec152d768"
|
||||
},
|
||||
{
|
||||
"path": ".sf/harness/graders/AGENTS.md",
|
||||
"template": ".sf/harness/graders/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:2db17feae1acfe62d85aafbe32d016873c3036d4d76e9dd0db478375fae0794e"
|
||||
},
|
||||
{
|
||||
"path": ".sf/PRINCIPLES.md",
|
||||
"template": ".sf/PRINCIPLES.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:9d5c50cb3d602f66468a33a4324068fab8a022fab0fd6940c371a5986af2947e"
|
||||
},
|
||||
{
|
||||
"path": ".sf/TASTE.md",
|
||||
"template": ".sf/TASTE.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:ee9ea8ade6f8434e9425a989bab9735d2068395978d61940e18679b93b1f11b0"
|
||||
},
|
||||
{
|
||||
"path": ".sf/ANTI-GOALS.md",
|
||||
"template": ".sf/ANTI-GOALS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T19:53:05.336Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:56b4f7d20d49e4558ac5aea5e967cf3475ef98d68dfa8985ba42b3e2b0d72e25"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue