[object Object]

← back to Cli Printing Press

fix(cli): ensure Sync is always enabled when Store is true

b5fddac0514ad6c378e82c1c20698b8b8b12d821 · 2026-04-05 16:10:02 -0700 · Trevin Chow

A store without sync can't be populated — the profiler was setting
Store=true from data profile signals (high volume, search need) without
also setting Sync=true. Cal.com's spec triggered Store via the
search-need path but never got a sync command, making the entire data
layer (search, analytics, transcendence) unreachable.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit b5fddac0514ad6c378e82c1c20698b8b8b12d821
Author: Trevin Chow <trevin@trevinchow.com>
Date:   Sun Apr 5 16:10:02 2026 -0700

    fix(cli): ensure Sync is always enabled when Store is true
    
    A store without sync can't be populated — the profiler was setting
    Store=true from data profile signals (high volume, search need) without
    also setting Sync=true. Cal.com's spec triggered Store via the
    search-need path but never got a sync command, making the entire data
    layer (search, analytics, transcendence) unreachable.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---
 internal/generator/generator_test.go   | 6 +++---
 internal/generator/vision_templates.go | 5 +++++
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/internal/generator/generator_test.go b/internal/generator/generator_test.go
index 0983c21a..1f5af759 100644
--- a/internal/generator/generator_test.go
+++ b/internal/generator/generator_test.go
@@ -22,9 +22,9 @@ func TestGenerateProjectsCompile(t *testing.T) {
 		specPath      string
 		expectedFiles int
 	}{
-		{name: "stytch", specPath: filepath.Join("..", "..", "testdata", "stytch.yaml"), expectedFiles: 30},
-		{name: "clerk", specPath: filepath.Join("..", "..", "testdata", "clerk.yaml"), expectedFiles: 34},
-		{name: "loops", specPath: filepath.Join("..", "..", "testdata", "loops.yaml"), expectedFiles: 34},
+		{name: "stytch", specPath: filepath.Join("..", "..", "testdata", "stytch.yaml"), expectedFiles: 31},
+		{name: "clerk", specPath: filepath.Join("..", "..", "testdata", "clerk.yaml"), expectedFiles: 35},
+		{name: "loops", specPath: filepath.Join("..", "..", "testdata", "loops.yaml"), expectedFiles: 35},
 	}
 
 	for _, tt := range tests {
diff --git a/internal/generator/vision_templates.go b/internal/generator/vision_templates.go
index a819da23..1c8e65cf 100644
--- a/internal/generator/vision_templates.go
+++ b/internal/generator/vision_templates.go
@@ -113,6 +113,11 @@ func SelectVisionTemplates(plan *vision.VisionaryPlan) VisionTemplateSet {
 		}
 	}
 
+	// Invariant: a store without sync is useless — sync populates the store.
+	if set.Store && !set.Sync {
+		set.Sync = true
+	}
+
 	// MCP server is always generated alongside the CLI
 	set.MCP = true
 

← 3e9ac6d8 chore(main): release 1.0.0 (#45)  ·  back to Cli Printing Press  ·  feat(cli): per-endpoint header routing and auth inference fr fb164adc →