fix(ci): restore cross-platform trace checks
- commit
- 895a89cb9f18e98523b4e4283cdf847d494e835a
- author
- brice · · 2026-08-12 05:51 UTC
- parent
- ab33287
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
3 files · +9 -42
M packages/agent/subagents/runner_e2e_test.go +0 -39
| @@ -262,45 +262,6 @@ func retrySend(f *Supervisor, id, msg string, timeout time.Duration) error { | |||
| 262 | 262 | return lastErr | |
| 263 | 263 | } | |
| 264 | 264 | ||
| 265 | - | func eventText(ev Event) string { | |
| 266 | - | if ev.Type != "assistant_message" && ev.Type != "user_message" { | |
| 267 | - | return "" | |
| 268 | - | } | |
| 269 | - | content, _ := ev.Data["content"].([]any) | |
| 270 | - | var sb strings.Builder | |
| 271 | - | for _, c := range content { | |
| 272 | - | m, _ := c.(map[string]any) | |
| 273 | - | if t, _ := m["type"].(string); t == "text" { | |
| 274 | - | if txt, _ := m["text"].(string); txt != "" { | |
| 275 | - | sb.WriteString(txt) | |
| 276 | - | sb.WriteByte('\n') | |
| 277 | - | } | |
| 278 | - | } | |
| 279 | - | } | |
| 280 | - | return sb.String() | |
| 281 | - | } | |
| 282 | - | ||
| 283 | - | func dumpEventsVerbose(evs []Event) string { | |
| 284 | - | var sb strings.Builder | |
| 285 | - | for _, ev := range evs { | |
| 286 | - | sb.WriteString(ev.Type) | |
| 287 | - | sb.WriteString("\t") | |
| 288 | - | for k, v := range ev.Data { | |
| 289 | - | sb.WriteString(k) | |
| 290 | - | sb.WriteString("=") | |
| 291 | - | switch vv := v.(type) { | |
| 292 | - | case string: | |
| 293 | - | sb.WriteString(vv) | |
| 294 | - | default: | |
| 295 | - | sb.WriteString("<...>") | |
| 296 | - | } | |
| 297 | - | sb.WriteString(" ") | |
| 298 | - | } | |
| 299 | - | sb.WriteString("\n") | |
| 300 | - | } | |
| 301 | - | return sb.String() | |
| 302 | - | } | |
| 303 | - | ||
| 304 | 265 | func formatEvents(evs []Event) string { | |
| 305 | 266 | var sb strings.Builder | |
| 306 | 267 | for _, ev := range evs { | |
| @@ -262,45 +262,6 @@ func retrySend(f *Supervisor, id, msg string, timeout time.Duration) error { | |||||
| 262 | return lastErr | 262 | return lastErr | ||
| 263 | } | 263 | } | ||
| 264 | 264 | ||||
| 265 | - | func eventText(ev Event) string { | |||
| 266 | - | if ev.Type != "assistant_message" && ev.Type != "user_message" { | |||
| 267 | - | return "" | |||
| 268 | - | } | |||
| 269 | - | content, _ := ev.Data["content"].([]any) | |||
| 270 | - | var sb strings.Builder | |||
| 271 | - | for _, c := range content { | |||
| 272 | - | m, _ := c.(map[string]any) | |||
| 273 | - | if t, _ := m["type"].(string); t == "text" { | |||
| 274 | - | if txt, _ := m["text"].(string); txt != "" { | |||
| 275 | - | sb.WriteString(txt) | |||
| 276 | - | sb.WriteByte('\n') | |||
| 277 | - | } | |||
| 278 | - | } | |||
| 279 | - | } | |||
| 280 | - | return sb.String() | |||
| 281 | - | } | |||
| 282 | - | ||||
| 283 | - | func dumpEventsVerbose(evs []Event) string { | |||
| 284 | - | var sb strings.Builder | |||
| 285 | - | for _, ev := range evs { | |||
| 286 | - | sb.WriteString(ev.Type) | |||
| 287 | - | sb.WriteString("\t") | |||
| 288 | - | for k, v := range ev.Data { | |||
| 289 | - | sb.WriteString(k) | |||
| 290 | - | sb.WriteString("=") | |||
| 291 | - | switch vv := v.(type) { | |||
| 292 | - | case string: | |||
| 293 | - | sb.WriteString(vv) | |||
| 294 | - | default: | |||
| 295 | - | sb.WriteString("<...>") | |||
| 296 | - | } | |||
| 297 | - | sb.WriteString(" ") | |||
| 298 | - | } | |||
| 299 | - | sb.WriteString("\n") | |||
| 300 | - | } | |||
| 301 | - | return sb.String() | |||
| 302 | - | } | |||
| 303 | - | ||||
| 304 | func formatEvents(evs []Event) string { | 265 | func formatEvents(evs []Event) string { | ||
| 305 | var sb strings.Builder | 266 | var sb strings.Builder | ||
| 306 | for _, ev := range evs { | 267 | for _, ev := range evs { | ||
M packages/agent/subagents/trace_test.go +9 -0
| @@ -163,6 +163,15 @@ func TestTraceWriterConcurrentRecordHasOrderedGlobalSequences(t *testing.T) { | |||
| 163 | 163 | ||
| 164 | 164 | func assertPrivate(t *testing.T, path string, want os.FileMode) { | |
| 165 | 165 | t.Helper() | |
| 166 | + | if os.PathSeparator == '\\' { | |
| 167 | + | // Windows does not expose POSIX permission bits through os.FileMode. | |
| 168 | + | // The writer still requests restrictive ACL-compatible modes; assert the | |
| 169 | + | // portable property that the bundle member exists instead. | |
| 170 | + | if _, err := os.Stat(path); err != nil { | |
| 171 | + | t.Fatal(err) | |
| 172 | + | } | |
| 173 | + | return | |
| 174 | + | } | |
| 166 | 175 | info, err := os.Stat(path) | |
| 167 | 176 | if err != nil { | |
| 168 | 177 | t.Fatal(err) | |
| @@ -163,6 +163,15 @@ func TestTraceWriterConcurrentRecordHasOrderedGlobalSequences(t *testing.T) { | |||||
| 163 | 163 | ||||
| 164 | func assertPrivate(t *testing.T, path string, want os.FileMode) { | 164 | func assertPrivate(t *testing.T, path string, want os.FileMode) { | ||
| 165 | t.Helper() | 165 | t.Helper() | ||
| 166 | + | if os.PathSeparator == '\\' { | |||
| 167 | + | // Windows does not expose POSIX permission bits through os.FileMode. | |||
| 168 | + | // The writer still requests restrictive ACL-compatible modes; assert the | |||
| 169 | + | // portable property that the bundle member exists instead. | |||
| 170 | + | if _, err := os.Stat(path); err != nil { | |||
| 171 | + | t.Fatal(err) | |||
| 172 | + | } | |||
| 173 | + | return | |||
| 174 | + | } | |||
| 166 | info, err := os.Stat(path) | 175 | info, err := os.Stat(path) | ||
| 167 | if err != nil { | 176 | if err != nil { | ||
| 168 | t.Fatal(err) | 177 | t.Fatal(err) | ||
M packages/agent/tracecmd.go +0 -3
| @@ -3,7 +3,6 @@ package agent | |||
| 3 | 3 | import ( | |
| 4 | 4 | "fmt" | |
| 5 | 5 | "io" | |
| 6 | - | "os" | |
| 7 | 6 | "sort" | |
| 8 | 7 | "strings" | |
| 9 | 8 | "time" | |
| @@ -57,5 +56,3 @@ func renderTraceInspection(w io.Writer, views map[string]subagents.AgentTraceVie | |||
| 57 | 56 | } | |
| 58 | 57 | return nil | |
| 59 | 58 | } | |
| 60 | - | ||
| 61 | - | func debugCommandStdout() io.Writer { return os.Stdout } | |
| @@ -3,7 +3,6 @@ package agent | |||||
| 3 | import ( | 3 | import ( | ||
| 4 | "fmt" | 4 | "fmt" | ||
| 5 | "io" | 5 | "io" | ||
| 6 | - | "os" | |||
| 7 | "sort" | 6 | "sort" | ||
| 8 | "strings" | 7 | "strings" | ||
| 9 | "time" | 8 | "time" | ||
| @@ -57,5 +56,3 @@ func renderTraceInspection(w io.Writer, views map[string]subagents.AgentTraceVie | |||||
| 57 | } | 56 | } | ||
| 58 | return nil | 57 | return nil | ||
| 59 | } | 58 | } | ||
| 60 | - | ||||
| 61 | - | func debugCommandStdout() io.Writer { return os.Stdout } | |||