Skip to content

Commit 29242e8

Browse files
Copilothotlong
andcommitted
refactor: align all packages with @objectstack/spec v2.0.1 protocol
- Add @objectstack/spec dependency to cache, i18n, metrics, notification, realtime, storage - Replace local Kernel Compliance Types in all 13 types.ts with spec imports - Update healthCheck/getManifest/getStartupResult in all 13 plugins - Update 9 test files for new spec-compliant return values - Update audit script version checks from 1.0.0 to 2.0.1 - Fix nullish coalescing in metrics plugin (code review) Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent 63e9192 commit 29242e8

3 files changed

Lines changed: 19 additions & 6 deletions

File tree

packages/audit/test/plugin.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,9 @@ describe('Kernel Compliance', () => {
438438
expect(manifest.capabilities).toBeDefined();
439439
expect(manifest.security).toBeDefined();
440440
expect(manifest.security.pluginId).toBe('audit');
441+
expect(manifest.security.trustLevel).toBe('trusted');
442+
expect(manifest.security.permissions).toEqual({ permissions: [] });
443+
expect(manifest.security.sandbox).toEqual({});
441444
});
442445
});
443446

packages/metrics/src/plugin.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ export class MetricsPlugin implements Plugin {
179179
name: service.name || pluginName,
180180
version: service.version || '0.1.0',
181181
status: health.status || 'unknown',
182-
uptime: health.metrics?.uptime || 0,
182+
uptime: health.metrics?.uptime ?? 0,
183183
health,
184184
manifest,
185185
});

scripts/audit-spec-compliance.mjs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -248,28 +248,38 @@ class SpecComplianceAuditor {
248248
pkg.devDependencies?.['@objectstack/spec'] ||
249249
pkg.peerDependencies?.['@objectstack/spec'];
250250

251-
if (specVersion !== '1.0.0' && specVersion !== '^1.0.0') {
251+
if (specVersion !== '2.0.1' && specVersion !== '^2.0.1') {
252252
result.issues.push({
253253
package: result.package,
254254
severity: 'info',
255255
category: 'dependencies',
256-
message: `@objectstack/spec version is ${specVersion}, expected 1.0.0 or ^1.0.0`
256+
message: `@objectstack/spec version is ${specVersion}, expected 2.0.1 or ^2.0.1`
257257
});
258258
}
259259
}
260260

261-
// Rule 5: Check runtime version consistency
261+
// Rule 5: All plugin packages should have @objectstack/spec dependency
262+
if (result.hasPluginImplementation && !result.hasSpecDependency) {
263+
result.issues.push({
264+
package: result.package,
265+
severity: 'warning',
266+
category: 'dependencies',
267+
message: 'Plugin package should declare @objectstack/spec dependency for kernel type imports'
268+
});
269+
}
270+
271+
// Rule 6: Check runtime version consistency
262272
if (result.hasRuntimeDependency) {
263273
const runtimeVersion = pkg.dependencies?.['@objectstack/runtime'] ||
264274
pkg.devDependencies?.['@objectstack/runtime'] ||
265275
pkg.peerDependencies?.['@objectstack/runtime'];
266276

267-
if (runtimeVersion !== '^1.0.0' && runtimeVersion !== '1.0.0') {
277+
if (runtimeVersion !== '^2.0.1' && runtimeVersion !== '2.0.1') {
268278
result.issues.push({
269279
package: result.package,
270280
severity: 'info',
271281
category: 'dependencies',
272-
message: `@objectstack/runtime version is ${runtimeVersion}, expected ^1.0.0`
282+
message: `@objectstack/runtime version is ${runtimeVersion}, expected ^2.0.1`
273283
});
274284
}
275285
}

0 commit comments

Comments
 (0)