Skip to content

Commit 090a71b

Browse files
committed
fix(ci): restore boundary and Rust checks
Correct feature ownership and SSE API drift, then run locked workspace compilation and boundary self-tests in CI.
1 parent d1824d2 commit 090a71b

4 files changed

Lines changed: 15 additions & 4 deletions

File tree

‎.github/workflows/ci.yml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,9 @@ jobs:
119119
- name: Check repository hygiene
120120
run: pnpm run check:repo-hygiene
121121

122+
- name: Check core boundaries
123+
run: node --test scripts/check-core-boundaries.test.mjs
124+
122125
- name: Install dependencies
123126
run: pnpm install --frozen-lockfile
124127

‎scripts/core-boundaries/rules/feature-rules.mjs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ export const optionalDependencyFeatureOwnerRules = [
8686
{ depName: 'rustls', ownerFeatures: ['remote-connect'] },
8787
{ depName: 'rustls-native-certs', ownerFeatures: ['remote-connect'] },
8888
{ depName: 'schannel', ownerFeatures: ['remote-connect'] },
89-
{ depName: 'sha2', ownerFeatures: ['canvas-runtime', 'plugin-source', 'remote-connect', 'remote-ssh'] },
89+
{ depName: 'sha2', ownerFeatures: ['canvas-runtime', 'plugin-source', 'remote-connect', 'remote-ssh', 'review-platform'] },
9090
{ depName: 'shellexpand', ownerFeatures: ['remote-ssh-concrete'] },
9191
{ depName: 'sse-stream', ownerFeatures: ['mcp'] },
9292
{ depName: 'ssh_config', ownerFeatures: ['remote-ssh-concrete', 'ssh_config'] },
@@ -97,7 +97,7 @@ export const optionalDependencyFeatureOwnerRules = [
9797
{ depName: 'urlencoding', ownerFeatures: ['canvas-runtime', 'remote-connect', 'review-platform'] },
9898
{ depName: 'uuid', ownerFeatures: ['canvas-runtime', 'debug-log', 'miniapp-runtime', 'plugin-source', 'remote-connect', 'remote-ssh-concrete'] },
9999
{ depName: 'which', ownerFeatures: ['miniapp-runtime', 'remote-connect', 'workspace-search'] },
100-
{ depName: 'windows', ownerFeatures: ['plugin-source'] },
100+
{ depName: 'windows', ownerFeatures: ['plugin-source', 'review-platform'] },
101101
{ depName: 'x25519-dalek', ownerFeatures: ['remote-connect'] },
102102
],
103103
},

‎scripts/core-boundaries/self-test.mjs‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -698,6 +698,14 @@ export function runManifestParserSelfTest({
698698
throw new Error(`services-integrations plugin-source must own optional dependency ${dep}`);
699699
}
700700
}
701+
for (const dep of ['sha2', 'windows']) {
702+
const owner = servicesOptionalOwnerRule?.dependencies.find(
703+
(dependency) => dependency.depName === dep,
704+
);
705+
if (!owner?.ownerFeatures.includes('review-platform')) {
706+
throw new Error(`services-integrations review-platform must own optional dependency ${dep}`);
707+
}
708+
}
701709
const productDomainsOptionalOwnerRule = optionalDependencyFeatureOwnerRules.find(
702710
(rule) => rule.crateName === 'product-domains',
703711
);

‎src/crates/services/services-integrations/src/mcp/protocol/transport_remote.rs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ impl StreamableHttpClient for BitFunStreamableHttpClient {
202202
}
203203
}
204204

205-
let event_stream = SseStream::from_bytes_stream(response.bytes_stream()).boxed();
205+
let event_stream = SseStream::from_byte_stream(response.bytes_stream()).boxed();
206206
Ok(event_stream)
207207
}
208208

@@ -303,7 +303,7 @@ impl StreamableHttpClient for BitFunStreamableHttpClient {
303303

304304
match content_type.as_deref() {
305305
Some(ct) if ct.as_bytes().starts_with(EVENT_STREAM_MIME_TYPE.as_bytes()) => {
306-
let event_stream = SseStream::from_bytes_stream(response.bytes_stream()).boxed();
306+
let event_stream = SseStream::from_byte_stream(response.bytes_stream()).boxed();
307307
Ok(StreamableHttpPostResponse::Sse(event_stream, session_id))
308308
}
309309
Some(ct) if ct.as_bytes().starts_with(JSON_MIME_TYPE.as_bytes()) => {

0 commit comments

Comments
 (0)