Skip to content

Move outcome evaluation into logs and remove outcomes command - #71218

Merged
pelikhan merged 12 commits into
mainfrom
pelikhan-symmetrical-doodle
Oct 22, 2026
Merged

pelikhan merged 12 commits into
mainfrom
pelikhan-symmetrical-doodle

Conversation

@pelikhan

@pelikhan pelikhan commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Why

Make outcome evaluation composable with existing log selection and episode retrieval, rather than requiring a separate command and artifact-collection pass.

ADR: ADR-71218: Move Outcome Evaluation into the logs Command

Changes

  • Add gh aw logs --outcomes across workflow discovery, multi-target, stdin, and episode collection. Reuse collected manifests and download only the additional compact evidence needed.
  • Include per-run observations in .outcomes[] and selected-episode rollups in .episode_outcomes. Preserve explicit missing-evidence errors, partial coverage, verified zero-output runs, and fresh live evaluation when artifacts are cached.
  • Share successful REST and GraphQL reads across selected runs within each invocation, reuse complete embedded labels, request 100 items per REST page, and batch impact-report collection into one CLI invocation.
  • Preserve enterprise hosts, aggregate distinct invocation manifests without counting mirrors, recover assignment references from compact enrichment evidence, and retain partial reports and available impact observations.
  • Keep JSONL export through --outcomes-dir, update the impact-report caller, and migrate documentation, generated schemas, and workflow locks.
  • Combine --episodes --outcomes for recorded episode membership and the in-memory outcome join without a separate command or export. Remove historical repository scoring and the separate offline episode-join command, its input readers, and its standalone schema. Preserve shared join, accounting, rendering, and JSONL-export coverage.

Episode outcome checks make additional live API requests beyond the episode retrieval bounds; help and documentation distinguish these costs.

Breaking change and migration

Remove gh aw outcomes. For an individual run, use:

printf '%s\n' 1234567890 | gh aw logs --stdin --repo owner/repo --outcomes --json

Historical repository scoring and the separate offline episode-join command are removed. No logs outcomes-history or logs outcomes-episodes subcommands are retained. Use gh aw logs --episodes --outcomes for episode summaries; their JSON contract is included in gh aw json-schema logs. JSONL export remains available through --outcomes-dir. Includes a major changeset and changelog migration notes.

Validation

  • Passed make build, make fmt, make recompile, and make check-workflow-drift (346 workflows).
  • Passed focused outcome/episode regression tests with race detection, command-group integration coverage, and all 22 impact-report JavaScript tests. Impacted Go and JavaScript suites also passed during make agent-report-progress.
  • Passed golangci-lint run --allow-serial-runners ./pkg/cli ./cmd/gh-aw with zero issues; the merged batch also passed scoped Go and JavaScript lint and schema freshness checks.
  • Existing blocker: the repository validation gate still reports custom-linter findings on unchanged baseline code. No findings remain on lines changed by this review batch; unrelated lint fixes are intentionally excluded.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@pelikhan
pelikhan marked this pull request as ready for review October 22, 2026 20:41
Copilot AI max review requested due to automatic review settings October 22, 2026 20:41
@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

✅ Ponytail Reviewer completed successfully!

Ponytail Reviewer

Outcome: reported_no_action

The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible.

Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.

Generated from Ponytail Reviewer · gpt56 · ~14 AIC · ⌖ ~6 AIC · ⊞ 14.8K · ◷

Generated by Ponytail Reviewer for #71218

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

✅ Design Decision Gate 🏗️ completed the design decision gate check. See the comment below for the result and any generated ADR draft.

🏗️ ADR gate enforced by Design Decision Gate 🏗️

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

✅ PR Code Quality Reviewer completed the code quality review.

🔎 Code quality review by PR Code Quality Reviewer

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

✅ Test Quality Sentinel completed test quality analysis.

Test Quality Sentinel

Outcome: reported_no_action

The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible.

Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.

Generated from Test Quality Sentinel · haiku45 · ~6 AIC · ⌖ ~11 AIC · ◇ ~3 AIC · ⊞ 9.2K · ◷

🧪 Test quality analysis by Test Quality Sentinel

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer

@github-actions

Copy link
Copy Markdown
Contributor

🏗️ Design Decision Gate — ADR Required

This PR makes significant changes to core business logic (716 new lines under pkg/, including new pkg/cli/logs_outcomes.go and removal of pkg/cli/outcomes_command.go) but does not have a linked Architecture Decision Record (ADR).

📄 Draft ADR generated: docs/adr/71218-move-outcome-evaluation-into-logs-command.md. I couldn't commit it automatically: push_to_pull_request_branch rejected the push because the branch already changes files outside the allowed-files list, such as .github/workflows/objective-impact-report.md. The full draft is below. Commit it to your branch, then review and complete it before merging.

🔒 This PR cannot merge until an ADR is linked in the PR body.

📄 Draft ADR-71218 (copy to docs/adr/71218-move-outcome-evaluation-into-logs-command.md)
# ADR-71218: Move Outcome Evaluation into the `logs` Command

**Date**: 2026-10-22
**Status**: Draft
**Deciders**: pelikhan (PR author)

---

### Context

Live outcome evaluation — checking the current GitHub state of the safe outputs a workflow run produced — was exposed as a standalone `gh aw outcomes` command (`pkg/cli/outcomes_command.go`). That command did its own run selection and artifact collection, duplicating the selection, filtering, multi-target, `--stdin`, and episode retrieval logic already provided by `gh aw logs`. Users who wanted outcomes for a set of runs or for an episode had to select runs twice and download artifacts in a separate pass. The objective impact report (`actions/setup/js/prepare_objective_impact_outcomes.cjs`) and the documentation both depended on the standalone command. Related offline subcommands (historical scoring and episode joins) were also attached to the standalone command.

### Decision

We will make outcome evaluation an opt-in capability of `gh aw logs` via a new `--outcomes` flag (with `--outcomes-dir` for JSONL export), and remove the `gh aw outcomes` command. The new flag applies across workflow discovery, multi-target, stdin, and episode collection. It reuses already-collected safe-output manifests and adds the `outcomes` artifact set only when needed. Results are added to the logs JSON output as per-run `.outcomes[]` entries and selected-episode rollups in `.episode_outcomes`. Historical scoring and offline episode joins move under `logs` as `gh aw logs outcomes-history` and `gh aw logs outcomes-episodes`. The main driver is composability: outcome evaluation should work with any run selection that `logs` already supports, without a second selection and download pass.

### Alternatives Considered

#### Alternative 1: Keep `gh aw outcomes` as a standalone command

Keeping the existing command would avoid a breaking change. However, it would keep run-selection and artifact-collection logic duplicated between `outcomes` and `logs`. Users would still need a separate download pass, and it would not compose with episode retrieval. It was rejected because this duplication is the problem the PR aims to solve.

#### Alternative 2: Add `logs --outcomes` and keep `outcomes` as a deprecated alias

This alternative would add the new flag while temporarily keeping the old command as an alias or wrapper. It would make migration easier, but it would keep two public entry points and require more maintenance until the alias is removed. The PR chose a clean removal backed by a major changeset and changelog migration notes. [TODO: verify whether a deprecation period was considered]

#### Alternative 3: Have `outcomes` consume `logs` output (pipe/compose externally)

The standalone command could read `logs --json` output or a cached logs directory as its input. This would reduce some duplication, but users would still need two commands and outcome evidence would be downloaded separately. The logs JSON schema would also not contain the outcome data. The PR instead makes outcomes part of the same `logs` output schema (`schemas/logs.schema.json`).

### Consequences

#### Positive
- Outcome evaluation works with every run-selection mode supported by `logs`, including discovery, multi-target, `--stdin`, and episodes, without duplicated selection logic.
- Already-collected manifests are reused, and only missing outcome evidence is downloaded, which avoids a separate artifact-collection pass.
- A single logs JSON document contains run data, per-run outcomes, and episode outcome rollups, so downstream consumers such as the impact report read one schema.

#### Negative
- This is a breaking CLI change: `gh aw outcomes` is removed, and scripts must migrate, for example to `printf '%s\n' <run-id> | gh aw logs --stdin --repo owner/repo --outcomes --json`.
- The `logs` command now has more responsibilities, more flags, and a much larger JSON schema (`schemas/logs.schema.json` grew significantly).
- Episode outcome checks make additional live API requests beyond the episode retrieval bounds. Help text and documentation must explain this cost.

#### Neutral
- Historical scoring and offline episode joins are now subcommands of `logs` (`outcomes-history`, `outcomes-episodes`), so their command paths change.
- Outcome evaluation still runs live even when artifacts are cached. Missing-evidence errors and partial coverage remain explicit (`eval_error`) instead of failing silently.
- `--outcomes-dir` (or `GH_AW_OUTCOMES_DIR`) keeps JSONL export for downstream processing.

---

*ADR created by [adr-writer agent]. Review and finalize before changing status from Draft to Accepted.*
📋 What to do next
  1. Commit the draft ADR above to docs/adr/71218-move-outcome-evaluation-into-logs-command.md
  2. Complete the draft: resolve the [TODO: verify] note about whether you considered a deprecation alias, and refine the rationale and alternatives
  3. Reference the ADR in this PR body, for example:

    ADR: ADR-71218: Move Outcome Evaluation into the logs Command

When the PR body links an ADR, this gate re-runs and checks that the implementation matches the decision.

📋 Michael Nygard ADR Format Reference

An ADR must contain these four sections: Context, Decision, Alternatives Considered, Consequences. ADRs are stored in docs/adr/ and numbered by PR number.

🏗️ ADR gate enforced by Design Decision Gate 🏗️ · pi · opus55 · ~29 AIC · ⌖ ~40 AIC · ⊞ 1.9K · ◷
Comment /review to run again

@github-actions github-actions Bot 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.

Verdict

Request changes: outcome evaluation drops the GitHub host for the common hostless repository representation on GHES, so --outcomes cannot reliably evaluate enterprise-hosted runs.

Highlights
  • One blocking correctness issue was posted inline in pkg/cli/logs_outcomes.go.
  • Review was static; tests and builds were not run.

🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt50 · ~5 AIC · ⌖ ~1 AIC · ⊞ 1.6K
Comment /review to run again

Comment thread pkg/cli/logs_outcomes.go

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.

🟡 Changes recommended

Unresolved outcome-evidence and timeout defects can misstate coverage or prevent partial reports from being returned.

7 open issues
What changed in this PR

Consolidates safe-output outcome evaluation into gh-aw’s log collection, reusing run selection and episode retrieval instead of a separate command.

Changes:

  • Adds live outcome evaluation, episode summaries, and optional JSONL persistence to logs.
  • Removes gh aw outcomes and moves historical scoring and offline joins under logs.
  • Migrates the impact-report caller, schemas, documentation, and regression tests.
File Description
specs/​safe-output-outcome-evaluation.md Updates evaluation entry point and episode documentation.
specs/​outcomes/​README.md Names the new live evaluation command.
specs/​otel-observability-spec.md Updates command and exported-record references.
schemas/​logs.schema.json Adds outcome and episode-summary structures.
pkg/​cli/​README.md Updates command and public API inventories.
pkg/​cli/​outcomes_history.go Renames historical scoring under logs.
pkg/​cli/​outcomes_history_test.go Tests migrated subcommand registration.
pkg/​cli/​outcomes_episodes_command.go Migrates offline episode-join command and help.
pkg/​cli/​outcomes_episodes_command_test.go Exercises offline joins through logs.
pkg/​cli/​outcomes_economics_command_test.go Tests economics through the logs collector.
pkg/​cli/​outcomes_command.go Removes standalone outcome-command implementation.
pkg/​cli/​outcomes_command_test.go Moves flag assertions to logs.
pkg/​cli/​outcome_eval_jsonl.go Propagates JSONL persistence errors.
pkg/​cli/​outcome_eval_jsonl_test.go Updates round-trip command invocation.
pkg/​cli/​logs_storage_limit.go Normalizes outcome artifact selections.
pkg/​cli/​logs_report.go Adds outcomes to structured logs reports.
pkg/​cli/​logs_outcomes.go Implements collection, joining, persistence, and rendering.
pkg/​cli/​logs_outcomes_test.go Adds outcome collection and reporting coverage.
pkg/​cli/​logs_orchestrator.go Evaluates outcomes after workflow collection.
pkg/​cli/​logs_orchestrator_types.go Carries outcome options and collected reports.
pkg/​cli/​logs_orchestrator_stdin.go Adds evaluation for stdin-selected runs.
pkg/​cli/​logs_orchestrator_render.go Integrates outcomes into report formats.
pkg/​cli/​logs_multi.go Evaluates selected multi-target results.
pkg/​cli/​logs_episode_view.go Distinguishes cached membership from live evaluation.
pkg/​cli/​logs_episode_retrieval.go Adds the outcome retrieval option.
pkg/​cli/​logs_episode_retrieval_command.go Exposes episode evaluation flags and rendering.
pkg/​cli/​logs_episode_retrieval_artifacts.go Collects and inventories outcome manifests.
pkg/​cli/​logs_episode_retrieval_api.go Discovers manifests and artifact creation times.
pkg/​cli/​logs_download.go Treats manifests as compact downloads.
pkg/​cli/​logs_command.go Wires flags, options, subcommands, and help.
pkg/​cli/​logs_artifact_set.go Defines the outcome artifact set.
pkg/​cli/​logs_artifact_set_test.go Updates valid artifact-set expectations.
pkg/​cli/​audit_cross_run.go Adds outcomes to cross-run report data.
docs/​src/​content/​docs/​setup/​cli.md Documents command migration and new flags.
docs/​src/​content/​docs/​reference/​outcomes.md Explains live evaluation and episode summaries.
docs/​src/​content/​docs/​guides/​using-at-scale.mdx Updates outcome measurement command wording.
docs/​src/​content/​docs/​guides/​measuring-impact.md Migrates measurement examples and JSON selectors.
cmd/​gh-aw/​main.go Removes standalone command registration.
cmd/​gh-aw/​command_groups_test.go Asserts the standalone command is absent.
CHANGELOG.md Records breaking changes and migration steps.
actions/​setup/​js/​prepare_objective_impact_outcomes.test.cjs Tests migrated invocation and output validation.
actions/​setup/​js/​prepare_objective_impact_outcomes.cjs Consumes logs outcome reports via stdin.
.github/​workflows/​objective-impact-report.md Updates prompt wording to the new command.
.github/​workflows/​objective-impact-report.lock.yml Refreshes generated workflow hashes.
.changeset/​patch-outcome-episode-computations.md Aligns existing release-note wording.
.changeset/​major-logs-outcomes.md Declares the breaking command migration.

Review effort: Max

Comment thread actions/setup/js/prepare_objective_impact_outcomes.cjs Outdated
Comment thread pkg/cli/logs_artifact_set.go Outdated
Comment thread pkg/cli/logs_multi.go Outdated
Comment thread pkg/cli/logs_orchestrator_render.go
Comment thread pkg/cli/logs_outcomes.go
Comment thread pkg/cli/logs_outcomes.go Outdated
Comment thread pkg/cli/logs_outcomes.go

@github-actions github-actions Bot 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.

Skills-Based Review 🧠

Applied /codebase-design and /improve-codebase-architecture (per pr-triage classification as an architecture_change). Overall this is a clean, well-tested refactor — approving with two minor clarity suggestions.

📋 Key Themes & Highlights

Key Themes

  • Clarity nit: an unparenthesized ||/&& condition in the new attempt-verification logic (logs_episode_retrieval_artifacts.go) is correct but reads ambiguously.
  • Dual rendering paths: CrossRunAuditReport.Outcomes/.EpisodeOutcomes (JSON-only) vs. the separate renderLogsOutcomes calls (text output) in logs_orchestrator_render.go are easy to miss as two parallel paths for the same data — worth a short comment to aid future maintainers.

Positive Highlights

  • ✅ logs_outcomes.go is a clean, well-structured module with solid test coverage (logs_outcomes_test.go covers option parsing, artifact-set derivation, manifest evidence, persistence errors/cancellation, episode joins, and the new attempt-unverified rejection path).
  • ✅ writeOutcomeJSONL now returns error instead of silently swallowing failures via logging — a genuine reliability improvement over the deleted outcomes_command.go.
  • ✅ The gh aw outcomes → gh aw logs --outcomes command removal is clean across main.go, command_groups_test.go, and the JS caller (prepare_objective_impact_outcomes.cjs), with matching test and doc updates (including the new eval_error rejection case).

Note: given the diff size (46 files, +2615/-932), review focused on the pr-triage-identified high-impact files (logs_outcomes.go, logs_episode_retrieval_artifacts.go, logs_orchestrator_render.go, main.go); the large mechanical schemas/logs.schema.json diff was treated as generated/out of scope for line-level review.

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · copilot · sonnet50 · ~167 AIC · ⌖ ~16 AIC · ⊞ 10.2K
Comment /matt to run again

Comment thread pkg/cli/logs_episode_retrieval_artifacts.go
Comment thread pkg/cli/logs_orchestrator_render.go
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot address the following outstanding work in one pass:

  1. Update this branch with the latest main using make merge-main, resolving any conflicts and preserving the intended changes.
  2. Review (pkg/cli/logs_outcomes.go:109): This returns the plain owner/repo whenever the run URL is on a non-github.com host, so every outcome API request for GHES or other GitHub hosts is sent through the default github.com context and evaluates the wrong repository (or fails). WorkflowRun.Repository is populated from the API full_name, which is normally hostless; preserve the URL host by returning path.Join(runURL.Host, repository) when `host == ""``, and only return the original value when it already contains an explicit host. - Move outcome evaluation into logs and remove outcomes command #71218 (comment)
  3. Review (actions/setup/js/prepare_objective_impact_outcomes.cjs:82): The impact dataset includes all selected workflow runs, not just runs with published safe outputs. This new check aborts the entire preparation step when any run lacks a manifest, for example after skipped safe-output processing or artifact expiration. The workflow therefore cannot publish even the available observations for its 180-day window; the removed command returned an empty item list for these runs. Preserve the explicit missing-evidence error per run, mark the summary as partial, and continue processing available runs rather than treating one unavailable manifest as a malformed report... - Move outcome evaluation into logs and remove outcomes command #71218 (comment)
  4. Review (pkg/cli/logs_artifact_set.go:116): The default --outcomes selection now downloads only usage and safe-output manifests, but enrichItemsFromAgentOutput still needs safeoutputs.jsonl from the agent or compact agent-output-fallback artifact. This breaks assign_to_agent entries whose handler returns only { success: true }: their manifest has no number or URL, so evaluation returns unknown / missing_reference instead of checking the linked agent pull request. Include the compact enrichment evidence without forcing workflow-log downloads, and make the episode collector and reader support its artifact layout too. Test ... - Move outcome evaluation into logs and remove outcomes command #71218 (comment)
  5. Review (pkg/cli/logs_multi.go:278): When multi-target collection reaches its download timeout after collecting runs, activeCtx is already expired. collectLogsOutcomes immediately returns the context error, so the command exits before rendering the partial report and its continuation cursors. The same loss occurs if that deadline expires during evaluation. Use the caller context here, as the single-target path does, so the download deadline does not discard collected results and caller cancellation still applies. - Move outcome evaluation into logs and remove outcomes command #71218 (comment)
  6. Review (pkg/cli/logs_orchestrator_render.go:39): With --format pretty --outcomes, renderCrossRunReportPretty writes the report to stderr, but this deferred renderer sends its outcome section to stdout. Redirecting the report's stream therefore drops the outcomes and leaves a separate fragment on stdout. Route the pretty-format outcome section to stderr alongside the rest of that report. - Move outcome evaluation into logs and remove outcomes command #71218 (comment)
  7. Review (pkg/cli/logs_outcomes.go:86): The enterprise-host repository resolved here is only a fallback. EvaluateOutcomes and resolveItemRepo prefer a populated manifest repo such as owner/repo, so ghAPIGet receives no host and queries the CLI's default host instead of the selected run's server. An existing enterprise issue can therefore be classified as deleted after a 404 from github.com. Resolve hostless item repositories using the selected run's host, preserving explicitly host-qualified destinations and object URLs. Cover evaluation of an enterprise run whose manifest contains a repo field. - Move outcome evaluation into logs and remove outcomes command #71218 (comment)
  8. Review (pkg/cli/logs_outcomes.go:133): This returns after the first readable manifest, but episode retrieval can retain multiple safe-outputs-items artifacts from reusable-workflow invocations sharing a run. Every later manifest is silently ignored, even when the first is empty. Because RunItemCount is then derived from that subset, the episode can report complete outcome coverage and calculate cost per accepted outcome while omitting executed actions. Aggregate all distinct verified invocation manifests, without double-counting mirrored root or nested copies, and cover two manifests in one run. - Move outcome evaluation into logs and remove outcomes command #71218 (comment)
  9. Review (pkg/cli/logs_outcomes.go:194): A successfully read empty manifest, or one containing only actions that evaluation skips, produces no item observations here. The episode join then treats that run like an unavailable manifest: addEpisodeOutcomeRun adds it to missing_outcome_run_ids, marks coverage partial, and suppresses cost per accepted outcome. Thus an episode with a verified no-output member and an accepted-output member cannot report efficiency even when all evidence and costs are available. Pass explicit successful run-level evaluation status into the join, including zero-item results, while keeping missing manifest... - Move outcome evaluation into logs and remove outcomes command #71218 (comment)
  10. Review (pkg/cli/logs_episode_retrieval_artifacts.go:165): [/codebase-design] The guard err != nil || c.report.EpisodeID != "" && strings.TrimSpace(info.Context.EpisodeID) != c.report.EpisodeID relies on && binding tighter than || without parentheses. It is correct today (short-circuit avoids dereferencing info when err != nil), but it reads as ambiguous at a glance for future maintainers touching this attempt-verification logic. - Move outcome evaluation into logs and remove outcomes command #71218 (comment)
  11. Review (pkg/cli/logs_orchestrator_render.go:179): [/codebase-design] CrossRunAuditReport.Outcomes/.EpisodeOutcomes are populated here for JSON output, but the pretty/markdown cross-run renderers (renderCrossRunReportPretty, renderCrossRunReportMarkdownToWriter) never read these fields — human-readable rendering instead happens through the separately-dispatched renderLogsOutcomes defer in renderLogsOutput. Two parallel paths for the same data is easy to let drift out of sync. - Move outcome evaluation into logs and remove outcomes command #71218 (comment)

Push the necessary fixes, reply to each listed review thread and resolve it when addressed. Ignore feedback already answered or resolved. Use the pr-finisher skill and stop when only human review or CI remains; do not trigger CI.

Sous-chef head: bc5fcc7
Sous-chef work: 10c7823fa2b4dc82ba40091e87f71ae4d6c6c9bd2d078598ebfb6d64559c76f5 2c164cf7b7288fcd28b7035a8b68330bfeb52233222333ecfd3d7cc9012e3315 40b4a65953f8cb0d864b835432c66128cd3ab253ee9dc39e01672d915630d047 56a65d3288b61f1603f5fb32f090fb9e39e9f6eb18543f9d9072a9184c0ab477 650a5d2c98ed1ed29be83f5ee52b50bf6c339ea3af5bee8d1ccd05a6845cf483 6b82008224cf3f39039e14fa0ec925a6389fd04c694bb269b75a0ee06a39c5f1 bef1328e2599966152683c7c8fddaa53d771ecd341204732f050c88c16260c6b c2e2bbb2de7fe4a119f1ea49ac86c5e40befc024a6da4113f3ec166488ba4a6e da3428beb30efbd01051c87a7808c0f003c8fbf21ca2a9e22c2ae3d90c49f4fc f8d085b835bcb7e92eb23076373691826474c65f2bd5818e8a576b97302ea3d3
Sous-chef state: 22aef08bace94f025755ef77fb28d2b268370083a97954ad5f690a3d4d456a2f

Generated by 👨‍🍳 PR Sous Chef · pi · haiku45 · ~7 AIC · ⌖ ~8 AIC · ⊞ 1.1K · ◷
Comment /souschef to run again

Copilot AI and others added 2 commits October 22, 2026 21:44
…doodle

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Preserve enterprise hosts and compact invocation evidence, retain partial reports and verified empty outcome coverage, and document the CLI decision.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@pelikhan

pelikhan commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator Author

Regarding comment 6350880330: No additional code change is needed for this status message. The substantive fixes and passing focused regressions are now published in c6591a0 after integrating the remote updates with a normal merge, rather than treating the reviewer's no-action result as proof of completion.

@pelikhan

pelikhan commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator Author

Regarding comment 6350881925: Addressed the associated design-gate request by publishing ADR-71218 in c6591a0 and linking it in the PR body. It documents the implemented decision and remains Draft pending maintainer review.

@pelikhan

pelikhan commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator Author

Regarding comment 6350882827: No independent code change is needed for this completion notice. The actionable host-routing feedback is now addressed in published commit c6591a0, with passing regression coverage for hostless enterprise manifest repositories.

@pelikhan

pelikhan commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator Author

Regarding comment 6350890166: This status contains no specific test change to apply. Published commit c6591a0 adds passing regressions for the substantive host, evidence, coverage, timeout, stream-routing, and partial-impact-report feedback, including Go race coverage and 22 focused JavaScript tests.

@pelikhan

pelikhan commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator Author

Regarding comment 6350894722: No independent change is needed for this completion notice. Both inline clarity suggestions are published in c6591a0: the attempt-verification guards are separate, and the JSON-only versus text rendering paths are documented.

@pelikhan

pelikhan commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator Author

Regarding comment 6350975945: Added and linked ADR-71218, documenting the implemented design, alternatives, API reuse, migration, and tradeoffs without unresolved TODOs. It explicitly rejects an alias in favor of the requested single surface and major release, while remaining Draft pending maintainer review.

pelikhan and others added 3 commits October 22, 2026 15:00
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Regenerate the objective impact workflow conflict from merged sources and preserve outcome review fixes with the MCP gateway v0.4.37 update.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
pelikhan and others added 4 commits October 22, 2026 15:32
Add logs --episodes and reuse the in-memory episode/outcome join across selected runs without another command or additional join API reads. Preserve existing JSON behavior and cover offline parity and output streams.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Delete historical repository scoring and its implementation, tests, and documentation. Keep offline episode joins and live outcome evaluation, with a regression test for the remaining command surface.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep episode outcome joins and rendering inside logs collection. Remove the offline command, input readers, standalone schema, and obsolete command tests; retain accounting, export, rendering, and coverage regressions against the in-memory join. Update documentation and migration guidance.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@pelikhan
pelikhan merged commit 79c4832 into main Oct 22, 2026
49 of 50 checks passed
@pelikhan
pelikhan deleted the pelikhan-symmetrical-doodle branch October 22, 2026 23:02
@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.

4 participants