feat(FN-3544): add project-scoped auth storage and docs updates

- Add project auth storage model and persistence wiring in core DB/store/types
- Expand core test coverage for DB migration, store behavior, and project auth store flows
- Update heartbeat agent, settings, dashboard, and storage documentation for the new behavior
- Replace hardcoded mobile touch-target sizing in dependency graph styles with token-based sizing

Fusion-Task-Id: FN-3544
This commit is contained in:
Fusion
2026-05-06 04:42:28 -07:00
committed by gsxdsm
parent 408a46e1c2
commit fb0e15562d
18 changed files with 492 additions and 33 deletions

View File

@@ -17,6 +17,7 @@ import { InsightStore } from "./insight-store.js";
import { ResearchStore } from "./research-store.js";
import { TodoStore } from "./todo-store.js";
import { EvalStore } from "./eval-store.js";
import { ProjectAuthStore } from "./project-auth-store.js";
import { BackwardCompat, ProjectRequiredError } from "./migration.js";
import { CentralCore } from "./central-core.js";
import { getTaskMergeBlocker } from "./task-merge.js";
@@ -516,6 +517,8 @@ export class TaskStore extends EventEmitter<TaskStoreEvents> {
private todoStore: TodoStore | null = null;
/** Cached EvalStore instance */
private evalStore: EvalStore | null = null;
/** Cached ProjectAuthStore instance */
private projectAuthStore: ProjectAuthStore | null = null;
/** Buffer for batching agent log writes to reduce WAL pressure. */
private agentLogBuffer: Array<{
@@ -6637,6 +6640,17 @@ ${notificationsSection}`;
return this.evalStore;
}
/**
* Get the ProjectAuthStore instance for project-scoped auth domain operations.
* Lazily initializes the ProjectAuthStore on first access.
*/
getProjectAuthStore(): ProjectAuthStore {
if (!this.projectAuthStore) {
this.projectAuthStore = new ProjectAuthStore(this.db);
}
return this.projectAuthStore;
}
// ── Verification Cache ────────────────────────────────────────────────────
/**