Skip to content

Add beta branch-aware package workspaces - #420

Closed
Meris Nici (promeris) wants to merge 46 commits into
mainfrom
promeris-codex/fs-package-workspace
Closed

Add beta branch-aware package workspaces#420
Meris Nici (promeris) wants to merge 46 commits into
mainfrom
promeris-codex/fs-package-workspace

Conversation

@promeris

@promeris Meris Nici (promeris) commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Description

Adds beta filesystem-style package workspaces with manifest-backed clone, checkout, incremental pull and push, explicit Asset Type writes, and empty-folder creation. Full archive workspace modes are not exposed.

Checklist

  • I have self-reviewed this PR
  • I have tested the change: npm run build and 98 focused workspace tests passed
  • I have updated docs if needed

Includes-AI-Code: true
Comment thread src/commands/workspace/workspace.service.ts
Comment thread src/commands/workspace/workspace.service.ts Outdated
Comment thread src/commands/workspace/workspace.service.ts Outdated
Comment thread src/commands/workspace/workspace.service.ts Outdated
Includes-AI-Code: true
Comment thread src/commands/workspace/workspace.service.ts Outdated
Includes-AI-Code: true
Comment thread src/commands/workspace/workspace.service.ts
Includes-AI-Code: true
Comment thread src/commands/workspace/workspace.service.ts Outdated
Comment thread src/commands/workspace/workspace.service.ts Outdated
Comment thread src/commands/workspace/workspace.service.ts Outdated
Comment thread src/commands/workspace/workspace.service.ts Outdated
Includes-AI-Code: true
Comment thread src/commands/workspace/workspace.service.ts Outdated
Comment thread src/commands/workspace/workspace-change-classifier.ts Outdated
Comment thread src/commands/workspace/workspace-change-classifier.ts
Includes-AI-Code: true
Comment thread src/commands/workspace/workspace.service.ts Outdated
Comment thread src/commands/workspace/workspace.service.ts
Comment thread src/commands/workspace/workspace.service.ts Outdated
Includes-AI-Code: true
Comment thread src/commands/workspace/workspace.service.ts
Comment thread src/commands/workspace/workspace.service.ts
Comment thread src/commands/workspace/workspace-pull.service.ts Outdated
Comment thread src/commands/workspace/workspace-pull.service.ts Outdated
Comment thread src/commands/workspace/workspace-pull.service.ts
Comment thread src/commands/workspace/workspace.service.ts
Comment thread src/commands/workspace/workspace-pull.service.ts
Comment thread src/commands/workspace/workspace.service.ts

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

There are 3 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 35692cf. Configure here.

"revision",
"serverRevision",
"filesystemName",
];

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Manifest metadata allowlist too narrow

Medium Severity

FORBIDDEN_METADATA_FIELDS used when validating and writing remote manifest metadata is a strict subset of NON_SEMANTIC_NODE_FIELDS enforced when reading local node files. Fields such as createdBy, updatedBy, lastModifiedAt, and draft IDs can pass pull validation, get written under .package/nodes, then cause later status, push, or pull calls to reject the workspace as invalid node metadata.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 35692cf. Configure here.

break;
}
length = Math.min(64, length + 4);
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suffix uniqueness check always passes

Low Severity

In disambiguate, uniquePrefixes is computed with Set.add inside every. Set.add returns the set object, which is always truthy, so prefix uniqueness is never actually verified. Sibling nodes whose node-key hashes share a short prefix can receive identical derived filenames when the occupied-name check also passes.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 35692cf. Configure here.

@sonarqubecloud

Copy link
Copy Markdown

@promeris
Meris Nici (promeris) deleted the promeris-codex/fs-package-workspace branch August 24, 2026 13:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants