fix: make project field handling consistent in metadata functions
Fixes type contract violation between SessionMetadata interface and metadata.ts implementation: 1. readMetadata(): Add fallback for required project field (project: raw["project"] ?? "") - Consistent with other required fields (worktree, branch, status) - Returns empty string for legacy files (caught by session-manager validation) 2. writeMetadata(): Write project unconditionally with other required fields - Moved from conditional section (if metadata.project) to unconditional - Consistent with worktree/branch/status handling This ensures the implementation matches the type definition where project is required (not optional), while maintaining backward compatibility via empty string fallback and downstream validation. Addresses bugbot comment: "Type change leaves readMetadata and writeMetadata inconsistent" Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
21e746e393
commit
b79c4b8e82
|
|
@ -82,13 +82,13 @@ export function readMetadata(dataDir: string, sessionId: SessionId): SessionMeta
|
|||
const raw = parseMetadataFile(content);
|
||||
|
||||
return {
|
||||
project: raw["project"] ?? "",
|
||||
worktree: raw["worktree"] ?? "",
|
||||
branch: raw["branch"] ?? "",
|
||||
status: raw["status"] ?? "unknown",
|
||||
issue: raw["issue"],
|
||||
pr: raw["pr"],
|
||||
summary: raw["summary"],
|
||||
project: raw["project"],
|
||||
createdAt: raw["createdAt"],
|
||||
runtimeHandle: raw["runtimeHandle"],
|
||||
};
|
||||
|
|
@ -118,6 +118,7 @@ export function writeMetadata(
|
|||
mkdirSync(dirname(path), { recursive: true });
|
||||
|
||||
const data: Record<string, string> = {
|
||||
project: metadata.project,
|
||||
worktree: metadata.worktree,
|
||||
branch: metadata.branch,
|
||||
status: metadata.status,
|
||||
|
|
@ -126,7 +127,6 @@ export function writeMetadata(
|
|||
if (metadata.issue) data["issue"] = metadata.issue;
|
||||
if (metadata.pr) data["pr"] = metadata.pr;
|
||||
if (metadata.summary) data["summary"] = metadata.summary;
|
||||
if (metadata.project) data["project"] = metadata.project;
|
||||
if (metadata.createdAt) data["createdAt"] = metadata.createdAt;
|
||||
if (metadata.runtimeHandle) data["runtimeHandle"] = metadata.runtimeHandle;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue