-
Notifications
You must be signed in to change notification settings - Fork 10
chore: sync main into testnet-canary after 10.0.10 #1986
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
0112e78
e89f8f6
f516586
f61f335
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -165,8 +165,19 @@ describe('DKGAgent config — syncContextGraphs and queryAccess warning', () => | |
| }); | ||
|
|
||
| expect(peerStoreReads).toBe(3); | ||
| expect(syncFromPeerDetailed.calls.at(-1)).toEqual([remotePeer.toString(), ['runtime-contextGraph']]); | ||
| expect(syncSharedMemoryFromPeerDetailed.calls.at(-1)).toEqual([remotePeer.toString(), ['runtime-contextGraph']]); | ||
| expect(syncFromPeerDetailed.calls.at(-1)).toEqual([ | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 Issue: The test now codifies optional positional-argument plumbing What's wrong Example Suggested direction Confidence note For Agents |
||
| remotePeer.toString(), | ||
| ['runtime-contextGraph'], | ||
| undefined, | ||
| undefined, | ||
| undefined, | ||
| undefined, | ||
| ]); | ||
| expect(syncSharedMemoryFromPeerDetailed.calls.at(-1)).toEqual([ | ||
| remotePeer.toString(), | ||
| ['runtime-contextGraph'], | ||
| undefined, | ||
| ]); | ||
| expect(result.connectedPeers).toBe(1); | ||
| expect(result.syncCapablePeers).toBe(1); | ||
| expect(result.peersTried).toBe(1); | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,6 +2,7 @@ import { describe, expect, it, vi } from 'vitest'; | |
| import { DKGAgent } from '../src/dkg-agent.js'; | ||
| import { DKGAgentBase } from '../src/dkg-agent-base.js'; | ||
| import { VmReconcileDispatcher } from '../src/chain-reconciler.js'; | ||
| import { FinalizationRuntime } from '../src/finalization-runtime.js'; | ||
| import { VmReconcileQueueClosedError } from '../src/vm-reconcile-service.js'; | ||
|
|
||
| describe('DKGAgent outbox shutdown lifecycle', () => { | ||
|
|
@@ -34,6 +35,7 @@ describe('DKGAgent outbox shutdown lifecycle', () => { | |
| inFlightSubstrateFanOutCount: () => 0, | ||
| router: { closePooling: vi.fn(async () => {}) }, | ||
| node: { stop: stopNode }, | ||
| finalizationRuntime: new FinalizationRuntime(), | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 Issue: Repeated hand-built agent fixtures keep spreading private lifecycle dependencies What's wrong Example Suggested direction For Agents |
||
| store: { close: closeStore }, | ||
| log: { warn: vi.fn() }, | ||
| }); | ||
|
|
@@ -85,6 +87,7 @@ describe('DKGAgent outbox shutdown lifecycle', () => { | |
| inFlightSubstrateFanOutCount: () => 0, | ||
| router: { closePooling: vi.fn(async () => {}) }, | ||
| node: { stop: stopNode }, | ||
| finalizationRuntime: new FinalizationRuntime(), | ||
| store: { close: closeStore }, | ||
| log: { warn }, | ||
| }); | ||
|
|
@@ -124,6 +127,7 @@ describe('DKGAgent outbox shutdown lifecycle', () => { | |
| inFlightSubstrateFanOutCount: () => 0, | ||
| router: { closePooling: vi.fn(async () => {}) }, | ||
| node: { stop: stopNode }, | ||
| finalizationRuntime: new FinalizationRuntime(), | ||
| store: { close: vi.fn(async () => {}) }, | ||
| log: { warn: vi.fn() }, | ||
| }); | ||
|
|
@@ -157,6 +161,7 @@ describe('DKGAgent outbox shutdown lifecycle', () => { | |
| inFlightSubstrateFanOutCount: () => 0, | ||
| router: { closePooling: vi.fn(async () => {}) }, | ||
| node: { stop: stopNode }, | ||
| finalizationRuntime: new FinalizationRuntime(), | ||
| store: { close: closeStore }, | ||
| log: { warn }, | ||
| }); | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -201,11 +201,16 @@ describe('SKILL.md file', () => { | |
| // register/publishPolicy caveat, create-failure recovery semantics) — content we | ||
| // deliberately added, where trimming would regress the accuracy we just fixed. | ||
| // | ||
| // 950 lines stays a realistic ceiling: well below the documented Agent Skills | ||
| // Resident-author selection (GH#1786) raised the cap 950 → 1000. The added | ||
| // contract distinguishes selection from authorship and documents the | ||
| // synchronous/async non-custodial failure modes; omitting it would make the | ||
| // canonical skill inaccurate for the newly exposed API. | ||
| // | ||
| // 1000 lines stays a realistic ceiling: well below the documented Agent Skills | ||
| // "should be concise" guidance for very large skills, while still catching | ||
| // unbounded growth (e.g. an accidental dump of full OpenAPI schema in-line). | ||
| const lines = skillContent.split('\n').length; | ||
| expect(lines).toBeLessThan(950); | ||
| expect(lines).toBeLessThan(1000); | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 Issue: Raising the skill size budget normalizes the sprawl instead of decomposing it What's wrong Example Suggested direction For Agents |
||
| }); | ||
| }); | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🟡 Issue: New Node runtime contract is not locked by tests
What's wrong
The PR makes the supported Node range an operator-facing packaging contract, but there is no automated check that the two published packages keep declaring the same unflagged-
node:sqliterange. That leaves a high-risk release detail verified only by manual review.Example
A packaging edit could remove or mistype one range, for example leaving
@origintrail-official/dkg-agentwithout>=22.13.0 <23.0.0 || >=23.4.0, while the current package-root tests still pass. Consumers embedding the agent directly would then lose the EBADENGINE signal and only discover the unsupported runtime whennode:sqlitefails at daemon start.Suggested direction
Cover the new manifest contract with a static test so CI fails if either published package drops or diverges from the documented Node range.
Confidence note
I did not find an existing manifest/package-root assertion for this new runtime contract; this is a static review of the PR diff and nearby package-root checks.
For Agents
Add a small manifest-contract test near the package-root/export checks, or a shared release/package metadata test, that reads
packages/agent/package.jsonandpackages/cli/package.jsonand asserts both published packages expose the exact supportedengines.noderange required by unflaggednode:sqlite. Keep the existing export checks intact.