pushframe 5.0.2__tar.gz → 5.0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. {pushframe-5.0.2 → pushframe-5.0.3}/.github/workflows/release.yml +9 -9
  2. {pushframe-5.0.2 → pushframe-5.0.3}/.github/workflows/tests.yml +2 -2
  3. pushframe-5.0.3/CHANGELOG.md +121 -0
  4. {pushframe-5.0.2 → pushframe-5.0.3}/PKG-INFO +8 -3
  5. {pushframe-5.0.2 → pushframe-5.0.3}/README.md +6 -2
  6. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/__init__.py +1 -1
  7. {pushframe-5.0.2 → pushframe-5.0.3}/pyproject.toml +2 -1
  8. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_version.py +2 -2
  9. {pushframe-5.0.2 → pushframe-5.0.3}/.env.sample +0 -0
  10. {pushframe-5.0.2 → pushframe-5.0.3}/.freebuff/project-id +0 -0
  11. {pushframe-5.0.2 → pushframe-5.0.3}/.gitignore +0 -0
  12. {pushframe-5.0.2 → pushframe-5.0.3}/.gsd/dispatch-isolation-sentinel.json +0 -0
  13. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/MILESTONES.md +0 -0
  14. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/PROJECT.md +0 -0
  15. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/REQUIREMENTS.md +0 -0
  16. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/RETROSPECTIVE.md +0 -0
  17. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/ROADMAP.md +0 -0
  18. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/STATE.md +0 -0
  19. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/WINDOWS.md +0 -0
  20. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/codebase/ARCHITECTURE.md +0 -0
  21. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/codebase/CONCERNS.md +0 -0
  22. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/codebase/CONVENTIONS.md +0 -0
  23. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/codebase/INTEGRATIONS.md +0 -0
  24. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/codebase/STACK.md +0 -0
  25. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/codebase/STRUCTURE.md +0 -0
  26. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/codebase/TESTING.md +0 -0
  27. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/config.json +0 -0
  28. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/debug/knowledge-base.md +0 -0
  29. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/debug/login-475-null-creds.md +0 -0
  30. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/debug/resolved/cli-status-verbose-logging.md +0 -0
  31. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/debug/resolved/inspect-asset-null-fields.md +0 -0
  32. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/debug/resolved/select-asset-401-unauthorized.md +0 -0
  33. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-REQUIREMENTS.md +0 -0
  34. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-ROADMAP.md +0 -0
  35. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/01-toolchain-revival/01-01-PLAN.md +0 -0
  36. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/01-toolchain-revival/01-01-SUMMARY.md +0 -0
  37. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/01-toolchain-revival/01-02-PLAN.md +0 -0
  38. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/01-toolchain-revival/01-02-SUMMARY.md +0 -0
  39. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/01-toolchain-revival/01-CONTEXT.md +0 -0
  40. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/01-toolchain-revival/01-DISCUSSION-LOG.md +0 -0
  41. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/01-toolchain-revival/01-PATTERNS.md +0 -0
  42. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/01-toolchain-revival/01-RESEARCH.md +0 -0
  43. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/01-toolchain-revival/01-REVIEW.md +0 -0
  44. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/01-toolchain-revival/01-VERIFICATION.md +0 -0
  45. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/02-live-read-path-verification/02-01-PLAN.md +0 -0
  46. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/02-live-read-path-verification/02-01-SUMMARY.md +0 -0
  47. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/02-live-read-path-verification/02-02-PLAN.md +0 -0
  48. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/02-live-read-path-verification/02-02-SUMMARY.md +0 -0
  49. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/02-live-read-path-verification/02-CONTEXT.md +0 -0
  50. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/02-live-read-path-verification/02-DISCUSSION-LOG.md +0 -0
  51. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/02-live-read-path-verification/02-LIVE-EVIDENCE.md +0 -0
  52. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/02-live-read-path-verification/02-PATTERNS.md +0 -0
  53. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/02-live-read-path-verification/02-RESEARCH.md +0 -0
  54. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/02-live-read-path-verification/02-REVIEW.md +0 -0
  55. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/02-live-read-path-verification/02-VERIFICATION.md +0 -0
  56. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/03-run-docs-verification-report/03-01-PLAN.md +0 -0
  57. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/03-run-docs-verification-report/03-01-SUMMARY.md +0 -0
  58. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/03-run-docs-verification-report/03-CONTEXT.md +0 -0
  59. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/03-run-docs-verification-report/03-DISCUSSION-LOG.md +0 -0
  60. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/03-run-docs-verification-report/03-PATTERNS.md +0 -0
  61. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/03-run-docs-verification-report/03-RESEARCH.md +0 -0
  62. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/03-run-docs-verification-report/03-REVIEW.md +0 -0
  63. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.0-phases/03-run-docs-verification-report/03-VERIFICATION.md +0 -0
  64. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.1-ROADMAP.md +0 -0
  65. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.1-phases/04-client-transport-seam-for-offline-testability/.gitkeep +0 -0
  66. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.1-phases/04-client-transport-seam-for-offline-testability/04-01-PLAN.md +0 -0
  67. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.1-phases/04-client-transport-seam-for-offline-testability/04-01-SUMMARY.md +0 -0
  68. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.1-phases/04-client-transport-seam-for-offline-testability/04-02-PLAN.md +0 -0
  69. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.1-phases/04-client-transport-seam-for-offline-testability/04-02-SUMMARY.md +0 -0
  70. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.1-phases/04-client-transport-seam-for-offline-testability/04-03-PLAN.md +0 -0
  71. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.1-phases/04-client-transport-seam-for-offline-testability/04-03-SUMMARY.md +0 -0
  72. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.1-phases/04-client-transport-seam-for-offline-testability/04-PATTERNS.md +0 -0
  73. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.1-phases/04-client-transport-seam-for-offline-testability/04-RESEARCH.md +0 -0
  74. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.1-phases/04-client-transport-seam-for-offline-testability/04-REVIEW.md +0 -0
  75. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.1-phases/04-client-transport-seam-for-offline-testability/04-SECURITY.md +0 -0
  76. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.1-phases/04-client-transport-seam-for-offline-testability/04-UAT.md +0 -0
  77. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v1.1-phases/04-client-transport-seam-for-offline-testability/04-VERIFICATION.md +0 -0
  78. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-REQUIREMENTS.md +0 -0
  79. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-ROADMAP.md +0 -0
  80. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/05-cli-skeleton-status/05-01-PLAN.md +0 -0
  81. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/05-cli-skeleton-status/05-01-SUMMARY.md +0 -0
  82. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/05-cli-skeleton-status/05-02-PLAN.md +0 -0
  83. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/05-cli-skeleton-status/05-02-SUMMARY.md +0 -0
  84. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/05-cli-skeleton-status/05-CONTEXT.md +0 -0
  85. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/05-cli-skeleton-status/05-DISCUSSION-LOG.md +0 -0
  86. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/05-cli-skeleton-status/05-PATTERNS.md +0 -0
  87. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/05-cli-skeleton-status/05-REVIEW.md +0 -0
  88. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/05-cli-skeleton-status/05-SECURITY.md +0 -0
  89. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/05-cli-skeleton-status/05-UAT.md +0 -0
  90. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/05-cli-skeleton-status/05-VERIFICATION.md +0 -0
  91. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/06-inspect-frame-resolution/06-01-PLAN.md +0 -0
  92. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/06-inspect-frame-resolution/06-01-SUMMARY.md +0 -0
  93. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/06-inspect-frame-resolution/06-02-PLAN.md +0 -0
  94. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/06-inspect-frame-resolution/06-02-SUMMARY.md +0 -0
  95. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/06-inspect-frame-resolution/06-CONTEXT.md +0 -0
  96. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/06-inspect-frame-resolution/06-DISCUSSION-LOG.md +0 -0
  97. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/06-inspect-frame-resolution/06-PATTERNS.md +0 -0
  98. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/06-inspect-frame-resolution/06-RESEARCH.md +0 -0
  99. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/06-inspect-frame-resolution/06-REVIEW.md +0 -0
  100. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/06-inspect-frame-resolution/06-SECURITY.md +0 -0
  101. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/06-inspect-frame-resolution/06-VERIFICATION.md +0 -0
  102. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/07-sync-diffing-engine-dry-run-only/07-01-PLAN.md +0 -0
  103. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/07-sync-diffing-engine-dry-run-only/07-01-SUMMARY.md +0 -0
  104. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/07-sync-diffing-engine-dry-run-only/07-02-PLAN.md +0 -0
  105. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/07-sync-diffing-engine-dry-run-only/07-02-SUMMARY.md +0 -0
  106. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/07-sync-diffing-engine-dry-run-only/07-03-PLAN.md +0 -0
  107. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/07-sync-diffing-engine-dry-run-only/07-03-SUMMARY.md +0 -0
  108. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/07-sync-diffing-engine-dry-run-only/07-CONTEXT.md +0 -0
  109. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/07-sync-diffing-engine-dry-run-only/07-DISCUSSION-LOG.md +0 -0
  110. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/07-sync-diffing-engine-dry-run-only/07-PATTERNS.md +0 -0
  111. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/07-sync-diffing-engine-dry-run-only/07-REVIEW-FIX.md +0 -0
  112. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/07-sync-diffing-engine-dry-run-only/07-REVIEW.md +0 -0
  113. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/07-sync-diffing-engine-dry-run-only/07-SECURITY.md +0 -0
  114. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/07-sync-diffing-engine-dry-run-only/07-VERIFICATION.md +0 -0
  115. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/08-destructive-execution-upload-delete-verification/08-01-PLAN.md +0 -0
  116. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/08-destructive-execution-upload-delete-verification/08-01-SUMMARY.md +0 -0
  117. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/08-destructive-execution-upload-delete-verification/08-02-PLAN.md +0 -0
  118. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/08-destructive-execution-upload-delete-verification/08-02-SUMMARY.md +0 -0
  119. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/08-destructive-execution-upload-delete-verification/08-03-PLAN.md +0 -0
  120. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/08-destructive-execution-upload-delete-verification/08-03-SUMMARY.md +0 -0
  121. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/08-destructive-execution-upload-delete-verification/08-04-PLAN.md +0 -0
  122. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/08-destructive-execution-upload-delete-verification/08-04-SUMMARY.md +0 -0
  123. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/08-destructive-execution-upload-delete-verification/08-CONTEXT.md +0 -0
  124. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/08-destructive-execution-upload-delete-verification/08-DISCUSSION-LOG.md +0 -0
  125. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/08-destructive-execution-upload-delete-verification/08-LIVE-FINDINGS.md +0 -0
  126. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/08-destructive-execution-upload-delete-verification/08-PATTERNS.md +0 -0
  127. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/08-destructive-execution-upload-delete-verification/08-RESEARCH.md +0 -0
  128. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/08-destructive-execution-upload-delete-verification/08-REVIEW-FIX.md +0 -0
  129. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/08-destructive-execution-upload-delete-verification/08-REVIEW.md +0 -0
  130. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/08-destructive-execution-upload-delete-verification/08-VERIFICATION.md +0 -0
  131. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/09-proactive-write-rate-limiter-geo-guard/.gitkeep +0 -0
  132. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/09-proactive-write-rate-limiter-geo-guard/09-01-PLAN.md +0 -0
  133. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/09-proactive-write-rate-limiter-geo-guard/09-01-SUMMARY.md +0 -0
  134. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/09-proactive-write-rate-limiter-geo-guard/09-02-PLAN.md +0 -0
  135. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/09-proactive-write-rate-limiter-geo-guard/09-02-SUMMARY.md +0 -0
  136. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/09-proactive-write-rate-limiter-geo-guard/09-CONTEXT.md +0 -0
  137. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/09-proactive-write-rate-limiter-geo-guard/09-RESEARCH.md +0 -0
  138. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/09-proactive-write-rate-limiter-geo-guard/09-REVIEW-FIX.md +0 -0
  139. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/09-proactive-write-rate-limiter-geo-guard/09-REVIEW.md +0 -0
  140. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/09-proactive-write-rate-limiter-geo-guard/09-VERIFICATION.md +0 -0
  141. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/.gitkeep +0 -0
  142. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/10-01-PLAN.md +0 -0
  143. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/10-01-SUMMARY.md +0 -0
  144. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/10-02-PLAN.md +0 -0
  145. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/10-02-SUMMARY.md +0 -0
  146. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/10-03-PLAN.md +0 -0
  147. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/10-03-SUMMARY.md +0 -0
  148. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/10-04-PLAN.md +0 -0
  149. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/10-04-SUMMARY.md +0 -0
  150. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/10-CONTEXT.md +0 -0
  151. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/10-DISCUSSION-LOG.md +0 -0
  152. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/10-LIVE-FINDINGS.md +0 -0
  153. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/10-PATTERNS.md +0 -0
  154. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/10-RESEARCH.md +0 -0
  155. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/10-SECURITY.md +0 -0
  156. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/10-UAT.md +0 -0
  157. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/10-VERIFICATION.md +0 -0
  158. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-phases/10-hide-instead-of-delete-sync-mode/COVERAGE.md +0 -0
  159. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-quick/260630-qs8-make-main-py-load-a-local-env-file-at-st/260630-qs8-PLAN.md +0 -0
  160. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-quick/260630-qs8-make-main-py-load-a-local-env-file-at-st/260630-qs8-SUMMARY.md +0 -0
  161. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-quick/260708-dt9-add-progress-feedback-to-aura-cli-sync-a/260708-dt9-PLAN.md +0 -0
  162. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-quick/260708-dt9-add-progress-feedback-to-aura-cli-sync-a/260708-dt9-SUMMARY.md +0 -0
  163. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-quick/260708-dt9-add-progress-feedback-to-aura-cli-sync-a/deferred-items.md +0 -0
  164. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-quick/260708-fyr-batch-refactor-of-sync-apply-write-path-/260708-fyr-PLAN.md +0 -0
  165. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-quick/260708-fyr-batch-refactor-of-sync-apply-write-path-/260708-fyr-SUMMARY.md +0 -0
  166. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-quick/260708-fyr-batch-refactor-of-sync-apply-write-path-/260708-fyr-VERIFICATION.md +0 -0
  167. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v2.0-quick/README.md +0 -0
  168. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-REQUIREMENTS.md +0 -0
  169. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-ROADMAP.md +0 -0
  170. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-01-PLAN.md +0 -0
  171. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-01-SUMMARY.md +0 -0
  172. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-02-PLAN.md +0 -0
  173. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-02-SUMMARY.md +0 -0
  174. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-03-PLAN.md +0 -0
  175. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-03-SUMMARY.md +0 -0
  176. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-04-PLAN.md +0 -0
  177. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-04-SUMMARY.md +0 -0
  178. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-05-PLAN.md +0 -0
  179. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-05-SUMMARY.md +0 -0
  180. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-06-PLAN.md +0 -0
  181. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-06-SUMMARY.md +0 -0
  182. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-CONTEXT.md +0 -0
  183. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-DISCUSSION-LOG.md +0 -0
  184. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-LIVE-FINDINGS.md +0 -0
  185. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-PATTERNS.md +0 -0
  186. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-REVIEW.md +0 -0
  187. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v3.0-phases/11-write-path-reliability-format-support/11-VERIFICATION.md +0 -0
  188. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-REQUIREMENTS.md +0 -0
  189. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-ROADMAP.md +0 -0
  190. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/16-local-mechanism-spike-decision/16-01-PLAN.md +0 -0
  191. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/16-local-mechanism-spike-decision/16-01-SUMMARY.md +0 -0
  192. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/16-local-mechanism-spike-decision/16-02-PLAN.md +0 -0
  193. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/16-local-mechanism-spike-decision/16-02-SUMMARY.md +0 -0
  194. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/16-local-mechanism-spike-decision/16-03-PLAN.md +0 -0
  195. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/16-local-mechanism-spike-decision/16-03-SUMMARY.md +0 -0
  196. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/16-local-mechanism-spike-decision/16-CONTEXT.md +0 -0
  197. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/16-local-mechanism-spike-decision/16-DECISION-RECORD.md +0 -0
  198. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/16-local-mechanism-spike-decision/16-DISCUSSION-LOG.md +0 -0
  199. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/16-local-mechanism-spike-decision/16-LIVE-FINDINGS.md +0 -0
  200. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/16-local-mechanism-spike-decision/COVERAGE.md +0 -0
  201. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/17-google-link-album-selection/17-01-PLAN.md +0 -0
  202. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/17-google-link-album-selection/17-01-SUMMARY.md +0 -0
  203. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/17-google-link-album-selection/17-02-PLAN.md +0 -0
  204. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/17-google-link-album-selection/17-02-SUMMARY.md +0 -0
  205. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/17-google-link-album-selection/17-CONTEXT.md +0 -0
  206. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/17-google-link-album-selection/17-DISCUSS-CHECKPOINT.json +0 -0
  207. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/17-google-link-album-selection/17-VERIFICATION.md +0 -0
  208. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/17-google-link-album-selection/COVERAGE.md +0 -0
  209. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/18-album-frame-mirror-sync-single-pair/18-01-PLAN.md +0 -0
  210. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/18-album-frame-mirror-sync-single-pair/18-01-SUMMARY.md +0 -0
  211. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/18-album-frame-mirror-sync-single-pair/18-02-PLAN.md +0 -0
  212. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/18-album-frame-mirror-sync-single-pair/18-02-SUMMARY.md +0 -0
  213. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/18-album-frame-mirror-sync-single-pair/18-03-PLAN.md +0 -0
  214. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/18-album-frame-mirror-sync-single-pair/18-03-SUMMARY.md +0 -0
  215. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/18-album-frame-mirror-sync-single-pair/18-CONTEXT.md +0 -0
  216. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/18-album-frame-mirror-sync-single-pair/18-RESEARCH.md +0 -0
  217. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/18-album-frame-mirror-sync-single-pair/18-UAT.md +0 -0
  218. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/18-album-frame-mirror-sync-single-pair/18-VERIFICATION.md +0 -0
  219. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/19-debt-closeout/19-01-PLAN.md +0 -0
  220. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/19-debt-closeout/19-01-SUMMARY.md +0 -0
  221. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/19-debt-closeout/19-02-PLAN.md +0 -0
  222. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/19-debt-closeout/19-02-SUMMARY.md +0 -0
  223. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/19-debt-closeout/19-CONTEXT.md +0 -0
  224. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/19-debt-closeout/19-RESEARCH.md +0 -0
  225. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/milestones/v4.0-phases/19-debt-closeout/19-VERIFICATION.md +0 -0
  226. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/phases/20-pushframe-rename-migration-repo-switch/20-SUMMARY.md +0 -0
  227. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/phases/21-debian-package-apt-repo/21-01-PLAN.md +0 -0
  228. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/phases/21-debian-package-apt-repo/21-01-SUMMARY.md +0 -0
  229. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/phases/21-debian-package-apt-repo/21-02-PLAN.md +0 -0
  230. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/phases/21-debian-package-apt-repo/21-02-SUMMARY.md +0 -0
  231. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/phases/21-debian-package-apt-repo/21-CONTEXT.md +0 -0
  232. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/phases/21-debian-package-apt-repo/21-RESEARCH.md +0 -0
  233. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/phases/21-debian-package-apt-repo/21-VERIFICATION.md +0 -0
  234. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/phases/22-pypi-release-engineering/22-01-PLAN.md +0 -0
  235. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/phases/22-pypi-release-engineering/22-01-SUMMARY.md +0 -0
  236. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/phases/22-pypi-release-engineering/22-02-PLAN.md +0 -0
  237. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/phases/22-pypi-release-engineering/22-02-SUMMARY.md +0 -0
  238. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/phases/22-pypi-release-engineering/22-CONTEXT.md +0 -0
  239. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/phases/22-pypi-release-engineering/22-RESEARCH.md +0 -0
  240. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/phases/22-pypi-release-engineering/22-VERIFICATION.md +0 -0
  241. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/phases/22-pypi-release-engineering/OPERATOR-STEPS.md +0 -0
  242. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/research/ALBUM-ACCESS-V4-ADDENDUM.md +0 -0
  243. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/research/ALBUM-ACCESS.md +0 -0
  244. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/research/ARCHITECTURE.md +0 -0
  245. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/research/BROWSER-AUTOMATION.md +0 -0
  246. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/research/FEATURES.md +0 -0
  247. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/research/PITFALLS.md +0 -0
  248. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/research/STACK.md +0 -0
  249. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/research/SUMMARY.md +0 -0
  250. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/state.json +0 -0
  251. {pushframe-5.0.2 → pushframe-5.0.3}/.planning/todos/completed/2026-07-06-promote-debug-flag-to-a-global-cli-convention.md +0 -0
  252. {pushframe-5.0.2 → pushframe-5.0.3}/.python-version +0 -0
  253. {pushframe-5.0.2 → pushframe-5.0.3}/CLAUDE.md +0 -0
  254. {pushframe-5.0.2 → pushframe-5.0.3}/LICENSE +0 -0
  255. {pushframe-5.0.2 → pushframe-5.0.3}/SECURITY.md +0 -0
  256. {pushframe-5.0.2 → pushframe-5.0.3}/VERIFICATION-REPORT.md +0 -0
  257. {pushframe-5.0.2 → pushframe-5.0.3}/docs/CLI.md +0 -0
  258. {pushframe-5.0.2 → pushframe-5.0.3}/docs/agents/domain.md +0 -0
  259. {pushframe-5.0.2 → pushframe-5.0.3}/docs/agents/issue-tracker.md +0 -0
  260. {pushframe-5.0.2 → pushframe-5.0.3}/docs/agents/triage-labels.md +0 -0
  261. {pushframe-5.0.2 → pushframe-5.0.3}/docs/superpowers/specs/2026-07-09-write-rate-limiter-design.md +0 -0
  262. {pushframe-5.0.2 → pushframe-5.0.3}/main.py +0 -0
  263. {pushframe-5.0.2 → pushframe-5.0.3}/packaging/control-template +0 -0
  264. {pushframe-5.0.2 → pushframe-5.0.3}/packaging/lintian-overrides +0 -0
  265. {pushframe-5.0.2 → pushframe-5.0.3}/packaging/postinst +0 -0
  266. {pushframe-5.0.2 → pushframe-5.0.3}/packaging/pushframe.copyright +0 -0
  267. {pushframe-5.0.2 → pushframe-5.0.3}/probes/.gitignore +0 -0
  268. {pushframe-5.0.2 → pushframe-5.0.3}/probes/README.md +0 -0
  269. {pushframe-5.0.2 → pushframe-5.0.3}/probes/browser_bootstrap.py +0 -0
  270. {pushframe-5.0.2 → pushframe-5.0.3}/probes/common.py +0 -0
  271. {pushframe-5.0.2 → pushframe-5.0.3}/probes/cookie_vault.py +0 -0
  272. {pushframe-5.0.2 → pushframe-5.0.3}/probes/fidelity_check.py +0 -0
  273. {pushframe-5.0.2 → pushframe-5.0.3}/probes/rpc_capture.py +0 -0
  274. {pushframe-5.0.2 → pushframe-5.0.3}/probes/shared_link_probe.py +0 -0
  275. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/api/__init__.py +0 -0
  276. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/api/accountApi.py +0 -0
  277. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/api/activityApi.py +0 -0
  278. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/api/assetApi.py +0 -0
  279. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/api/baseApi.py +0 -0
  280. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/api/frameApi.py +0 -0
  281. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/api/notificationApi.py +0 -0
  282. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/api/peopleApi.py +0 -0
  283. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/api/playlistApi.py +0 -0
  284. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/aura.py +0 -0
  285. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/aws/__init__.py +0 -0
  286. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/aws/awsclient.py +0 -0
  287. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/aws/s3client.py +0 -0
  288. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/aws/sqsclient.py +0 -0
  289. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/cache.py +0 -0
  290. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/cli.py +0 -0
  291. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/client.py +0 -0
  292. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/exif.py +0 -0
  293. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/export.py +0 -0
  294. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/google/__init__.py +0 -0
  295. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/google/bootstrap.py +0 -0
  296. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/google/cache.py +0 -0
  297. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/google/client.py +0 -0
  298. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/google/enumerate.py +0 -0
  299. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/google/manifest.py +0 -0
  300. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/google/parsers.py +0 -0
  301. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/google/redaction.py +0 -0
  302. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/google/vault.py +0 -0
  303. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/gsync.py +0 -0
  304. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/migration.py +0 -0
  305. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/models/__init__.py +0 -0
  306. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/models/activity.py +0 -0
  307. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/models/asset.py +0 -0
  308. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/models/frame.py +0 -0
  309. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/models/meta.py +0 -0
  310. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/models/person.py +0 -0
  311. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/models/user.py +0 -0
  312. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/ratelimit.py +0 -0
  313. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/reconcile.py +0 -0
  314. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/sync.py +0 -0
  315. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/utils/dt.py +0 -0
  316. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/utils/io.py +0 -0
  317. {pushframe-5.0.2 → pushframe-5.0.3}/pushframe/utils/settings.py +0 -0
  318. {pushframe-5.0.2 → pushframe-5.0.3}/scripts/build-deb.sh +0 -0
  319. {pushframe-5.0.2 → pushframe-5.0.3}/scripts/make-apt-key.sh +0 -0
  320. {pushframe-5.0.2 → pushframe-5.0.3}/scripts/publish-apt-repo.sh +0 -0
  321. {pushframe-5.0.2 → pushframe-5.0.3}/scripts/test-apt-journey-container.sh +0 -0
  322. {pushframe-5.0.2 → pushframe-5.0.3}/scripts/test-deb-container.sh +0 -0
  323. {pushframe-5.0.2 → pushframe-5.0.3}/scripts/test-install-journey-container.sh +0 -0
  324. {pushframe-5.0.2 → pushframe-5.0.3}/tests/conftest.py +0 -0
  325. {pushframe-5.0.2 → pushframe-5.0.3}/tests/fixtures/asset_unprocessed.json +0 -0
  326. {pushframe-5.0.2 → pushframe-5.0.3}/tests/fixtures/assets_page1.json +0 -0
  327. {pushframe-5.0.2 → pushframe-5.0.3}/tests/fixtures/assets_page2.json +0 -0
  328. {pushframe-5.0.2 → pushframe-5.0.3}/tests/fixtures/assets_placeholders.json +0 -0
  329. {pushframe-5.0.2 → pushframe-5.0.3}/tests/fixtures/error_envelope.json +0 -0
  330. {pushframe-5.0.2 → pushframe-5.0.3}/tests/fixtures/frame_detail.json +0 -0
  331. {pushframe-5.0.2 → pushframe-5.0.3}/tests/fixtures/frames.json +0 -0
  332. {pushframe-5.0.2 → pushframe-5.0.3}/tests/fixtures/google_rpc_snackc_page.json +0 -0
  333. {pushframe-5.0.2 → pushframe-5.0.3}/tests/fixtures/google_share_page_sample.html +0 -0
  334. {pushframe-5.0.2 → pushframe-5.0.3}/tests/fixtures/login.json +0 -0
  335. {pushframe-5.0.2 → pushframe-5.0.3}/tests/fixtures/probe_af_initdata_sample.html +0 -0
  336. {pushframe-5.0.2 → pushframe-5.0.3}/tests/offline.py +0 -0
  337. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_asset_partial.py +0 -0
  338. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_asset_unprocessed.py +0 -0
  339. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_aura_logger.py +0 -0
  340. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_batch_update_contract.py +0 -0
  341. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_cli_apply.py +0 -0
  342. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_cli_google_album.py +0 -0
  343. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_cli_google_link.py +0 -0
  344. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_cli_inspect.py +0 -0
  345. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_cli_push_budget_geo.py +0 -0
  346. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_cli_reconcile.py +0 -0
  347. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_cli_status.py +0 -0
  348. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_cli_status_google.py +0 -0
  349. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_cli_sync.py +0 -0
  350. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_client_rate_limit.py +0 -0
  351. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_execute_plan.py +0 -0
  352. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_execute_plan_budget_geo.py +0 -0
  353. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_fixtures_validity.py +0 -0
  354. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_google_cache.py +0 -0
  355. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_google_client.py +0 -0
  356. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_google_enumerate.py +0 -0
  357. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_google_manifest.py +0 -0
  358. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_google_parsers.py +0 -0
  359. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_google_vault.py +0 -0
  360. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_gsync_engine.py +0 -0
  361. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_gsync_execute.py +0 -0
  362. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_imports.py +0 -0
  363. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_migration.py +0 -0
  364. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_offline_read_path.py +0 -0
  365. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_prep_upload_formats.py +0 -0
  366. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_probe_browser.py +0 -0
  367. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_probe_shared_link.py +0 -0
  368. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_ratelimit.py +0 -0
  369. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_read_path.py +0 -0
  370. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_reconcile.py +0 -0
  371. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_retry_401.py +0 -0
  372. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_settings_budget.py +0 -0
  373. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_sync_engine.py +0 -0
  374. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_write_endpoints_failloud.py +0 -0
  375. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_write_formats_live.py +0 -0
  376. {pushframe-5.0.2 → pushframe-5.0.3}/tests/test_write_throttling.py +0 -0
  377. {pushframe-5.0.2 → pushframe-5.0.3}/uv.lock +0 -0
@@ -36,7 +36,7 @@ jobs:
36
36
  outputs:
37
37
  version: ${{ steps.version.outputs.version }}
38
38
  steps:
39
- - uses: actions/checkout@v4
39
+ - uses: actions/checkout@v7
40
40
  - name: Assert tag == pyproject == pushframe.__version__
41
41
  id: version
42
42
  run: |
@@ -56,8 +56,8 @@ jobs:
56
56
  runs-on: ubuntu-latest
57
57
  environment: release
58
58
  steps:
59
- - uses: actions/checkout@v4
60
- - uses: astral-sh/setup-uv@v5
59
+ - uses: actions/checkout@v7
60
+ - uses: astral-sh/setup-uv@v10.2.0
61
61
  with:
62
62
  enable-cache: true
63
63
  - name: Build sdist + wheel
@@ -70,8 +70,8 @@ jobs:
70
70
  needs: check
71
71
  runs-on: ubuntu-latest
72
72
  steps:
73
- - uses: actions/checkout@v4
74
- - uses: astral-sh/setup-uv@v5
73
+ - uses: actions/checkout@v7
74
+ - uses: astral-sh/setup-uv@v10.2.0
75
75
  with:
76
76
  enable-cache: true
77
77
  - name: Install uv-managed standalone python (the deb's runtime)
@@ -94,8 +94,8 @@ jobs:
94
94
  runs-on: ubuntu-latest
95
95
  environment: release
96
96
  steps:
97
- - uses: actions/checkout@v4
98
- - uses: astral-sh/setup-uv@v5
97
+ - uses: actions/checkout@v7
98
+ - uses: astral-sh/setup-uv@v10.2.0
99
99
  - name: Restore the APT signing key from the secret
100
100
  env:
101
101
  PUSHFRAME_APT_SIGNING_KEY: ${{ secrets.PUSHFRAME_APT_SIGNING_KEY }}
@@ -126,8 +126,8 @@ jobs:
126
126
  runs-on: ubuntu-latest
127
127
  environment: release
128
128
  steps:
129
- - uses: actions/checkout@v4
130
- - uses: astral-sh/setup-uv@v5
129
+ - uses: actions/checkout@v7
130
+ - uses: astral-sh/setup-uv@v10.2.0
131
131
  with:
132
132
  enable-cache: true
133
133
  - name: Build sdist + wheel
@@ -9,10 +9,10 @@ jobs:
9
9
  offline-suite:
10
10
  runs-on: ubuntu-latest
11
11
  steps:
12
- - uses: actions/checkout@v4
12
+ - uses: actions/checkout@v7
13
13
 
14
14
  - name: Install uv
15
- uses: astral-sh/setup-uv@v5
15
+ uses: astral-sh/setup-uv@v10.2.0
16
16
  with:
17
17
  enable-cache: true
18
18
 
@@ -0,0 +1,121 @@
1
+ # Changelog
2
+
3
+ All notable changes to `pushframe` are documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+ Each release ships simultaneously to [PyPI](https://pypi.org/project/pushframe/),
8
+ the [signed APT repository](https://coredmp95.github.io/pushframe/), and
9
+ [GitHub Releases](https://github.com/coredmp95/pushframe/releases) — one tag,
10
+ every channel.
11
+
12
+ `pushframe` is an unofficial community CLI for Aura Frames digital photo
13
+ frames; it is not affiliated with Aura Frames Inc.
14
+
15
+ ## [5.0.2] — 2026-09-29
16
+
17
+ ### Fixed
18
+
19
+ - **PyPI project page** — 5.0.0/5.0.1 shipped no package description: the
20
+ wheel metadata now carries the README (`readme`), a one-line summary with
21
+ the not-affiliated disclaimer, and Homepage/Repository/Issues URLs.
22
+ - **Release pipeline, APT job** (CI-only, no code change vs 5.0.1): the
23
+ signing-key fingerprint is derived with gpg instead of a grep over the
24
+ ASCII armor, and the gh-pages orphan commit runs with an explicit git
25
+ identity — first release where all five jobs (check, pypi-test, deb,
26
+ apt, pypi) are green end-to-end.
27
+ - **CI actions** — `actions/checkout@v7`, `astral-sh/setup-uv@v10.2.0`
28
+ (Node 24): clears the Node.js 20 deprecation warnings on the runners.
29
+
30
+ ## [5.0.1] — 2026-09-29
31
+
32
+ ### Fixed
33
+
34
+ - Wheel/sdist metadata: `readme = README.md`, `description`, and
35
+ `project.urls` declared (the 5.0.0 PyPI page rendered empty; versions
36
+ being immutable on PyPI, the fix ships as a new release).
37
+
38
+ ## [5.0.0] — 2026-09-29
39
+
40
+ The first distribution release — and the first version published outside
41
+ git tags. Aligns with the v5.0 milestone (« Distribution & Rename »).
42
+
43
+ ### Added
44
+
45
+ - **Debian packaging** (`scripts/build-deb.sh`): hermetic `.deb` embedding
46
+ its own CPython 3.14 under `/usr/lib/pushframe/` — no system Python is
47
+ used or modified; lintian-clean (0 errors, 0 warnings); removal leaves
48
+ no residue (bytecode is package-owned, `PYTHONDONTWRITEBYTECODE` at run
49
+ time); verified in clean `ubuntu:26.04` containers.
50
+ - **Signed APT repository** at `https://coredmp95.github.io/pushframe/`
51
+ (dedicated no-passphrase GPG key, InRelease/Release.gpg, keyring +
52
+ one-line sources entry), plus container tests proving the full user
53
+ journey: `apt update` signature-clean → `apt install pushframe` →
54
+ working CLI.
55
+ - **PyPI distribution** via GitHub Actions **trusted publishing** (OIDC)
56
+ — no PyPI token exists anywhere; TestPyPI rehearsal gates every real
57
+ upload.
58
+ - **Release automation** (`release.yml`): pushing a `v*` tag builds the
59
+ wheel/sdist, the `.deb` (attached to the GitHub Release), republishes
60
+ the APT repository, and uploads to PyPI — with a version-consistency
61
+ gate (tag == pyproject == `pushframe.__version__`).
62
+ - **Install journeys as tests**: clean-container proofs for all three
63
+ channels (`.deb` file, APT, `uv tool install`).
64
+ - `pushframe --version` prints `pushframe <release>` (single-sourced,
65
+ lockstep-guarded by tests and the release gate).
66
+
67
+ ### Changed
68
+
69
+ - Project renamed **auraframes → pushframe** (module, binary, config):
70
+ the old name collided with an existing PyPI package and is
71
+ trademark-adjacent; config migrates automatically
72
+ (`~/.config/auraframes/` → `~/.config/pushframe/`, non-destructive).
73
+ - Environment variables: `PUSHFRAME_*` is primary; `AURA_*` still read
74
+ for one release as a deprecation window.
75
+
76
+ ### Deprecated
77
+
78
+ - `AURA_*` environment variables (read until 5.x; set `PUSHFRAME_*`).
79
+ - `aura-cli` as an installed command: removed in favor of the single
80
+ `pushframe` binary.
81
+
82
+ ### Security
83
+
84
+ - Repository moved to a standalone repo (not a fork); MIT LICENSE with
85
+ provenance; GitHub security features enabled (secret scanning + push
86
+ protection, Dependabot, CodeQL).
87
+
88
+ ## Pre-distribution history (git tags only, never published to a package index)
89
+
90
+ Milestone summary — see `.planning/MILESTONES.md` for the full retros.
91
+
92
+ - **v4.0 — Local Google Photos Album Sync** (phases 16–19, 2026-09):
93
+ `google-link` (dedicated Chrome profile, cookie vault `0600`),
94
+ `google-album` (full walk, exact byte counts), `google-sync`
95
+ (hide-by-default mirror semantics, pruned cache + persistent manifest,
96
+ SAFE-01..04 guards); live UAT two-run proof (upload run → zero-upload
97
+ steady state); debt closeout (AWS config out of code, single logger
98
+ per process, transport seam).
99
+ - **v3.0 — direct transport rewrite**: `Client` over `httpx` (HTTP/2),
100
+ boto3 S3/SQS upload path, offline test harness (mocket), full offline
101
+ suite; the server-side relay approach was abandoned this milestone.
102
+ - **v2.0 — read path hardening**: `status`/`inspect`/`sync`/`push`
103
+ verbs, asset lifecycle states, anti-abuse paced writes, staged
104
+ uploads with cleanup on failure.
105
+ - **v1.1 — client transport fixes** (the original author's last tag;
106
+ revived and extended by the current maintainer in 2026).
107
+ - **v1.0 — initial upstream release** by zmanowar (2023).
108
+
109
+ ## [Unreleased]
110
+
111
+ - Nothing staged yet; next changes land here before the next tag.
112
+
113
+ ## [5.0.3] — 2026-09-29
114
+
115
+ ### Added
116
+
117
+ - `CHANGELOG.md` — every release now traced in Keep a Changelog format
118
+ (Added / Changed / Deprecated / Fixed / Security), exposed as a
119
+ `Changelog` project URL on PyPI and referenced from the README.
120
+ - `arch=amd64` in the documented APT sources entry: silences apt's
121
+ i386 notice on multi-arch machines (the repo is amd64-only).
@@ -1,10 +1,11 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: pushframe
3
- Version: 5.0.2
3
+ Version: 5.0.3
4
4
  Summary: Unofficial community CLI for Aura Frames digital photo frames (sync a local folder or a Google Photos album; not affiliated with Aura Frames Inc.)
5
5
  Project-URL: Homepage, https://github.com/coredmp95/pushframe
6
6
  Project-URL: Repository, https://github.com/coredmp95/pushframe
7
7
  Project-URL: Issues, https://github.com/coredmp95/pushframe/issues
8
+ Project-URL: Changelog, https://github.com/coredmp95/pushframe/blob/master/CHANGELOG.md
8
9
  License: MIT License
9
10
 
10
11
  Copyright (c) 2026 Fabrice DIDIERJEAN (coredmp95)
@@ -91,6 +92,9 @@ Any advice or issues are welcome.
91
92
  environment, dependency, and interpreter management.
92
93
  - A live Aura account (email + password) for any command that actually hits the API.
93
94
 
95
+ Release history lives in [CHANGELOG.md](CHANGELOG.md) (Added / Changed /
96
+ Deprecated / Fixed / Security per release, Keep a Changelog format).
97
+
94
98
  ## Install (Ubuntu/Debian)
95
99
 
96
100
  Pre-built `.deb` packages embed their own Python 3.14 runtime under
@@ -135,8 +139,9 @@ sudo install -d -m 0755 /etc/apt/keyrings
135
139
  curl -fsSL https://coredmp95.github.io/pushframe/dists/pushframe.asc \
136
140
  | sudo gpg --dearmor -o /etc/apt/keyrings/pushframe.gpg
137
141
 
138
- # 2. add the sources entry
139
- echo "deb [signed-by=/etc/apt/keyrings/pushframe.gpg] https://coredmp95.github.io/pushframe stable main" \
142
+ # 2. add the sources entry (arch=amd64: the repo is amd64-only — on
143
+ # multi-arch machines this silences apt's i386 notice)
144
+ echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/pushframe.gpg] https://coredmp95.github.io/pushframe stable main" \
140
145
  | sudo tee /etc/apt/sources.list.d/pushframe.list
141
146
 
142
147
  # 3. install
@@ -32,6 +32,9 @@ Any advice or issues are welcome.
32
32
  environment, dependency, and interpreter management.
33
33
  - A live Aura account (email + password) for any command that actually hits the API.
34
34
 
35
+ Release history lives in [CHANGELOG.md](CHANGELOG.md) (Added / Changed /
36
+ Deprecated / Fixed / Security per release, Keep a Changelog format).
37
+
35
38
  ## Install (Ubuntu/Debian)
36
39
 
37
40
  Pre-built `.deb` packages embed their own Python 3.14 runtime under
@@ -76,8 +79,9 @@ sudo install -d -m 0755 /etc/apt/keyrings
76
79
  curl -fsSL https://coredmp95.github.io/pushframe/dists/pushframe.asc \
77
80
  | sudo gpg --dearmor -o /etc/apt/keyrings/pushframe.gpg
78
81
 
79
- # 2. add the sources entry
80
- echo "deb [signed-by=/etc/apt/keyrings/pushframe.gpg] https://coredmp95.github.io/pushframe stable main" \
82
+ # 2. add the sources entry (arch=amd64: the repo is amd64-only — on
83
+ # multi-arch machines this silences apt's i386 notice)
84
+ echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/pushframe.gpg] https://coredmp95.github.io/pushframe stable main" \
81
85
  | sudo tee /etc/apt/sources.list.d/pushframe.list
82
86
 
83
87
  # 3. install
@@ -1,4 +1,4 @@
1
1
  # pushframe — unofficial community CLI for Aura Frames (not affiliated).
2
2
  # Version single source for the CLI surface (REL-02); pyproject keeps the
3
3
  # packaging metadata version and tests/test_version.py enforces lockstep.
4
- __version__ = "5.0.2"
4
+ __version__ = "5.0.3"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pushframe"
3
- version = "5.0.2"
3
+ version = "5.0.3"
4
4
  description = "Unofficial community CLI for Aura Frames digital photo frames (sync a local folder or a Google Photos album; not affiliated with Aura Frames Inc.)"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.14"
@@ -31,6 +31,7 @@ dependencies = [
31
31
  Homepage = "https://github.com/coredmp95/pushframe"
32
32
  Repository = "https://github.com/coredmp95/pushframe"
33
33
  Issues = "https://github.com/coredmp95/pushframe/issues"
34
+ Changelog = "https://github.com/coredmp95/pushframe/blob/master/CHANGELOG.md"
34
35
 
35
36
  [project.optional-dependencies]
36
37
  dev = ["pytest>=8"]
@@ -18,8 +18,8 @@ PYPROJECT = Path(__file__).resolve().parent.parent / "pyproject.toml"
18
18
 
19
19
  def test_version_is_first_distribution_release():
20
20
  """The current distribution release (moved off 0.1.0 at 5.0.0; page
21
- metadata fix shipped in 5.0.2)."""
22
- assert __version__ == "5.0.2"
21
+ metadata fix shipped in 5.0.3)."""
22
+ assert __version__ == "5.0.3"
23
23
 
24
24
 
25
25
  def test_version_matches_pyproject_single_source():
File without changes
File without changes
File without changes