| 25-file-system |
07 |
api |
| placeholder |
| agent-generated |
| manifest |
| markdown |
| chat-files |
|
| phase |
provides |
| 25-01 |
chatFileService with create/getById/createReference methods |
|
| phase |
provides |
| 25-06 |
git-file-service with storageDir pattern (on separate worktree; storageDir import added here) |
|
|
| placeholderService with addEntry/replaceEntry/listEntries managing PLACEHOLDERS.md |
| chatFileService.markAsPlaceholder method |
| POST /files/:fileId/replace endpoint for placeholder replacement |
| Agent-generated file tracking in PLACEHOLDERS.md manifest |
|
| 25-06 |
| future-agent-file-generation |
|
| added |
patterns |
|
|
| placeholderService reads/writes PLACEHOLDERS.md markdown tables |
| fire-and-forget phSvc.addEntry() on upload (non-blocking) |
| replace endpoint updates manifest + creates reference chain atomically |
|
|
| created |
modified |
| server/src/services/placeholder-service.ts |
|
| server/src/services/chat-files.ts |
| server/src/routes/chat-files.ts |
| packages/shared/src/types/chat.ts |
| packages/shared/src/index.ts |
| .planning/REQUIREMENTS.md |
|
|
| placeholderService reads/writes PLACEHOLDERS.md using regex row parser to avoid markdown deps |
| addEntry is fire-and-forget (.catch(() => {})) — response not blocked by file I/O |
| replaceEntry is awaited in /replace endpoint — manifest must be consistent before response |
| resolveDefaultStorageDir() used for projectDir path — consistent with git-file-service pattern |
|
| Placeholder manifest: Active Placeholders and Replaced markdown tables in PLACEHOLDERS.md per project dir |
| Replace endpoint: phSvc.replaceEntry + fileSvc.createReference for atomically updating both manifest and DB |
|
|
10min |
2026-04-02 |