feat: enhance logging capabilities, implement runtime diagnostics, and update preinstalled skills metadata

This commit is contained in:
DEV_DSW
2026-04-27 17:00:51 +08:00
parent 90e02636c7
commit 2081f583e3
9 changed files with 354 additions and 24 deletions

46
tests/log-helpers.test.ts Normal file
View File

@@ -0,0 +1,46 @@
import { describe, expect, it } from 'vitest';
import { serializeError, serializeUnknownError, serializeUnknownForLog } from '../electron/utils/log-helpers';
describe('log helpers', () => {
it('serializes Error instances with code and cause', () => {
const cause = new Error('inner failure');
const error = new Error('outer failure') as Error & { code?: string; cause?: unknown };
error.code = 'E_TEST';
error.cause = cause;
expect(serializeError(error)).toMatchObject({
name: 'Error',
message: 'outer failure',
code: 'E_TEST',
cause: {
name: 'Error',
message: 'inner failure',
},
});
});
it('normalizes string and object rejection values', () => {
expect(serializeUnknownError('boom')).toEqual({ message: 'boom' });
expect(serializeUnknownError({ message: 'failed', code: 500 })).toEqual({
message: 'failed',
code: 500,
});
});
it('recursively serializes nested error values for structured logging', () => {
const payload = serializeUnknownForLog({
task: 'bootstrap',
errors: [new Error('bad dependency')],
});
expect(payload).toEqual({
task: 'bootstrap',
errors: [
expect.objectContaining({
name: 'Error',
message: 'bad dependency',
}),
],
});
});
});