Skip to content

M4C-2: publish exact saved workflow and Collect outputs - #1501

Merged
Paul Lizer (paullizer) merged 1 commit into
paullizer-react-v2-uifrom
paullizer-workflow-collect-publication
Sep 19, 2026
Merged

Paul Lizer (paullizer) merged 1 commit into
paullizer-react-v2-uifrom
paullizer-workflow-collect-publication

Conversation

@paullizer

@paullizer Paul Lizer (paullizer) commented Sep 19, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add an explicit Saved workflow output publication source for version-3 durable workflows. One required records binding from a real task, Collect, or explicit join becomes a complete, deterministic JSON file through the existing Generated File Export Framework. No re-analysis, invented Collect task ID, or native Analyze flags.
  • Bind files to exact producer/path/attempt receipts and encoded-byte SHA-256. Reuse existing authorized readers, lease/write fences, private artifact transport, prepare/ready journal units, and publication destination ledger for streaming, recovery, approval, and readiness.
  • Add capability-gated V2 List controls and truthful empty/accepted-partial file summaries. Preserve omitted-source native behavior and unsupported definitions read-only. Update feature documentation and application version to 0.261.119.

Target: paullizer-react-v2-ui, not Development. Pulled the latest origin/paullizer-react-v2-ui; the base remains 9d3856f509b4fa1b37e5c418d33f28120d206ea1, including M4C-1 implementation ad8f4218413fc56064737cb78a5985d4e95f35fc.

Scope boundary: Generic saved-record exports are JSON-only in this slice. Other formats remain future mappings in the same shared framework. No new scheduler, promotion service, ledger, cumulative spending cap, Repeat-until execution, or Flow editor. Existing loop limits and M4C-1 completion semantics remain unchanged. No deployment, live permission change, or live workspace publication was performed.

Linked issue

No tracking issue was created; issue creation was deferred during planning. Builds on merged PRs #1496, #1498, and #1499.

Release Notes & Latest Features

  • New Feature
  • Bug Fix
  • UI Enhancement
  • Breaking Change
  • Internal only

Is this visible to end users?

  • Yes
  • No

Is this admin-facing (Admin Settings, governance, deployment, config)?

  • Yes
  • No

Should this become a Latest Feature card?

  • Yes
  • No
  • Already added

Screenshot needed for the card?

  • Yes
  • No
  • Attached

Release notes remain unchanged for the existing batching workflow; no Latest Feature card is included in this slice.

Version bump

  • application/single_app/config.py VERSION third segment bumped: 0.261.118 -> 0.261.119
  • deployers/version.txt bump not needed; no deployer files changed

Testing / validation

  • 302 passed in the final shared-export/publication backend selection. New regression suites include test_generated_file_saved_record_exports.py, test_workflow_saved_output_artifacts.py, and test_workflow_collect_publication.py; existing native publication, download, lifecycle, and loop coverage was also exercised.
  • 132 V2 Playwright cases passed across saved-output and native publication suites; final metadata/card recheck 7 passed. Another 82 loop/control regressions passed. Production build and TypeScript checking passed.
  • Coverage includes both result backends, real native Analyze -> frozen loop -> Collect -> optional join -> publication, restarts/lost acknowledgements, strict JSON/count/quota boundaries, more than 500 output records, collections over 8 MiB, partial acceptance, source revocation, corrupt/missing bindings, approval races, history sanitization, and exact download bytes.
  • Documentation inventory regenerated with no semantic inventory change. Documentation coverage, site quality, and route-policy checks passed. Final Swagger validation passed for both changed route files; application Python compilation and git diff --check passed. Committed-change BAC and XSS guardrails passed for all 14 changed application Python files.
  • Tests use closed service doubles, fictional data, and local browser assets. A session-local Python environment uses the repository Flask/Werkzeug pins; no dependency manifests or global packages changed.

Known baseline/environment gaps: The broader backend selection encountered three older test_simplechat_generated_office_exports.py cases blocked at application import by missing Cosmos configuration. The unchanged UI test test_revoked_record_refresh_clears_the_previous_page also fails on base 9d3856f5: access loss removes the nested history panel. These unrelated behaviors were not changed. This is not evidence of live deployment acceptance.

Documentation

  • Release notes updated, or not needed — deferred for batching
  • Feature documentation updated: new WORKFLOW_SAVED_OUTPUT_PUBLICATION.md; shared export, publication completion, Collect/control-flow, orchestration direction, and workflow guides updated
  • Fix documentation updated, or not needed — recovery/authorization details are covered in the feature documentation

Security checklist

  • No new Flask routes; existing changed route surfaces retain Swagger and authentication policy coverage
  • No raw settings added to non-admin frontend responses
  • Browser JavaScript remains local to SimpleChat; no CDN-hosted JS
  • No secrets, keys, connection strings, or local-only artifacts are included

Export complete saved workflow records as exact JSON through the shared generated-file framework, with source-bound recovery, authorized reads, and existing publication completion semantics. Add V2 List controls, regression coverage, and documentation; bump the application to 0.261.119.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@paullizer
Paul Lizer (paullizer) marked this pull request as ready for review September 19, 2026 00:06
@paullizer
Paul Lizer (paullizer) merged commit 80f8890 into paullizer-react-v2-ui Sep 19, 2026
2 checks passed
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.

1 participant