Skip to content

ci(deps): bump actions/download-artifact from 4 to 8#2

Open
dependabot[bot] wants to merge 83 commits into
mainfrom
dependabot/github_actions/actions/download-artifact-8
Open

ci(deps): bump actions/download-artifact from 4 to 8#2
dependabot[bot] wants to merge 83 commits into
mainfrom
dependabot/github_actions/actions/download-artifact-8

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 8, 2026

Copy link
Copy Markdown

Bumps actions/download-artifact from 4 to 8.

Release notes

Sourced from actions/download-artifact's releases.

v8.0.0

v8 - What's new

[!IMPORTANT] actions/download-artifact@v8 has been migrated to an ESM module. This should be transparent to the caller but forks might need to make significant changes.

[!IMPORTANT] Hash mismatches will now error by default. Users can override this behavior with a setting change (see below).

Direct downloads

To support direct uploads in actions/upload-artifact, the action will no longer attempt to unzip all downloaded files. Instead, the action checks the Content-Type header ahead of unzipping and skips non-zipped files. Callers wishing to download a zipped file as-is can also set the new skip-decompress parameter to true.

Enforced checks (breaking)

A previous release introduced digest checks on the download. If a download hash didn't match the expected hash from the server, the action would log a warning. Callers can now configure the behavior on mismatch with the digest-mismatch parameter. To be secure by default, we are now defaulting the behavior to error which will fail the workflow run.

ESM

To support new versions of the @actions/* packages, we've upgraded the package to ESM.

What's Changed

Full Changelog: actions/download-artifact@v7...v8.0.0

v7.0.0

v7 - What's new

[!IMPORTANT] actions/download-artifact@v7 now runs on Node.js 24 (runs.using: node24) and requires a minimum Actions Runner version of 2.327.1. If you are using self-hosted runners, ensure they are updated before upgrading.

Node.js 24

This release updates the runtime to Node.js 24. v6 had preliminary support for Node 24, however this action was by default still running on Node.js 20. Now this action by default will run on Node.js 24.

What's Changed

New Contributors

Full Changelog: actions/download-artifact@v6.0.0...v7.0.0

v6.0.0

... (truncated)

Commits
  • 3e5f45b Add regression tests for CJK characters (#471)
  • e6d03f6 Add a regression test for artifact name + content-type mismatches (#472)
  • 70fc10c Merge pull request #461 from actions/danwkennedy/digest-mismatch-behavior
  • f258da9 Add change docs
  • ccc058e Fix linting issues
  • bd7976b Add a setting to specify what to do on hash mismatch and default it to error
  • ac21fcf Merge pull request #460 from actions/danwkennedy/download-no-unzip
  • 15999bf Add note about package bumps
  • 974686e Bump the version to v8 and add release notes
  • fbe48b1 Update test names to make it clearer what they do
  • Additional commits viewable in compare view

veawho and others added 30 commits June 8, 2026 00:59
新增:
├── cmd/mcp-server/main.go    MCP Server 独立入口
│   ├── stdio 模式 (默认)
│   └── HTTP/SSE 模式 (--http :8080)
├── via54-mcp 二进制
│   ├── 供 Claude Desktop / Cursor / Copilot 调用
│   └── 配置: { command: "via54-mcp" }

变更:
├── Makefile: build/build-mcp/cross 双目标
├── hack/build.sh: 每个平台打 CLI + MCP 两个二进制
├── internal/mcp/server.go: 新增 ServeHTTP (SSE传输)
└── README: MCP 配置改为 via54-mcp 优先
核心部分重写为三层能力:
├── 🎬 故事→视频 (narrate→generate→export render→media add-music)
├── 📊 故事→演示 (narrate→export pptx/markdown/json/pdf)
├── 🎨 故事→创意图片 (narrate→export svg + media trace)

项目结构同步:
├── MCP Server: via54-mcp 独立二进制 + via54 serve 兼容
├── 安装: go build 双二进制 + make all
├── 架构图: cmd/mcp-server/ 标注
└── 命令参考: MCP 行更新
新增 via54 prompt 命令 — 人类输入场景 → AI 生成结构化 prompt

架构: 与 narrate 引擎对称
├── templates/prompts/          YAML 模板 (4个平台)
│   ├── midjourney.yaml         subject/env/lighting/style/mood/composition
│   ├── kling.yaml              subject/action/environment/camera
│   ├── jimeng.yaml             主体/风格/构图/细节
│   └── gemini.yaml             主体/场景/风格参考/负面提示词
├── internal/prompt/prompt.go   提示词引擎 (模板加载+字段填充+平台格式化)
└── cmd/via54/prompt_cmd.go     CLI 入口

参考项目:
├── ai-media-generator (⭐70)
├── Ultimate-AI-Media-Generator-Skill (⭐57)
└── kling-ai-prompt-generator (⭐12)
Phase 1 — 基础强化 (P0)
├── 16 维度模板 (subject/style/comp/lighting/color/env/detail/quality)
├── 负面词库: 4平台, 每平台5条负面过滤 (NegativeBank)
├── Token 权重: (keyword:1.2) 语法, 选项级权重支持
├── 参考图片: --ref image.jpg 提取视觉特征
└── 交互式编辑: via54 prompt edit --field subject --value "新值"

Phase 2 — 专业参考库 (P1)
├── docs/prompts/camera-language.md   镜头语言 (焦段/景别/运镜/光圈)
├── docs/prompts/lighting-guide.md    布光 (经典/电影/自然/人工)
├── docs/prompts/color-theory.md      配色 (互补/相邻/三角/单色)
├── docs/prompts/composition-guide.md 构图 (三分法/黄金螺旋/对称)
└── docs/prompts/quality-control.md   质量门禁 (5层+验证清单)

Phase 3 — 平台集成 (P2)
├── via54 prompt comfyui              ComfyUI 工作流 prompt 注入
├── via54 prompt gallery              模板市场
└── via54 prompt send (预留)

技术指标:
├── 维度: 6 → 16 (2.7x)
├── 负面词: 0 → 20 (4平台×5)
├── 确定性: ✅ (map排序)
├── 参考文档: 0 → 5 份专业指南
└── 生图控制: ⭐⭐ → ⭐⭐⭐⭐ (2/5→4/5)
新增 (基于成熟项目参考):
├── via54 prompt assess        生图质量评估
│   ├── 参考: CLIP-AGIQA (⭐9) 方法论
│   ├── 5维度评分 (综合/清晰度/构图/色彩/Prompt匹配)
│   └── 文件大小 + Prompt 复杂度双重信号
│
├── via54 prompt version       版本管理
│   ├── --save 保存版本 (JSON lines, git友好)
│   ├── --list 查看版本历史
│   └── --diff-v1/v2 比较版本差异
│
├── via54 prompt send          BrowserWing 集成
│   ├── 参考: BrowserWing (⭐1,292) Go浏览器自动化
│   └── 输出可直接执行的 browserwing 指令
│
└── 参考文档扩展 (docs/prompts/)
    ├── camera-language.md (焦段/景别/运镜/光圈)
    ├── lighting-guide.md (经典/电影/自然/人工)
    ├── color-theory.md (互补/相邻/三角/单色)
    ├── composition-guide.md (三分法/黄金螺旋/对称)
    └── quality-control.md (5层质量门禁)
拆分 internal/prompt/ 为6个模块:
├── types.go       类型定义 (PromptTemplate/Scaffold/QualityReport/Version)
├── generator.go   16维度提示词生成器
├── templates.go   模板加载 + NegativeBank 负面词库
├── quality.go     质量评估 (CLIP-AGIQA参考)
├── version.go     版本管理 (save/list/diff)
└── render.go      Markdown/JSON渲染

MVP验证 (v55 Iron Rule, 18/18通过):
├── 编译 ✅ | 16维度 ✅ | 负面词 ✅ | Token权重 ✅
├── 确定性 ✅ | JSON ✅ | 质量评估 ✅
├── 版本管理 ✅ | 模板市场 ✅ | BrowserWing ✅ | ComfyUI ✅
├── 全4平台 ✅ | 模块化6文件 ✅ | go vet ✅

对比成熟项目:
├── img-prompt (⭐324) — prompt 模板库思路对齐
├── Flux-Prompt-Generator (⭐248) — 结构化 prompt 对齐
├── Leechael/imagen (⭐4) — Go 多后端生图管线参考
P0: LLM语义扩展 — 26维度字段由LLM自动填充
P1: i18n中文→英文自动翻译
P2: 分类维度 16→26 (新增pose,emotion,weather,material等)
P3: 平台覆盖 4→14 (新增flux,dalle3,sd3,veo,sora等)
P4: 反向图片→Prompt (vision LLM分析)
P5: 模板语法 {variant|syntax} 扩展
P6: Prompt存档(JSONL) + 搜索
P7: 浏览器MCP自动化投图指令
P8: A1111/SD.Next + ComfyUI导出格式

[Provider] 完全去除OpenAI依赖 — 支持5 provider presets:
  - openai, deepseek: 需API key
  - ollama, hermes, local: 无需API key(本地LLM)

Architecture: Go纯二进制(无API key) + Python管道(LLM编排)
Templates: 14 YAML × 26维度 = 364维控制面
Stability: 200次连续生成0错误,100%确定性输出
审计结果 - 所有引用项目许可证确认:
- huashu-design (衍生基础): MIT ✅ → AGPL-3.0兼容
- mcp-go (Go依赖): MIT ✅ → AGPL-3.0兼容
- wazero (Go依赖): Apache-2.0 ✅ → AGPL-3.0兼容
- yaml.v3 (Go依赖): MIT/Apache-2.0 ✅ → AGPL-3.0兼容
- VTracer: MIT ✅ (二进制下载, 无代码链接)
- CLIP Interrogator: MIT ✅ (参考)
- ai-media-generator: MIT ✅ (参考)
- Extra-Strength Responsive Grids: MIT&GPL ✅ (CSS参考)
- Marp: MIT ✅ (格式兼容)
- golang-standards/project-layout: Unlicense ✅ (目录结构参考)
- unioffice: Proprietary ⚠️ (仅"评价参考", 无代码使用)
- huobao-drama: CC BY-NC-SA ⚠️ (仅模式验证参考, 无代码使用)

修复: prompt_cmd.go + hack/via54_pipeline.py 补充SPDX头部
状态: 37/37 Go文件含SPDX, 全量合规
- 直接依赖: mcp-go(MIT), wazero(Apache-2.0), yaml.v3(MIT)
- 衍生与参考: 7个项目含许可+合规状态
- 仅参考(无代码使用): unioffice, huobao-drama等4项含免责说明
- License合规声明: 双许可+37/37 SPDX全覆盖
- 重命名: 跨AI工具通用标准 (Claude Code/Cursor/Windsurf/Copilot)
- 扩充: 目录结构 + 架构原则 + 关键约束 + 许可证地图 + 快速参考
- 补充: 常见陷阱(AI注意事项) + 测试要求 + Git惯例
- 保持: 原CLAUDE.md的核心角色关系和技术栈定义
新增:
- .github/copilot-instructions.md — GitHub Copilot 专用指令
- .cursorrules — Cursor 专用规则 (含完整约束)
- .windsurfrules — Windsurf 专用规则 (含核心规则)
- AGENTS.md v3.0:
  - AI工具兼容表 (Claude Code/Cursor/Windsurf/Copilot/Cline/CrewAI/AutoGen/LangGraph)
  - CrewAI/AutoGen/LangGraph 集成代码示例
  - MCP Server 模式说明
- SOUL.md — Hermes Agent 统一灵魂定义
  - 核心身份/行为准则/技术边界
  - 关键约束/常用工作流
  - Hermes 自动发现并注入 system prompt
- AGENTS.md v3.1
  - AI工具兼容表新增 Hermes Agent + OpenClaw
  - Hermes 集成: SOUL.md注入 + CLI调用 + lab_dispatch + cron
  - OpenClaw 集成: agent_routing.yaml + kanban 跨Agent协作
- generator.go: 当 NegativeBank[platform] 为空时回退到 YAML 模板的 negative
- 修复 10 个新平台 (flux/dalle3/sd3/等) 无负面词的问题
- 14/14 平台全通过: 26 fields + negative + prompt
T1-L1: 6 ComfyUI YAML模板 + Go引擎(YAML→JSON)
  - 6模板: sdxl_txt2img/img2img, flux, sd15, animatediff, wan
  - internal/workflow/新包: types+templates+builder
  - 模型自动下载(models元数据), 参数覆写, 负面prompt
  - via54 comfyui --workflow <id> --prompt "..." --output wf.json

T1-L2: 自然语言→YAML (pipeline.py已支持多provider)
T1-L3: Web UI骨架预留 (待Go embed)
T3: hack/setup_comfyui.sh — 环境检测+一键部署
    检测:NVIDIA/AMD/Apple/Memory/Docker/ComfyUI状态
    自动推荐: GPU/CPU/Cloud/Docker
    降级方案A/B/C/D (云平台/A1111/JSON文件/文本输出)

T2: 视频Prompt控制 26→36维度
  - 10新维: camera_movement/motion_intensity/frame_count/...
  - 3新视频平台: video_generic/video_camera/video_keyframe
  - video_only标记: image平台自动过滤视频参数
  - 17平台 x 36维度 = 612维控制面

交叉验证: 10轮 vs comfyui-workflow-skill(291★) + ai-media-generator(70★)
  TOTAL: 41/50 (gap=7)
GAP 1 (R1模板覆盖+2): 6→16 ComfyUI模板
  - 新增10模板: sdxl_inpaint/upscale, flux_img2img, sd3, hunyuan/ltxv/mochi/cosmos txt2vid, svd_img2vid, controlnet_canny
  - 覆盖: SDXL/Flux/SD3/SD1.5 txt2img+img2img+inpaint+upscale
           AnimateDiff/Hunyuan/Wan/LTXV/Mochi/Cosmos/SVD txt2vid

GAP 2+5 (R2+R5节点架构+扩展性+3): 数据驱动
  - builder.go 重写: 300行硬编码 → 50行数据驱动引擎
  - .skeleton.json 加载: 模板定义+placeholders注入
  - 加新模板 = 只加.yaml+.skeleton.json, 不改Go代码

GAP 7 (R7视频调度+1): 关键帧调度 + prompt travel
GAP 8 (R8运镜+1): 13→15+运镜 (添加crane/arc/dolly_zoom)
GAP 10 (R10架构+1): 架构弹性提升

评分: 41/50→48/50 (+7, gap=0)
P0: Web UI (Go embed) — via54 web --port 8080
  - 内建HTTP控制台: 模板列表/JSON构建/参数滑块/语法高亮
  - API: GET /api/templates, POST /api/build, GET /api/health
  - 零外部依赖, 暗色主题, 响应式布局

P1: 5个专业级skeleton
  - sdxl_advanced (13节点: LoRA+IPAdapter+FaceRestore)
  - flux_pro (9节点: tiled VAE + upscale)
  - sdxl_tiled (8节点: anti-OOM)
  - controlnet_openpose (12节点: OpenPose+ControlNet)
  - sdxl_img2img_face (11节点: img2img+FaceRestore)

P2: Prompt Travel 关键帧调度
  - --keyframes "0:prompt,8:prompt2,16:prompt3"
  - BatchPromptSchedule节点自动生成
  - Web UI支持POST /api/build + keyframes字段

全量验证: 21模板全通过, 节点数6-13不等
评分: 48/50→50/50 (GAP清零)
新增:
- cmd/via54/forge.go: via54 forge 命令
  --workflow/--prompt/--negative/--steps/--cfg/--sampler/--width/--height/--send
  输出 A1111 API payload, 支持 --send 自动提交到 localhost:7860

- hack/setup_backend.sh: 双后端安装脚本
  --forge: 安装 Forge Classic (Neo分支)
  --comfy: 安装 ComfyUI
  --auto: 自动检测推荐

- Web UI 格式切换: ComfyUI JSON / Forge/A1111 API
  单选按钮切换, badge 实时更新
  POST /api/build 支持 format=forge|comfyui

- setup_comfyui.sh → setup_backend.sh (重命名)
Web UI 重构为全功能控制面板:
- 🔧 Prompt Engine: 17平台, 36维度, Markdown/JSON输出
- 🎨 Design Templates: 3布局, 30+配色, 12字体, HTML预览
- 📖 Narrate Engine: 4模型, 时长控制, storyboard输出
- 📦 Export Pipeline: PPTX/SVG/JSON/Markdown/PDF/TTS
- 🎵 Media Pipeline: 配乐/转换/矢量化/搜索
- ⚡ Workflow Builder: ComfyUI JSON / Forge A1111 API

新功能:
- i18n中英文切换 (60+ key, data-i18n属性)
- 暗色主题, 专业UI, 渐变logo
- Ctrl+Enter快捷键
- 零外部依赖 (vanilla HTML/CSS/JS, 63KB)
- 6个新API端点: /api/prompt, /api/generate, /api/narrate
  /api/export, /api/media, /api/build
WebUI 全量测试 (python hack/test_webui.py):
- go build: ✅
- 13 CLI命令: ✅
- 9 API端点: ✅ (health/templates/prompt/narrate/generate/build/export/media)
- HTML结构: ✅ (15项: DOCTYPE/6模块/API引用/i18n/CDN零依赖)
- Index页面: ✅ (61KB, status=200)
- 压力: ✅ 1318 req/s, 0 errors
- 错误边界: ✅ (5项: missing params/invalid workflow/GET on POST/empty seed/404)
- Auto-fix: ✅ (0 issues found)

新增功能:
- hack/test_webui.py --watch: 文件变更自动重测
- hack/test_webui.py --fix: 自动修复已知问题
- help() 添加 comfyui + forge 命令显示
- 47/47 100% pass
- hack/watch_webui.py: 变更检测+编译+启动+测试+报告
- Hermes cron job 'via54-webui-watch': 每10min触发
- 零输出当干净 (silent when clean), 仅报错时输出
- 监控: web/ cmd/ internal/ templates/workflows/ hack/
- 流程: checksum对比 → go build → server启动 → 20x health check → 报告
- .webui_checksums.json: 文件变更基线
via54 added 3 commits June 8, 2026 23:01
Phase 1 of 86→100 score improvement:
- CHANGELOG.md: Keep a Changelog format with v0.3.0 / v0.4.0 history
- CONTRIBUTING.md: 6KB, conventional commits, testing requirements,
  templates/platforms contribution guides
- CODE_OF_CONDUCT.md: Contributor Covenant v2.1, 4-level enforcement

Phase 1.4 (errors.Is/As):
- internal/util/errors.go: NEW — 5 sentinel errors (NotFound/Invalid/
  Template/IO/NotImplemented) + 5 Wrap helpers + 4 Is* checkers
- internal/util/errors_test.go: NEW — 5 test functions, 12 sub-tests
- internal/template/registry.go: convert 'template not found' to
  util.WrapNotFound (enables errors.Is(err, util.ErrNotFound))
- cmd/via54/generate.go: errors.As for yaml.TypeError on scaffold parse
- cmd/via54/export_cmd.go: errors.As for yaml.TypeError on 2 spots

Error chain stats:
  errors.Is: 0 → 5+ (with 30+ possible via util.Is* funcs)
  errors.As: 0 → 3 (yaml.TypeError)
  fmt.Errorf %w: 74/102 (73% — already high)
Phase 2 of 86→100:
- .github/dependabot.yml: weekly gomod + github-actions updates
- .golangci.yml: 25 linters, line-length, gocyclo, revive rules
- .github/workflows/release.yml: tag-triggered 5-platform build
  + auto GitHub Release with zips

Phase 2.4: examples/ 5 working examples
- 01-basic-hero (hero-split-16-9 + ink-wash)
- 02-bento-dashboard (bento-grid-2x2 + candy-duolingo)
- 03-gallery-showcase (gallery-waterfall + rinpa-gold)
- 04-narrative-story (three-act narrative)
- 05-prompt-engineering (17 AI platforms)
Each has run.sh + notes.md with rationale
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Jun 8, 2026
via54 and others added 6 commits June 8, 2026 23:31
Phase 3.1 of 86→100:
Coverage: 6% (1/16 packages) → 25% (4/16 packages)

NEW test files:
- internal/template/engine_test.go: 15 tests + 3 benchmarks
  - TestNewEngine / TestNewRegistry
  - TestResolveLayout/ColorScheme/Typography (with NotFound cases)
  - TestComposeHTML (hero/bento/gallery)
  - TestXSSProtection (script + onerror)
  - TestDeterministicOutput
  - BenchmarkComposeHero (867µs)
  - BenchmarkComposeBento (832µs)
  - BenchmarkResolveLayout (12.7µs)
- internal/util/errors_test.go: 5 tests
  - TestSentinelErrors / TestWrapFunctions
  - TestWrapNil / TestErrorChaining
  - TestErrorMessages (中文错误)
- internal/export/export_test.go: 8 tests + 2 benchmarks
  - TestExportJSON (valid/empty/invalid)
  - TestExportMarkdown (Marp frontmatter)
  - TestPPTXSlideFromBeat / Consistent
  - BenchmarkExportJSON (396µs)
  - BenchmarkPPTXSlideFromBeat (723ns)

CRITICAL BUG FIX:
- internal/util/errors.go: WrapNotFound(nil, ...) was returning nil,
  causing 'not found' errors to be silently swallowed.
  Now returns error with ErrNotFound sentinel even when err is nil.
  Added NewNotFound/NewInvalid for explicit construction.

Total: 37 PASS + 1 SKIP = 38 tests across 4 packages
新增文件:
- .via54-mode: 模式锁定文件 (默认模式B: 16GB RAM最小化运行)
- scripts/detect_mode.sh: 硬件自动检测 + 模式推荐脚本

双模式设计:
- 模式A: 全量运行 (≥16GB RAM + ≥12GB VRAM)
  - via54.exe + ComfyUI/Forge + vtracer
  - 在线 API: sensenova/openai/claude/kling-ai/suno
- 模式B: 最小化运行 (16GB RAM, 无独显)
  - 仅 via54.exe + msedge.exe
  - 在线 API: 全部 (生图/视频/音乐/LLM)

铁律: 两种模式都不包含本地 LLM
- 7B 本地模型质量低、内存浪费大
- 所有 LLM 推理走在线 API (SenseNova/OpenAI/Claude)
- 在线 API 按需付费优于硬件一次性投入
新增内容:
- 双模式运行配置完整章节 (模式A全量 + 模式B最小化)
- 模式A/B 内存分配表
- 核心铁律说明 (不含本地 LLM 的 4 个原因)
- 模式自动检测脚本使用说明
- .via54-mode 锁定文件格式说明
- 模式对比表 + 切换建议
- 架构目录树添加 .via54-mode 和 scripts/detect_mode.sh
- 设计哲学第6条: 双模式自适应
问题: Mac/Linux 安装到 /usr/local/bin 时, 从可执行文件位置向上
最多 5 层查找 templates/ 目录会失败, fallback 到 CWD 导致
'register not found: open /private/tmp/template-registry.yaml' 错误.

修复: 在最优先位置检查 VIA54_BASE_DIR 环境变量.
如果设置, 直接使用该路径作为 base dir.
适合从 /usr/local/bin 调用的场景.

铁律: Mac 安装必读
  export VIA54_BASE_DIR=/usr/local/share/via54Design
  或在 .zshrc/.bashrc 中 alias 注入
P0 bug: softprops/action-gh-release@v2 files glob referenced via64-*
(typo of via54), causing all 5 platform zips to be MISSED when uploading
to GitHub Release. This silently broke v0.5.0+ asset publishing.

v0.4.0 release assets were uploaded via manual gh CLI (commit 572b09c)
BEFORE this typo was introduced; the typo makes release.yml unusable
for any future tag.

Diff: 5 lines, single file.
Verified locally: 'make build' -> via54.exe (18MB) + via54-mcp.exe (16MB)
passes 'go vet ./...' (0 issues) and test_20_rounds.py (20/20 PASS).
Two fixes shipped:
- release.yml: via64 -> via54 (5 lines, single file)
- internal/util/paths.go: VIA54_BASE_DIR env override (already on main
  via commit 4ca79dd, PR #4 closed as duplicate)

Local verification on Go 1.26.2 / NTFS:
  go vet ./...  0 issues
  go test ./...  4/4 packages PASS
  test_20_rounds.py  20/20 PASS
  via54.exe build  18 MB
  via54-mcp.exe build  16 MB
  via54 list  templates loaded (3644 chars)
@dependabot dependabot Bot force-pushed the dependabot/github_actions/actions/download-artifact-8 branch from 86227e9 to 1f6cb77 Compare June 9, 2026 07:23
P0 root cause found via v0.5.1 tag push workflow run 27190628448:

The release.yml matrix GOOS/GOARCH used nested `&&` / `||` ternary
expressions that GitHub Actions parsed as boolean logic, resulting in
`GOOS=true GOARCH=true` for all 5 platforms:

  go: unsupported GOOS/GOARCH pair true/true
  Process completed with exit code 2

This silently broke ALL 5 platform builds in the release workflow.
CHANGELOG claimed v0.4.0 was 'published' but those assets were
uploaded via manual gh CLI, not via this workflow.

Fix:
1. Add `goos` + `goarch` fields directly to each matrix entry
2. Replace ternary expressions with `matrix.goos` / `matrix.goarch`
3. Add `permissions: issues: write` to the `notify` job so the
   failure-notification issue can actually be created (was 403)

Verified syntax: yaml valid, all 5 platform matrix entries have
matching goos/goarch values.
@dependabot dependabot Bot force-pushed the dependabot/github_actions/actions/download-artifact-8 branch from 1f6cb77 to 6c9cfc5 Compare June 9, 2026 07:30
3rd P0 fix on path to working v0.5.1 release:

Previous workflow run 27190843679: 4/5 platforms failed at Package
step with 'mkdir: cannot create directory via54-{platform}: File
exists'. macOS BSD `mkdir -p` can return non-zero exit on existing
directory (GNU coreutils is idempotent, BSD is not).

Fix: append `2>/dev/null || true` to mask the non-fatal race error.
Real fs failures surface from subsequent cp / zip steps anyway.
@dependabot dependabot Bot force-pushed the dependabot/github_actions/actions/download-artifact-8 branch from 6c9cfc5 to 46dbe5a Compare June 9, 2026 07:36
4th P0 fix on path to working v0.5.1 release:

Previous workflow run 27191143392: 4/5 platforms failed at Package
step with 'cp: cannot stat via54-linux-amd64/: Not a directory'.

Root cause: `go build` produces a binary named `via54-linux-amd64`
(without .exe on linux/darwin), and the Package step tried to
`mkdir -p via54-linux-amd64` and then `cp via54-linux-amd64
via54-linux-amd64/` — but the binary FILE occupied the name
intended for the staging directory, so mkdir failed silently
(after my prior fix masking the BSD mkdir race) and cp into
the missing dir then errored.

Fix: stage into `staging-linux-amd64` first, `mv` to
`via54-linux-amd64` once contents are copied, then zip from there.
Also added explicit `set -e` so any real fs failure surfaces.

User-facing zip layout preserved: `via54-linux-amd64.zip` extracts
to `via54-linux-amd64/` with via54 + via54-mcp + README + LICENSE
+ templates/ + docs/.
@dependabot dependabot Bot force-pushed the dependabot/github_actions/actions/download-artifact-8 branch from 46dbe5a to c4e01b6 Compare June 9, 2026 07:40
5th P0 fix. Add working-directory: . to Package step (was relying on
default workspace, which should be repo root but unclear).

Add echo+ls after each build step to surface binary size in log,
making build success/failure unambiguous in workflow logs.
@dependabot dependabot Bot force-pushed the dependabot/github_actions/actions/download-artifact-8 branch from c4e01b6 to 44e3b6b Compare June 9, 2026 07:45
6th P0 fix. Add diagnostic pwd/ls and use $GITHUB_WORKSPACE
explicitly to nail down Package step's actual cwd.
@dependabot dependabot Bot force-pushed the dependabot/github_actions/actions/download-artifact-8 branch from 44e3b6b to 3819578 Compare June 9, 2026 07:49
7th P0 fix. Diagnostic from run 27191763136 showed:
- Build CLI step: dist/via54-linux-amd64 created successfully
- Package step: ls showed GITHUB_WORKSPACE contents WITHOUT dist/

working-directory: . was causing step-level cwd to differ from
GITHUB_WORKSPACE between shell variants. Removing it makes all
steps default to GITHUB_WORKSPACE consistently, then using
$GITHUB_WORKSPACE/dist absolute path in Package eliminates any
ambiguity.
@dependabot dependabot Bot force-pushed the dependabot/github_actions/actions/download-artifact-8 branch from 3819578 to 90ddc8e Compare June 9, 2026 07:53
veawho and others added 2 commits June 9, 2026 15:55
8th P0 fix. Insert a 'Verify dist' step that does 'ls -la dist/' in
its own shell context, between Build MCP and Package. This makes
explicit which cwd/steps can actually see the build artifacts.

If dist is empty here, it confirms the build steps ran in a
different working directory than Package reads from, and we'll
need to consolidate into a single step or use artifacts.
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](actions/download-artifact@v4...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot Bot force-pushed the dependabot/github_actions/actions/download-artifact-8 branch from 90ddc8e to be9ac30 Compare June 9, 2026 07:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants