Skip to content

Add safe native recording rename workflow - #30

Draft
hotzenplotz5 wants to merge 120 commits into
yavdr:masterfrom
hotzenplotz5:feature/recording-rename-preflight
Draft

Add safe native recording rename workflow#30
hotzenplotz5 wants to merge 120 commits into
yavdr:masterfrom
hotzenplotz5:feature/recording-rename-preflight

Conversation

@hotzenplotz5

Copy link
Copy Markdown
Member

Dependency

This pull request depends on #29 and must not be merged before #29.

This branch is stacked on hotzenplotz5:feature/recording-move-preflight. Until #29 is merged, GitHub may also show the Trash and Move changes in this pull request. After #29 is merged, the branch will be rebased onto the updated master, leaving only the Rename changes.

Summary

This pull request adds a safe native recording rename workflow on top of the recording move infrastructure introduced by #29.

API

  • POST /recordings/rename/preview.json
  • POST /recordings/rename/validate.json
  • POST /recordings/rename.json

Safety model

  • accepts a recording identity and one new title component
  • derives the complete native VDR target path internally
  • rejects empty names, path separators, control characters, . and ..
  • preserves the timestamp .rec directory
  • detects target collisions
  • reuses the Move safety analysis, revision validation and native executor
  • checks replay, recording handler, active recording and timer state
  • fails closed when safety cannot be established
  • supports idempotent retries with already-renamed

Verified tests

  • make test-recording-rename-plan
  • make test-recording-rename-preflight
  • complete Move regression suite
  • complete plugin build
  • git diff --check

Verified real VDR integration

Tested with a completed 285 MB recording:

  • preview and validation succeeded
  • missing and stale revisions were handled correctly
  • real rename returned renamed
  • filesystem and VDR recording list were updated
  • recording size remained unchanged
  • native vdr-recordingaction rename hook was executed
  • identical retry returned already-renamed
  • reverse rename restored the original identity

Documentation

  • RECORDING_RENAME_API.md

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