Skip to content

Fix Aider command replay and daily Go workflow completion - #71211

Merged
pelikhan merged 1 commit into
mainfrom
pelikhan-fictional-engine
Oct 22, 2026
Merged

pelikhan merged 1 commit into
mainfrom
pelikhan-fictional-engine

Conversation

@pelikhan

Copy link
Copy Markdown
Collaborator

Summary

Fix the shared Aider driver and the two daily Go workflows as one reliability workstream, without changing authentication/model selection or weakening TLS verification.

  • Scope shell suggestions to each non-streaming model response. Aider 0.86.2's EditBlockCoder.get_edits() appends to shell_commands across native reflections; the previous adapter replayed discovery after edit-only replies. Continue after applied edits even when the response has no shell command. Keep the native reflection budget unchanged.
  • Declare Go 1.27.3 in both daily workflows so the runner installs the required toolchain before sandbox execution and the compiler supplies the standard Go ecosystem access/toolchain mount. Stop forcing empty module caches.
  • Discover actual Go packages/names with go list, excluding ignored fixture/hidden/nested-module directories. Compile and run placeholder tests rather than relying on go build, which does not check _test.go files.
  • Restrict debt discovery to source TODO/FIXME marker comments, not identifiers, literals or testdata. Require reading surrounding source before editing. Stop masking formatting errors or representing failed work as a successful noop.
  • Add isolated driver/discovery/failure-contract regressions and regenerate all four Aider locks.

Failure evidence

  • Debt run 39835585091: prior discovery was replayed after edits; proposed edits selected TODO-containing identifiers/literals; formatting/build attempted an implicit Go 1.27.3 download and failed certificate verification, then emitted noop. The fix preserves certificate validation and reports incomplete work instead.
  • Stubs run 39815319051: four responses repeatedly reran the same discovery command while proposing stubs, eventually reaching linter testdata and exiting without a terminal safe output. Pinned upstream Aider code confirms command-list accumulation.
  • Both recorded OpenAI invalid_api_key 401s occur before Aider session initialization, while its subsequent model turns succeed through Copilot (gpt-4o-mini-2024-07-18, HTTP 200). These errors are ancillary to the observed successful inference, not evidence for changing the workflow's Copilot credentials/model. The component initiating the OpenAI request remains unconfirmed.

Validation

  • go test ./pkg/workflow -run '^TestAider' -count=1 passes.
  • make fmt passes after restoring the existing pinned JavaScript validation dependencies.
  • make recompile: all 346 workflows pass.
  • make check-workflow-drift: all locks match sources.
  • Final read-only source/lock security review: no confirmed vulnerabilities; static publication review passes.
  • Native actionlint findings are identical to the four baseline locks (the installed version does not understand existing generated concurrency.queue / job.workflow_ref syntax). Offline zizmor has the same 28 existing low-severity self-repository findings as baseline.

Known validation limits: make agent-report-progress was run using installed Bash 5 after macOS Bash 3 rejected mapfile. Its impacted test phase passes, but the gate fails on an existing golangci warning about unknown nolint names largefunc / uncheckedsliceindex; modernize findings are confined to unchanged claude_engine.go, codex_engine.go, and comment_memory.go. No unrelated linter changes are included. Dry-run compilation safely refuses the existing imported host-side Aider pre-agent-steps (and smoke/conformance post-steps / MCP scripts), so the dry-run/live-testing gate is not passed. No workflow dispatch or rerun was attempted; live TLS/runner behavior remains unverified.

Authored Markdown security impact

Source Change and impact
shared/aider.md Clear stale command state per response and continue after edits; no increase in tool privileges or reflection budget.
daily-code-debt-aider.md Add pinned Go runtime, narrower source discovery and fail-closed verification; retain TLS protections.
daily-go-test-stubs-aider.md Add pinned Go runtime, real package discovery and test validation; discovery/validation failures are incomplete, not noop.

The Go runtime adds the existing standard Go ecosystem destinations (go.dev, golang.org, goproxy.io, pkg.go.dev, proxy.golang.org, storage.googleapis.com, sum.golang.org). SHA-pinned runtime actions, read-only agent repository permissions, AWF isolation, credential exclusions/redaction and privileged safe-output publication gates remain intact.

Scope shell suggestions to each response, continue after edits, and correct Go runtime, discovery, validation, and incomplete-work reporting.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI max review requested due to automatic review settings October 22, 2026 19:40
@pelikhan
pelikhan merged commit 066a270 into main Oct 22, 2026
50 checks passed
@pelikhan
pelikhan deleted the pelikhan-fictional-engine branch October 22, 2026 19:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Runtime behavior defects remain unresolved, and end-to-end validation of the native Aider lifecycle and sandboxed Go/TLS integration is incomplete.

2 open issues
What changed in this PR

Improves reliability of gh-aw’s shared Aider driver and daily Go maintenance workflows without changing authentication, model selection, or TLS verification.

Changes:

  • Scope shell suggestions per response and continue after applied edits.
  • Add explicit Go runtime setup, narrower discovery, and incomplete-work reporting.
  • Add regression coverage and regenerate four Aider workflow locks.
File Description
pkg/​workflow/​aider_discovery_test.go Adds discovery and validation-contract regressions.
pkg/​workflow/​aider_continuation_test.go Tests command replay prevention and edit-only continuation.
.github/​workflows/​smoke-aider.lock.yml Regenerates the smoke workflow with shared driver updates.
.github/​workflows/​shared/​aider.md Updates command scoping and continuation behavior.
.github/​workflows/​engine-conformance-aider.lock.yml Regenerates conformance execution with driver updates.
.github/​workflows/​daily-go-test-stubs-aider.md Adds Go setup, package discovery, and placeholder-test validation.
.github/​workflows/​daily-go-test-stubs-aider.lock.yml Compiles runtime and shared driver changes.
.github/​workflows/​daily-code-debt-aider.md Narrows marker discovery and stops publication on validation failure.
.github/​workflows/​daily-code-debt-aider.lock.yml Compiles runtime, reporting, and driver changes.
.changeset/​patch-aider-reflection-command-scope.md Records the Aider reliability changes for a patch release.

Review effort: Max


```bash
grep -rn "TODO\|FIXME" --include="*.go" --exclude-dir=vendor --exclude-dir=.git . | grep -v "_test.go" | head -20
grep -rnE '^[[:space:]]*//[[:space:]]*(TODO|FIXME)([[:space:]:]|$)' --include="*.go" --exclude="*_test.go" --exclude-dir=vendor --exclude-dir=.git --exclude-dir=testdata . | head -20
shared_output = original_run_shell_commands(coder)
results = command_results[start:]
if results and not coder.reflected_message:
if (results or getattr(coder, "aider_edited_files", None)) and not coder.reflected_message:
@github-actions

Copy link
Copy Markdown
Contributor

🎉 This pull request is included in a new release.

Release: v0.93.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants