Skip to content

fix(neopi): resume canonical, symlink and foreign-project sessions consistently #127

Open

Description

@PsychedelicShayna

Note

GPT-6 Astra on behalf of PsychedelicShayna

Observed behavior

The owner must switch from a symlink checkout to its canonical path before resuming Saturn. All projects inconsistently disables legitimate sessions from other projects and worktrees. This is a new residual path/eligibility defect after the fixture-verified #48/#58/#60 work; their receipts are retained.

Current catalog path matching uses lexical cwd identity, and the picker disables unbound rows with no matching project. Resolve actual path identity rather than treating a parent directory as the same project.

Acceptance

  • Equivalent symlink/canonical project and session-file paths identify the same native session.
  • All projects permits explicit resume of an accessible valid session outside the selected project, resolving an existing project or registering the correct project at resume time.
  • Listing remains read-only; unrelated or inaccessible cwd values receive specific errors, not inconsistent gray rows.
  • Native worktree association, existing bound thread/provider and single-writer attachment remain correct.
  • Private regression fixtures cover path equivalence, foreign cwd and worktrees; no owner-session mutation is required.

Claimed by Mercury/SessionDiscoveryRepair. Native tree/history authority is separate.

Owner's words (verbatim)

2026-10-22 owner dictation — contiguous excerpt

And I saw earlier in all projects, you cannot select a project that isn't part of your current directory. I see that there's filter threads by project, right? the thing is, I cannot get rid of the filter. Oh yeah, I can. I can select all projects and then resume NeoPy session, all projects. Nope. Still can't, actually. So, what is exactly tying me to this specific repo- Well, why am I tied? Yeah, this doesn't make sense here. I just selected my source repos, psychedelic shana, as a place to make my new thread. I clicked new thread, and I'm in psychedelic shana under GitHub. Right? Now I go through session restore, all projects, almost everything is grayed out. NeoPy, there's one that's in NeoPy which isn't, so it's a subdirectory. There's one in NeoPy which also isn't. And then, and there's one in home, shana, tmp, which is gray, makes sense, even though like it shouldn't be like that. But now there's one in slash tmp that's not gray, in like tempfs, in like the very root of my hard drive. That's inconsistent. And now I see one that's in home, shana, source, github, psychedelic shana, env, or, en, yeah, envim cloud dash worktree, yeah, envim cloud worktree solve five point six medium. It's, it's like a run, basically, it was a worktree run. Why can't I resume that? But I can resume home China repos NeoPy, even though I'm not at the symlink location. I'm at the full canonical location. When I was at the fucking symlink location, I had to go to the full canonical location first, otherwise it wouldn't show me, it wouldn't allow me, because it did, it just got confused with the symlink and the canonical path, so I had to be in the canonical path first to be able to resume Saturn. That right there, your resume feature, okay, nice, it's there, it exists. it needs work, a lot of work.

Complete unedited message: #125 . The owner's words take precedence over this summary.

Activity

  1. added
    bugSomething isn't working
    priority: p1High value or prerequisite for several issues
    agent: startedAn agent has claimed this; do not duplicate the work
    on Oct 22, 2026
  2. PsychedelicShayna commented on Oct 22, 2026

    @PsychedelicShayna
    OwnerAuthor

    Note

    GPT-6 Astra on behalf of PsychedelicShayna

    Installed nightly source 3ca07c37659338f9fde4142baf50d20f09e4c5d8, version 0.0.42-nightly.20261022.39742893669.1. The NeoCode launcher now selects this versioned AppRun; the previous artifact and launcher backup remain available. AppImage SHA256: bde7d6dce6a2928cedf8104ffcf912d8dafb75d59b65f79a052aa65b671bc113.

    Proof used the actual installed Electron artifact, normal shell hydration and private state on Xvfb :10. The owner's live window, database and wallet were not used or restarted.

    PR #132 is delivered. Four genuine native-format journals were created through NeoPi's SessionManager in private storage, including one in a real isolated Git worktree. No model inference or owner-session resume was used.

    • This project listed both /home/shayna/repos/neopi and its canonical /home/shayna/source/github/PsychedelicShayna/neopi fixture, while excluding the unrelated directory.
    • All projects exposed the foreign-directory and worktree rows as actionable. Both resumed through the UI, registered their correct directories and displayed their native fixture history.
    • Canonical and alias fixtures both resumed into the existing neopi project. The project selector had one neopi entry plus the two newly registered foreign directories, not duplicate alias projects.
    • Each resulting URL retained the selected native session ID. Listing alone did not register the foreign projects.

    The catalog file passed 55 tests after canonical fixture-root correction; both picker files passed their 19 tests. Web types passed. Actual server types retain only baseline235; an earlier mistyped package filter that selected nothing is not counted as verification. Targeted lint/format passed.

    Project scope · All projects · Foreign resume · Worktree resume · Canonical resume · Alias resume · Structured proof.

    Full journal/tree fidelity remains #134 and live synchronization remains #135; these path repairs do not claim those features complete.

    Exact tested Linux AppImage. Marking agent work finished; this issue remains open until promotion to main.

  3. added
    agent: finishedThe agent's part is done; not necessarily mergeable
    and removed
    agent: startedAn agent has claimed this; do not duplicate the work
    on Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent: finishedThe agent's part is done; not necessarily mergeablebugSomething isn't workingpriority: p1High value or prerequisite for several issues

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions