ticket: add yoi worktree memory boundary tasks
This commit is contained in:
parent
3a0ec9feb9
commit
9b91e56fea
|
|
@ -8,7 +8,7 @@ priority: P1
|
|||
labels: [orchestrator, merge, ticket, workflow, validation]
|
||||
workflow_state: ready
|
||||
created_at: 2026-06-07T03:52:31Z
|
||||
updated_at: 2026-06-07T06:16:17Z
|
||||
updated_at: 2026-06-07T06:29:12Z
|
||||
assignee: null
|
||||
legacy_ticket: null
|
||||
---
|
||||
|
|
|
|||
|
|
@ -116,3 +116,27 @@ Workflow note:
|
|||
The child should commit implementation work in the child worktree and report diff/tests. Merge, review, Ticket closure, workflow file updates, and cleanup remain with the parent/human workflow.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: decision author: hare at: 2026-06-07T06:29:12Z -->
|
||||
|
||||
## Decision
|
||||
|
||||
## Related worktree/memory boundary follow-ups
|
||||
|
||||
Created two follow-up tickets from the `.yoi` sparse checkout / memory-root discussion:
|
||||
|
||||
- `narrow-yoi-worktree-sparse-exclusions`
|
||||
- Stop excluding all `.yoi/**` from child worktrees.
|
||||
- Include tracked Yoi project records such as tickets/workflows/config where appropriate.
|
||||
- Continue excluding generated memory, logs, locks, local/runtime/secret-like files.
|
||||
- Define child-vs-main Ticket edit policy for branch-local artifacts vs final orchestration records.
|
||||
|
||||
- `memory-root-uses-yoi-memory-marker`
|
||||
- Keep `.yoi` as the Yoi project records marker.
|
||||
- Stop treating `.yoi` alone as the memory root marker.
|
||||
- Use explicit memory config or nearest ancestor `.yoi/memory` as repo-local memory root.
|
||||
- Ensure child worktrees containing `.yoi/tickets` but not `.yoi/memory` do not become independent memory workspaces.
|
||||
|
||||
These are relevant to Orchestrator merge/worktree automation because branch-local dossiers and workflow edits should be possible without copying generated memory into child worktrees.
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -0,0 +1,61 @@
|
|||
---
|
||||
id: 20260607-062902-memory-root-uses-yoi-memory-marker
|
||||
slug: memory-root-uses-yoi-memory-marker
|
||||
title: Use .yoi/memory marker for repo-local memory root
|
||||
status: open
|
||||
kind: task
|
||||
priority: P1
|
||||
labels: [memory, workspace, worktree, config]
|
||||
workflow_state: intake
|
||||
created_at: 2026-06-07T06:29:02Z
|
||||
updated_at: 2026-06-07T06:29:02Z
|
||||
assignee: null
|
||||
legacy_ticket: null
|
||||
---
|
||||
|
||||
## Background
|
||||
|
||||
`.yoi/` currently acts as a broad Yoi workspace/project marker, but using `.yoi` existence as the memory workspace/root marker is too coarse. `.yoi` now contains project records such as Tickets, workflows, Knowledge, and config, while `.yoi/memory` is generated/personal memory state.
|
||||
|
||||
Child worktrees should be able to include `.yoi/tickets` and `.yoi/workflow` without becoming independent memory roots. Memory root detection should key off `.yoi/memory` or explicit memory configuration rather than `.yoi` alone.
|
||||
|
||||
## Goal
|
||||
|
||||
Separate Yoi project/workspace detection from repo-local memory root detection by treating `.yoi` as the project records marker and `.yoi/memory` as the repo-local memory root marker.
|
||||
|
||||
## Target model
|
||||
|
||||
- `.yoi/` means: this repository/workspace has Yoi project records/config.
|
||||
- `.yoi/memory/` means: this workspace or ancestor is the repo-local memory root.
|
||||
- Child worktrees may contain `.yoi/tickets` / `.yoi/workflow` without causing memory writes into the child worktree.
|
||||
- Memory root lookup can walk ancestors until it finds `.yoi/memory` or an explicit configured root.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Audit current workspace/memory root detection code that uses `.yoi` existence.
|
||||
- Change memory root detection so `.yoi` alone is not enough to select a memory root.
|
||||
- Use an explicit memory root if configured.
|
||||
- If repo-local memory is enabled and no explicit root is configured, use nearest ancestor containing `.yoi/memory`.
|
||||
- If memory is explicitly enabled for a workspace and no `.yoi/memory` exists yet, create the configured/default memory directory lazily rather than requiring both config and preexisting directory.
|
||||
- If memory is explicitly disabled, do not use `.yoi/memory` even if present, unless a separate compatibility mode intentionally says otherwise.
|
||||
- Decide and document fallback behavior when no explicit memory config and no ancestor `.yoi/memory` exists:
|
||||
- disabled; or
|
||||
- user-data workspace overlay;
|
||||
- but do not silently treat `.yoi` alone as memory root.
|
||||
- Preserve existing generated-memory safety rules: do not copy memory into child worktrees and keep memory logs/generated records out of git-tracked project artifacts.
|
||||
- Update docs/tests for child worktree behavior and memory root lookup.
|
||||
|
||||
## Non-goals
|
||||
|
||||
- Removing `.yoi` as a Yoi project records marker.
|
||||
- Removing repo-local `.yoi/memory` support entirely.
|
||||
- Changing Ticket/workflow/project record roots.
|
||||
- Implementing the child worktree sparse-checkout change; that belongs to `narrow-yoi-worktree-sparse-exclusions`.
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- `.yoi` alone no longer selects a memory root.
|
||||
- `.yoi/memory` can be found by ancestor walk and used as repo-local memory root when enabled/allowed.
|
||||
- A child worktree containing `.yoi/tickets` but not `.yoi/memory` does not become an independent memory workspace.
|
||||
- Explicit memory enable/disable behavior is tested.
|
||||
- Documentation clearly distinguishes `.yoi` project records marker from `.yoi/memory` repo-local memory marker.
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<!-- event: create author: LocalTicketBackend at: 2026-06-07T06:29:02Z -->
|
||||
|
||||
## Created
|
||||
|
||||
Created by LocalTicketBackend create.
|
||||
|
||||
---
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
---
|
||||
id: 20260607-062902-narrow-yoi-worktree-sparse-exclusions
|
||||
slug: narrow-yoi-worktree-sparse-exclusions
|
||||
title: Narrow child worktree .yoi sparse exclusions
|
||||
status: open
|
||||
kind: task
|
||||
priority: P1
|
||||
labels: [worktree, workflow, memory, ticket, orchestration]
|
||||
workflow_state: intake
|
||||
created_at: 2026-06-07T06:29:02Z
|
||||
updated_at: 2026-06-07T06:29:02Z
|
||||
assignee: null
|
||||
legacy_ticket: null
|
||||
---
|
||||
|
||||
## Background
|
||||
|
||||
Current worktree workflow excludes `.yoi/**` from child implementation worktrees. This was originally a conservative way to keep generated/personal memory and runtime state out of child worktrees. As Ticket/Workflow orchestration has become project-record based, excluding all of `.yoi` is too broad.
|
||||
|
||||
Project records such as `.yoi/tickets`, `.yoi/workflow`, `.yoi/knowledge`, and `.yoi/ticket.config.toml` may need to be visible in child worktrees for branch-local artifacts, workflow edits, review dossiers, and Ticket-aware implementation. Generated memory/runtime/local files should still be excluded.
|
||||
|
||||
## Goal
|
||||
|
||||
Narrow child worktree sparse-checkout exclusions so git-tracked Yoi project records can appear in child worktrees while memory/local/runtime state remains excluded.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Update `worktree-workflow` and any worktree creation helpers/scripts to stop excluding all of `.yoi/**`.
|
||||
- Include git-tracked project record paths where appropriate:
|
||||
- `.yoi/tickets/**`;
|
||||
- `.yoi/workflow/**`;
|
||||
- `.yoi/knowledge/**` when curated/tracked;
|
||||
- `.yoi/ticket.config.toml`;
|
||||
- other tracked Yoi project config/resources as needed.
|
||||
- Continue excluding generated/personal/local/runtime paths, including at least:
|
||||
- `.yoi/memory/**`;
|
||||
- `.yoi/**/_logs/**`;
|
||||
- `.yoi/tickets/.ticket-backend.lock`;
|
||||
- local/override/secret-like files according to existing ignore/config policy.
|
||||
- Define the edit policy for Ticket records in child worktrees:
|
||||
- branch-local artifacts / merge-ready dossier may be written in child worktree when part of the implementation branch;
|
||||
- active orchestration progress and final Ticket review/approval/close remain main-workspace responsibilities unless explicitly designed otherwise;
|
||||
- avoid concurrent edits to the same Ticket thread from main and child worktree.
|
||||
- Ensure generated/personal memory is not copied into child worktrees.
|
||||
- Update tests/docs/workflows that currently assume `.yoi` is absent from child worktrees.
|
||||
|
||||
## Non-goals
|
||||
|
||||
- Moving memory storage out of `.yoi/memory`; that belongs to the memory root marker ticket.
|
||||
- Making child implementation Pods responsible for final Ticket closure.
|
||||
- Allowing secret/local files into child worktrees.
|
||||
- Replacing the main workspace as the orchestration authority.
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- New child worktrees include relevant tracked `.yoi` project records but exclude `.yoi/memory` and local/runtime files.
|
||||
- Worktree workflow documentation states the new sparse-checkout rules and Ticket edit policy.
|
||||
- Child worktree creation validation checks that memory/local paths are absent while project record paths can be present.
|
||||
- Orchestrator workflows can use child worktrees for branch-local artifacts/dossiers without copying generated memory.
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<!-- event: create author: LocalTicketBackend at: 2026-06-07T06:29:02Z -->
|
||||
|
||||
## Created
|
||||
|
||||
Created by LocalTicketBackend create.
|
||||
|
||||
---
|
||||
Loading…
Reference in New Issue
Block a user