From af0da5982bf6b37d15aceac9d3016e43205b9683 Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Wed, 8 Apr 2026 13:39:52 +0200 Subject: [PATCH] Write new files to disk immediately on creation Ensures entries survive cd operations between silos. --- internal/p9/server/server.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/internal/p9/server/server.go b/internal/p9/server/server.go index 6f1ec41..201d2e4 100644 --- a/internal/p9/server/server.go +++ b/internal/p9/server/server.go @@ -616,7 +616,17 @@ func (s *server) dispatchWrite(f *fid, tag uint16) *plan9.Fcall { identifier := time.Now().Format("20060102T150405") fm := metadata.NewFrontMatter(title, signature, tags, identifier) fileName := metadata.BuildFilename(fm, ".md") - path := filepath.Join(s.denoteDir, subdir, fileName) + dir := filepath.Join(s.denoteDir, subdir) + path := filepath.Join(dir, fileName) + + // Ensure directory exists and write initial frontmatter to disk + if err := os.MkdirAll(dir, 0755); err != nil { + return errorFcall(fc, fmt.Sprintf("failed to create directory: %v", err)) + } + if err := os.WriteFile(path, frontmatter.Marshal(fm, metadata.FileTypeMdYaml), 0644); err != nil { + return errorFcall(fc, fmt.Sprintf("failed to write file: %v", err)) + } + meta := &metadata.Metadata{ Identifier: identifier, Signature: signature,