[Epic #845][P1] Return-series spreadsheet export - #859
Conversation
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Workflow state fingerprint for Keepalive Loop Reporter. Do not edit. |
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 38 minutes Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
📝 WalkthroughWalkthroughChangesReturn Series Export
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant Caller
participant export_return_series
participant normalize_payload
participant _return_rows
participant _build_csv
participant _build_workbook
Caller->>export_return_series: performance payload and provenance inputs
export_return_series->>normalize_payload: normalize non-normalized payload
export_return_series->>_return_rows: serialize return points
_return_rows->>_build_csv: build CSV rows
_return_rows->>_build_workbook: build XLSX rows and lineage
_build_workbook-->>export_return_series: workbook bytes
export_return_series-->>Caller: ExportManifest
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
🤖 Keepalive Loop StatusPR #859 | Agent: Codex | Iteration 0/12 Current State
Last Codex Run
To retry:
🔍 Failure Classification| Error type | infrastructure | |
Keepalive Work Log (click to expand)
|
|
Workflow state fingerprint for Agents Gate Followups. Do not edit. |
|
Autofix attempts exhausted for this head. Latest Gate summary: Please investigate manually. |
|
Runner dispatch state for codex on PR #859. Do not edit. |
fe54474 to
f29a30c
Compare
|
Closer recovery: rebased onto current main after #858 merged and force-pushed |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/inv_man_intake/export/spreadsheet.py`:
- Around line 48-51: Add a test for the empty concrete-payload path in the
spreadsheet export flow, using an empty PerformanceSeries rather than
performance=None. Assert that the result is an ExportManifest containing an
ExportItem with item_ref="return-series" and skip_reason="no_series_found",
matching the existing empty-row behavior.
- Around line 112-140: Escape formula-leading string values before writing them
in _build_csv and _build_workbook, including provenance fields in return rows
and manifest references from provenance_refs and _table_lineage(tables). Apply
one shared sanitizer for values beginning with “=”, “+”, “-”, or “@”, preserving
other values, and add a regression test covering malicious provenance in both
CSV and XLSX exports.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 073ae5d6-3c94-48a9-9643-dd291ddf6016
📒 Files selected for processing (4)
pyproject.tomlsrc/inv_man_intake/export/__init__.pysrc/inv_man_intake/export/spreadsheet.pytests/export/test_spreadsheet_export.py
Addresses CodeRabbit review on #859: sanitize string cells written to the CSV and XLSX artifacts so extracted provenance cannot execute as a formula, and cover the empty normalized-series skip path.
|
Closer addressed both CodeRabbit threads on head
Validation on
Both threads resolved. Next: Gate/CodeRabbit on the new head, then merge + |
🤖 Bot Comment Handler
The agent has been assigned to this PR to address the bot review comments. Instructions for agent
The bot comment handler workflow has prepared context in the artifacts. |
|
Workflow state fingerprint for Agents Verifier. Do not edit. |
Closes #849
Automated Status Summary
Scope
Scope section missing from source issue.
Context for Agent
Related Issues/PRs
Tasks
openpyxltopyproject.tomldependencies(pure-Python, Pyodide-viable — verify no native/transitivebinary enters the core import graph).
Exporter(X1 port) insrc/inv_man_intake/export/spreadsheet.pythat consumesExtractedTablecells and the normalizedperformance/series and writes.xlsx:sheet 1 = the return series (period, value, frequency) with a provenance column per row
(
source_doc:page:method); sheet 2 = manifest/lineage refs..csvvariant of sheet 1 through the same exporter for the same data.a series with no usable points produces a
no_series_foundmanifest skip row rather than an empty workbook.Acceptance criteria
tests/export/test_spreadsheet_export.py::test_return_series_roundtrips_with_provenance— export aSummary by CodeRabbit