Skip to content

feat: persist helm install lifecycle - #103

Merged
hsluoyz merged 1 commit into
casosorg:masterfrom
bugkeep:feat/helm-install-lifecycle
Jul 24, 2026
Merged

hsluoyz merged 1 commit into
casosorg:masterfrom
bugkeep:feat/helm-install-lifecycle

Conversation

@bugkeep

@bugkeep bugkeep commented Jul 20, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • detach Helm installation lifetime from the browser request while keeping Helm as the release owner
  • persist owner-scoped task identity, phase, timestamps, errors, and bounded chronological logs
  • recover the modal after refresh with chart, namespace, release, and task identity checks
  • pause repeated polling failures and provide an explicit retry without creating a second install
  • remove the abort UI because no server-side cancellation contract exists
  • reject overlapping active operations for the same namespace/release and expire stale records when a replacement is requested
  • keep the task read endpoint read-only so polling cannot overwrite a still-running install outcome

Follow-up sequence

#103 -> #108 -> #109

#108 and #109 remain closed until their preceding change is merged.

Owner review

  1. Correct: a disconnected browser no longer owns the Helm process, and refresh recovery reads the persisted server state.
  2. Complete: controller, store lifecycle, database task/log records, API polling, and frontend recovery form one data flow.
  3. Focused: chart readiness and app-store defaults remain in fix: validate helm chart readiness and compatibility #108 and fix: harden app store install defaults #109.
  4. Failure: stream setup failures close unstarted tasks; install and persistence failures are recorded; polling backs off and pauses; stale cleanup occurs transactionally on replacement.
  5. Compatibility: stable Casdoor IDs remain unchanged, while sessions without an optional ID use a bounded deterministic Owner/Name identity.
  6. Concurrency: a release-scoped active key and transaction reject overlapping installs; terminal writes are idempotent and bounded.
  7. Ownership: Helm continues to own releases; this PR owns only operation lifecycle persistence and recovery.
  8. Evidence: the fork experiment exercised backend, frontend, Go lint/tests, and UI tests; focused local checks cover recovery, SSE parsing, terminal persistence, and polling behavior.

Validation

Fix: #101

@bugkeep
bugkeep force-pushed the feat/helm-install-lifecycle branch from b09238c to 869c07d Compare July 23, 2026 00:57
@bugkeep
bugkeep force-pushed the feat/helm-install-lifecycle branch from 869c07d to bfc2051 Compare July 23, 2026 04:45
@bugkeep
bugkeep marked this pull request as draft July 23, 2026 04:45
@bugkeep
bugkeep force-pushed the feat/helm-install-lifecycle branch 3 times, most recently from b1e3838 to 9400b4b Compare July 23, 2026 13:35
@bugkeep bugkeep closed this Jul 23, 2026
@bugkeep bugkeep reopened this Jul 23, 2026
@bugkeep
bugkeep force-pushed the feat/helm-install-lifecycle branch from 9400b4b to 2ff2b3a Compare July 23, 2026 19:23
@bugkeep
bugkeep marked this pull request as ready for review July 23, 2026 19:34
@hsluoyz
hsluoyz merged commit baed0b1 into casosorg:master Jul 24, 2026
7 checks passed
hsluoyz pushed a commit that referenced this pull request Jul 24, 2026
@bugkeep
bugkeep deleted the feat/helm-install-lifecycle branch August 19, 2026 10:11
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.

[bug] make these 5 apps work

2 participants