feat(summary): add full-year portal-key CSV - #145
Conversation
Signed-off-by: Tapish Khandelwal <tapishkhandelwal13@gmail.com>
Signed-off-by: Tapish Khandelwal <tapishkhandelwal13@gmail.com>
Signed-off-by: Tapish Khandelwal <tapishkhandelwal13@gmail.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 90284085b6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| During each full-year ZIP assembly with eligible files, Pack attempts to add | ||
| `full-year-summary.csv` from the staged portal JSON already in that run. When |
There was a problem hiding this comment.
Validate the new runtime path with an authenticated run
Before merging this public behavior claim, exercise the new summary generation, offscreen ZIP assembly, browser handoff, and popup result in a live authenticated GST session: the commit's verification record explicitly says no authenticated portal run was performed, so the synthetic fixtures do not satisfy the repository's mandatory validation gate for these runtime, download, and privacy changes. Record the resulting evidence before treating the implementation and these README guarantees as validated.
AGENTS.md reference: AGENTS.md:L75-L77
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
This remains the maintainer’s authenticated live-QA gate. No authenticated full-year run was performed in this lane, so it continues to block merge and I am leaving this thread unresolved.
Signed-off-by: Tapish Khandelwal <tapishkhandelwal13@gmail.com>
Summary
Add
full-year-summary.csvto eligible full-fiscal-year ZIP exports. The summary is derived locally from portal JSON bytes already staged for the current ZIP, keeps portal-owned JSON Pointer keys, and adds one deterministic row per planned period/return/artifact outcome.Rules are explicit and interpretation-free: arrays become element counts at their own paths; JSON numeric tokens are emitted as apostrophe-prefixed text with their exact source spelling; formula-like strings are apostrophe-prefixed; no tax labels, totals, or statutory meaning are inferred. PDF-only or otherwise non-parseable coverage produces fixed outcome rows. Bounded summary generation failure never blocks a correctly attested artifact ZIP and surfaces only a fixed categorical reason.
Root Cause / Decision Record
Scope
Pack Workflow Preflight
pnpm workflow:preflightwas run before editing/push, or the skip reason is documented.Sanchika Adoption Gate
@sanchika/*packages or copied Sanchika guidance, Iread
sanchika/docs/adoption-pack.mdin the coordinated parent worktree.and records the Sanchika commit or copied guidance used.
../sanchika,sanchika/packages/*/src, or parentsource paths.
This PR does not consume Sanchika packages or copied guidance.
Privacy And Data-Flow Impact
The derived CSV exists transiently in extension-controlled memory before browser handoff, persists only inside the user-requested downloaded ZIP, and is never separately written to OPFS or extension storage. Raw portal keys and values are not returned to the background or popup; only fixed status and bounded counts cross the offscreen boundary.
Sensitive Surface Review
Required local privacy and MV3 security re-reviews found no remaining Lane B findings. Final ZIP completion still requires the persisted intent, exact browser download ID, terminal completion, and non-empty evidence.
Chrome Web Store Impact
docs/PUBLICATION_READINESS.mdis checked.Verification
pnpm install --frozen-lockfilepnpm audit --audit-level highpnpm exec wxt preparepnpm exec prettier --check .pnpm exec eslint . --max-warnings 0pnpm exec tsc --noEmitpnpm exec vitest runpnpm exec wxt buildnode scripts/verify-extension-package.mjs .output/chrome-mv3pnpm exec wxt zipnode scripts/verify-extension-zip.mjsnode scripts/write-release-provenance.mjs— release-only; not run for this feature PR.node scripts/verify-github-release-assets.mjs --tag <tag> --zip <zip> --checksum <sha256> --provenance <json>when release assets exist — no release assets in scope.node scripts/publish-chrome-web-store.mjs --zip .output/<zip> --provenance .output/pack-release-provenance.v1.json --publisher-id <id> --dry-run true— store submission is out of scope.git diff --checkpnpm review:gate -- --strict-head-review --required-review-author chatgpt-codex-connector --wait-head-review-ms 180000 --allow-missing-head-reviewbefore merge/readiness claim, with missing Codex review recorded as an audit gap if reported: pending draft-PR head review; no readiness claim is made.Local full suite: 106 files and 1,672 tests passed. No authenticated GST Portal run was performed; live qualification remains required before any broader full-year claim.
Artifact Evidence
5ac5e8bfca14366d56cfe67098d50e7ca5afe802f5314e87f89df24b2e55e56b90284085b6fd0983db434c4fff98a1c0ddb71299PR Review Follow-Up
90284089028408Screenshots
Not applicable. No raw summary content is rendered in the popup; it shows fixed status and bounded counts only.
DCO
Signed-off-by:trailers.