Skip to content

feat: add release plan collaboration and versioned diffs#4689

Open
huanghongbo-hhb wants to merge 11 commits into
koderover:mainfrom
huanghongbo-hhb:feat/release-plan-collaboration-v1
Open

feat: add release plan collaboration and versioned diffs#4689
huanghongbo-hhb wants to merge 11 commits into
koderover:mainfrom
huanghongbo-hhb:feat/release-plan-collaboration-v1

Conversation

@huanghongbo-hhb
Copy link
Copy Markdown
Contributor

@huanghongbo-hhb huanghongbo-hhb commented May 19, 2026

Summary

  • Add section-level collaboration state for release plan editing so users can see who is editing the same area.
  • Add per-save release plan versions and version diff details so operation logs can show the exact configuration changes from each verb save.
  • Add lightweight before/after snapshots for release job execution actions so retry/execute/skip logs can show status transitions.

Why

  • Release plan users need Jira-like change records that show what changed after each save.
  • When multiple users edit the same release plan, the UI needs backend state to warn that another user is editing the same section.

Main Changes

  • Store active editing sessions in Redis with WebSocket snapshots grouped by section, including metadata, approval, and job:<jobID>.
  • Generate one release plan version for each successful verb update and attach the resulting version to the corresponding operation log.
  • Store section-level input snapshots instead of full release plan snapshots, then calculate diff from the saved before/after snapshots.
  • Mask sensitive values based on existing workflow/keyvault sensitivity metadata and collapse large text fields to a changed marker.
  • Add diff APIs, release plan version storage, log version fields, and lightweight execution-action snapshots.

Risk / Compatibility

  • Existing verb + spec update requests remain compatible; session_id is no longer required for saving and is only used by collaboration WebSocket messages.
  • This adds a release plan version collection and new diff/collaboration APIs, but stores only section input snapshots to avoid full-plan snapshot growth.
  • Collaboration state is Redis-backed with TTL, so abnormal client exits may leave editing hints visible until the session expires.

Test

  • UAT verified update_name creates a new version and returns metadata diff.
  • UAT verified update_approval creates a new version and returns approval diff.
  • UAT verified update_release_job for text jobs returns job-level diff with large text markers.
  • UAT verified collaboration WebSocket join, heartbeat, leave, same-section editors, different-section grouping, and username display.
  • UAT verified retry log records lightweight before/after state from failed to running.

Contact


This change is Reviewable

Signed-off-by: huanghongbo-hhb <huanghongbo@koderover.com>
Signed-off-by: huanghongbo-hhb <huanghongbo@koderover.com>
Signed-off-by: huanghongbo-hhb <huanghongbo@koderover.com>
@huanghongbo-hhb huanghongbo-hhb force-pushed the feat/release-plan-collaboration-v1 branch from 5abee67 to c209b83 Compare May 20, 2026 05:43
@huanghongbo-hhb huanghongbo-hhb force-pushed the feat/release-plan-collaboration-v1 branch from 48a0028 to 40fd377 Compare May 22, 2026 06:24
Signed-off-by: huanghongbo-hhb <huanghongbo@koderover.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant