--- id: LSN-0008 ticket: studio-docs-import title: Project-scoped state and activity legacy lesson created: 2026-03-26 tags: - studio - legacy-import - project-state - activity --- ## Context Legacy import from `docs/studio/learn/project-scoped-state-and-activity.md`. This lesson preserves the rule for project-local Studio state and shell activity persistence. Relevant spec: - `docs/studio/specs/1. Studio Shell and Workspace Layout Specification.md` ## Key Decisions ### Project-local Studio state should live under `.studio/` inside the project root **What:** Project-local Studio state should be rooted at `.studio/`, shell activity should be persisted and restored per project, persisted history should be bounded, and `.studio/` should remain the reserved root for future project-local Studio settings. **Why:** If project-local state is stored as if it were application-global, the shell mixes unrelated histories and stops teaching what happened in the currently opened project. **Trade-offs:** This design requires project-scoped persistence logic and bounded retention, but it preserves causality and keeps Studio-owned project data in one obvious root. ## Patterns and Algorithms - Create `.studio/` during new-project scaffolding. - Load shell activity when the project opens. - Append new activity to the current project's local history. - Trim persisted activity to the latest `500` entries. - Keep launcher-global concerns outside the project-local `.studio/` root. ## Pitfalls - Treating project activity as launcher-global state. - Mixing multiple projects into one persisted activity history. - Leaving project-local Studio files in ad hoc roots instead of `.studio/`. - Allowing activity persistence to grow without a hard cap. ## Takeaways - Project-local history must preserve causality for the currently opened project. - `.studio/` is the reserved home for project-scoped Studio state. - Legacy source attribution: `docs/studio/learn/project-scoped-state-and-activity.md`.