Repository navigation
Correct project names, fix Cursor listing OOM, bundle project config, version the extension - #5
Merged
Merged
Conversation
- Cursor and Claude Code store projects under lossy encoded folder names
("c-Work-my-app"), so hyphenated folders were guessed wrong ("app",
"Personal-Flutter-…"). EncodedPathResolver now walks the file system and
matches encoded directory names, falling back to the old guess only when
the project isn't on this machine. Writers place imported sessions into
the correct sibling folder as a result.
- `list-sessions --tool=cursor` exhausted PHP's default 128 MB limit:
metadata listing parsed every full transcript. Cursor now has a
streaming metadata path (counts turns, keeps only the first message) and
bounds title extraction to the first 4 KB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The bundle format reserved config.json but nothing wrote or read it. - `export --with-config` adds CLAUDE.md, AGENTS.md, .cursorrules and .mcp.json from the project; encrypted with the sessions under --encrypt - `import --with-config` restores them into --project, keeping existing files unless --overwrite-config - Opt-in on both sides: these files can contain private instructions Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The extension stayed at 0.1.0 while the release was v1.0.1. Set it to 1.0.1 and stamp the tag version into it at release time, as the desktop app already does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
phpunit.xml set DB_DATABASE=:memory: as a plain <env>, which loses to an existing environment variable, and Laravel reads $_SERVER before $_ENV anyway. With DB_DATABASE set in the shell (as on a server), `php artisan test` ran RefreshDatabase against the real database and emptied it — reproduced locally against a seeded SQLite file. Force the test env and add matching <server> entries so the tests always use the in-memory database. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4 tasks done
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
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
Fixes for the items left over after v1.0.1.
Project names for hyphenated folders
Cursor (
c-Work-my-app) and Claude Code (C--Work-my-app) store projects under lossy folder names:/,-,.and spaces all encode to-. Guessing therefore produced wrong names (app,Personal-Flutter-HexoraX-ca), and imports could land in the wrong sibling folder. The newEncodedPathResolverwalks the file system and matches each directory's encoded name, so names that exist on this machine are exact (e.g.HexoraX.ca). It falls back to the old guess only when the folder isn't on this machine.list-sessions --tool=cursorran out of memoryFound while checking real data: listing parsed every full Cursor transcript and exhausted PHP's default 128 MB limit (
Allowed memory size … exhausted). Cursor now has a streaming metadata path that counts turns and keeps only the first message, and title extraction looks at no more than the first 4 KB. Listing 37 real sessions now works at the default limit, with real turn counts.Project config in bundles (
--with-config)config.jsonwas reserved in the bundle format but never written or read.export --with-configbundlesCLAUDE.md,AGENTS.md,.cursorrulesand.mcp.jsonfrom the project. With--encrypt, they're encrypted along with the sessions.import --with-configrestores them into--projectand keeps existing files unless--overwrite-configis given.Extension version
Set to 1.0.1. The release workflow now stamps the tag version into the VSIX, as it already does for the desktop app.
Investigated, no change
The desktop app's bundled
php.iniuses a relativeextension_dir. It turns out PHP on Windows resolves it correctly from any working directory (tested), so I left it unchanged.Test plan
cd movez && php vendor/bin/pest: 100 passed, 1 skipped. New tests cover the resolver (hyphens, decoy folders, spaces and dots, missing paths) and the encrypted config round-trip, including keeping and overwriting existing files.list-sessions --tool=cursor --jsonat the default memory limit returns 37 sessions with resolved project names.cd vscode-extension && npm install --package-lock-only: lockfile is in sync.🤖 Generated with Claude Code