Adds engine and chat tools for registering, discovering, and viewing artifacts with inbox notifications. - Add fn_artifact_register, fn_artifact_list, and fn_artifact_view tools for heartbeat, executor, and chat sessions. - Send best-effort dashboard system inbox notifications when artifacts are registered. - Classify artifact tools for action gating and coordination exemptions, with coverage for executor, heartbeat, permanent agent, and chat flows. - Document the artifact registry behavior and update package metadata, quarantine ledger, and line-count baseline. Files changed: .changeset/fn-6778-artifact-agent-tools.md | 5 + CONCEPTS.md | 3 + docs/agents.md | 1 + packages/core/src/db.ts | 1 + .../src/__tests__/session-error-recovery.test.ts | 1 + .../session-persistence-roundtrip.test.ts | 1 + .../src/__tests__/session-reconnect.test.ts | 1 + .../src/__tests__/session-resume-history.test.ts | 1 + packages/dashboard/src/chat.ts | 6 +- packages/dashboard/src/planning.ts | 4 + packages/dashboard/src/test/mockCoreEngine.ts | 1 + .../engine/src/__tests__/agent-action-gate.test.ts | 3 + .../src/__tests__/agent-artifact-tools.test.ts | 458 +++++++++++++++++++++ .../src/__tests__/executor-step-session.test.ts | 48 +++ .../src/__tests__/gating-classifications.test.ts | 3 + .../src/__tests__/heartbeat-executor.test.ts | 40 +- .../src/__tests__/heartbeat-session-prompt.test.ts | 25 +- .../src/__tests__/permanent-agent-gating.test.ts | 6 + packages/engine/src/agent-heartbeat.ts | 6 +- packages/engine/src/agent-tools.ts | 288 ++++++++++++- packages/engine/src/executor.ts | 25 ++ packages/engine/src/gating-classifications.ts | 7 + packages/engine/src/index.ts | 9 + scripts/lib/test-quarantine.json | 8 +- scripts/line-count-baseline.json | 54 +-- 25 files changed, 945 insertions(+), 60 deletions(-) Fusion-Task-Id: FN-6778 Fusion-Task-Lineage: 7eb4afcb-8140-4f86-9540-eb3b83e64148
11 lines
1.2 KiB
JSON
11 lines
1.2 KiB
JSON
{
|
|
"$comment": "Flaky-test quarantine ledger (deletion ratchet — see AGENTS.md 'Flaky tests: quarantine on sight' and docs/testing.md 'Quarantine ledger and the deletion ratchet'). A test observed failing without a corresponding real bug is quarantined ON SIGHT: add an entry here AND a matching one-line `exclude` entry in that package's vitest config, in the same commit. Every entry needs a non-empty `reason` (link the failing run) and a `quarantinedAt` date — the entry expires 14 days later, at which point the test file is DELETED unless someone rescues it with evidence it catches real regressions plus a root-cause fix (never appeasement). There is deliberately no loader module and no automation around this file: it is a dated record, the vitest config exclude is the mechanism, and the sweep is policy executed by whoever touches the suite.",
|
|
"entries": [
|
|
{
|
|
"file": "packages/dashboard/src/__tests__/session-cross-tab.test.ts",
|
|
"reason": "FN-6690 local workspace `pnpm test` observed ENOTEMPTY while removing the test's temp .fusion directory in dashboard-api-quality-backfill shard; isolated rerun passed, indicating cleanup flake rather than a lazy-view CSS regression.",
|
|
"quarantinedAt": "2026-06-19"
|
|
}
|
|
]
|
|
}
|