Skip to content

fix(core): restore legacy sessions in markerless projects - #54048

Closed
EnglandLobster wants to merge 1 commit into
anomalyco:devfrom
EnglandLobster:restore-session-projects
Closed

EnglandLobster wants to merge 1 commit into
anomalyco:devfrom
EnglandLobster:restore-session-projects

Conversation

@EnglandLobster

Copy link
Copy Markdown

Issue for this PR

Closes #53450. Related: #51176 and the migration-time repair in #51935.

Type of change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation

What does this PR do?

Opening a non-Git/Hg directory creates a V2 project but skips the resolution event, leaving imported V1 sessions under global and hidden from project-scoped lists.

Publish resolution for markerless directories too. An optional exact flag keeps both the database projector and client adoption limited to that directory; repository resolution retains recursive adoption. Existing affected project rows recover on their next resolution. Adoption resets the relative path to "" and preserves session timestamps and history.

Unlike #51935's migration-time pass over known projects, this handles directory discovery at runtime. It uses the existing durable event/transaction path rather than adding another database repair loop.

How did you verify your code works?

  • New regression fails on unmodified v2: an existing markerless project leaves its legacy session under global.
  • Core session-create, project and session-move suites: 83 passed, including exact-directory isolation, empty-subpath listing, timestamp preservation and idempotent resolution.
  • Schema worktree suite: 6 passed; client solid-data suite: 28 passed.
  • Regenerated clients with bun run generate in packages/client.
  • Root bun run check (lint and typechecks) passed.

Screenshots / recordings

Not a visual change.

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Thanks for your contribution!

This PR doesn't have a linked issue. All PRs must reference an existing issue.

Please:

  1. Open an issue describing the bug/feature (if one doesn't exist)
  2. Add Fixes #<number> or Closes #<number> to this PR description

See CONTRIBUTING.md for details.

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

The following comment was made by an LLM, it may be inaccurate:

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. I reproduced the problem with the CLI from source: in a non-Git directory with an existing project and imported V1 sessions under global, session list is empty on v2. With this change the directory's session is adopted, with path set to "" and its timestamps kept, and a session in a subdirectory stays under global. The new regression test fails on the base and passes here. The nearby core, schema and client suites behave the same as on the base, and typechecks pass. I have no blocking concerns.

@thdxr
thdxr changed the base branch from v2 to dev October 10, 2026 19:38
@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Automated PR Cleanup

Thank you for contributing to opencode.

Due to the high volume of PRs from users and AI agents, we periodically close older PRs using automated criteria so maintainers can focus review time on the most active and community-supported contributions.

This PR was closed because it matched the following cleanup criteria:

  • The PR was created more than 1 month ago
  • The PR had fewer than 2 positive reactions
  • Positive reactions are counted as thumbs-up, heart, celebration, or rocket reactions on the PR

PRs created within the last month are not affected by this cleanup.

If you believe this PR was closed incorrectly, or if you are still actively working on it, please leave a comment explaining why it should be reopened. A maintainer can review and reopen it if appropriate.

Thanks again for taking the time to contribute.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

sessions: V1 sessions from non-git directories hidden from the project session list

1 participant