Write workspace checkpoints during runs

This commit is contained in:
2026-07-08 02:46:38 +00:00
parent f044c00a7c
commit 1d3a444df8
11 changed files with 1258 additions and 9 deletions

View File

@@ -992,6 +992,37 @@ func TestRunPassesChunkContentAndMediaTypeToExtractors(t *testing.T) {
}
}
func TestRunDoesNotPassCheckpointPathsToModules(t *testing.T) {
modules := defaultRunnerModules()
_, err := New(newRunnerRegistries(t, modules)).Run(context.Background(), RunInput{
Pipeline: resolvedPipeline(),
Checkpoints: NoopCheckpointRecorder(),
})
if err != nil {
t.Fatalf("Run() error = %v, want nil", err)
}
for _, req := range modules.input.requests {
assertNoCheckpointMetadata(t, req.Metadata)
}
for _, req := range modules.chunker.requests {
assertNoCheckpointMetadata(t, req.Metadata)
}
for _, req := range modules.extractors["extract-alpha"].requests {
assertNoCheckpointMetadata(t, req.Metadata)
}
for _, req := range modules.mergers["merge"].requests {
assertNoCheckpointMetadata(t, req.Metadata)
}
for _, req := range modules.normalizers["normalize"].requests {
assertNoCheckpointMetadata(t, req.Metadata)
}
for _, req := range modules.output.requests {
assertNoCheckpointMetadata(t, req.Metadata)
}
}
func TestRunOmitsRejectedExtractOutputsFromMerge(t *testing.T) {
modules := defaultRunnerModules()
validator := &runnerChainValidator{name: "chain-extract", approved: []bool{false, true}, reason: "bad_extract", message: "extract rejected"}
@@ -2181,6 +2212,25 @@ func warningReasons(warnings []contracts.Warning) []string {
return reasons
}
func assertNoCheckpointMetadata(t *testing.T, metadata map[string]any) {
t.Helper()
for key, value := range metadata {
lowerKey := strings.ToLower(key)
if strings.Contains(lowerKey, "checkpoint") || strings.Contains(lowerKey, "workspace") {
t.Fatalf("metadata key %q exposes checkpoint/workspace state", key)
}
text, ok := value.(string)
if !ok {
continue
}
lowerValue := strings.ToLower(text)
if strings.Contains(lowerValue, "checkpoint") || strings.Contains(lowerValue, "workspace") {
t.Fatalf("metadata value for %q exposes checkpoint/workspace state: %q", key, text)
}
}
}
func assertRunError(t *testing.T, err error, want string) {
t.Helper()