feat(FN-4791): add core secrets store for secure key-value storage

Adds a new secrets store module to `@fusion/core` (277 lines in `secrets-store.ts`) and exports it from the package index.

Fusion-Task-Id: FN-4791

Fusion-Task-Lineage: 7ff20b8a-37e1-46c6-8003-b542df9f98b1
This commit is contained in:
Fusion (runfusion.ai)
2026-05-16 23:44:47 -07:00
committed by gsxdsm
parent e1667a789d
commit 3605c67925
3 changed files with 295 additions and 4 deletions

View File

@@ -76,12 +76,17 @@ describe("BranchWorktreeAutoRecoveryHandler", () => {
expect(f.runAudit.database).toHaveBeenCalledWith(expect.objectContaining({ type: "branch-worktree:auto-requeue", metadata: expect.objectContaining({ prevPausedReason: "branch-conflict-unrecoverable" }) }));
});
it("live-foreign emits irreducible pause without mutation", async () => {
it("live-foreign discards branch claim and requeues", async () => {
const f = createFixtures();
branchConflictMocks.inspectBranchConflict.mockResolvedValue({ kind: "live-foreign", livePath: "/tmp/wt", error: new Error("foreign") });
branchConflictMocks.inspectBranchConflict.mockResolvedValue({
kind: "live-foreign",
livePath: "/tmp/wt",
error: { strandedCommits: [] },
});
await f.handler.issueRetry(f.failure, f.decision, f.ctx);
expect(f.taskStore.moveTask).not.toHaveBeenCalled();
expect(f.runAudit.database).toHaveBeenCalledWith(expect.objectContaining({ type: "branch-worktree:irreducible-pause", metadata: expect.objectContaining({ reason: "live-foreign" }) }));
expect(f.taskStore.moveTask).toHaveBeenCalledWith("FN-4536", "todo", expect.objectContaining({ moveSource: "engine" }));
expect(f.runAudit.database).toHaveBeenCalledWith(expect.objectContaining({ type: "branch-worktree:foreign-branch-discarded" }));
expect(f.runAudit.database).toHaveBeenCalledWith(expect.objectContaining({ type: "branch-worktree:auto-requeue", metadata: expect.objectContaining({ rationale: "live-foreign-discard-and-recreate" }) }));
});
it("ai-assisted exhaustion logs spawned and irreducible", async () => {