-
Notifications
You must be signed in to change notification settings - Fork 0
Add specification for Log Recording Service (feature #071) #207
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Defines the Phase 1 PROV logging feature: TypeScript Log Service with recordToolResult and getTimeline, session-state integration, expanded ToolResult parsing, and dirty tracking. Part of Epic E02. https://claude.ai/code/session_01RDwaz7RBQ6uqbQv9fDf1BX
Links to specs/071-log-recording-service/spec.md https://claude.ai/code/session_01RDwaz7RBQ6uqbQv9fDf1BX
Phase 0: research.md with 8 key design decisions Phase 1: data-model.md, contracts (LogService + stacService extension), quickstart.md with implementation order Phase 2: planning post and LinkedIn summary Key decisions: Log Service in session-state package, Python handles output feature provenance, TypeScript handles input features, stacService.appendProvenance() for persistence, read-time timeline assembly. https://claude.ai/code/session_01RDwaz7RBQ6uqbQv9fDf1BX
37 tasks across 7 phases: Setup, Foundation, US1 (recording), US2 (timeline), US3 (expanded parsing), US4 (integration), Polish. MVP path: Phases 1-3 deliver core recording capability. https://claude.ai/code/session_01RDwaz7RBQ6uqbQv9fDf1BX
Add TypeScript Log Service module (session-state/src/log/) with: - recordToolResult(): creates PROV-aligned Log entries for input features - getTimeline(): assembles deduplicated, sorted timeline from provenance - buildLogEntry(): pure entry construction with ISO duration conversion - assembleTimeline(): collects and deduplicates across features Integration points: - stacService: appendProvenance() and loadGeoJsonForItem() for disk I/O - calcService: parse expanded MCP annotations (toolVersion, parameters, etc.) - executeTool: route successful ToolResults through Log Service - ToolExecutionResult: expanded with Phase 0 fields (all optional) Tests: 43 new tests (19 entry builder + 8 timeline + 12 service + 4 integration) All 335 tests pass (309 unit + 26 integration), zero regressions. https://claude.ai/code/session_01RDwaz7RBQ6uqbQv9fDf1BX
- Test summary: 335 tests pass (43 new, zero regressions) - Usage example with recordToolResult + getTimeline roundtrip - Sample Log entry and timeline JSON artifacts - Shipped blog post and LinkedIn summary - All T001-T036 tasks marked complete in tasks.md https://claude.ai/code/session_01RDwaz7RBQ6uqbQv9fDf1BX
- Add curly braces to single-line if statements - Remove unnecessary `as unknown` type assertion - Use strict equality checks instead of `==` https://claude.ai/code/session_01RDwaz7RBQ6uqbQv9fDf1BX
- Widen ToolResultForLog.features to accept unknown[] instead of Record<string, unknown>[] (fixes SafeFeatureCollection assignability) - Use double-cast (as unknown as Record) for SafeFeature → Record conversions in appendProvenance() - Add non-null assertion after properties guard to fix TS18047 - Use local `props` variable to avoid repeated null checks https://claude.ai/code/session_01RDwaz7RBQ6uqbQv9fDf1BX
IanMayo
pushed a commit
that referenced
this pull request
Feb 11, 2026
Cross-referenced 20 merged PRs from the last 72 hours with backlog items. Verified completion via task checklists and evidence artifacts. Newly completed (all tasks done, evidence present, PRs merged): - #70 PROV schema foundation (PR #205/#206) - #71 Log Recording service (PR #207) - #72 Log Panel (PR #211) - #73 Undo/redo split (PR #210) - #74 Snapshots (PR #209) - #75 Branching (PR #215) - #77 Fix VS Code extension bugs (PR #217) - #77 STAC File Tree Component (PR #217) Also: reordered active items by status priority (implementing > specified > approved > proposed), then by total score descending. Removed 7 duplicate completed entries at bottom of table. https://claude.ai/code/session_013y5hsr6RyeCaAFbegJG2W9
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds the complete feature specification for the Log Recording Service (#71), a core Phase 1 component of the PROV logging implementation. The specification defines the requirements, user scenarios, and acceptance criteria for implementing automatic provenance recording of tool executions.
Changes
Updated BACKLOG.md: Changed feat(017): add specification for VS Code hide activities #71 status from "approved" to "specified" and updated the documentation link from
docs/ideas/071-log-recording-service.mdtospecs/071-log-recording-service/spec.mdAdded spec.md: Comprehensive feature specification covering:
Added requirements.md: Specification quality checklist validating:
Notable Details
tuneEntry,revertTo,revertThis,createSnapshot,branchFromare reserved for Phases 4-6This specification is ready for planning and implementation once Phase 0 (#70) is complete.
https://claude.ai/code/session_01RDwaz7RBQ6uqbQv9fDf1BX