Files
yaze/docs/internal/release-checklist.md
scawful 43a0e5e314 fix(linux): remove yaze_editor dependency from yaze_emu_test to resolve FLAGS symbol conflicts
Resolves Linux build failure where multiple definition of FLAGS_rom and FLAGS_norom
occurred. The yaze_emu_test is a minimal headless test that should not link to
yaze_editor (which pulls in yaze_agent containing flags.cc). The test defines its
own flags (FLAGS_emu_test_rom, etc.) which were conflicting with the agent's flags.

Root cause:
- yaze_emu_test linked to yaze_editor
- yaze_editor links to yaze_agent (when agent UI enabled)
- yaze_agent includes cli/flags.cc with FLAGS_rom/FLAGS_norom definitions
- This created ODR (One Definition Rule) violations with emu_test's own flags

Solution:
- Remove yaze_editor and yaze_app_core_lib dependencies from yaze_emu_test
- Only link minimal dependencies: yaze_emulator, yaze_util, and Abseil flags

Affected platforms: Linux (Ubuntu 22.04 GCC-12)
Related commits: 0812a84a22 (circular dependency fix), 43118254e6 (Windows fix)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-20 03:03:56 -05:00

6.7 KiB

Release Checklist - feat/http-api-phase2 → master

Release Coordinator: CLAUDE_RELEASE_COORD Target Commit: 43118254e6 - "fix: apply /std:c++latest unconditionally on Windows for std::filesystem" CI Run: #485 - https://github.com/scawful/yaze/actions/runs/19529565598 Status: IN_PROGRESS Last Updated: 2025-11-20 02:50 PST

Critical Context

  • Windows std::filesystem build has been BROKEN for 2+ weeks
  • Latest fix simplifies approach: apply /std:c++latest unconditionally on Windows
  • Multiple platform-specific fixes merged into feat/http-api-phase2 branch
  • User demands: "we absolutely need a release soon"

Platform Build Status

Windows Build

  • Status: IN_PROGRESS (CI Run #485 - Job "Build - Windows 2022 (Core)")
  • Previous Failures: std::filesystem compilation errors (runs #480-484)
  • Fix Applied: Unconditional /std:c++latest flag in src/util/util.cmake
  • Blocker: None (fix deployed, awaiting CI validation)
  • Owner: CLAUDE_AIINF
  • Test Command: cmake --preset win-dbg && cmake --build build
  • CI Job Status: Building...

Linux Build

  • Status: IN_PROGRESS (CI Run #485 - Job "Build - Ubuntu 22.04 (GCC-12)")
  • Previous Failures:
    • Circular dependency resolved (commit 0812a84a22)
    • FLAGS symbol conflicts in run #19528789779 (NEW BLOCKER)
  • Known Issues: FLAGS symbol redefinition (FLAGS_rom, FLAGS_norom, FLAGS_quiet)
  • Blocker: CRITICAL - Previous run showed FLAGS conflicts in yaze_emu_test linking
  • Owner: CLAUDE_LIN_BUILD (specialist agent monitoring)
  • Test Command: cmake --preset lin-dbg && cmake --build build
  • CI Job Status: Building...

macOS Build

  • Status: IN_PROGRESS (CI Run #485 - Job "Build - macOS 14 (Clang)")
  • Previous Fixes: z3ed linker error resolved (commit 9c562df277)
  • Previous Run: PASSED in run #19528789779
  • Known Issues: None active
  • Blocker: None
  • Owner: CLAUDE_MAC_BUILD (specialist agent confirmed stable)
  • Test Command: cmake --preset mac-dbg && cmake --build build
  • CI Job Status: Building...

HTTP API Validation

Phase 2 Implementation Status

  • Status: COMPLETE (validated locally on macOS)
  • Scope: cmake/options.cmake, src/cli/cli_main.cc, src/cli/service/api/
  • Endpoints Tested:
    • GET /api/v1/health → 200 OK
    • GET /api/v1/models → 200 OK (empty list expected)
  • CI Testing: PENDING (enable_http_api_tests=false for this run)
  • Documentation: Complete (src/cli/service/api/README.md)
  • Owner: CLAUDE_AIINF

Test Execution Status

Unit Tests

  • Status: TESTING (CI Run #485)
  • Expected: All pass (no unit test changes in this branch)

Integration Tests

  • Status: TESTING (CI Run #485)
  • Expected: All pass (platform fixes shouldn't break integration)

E2E Tests

  • Status: TESTING (CI Run #485)
  • Expected: All pass (no UI changes)

GO/NO-GO Decision Criteria

GREEN LIGHT (GO) Requirements

  • All 3 platforms build successfully in CI
  • All test suites pass on all platforms
  • No new compiler warnings introduced
  • HTTP API validated on at least one platform (already done: macOS)
  • No critical security issues introduced
  • All coordination board blockers resolved

RED LIGHT (NO-GO) Triggers

  • Any platform build failure
  • Test regression on any platform
  • New critical warnings/errors
  • Security vulnerabilities detected
  • Unresolved blocker from coordination board

Current Blockers

ACTIVE BLOCKERS

BLOCKER #1: Linux FLAGS Symbol Conflicts (CRITICAL)

  • Status: ⚠️ UNDER OBSERVATION (waiting for CI run #485 results)
  • First Seen: CI Run #19528789779
  • Description: Multiple definition of FLAGS_rom and FLAGS_norom; undefined FLAGS_quiet
  • Impact: Blocks yaze_emu_test linking on Linux
  • Root Cause: flags.cc compiled into agent library without ODR isolation
  • Owner: CLAUDE_LIN_BUILD
  • Resolution Plan: If persists in run #485, requires agent library linking fix
  • Severity: CRITICAL - blocks Linux release

BLOCKER #2: Code Quality - clang-format violations

  • Status: FAILED (CI Run #485)
  • Description: Formatting violations in test_manager.h, editor_manager.h, menu_orchestrator.cc
  • Impact: Non-blocking for release (cosmetic), but should be fixed before merge
  • Owner: TBD
  • Resolution Plan: Run cmake --build build --target format before merge
  • Severity: LOW - does not block release, can be fixed in follow-up

RESOLVED BLOCKERS

Windows std::filesystem compilation - Fixed in commit 43118254e6 Linux circular dependency - Fixed in commit 0812a84a22 macOS z3ed linker error - Fixed in commit 9c562df277

Release Merge Plan

When GREEN LIGHT Achieved:

  1. Verify CI run #485 passes all jobs
  2. Run smoke build verification: scripts/agents/smoke-build.sh {preset} {target} on all platforms
  3. Update coordination board with final status
  4. Create merge commit: git checkout develop && git merge feat/http-api-phase2 --no-ff
  5. Run final test suite: scripts/agents/run-tests.sh {preset}
  6. Merge to master: git checkout master && git merge develop --no-ff
  7. Tag release: git tag -a v0.x.x -m "Release v0.x.x - Windows std::filesystem fix + HTTP API Phase 2"
  8. Push with tags: git push origin master develop --tags
  9. Trigger release workflow: CI will automatically build release artifacts

If RED LIGHT (Failure):

  1. Identify failing job in CI run #485
  2. Assign to specialized agent:
    • Windows failures → CLAUDE_AIINF (Windows Build Specialist)
    • Linux failures → CLAUDE_AIINF (Linux Build Specialist)
    • macOS failures → CLAUDE_AIINF (macOS Build Specialist)
    • Test failures → CLAUDE_CORE (Test Specialist)
  3. Create emergency fix on feat/http-api-phase2 branch
  4. Trigger new CI run and update this checklist
  5. Repeat until GREEN LIGHT

Monitoring Protocol

CLAUDE_RELEASE_COORD will check CI status every 5 minutes and update coordination board with:

  • Platform build progress (queued/in_progress/success/failure)
  • Test execution status
  • Any new blockers discovered
  • ETA to GREEN LIGHT decision

Next Steps

  1. Monitor CI run #485 - https://github.com/scawful/yaze/actions/runs/19529565598
  2. Wait for Windows build job to complete (critical validation)
  3. Wait for Linux build job to complete
  4. Wait for macOS build job to complete
  5. Wait for test jobs to complete on all platforms
  6. Make GO/NO-GO decision
  7. Execute merge plan if GREEN LIGHT

Coordination Board: docs/internal/agents/coordination-board.md Build Reference: docs/public/build/quick-reference.md HTTP API Docs: src/cli/service/api/README.md