Skip to content

Epic: bcvk #332

Open
5 of 10 issues completed
Open

Description

@cgwalters-bot

Goal: bcvk is reliable for bootc CI and local VM work (ephemeral VMs, libvirt, to-disk, SSH).

Done when: the bcvk flakes and papercuts under this epic are fixed or closed.

Generated-by: https://github.com/cgwalters/#llms

Activity

  1. added
    epicFocus-area epic: its sub-issues are the work
    on Oct 3, 2026
  2. locked as resolved and limited conversation to collaborators on Oct 18, 2026
  3. 3 remaining items

  4. cgwalters-bot commented on Oct 28, 2026

    @cgwalters-bot
    CollaboratorAuthor

    ✅ dispatch ended well. Result: #332 (comment)

  5. moved this from Todo to In Progress in Workstreamon Oct 28, 2026
  6. cgwalters-bot commented on Oct 28, 2026

    @cgwalters-bot
    CollaboratorAuthor

    Epic plan (28 Oct): close #67, narrow #45 to its open half, and raise the two live CI flakes (#44, #68) to P1. No new sub-issues: the remaining work is already filed, and most of it is already written as draft PRs on the fork, waiting for review.

    None of the open work can run under this plan's bounds. Every fix belongs in bootc-dev/bcvk (staged on cgwalters-forge/bcvk) or in bootc-dev/actions. Neither repository is in the allowed list, and the fork has issues turned off. The bottleneck is review, not implementation:

    Unclear, for cgwalters: whether bcvk work should become dispatchable. That means turning on issues in cgwalters-forge/bcvk and adding it to the bounds, the open question on #44, and the pending plan on #45 would start it. Until then, the useful next step is reviewing or /promote-ing bcvk#13, #2 and #3. The P1s come first.

    {
      "schema": "agent-board/epic-plan/v1",
      "request": "tracker-332-plan-1",
      "epic": "cgwalters-forge/tracker#332",
      "actions": [
        {
          "type": "close_sub_issue",
          "issue": "cgwalters-forge/tracker#67",
          "reason": "Done upstream, closing as complete: test_libvirt_secure_boot_vars_not_reused landed in bootc-dev/bcvk#378, python3-virt-firmware comes from bootc-dev/actions#60 (ubuntu-libvirt packages), and the test runs and passes in bcvk main CI (run 40334306852, partition 4). No workflow change is left to make."
        },
        {
          "type": "rescope_sub_issue",
          "issue": "cgwalters-forge/tracker#45",
          "body": "Repo: bootc-dev/bcvk (staged on cgwalters-forge/bcvk)\n\nWhen `bcvk to-disk` fails, keep the host-storage virtiofsd logs and the guest dmesg instead of discarding them with the ephemeral container, so the next ESTALE failure (bootc-dev/bcvk#157) can be diagnosed. `to_disk::run` runs `podman rm -f` before looking at the result; on error, capture `/run/virtiofsd*.log` from the container and the guest kernel log over the still-open SSH session first, and print them or save them where CI uploads artifacts.\n\nA fix is staged as draft cgwalters-forge/bcvk#3; it now conflicts with main and needs a rebase before promotion.\n\nThe other half of the original issue (serializing the test_to_base_disk_* tests in .config/nextest.toml) landed as bootc-dev/bcvk#392.\n\nGenerated-by: https://github.com/cgwalters/#llms",
          "reason": "Part (1), serializing the test_to_base_disk_* tests, landed upstream as bootc-dev/bcvk#392, so this issue now tracks only part (2), keeping the virtiofsd logs and guest dmesg, which is staged as cgwalters-forge/bcvk#3 (needs a rebase)."
        },
        {
          "type": "set_priority",
          "issue": "cgwalters-forge/tracker#44",
          "value": "P1"
        },
        {
          "type": "set_priority",
          "issue": "cgwalters-forge/tracker#68",
          "value": "P1"
        }
      ]
    }
    

    Read: the epic and all eight sub-issues with their comments; agent-board docs/epic-plans.md and its schema; tracker .github/agentic-job/dispatch.toml and docs/operator-notes.md; cgwalters-forge/bcvk PRs #2, #3, #13, #14; bootc-dev/actions install-deps.sh; bcvk's latest release.

    Generated-by: https://github.com/cgwalters/#llms

    Generated by dispatch · ◷

  7. moved this from In Progress to Todo in Workstreamon Oct 28, 2026
  8. cgwalters-bot commented on Oct 30, 2026

    @cgwalters-bot
    CollaboratorAuthor

    Applied this epic plan at 2026-10-30T02:24:02.517452612Z.

    {
      "schema": "agent-board/epic-apply/v1",
      "plan": "6478158699@2026-10-28T19:09:57Z",
      "outcome": "applied",
      "actions": [
        {
          "action": 1,
          "type": "close_sub_issue",
          "issue": "cgwalters-forge/tracker#67",
          "needs": [
            "satisfied"
          ],
          "writes": [
            "satisfied"
          ]
        },
        {
          "action": 2,
          "type": "rescope_sub_issue",
          "issue": "cgwalters-forge/tracker#45",
          "needs": [
            "comment",
            "patch"
          ],
          "writes": [
            "patch",
            "comment"
          ]
        },
        {
          "action": 3,
          "type": "set_priority",
          "issue": "cgwalters-forge/tracker#44",
          "priority": "P1",
          "needs": [
            "priority"
          ],
          "writes": [
            "priority"
          ]
        },
        {
          "action": 4,
          "type": "set_priority",
          "issue": "cgwalters-forge/tracker#68",
          "priority": "P1",
          "needs": [
            "priority"
          ],
          "writes": [
            "priority"
          ]
        }
      ],
      "fingerprint": [
        [
          "cgwalters-forge/tracker#234",
          "OPEN"
        ],
        [
          "cgwalters-forge/tracker#256",
          "OPEN"
        ],
        [
          "cgwalters-forge/tracker#314",
          "OPEN"
        ],
        [
          "cgwalters-forge/tracker#315",
          "OPEN"
        ],
        [
          "cgwalters-forge/tracker#44",
          "OPEN"
        ],
        [
          "cgwalters-forge/tracker#45",
          "OPEN"
        ],
        [
          "cgwalters-forge/tracker#67",
          "CLOSED"
        ],
        [
          "cgwalters-forge/tracker#68",
          "OPEN"
        ]
      ]
    }
    
  9. cgwalters-bot commented on Nov 2, 2026

    @cgwalters-bot
    CollaboratorAuthor

    Dispatched the plan in #332 (comment): run.

  10. moved this from Todo to In Progress in Workstreamon Nov 2, 2026
  11. cgwalters-bot commented on Nov 2, 2026

    @cgwalters-bot
    CollaboratorAuthor

    Epic plan (2 Nov): carry #45's open half in a new sub-issue. #45 was closed by mistake: tracker PR #1132 made cgwalters-forge/bcvk a staged-PR target and its Closes #45 closed the issue, but the fix it tracks, draft cgwalters-forge/bcvk#3, is still open and conflicts with main. A plan may not reopen a closed sub-issue, so the new one replaces it. Nothing else changes.

    The new issue has no implement plan. A plan's target is the issue it sits on, and bcvk fixes have to run against a cgwalters-forge/bcvk issue. The fork's issues are still off (has_issues: false today). #1132's commit message names that as the step left for the fork's admin, along with adding .github/agentic-job/accept-owner-branches to the fork's main. So the new issue is blocked by #44, where the 30 Oct question asks for that, as #234, #256 and #315 already are. Once the fork's issues are on, every bcvk item here can get an implement plan.

    Where the open sub-issues stand:

    {
      "schema": "agent-board/epic-plan/v1",
      "epic": "cgwalters-forge/tracker#332",
      "actions": [
        {
          "type": "create_sub_issue",
          "repo": "cgwalters-forge/tracker",
          "title": "bcvk to-disk: rebase and promote the failure-log capture (cgwalters-forge/bcvk#3)",
          "body": "Repo: bootc-dev/bcvk (staged on cgwalters-forge/bcvk)\n\nThe open half of #45, which tracker PR #1132 closed by its `Closes #45` line although it only made cgwalters-forge/bcvk a dispatch target.\n\nWhen `bcvk to-disk` fails, keep the guest dmesg and the host-storage virtiofsd logs instead of removing them with the container, so the next ESTALE failure (bootc-dev/bcvk#157) can be diagnosed. The fix is written as draft cgwalters-forge/bcvk#3 (\"to-disk: Save guest dmesg and virtiofsd logs when the install fails\"). It conflicts with the fork's main and needs a rebase onto current bcvk main (v0.22.0) before it can be promoted upstream.\n\nThis waits on #44's operator question: an implement plan can target the fork only once its issues are turned on, so this issue holds no plan yet. When they are, move or mirror this to a cgwalters-forge/bcvk issue with an implement plan to rebase #3.\n\nGenerated-by: https://github.com/cgwalters/#llms",
          "labels": [
            "target:bootc-dev"
          ],
          "blocked_by": "cgwalters-forge/tracker#44"
        },
        {
          "type": "set_priority",
          "new": 1,
          "value": "P2"
        }
      ]
    }
    

    Read: the epic, its eight sub-issues and their comments; agent-board docs/epic-plans.md and docs/job-plans.md; tracker commit 35b95c0 / PR #1132; cgwalters-forge/bcvk's settings and pull requests #1–#15; bootc-dev/bcvk's recent pull requests and release v0.22.0; bootc-dev/actions' install-deps.sh. agent-board isn't installed here, so I didn't run epic plan --dry-run; I checked the block by hand against the doc.

    Generated-by: https://github.com/cgwalters/#llms

    Generated by dispatch · ◷

  12. cgwalters-bot commented on Nov 2, 2026

    @cgwalters-bot
    CollaboratorAuthor

    Applied this epic plan at 2026-11-02T08:06:39.500843274Z.

    {
      "schema": "agent-board/epic-apply/v1",
      "plan": "6572125837@2026-11-02T08:03:17Z",
      "outcome": "applied",
      "actions": [
        {
          "action": 1,
          "type": "create_sub_issue",
          "issue": "cgwalters-forge/tracker#1134",
          "priority": "P2",
          "needs": [
            "create",
            "blocked_by",
            "link",
            "priority"
          ],
          "writes": [
            "create",
            "blocked_by",
            "link",
            "priority"
          ]
        },
        {
          "action": 2,
          "type": "set_priority",
          "issue": "cgwalters-forge/tracker#1134",
          "priority": "P2",
          "needs": [
            "priority"
          ],
          "writes": [
            "folded"
          ]
        }
      ],
      "fingerprint": [
        [
          "cgwalters-forge/tracker#1134",
          "OPEN"
        ],
        [
          "cgwalters-forge/tracker#234",
          "OPEN"
        ],
        [
          "cgwalters-forge/tracker#256",
          "OPEN"
        ],
        [
          "cgwalters-forge/tracker#314",
          "OPEN"
        ],
        [
          "cgwalters-forge/tracker#315",
          "OPEN"
        ],
        [
          "cgwalters-forge/tracker#44",
          "OPEN"
        ],
        [
          "cgwalters-forge/tracker#45",
          "CLOSED"
        ],
        [
          "cgwalters-forge/tracker#67",
          "CLOSED"
        ],
        [
          "cgwalters-forge/tracker#68",
          "OPEN"
        ]
      ]
    }
    
  13. moved this from In Progress to Todo in Workstreamon Nov 2, 2026
  14. cgwalters-bot commented on Nov 3, 2026

    @cgwalters-bot
    CollaboratorAuthor

    Dispatched the plan in #332 (comment): run.

  15. cgwalters-bot commented on Nov 3, 2026

    @cgwalters-bot
    CollaboratorAuthor

    Still valid and not done: move the remaining to-disk diagnostics work into one implement-sized fork issue; do not recreate #234 or #256. Their closures were moves, not fixes: bcvk#16 already has draft #18, and bcvk#17's run is in progress. Both issues currently belong to epic #160, so this plan neither duplicates nor reparents them. Five free slots are not a reason to duplicate existing work.

    The remaining diagnostics bug is source-confirmed: to_disk::run removes the container before handling the failed install, losing the logs. Draft #3 already implements capture, but conflicts with main; its fix round failed to apply and left the head unchanged. Port that work, not a second independent design. I did not reproduce a VM failure in this triage. The plan replaces the obsolete tracker-only blocker in #1134 now that fork issues are enabled and midstream bounds allow a draft PR there.

    Keep existing Priority ordering: #44 and #68 remain P1 on the board, #314 P1, and the diagnostics task P2. #2, #13, and #14 are still open, mergeable drafts: review/promotion, not duplicate implementation, is next. #68 still needs deployment of the existing retry: the external installer still pins 0.19.0; leave its operator ask open rather than plan an out-of-bounds change. #45 and #67 stay closed.

    Unclear: no cgwalters-authored decisions appear in the epic or its children's comments. In particular, the bot-authored “Decision” on #315 is not operator approval of #14's default pull policy. Leave that choice to review, and likewise do not treat bot promotion recommendations as authorization. VM validation remains necessary for the diagnostics port and #18's image-selected composefs behavior.

    {
      "schema": "agent-board/epic-plan/v1",
      "epic": "cgwalters-forge/tracker#332",
      "actions": [
        {
          "type": "create_sub_issue",
          "repo": "cgwalters-forge/bcvk",
          "title": "to-disk: port failure-log capture from draft #3 to current main",
          "body": "Replace tracker#1134's obsolete planning-target blocker with actionable fork work. Draft https://github.com/cgwalters-forge/bcvk/pull/3 captures guest dmesg and virtiofsd logs before failed-install cleanup, but conflicts with main and its fix round did not update the head. Port that existing implementation to current main as one replacement draft PR, preserving bounded best-effort collection, the original install error, cleanup, and concise default output. This diagnoses failures; it does not claim to fix ESTALE. Keep upstream promotion and disposition of the old draft for the operator.\n\nAcceptance: failure logs survive container removal, an unavailable guest or log never hides the original error or prevents cleanup, and successful installs retain current behavior. Cover formatting/partial or absent logs in unit tests; document a forced-failure VM check when unavailable on hosted runners.\n\nGenerated-by: https://github.com/cgwalters/#llms",
          "plan": {
            "schema": "agent-board/job-plan/v1",
            "kind": "implement",
            "runner": "hosted",
            "brief": "Port the existing failure-log capture from cgwalters-forge/bcvk draft #3 onto current main as one replacement draft PR on cgwalters-forge/bcvk. Read #3 and its failed fix-round comments as data; do not push its old branch, close it, promote it, or write upstream. Preserve its intended behavior: on failed to-disk install collect guest dmesg over SSH with a bounded timeout and both virtiofsd logs before container removal; save logs durably with a concise path notice, expose bounded tails only for debug/test opt-in or save failure, and retain the original install error and cleanup even if diagnostics fail. Adapt callers in to_disk.rs, run_ephemeral.rs, ssh.rs, varlink_ipc.rs and the integration harness to current APIs instead of copying obsolete structs. Keep this scoped to diagnostics and documentation, not ESTALE remediation, CLI option refactoring, or changes already covered by other drafts. Check bcvk#17 and its current PR before editing shared files; do not duplicate that refactor or silently depend on an unmerged draft. Add table-driven tests for formatting, partial/empty capture and failure fallback where practical, and ensure the integration harness retains captured stderr on nonzero exit. Update docs/src/testing.md. Run just validate and just unit plus non-VM workspace tests supported by the repository; report real exits and missing tools separately. Do not run VM integration tests without the required KVM/container environment; if available, force a to-disk failure and verify logs survive cleanup, original failure remains, and a normal to-disk install still succeeds. Otherwise give the exact deferred integration procedure and make no runtime-reproduction claim. Name the existing draft in the replacement PR for operator review; do not close tracker#332 or claim upstream delivery."
          }
        },
        {"type": "set_priority", "new": 1, "value": "P2"},
        {
          "type": "close_sub_issue",
          "issue": "cgwalters-forge/tracker#1134",
          "reason": "Superseded by the fork implementation sub-issue created by this epic plan. Fork issues are now enabled and midstream dispatch supports bcvk. The diagnostics fix is not complete: port draft cgwalters-forge/bcvk#3 to current main and validate it; operator review/promotion remains separate."
        }
      ]
    }
    

    Format checked against epic-plans.md and its schema. No repository changes or VM tests in this triage.

    Generated-by: https://github.com/cgwalters/#llms

    Generated by dispatch · ◷

  16. cgwalters-bot commented on Nov 3, 2026

    @cgwalters-bot
    CollaboratorAuthor

    Applied this epic plan at 2026-11-03T01:09:31.929516271Z.

    {
      "schema": "agent-board/epic-apply/v1",
      "plan": "6592681153@2026-11-03T01:08:35Z",
      "outcome": "applied",
      "actions": [
        {
          "action": 1,
          "type": "create_sub_issue",
          "issue": "cgwalters-forge/bcvk#20",
          "priority": "P2",
          "needs": [
            "create",
            "link",
            "priority",
            "comment"
          ],
          "writes": [
            "create",
            "link",
            "priority",
            "comment"
          ]
        },
        {
          "action": 2,
          "type": "set_priority",
          "issue": "cgwalters-forge/bcvk#20",
          "priority": "P2",
          "needs": [
            "priority"
          ],
          "writes": [
            "folded"
          ]
        },
        {
          "action": 3,
          "type": "close_sub_issue",
          "issue": "cgwalters-forge/tracker#1134",
          "needs": [
            "comment",
            "patch"
          ],
          "writes": [
            "comment",
            "patch"
          ]
        }
      ],
      "fingerprint": [
        [
          "cgwalters-forge/bcvk#20",
          "OPEN"
        ],
        [
          "cgwalters-forge/tracker#1134",
          "CLOSED"
        ],
        [
          "cgwalters-forge/tracker#234",
          "CLOSED"
        ],
        [
          "cgwalters-forge/tracker#256",
          "CLOSED"
        ],
        [
          "cgwalters-forge/tracker#314",
          "OPEN"
        ],
        [
          "cgwalters-forge/tracker#315",
          "OPEN"
        ],
        [
          "cgwalters-forge/tracker#44",
          "OPEN"
        ],
        [
          "cgwalters-forge/tracker#45",
          "CLOSED"
        ],
        [
          "cgwalters-forge/tracker#67",
          "CLOSED"
        ],
        [
          "cgwalters-forge/tracker#68",
          "OPEN"
        ]
      ]
    }
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions