Skip to content

fix(pr): handle JSON array timeline payload in _parse_timeline_copilot_state (#245) - #246

Merged
dan-petty merged 2 commits into
release/v0.2.20from
fix/245-copilot-timeline-json-array
Sep 18, 2026
Merged

dan-petty merged 2 commits into
release/v0.2.20from
fix/245-copilot-timeline-json-array

Conversation

@dan-petty

Copy link
Copy Markdown
Owner

Closes #245

@dan-petty dan-petty added this to the v0.2.20 milestone Sep 18, 2026
@dan-petty
dan-petty marked this pull request as ready for review September 18, 2026 14:05
Copilot AI lite review requested due to automatic review settings September 18, 2026 14:05

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Correct the task metadata and replace broken author-local filesystem links before approval.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Fixes Copilot timeline parsing for JSON arrays, empty responses, and NDJSON payloads.

Changes:

  • Adds safe timeline payload normalization.
  • Adds regression tests for parsing cases.
  • Updates task tracking and changelog documentation.
File summaries
File Summary
tests/test_github_pr_monitor.py Adds parser regression coverage.
src/devops_cli/github/pr_monitor.py Normalizes timeline payloads safely.
docs/agent/tasks/task-245-parse-timeline-copilot-state-json-array.md Tracks the task lifecycle and deliverables.
CHANGELOG.md Documents the parsing fix.
Review details

Suppressed comments (2)

docs/agent/tasks/task-245-parse-timeline-copilot-state-json-array.md:4

  • This task record points to PR #244, but that PR is the unrelated feat(release): v0.2.20 release PR, so the issue's deliverable is not linked to the PR implementing it. Update the field to the actual bug-fix PR before merging.
**PR**: [#244](https://github.com/dan-petty/devops-cli/pull/244)

docs/agent/tasks/task-245-parse-timeline-copilot-state-json-array.md:33

  • These links target /workspaces/devops-cli, an author-local filesystem path, so they are broken for repository readers and cannot navigate to the changed files on GitHub. Use repository-relative Markdown links instead.
1. **JSON Array & Dict Payload Safety ([`src/devops_cli/github/pr_monitor.py`](file:///workspaces/devops-cli/src/devops_cli/github/pr_monitor.py))**:
   - Normalize parsed payload in `_parse_timeline_copilot_state` to handle both lists and dictionaries.
   - Iterate through elements safely if `evt` is a list, extracting events and authors without throwing `AttributeError`.
2. **Submodule Unit Tests ([`tests/test_github_pr_monitor.py`](file:///workspaces/devops-cli/tests/test_github_pr_monitor.py))**:
  • Files reviewed: 4/4 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/agent/tasks/task-245-parse-timeline-copilot-state-json-array.md Outdated
@dan-petty
dan-petty merged commit 4361298 into release/v0.2.20 Sep 18, 2026
5 checks passed
@dan-petty
dan-petty deleted the fix/245-copilot-timeline-json-array branch September 18, 2026 14:21
Copilot AI mentioned this pull request Sep 18, 2026
7 tasks
dan-petty added a commit that referenced this pull request Sep 19, 2026
* feat(release): v0.2.20

* fix(pr): handle JSON array timeline payload in _parse_timeline_copilot_state (#245) (#246)

* fix(pr): handle JSON array timeline payload in _parse_timeline_copilot_state (#245)

* docs(tasks): update task 245 status to In Review and link PR #246

* docs(agents): add roadmap ingestion rules for missing parameters and bad patterns (#247)

* docs(agents): add roadmap ingestion rules for missing parameters and bad patterns

* fix(agents): gate devops roadmap governance block on is_devops_cli

* fix(review): remediate markdown formatting issues and unbalanced code blocks in review reports (#250) (#251)

* refactor(core): use pyproject.toml as single source of truth for version (#248) (#249)

* refactor(core): use pyproject.toml as single source of truth for version (#248)

* fix(release): require __version__ presence in init before dynamic fallback (#249)

* docs(roadmap): add universal subcommand option propagation task

* feat(cli): universal trailing --dry-run option propagation across subcommands (#252) (#253)

* feat(pm): forward-looking project management, roadmap reconstruction, compactor hardening & issue sync (#254) (#255)

* feat(pm): forward-looking project management, roadmap reconstruction, compactor hardening & issue sync (#254)

* docs(agent): link PR #255 to task-254

* fix(github): handle remote issue query failures gracefully in roadmap sync (#254)

* feat(ci): fast execution caching when unchanged & pre-commit file change tracking integration (#256) (#257)

* feat(ci): fast execution caching when unchanged & pre-commit file change tracking integration (#256)

* docs(agent): link PR #257 to task-256

* feat(pr): add integrations to keep pull requests up to date (#258) (#259)

* feat(pr): add integrations to keep pull requests up to date (#258)

* docs(agent): link PR #259 to task-258

* fix(ci): address actionlint shellcheck warning and add shellcheck to devcontainer

* docs(roadmap): prune completed items from Value vs. Effort Prioritization Matrix

* feat(ci): accelerate devops ci performance with worker auto-scaling, test hotspot isolation, and zero-blocking dispatch (#260) (#261)

* docs(roadmap): add v0.2.24 milestone for Vibes architectural alignment

- POSIX Process Group Sandbox Enforcement (Obs 05)
- Structural Pre-Commit Hook Inversion (Systems Obs 08)
- Anti-Brittle Constant Elimination (Obs 06)
- Semantic Validator Deprecation & Structural Positional Oracles (Obs 17)

* feat(ci): accelerate devops ci performance with worker auto-scaling, test hotspot isolation, and zero-blocking dispatch (#260)

* fix(review): remediate session findings, harden defensive boundaries, and improve review feedback loop (#262) (#263)

* fix(review): remediate session findings, harden defensive boundaries, and improve review feedback loop (#262)

* docs(agent): link PR #263 and update status to In Review

* docs(agent): reconcile task-262 as merged and prune completed item from matrix (#264)

* fix(review): resolve PR #244 review threads, harden markdown fence/asterisk parsing, and update release notes (#265) (#266)

* fix(review): resolve PR #244 review threads, harden markdown fence/asterisk parsing, and update release notes (#265)

* docs(agent): link PR #266 and set status to In Review

* refactor(core): replace inconsistent N-Gate references with Gated (#267) (#268)

* refactor(core): replace inconsistent N-Gate references with Gated (#267)

* docs(agent): link PR #268 in task-267 tracking

* docs(agent): author deliverables as merged and prohibit administrative tracking PRs (#270) (#271)
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