@vzn/vx 0.0.79 → 0.0.81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vzn/vx",
3
- "version": "0.0.79",
3
+ "version": "0.0.81",
4
4
  "description": "An open, extensible monorepo task runner.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -17,10 +17,10 @@
17
17
  "node": ">=18"
18
18
  },
19
19
  "optionalDependencies": {
20
- "@vzn/vx-linux-x64": "0.0.79",
21
- "@vzn/vx-linux-arm64": "0.0.79",
22
- "@vzn/vx-darwin-x64": "0.0.79",
23
- "@vzn/vx-darwin-arm64": "0.0.79"
20
+ "@vzn/vx-linux-x64": "0.0.81",
21
+ "@vzn/vx-linux-arm64": "0.0.81",
22
+ "@vzn/vx-darwin-x64": "0.0.81",
23
+ "@vzn/vx-darwin-arm64": "0.0.81"
24
24
  },
25
25
  "dependencies": {
26
26
  "@anthropic-ai/sandbox-runtime": "^0.0.76"
@@ -97,10 +97,11 @@ export interface DefaultLogger extends Logger {
97
97
  * broad — news only: one `success` line per executed task,
98
98
  * full frames for failures, silence for cache hits.
99
99
  *
100
- * `gha` (full mode only): wrap each task's block in `::group::` /
101
- * `::endgroup::` workflow commands so tasks collapse in the GitHub
102
- * Actions log viewer — except failed tasks, which stay pre-expanded
103
- * and emit an `::error` annotation instead.
100
+ * `gha` (on GitHub Actions, any mode): task output is fenced from
101
+ * workflow commands. In full mode each task's block is also wrapped in
102
+ * `::group::` / `::endgroup::` so tasks collapse in the log viewer —
103
+ * except failed tasks, which stay pre-expanded and emit an `::error`
104
+ * annotation instead.
104
105
  *
105
106
  * `ci`: a truthy CI env was detected. Suppresses the dynamic status
106
107
  * line even if stdout happens to be a TTY.
@@ -163,7 +164,7 @@ export function resolveOutputView(
163
164
  const gha = truthyEnv(env['GITHUB_ACTIONS'])
164
165
  const mk = (mode: OutputView['mode']): OutputView => ({
165
166
  mode,
166
- ...(mode === 'full' && gha ? { gha: true } : {}),
167
+ ...(gha ? { gha: true } : {}),
167
168
  ...(ci ? { ci: true } : {}),
168
169
  })
169
170
  if (options.outputLogs !== undefined) return mk(options.outputLogs)
@@ -232,6 +233,10 @@ export function defaultLogger(
232
233
  // One per run, and only in GHA mode: the fence token must be something the
233
234
  // fenced task output cannot print.
234
235
  const ghaToken = view.gha === true ? crypto.randomUUID() : ''
236
+ // A task's own text, fenced on GitHub Actions: the frames `errors-only`
237
+ // and `broad` defer and a server's tail printed a task's `::error::` raw.
238
+ const fenced = (block: string): string =>
239
+ view.gha === true && block.length > 0 ? ghaFence(block, ghaToken) : block
235
240
 
236
241
  // All stdout flows through the writer so the status line can never
237
242
  // interleave with content. Inert (pure passthrough) on non-TTY
@@ -487,12 +492,14 @@ export function defaultLogger(
487
492
  // its buffered output belongs to the frame it never got.
488
493
  if (t.outcome === undefined) continue
489
494
  emitBlock(
490
- formatPersistentTailBlock(
491
- t.node,
492
- t.outcome,
493
- { stdout: tailText(t.out), stderr: tailText(t.err) },
494
- { stdout: t.out.dropped, stderr: t.err.dropped },
495
- colors,
495
+ fenced(
496
+ formatPersistentTailBlock(
497
+ t.node,
498
+ t.outcome,
499
+ { stdout: tailText(t.out), stderr: tailText(t.err) },
500
+ { stdout: t.out.dropped, stderr: t.err.dropped },
501
+ colors,
502
+ ),
496
503
  ),
497
504
  )
498
505
  }
@@ -508,7 +515,7 @@ export function defaultLogger(
508
515
  // Guarded for repeat runEnd calls.
509
516
  if (!flushedFailures && deferredFailures.length > 0) {
510
517
  flushedFailures = true
511
- for (const block of deferredFailures) emitBlock(block)
518
+ for (const block of deferredFailures) emitBlock(fenced(block))
512
519
  }
513
520
  // The summary and the CLI's own lines follow on the stream directly:
514
521
  // nothing may still be held, and nothing after this is.