Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
2350e2b
docs: design read-only IDE snapshot protocol
wellwei Aug 5, 2026
9933126
docs: plan read-only IDE snapshot implementation
wellwei Aug 5, 2026
210a31b
feat(ide): define snapshot protocol model
wellwei Aug 5, 2026
3885a63
fix(ide): align snapshot fixture contract
wellwei Aug 5, 2026
9759acf
feat(ide): inspect workspaces without side effects
wellwei Aug 5, 2026
1ad07f9
fix(ide): restrict workspace package selector aliases
wellwei Aug 5, 2026
5336e9f
fix(ide): harden workspace inspection paths
wellwei Aug 5, 2026
68e1bbb
fix(ide): contain workspace inspection paths
wellwei Aug 6, 2026
1b6b6a1
feat(ide): serialize versioned workspace snapshots
wellwei Aug 6, 2026
4e99879
feat(cli): add read-only ide snapshot command
wellwei Aug 6, 2026
fee82fe
test(ide): prove snapshot is read only
wellwei Aug 6, 2026
c58bdf4
docs(ide): define universal project model and early CDB plan
wellwei Aug 6, 2026
e8dbd2c
feat(ide): define configuration and event protocol
wellwei Aug 6, 2026
0c9c2e4
feat(build): add fresh compile database publication
wellwei Aug 6, 2026
54faf3e
feat(ide): publish compile database before build
wellwei Aug 6, 2026
1e8f1f4
fix(ide): stage module prerequisites before publishing cdb
wellwei Aug 6, 2026
67587e3
test(ide): gate llvm configure e2e and track release version
wellwei Aug 6, 2026
18f41e8
docs(ide): record configure validation boundaries
wellwei Aug 6, 2026
b2d092b
fix(ide): keep configure events machine-readable
wellwei Aug 7, 2026
9ae6d9f
fix(ide): make configure publication portable
wellwei Aug 7, 2026
458c1a0
chore(release): bootstrap pin -> 2026.8.6.3
wellwei Aug 7, 2026
bd3843d
fix(ide): harden configured snapshot publication
wellwei Aug 7, 2026
50daf50
fix(test): preserve best-effort test inventory
wellwei Aug 7, 2026
10c8142
fix(ide): distinguish publication lock failures
wellwei Aug 7, 2026
0e519e0
docs(ide): document protocol and client lifecycle
wellwei Aug 7, 2026
07bbc16
docs(ide): clarify client trust and protocol limits
wellwei Aug 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix(ide): restrict workspace package selector aliases
  • Loading branch information
wellwei committed Aug 7, 2026
commit 1ad07f9dcdb967977a218004e922c708edc0bf98
3 changes: 0 additions & 3 deletions src/ide/inspect.cppm
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,6 @@ bool matches_selector(const Candidate& candidate, std::string_view selector,
const std::filesystem::path& workspaceRoot) {
if (candidate.name == selector || candidate.workspacePath == selector)
return true;
if (const auto dot = candidate.name.rfind('.');
dot != std::string::npos && candidate.name.substr(dot + 1) == selector)
return true;
if (candidate.root.filename() == selector)
return true;
std::error_code ec;
Expand Down
10 changes: 10 additions & 0 deletions tests/unit/test_ide_snapshot.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,16 @@ TEST(IdeSnapshotInspect, PackageSelectorPathWinsOverNameCollision) {
EXPECT_EQ(snapshot.selectedMembers, std::vector<std::string>{"member"});
}

TEST(IdeSnapshotInspect, PackageSelectorDoesNotUseDottedTailAlias) {
TempProject p;
p.write("mcpp.toml", "[workspace]\nmembers=[\"libs/special\"]\n");
p.write("libs/special/mcpp.toml", package_manifest("acme.foo"));
auto snapshot = mcpp::ide::inspect_workspace({.start = p.root,
.selectors = {.package = "foo"}});
EXPECT_EQ(snapshot.state, mcpp::ide::SnapshotState::Unavailable);
EXPECT_NE(diagnostic(snapshot, "MCPP_IDE_WORKSPACE_MEMBER_NOT_FOUND"), nullptr);
}

TEST(IdeSnapshotInspect, UnknownPackageUnavailable) {
TempProject p;
p.write("mcpp.toml", "[workspace]\nmembers=[\"one\"]\n");
Expand Down