vaibify 0.2.1__tar.gz → 0.2.2__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 (1914) hide show
  1. vaibify-0.2.2/.claude/skills/add-data-loader/SKILL.md +266 -0
  2. vaibify-0.2.2/.claude/skills/add-route-module/SKILL.md +319 -0
  3. {vaibify-0.2.1 → vaibify-0.2.2}/.claude/skills/container-image-and-packaging/SKILL.md +58 -24
  4. {vaibify-0.2.1 → vaibify-0.2.2}/.claude/skills/container-mutations/SKILL.md +40 -23
  5. {vaibify-0.2.1 → vaibify-0.2.2}/.claude/skills/dashboard-state-honesty/SKILL.md +18 -11
  6. {vaibify-0.2.1 → vaibify-0.2.2}/.claude/skills/host-mode-and-paths/SKILL.md +2 -2
  7. {vaibify-0.2.1 → vaibify-0.2.2}/.claude/skills/monitor-pr/SKILL.md +37 -16
  8. {vaibify-0.2.1 → vaibify-0.2.2}/.claude/skills/reproducibility-lane/SKILL.md +152 -36
  9. {vaibify-0.2.1 → vaibify-0.2.2}/AGENTS.md +159 -58
  10. {vaibify-0.2.1 → vaibify-0.2.2}/CLAUDE.md +159 -58
  11. {vaibify-0.2.1/vaibify.egg-info → vaibify-0.2.2}/PKG-INFO +1 -1
  12. {vaibify-0.2.1/vaibify → vaibify-0.2.2}/docs/environmentsAndProjects.md +1 -1
  13. {vaibify-0.2.1 → vaibify-0.2.2}/docs/forAgents.md +7 -0
  14. {vaibify-0.2.1/vaibify → vaibify-0.2.2}/docs/reproducibility.md +6 -4
  15. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testALostClaimRecoversWhereverItIsMet.py +9 -2
  16. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheZenodoRowOffersBothRemedies.py +7 -3
  17. vaibify-0.2.2/tests/browser/testTheZenodoRowOffersVerifyFirst.py +106 -0
  18. {vaibify-0.2.1 → vaibify-0.2.2}/tests/falsificationRegistry.py +303 -12
  19. vaibify-0.2.2/tests/testASavedTestRunsOnce.py +59 -0
  20. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArchitecturalInvariants.py +43 -13
  21. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCarrierMigratedRoutes.py +108 -78
  22. vaibify-0.2.2/tests/testContainerGuidanceMatchesCatalog.py +206 -0
  23. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointAgentSkills.py +1 -1
  24. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGates.py +2 -0
  25. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGatesMutationCoverage.py +3 -3
  26. vaibify-0.2.2/tests/testLevelTwoGapsAgreeWithTheGate.py +76 -0
  27. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineStateHostIncidents.py +39 -0
  28. vaibify-0.2.2/tests/testPostPushVerifyFollowsTheSharedPredicate.py +144 -0
  29. vaibify-0.2.2/tests/testPublishLogsNameOnlyPublicIdentifiers.py +56 -0
  30. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReconfirmFalsificationJudgesKills.py +33 -7
  31. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncRoutesCoverage.py +45 -1
  32. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTestRoutesCoverage.py +2 -1
  33. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheNextStepIsNamedOnlyWhenOrderMatters.py +65 -0
  34. vaibify-0.2.2/tests/testTheSignOffSaveReadsOnlyLevelOne.py +90 -0
  35. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVerifyRemoteIsBoundToThePush.py +35 -2
  36. {vaibify-0.2.1 → vaibify-0.2.2}/tools/reconfirmFalsification.py +10 -3
  37. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/_version.py +3 -3
  38. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/entrypoint.sh +22 -21
  39. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/create-pipeline-step/SKILL.md +63 -26
  40. vaibify-0.2.2/vaibify/containerImage/skills/dashboard-map/SKILL.md +113 -0
  41. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/diagnose-failed-run/SKILL.md +17 -9
  42. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/graceful-exits/SKILL.md +4 -1
  43. vaibify-0.2.2/vaibify/containerImage/skills/proof-ladder/SKILL.md +369 -0
  44. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/read-arxiv/SKILL.md +5 -1
  45. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/read-manuscript/SKILL.md +5 -0
  46. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/reproducible-analysis/SKILL.md +13 -7
  47. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/running-steps/SKILL.md +15 -5
  48. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/session-budget/SKILL.md +13 -4
  49. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/vaibify-doc-map/SKILL.md +3 -1
  50. {vaibify-0.2.1 → vaibify-0.2.2/vaibify}/docs/environmentsAndProjects.md +1 -1
  51. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docs/forAgents.md +7 -0
  52. {vaibify-0.2.1 → vaibify-0.2.2/vaibify}/docs/reproducibility.md +6 -4
  53. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/AGENTS.md +76 -41
  54. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/actionCatalog.py +24 -19
  55. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/fileStatusManager.py +10 -11
  56. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pipelineState.py +39 -5
  57. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routeContext.py +22 -6
  58. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/environmentArchiveRoutes.py +22 -0
  59. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/repoRoutes.py +16 -0
  60. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/reproducibilityRoutes.py +5 -1
  61. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/stepRoutes.py +40 -8
  62. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/syncRoutes.py +75 -4
  63. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/testRoutes.py +16 -14
  64. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/AGENTS.md +87 -42
  65. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/index.html +1 -1
  66. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptApplication.js +8 -7
  67. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptSyncManager.js +12 -7
  68. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptWorkflowRequirements.js +55 -8
  69. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/testStatusManager.py +25 -2
  70. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/workflowManager.py +14 -1
  71. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/dependencyPinning.py +7 -7
  72. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/l3Attestation.py +1 -1
  73. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/levelGates.py +54 -13
  74. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/levelOrdering.py +58 -4
  75. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/scheduledReverify.py +44 -8
  76. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/syncBookkeeping.py +6 -5
  77. {vaibify-0.2.1 → vaibify-0.2.2/vaibify.egg-info}/PKG-INFO +1 -1
  78. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify.egg-info/SOURCES.txt +8 -0
  79. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify.egg-info/scm_file_list.json +8 -0
  80. vaibify-0.2.2/vaibify.egg-info/scm_version.json +8 -0
  81. vaibify-0.2.1/.claude/skills/add-data-loader/SKILL.md +0 -176
  82. vaibify-0.2.1/.claude/skills/add-route-module/SKILL.md +0 -202
  83. vaibify-0.2.1/vaibify/containerImage/skills/proof-ladder/SKILL.md +0 -247
  84. vaibify-0.2.1/vaibify.egg-info/scm_version.json +0 -8
  85. {vaibify-0.2.1 → vaibify-0.2.2}/.claude/hooks/askSensitiveEdit.py +0 -0
  86. {vaibify-0.2.1 → vaibify-0.2.2}/.claude/hooks/blockDestructiveGit.py +0 -0
  87. {vaibify-0.2.1 → vaibify-0.2.2}/.claude/settings.json +0 -0
  88. {vaibify-0.2.1 → vaibify-0.2.2}/.claude/skills/terminal-sessions/SKILL.md +0 -0
  89. {vaibify-0.2.1 → vaibify-0.2.2}/.githooks/pre-commit +0 -0
  90. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/agentDocsPathCheck.yml +0 -0
  91. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/badges.yml +0 -0
  92. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/browser-chromium.yml +0 -0
  93. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/browser-firefox.yml +0 -0
  94. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/browser-webkit.yml +0 -0
  95. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/containerAcceptance.yml +0 -0
  96. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/docs.yml +0 -0
  97. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/falsification.yml +0 -0
  98. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/freshImageBuild.yml +0 -0
  99. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/mutation.yml +0 -0
  100. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/pip-install.yml +0 -0
  101. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/publishedReproduction.yml +0 -0
  102. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/remoteSsh.yml +0 -0
  103. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/runtimeSetup.yml +0 -0
  104. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/security.yml +0 -0
  105. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/styleContract.yml +0 -0
  106. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/tests-linux.yml +0 -0
  107. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/tests-macos-nightly.yml +0 -0
  108. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/tests-macos.yml +0 -0
  109. {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/toolchainEpoch.yml +0 -0
  110. {vaibify-0.2.1 → vaibify-0.2.2}/.gitignore +0 -0
  111. {vaibify-0.2.1 → vaibify-0.2.2}/.zenodo.json +0 -0
  112. {vaibify-0.2.1 → vaibify-0.2.2}/CITATION.cff +0 -0
  113. {vaibify-0.2.1 → vaibify-0.2.2}/LICENSE +0 -0
  114. {vaibify-0.2.1 → vaibify-0.2.2}/README.md +0 -0
  115. {vaibify-0.2.1 → vaibify-0.2.2}/VaibifyIcon.png +0 -0
  116. {vaibify-0.2.1 → vaibify-0.2.2}/bin/connect_vc +0 -0
  117. {vaibify-0.2.1 → vaibify-0.2.2}/bin/vcTransferCommon.sh +0 -0
  118. {vaibify-0.2.1 → vaibify-0.2.2}/bin/vc_pull +0 -0
  119. {vaibify-0.2.1 → vaibify-0.2.2}/bin/vc_push +0 -0
  120. {vaibify-0.2.1 → vaibify-0.2.2}/cosmic-ray.toml +0 -0
  121. {vaibify-0.2.1 → vaibify-0.2.2}/docs/_static/.gitkeep +0 -0
  122. {vaibify-0.2.1 → vaibify-0.2.2}/docs/_static/custom.css +0 -0
  123. {vaibify-0.2.1 → vaibify-0.2.2}/docs/agentCouncil.md +0 -0
  124. {vaibify-0.2.1 → vaibify-0.2.2}/docs/aiUse.md +0 -0
  125. {vaibify-0.2.1 → vaibify-0.2.2}/docs/architecture.md +0 -0
  126. {vaibify-0.2.1 → vaibify-0.2.2}/docs/cli.md +0 -0
  127. {vaibify-0.2.1 → vaibify-0.2.2}/docs/conduct.rst +0 -0
  128. {vaibify-0.2.1 → vaibify-0.2.2}/docs/conf.py +0 -0
  129. {vaibify-0.2.1 → vaibify-0.2.2}/docs/developers.md +0 -0
  130. {vaibify-0.2.1 → vaibify-0.2.2}/docs/externalResources.md +0 -0
  131. {vaibify-0.2.1 → vaibify-0.2.2}/docs/index.rst +0 -0
  132. {vaibify-0.2.1 → vaibify-0.2.2}/docs/install.md +0 -0
  133. {vaibify-0.2.1 → vaibify-0.2.2}/docs/knownDebt.md +0 -0
  134. {vaibify-0.2.1 → vaibify-0.2.2}/docs/lessons.md +0 -0
  135. {vaibify-0.2.1 → vaibify-0.2.2}/docs/proofLadder.md +0 -0
  136. {vaibify-0.2.1 → vaibify-0.2.2}/docs/quickStart.md +0 -0
  137. {vaibify-0.2.1 → vaibify-0.2.2}/docs/security.md +0 -0
  138. {vaibify-0.2.1 → vaibify-0.2.2}/docs/skillTesting.md +0 -0
  139. {vaibify-0.2.1 → vaibify-0.2.2}/docs/systemPrompt.md +0 -0
  140. {vaibify-0.2.1 → vaibify-0.2.2}/docs/testing.md +0 -0
  141. {vaibify-0.2.1 → vaibify-0.2.2}/docs/vaibify_logo.png +0 -0
  142. {vaibify-0.2.1 → vaibify-0.2.2}/docs/vaibify_screenshot.png +0 -0
  143. {vaibify-0.2.1 → vaibify-0.2.2}/docs/vibeCoding.md +0 -0
  144. {vaibify-0.2.1 → vaibify-0.2.2}/pyproject.toml +0 -0
  145. {vaibify-0.2.1 → vaibify-0.2.2}/pytest.ini +0 -0
  146. {vaibify-0.2.1 → vaibify-0.2.2}/setup.cfg +0 -0
  147. {vaibify-0.2.1 → vaibify-0.2.2}/tests/__init__.py +0 -0
  148. {vaibify-0.2.1 → vaibify-0.2.2}/tests/agentCouncilHarness.py +0 -0
  149. {vaibify-0.2.1 → vaibify-0.2.2}/tests/assessedRerunLaneHarness.py +0 -0
  150. {vaibify-0.2.1 → vaibify-0.2.2}/tests/attributionShapes.py +0 -0
  151. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/__init__.py +0 -0
  152. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/conftest.py +0 -0
  153. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/fakeDockerAdapter.py +0 -0
  154. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/filesLane.py +0 -0
  155. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testABadgeOffersTheActionThatResolvesIt.py +0 -0
  156. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testABlockedRowStillTeaches.py +0 -0
  157. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testABuildRefusalIsNotARunningBuild.py +0 -0
  158. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAClickSurvivesAPollRender.py +0 -0
  159. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAContainerOffThePinWarnsBesideTheSnapshotRow.py +0 -0
  160. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testADragThatLeavesTheWindowKeepsScrolling.py +0 -0
  161. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testADropTargetIsATargetInEveryBrowser.py +0 -0
  162. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testADroppedBuildRequestAttachesInstead.py +0 -0
  163. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAFailedStepExplainsItsExitCode.py +0 -0
  164. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAFailureToastOffersADiagnosis.py +0 -0
  165. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAFullScreenProgramsLimitIsStated.py +0 -0
  166. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAHeldTileOffersRelease.py +0 -0
  167. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testALateAnswerNeverRepaintsAViewer.py +0 -0
  168. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testALevelCrossingWarnsBeforeItWrites.py +0 -0
  169. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testALockedTileExplainsOnClick.py +0 -0
  170. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAMissingFileIsListedNotJustCounted.py +0 -0
  171. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testANewStepRunsItsDataCommands.py +0 -0
  172. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAPartlyDivergedEnvelopeReadsPartial.py +0 -0
  173. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAPendingSignOffIsNotAWarning.py +0 -0
  174. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAPreRunWarningReachesTheScreen.py +0 -0
  175. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAProgramsCopyWaitsForTheResearchersClick.py +0 -0
  176. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAPromoteRefusalSaysWhy.py +0 -0
  177. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAPromotionDoesNotTakeItsOwnClaimBack.py +0 -0
  178. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAQuickVerificationIsStillReported.py +0 -0
  179. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAReadersVerificationLeavesTheAttestationRowStill.py +0 -0
  180. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testARecreateSaysWhatItDiscards.py +0 -0
  181. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testARefusedCopyOnSelectSaysHowToRetry.py +0 -0
  182. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testARefusedTestRunIsNotAFailure.py +0 -0
  183. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAResizeDoesNotStrandOldFrames.py +0 -0
  184. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAResizeKeepsThePaneFollowingItsOutput.py +0 -0
  185. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testARunMenuCheckSaysItIsWorking.py +0 -0
  186. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testARunningRemoteCheckPulsesTheBadge.py +0 -0
  187. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testASandboxDepositIsNamedOnTheRow.py +0 -0
  188. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testASettledAttestationRechecksTheRemotes.py +0 -0
  189. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAStaleAiDeclarationSaysWhatChanged.py +0 -0
  190. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAStaleVerifyAdmitsIt.py +0 -0
  191. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testATierWithNothingToCheckSaysWhy.py +0 -0
  192. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAVerificationIsFollowedOnTheProjectBlock.py +0 -0
  193. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAVerificationPulsesOnlyWhatItAssesses.py +0 -0
  194. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAdoptBarOffersOnlyWhatCanWork.py +0 -0
  195. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAnAgentsEditAppearsWithoutNavigation.py +0 -0
  196. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAnAgentsRunMovesTheStepLights.py +0 -0
  197. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAnErrorToastKeepsItsRemedy.py +0 -0
  198. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAnExternalRunIsAppliedByCategoryAndAnnouncedOnce.py +0 -0
  199. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAnInterruptedPromotionSurvivesAReload.py +0 -0
  200. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAnOlderScopeRendersAsVerifyAgain.py +0 -0
  201. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAnUncheckedPassIsNeverShownAsPassed.py +0 -0
  202. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAssessedVerdictsOnScreen.py +0 -0
  203. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testBadgesRepaintAfterAVerify.py +0 -0
  204. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testBlankProjectCanReadAndChangeItsSession.py +0 -0
  205. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testBrowserJourneys.py +0 -0
  206. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCleanOutputsAppliesWhatTheRouteWrote.py +0 -0
  207. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCompareManifests.py +0 -0
  208. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testContainerizeFromPinnedImage.py +0 -0
  209. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testConvertToProjectJourney.py +0 -0
  210. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCopyButtonsReportTheRealOutcome.py +0 -0
  211. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCopyHasAShortcutTheBrowserCannotTake.py +0 -0
  212. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCopySurvivesTheSelectionBeingCleared.py +0 -0
  213. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilAcceptCarriesItsDirectory.py +0 -0
  214. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilBlockedButtonExplainsItself.py +0 -0
  215. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilChairbotChat.py +0 -0
  216. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilChooserTasks.py +0 -0
  217. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilConveneNeedsAModel.py +0 -0
  218. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilCredentialConsent.py +0 -0
  219. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilDraftSurvivesAReload.py +0 -0
  220. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilFinishedSurface.py +0 -0
  221. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilGroupNameCannotInjectMarkup.py +0 -0
  222. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilImplementPlanButton.py +0 -0
  223. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilLoginCapNotice.py +0 -0
  224. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilMaximumRoundsReachesTheRecord.py +0 -0
  225. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilNotesAndSummarySurfaces.py +0 -0
  226. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilPauseSurface.py +0 -0
  227. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilPlanningJourney.py +0 -0
  228. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilProvenanceLostGateIsReadOnly.py +0 -0
  229. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilRetentionBoundaryIsInTheConsole.py +0 -0
  230. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilRetryOffer.py +0 -0
  231. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilSnapshotScopeModal.py +0 -0
  232. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilWorkspaceCloseReturnsToChooser.py +0 -0
  233. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testDashboardEdgesTellTheTruth.py +0 -0
  234. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testDashboardSkipsAreMarkedStale.py +0 -0
  235. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testDeclarationStepClaimsNoRunOutcome.py +0 -0
  236. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testDeleteEnvironmentIsTypedNotClicked.py +0 -0
  237. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testDestructiveActionsLookDestructive.py +0 -0
  238. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testDeterminismRowFollowsTheGate.py +0 -0
  239. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testDockerBannerNamesWhatFailed.py +0 -0
  240. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testDownloadDoesNotAskToLeaveThePage.py +0 -0
  241. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testEnvironmentInfoModalOpens.py +0 -0
  242. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testErrorRedaction.py +0 -0
  243. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testExpiredWindowSaysSo.py +0 -0
  244. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testFailedBadgeRefreshMakesNoClaim.py +0 -0
  245. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testFilesTabDownload.py +0 -0
  246. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testFilesTabUpload.py +0 -0
  247. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testForeignManifestGuard.py +0 -0
  248. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testGeneratedTestsSayWhoWroteThem.py +0 -0
  249. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testHelpLivesInOnePlace.py +0 -0
  250. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testHostCancelSurface.py +0 -0
  251. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testHostProjectJourney.py +0 -0
  252. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testHostProjectPicker.py +0 -0
  253. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testIdleTimeoutSetting.py +0 -0
  254. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testInformationalFilesAreNotLevelTwoDefects.py +0 -0
  255. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testInlineFailuresCarryTheDiagnosis.py +0 -0
  256. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testLostClaimIsRecoverable.py +0 -0
  257. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testManifestCheckReportOnScreen.py +0 -0
  258. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testOpenInVsCodeAsksTheHostForTheLink.py +0 -0
  259. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testOutputContextNoteIsNeutral.py +0 -0
  260. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testPausedBadgeIndicator.py +0 -0
  261. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testPerFileZenodoSyncOpensTheModal.py +0 -0
  262. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testPickerScreensScroll.py +0 -0
  263. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testProjectBlockBadgesAreActionable.py +0 -0
  264. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testProjectBlockShowsItCanBeOpened.py +0 -0
  265. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testProjectSwitchShowsItsProgress.py +0 -0
  266. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testPromoteFromInsideJourney.py +0 -0
  267. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testPromoteToHostProjectJourney.py +0 -0
  268. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testProofTabLedgerFollowsTheGate.py +0 -0
  269. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testPushRunsTheVerifyThatProvesIt.py +0 -0
  270. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testQuarantineChipExplains.py +0 -0
  271. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testRegenerateWarnsBeforeItCosts.py +0 -0
  272. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testRemnantsGlyphAndPanel.py +0 -0
  273. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testRemoteFilesGroupByDisposition.py +0 -0
  274. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testRemoteSessionSaysWhere.py +0 -0
  275. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testReposPanelIsReachableWithAProjectOpen.py +0 -0
  276. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testReproducePublishedCard.py +0 -0
  277. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testResizeAndCopyHoldTogether.py +0 -0
  278. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testRightClickingTheHighlightCopiesIt.py +0 -0
  279. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testSaveFailureNamesItsReason.py +0 -0
  280. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testSelectingTextWhileAProgramHoldsTheMouse.py +0 -0
  281. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testSessionLifetimeSetting.py +0 -0
  282. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testSetUpDockerWizard.py +0 -0
  283. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testStartBannersBelongToTheirContainer.py +0 -0
  284. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testStepReorderUsesAPrivateDragType.py +0 -0
  285. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testSwitchingProjectsKeepsEachProjectsState.py +0 -0
  286. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testSymbolicTokenDependenciesOnScreen.py +0 -0
  287. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTerminalPaneSurvivesADrop.py +0 -0
  288. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTerminalScrollbackIsReachable.py +0 -0
  289. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheAgentMemoryAdviceIsTheServers.py +0 -0
  290. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheAiBlockCountsOnlyItsGatingRows.py +0 -0
  291. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheAiDeclarationEditsInPlace.py +0 -0
  292. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheAiDeclarationFileIsChosenOrGenerated.py +0 -0
  293. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheArchiveRowNamesWhereADepositGoes.py +0 -0
  294. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheArchiveRowsCarryTheirOwnConditions.py +0 -0
  295. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheAttestationNudgeIsActionable.py +0 -0
  296. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheAttestationNudgeIsAnEncouragement.py +0 -0
  297. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheContainerizingWindowFollowsTheHub.py +0 -0
  298. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheDriftBannerHidesForThisVisit.py +0 -0
  299. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheEnvelopeMirrorRowRenders.py +0 -0
  300. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheEnvironmentArchiveRowTellsItsStatesApart.py +0 -0
  301. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheGraphLeavesOtherViewersAlone.py +0 -0
  302. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheHelpNamesThisMachinesKey.py +0 -0
  303. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheImageTrustModalAsksBeforeAnUnbuiltImageRuns.py +0 -0
  304. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheLimitSettingsSayWhatWillHappen.py +0 -0
  305. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheLockRowKeepsItsStateAndSaysWhy.py +0 -0
  306. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheMemoryWatchTellsAKillOnce.py +0 -0
  307. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheMergeModalIsActuallyVisible.py +0 -0
  308. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheNextStepArrowPointsAtARealRow.py +0 -0
  309. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheOpenTimeReadsAreChained.py +0 -0
  310. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testThePickerKeepsItsCardsAcrossAPoll.py +0 -0
  311. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testThePinnedEnvironmentNoteIsTheServers.py +0 -0
  312. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheProjectBlockPaintsOnceAndCorrectly.py +0 -0
  313. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheProjectHubDiagnosesItself.py +0 -0
  314. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testThePromptRecordNamesWhatItLeftOut.py +0 -0
  315. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testThePromptRecordViewerShowsAGeminiRewind.py +0 -0
  316. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testThePromptRecordViewerShowsTheRecord.py +0 -0
  317. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheReproductionBadgeFollowsTheServer.py +0 -0
  318. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheResetAndCompareLoopIsReachable.py +0 -0
  319. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheResourceHelpDoesNotRecommendACap.py +0 -0
  320. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheRunMenuCanStartAnL3Verify.py +0 -0
  321. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheSetupWizardKeepsAndReports.py +0 -0
  322. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheSetupWizardSignsItselfIn.py +0 -0
  323. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheSignOffFollowsTheServer.py +0 -0
  324. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheTerminalResetGivesTheMouseBack.py +0 -0
  325. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheToolbarControlsStayOneCluster.py +0 -0
  326. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheVerificationShowsItsOutput.py +0 -0
  327. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheVerifyControlsSayTheyAreWorking.py +0 -0
  328. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheX11OptInIsOffByDefaultAndExcludesIsolation.py +0 -0
  329. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTileTooltipsSayWhatAClickDoes.py +0 -0
  330. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testUncoveredLibrariesOnScreen.py +0 -0
  331. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testUndecidedRepoPrompts.py +0 -0
  332. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testUndeclaredTestCategorySaysNotApplicable.py +0 -0
  333. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testUnintrospectableToastSaysWhatHappened.py +0 -0
  334. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testUnprovenEnvelopeIsNotAnAlarm.py +0 -0
  335. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testUnsignedTabSaysSo.py +0 -0
  336. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testUploadZoneNamesItsSourceMachine.py +0 -0
  337. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testVectorFigureNoteOnScreen.py +0 -0
  338. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testVerifyOffersCommittedRestore.py +0 -0
  339. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testVerifyRefusesBeforeItWarns.py +0 -0
  340. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testVerifyWarnsBeforeCopyingTheProject.py +0 -0
  341. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testViewRenderBaseline.py +0 -0
  342. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testViewersBelongToTheirProject.py +0 -0
  343. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testWizardStartsFromCommittedFiles.py +0 -0
  344. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testWorkflowFieldsCannotInjectMarkup.py +0 -0
  345. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testWorkspaceRootReachesThePanels.py +0 -0
  346. {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testZenodoRecordsModal.py +0 -0
  347. {vaibify-0.2.1 → vaibify-0.2.2}/tests/carrierStandDown.py +0 -0
  348. {vaibify-0.2.1 → vaibify-0.2.2}/tests/cliRunnerStreams.py +0 -0
  349. {vaibify-0.2.1 → vaibify-0.2.2}/tests/confinedReadScenarios.py +0 -0
  350. {vaibify-0.2.1 → vaibify-0.2.2}/tests/confinedWriteHarness.py +0 -0
  351. {vaibify-0.2.1 → vaibify-0.2.2}/tests/conftest.py +0 -0
  352. {vaibify-0.2.1 → vaibify-0.2.2}/tests/councilCredentialLiveHelpers.py +0 -0
  353. {vaibify-0.2.1 → vaibify-0.2.2}/tests/depositFaultServer.py +0 -0
  354. {vaibify-0.2.1 → vaibify-0.2.2}/tests/dockerConnectionDoubles.py +0 -0
  355. {vaibify-0.2.1 → vaibify-0.2.2}/tests/dockerRuntimeStub.py +0 -0
  356. {vaibify-0.2.1 → vaibify-0.2.2}/tests/guardCoverageSeed.json +0 -0
  357. {vaibify-0.2.1 → vaibify-0.2.2}/tests/hostCapabilityInventory.json +0 -0
  358. {vaibify-0.2.1 → vaibify-0.2.2}/tests/hostGitProbeCalls.py +0 -0
  359. {vaibify-0.2.1 → vaibify-0.2.2}/tests/hostGitProbeHarness.py +0 -0
  360. {vaibify-0.2.1 → vaibify-0.2.2}/tests/levelGateStubs.py +0 -0
  361. {vaibify-0.2.1 → vaibify-0.2.2}/tests/liveContainerLabels.py +0 -0
  362. {vaibify-0.2.1 → vaibify-0.2.2}/tests/localGitRemote.py +0 -0
  363. {vaibify-0.2.1 → vaibify-0.2.2}/tests/markerPollHarness.py +0 -0
  364. {vaibify-0.2.1 → vaibify-0.2.2}/tests/markerStateSupport.py +0 -0
  365. {vaibify-0.2.1 → vaibify-0.2.2}/tests/mutationInventory.json +0 -0
  366. {vaibify-0.2.1 → vaibify-0.2.2}/tests/perTestMarkerHarness.py +0 -0
  367. {vaibify-0.2.1 → vaibify-0.2.2}/tests/reproduceScriptHarness.py +0 -0
  368. {vaibify-0.2.1 → vaibify-0.2.2}/tests/reproductionSourceFixtures.py +0 -0
  369. {vaibify-0.2.1 → vaibify-0.2.2}/tests/rerunAssessmentHarness.py +0 -0
  370. {vaibify-0.2.1 → vaibify-0.2.2}/tests/sessionTokenTestHelper.py +0 -0
  371. {vaibify-0.2.1 → vaibify-0.2.2}/tests/shellCompletionHarness.py +0 -0
  372. {vaibify-0.2.1 → vaibify-0.2.2}/tests/snapshotProgramHarness.py +0 -0
  373. {vaibify-0.2.1 → vaibify-0.2.2}/tests/styleInventory.json +0 -0
  374. {vaibify-0.2.1 → vaibify-0.2.2}/tests/syncStatusFixtures.py +0 -0
  375. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testABusyCheckWaitsForATransientRecord.py +0 -0
  376. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testADivergedBranchIsOfferedAMerge.py +0 -0
  377. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testALockThatDeclaresNothing.py +0 -0
  378. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAMissingOutputIsNotAModifiedOne.py +0 -0
  379. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testARunKeepsThePassingTestsItRecordedLive.py +0 -0
  380. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testARunsOwnOutputsAreNotModifications.py +0 -0
  381. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAbandonHostJournal.py +0 -0
  382. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAcknowledgementKeepsThePollBaseline.py +0 -0
  383. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testActionCatalog.py +0 -0
  384. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testActionCommandsDispatchCoverage.py +0 -0
  385. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAdvancingALevelNeverLowersOne.py +0 -0
  386. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAdvertisedCommandsExist.py +0 -0
  387. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilCharter.py +0 -0
  388. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilContext.py +0 -0
  389. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilContextLive.py +0 -0
  390. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilEgressLive.py +0 -0
  391. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilEngine.py +0 -0
  392. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilFrontendContract.py +0 -0
  393. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilLedger.py +0 -0
  394. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilMultiProvider.py +0 -0
  395. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilProviders.py +0 -0
  396. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilProvidersLive.py +0 -0
  397. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilRegistry.py +0 -0
  398. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilRunnerLive.py +0 -0
  399. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilSnapshotScopeLive.py +0 -0
  400. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentEditsReachTheOpenTab.py +0 -0
  401. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentLaneEnforcement.py +0 -0
  402. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentLayerSeparation.py +0 -0
  403. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentRunsItsOwnProject.py +0 -0
  404. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentSessionBridge.py +0 -0
  405. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentUpdateStepAllowlist.py +0 -0
  406. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAiDeclarationAddStepAndDeterminismRoutes.py +0 -0
  407. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAiDeclarationFileLive.py +0 -0
  408. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAiDeclarationStepKind.py +0 -0
  409. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAiModelDeclarationIssues.py +0 -0
  410. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAiProvenanceStamp.py +0 -0
  411. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAlphaFacingTruthfulness.py +0 -0
  412. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAlreadyCommittedFileIsNotASyncFailure.py +0 -0
  413. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAmericanSpelling.py +0 -0
  414. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAnOutputAbsentFromTheManifestIsNeverVouchedFor.py +0 -0
  415. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAnalysisStack.py +0 -0
  416. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testApiClientContract.py +0 -0
  417. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArchiveDepositPlan.py +0 -0
  418. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArchiveFeatures.py +0 -0
  419. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArchiveMemberValidatorIsShared.py +0 -0
  420. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArchivePermanence.py +0 -0
  421. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArchiveTestsOptOutLeavesNoUnclearableRows.py +0 -0
  422. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArchivedAttestationIsPublic.py +0 -0
  423. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArxivClient.py +0 -0
  424. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArxivConfigureRoute.py +0 -0
  425. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArxivPathTraversal.py +0 -0
  426. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAssessedRerunLane.py +0 -0
  427. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAssessedRerunLive.py +0 -0
  428. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAttainingALevelDoesNotLowerAnother.py +0 -0
  429. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAttestationRevalidation.py +0 -0
  430. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAttributionLog.py +0 -0
  431. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAttributionLogConcurrentAppends.py +0 -0
  432. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAutoArchive.py +0 -0
  433. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBackgroundTasksAreReferenced.py +0 -0
  434. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBadgeState.py +0 -0
  435. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBaseImagePin.py +0 -0
  436. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBaseImagePinLive.py +0 -0
  437. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBasenameCollisionBlocksLevelTwo.py +0 -0
  438. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBatchedSmallFileRead.py +0 -0
  439. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBinaryDeclaration.py +0 -0
  440. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBinaryDrift.py +0 -0
  441. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBinaryStaleWarning.py +0 -0
  442. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBindMountDenyListReadsTheFilesystem.py +0 -0
  443. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBindMountRefusesAbsentSource.py +0 -0
  444. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBindMountValidator.py +0 -0
  445. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBlindSpotDispositions.py +0 -0
  446. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBlockersExplainEveryRefusal.py +0 -0
  447. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBootstrapEndpoint.py +0 -0
  448. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBothBuildLanesPreflightAlike.py +0 -0
  449. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBoundedPriorHash.py +0 -0
  450. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBreachOutcomeDeterminism.py +0 -0
  451. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBridgeGateway.py +0 -0
  452. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBroadHandlersPassControlPlaneRefusals.py +0 -0
  453. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBrowserCredentialPresentation.py +0 -0
  454. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBrowserLaneContract.py +0 -0
  455. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBrowserLaneParallelSafety.py +0 -0
  456. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBrowserSession.py +0 -0
  457. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildArchiveSnapshot.py +0 -0
  458. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildCacheInvalidation.py +0 -0
  459. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildErrorClassification.py +0 -0
  460. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildFailureModalFrontendContract.py +0 -0
  461. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildInputHash.py +0 -0
  462. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildKitRequirement.py +0 -0
  463. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildProgressRoutes.py +0 -0
  464. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildSilenceIsReported.py +0 -0
  465. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildTailKeepsTheReason.py +0 -0
  466. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCancelledRunLeavesItsLog.py +0 -0
  467. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCapabilitiesSurviveMalformedTypedReads.py +0 -0
  468. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCapabilityAuthorities.py +0 -0
  469. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCarrierIntentAudit.py +0 -0
  470. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCarrierModeDeclaration.py +0 -0
  471. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCgroupMemory.py +0 -0
  472. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testClaimRequiredRefusal.py +0 -0
  473. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testClaimRoutes.py +0 -0
  474. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testClaimSurvivesTheDisclosure.py +0 -0
  475. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testClaudeCodeRendererLive.py +0 -0
  476. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testClaudeCodeRendererVerdict.py +0 -0
  477. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliActionCommands.py +0 -0
  478. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliApiCommands.py +0 -0
  479. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliCommands.py +0 -0
  480. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliExecIsCleanedUp.py +0 -0
  481. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliExecLive.py +0 -0
  482. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliHubSessionMutationCoverage.py +0 -0
  483. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliMain.py +0 -0
  484. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliPipelineDispatch.py +0 -0
  485. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliStatusDestroy.py +0 -0
  486. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliSubcommands.py +0 -0
  487. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliTemplateProjectTowardLevelThreeLive.py +0 -0
  488. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoherentExport.py +0 -0
  489. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoherentExportLive.py +0 -0
  490. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testColimaHostagentLogProbe.py +0 -0
  491. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testColimaVersionPreflight.py +0 -0
  492. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandBuild.py +0 -0
  493. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandBuildBaseImagePin.py +0 -0
  494. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandBuildPipFlags.py +0 -0
  495. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandBuildPreflight.py +0 -0
  496. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandDoctor.py +0 -0
  497. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandGenerateStandards.py +0 -0
  498. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandReconcile.py +0 -0
  499. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandRevoke.py +0 -0
  500. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandSecret.py +0 -0
  501. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandSessions.py +0 -0
  502. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandSetupDocker.py +0 -0
  503. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandStartGui.py +0 -0
  504. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandStartPreflight.py +0 -0
  505. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandUtilities.py +0 -0
  506. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandUtilsDocker.py +0 -0
  507. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommitCarrier.py +0 -0
  508. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommittedFileRoutes.py +0 -0
  509. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommittedFiles.py +0 -0
  510. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testComparisonPolicyNotes.py +0 -0
  511. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCompletePathCommand.py +0 -0
  512. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCompletionIsStateOnly.py +0 -0
  513. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConcurrentProjectRuns.py +0 -0
  514. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConcurrentStateSaves.py +0 -0
  515. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfigFieldPreflight.py +0 -0
  516. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfigLoader.py +0 -0
  517. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfigurationFingerprint.py +0 -0
  518. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedContainerWrite.py +0 -0
  519. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedRead.py +0 -0
  520. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedReadParity.py +0 -0
  521. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedStreamingLive.py +0 -0
  522. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedStreamingWrite.py +0 -0
  523. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedTreeWrite.py +0 -0
  524. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedTreeWriteLive.py +0 -0
  525. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedWriteLive.py +0 -0
  526. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedWriteSignalDeath.py +0 -0
  527. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConftestCarriesTheContractVerbatim.py +0 -0
  528. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConftestLoaderKeepsCommittedFilesStable.py +0 -0
  529. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConftestManagerCoverage.py +0 -0
  530. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConftestManagerMarker.py +0 -0
  531. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConftestManagerVersioning.py +0 -0
  532. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConftestPerTestMarker.py +0 -0
  533. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConftestRefreshBeforeRun.py +0 -0
  534. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConftestRefreshSparesStepsWithoutTests.py +0 -0
  535. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConnectHubOwnershipGate.py +0 -0
  536. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConnectionCheck.py +0 -0
  537. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConnectionRouter.py +0 -0
  538. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerAcceptance.py +0 -0
  539. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerBuildIntegration.py +0 -0
  540. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerConfig.py +0 -0
  541. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerGit.py +0 -0
  542. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerLifecycleGating.py +0 -0
  543. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerLock.py +0 -0
  544. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerManager.py +0 -0
  545. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerManagerFull.py +0 -0
  546. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerMemoryRoute.py +0 -0
  547. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerMemoryWatch.py +0 -0
  548. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerMemoryWatchLive.py +0 -0
  549. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerOwnership.py +0 -0
  550. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerRepairIsLifecycleSafe.py +0 -0
  551. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerSessionResolution.py +0 -0
  552. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerSweepSparesHostProjects.py +0 -0
  553. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContentSecurityPolicy.py +0 -0
  554. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConversionLifecycle.py +0 -0
  555. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConvertConfigRewrite.py +0 -0
  556. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConvertToContainerRoute.py +0 -0
  557. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCopyDirectoryLive.py +0 -0
  558. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilAdmissionLogIsBounded.py +0 -0
  559. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilBaselineOffLoop.py +0 -0
  560. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCampaignIdentity.py +0 -0
  561. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCampaignName.py +0 -0
  562. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilChat.py +0 -0
  563. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilControllerIntegration.py +0 -0
  564. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilControllerLive.py +0 -0
  565. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilControllerSerialization.py +0 -0
  566. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCrashRecovery.py +0 -0
  567. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCredentialAdmission.py +0 -0
  568. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCredentialGate.py +0 -0
  569. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCredentialRoutes.py +0 -0
  570. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCredentialStore.py +0 -0
  571. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCredentialTestJob.py +0 -0
  572. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCredentialTestJobLive.py +0 -0
  573. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilDurableProvenance.py +0 -0
  574. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilEvidenceContract.py +0 -0
  575. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilExecutionPermissionNote.py +0 -0
  576. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilGateDecisions.py +0 -0
  577. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilGatewayAuthority.py +0 -0
  578. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilGatewayLive.py +0 -0
  579. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilIdleVeto.py +0 -0
  580. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilManifestConfinement.py +0 -0
  581. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilNotesAndDeliberationSummary.py +0 -0
  582. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilPause.py +0 -0
  583. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilPeerHubIsolation.py +0 -0
  584. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilPeerHubIsolationLive.py +0 -0
  585. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilPhaseAttempts.py +0 -0
  586. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilPhaseInFlight.py +0 -0
  587. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilReadiness.py +0 -0
  588. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilResume.py +0 -0
  589. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilRetry.py +0 -0
  590. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilRoutes.py +0 -0
  591. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilRunnerAccess.py +0 -0
  592. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilRunnerExecutableMounts.py +0 -0
  593. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilRunnerLimitsFollowTheDaemon.py +0 -0
  594. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilShutdownOrder.py +0 -0
  595. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilSnapshotCapacity.py +0 -0
  596. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilSnapshotCredentialExclusions.py +0 -0
  597. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilSnapshotRoutes.py +0 -0
  598. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilSnapshotScope.py +0 -0
  599. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilStoppingPoint.py +0 -0
  600. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilStorePersistence.py +0 -0
  601. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilStoreRetention.py +0 -0
  602. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilTurnBudgetsAreEnforced.py +0 -0
  603. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilWorkingSpaceReserve.py +0 -0
  604. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageBoost.py +0 -0
  605. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageBroadGaps.py +0 -0
  606. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCliBuildStartReproduce.py +0 -0
  607. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCliDoctorChecks.py +0 -0
  608. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCliDoctorCommand.py +0 -0
  609. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCliReconcileRepairOpen.py +0 -0
  610. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCliRemote.py +0 -0
  611. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCliStandardsAndActions.py +0 -0
  612. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCliUnreadableProjectFile.py +0 -0
  613. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreCommitCarrier.py +0 -0
  614. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreDataLoaders.py +0 -0
  615. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreEnvironmentDeletion.py +0 -0
  616. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreFileStatusManager.py +0 -0
  617. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreGitStatus.py +0 -0
  618. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreHostConnection.py +0 -0
  619. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreOperationJournal.py +0 -0
  620. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCorePinnedEnvironment.py +0 -0
  621. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreServerLifespan.py +0 -0
  622. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreSessionLifecycle.py +0 -0
  623. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreStartReservation.py +0 -0
  624. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreStateManager.py +0 -0
  625. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreTerminalContainment.py +0 -0
  626. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreTerminalSession.py +0 -0
  627. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilControllerRefusals.py +0 -0
  628. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilGatewayLifecycle.py +0 -0
  629. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilProviderAdapters.py +0 -0
  630. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilStateCampaign.py +0 -0
  631. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilStateChat.py +0 -0
  632. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilStateCredentialTest.py +0 -0
  633. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilStateEngine.py +0 -0
  634. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilStateRouteHelpers.py +0 -0
  635. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilStateRunnerAndEgress.py +0 -0
  636. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilStateSnapshotScope.py +0 -0
  637. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilStateStore.py +0 -0
  638. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerConnectionTransfers.py +0 -0
  639. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerConnectionTypedReads.py +0 -0
  640. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerContainerManager.py +0 -0
  641. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerDisposableContainer.py +0 -0
  642. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerDisposableSpecification.py +0 -0
  643. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerImageBuilder.py +0 -0
  644. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerLifecycleRepair.py +0 -0
  645. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerPinnedImage.py +0 -0
  646. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerRuntimeRemedies.py +0 -0
  647. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageGaps.py +0 -0
  648. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageHostControlHandlers.py +0 -0
  649. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageHostControlSocket.py +0 -0
  650. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityDeterminismAndRerun.py +0 -0
  651. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityDockerfileExport.py +0 -0
  652. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityEnvironmentSnapshot.py +0 -0
  653. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityImageAcquisition.py +0 -0
  654. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityImageDeposit.py +0 -0
  655. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityLevelGates.py +0 -0
  656. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityOverleafSync.py +0 -0
  657. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityRepoFiles.py +0 -0
  658. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityReproductionSource.py +0 -0
  659. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityScheduledReverify.py +0 -0
  660. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityZenodoArxiv.py +0 -0
  661. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesAEnvironmentArchive.py +0 -0
  662. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesAFalsification.py +0 -0
  663. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesAFileRoutes.py +0 -0
  664. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesAPipelineSideEffects.py +0 -0
  665. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesAPromotionRecovery.py +0 -0
  666. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesATerminal.py +0 -0
  667. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBAppFactory.py +0 -0
  668. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBBuild.py +0 -0
  669. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBGit.py +0 -0
  670. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBPipelineServer.py +0 -0
  671. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBRegistry.py +0 -0
  672. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBReplay.py +0 -0
  673. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBReproducibility.py +0 -0
  674. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBReproduction.py +0 -0
  675. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBStep.py +0 -0
  676. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBSync.py +0 -0
  677. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageTargeted.py +0 -0
  678. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCreationWizardRoutes.py +0 -0
  679. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCredentialIsolation.py +0 -0
  680. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCredentialRedactionIsBySpan.py +0 -0
  681. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCredentialRedactor.py +0 -0
  682. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCredentialRedactorMutationCoverage.py +0 -0
  683. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCredentialTestErrorsStayClean.py +0 -0
  684. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCrossMachineUserVerification.py +0 -0
  685. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCrossWorkflowStateErasure.py +0 -0
  686. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDaemonCapacity.py +0 -0
  687. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDaemonDiskPreflight.py +0 -0
  688. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDashboardColumnsFrontendContract.py +0 -0
  689. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDataArchiverExtended.py +0 -0
  690. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDataArchiverMutationCoverage.py +0 -0
  691. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDataLoaders.py +0 -0
  692. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDataLoadersCsvErrorPaths.py +0 -0
  693. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDataLoadersMutationCoverage.py +0 -0
  694. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDataLoadersStayOutOfTheHub.py +0 -0
  695. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDataPreviewInjection.py +0 -0
  696. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeclarationFreshness.py +0 -0
  697. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeclarationPushMutationCoverage.py +0 -0
  698. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeclarationStepHonorsTheSlugContract.py +0 -0
  699. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeclaredGuaranteesAreAnchored.py +0 -0
  700. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeclaredPackagesMatchTheImage.py +0 -0
  701. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeleteEnvironmentRoute.py +0 -0
  702. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDependencyDismissalRoute.py +0 -0
  703. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDependencyPinning.py +0 -0
  704. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDependencyPinningMutationCoverage.py +0 -0
  705. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDependencyReconciliationGatesLevelOne.py +0 -0
  706. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDependencyScan.py +0 -0
  707. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDependencyScanRoutes.py +0 -0
  708. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDependencyScanner.py +0 -0
  709. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDepositIsNotDownloadedTwice.py +0 -0
  710. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDepositSeams.py +0 -0
  711. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeterminismEnvHonesty.py +0 -0
  712. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeterminismGate.py +0 -0
  713. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeterminismRowMatchesItsGate.py +0 -0
  714. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeterministicGeneratorIsAgentSafe.py +0 -0
  715. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeterministicTestGenerator.py +0 -0
  716. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDigestTimestampNaming.py +0 -0
  717. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDirectTestRunsRestoreTheMarkerPlugin.py +0 -0
  718. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDirectoryListing.py +0 -0
  719. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDiskSpace.py +0 -0
  720. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDisposableContainerLive.py +0 -0
  721. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDisposableSurvivorReclaim.py +0 -0
  722. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerBinaryIsolation.py +0 -0
  723. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerBuild.py +0 -0
  724. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerConnection.py +0 -0
  725. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerConnectionExecResult.py +0 -0
  726. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerConnectionLive.py +0 -0
  727. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerContext.py +0 -0
  728. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerErrorDiagnosis.py +0 -0
  729. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerHostContextRoundTrip.py +0 -0
  730. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerLiveDaemonRequirement.py +0 -0
  731. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerRuntimeClassification.py +0 -0
  732. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerStatusEndpoint.py +0 -0
  733. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerfileComposition.py +0 -0
  734. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerfileHardening.py +0 -0
  735. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerfileLint.py +0 -0
  736. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerfileLintMutationCoverage.py +0 -0
  737. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerfileNetworkRetries.py +0 -0
  738. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerfileProvenance.py +0 -0
  739. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDocsMatchWorkflowTriggers.py +0 -0
  740. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDocsPublishedLinksResolve.py +0 -0
  741. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDoctorFindingsNameACommand.py +0 -0
  742. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDoctorInterpreterArchitecture.py +0 -0
  743. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDoctorIsReadOnly.py +0 -0
  744. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDoctorNetworkGraph.py +0 -0
  745. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDoctorNetworkLive.py +0 -0
  746. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDoctorProjectScope.py +0 -0
  747. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDoctorScopesAndExitCodes.py +0 -0
  748. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDoctorShellCompletions.py +0 -0
  749. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDownloadRoutes.py +0 -0
  750. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDraftRoutes.py +0 -0
  751. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDurableFile.py +0 -0
  752. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointAdvertisedPaths.py +0 -0
  753. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointAgentDocLinks.py +0 -0
  754. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointBuildBinary.py +0 -0
  755. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointCallsOnlyFunctionsItDefines.py +0 -0
  756. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointClaudeSettings.py +0 -0
  757. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointGitCredentials.py +0 -0
  758. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointInstructionPrecedence.py +0 -0
  759. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointMigration.py +0 -0
  760. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointPipNotAPackage.py +0 -0
  761. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointReadinessMarker.py +0 -0
  762. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointRepairsBrokenDocLinks.py +0 -0
  763. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointRepoRefs.py +0 -0
  764. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointResourcesGuidance.py +0 -0
  765. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointRootPhasePath.py +0 -0
  766. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvelopeImageCurrency.py +0 -0
  767. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvelopeRegenerationReportsItsDelta.py +0 -0
  768. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvelopeSnapshot.py +0 -0
  769. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvelopeTierResultsAreVisible.py +0 -0
  770. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentArchive.py +0 -0
  771. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentArchivePromotion.py +0 -0
  772. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentArchiveRoutes.py +0 -0
  773. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentArchiveStop.py +0 -0
  774. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentDeletion.py +0 -0
  775. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentDrift.py +0 -0
  776. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentInfoRoute.py +0 -0
  777. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentSnapshot.py +0 -0
  778. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentSnapshotMutationCoverage.py +0 -0
  779. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEphemeralStore.py +0 -0
  780. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEveryLevelTwoSyncRefusalIsNamedByABlocker.py +0 -0
  781. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testExecArgumentBudget.py +0 -0
  782. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testExecSocketExchange.py +0 -0
  783. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testExecutionProfiles.py +0 -0
  784. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testExecutionProfilesLive.py +0 -0
  785. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testExhaustiveCoverage.py +0 -0
  786. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testExitCodesAreExplained.py +0 -0
  787. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testExitedContainerEvidence.py +0 -0
  788. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testExplicitReleaseAuthority.py +0 -0
  789. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFailedSaveGroundTruthFrontendContract.py +0 -0
  790. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFalsificationAttestation.py +0 -0
  791. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFalsificationAttestationMutationCoverage.py +0 -0
  792. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFalsificationRoutesCoverage.py +0 -0
  793. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFalsificationRoutesMutationCoverage.py +0 -0
  794. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFalsificationSharding.py +0 -0
  795. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFigureServer.py +0 -0
  796. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFigureViewerFrontendContract.py +0 -0
  797. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileBrowserEscapingFrontendContract.py +0 -0
  798. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileEdgesAreSafe.py +0 -0
  799. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileEndpointsAndMiddleware.py +0 -0
  800. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileStatusManager.py +0 -0
  801. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileStatusManagerInvalidation.py +0 -0
  802. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileStatusManagerProofAdditions.py +0 -0
  803. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileStatusManagerStaleness.py +0 -0
  804. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileStatusManagerTimestamps.py +0 -0
  805. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileTransfer.py +0 -0
  806. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFinalCoverageGaps.py +0 -0
  807. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testForcePushArgumentOrder.py +0 -0
  808. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testForeignManifestGuard.py +0 -0
  809. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testForwardedHostPortFree.py +0 -0
  810. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFreshnessUncheckedLevelOne.py +0 -0
  811. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFunctionLengthStatement.py +0 -0
  812. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGatesRunOnEveryPullRequest.py +0 -0
  813. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGenerateReproducibilityEnvelope.py +0 -0
  814. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGeneratedFileNamesAreStepNamed.py +0 -0
  815. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGitBadgesPartialRenderFrontendContract.py +0 -0
  816. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGitRoutesProjectRepoSync.py +0 -0
  817. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGitRoutesRemoteUrl.py +0 -0
  818. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGitStatus.py +0 -0
  819. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGithubAuth.py +0 -0
  820. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGithubBadgeMeansAgreementNotCleanliness.py +0 -0
  821. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGithubMirror.py +0 -0
  822. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGithubRemoteIsDerivedNotDeclared.py +0 -0
  823. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGithubRoutesProjectRepoCwd.py +0 -0
  824. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGithubTokenBinding.py +0 -0
  825. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGithubTokenResolution.py +0 -0
  826. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGithubWorkflow.py +0 -0
  827. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGracefulExitsChecker.py +0 -0
  828. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGuiBuildWarnsAboutTheMachine.py +0 -0
  829. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGuiLaunchHonesty.py +0 -0
  830. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGuiSignalsItsCategory.py +0 -0
  831. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGuiTemplateManager.py +0 -0
  832. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHarnessHookMutationCoverage.py +0 -0
  833. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHashStaleness.py +0 -0
  834. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHashStalenessCoverage.py +0 -0
  835. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHashStalenessIntegration.py +0 -0
  836. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHashStalenessManifest.py +0 -0
  837. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostBusyOracle.py +0 -0
  838. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostCancel.py +0 -0
  839. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostCapabilityInventory.py +0 -0
  840. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostClaimPath.py +0 -0
  841. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostCliRunsThroughTheHub.py +0 -0
  842. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostCliSession.py +0 -0
  843. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostConfinedRead.py +0 -0
  844. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostConnection.py +0 -0
  845. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostControlChannel.py +0 -0
  846. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostCpuAccounting.py +0 -0
  847. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostDeterminismEnvironment.py +0 -0
  848. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostGitAndReposPanel.py +0 -0
  849. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostGitSafetyProbes.py +0 -0
  850. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostHeaderCheck.py +0 -0
  851. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostIncidents.py +0 -0
  852. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostModeContainerOnlyRefusals.py +0 -0
  853. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostModeDaemonGate.py +0 -0
  854. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostModeHonestyGates.py +0 -0
  855. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostModeProjectRoots.py +0 -0
  856. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostPathGuardCorpus.py +0 -0
  857. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostPrerequisiteReport.py +0 -0
  858. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostProjectAsksGitWithoutTimeoutBinary.py +0 -0
  859. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostQuarantineSurface.py +0 -0
  860. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostReadNeedsDirectoryRelativeAccess.py +0 -0
  861. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostResidueStaysInsideOneProject.py +0 -0
  862. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostScratchSweeper.py +0 -0
  863. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostSnapshotTwin.py +0 -0
  864. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostStreamingWrite.py +0 -0
  865. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostSubprocessConfinement.py +0 -0
  866. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostTerminal.py +0 -0
  867. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostTransfer.py +0 -0
  868. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHubAppGovernance.py +0 -0
  869. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHubDoctorRoute.py +0 -0
  870. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHubIdleWatchdog.py +0 -0
  871. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHubPortRegistry.py +0 -0
  872. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHubSessionCoverage.py +0 -0
  873. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHubShutdownSignals.py +0 -0
  874. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testIdleWatchdogOffLoop.py +0 -0
  875. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageAcquisition.py +0 -0
  876. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageArchiveVersioning.py +0 -0
  877. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageBuilder.py +0 -0
  878. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageBuilderExtended.py +0 -0
  879. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageLocale.py +0 -0
  880. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageTrustAnsweredForThePin.py +0 -0
  881. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageTrustCommandLine.py +0 -0
  882. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageTrustGuardsTheLaunch.py +0 -0
  883. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageTrustLive.py +0 -0
  884. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageTrustProvenanceRows.py +0 -0
  885. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageTrustTextHasOneHome.py +0 -0
  886. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInitRegistrationOutcome.py +0 -0
  887. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInitTemplateRepositories.py +0 -0
  888. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInjectionGuards.py +0 -0
  889. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInlineCodeCommandsPassPreflight.py +0 -0
  890. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInputDataStaleness.py +0 -0
  891. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInstallScriptAgents.py +0 -0
  892. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInteractivePauseSurvivesReconnect.py +0 -0
  893. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInteractiveSteps.py +0 -0
  894. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testIntrospectionScriptGaps.py +0 -0
  895. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testIntrospectionTfrecord.py +0 -0
  896. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInventoryRepositoryGitSurface.py +0 -0
  897. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testIsolationGating.py +0 -0
  898. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testKeepAliveManager.py +0 -0
  899. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testKeepAliveSpawnLedger.py +0 -0
  900. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testKeychainIsolationCrossesProcesses.py +0 -0
  901. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testL3Attestation.py +0 -0
  902. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testL3AttestationMutationCoverage.py +0 -0
  903. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLatexAnnotation.py +0 -0
  904. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLatexConnectorExtended.py +0 -0
  905. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLeaseSessionBinding.py +0 -0
  906. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLedgerFormatIsCanonical.py +0 -0
  907. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLegacyBuilderLive.py +0 -0
  908. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelBlockers.py +0 -0
  909. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelCellsNeverOverstate.py +0 -0
  910. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelContiguousClimbContract.py +0 -0
  911. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGateL2Arxiv.py +0 -0
  912. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGateL2Blockers.py +0 -0
  913. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGateL3.py +0 -0
  914. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGateL3Blockers.py +0 -0
  915. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGateL3EndToEnd.py +0 -0
  916. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGatesBlockerCache.py +0 -0
  917. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGatesCoverage2.py +0 -0
  918. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGatesRefusalPropagation.py +0 -0
  919. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGatesStepClassifiers.py +0 -0
  920. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelReportCoverage.py +0 -0
  921. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelRoutes.py +0 -0
  922. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelTwoRechecksLocalBytes.py +0 -0
  923. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLifecycleLogging.py +0 -0
  924. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLifecycleRouteAuthority.py +0 -0
  925. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLinuxDockerPreflight.py +0 -0
  926. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testListModules.py +0 -0
  927. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLiveLanesLabelWhatTheyCreate.py +0 -0
  928. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLiveSessionBoundary.py +0 -0
  929. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLlmInvokerBranches.py +0 -0
  930. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLockInputFallsBackToVaibifyRequirements.py +0 -0
  931. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLoggingHygiene.py +0 -0
  932. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMachineAttention.py +0 -0
  933. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMakeDirectory.py +0 -0
  934. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testManifestCheck.py +0 -0
  935. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testManifestCheckReport.py +0 -0
  936. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testManifestCompletenessAsksTheWriter.py +0 -0
  937. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testManifestOwnershipFromSnapshotFacts.py +0 -0
  938. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testManifestPaths.py +0 -0
  939. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testManifestVerifyRoute.py +0 -0
  940. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testManifestWriter.py +0 -0
  941. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testManifestWriterMutationCoverage.py +0 -0
  942. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerAppliedToUnnecessaryStep.py +0 -0
  943. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerBookkeepingIsIgnored.py +0 -0
  944. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerDigestVerdicts.py +0 -0
  945. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerFreshnessLive.py +0 -0
  946. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerFreshnessPoll.py +0 -0
  947. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerHashesTemplatedPlots.py +0 -0
  948. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerLevelGate.py +0 -0
  949. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerNamespaceFromLoadedWorkflow.py +0 -0
  950. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerStaleness.py +0 -0
  951. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMatplotlibSaltIsolation.py +0 -0
  952. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMatplotlibSaltIsolationLive.py +0 -0
  953. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMissingFileBadges.py +0 -0
  954. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testModelIdsAreHeldToPlainShapes.py +0 -0
  955. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testModuleAttributeReferencesResolve.py +0 -0
  956. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMtimeCache.py +0 -0
  957. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMutationAttribution.py +0 -0
  958. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMutationBoundary.py +0 -0
  959. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMutationInventory.py +0 -0
  960. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMutationScannerTypeCheckingExemption.py +0 -0
  961. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testNarrowLlmFallback.py +0 -0
  962. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testNetworkEfficiencyFrontendContract.py +0 -0
  963. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testNoProjectOpenRefusal.py +0 -0
  964. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testNoQuoteBlindEscaperInTheFrontend.py +0 -0
  965. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testNoUnforwardedUrlsInRemoteSession.py +0 -0
  966. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testObtainedBaseStacksLive.py +0 -0
  967. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOldMarkerReadsAsItAlwaysDid.py +0 -0
  968. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOomAttribution.py +0 -0
  969. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOperationJournal.py +0 -0
  970. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOperationJournalMutationCoverage.py +0 -0
  971. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOrphanTransition.py +0 -0
  972. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOrphanedPublishMachinery.py +0 -0
  973. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOrphanedTerminalsAreEnded.py +0 -0
  974. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOrphanedWriteTemporaries.py +0 -0
  975. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOutputFreshnessByContent.py +0 -0
  976. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOutputProvenance.py +0 -0
  977. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverlayBannersReadTheStepFirst.py +0 -0
  978. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafBehavior.py +0 -0
  979. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafChipAgreesWithRows.py +0 -0
  980. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafFetchHashes.py +0 -0
  981. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafMirror.py +0 -0
  982. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafPushProvenance.py +0 -0
  983. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafSync.py +0 -0
  984. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafSyncCoverage.py +0 -0
  985. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafSyncExtended.py +0 -0
  986. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafTokenStaysOffTheCommandLine.py +0 -0
  987. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPackagedResources.py +0 -0
  988. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPathContract.py +0 -0
  989. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPathTraversal.py +0 -0
  990. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPathValidation.py +0 -0
  991. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPendingPromotionRecord.py +0 -0
  992. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPerContainerStateLifecycle.py +0 -0
  993. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPerTestMarkerEndToEnd.py +0 -0
  994. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPidFileRegistry.py +0 -0
  995. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPinnedEnvironmentDrift.py +0 -0
  996. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPinnedImageAcquisition.py +0 -0
  997. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineLogAppend.py +0 -0
  998. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineLoggerCoverage.py +0 -0
  999. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineLoggerRotation.py +0 -0
  1000. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRoutesCoverage.py +0 -0
  1001. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRoutesDiagnostics.py +0 -0
  1002. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRoutesEtag.py +0 -0
  1003. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRoutesManifestText.py +0 -0
  1004. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRoutesMutationCoverage.py +0 -0
  1005. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRoutesShaCache.py +0 -0
  1006. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerBranches.py +0 -0
  1007. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerCoverage.py +0 -0
  1008. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerErrors.py +0 -0
  1009. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerExtended.py +0 -0
  1010. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerFull.py +0 -0
  1011. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerHeartbeat.py +0 -0
  1012. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerMutationCoverage.py +0 -0
  1013. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerOffLoop.py +0 -0
  1014. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerPure.py +0 -0
  1015. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerStepsAndLog.py +0 -0
  1016. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerStreamingEmitter.py +0 -0
  1017. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineServerAgentAuth.py +0 -0
  1018. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineServerCoverage.py +0 -0
  1019. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineServerFull.py +0 -0
  1020. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineServerGaps.py +0 -0
  1021. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineServerLifespan.py +0 -0
  1022. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineServerPure.py +0 -0
  1023. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineServerRoutes.py +0 -0
  1024. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineServerTaskEviction.py +0 -0
  1025. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineState.py +0 -0
  1026. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineStateLiveness.py +0 -0
  1027. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineStateMock.py +0 -0
  1028. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineStateWriter.py +0 -0
  1029. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineTestRunnerCoverage.py +0 -0
  1030. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineUtilsScaling.py +0 -0
  1031. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPlotRoutes.py +0 -0
  1032. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPoisonRecord.py +0 -0
  1033. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPortAllocator.py +0 -0
  1034. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPreferencesRoutes.py +0 -0
  1035. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPreferencesStore.py +0 -0
  1036. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPreflightNamesTheCauseNotTheCascade.py +0 -0
  1037. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPreflightResult.py +0 -0
  1038. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPreflightValidation.py +0 -0
  1039. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProcessLiveness.py +0 -0
  1040. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectAdoption.py +0 -0
  1041. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectAdoptionFalsification.py +0 -0
  1042. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectBookkeepingSidecar.py +0 -0
  1043. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectConfigExtended.py +0 -0
  1044. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectContextRoutes.py +0 -0
  1045. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectDepositPromotion.py +0 -0
  1046. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectHeaderNeverOutranksItsRows.py +0 -0
  1047. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectHubRefusals.py +0 -0
  1048. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectRepoDetection.py +0 -0
  1049. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectScopedAgentActions.py +0 -0
  1050. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectScopedRegistries.py +0 -0
  1051. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectSwitchWithinContainer.py +0 -0
  1052. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPromoteToHostProjectRoute.py +0 -0
  1053. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPromotionRecovery.py +0 -0
  1054. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPromptRecordAgentsLive.py +0 -0
  1055. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPromptRecordManager.py +0 -0
  1056. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPromptRecordPollFrontendContract.py +0 -0
  1057. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPromptRecordPublishesNoRawDigestOracle.py +0 -0
  1058. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPromptRecordViewer.py +0 -0
  1059. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProofGateLevel1.py +0 -0
  1060. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProofLadderUncoveredLines.py +0 -0
  1061. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProofLevelInPollResponse.py +0 -0
  1062. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProvenanceCommitDuringRun.py +0 -0
  1063. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProvenanceContractMutationCoverage.py +0 -0
  1064. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProvenanceTaint.py +0 -0
  1065. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProvenanceTracker.py +0 -0
  1066. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProvenanceTrackerMutationCoverage.py +0 -0
  1067. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProviderApiTransport.py +0 -0
  1068. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPublicationScopeSeparatesTheLevels.py +0 -0
  1069. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPublishedReproductionWorkflow.py +0 -0
  1070. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPullFromContainer.py +0 -0
  1071. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPullManuscriptRoute.py +0 -0
  1072. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPythonPackagePreflight.py +0 -0
  1073. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testQuarantineDetailRoute.py +0 -0
  1074. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testQuarantineRefusalNamesItsCause.py +0 -0
  1075. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testQuickStartJourneyThroughRoutesLive.py +0 -0
  1076. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testQuickStartReaderJourneyLive.py +0 -0
  1077. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRandomnessLint.py +0 -0
  1078. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReadOnlyCouncilRunsNoCommands.py +0 -0
  1079. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReaderRecordIsNeverCommitted.py +0 -0
  1080. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReaderRunReplaysRecordedEpoch.py +0 -0
  1081. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReadinessRoute.py +0 -0
  1082. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReclaimNeverTreatsANameAsAnId.py +0 -0
  1083. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReconcileNothingToReconcileExitsZero.py +0 -0
  1084. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReconcileQuarantineRoute.py +0 -0
  1085. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReconciliation.py +0 -0
  1086. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReconciliationMutationCoverage.py +0 -0
  1087. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReconnectWindowContract.py +0 -0
  1088. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRecordedEpochReplay.py +0 -0
  1089. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRefactoringCoverage.py +0 -0
  1090. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRefreshRemotes.py +0 -0
  1091. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRefuseUnexecutedCommandFields.py +0 -0
  1092. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRefusedArchiveConversionChangesNothing.py +0 -0
  1093. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRegistryContainerRecognition.py +0 -0
  1094. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRegistryIsNotAnL3Requirement.py +0 -0
  1095. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRegistryManager.py +0 -0
  1096. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRegistryRemovalIsLeaseEnforced.py +0 -0
  1097. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRegistryRouteLockState.py +0 -0
  1098. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRegistryRoutes.py +0 -0
  1099. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRegistryRoutesCoverage.py +0 -0
  1100. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemainingGaps.py +0 -0
  1101. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemnantReapers.py +0 -0
  1102. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemnantRemovalLive.py +0 -0
  1103. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemnantRoutes.py +0 -0
  1104. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemnantScanner.py +0 -0
  1105. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemnantScannerLive.py +0 -0
  1106. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteBadgeRefresh.py +0 -0
  1107. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteClient.py +0 -0
  1108. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteDataMarker.py +0 -0
  1109. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteDataOverwriteGate.py +0 -0
  1110. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteDataProvenance.py +0 -0
  1111. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteDataRecordIdentity.py +0 -0
  1112. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteHelper.py +0 -0
  1113. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteProtocol.py +0 -0
  1114. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteReattachment.py +0 -0
  1115. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteSessionLane.py +0 -0
  1116. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteSshLane.py +0 -0
  1117. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemotesMigration.py +0 -0
  1118. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRenameKeepsPerTestMarkerSections.py +0 -0
  1119. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReplayGate.py +0 -0
  1120. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReplayRoutes.py +0 -0
  1121. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRepoFiles.py +0 -0
  1122. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRepoFilesMutationCoverage.py +0 -0
  1123. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRepoRoutes.py +0 -0
  1124. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRepoStatusTypedRead.py +0 -0
  1125. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReposPanelFrontendContract.py +0 -0
  1126. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReposPollingFrontendContract.py +0 -0
  1127. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRepositoryPreflight.py +0 -0
  1128. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceCommand.py +0 -0
  1129. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceCommandAttestation.py +0 -0
  1130. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceFromSnapshot.py +0 -0
  1131. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceFromSource.py +0 -0
  1132. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproducePublishedFrontendContract.py +0 -0
  1133. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceRerunHashCompare.py +0 -0
  1134. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceScriptContainerHalf.py +0 -0
  1135. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceScriptDeterminism.py +0 -0
  1136. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceScriptGateRejectsResidualTokens.py +0 -0
  1137. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceScriptGenerator.py +0 -0
  1138. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceScriptParity.py +0 -0
  1139. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceScriptParityLive.py +0 -0
  1140. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceTierParity.py +0 -0
  1141. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceTierThreeRemedy.py +0 -0
  1142. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproducedManifest.py +0 -0
  1143. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproducibilityRoutes.py +0 -0
  1144. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproductionLabelInPollResponse.py +0 -0
  1145. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproductionLive.py +0 -0
  1146. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproductionProgress.py +0 -0
  1147. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproductionRecordBindsItsEvidence.py +0 -0
  1148. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproductionRecordPlatform.py +0 -0
  1149. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproductionReport.py +0 -0
  1150. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproductionRoutes.py +0 -0
  1151. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproductionSource.py +0 -0
  1152. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRequirementsMirrorNamesWhatItDrops.py +0 -0
  1153. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunAssessmentEvidence.py +0 -0
  1154. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunAssessmentImageCheck.py +0 -0
  1155. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunAssessmentPrecedence.py +0 -0
  1156. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunAssessmentStructure.py +0 -0
  1157. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunAssessmentTranscription.py +0 -0
  1158. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunDiagnostics.py +0 -0
  1159. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunHashCompareMutationCoverage.py +0 -0
  1160. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunProcedureGuards.py +0 -0
  1161. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunRefusesUnexecutedSteps.py +0 -0
  1162. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunRegeneratesWhatItGrades.py +0 -0
  1163. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunVerifiesWhatItRan.py +0 -0
  1164. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResearcherActions.py +0 -0
  1165. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResourceAdequacy.py +0 -0
  1166. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResourceLimitDrift.py +0 -0
  1167. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResourceLimitLiveApply.py +0 -0
  1168. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResourceLimitLiveApplyLive.py +0 -0
  1169. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResourceLimitRoundTrip.py +0 -0
  1170. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResourceLimitSettings.py +0 -0
  1171. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResourceLimits.py +0 -0
  1172. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResourceMonitor.py +0 -0
  1173. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResumableDownload.py +0 -0
  1174. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRouteContextCoverage.py +0 -0
  1175. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRoutesRefuseCallerPathsOutsideTheirRoot.py +0 -0
  1176. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRowAndGateAgreeOnManifestFreshness.py +0 -0
  1177. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRunAllRespectsDisabledFrontendContract.py +0 -0
  1178. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRunFrameWithABadStepIsRefusedNotFatal.py +0 -0
  1179. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRunStateWireCarriesStepResults.py +0 -0
  1180. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRuntimeSetupFacts.py +0 -0
  1181. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRuntimeSetupPlan.py +0 -0
  1182. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRuntimeSetupRoutes.py +0 -0
  1183. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRuntimeSetupRunner.py +0 -0
  1184. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSafeReaper.py +0 -0
  1185. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSandboxArchiveWithholdsLevel3.py +0 -0
  1186. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testScheduledReverify.py +0 -0
  1187. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSecretAvailability.py +0 -0
  1188. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSecretFilesFollowTheirContainer.py +0 -0
  1189. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSecretManager.py +0 -0
  1190. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSecretNamesWithSeparatorsCanBeStagedAndMounted.py +0 -0
  1191. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSecurityBoundaryInvariants.py +0 -0
  1192. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSeededFolderRepositoryList.py +0 -0
  1193. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSeededFolderRepositoryListLive.py +0 -0
  1194. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSemanticWorkflowFingerprint.py +0 -0
  1195. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testServerLaunchContract.py +0 -0
  1196. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testServerMiddlewareCoverage.py +0 -0
  1197. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionCapSetting.py +0 -0
  1198. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionCardinality.py +0 -0
  1199. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionEndingNotice.py +0 -0
  1200. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionLaneFollowsClaim.py +0 -0
  1201. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionLifecycleEvaluator.py +0 -0
  1202. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionLifecycleFoundation.py +0 -0
  1203. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionRegistry.py +0 -0
  1204. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionRenewalAndWarningBands.py +0 -0
  1205. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionSpawnRoute.py +0 -0
  1206. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSetupWizard.py +0 -0
  1207. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSetupWizardIsGuarded.py +0 -0
  1208. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSetupWizardKeepsWhatItDoesNotShow.py +0 -0
  1209. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testShadowContainerAdmission.py +0 -0
  1210. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testShadowLaneLockFiles.py +0 -0
  1211. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testShadowNamesTheImageGap.py +0 -0
  1212. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testShadowRerun.py +0 -0
  1213. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testShellCompletionInsertion.py +0 -0
  1214. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testShellCompletionPositions.py +0 -0
  1215. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testShellCompletionWiring.py +0 -0
  1216. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testShellSetupVersioning.py +0 -0
  1217. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSignOffCapturesPlotBytes.py +0 -0
  1218. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSignOffIsDatedByTheContainerClock.py +0 -0
  1219. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSignOffReconciliationByContent.py +0 -0
  1220. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSkillIntegrity.py +0 -0
  1221. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSleepPreventionFollowsWork.py +0 -0
  1222. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSnapshotAnswersBlobShaAndMissing.py +0 -0
  1223. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSnapshotCacheRacyClean.py +0 -0
  1224. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSnapshotNamesStayInsideTheRoot.py +0 -0
  1225. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSpawnedWindowSignsIn.py +0 -0
  1226. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStaleCapturedWorkflow.py +0 -0
  1227. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStaleOutputAdvisoryIsNotADeadPayload.py +0 -0
  1228. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStaleOutputDetector.py +0 -0
  1229. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStaleReproduceScriptIsNotRunnable.py +0 -0
  1230. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStandardsGenerator.py +0 -0
  1231. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStandardsLoader.py +0 -0
  1232. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStartLaunchCommands.py +0 -0
  1233. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStartPreflightExtensions.py +0 -0
  1234. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStartReservation.py +0 -0
  1235. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStartReservationFalsification.py +0 -0
  1236. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStateContract.py +0 -0
  1237. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStateDirectoryIsolation.py +0 -0
  1238. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStateLevelHighWater.py +0 -0
  1239. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStateManager.py +0 -0
  1240. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStateRecovery.py +0 -0
  1241. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStateWriteLock.py +0 -0
  1242. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStaticAnalysisClean.py +0 -0
  1243. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStatusContextLine.py +0 -0
  1244. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepDirectoryValidator.py +0 -0
  1245. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepEditFingerprintFrontendContract.py +0 -0
  1246. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepEditorFingerprintLifetimeFrontendContract.py +0 -0
  1247. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepGateAgreesWithManifestWriter.py +0 -0
  1248. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepLabels.py +0 -0
  1249. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepLevelStates.py +0 -0
  1250. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepListRenderFrontendContract.py +0 -0
  1251. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepRename.py +0 -0
  1252. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepRenameCascadeMutationCoverage.py +0 -0
  1253. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepRenameCascadeReachesEverything.py +0 -0
  1254. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepRenameMoveCoverage.py +0 -0
  1255. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepRendererBlockerGlyphs.py +0 -0
  1256. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepRoutes.py +0 -0
  1257. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepSlugContract.py +0 -0
  1258. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepSlugMirrorEquivalence.py +0 -0
  1259. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepTestLogDirectory.py +0 -0
  1260. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepUpdateDestructiveGuard.py +0 -0
  1261. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepVerdictFromRuns.py +0 -0
  1262. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStochasticDetector.py +0 -0
  1263. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStopByRunMarkerLive.py +0 -0
  1264. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStopDoesNotNeedTheSession.py +0 -0
  1265. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStyleInvariants.py +0 -0
  1266. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSupervisionAnchor.py +0 -0
  1267. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSupervisionChipFrontendContract.py +0 -0
  1268. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSupervisionWatchdog.py +0 -0
  1269. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSymbolicStepReferencesAreChecked.py +0 -0
  1270. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncDispatcherCoverage.py +0 -0
  1271. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncDispatcherExtended.py +0 -0
  1272. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncDispatcherGaps.py +0 -0
  1273. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncDispatcherMutationCoverage.py +0 -0
  1274. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncDispatcherPure.py +0 -0
  1275. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncEpoch.py +0 -0
  1276. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncEpochReachesTheIdleDashboard.py +0 -0
  1277. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncErrorClassification.py +0 -0
  1278. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncErrors.py +0 -0
  1279. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncProjectionCoversEveryPublishedPath.py +0 -0
  1280. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncRoutesPushHardening.py +0 -0
  1281. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncRoutesPushIdempotency.py +0 -0
  1282. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncTestGenFull.py +0 -0
  1283. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncVerifyRoutes.py +0 -0
  1284. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSystemPackagePreflight.py +0 -0
  1285. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSystemPackageValidation.py +0 -0
  1286. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTemplateManager.py +0 -0
  1287. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTemplatedPlotMarkerInAContainerLive.py +0 -0
  1288. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalContainment.py +0 -0
  1289. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalContainmentLive.py +0 -0
  1290. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalPromptReset.py +0 -0
  1291. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalPromptResetLive.py +0 -0
  1292. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalRedialContract.py +0 -0
  1293. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalResizeOrdering.py +0 -0
  1294. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalRoutesCoverage.py +0 -0
  1295. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalSelectionContrast.py +0 -0
  1296. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalSession.py +0 -0
  1297. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalSessionExtended.py +0 -0
  1298. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalStartWindowIsDrained.py +0 -0
  1299. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalTeardownSurvivesShutdownCancellation.py +0 -0
  1300. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTestGenerationIntegrity.py +0 -0
  1301. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTestGeneratorBranches.py +0 -0
  1302. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTestGeneratorExtended.py +0 -0
  1303. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTestGeneratorPure.py +0 -0
  1304. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTestMarkerContract.py +0 -0
  1305. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTestMarkerSystem.py +0 -0
  1306. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTestsAndSignOffFollowThePlotBytesLive.py +0 -0
  1307. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTextIoNamesItsEncoding.py +0 -0
  1308. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheArchiveIsAskedWhatItStored.py +0 -0
  1309. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheBlockedMapOutlivesTheArrow.py +0 -0
  1310. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheDashboardSettingsReachEveryMode.py +0 -0
  1311. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheLockIsCheckedBeforeARerunIsSpent.py +0 -0
  1312. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheLockVerdictCarriesItsFingerprint.py +0 -0
  1313. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheManifestDescribesTheFilesItShipsWith.py +0 -0
  1314. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testThePollDoesNotRewriteWhatItReads.py +0 -0
  1315. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheProjectDepositIsAskedWhatItStored.py +0 -0
  1316. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheReadinessRouteAnswersARequest.py +0 -0
  1317. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheRerunSaysWhatItCosts.py +0 -0
  1318. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheScalarGateHasNoSecondList.py +0 -0
  1319. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheSnapshotIsADeclaredRead.py +0 -0
  1320. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheStagedClientStaysCurrent.py +0 -0
  1321. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTimedCommandComposition.py +0 -0
  1322. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTimedCommandsLive.py +0 -0
  1323. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testToolchainEpoch.py +0 -0
  1324. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testToolchainPinDrift.py +0 -0
  1325. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testToolkitEndToEnd.py +0 -0
  1326. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTopologyCorrectFileActions.py +0 -0
  1327. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTrackedIndexBeyondSymlinkBucket.py +0 -0
  1328. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTrackedReposManager.py +0 -0
  1329. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTranscriptSanitizer.py +0 -0
  1330. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTranscriptSanitizerCoverage.py +0 -0
  1331. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTranscriptSanitizerJsonRecords.py +0 -0
  1332. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTranscriptSanitizerParallel.py +0 -0
  1333. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTranscriptSanitizerSplitSecrets.py +0 -0
  1334. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTransferResolvesRelativeContainerPaths.py +0 -0
  1335. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTruthDerivation.py +0 -0
  1336. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTypeAloneStopsTheSwallow.py +0 -0
  1337. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTypedReadFailureIsNeverAbsence.py +0 -0
  1338. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testUncoveredLibrariesAreNamed.py +0 -0
  1339. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testUndiscoveredTerminalRecordSettles.py +0 -0
  1340. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testUnloadDoesNotReleaseContract.py +0 -0
  1341. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testUnseededRandomnessReachesLevelThree.py +0 -0
  1342. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testUploadRoutes.py +0 -0
  1343. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVaibifyDoCli.py +0 -0
  1344. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVaibifyDoHeadless.py +0 -0
  1345. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVaibifyDoUnansweredRequest.py +0 -0
  1346. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVaibifyOpen.py +0 -0
  1347. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVendoredPdfJs.py +0 -0
  1348. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVerificationLiveOutput.py +0 -0
  1349. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVerifyResolvesPlotPathsWhereTheRunWritesThem.py +0 -0
  1350. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVirtiofsRetry.py +0 -0
  1351. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVolumeCommandsStayOffTheTerminal.py +0 -0
  1352. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVolumeManager.py +0 -0
  1353. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVsCodeAttachLink.py +0 -0
  1354. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWallClockBudget.py +0 -0
  1355. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWebSocketAuthorization.py +0 -0
  1356. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWithdrawnTerminalLegacyRecords.py +0 -0
  1357. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWizardDirectoryPickerContract.py +0 -0
  1358. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWizardsShareOneRepositoryAuthority.py +0 -0
  1359. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowDiscoveryLegacyRoot.py +0 -0
  1360. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowFieldTypesAreValidatedAtLoad.py +0 -0
  1361. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowLoadingBannerFrontendContract.py +0 -0
  1362. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowManager.py +0 -0
  1363. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowManagerExtended.py +0 -0
  1364. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowManagerMutationCoverage.py +0 -0
  1365. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowManagerScaling.py +0 -0
  1366. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowMergeGateSplit.py +0 -0
  1367. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowMigrations.py +0 -0
  1368. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowMigrationsAICSLevel.py +0 -0
  1369. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowMigrationsProofLevelRename.py +0 -0
  1370. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowReloadDetector.py +0 -0
  1371. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowReloadIntegration.py +0 -0
  1372. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowRoutesCoverage.py +0 -0
  1373. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowSchemaForwardCompat.py +0 -0
  1374. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowSwitchGenerationContract.py +0 -0
  1375. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkspacePath.py +0 -0
  1376. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkspaceRootHandshake.py +0 -0
  1377. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkspaceSeedPaths.py +0 -0
  1378. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWritableLayerLoss.py +0 -0
  1379. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testX11Findings.py +0 -0
  1380. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testX11Forwarding.py +0 -0
  1381. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testX11OptIn.py +0 -0
  1382. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testX11Settings.py +0 -0
  1383. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoCandidatesCoverLevelThree.py +0 -0
  1384. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoClient.py +0 -0
  1385. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoClientExtended.py +0 -0
  1386. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoDatasetDownloadIsWithdrawn.py +0 -0
  1387. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoEnvelopeArchive.py +0 -0
  1388. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoFetchHashes.py +0 -0
  1389. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoIntegrationGaps.py +0 -0
  1390. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoLookupPatience.py +0 -0
  1391. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoPublishWhereTheRecordIs.py +0 -0
  1392. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoServiceAuthorities.py +0 -0
  1393. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoUploadResilience.py +0 -0
  1394. {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoVerifyUsesTheRecordedService.py +0 -0
  1395. {vaibify-0.2.1 → vaibify-0.2.2}/tests/timingSupport.py +0 -0
  1396. {vaibify-0.2.1 → vaibify-0.2.2}/tests/typedHashDouble.py +0 -0
  1397. {vaibify-0.2.1 → vaibify-0.2.2}/tools/bootstrapAcceptanceContainer.py +0 -0
  1398. {vaibify-0.2.1 → vaibify-0.2.2}/tools/carrierIntentAudit.py +0 -0
  1399. {vaibify-0.2.1 → vaibify-0.2.2}/tools/checkAgentDocsPaths.py +0 -0
  1400. {vaibify-0.2.1 → vaibify-0.2.2}/tools/checkAmericanSpelling.py +0 -0
  1401. {vaibify-0.2.1 → vaibify-0.2.2}/tools/checkBrowserLaunches.py +0 -0
  1402. {vaibify-0.2.1 → vaibify-0.2.2}/tools/checkInstalledDistribution.py +0 -0
  1403. {vaibify-0.2.1 → vaibify-0.2.2}/tools/checkToolchainEpoch.py +0 -0
  1404. {vaibify-0.2.1 → vaibify-0.2.2}/tools/checkToolchainPinDrift.py +0 -0
  1405. {vaibify-0.2.1 → vaibify-0.2.2}/tools/computeBuildInputHash.py +0 -0
  1406. {vaibify-0.2.1 → vaibify-0.2.2}/tools/deriveLaneSelection.py +0 -0
  1407. {vaibify-0.2.1 → vaibify-0.2.2}/tools/evaluateSkillOutcomes.py +0 -0
  1408. {vaibify-0.2.1 → vaibify-0.2.2}/tools/evaluateSkillTriggers.py +0 -0
  1409. {vaibify-0.2.1 → vaibify-0.2.2}/tools/generateHostCapabilityInventory.py +0 -0
  1410. {vaibify-0.2.1 → vaibify-0.2.2}/tools/generateMutationInventory.py +0 -0
  1411. {vaibify-0.2.1 → vaibify-0.2.2}/tools/generateStyleInventory.py +0 -0
  1412. {vaibify-0.2.1 → vaibify-0.2.2}/tools/inventoryRepositoryGitSurface.py +0 -0
  1413. {vaibify-0.2.1 → vaibify-0.2.2}/tools/ledgerFormat.py +0 -0
  1414. {vaibify-0.2.1 → vaibify-0.2.2}/tools/listModules.py +0 -0
  1415. {vaibify-0.2.1 → vaibify-0.2.2}/tools/mutationAttribution.py +0 -0
  1416. {vaibify-0.2.1 → vaibify-0.2.2}/tools/skillEvals/outcomeTasks.json +0 -0
  1417. {vaibify-0.2.1 → vaibify-0.2.2}/tools/skillEvals/triggerPrompts.json +0 -0
  1418. {vaibify-0.2.1 → vaibify-0.2.2}/tools/summarizeFalsificationShards.py +0 -0
  1419. {vaibify-0.2.1 → vaibify-0.2.2}/tools/syncRequiredChecks.py +0 -0
  1420. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/__init__.py +0 -0
  1421. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/__main__.py +0 -0
  1422. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/__init__.py +0 -0
  1423. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/actionCommands.py +0 -0
  1424. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/baseImagePreflight.py +0 -0
  1425. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandBuild.py +0 -0
  1426. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandCat.py +0 -0
  1427. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandCompletePath.py +0 -0
  1428. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandConfig.py +0 -0
  1429. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandCredential.py +0 -0
  1430. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandDestroy.py +0 -0
  1431. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandDoctor.py +0 -0
  1432. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandGenerateStandards.py +0 -0
  1433. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandInit.py +0 -0
  1434. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandLs.py +0 -0
  1435. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandOpen.py +0 -0
  1436. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandPublish.py +0 -0
  1437. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandReconcile.py +0 -0
  1438. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandRegister.py +0 -0
  1439. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandRemote.py +0 -0
  1440. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandRemoteHelper.py +0 -0
  1441. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandRepair.py +0 -0
  1442. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandReproduce.py +0 -0
  1443. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandRevoke.py +0 -0
  1444. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandRun.py +0 -0
  1445. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandSecret.py +0 -0
  1446. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandSessions.py +0 -0
  1447. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandSetupDocker.py +0 -0
  1448. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandStart.py +0 -0
  1449. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandStatus.py +0 -0
  1450. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandTest.py +0 -0
  1451. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandUtilsDocker.py +0 -0
  1452. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandVerifyStep.py +0 -0
  1453. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandWorkflow.py +0 -0
  1454. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/configFieldPreflight.py +0 -0
  1455. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/configLoader.py +0 -0
  1456. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/daemonDiskPreflight.py +0 -0
  1457. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/doctorHostChecks.py +0 -0
  1458. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/doctorNetwork.py +0 -0
  1459. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/doctorProjectChecks.py +0 -0
  1460. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/doctorX11Checks.py +0 -0
  1461. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/hubSession.py +0 -0
  1462. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/imageTrustPrompt.py +0 -0
  1463. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/levelReport.py +0 -0
  1464. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/main.py +0 -0
  1465. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/portAllocator.py +0 -0
  1466. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/preflightChecks.py +0 -0
  1467. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/preflightResult.py +0 -0
  1468. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/pythonPackagePreflight.py +0 -0
  1469. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/remoteProtocol.py +0 -0
  1470. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/repositoryPreflight.py +0 -0
  1471. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/serverLaunch.py +0 -0
  1472. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/systemPackagePreflight.py +0 -0
  1473. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/completions/vaibify.bash +0 -0
  1474. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/completions/vaibify.fish +0 -0
  1475. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/completions/vaibify.zsh +0 -0
  1476. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/__init__.py +0 -0
  1477. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/abandonmentAudit.py +0 -0
  1478. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/agentTerminalEnvironment.py +0 -0
  1479. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/analysisStack.py +0 -0
  1480. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/bindMountValidator.py +0 -0
  1481. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/configurationFingerprint.py +0 -0
  1482. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/connectionAvailability.py +0 -0
  1483. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/containerConfig.py +0 -0
  1484. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/containerLock.py +0 -0
  1485. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/durableFile.py +0 -0
  1486. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/ephemeralStore.py +0 -0
  1487. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/hostResidue.py +0 -0
  1488. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/hubPortRegistry.py +0 -0
  1489. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/imageOrigins.py +0 -0
  1490. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/imageTrust.py +0 -0
  1491. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/keepAliveManager.py +0 -0
  1492. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/modelIdentity.py +0 -0
  1493. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/mutationAdmission.py +0 -0
  1494. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/operationJournal.py +0 -0
  1495. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/pendingConversions.py +0 -0
  1496. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/pidFileRegistry.py +0 -0
  1497. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/preferencesStore.py +0 -0
  1498. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/processLiveness.py +0 -0
  1499. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/projectConfig.py +0 -0
  1500. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/reconciliation.py +0 -0
  1501. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/registryManager.py +0 -0
  1502. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/resourceAdequacy.py +0 -0
  1503. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/resourceLimits.py +0 -0
  1504. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/secretAvailability.py +0 -0
  1505. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/secretManager.py +0 -0
  1506. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/sessionRegistry.py +0 -0
  1507. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/templateManager.py +0 -0
  1508. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/workerProcessPool.py +0 -0
  1509. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile +0 -0
  1510. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.antigravity +0 -0
  1511. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.claude +0 -0
  1512. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.claudeArmOnIntel +0 -0
  1513. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.cline +0 -0
  1514. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.codex +0 -0
  1515. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.gemini +0 -0
  1516. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.julia +0 -0
  1517. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.jupyter +0 -0
  1518. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.node +0 -0
  1519. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.opencode +0 -0
  1520. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.openhands +0 -0
  1521. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.pi +0 -0
  1522. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.rlang +0 -0
  1523. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.uv +0 -0
  1524. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/checkIsolation.sh +0 -0
  1525. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/overlays/database.dockerfile +0 -0
  1526. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/overlays/dvc.dockerfile +0 -0
  1527. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/overlays/gpu.dockerfile +0 -0
  1528. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/overlays/nestedSampling.dockerfile +0 -0
  1529. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/graceful-exits/checkGracefulExits.py +0 -0
  1530. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/vaibifyDo.py +0 -0
  1531. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/__init__.py +0 -0
  1532. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/bridgeGateway.py +0 -0
  1533. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/buildKitRequirement.py +0 -0
  1534. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/cgroupMemory.py +0 -0
  1535. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/coherentExport.py +0 -0
  1536. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/confinedRead.py +0 -0
  1537. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/confinedWrite.py +0 -0
  1538. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/containerLifecycleRepair.py +0 -0
  1539. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/containerManager.py +0 -0
  1540. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/daemonCapacity.py +0 -0
  1541. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/daemonDescription.py +0 -0
  1542. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/disposableContainer.py +0 -0
  1543. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/disposableSpecification.py +0 -0
  1544. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/dockerConnection.py +0 -0
  1545. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/dockerContext.py +0 -0
  1546. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/dockerErrorDiagnosis.py +0 -0
  1547. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/execArgumentBudget.py +0 -0
  1548. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/fileTransfer.py +0 -0
  1549. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/imageBuilder.py +0 -0
  1550. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/keepAliveManager.py +0 -0
  1551. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/pathContainment.py +0 -0
  1552. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/pinnedImageAcquisition.py +0 -0
  1553. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/runtimeRemedies.py +0 -0
  1554. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/volumeManager.py +0 -0
  1555. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/writableLayerLoss.py +0 -0
  1556. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/x11Forwarding.py +0 -0
  1557. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docs/agentCouncil.md +0 -0
  1558. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docs/proofLadder.md +0 -0
  1559. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docs/scriptAuthoring.md +0 -0
  1560. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docs/testing.md +0 -0
  1561. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/__init__.py +0 -0
  1562. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/acquisitionFailure.py +0 -0
  1563. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentClientFreshness.py +0 -0
  1564. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncil.py +0 -0
  1565. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilAntigravityProvider.py +0 -0
  1566. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCampaign.py +0 -0
  1567. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCapacity.py +0 -0
  1568. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCharter.py +0 -0
  1569. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilChat.py +0 -0
  1570. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCodexProvider.py +0 -0
  1571. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilContext.py +0 -0
  1572. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilController.py +0 -0
  1573. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCredentialGate.py +0 -0
  1574. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCredentialStore.py +0 -0
  1575. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCredentialTest.py +0 -0
  1576. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCredentialTestRecords.py +0 -0
  1577. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCredentialTestRecovery.py +0 -0
  1578. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilDockerGateway.py +0 -0
  1579. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilEgress.py +0 -0
  1580. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilEvidence.py +0 -0
  1581. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilEvidenceContract.py +0 -0
  1582. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilManifest.py +0 -0
  1583. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilProviderRegistry.py +0 -0
  1584. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilProviders.py +0 -0
  1585. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilReadiness.py +0 -0
  1586. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilRegistry.py +0 -0
  1587. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilResolution.py +0 -0
  1588. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilRunner.py +0 -0
  1589. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilSnapshotScope.py +0 -0
  1590. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilStagedCopies.py +0 -0
  1591. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilStore.py +0 -0
  1592. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentProjectScope.py +0 -0
  1593. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentSessionBridge.py +0 -0
  1594. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/aiProvenanceCapture.py +0 -0
  1595. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/appFactory.py +0 -0
  1596. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/archiveProgress.py +0 -0
  1597. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/attributionLog.py +0 -0
  1598. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/backgroundTasks.py +0 -0
  1599. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/badgeState.py +0 -0
  1600. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/browserSession.py +0 -0
  1601. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/buildRoutes.py +0 -0
  1602. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/cliShellContainment.py +0 -0
  1603. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/commandUtilities.py +0 -0
  1604. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/commitCarrier.py +0 -0
  1605. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/conftestManager.py +0 -0
  1606. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/connectionRouter.py +0 -0
  1607. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/containerGit.py +0 -0
  1608. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/containerMemorySampler.py +0 -0
  1609. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/containerMemoryWatch.py +0 -0
  1610. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/containerOwnership.py +0 -0
  1611. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/conversionLifecycle.py +0 -0
  1612. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/councilRouteGuards.py +0 -0
  1613. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/dataLoaders.py +0 -0
  1614. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/dataPreview.py +0 -0
  1615. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/dependencyScan.py +0 -0
  1616. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/dependencyScanner.py +0 -0
  1617. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/determinismEnvironment.py +0 -0
  1618. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/deterministicTestWriter.py +0 -0
  1619. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/diskSpace.py +0 -0
  1620. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/dockerStatus.py +0 -0
  1621. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/draftManager.py +0 -0
  1622. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/environmentDeletion.py +0 -0
  1623. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/environmentDeletionRoutes.py +0 -0
  1624. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/executionTopology.py +0 -0
  1625. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/figureServer.py +0 -0
  1626. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/fileIntegrity.py +0 -0
  1627. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/gitStatus.py +0 -0
  1628. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/hashStaleness.py +0 -0
  1629. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/helperPrograms.py +0 -0
  1630. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/hostBusyOracle.py +0 -0
  1631. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/hostControlChannel.py +0 -0
  1632. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/hostIncidents.py +0 -0
  1633. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/hostModeReturn.py +0 -0
  1634. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/interactiveSteps.py +0 -0
  1635. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/introspectionScript.py +0 -0
  1636. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/llmInvoker.py +0 -0
  1637. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/llmTestGeneration.py +0 -0
  1638. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/machineAttention.py +0 -0
  1639. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/manifestCheck.py +0 -0
  1640. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/mtimeCache.py +0 -0
  1641. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/outputProvenance.py +0 -0
  1642. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pathContract.py +0 -0
  1643. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/personalLayerManager.py +0 -0
  1644. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pinnedEnvironmentConversion.py +0 -0
  1645. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pipelineLogger.py +0 -0
  1646. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pipelineRunSlots.py +0 -0
  1647. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pipelineRunner.py +0 -0
  1648. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pipelineServer.py +0 -0
  1649. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pipelineTestRunner.py +0 -0
  1650. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pipelineUtils.py +0 -0
  1651. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pipelineValidator.py +0 -0
  1652. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/projectAdoption.py +0 -0
  1653. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/projectContextManager.py +0 -0
  1654. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/projectRoots.py +0 -0
  1655. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/promptRecordManager.py +0 -0
  1656. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/promptRecordViewer.py +0 -0
  1657. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/provenanceCommitter.py +0 -0
  1658. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/providerApiTransport.py +0 -0
  1659. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/randomnessLint.py +0 -0
  1660. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/registryRoutes.py +0 -0
  1661. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/remnantReapers.py +0 -0
  1662. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/remnantScanner.py +0 -0
  1663. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/reproductionProgress.py +0 -0
  1664. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/rerunEvidence.py +0 -0
  1665. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/researcherActions.py +0 -0
  1666. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/researcherNotices.py +0 -0
  1667. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/resourceLimitApplication.py +0 -0
  1668. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/resourceMonitor.py +0 -0
  1669. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routeScope.py +0 -0
  1670. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/__init__.py +0 -0
  1671. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/committedFileRoutes.py +0 -0
  1672. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/connectionCheckRoutes.py +0 -0
  1673. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/conversionRoutes.py +0 -0
  1674. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/councilChatRoutes.py +0 -0
  1675. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/councilCredentialRoutes.py +0 -0
  1676. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/councilRoutes.py +0 -0
  1677. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/councilSnapshotRoutes.py +0 -0
  1678. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/downloadRoutes.py +0 -0
  1679. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/draftRoutes.py +0 -0
  1680. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/falsificationRoutes.py +0 -0
  1681. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/figureRoutes.py +0 -0
  1682. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/fileRoutes.py +0 -0
  1683. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/gitRoutes.py +0 -0
  1684. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/imageTrustRoutes.py +0 -0
  1685. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/levelRoutes.py +0 -0
  1686. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/pipelineRoutes.py +0 -0
  1687. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/plotRoutes.py +0 -0
  1688. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/preferencesRoutes.py +0 -0
  1689. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/promotionRecoveryRoutes.py +0 -0
  1690. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/promptRecordViewerRoutes.py +0 -0
  1691. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/remnantRoutes.py +0 -0
  1692. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/remoteRefreshRoutes.py +0 -0
  1693. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/replayRoutes.py +0 -0
  1694. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/reproductionRoutes.py +0 -0
  1695. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/runtimeSetupRoutes.py +0 -0
  1696. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/scriptRoutes.py +0 -0
  1697. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/sessionRoutes.py +0 -0
  1698. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/settingsRoutes.py +0 -0
  1699. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/systemRoutes.py +0 -0
  1700. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/terminalRoutes.py +0 -0
  1701. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/uploadRoutes.py +0 -0
  1702. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/workflowRoutes.py +0 -0
  1703. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/runOutputBaseline.py +0 -0
  1704. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/serverLifespan.py +0 -0
  1705. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/serverMiddleware.py +0 -0
  1706. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/sessionLifecycle.py +0 -0
  1707. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/sleepPrevention.py +0 -0
  1708. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/staleOutputDetector.py +0 -0
  1709. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/standardsFiles.py +0 -0
  1710. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/startReservation.py +0 -0
  1711. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/startResultStore.py +0 -0
  1712. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/startupObservations.py +0 -0
  1713. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/stateContract.py +0 -0
  1714. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/stateManager.py +0 -0
  1715. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/stateWriteLock.py +0 -0
  1716. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/favicon.png +0 -0
  1717. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/favicon.svg +0 -0
  1718. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptAcquisitionWindow.js +0 -0
  1719. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptAgentCouncil.js +0 -0
  1720. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptAiModelConfig.js +0 -0
  1721. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptApiClient.js +0 -0
  1722. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptArxivConfig.js +0 -0
  1723. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptBinaryDeclaration.js +0 -0
  1724. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptConnectionMonitor.js +0 -0
  1725. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptContainerManager.js +0 -0
  1726. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptCouncilConsent.js +0 -0
  1727. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptCouncilSnapshotScope.js +0 -0
  1728. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptDependencyScanner.js +0 -0
  1729. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptDiagnosis.js +0 -0
  1730. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptDirectoryBrowser.js +0 -0
  1731. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptDraftManager.js +0 -0
  1732. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptEnvironmentInfo.js +0 -0
  1733. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptEventBindings.js +0 -0
  1734. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptFigureViewer.js +0 -0
  1735. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptFileDropWalker.js +0 -0
  1736. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptFileOperations.js +0 -0
  1737. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptFileOutcomes.js +0 -0
  1738. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptFilePull.js +0 -0
  1739. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptFileRowMenu.js +0 -0
  1740. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptFileUpload.js +0 -0
  1741. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptFiles.js +0 -0
  1742. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptGitBadges.js +0 -0
  1743. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptImageTrust.js +0 -0
  1744. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptLegendPanel.js +0 -0
  1745. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptManifestCheck.js +0 -0
  1746. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptMemoryWatch.js +0 -0
  1747. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptModals.js +0 -0
  1748. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptNewWorkflowWizard.js +0 -0
  1749. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptOverleafMirror.js +0 -0
  1750. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptPersonalLayer.js +0 -0
  1751. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptPipelineRunner.js +0 -0
  1752. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptPlotStandards.js +0 -0
  1753. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptPolling.js +0 -0
  1754. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptProjectContext.js +0 -0
  1755. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptPromptRecordConfig.js +0 -0
  1756. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptPromptRecordViewer.js +0 -0
  1757. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptProofTab.js +0 -0
  1758. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptRemnants.js +0 -0
  1759. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptReposPanel.js +0 -0
  1760. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptReproducePublished.js +0 -0
  1761. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptResourceMonitor.js +0 -0
  1762. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptRuntimeSetup.js +0 -0
  1763. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptSetupWizard.js +0 -0
  1764. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptStepEditor.js +0 -0
  1765. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptStepRenderer.js +0 -0
  1766. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptTerminal.js +0 -0
  1767. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptTestManager.js +0 -0
  1768. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptUtilities.js +0 -0
  1769. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptWebSocket.js +0 -0
  1770. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptWorkflowManager.js +0 -0
  1771. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptZenodoDepositCard.js +0 -0
  1772. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/setupWizard.html +0 -0
  1773. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/styleMain.css +0 -0
  1774. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/styleSetupWizard.css +0 -0
  1775. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/vaibify_logo_paleblue.png +0 -0
  1776. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/vaibify_logo_paleblue_dark.png +0 -0
  1777. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/vendor/addon-fit.min.js +0 -0
  1778. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/vendor/addon-unicode11.min.js +0 -0
  1779. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/vendor/pdf.min.js +0 -0
  1780. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/vendor/pdf.worker.min.js +0 -0
  1781. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/vendor/xterm.min.css +0 -0
  1782. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/vendor/xterm.min.js +0 -0
  1783. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/stepDependencyScan.py +0 -0
  1784. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/stepRename.py +0 -0
  1785. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/supervisionAnchor.py +0 -0
  1786. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/syncDispatcher.py +0 -0
  1787. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/templateManager.py +0 -0
  1788. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/terminalContainment.py +0 -0
  1789. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/terminalSession.py +0 -0
  1790. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/testGenerator.py +0 -0
  1791. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/testMarkerContract.py +0 -0
  1792. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/testParser.py +0 -0
  1793. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/trackedReposManager.py +0 -0
  1794. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/transcriptSanitizer.py +0 -0
  1795. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/truthDerivation.py +0 -0
  1796. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/uploadStaging.py +0 -0
  1797. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/verificationProgress.py +0 -0
  1798. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/vscodeAttachLink.py +0 -0
  1799. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/webSocketAuthorization.py +0 -0
  1800. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/workflowFieldTypes.py +0 -0
  1801. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/workflowMigrations.py +0 -0
  1802. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/workflowReloadDetector.py +0 -0
  1803. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/workspacePath.py +0 -0
  1804. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/writableLayerPreview.py +0 -0
  1805. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/host/__init__.py +0 -0
  1806. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/host/archiveExtraction.py +0 -0
  1807. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/host/hostCancellation.py +0 -0
  1808. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/host/hostConfinedRead.py +0 -0
  1809. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/host/hostConnection.py +0 -0
  1810. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/host/hostScratch.py +0 -0
  1811. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/__init__.py +0 -0
  1812. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/installVaibify.sh +0 -0
  1813. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/runtimeSetupFacts.py +0 -0
  1814. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/runtimeSetupPlan.py +0 -0
  1815. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/runtimeSetupRunner.py +0 -0
  1816. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/runtimeSetupSupervisor.py +0 -0
  1817. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/setupServer.py +0 -0
  1818. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/shellSetup.py +0 -0
  1819. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/uninstallVaibify.sh +0 -0
  1820. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/__init__.py +0 -0
  1821. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/_hashing.py +0 -0
  1822. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/agentLayerSeparation.py +0 -0
  1823. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/aiDeclarationStep.py +0 -0
  1824. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/aiProvenanceStamp.py +0 -0
  1825. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/answeredQuestion.py +0 -0
  1826. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/archiveDepositPlan.py +0 -0
  1827. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/archivePermanence.py +0 -0
  1828. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/archivePromotion.py +0 -0
  1829. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/arxivClient.py +0 -0
  1830. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/askpassHelper.py +0 -0
  1831. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/assessmentLane.py +0 -0
  1832. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/committedFiles.py +0 -0
  1833. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/comparisonPolicyNotes.py +0 -0
  1834. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/comparisonPolicyV1.py +0 -0
  1835. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/connectionCheck.py +0 -0
  1836. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/credentialRedactor.py +0 -0
  1837. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/dataArchiver.py +0 -0
  1838. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/declarationFreshness.py +0 -0
  1839. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/declaredPackages.py +0 -0
  1840. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/dependencyFindings.py +0 -0
  1841. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/determinismGate.py +0 -0
  1842. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/dockerfileComposer.py +0 -0
  1843. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/dockerfileLint.py +0 -0
  1844. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/downloadPartial.py +0 -0
  1845. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/environmentDrift.py +0 -0
  1846. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/environmentSnapshot.py +0 -0
  1847. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/executionProfiles.py +0 -0
  1848. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/falsificationAttestation.py +0 -0
  1849. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/gitEvidence.py +0 -0
  1850. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/gitHardening.py +0 -0
  1851. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/githubAuth.py +0 -0
  1852. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/githubMirror.py +0 -0
  1853. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/githubWorkflow.py +0 -0
  1854. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/imageAcquisition.py +0 -0
  1855. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/imageArchive.py +0 -0
  1856. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/imageDeposit.py +0 -0
  1857. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/imageDockerfileExport.py +0 -0
  1858. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/latexConnector.py +0 -0
  1859. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/lockSatisfaction.py +0 -0
  1860. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/manifestPaths.py +0 -0
  1861. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/manifestWriter.py +0 -0
  1862. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/overleafAuth.py +0 -0
  1863. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/overleafMirror.py +0 -0
  1864. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/overleafSync.py +0 -0
  1865. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/provenanceTracker.py +0 -0
  1866. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/publicationScope.py +0 -0
  1867. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/rangedHttpTransport.py +0 -0
  1868. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/remoteCheckState.py +0 -0
  1869. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/replayGate.py +0 -0
  1870. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/repoFiles.py +0 -0
  1871. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/reproduceScriptGenerator.py +0 -0
  1872. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/reproductionLabel.py +0 -0
  1873. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/reproductionRecord.py +0 -0
  1874. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/reproductionReport.py +0 -0
  1875. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/reproductionSource.py +0 -0
  1876. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/rerunAssessment.py +0 -0
  1877. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/rerunDiagnostics.py +0 -0
  1878. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/rerunEstimate.py +0 -0
  1879. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/rerunPreparation.py +0 -0
  1880. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/rerunProcedure.py +0 -0
  1881. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/rerunVerification.py +0 -0
  1882. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/resumableDownload.py +0 -0
  1883. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/shadowRerun.py +0 -0
  1884. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/stepPredicates.py +0 -0
  1885. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/zenodoClient.py +0 -0
  1886. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/resources.py +0 -0
  1887. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/sandbox/container.conf +0 -0
  1888. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/toolkit/README.md +0 -0
  1889. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/toolkit/container.conf +0 -0
  1890. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/toolkit/project.json +0 -0
  1891. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/workflow/GenerateSamples/generateSamples.py +0 -0
  1892. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/workflow/PlotHistogram/plotHistogram.py +0 -0
  1893. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/workflow/container.conf +0 -0
  1894. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/workflow/project.json +0 -0
  1895. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/workflow.yml.j2 +0 -0
  1896. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/testing/__init__.py +0 -0
  1897. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/testing/standards.py +0 -0
  1898. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/testing/stochasticDetector.py +0 -0
  1899. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify.egg-info/dependency_links.txt +0 -0
  1900. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify.egg-info/entry_points.txt +0 -0
  1901. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify.egg-info/requires.txt +0 -0
  1902. {vaibify-0.2.1 → vaibify-0.2.2}/vaibify.egg-info/top_level.txt +0 -0
  1903. {vaibify-0.2.1 → vaibify-0.2.2}/website/.gitignore +0 -0
  1904. {vaibify-0.2.1 → vaibify-0.2.2}/website/README.md +0 -0
  1905. {vaibify-0.2.1 → vaibify-0.2.2}/website/public/404.html +0 -0
  1906. {vaibify-0.2.1 → vaibify-0.2.2}/website/public/_headers +0 -0
  1907. {vaibify-0.2.1 → vaibify-0.2.2}/website/public/assets/favicon.png +0 -0
  1908. {vaibify-0.2.1 → vaibify-0.2.2}/website/public/assets/vaibifyDashboard.png +0 -0
  1909. {vaibify-0.2.1 → vaibify-0.2.2}/website/public/assets/vaibifyLogo.png +0 -0
  1910. {vaibify-0.2.1 → vaibify-0.2.2}/website/public/index.html +0 -0
  1911. {vaibify-0.2.1 → vaibify-0.2.2}/website/public/robots.txt +0 -0
  1912. {vaibify-0.2.1 → vaibify-0.2.2}/website/public/sitemap.xml +0 -0
  1913. {vaibify-0.2.1 → vaibify-0.2.2}/website/public/styles.css +0 -0
  1914. {vaibify-0.2.1 → vaibify-0.2.2}/website/wrangler.toml +0 -0
@@ -0,0 +1,266 @@
1
+ ---
2
+ name: add-data-loader
3
+ description: Recipe for adding a new file-format loader to vaibify/gui/dataLoaders.py. Use when the task is to support reading a new data file extension (e.g., netCDF, Zarr, a domain-specific binary format) in quantitative benchmark tests.
4
+ ---
5
+
6
+ # Adding a new data-file loader to vaibify
7
+
8
+ Use this recipe when the task is to support reading a new data file
9
+ extension in vaibify's quantitative benchmark tests.
10
+
11
+ `vaibify/gui/dataLoaders.py` is the dispatch table mapping file
12
+ extensions to loader functions. The text between its markers is also
13
+ embedded verbatim, by `fsReadLoaderSource()`, into the self-contained
14
+ quantitative test file vaibify generates
15
+ (`templateManager.fsBuildQuantitativeTestCode`). This embedding is the
16
+ primary constraint on every loader you add. The introspection script
17
+ that proposes benchmarks does NOT embed it: it keeps its own copy of the
18
+ format handling, which you extend separately (step 6).
19
+
20
+ ## Prerequisites
21
+
22
+ Read these first:
23
+
24
+ - `AGENTS.md` (repo root) — global rules and traps
25
+ - `vaibify/gui/dataLoaders.py` — the existing loaders, the
26
+ `# -- begin loader source` marker block, and the module docstring's
27
+ "Where these loaders run"
28
+ - `vaibify/gui/introspectionScript.py` — the f-string executed inside
29
+ containers, with its own `_DICT_FORMAT_MAP` and benchmark chain; read
30
+ its module header first
31
+ - `vaibify/gui/templateManager.py` — `fsBuildQuantitativeTestCode`,
32
+ which embeds the loader source, and `SET_PRIOR_TEMPLATE_HASHES`, which
33
+ records the template hashes a change retires
34
+
35
+ ## The critical invariant
36
+
37
+ The text between the `# -- begin loader source` and
38
+ `# -- end loader source` markers in `dataLoaders.py` is read as a
39
+ string by `fsReadLoaderSource()`, then inlined into a self-contained
40
+ Python test file that runs wherever the project's tests run: **inside
41
+ the container** for a container project, and in the hub's pytest
42
+ subprocess on the researcher's machine for a host project. The
43
+ `vaibify generate-standards` command also imports the loaders on the
44
+ host (`vaibify/testing/standards.py`); the hub process itself only
45
+ embeds the text (`tests/testDataLoadersStayOutOfTheHub.py`). That
46
+ environment has a known Python version and a limited set of packages
47
+ available. This means:
48
+
49
+ - Loaders must be **pure Python** plus the packages already used in
50
+ the loader-source block (`json`, `pathlib`, `re`, `numpy`). Do not
51
+ introduce new top-level imports into the loader-source block
52
+ without confirming the dependency is always present in the
53
+ container images vaibify supports.
54
+ - If a format requires an optional package (e.g., `netCDF4`, `zarr`,
55
+ `pyarrow`), the loader must `import` inside the function body and
56
+ raise a clear error if the import fails. Do not place the import at
57
+ module top level inside the loader-source block.
58
+ - Loaders read only the path they are handed: no configuration, no
59
+ host-only utilities. Build paths with the `pathlib` the block already
60
+ imports, as `_ffLoadValue` does.
61
+ - Loaders must be deterministic and side-effect-free beyond the file
62
+ read.
63
+
64
+ ## Steps
65
+
66
+ ### 1. Add the extension to `_DICT_FORMAT_MAP`
67
+
68
+ In `dataLoaders.py`, inside the loader-source block (between the
69
+ `# -- begin loader source` and `# -- end loader source` markers), add
70
+ the extension(s) to `_DICT_FORMAT_MAP`, mapping to a canonical format
71
+ string you'll use in step 2:
72
+
73
+ ```python
74
+ _DICT_FORMAT_MAP = {
75
+ ...
76
+ ".nc": "netcdf",
77
+ ".nc4": "netcdf",
78
+ ...
79
+ }
80
+ ```
81
+
82
+ Keys are lowercase: the lookup lower-cases the file's suffix, so a
83
+ mixed-case key can never match
84
+ (`test_every_advertised_extension_actually_resolves`). List the new
85
+ format in the format table of `docs/testing.md`.
86
+
87
+ ### 2. Implement the loader function
88
+
89
+ Also inside the loader-source block, define
90
+ `_ffLoad<Name>Value(sFullPath, dictAccess)` following the shape of
91
+ the existing loaders. `sFullPath` is the path `_ffLoadValue` has
92
+ already joined onto the step directory; `dictAccess` is the dict
93
+ `_fdictParseAccessPath` parsed from the access path (`key`, `column`,
94
+ `dataset`, `section`, `hdu`, `listIndices`, `sAggregate`). Finish
95
+ through the shared extractors (`_ffExtractArrayValue`,
96
+ `_ffExtractTabularValue`, `_ffExtractDataframeValue`) so index and
97
+ aggregate syntax behave as they do for every other format.
98
+
99
+ Conventions:
100
+
101
+ - Function name: `_ffLoad<Name>Value` — `ff` because it returns a
102
+ float.
103
+ - Optional dependencies: import inside the function body and raise a
104
+ clear `ImportError` with a helpful message if missing.
105
+ - Errors: when the file cannot be read or the access path does not
106
+ resolve, raise `ValueError` naming the path and the format, chained
107
+ from the library's error, as `_ffLoadVtkValue` does
108
+ (`Failed to load <path> as vtk: ...`).
109
+ - Return type: a Python `float`, not an array; the generated test
110
+ compares it with `np.allclose`.
111
+ - Every binding carries a cast prefix
112
+ (`testVariableBindingsCarryCastPrefixes`). Unprefixed names in older
113
+ loaders (`mesh`, `table`) are seeded debt, not a pattern to copy.
114
+
115
+ ### 3. Register the loader in `_DICT_LOADERS`
116
+
117
+ Still inside the loader-source block, add the mapping:
118
+
119
+ ```python
120
+ _DICT_LOADERS = {
121
+ ...
122
+ "netcdf": _ffLoadNetcdfValue,
123
+ ...
124
+ }
125
+ ```
126
+
127
+ `DICT_LOADERS`, below the end marker, is the public alias of this dict;
128
+ do not edit it.
129
+
130
+ ### 4. Confirm public symbols are unchanged
131
+
132
+ The module-level `__all__` should still be
133
+ `["DICT_FORMAT_MAP", "DICT_LOADERS", "ffLoadValue", "fsReadLoaderSource"]`.
134
+ Do not add the new loader function to `__all__` — loaders are
135
+ internal to the dispatch.
136
+
137
+ ### 5. Re-pin the quantitative template hash
138
+
139
+ Any edit inside the marker block changes the generated quantitative
140
+ test, so `tests/testGuiTemplateManager.py::testTemplateHashesArePinned`
141
+ fails until you add the outgoing hash
142
+ (`DICT_PINNED_TEMPLATE_HASHES["quantitative"]` in that test) to
143
+ `SET_PRIOR_TEMPLATE_HASHES` in `vaibify/gui/templateManager.py`, then
144
+ pin the new hash the failure message prints. Skip the first half and
145
+ every project's untouched quantitative test files read as custom
146
+ scripts.
147
+
148
+ ### 6. Mirror the format in the introspection script
149
+
150
+ `introspectionScript.py` is an f-string executed inside containers (and
151
+ on the researcher's machine for a host project), with its own copy of
152
+ the format handling, because a container script cannot import from the
153
+ host. No test binds the two copies, so a format added only to
154
+ `dataLoaders.py` loads but is never introspected: no benchmarks are
155
+ proposed for it, and nothing says so. Inside the template that
156
+ `_fsBuildIntrospectionScript` returns:
157
+
158
+ - add the extension(s) to its `_DICT_FORMAT_MAP`;
159
+ - add an `elif sFormat == "<name>":` branch to `_fnLoadAndBenchmark`;
160
+ - add `_fnBenchmark<Name>(sFullPath, sFileName, dictReport)`, modeled
161
+ on `_fnBenchmarkTfrecord`: an optional import that fails sets
162
+ `dictReport["sError"]` and returns rather than raising, and every
163
+ access path it emits must be one your loader reads back.
164
+
165
+ Every literal brace in that text is doubled (`{{`, `}}`), because the
166
+ whole script is one f-string: a single brace is interpolated on the
167
+ host, which either breaks the build of the script or changes it
168
+ silently.
169
+
170
+ ### 7. Raise the two module-size caps
171
+
172
+ `dataLoaders.py` and `introspectionScript.py` are held to their entries
173
+ in `tests/testArchitecturalInvariants.py::DICT_GRANDFATHERED_MODULE_LINES`,
174
+ each the module's size when it was last raised, so a new format crosses
175
+ both. Raise each by exactly the lines the edit adds, with a one-line
176
+ dated reason above it, as the TFRecord fix did:
177
+
178
+ ```python
179
+ # 1222 -> 1229 (2026-10-01): a TFRecord feature is read from the decoded example.
180
+ ```
181
+
182
+ ### 8. Add a test
183
+
184
+ Create `tests/testDataLoader<FormatName>.py`. At minimum:
185
+
186
+ - Confirm the extension is in `_DICT_FORMAT_MAP`.
187
+ - Confirm the format string is in `DICT_LOADERS`.
188
+ - Call `ffLoadValue` against a small fixture file and assert the
189
+ returned scalar matches the expected value.
190
+ - Run the generated introspection script over the fixture, as
191
+ `tests/testIntrospectionTfrecord.py` does
192
+ (`_fsBuildIntrospectionScript`, then `subprocess.run` with
193
+ `sys.executable`), and assert that a benchmark names an access path
194
+ `ffLoadValue` reads back.
195
+ - If the format requires an optional dependency, add a test that
196
+ skips cleanly when the dependency is absent (`pytest.importorskip`).
197
+ CI installs `.[dev]`, not the `formats` extra.
198
+
199
+ Keep fixture files small and science-agnostic. Do not commit real
200
+ scientific datasets. A test fixture should be a hand-crafted
201
+ minimal file that exercises the format's structure.
202
+
203
+ ### 9. Verify both embedded sources still parse
204
+
205
+ `fsReadLoaderSource()` returns the text between the markers as a
206
+ string. That string must be valid Python on its own — it becomes the
207
+ body of the generated test file. Run:
208
+
209
+ ```bash
210
+ python -c "from vaibify.gui.dataLoaders import fsReadLoaderSource; exec(fsReadLoaderSource())"
211
+ python -c "import ast; from vaibify.gui.introspectionScript import _fsBuildIntrospectionScript; ast.parse(_fsBuildIntrospectionScript([], 'data'))"
212
+ ```
213
+
214
+ If the first fails, something in your edit broke the embedded loader
215
+ source. Common causes: a top-level statement that uses a name defined
216
+ outside the block; a top-level import of a package that is not
217
+ installed. If the second fails, a brace in step 6 was not doubled.
218
+
219
+ ### 10. Run the test suite
220
+
221
+ ```bash
222
+ python -m pytest tests/testDataLoader<FormatName>.py tests/testDataLoaders.py tests/testGuiTemplateManager.py tests/testStyleInvariants.py -v
223
+ python -m pytest tests/testArchitecturalInvariants.py::testModuleSizeIsBounded -v
224
+ python -m pytest tests/ -q --ignore=tests/testContainerBuildIntegration.py
225
+ ```
226
+
227
+ ### 11. Exercise via generated tests if possible
228
+
229
+ If you have a running container and a workflow that outputs the new
230
+ format, trigger a quantitative test generation and confirm the
231
+ inlined script runs inside the container without errors.
232
+
233
+ ## Common failure modes
234
+
235
+ - **`exec(fsReadLoaderSource())` fails** — you added a symbol outside
236
+ the marker block that the inlined code references, or a top-level
237
+ import not available in the container image.
238
+ - **Container test script fails with ImportError** — your loader
239
+ top-level-imports a package that isn't in the container. Move the
240
+ import inside the function and raise a clean error on failure.
241
+ - **The format loads but generation proposes no benchmarks for it** —
242
+ step 6 was skipped; the introspection script does not know the
243
+ extension.
244
+ - **Access path parsing is inconsistent with existing loaders** —
245
+ study the CSV and HDF5 loaders to match conventions (slash-separated
246
+ paths, colon-separated indexing, etc.).
247
+ - **Science-specific fixture committed** — remove it; use a
248
+ hand-crafted minimal file.
249
+
250
+ ## Do not
251
+
252
+ - Do not add a loader that reads configuration or calls host-only
253
+ utilities: the same text runs in a container and on a host
254
+ project's machine.
255
+ - Do not change `fsReadLoaderSource()`'s behavior to include code
256
+ from outside the marker block.
257
+ - Do not add an optional reader's package to vaibify's core
258
+ `dependencies` in `pyproject.toml`. It belongs in the `formats` extra,
259
+ beside the readers already there, and in that extra's row of
260
+ `docs/install.md`. The container image installs the project's
261
+ declared Python packages and the analysis stack
262
+ (`T_ANALYSIS_STACK_PACKAGES`), never this extra, so inside a container
263
+ the reader is present only when the project declares it, and the
264
+ loader's `ImportError` says so when it is not.
265
+ - Do not commit real scientific data as test fixtures. Vaibify is for
266
+ the general problem; commit synthetic files only.
@@ -0,0 +1,319 @@
1
+ ---
2
+ name: add-route-module
3
+ description: Recipe for adding a new FastAPI route module to the vaibify backend under vaibify/gui/routes/. Use when the task is to expose a new group of HTTP or WebSocket endpoints.
4
+ ---
5
+
6
+ # Adding a new route module to vaibify
7
+
8
+ Use this recipe when you need to add a new group of HTTP or WebSocket
9
+ endpoints to the vaibify FastAPI backend. Every route module follows
10
+ the same contract; follow these steps in order.
11
+
12
+ ## Prerequisites
13
+
14
+ Read these first:
15
+
16
+ - `AGENTS.md` (repo root) — global rules and traps
17
+ - `vaibify/gui/AGENTS.md` — backend contracts
18
+ - the `container-mutations` skill — for any route whose path carries
19
+ `{sContainerId}`: what the carrier-mode declaration in step 4 means,
20
+ and the ledger a container exec changes
21
+ - the `host-mode-and-paths` skill — for any route that composes a path
22
+ - `vaibify/gui/routes/committedFileRoutes.py` — small, current reference
23
+ for a container-scoped module (agent actions, carrier declarations, a
24
+ read on the frozen read list); `vaibify/gui/routes/runtimeSetupRoutes.py`
25
+ is the hub-only, control-plane counterpart. (`figureRoutes.py`, the old
26
+ reference, is still recorded in the carrier-mode allow-list that may
27
+ only shrink, so it shows nothing about step 4.)
28
+
29
+ ## Steps
30
+
31
+ ### 1. Create `vaibify/gui/routes/<name>Routes.py`
32
+
33
+ The filename is camelCase ending in `Routes.py` (e.g., `metricsRoutes.py`,
34
+ `userRoutes.py`). The file must declare `__all__`, provide a module
35
+ docstring, and export a module-level function `fnRegisterAll(app, dictCtx)`
36
+ (a module that confines paths to the workspace takes it as a third
37
+ argument, as `fileRoutes` does: `fnRegisterAll(app, dictCtx, sWorkspaceRoot)`).
38
+
39
+ Minimal scaffold:
40
+
41
+ ```python
42
+ """<One-sentence description of what this route group does>."""
43
+
44
+ __all__ = ["fnRegisterAll"]
45
+
46
+ from fastapi import HTTPException
47
+
48
+ from ..routeScope import S_CARRIER_TYPED_READ, ffnDeclareCarrierMode
49
+
50
+
51
+ def _fnRegisterExample(app, dictCtx):
52
+ """Register GET /api/<name>/{sContainerId}/<resource>."""
53
+
54
+ @app.get("/api/<name>/{sContainerId}/<resource>")
55
+ @ffnDeclareCarrierMode(S_CARRIER_TYPED_READ)
56
+ async def fdictReadExample(sContainerId: str):
57
+ fnRequire = dictCtx["require"]
58
+ fnRequire(sContainerId)
59
+ # ... implementation ...
60
+ return {"bOk": True}
61
+
62
+
63
+ def fnRegisterAll(app, dictCtx):
64
+ """Register all <name> routes."""
65
+ _fnRegisterExample(app, dictCtx)
66
+ ```
67
+
68
+ Notes:
69
+
70
+ - A handler is named for what it returns, like every other function:
71
+ `fdict…` for a JSON dict (most handlers), `fresponse…` for a
72
+ `Response`, `fn…` only for one that returns nothing.
73
+ `tests/testStyleInvariants.py` fails an `fn` function that returns a
74
+ value, and that budget is zero.
75
+ - Functions are about 20 to 30 lines (a guideline: split for reuse or a
76
+ genuine conceptual boundary, never to meet a line count). Factor helpers
77
+ out (`_fn…`, `_fs…`, `_fdict…`) if a handler grows.
78
+ - The module-level `fnRegisterAll` should only call the per-endpoint
79
+ `_fn…` helpers. Keep it thin so tests can import it without side
80
+ effects.
81
+ - For container-path joins use `posixpath`, never `os.path`. Never use
82
+ `WORKSPACE_ROOT` as the jail: resolve the project's root with
83
+ `projectRoots.fsResolveProjectRoot(sContainerId, WORKSPACE_ROOT)` (the
84
+ constant is only the container answer the resolver is handed) and
85
+ confine a caller's path with
86
+ `fsValidatePathWithinRoot(sAbsPath, sProjectRoot)`. A route that WRITES a caller's path also applies
87
+ `fnRejectWriteDenylistedPath` and passes `fdictConfinedWriteKeywords`
88
+ to the write. All three live in `vaibify.gui.pipelineServer`, beside
89
+ the figure helpers `fsResolveFigurePath` and
90
+ `fbaFetchFigureWithFallback`; the `host-mode-and-paths` skill explains
91
+ the resolvers.
92
+ - For shell-quoting container command arguments, use
93
+ `fsShellQuote` from `vaibify.gui.pipelineRunner`.
94
+ - If the route needs Docker access, call through
95
+ `dictCtx["docker"]`; do not import Docker utilities directly.
96
+
97
+ ### 2. Register the module in `vaibify/gui/routes/__init__.py`
98
+
99
+ Add the module name to both the `__all__` list and the
100
+ `from . import (...)` block. Preserve the existing order grouping
101
+ where it makes sense; otherwise append.
102
+
103
+ ### 3. Mount the module
104
+
105
+ Importing a module registers nothing. Add an explicit call,
106
+ `routes.<name>Routes.fnRegisterAll(app, dictCtx)`, to
107
+ `pipelineServer._fnRegisterAllRoutes`, which both the viewer and the hub
108
+ build. A route that belongs only to the hub's control plane is imported
109
+ and called inside `appFactory._fnRegisterHubLifecycle` instead, as
110
+ `runtimeSetupRoutes` is. No test catches a module that is imported but
111
+ never mounted; its own endpoint tests (step 7) are what fail.
112
+
113
+ ### 4. Declare each route's scope and carrier mode
114
+
115
+ `fnValidateRouteScopesOrRaise` refuses to build the app while any
116
+ mutating route has no authorization scope, so every test that builds an
117
+ app fails, not one. A path carrying `{sContainerId}` is scoped by
118
+ convention: a mutating route is `container-owner`, a GET or HEAD is
119
+ `container-read`. Anything else is declared by you:
120
+
121
+ - **A route whose path carries `{sContainerId}`** declares what it does
122
+ to the container with `@ffnDeclareCarrierMode(...)`, placed BELOW the
123
+ `@app.<verb>(...)` line. An undeclared one fails
124
+ `testEveryContainerScopedRouteEitherDeclaresOrIsRecordedAsAwaiting`,
125
+ and `SET_ROUTES_AWAITING_CARRIER_MODE` may only shrink. The
126
+ declaration authorizes nothing: the handler still opens a carrier
127
+ around each mutation. Choose the mode with the `container-mutations`
128
+ skill; `S_CARRIER_TYPED_READ` only for a handler that reaches no exec
129
+ and no container write.
130
+ - **A GET whose path carries `{sContainerId}`** is lease-enforced, and
131
+ must also be added, with a comment saying what it reads, to
132
+ `routeScope.SET_CONTAINER_READ_ROUTES`
133
+ (`testContainerReadScopeIsAFrozenRatchetedAllowlist`).
134
+ - **A mutating route with no `{sContainerId}`** is named in
135
+ `routeScope.DICT_CONTROL_PLANE_SCOPES` with its scope and a comment
136
+ saying why (`runtimeSetupRoutes` uses `S_SCOPE_BROWSER_HUB`), or
137
+ stamped with `@ffnRouteScope(...)` below its `@app.<verb>(...)` line.
138
+
139
+ If a handler execs into or writes to the container,
140
+ `tests/mutationInventory.json` gains a row: regenerate it with
141
+ `python tools/generateMutationInventory.py --write` and classify the row
142
+ as the `container-mutations` skill describes, or
143
+ `tests/testMutationInventory.py` fails.
144
+
145
+ ### 5. Register state-mutating endpoints with `@ffnAgentAction`
146
+
147
+ If any endpoint on the new module mutates state and a researcher
148
+ could reasonably invoke it from the UI (run, test, verify, commit,
149
+ create, edit, delete, push, publish, upload, write, etc.), it must
150
+ appear in the agent-action catalog so the in-container `vaibify-do`
151
+ CLI can translate researcher intent into the same call. Use POST, PUT
152
+ or DELETE for a mutation: `testAgentActionCatalogShape` refuses a PATCH
153
+ entry, and `testAgentActionRegistered` does not look at PATCH routes.
154
+
155
+ Two things go together:
156
+
157
+ 1. **Decorate the handler.** Import the decorator and apply it
158
+ directly above the FastAPI path-op decorator:
159
+ ```python
160
+ from ..actionCatalog import ffnAgentAction
161
+
162
+ @ffnAgentAction("my-new-action")
163
+ @app.post("/api/my-thing/{sContainerId}/do-it")
164
+ @ffnDeclareCarrierMode(S_CARRIER_MODE_A_SYNCHRONOUS)
165
+ async def fdictRunMyThing(sContainerId: str): ...
166
+ ```
167
+
168
+ 2. **Add a catalog entry** in
169
+ `vaibify/gui/actionCatalog.py::LIST_AGENT_ACTIONS`. Copy the shape
170
+ of existing entries: `sName`, `sCategory`, `sMethod`, `sPath`,
171
+ `bAgentSafe`, `sDescription`. The `sName` here must match the
172
+ decorator argument exactly. Add `saQueryFields` naming every handler
173
+ parameter FastAPI reads from the query string (anything that is not
174
+ a path placeholder, a body model or the `Request`);
175
+ `testGeneratedActionsSendFieldsOnTheTransportTheRouteReads` fails
176
+ otherwise, because `vaibify do` would send that field as a body the
177
+ route never reads.
178
+
179
+ Pick `bAgentSafe`:
180
+
181
+ - **True** — execution, read-side work, test runs, agent authoring
182
+ (writing files, creating/updating steps the agent is working on),
183
+ committing canonical state, downloading inputs.
184
+ - **False** — destructive (delete, clean, kill, force), externally
185
+ visible (push to Overleaf, publish to Zenodo), or requiring
186
+ researcher judgment (accept plots as standard, set Zenodo metadata,
187
+ reorder pipeline semantics). `push-to-github` is agent-safe by a
188
+ recorded decision; read its catalog entry before citing it as
189
+ precedent.
190
+
191
+ Every state-mutating route, whether or not the GUI invokes it, must
192
+ also have a CLI equivalent. Register it in exactly one place:
193
+
194
+ - `LIST_AGENT_ACTIONS` — callable by agents and by `vaibify do`
195
+ (ships into the container);
196
+ - `LIST_RESEARCHER_ACTIONS` — `vaibify do` on the host only, never
197
+ shipped into the container (credential-free researcher actions); the
198
+ route must also be in `SET_INTENTIONALLY_EXCLUDED_PATHS`, and its
199
+ entry needs `saQueryFields` on the same rule as above;
200
+ - `DICT_ROUTE_TO_HOST_COMMAND` — a hand-written `vaibify` subcommand
201
+ (credentials, typed confirmations, interactive frames), which must
202
+ already exist;
203
+ - `SET_GUI_ONLY_ROUTES` — genuine browser plumbing, with a one-line
204
+ reason.
205
+
206
+ The last three live in `vaibify/gui/researcherActions.py`.
207
+ `SET_INTENTIONALLY_EXCLUDED_PATHS` (in `actionCatalog.py`, with a
208
+ comment) keeps a route off the agent lane, and is not a CLI home: an
209
+ excluded route still needs exactly one of the three, whether or not the
210
+ GUI calls it. The setup wizard's step route is both excluded and mapped
211
+ to `vaibify setup-docker` in `DICT_ROUTE_TO_HOST_COMMAND`.
212
+
213
+ Confirm registration:
214
+
215
+ ```bash
216
+ python -m pytest tests/testArchitecturalInvariants.py::testAgentActionRegistered -v
217
+ python -m pytest tests/testArchitecturalInvariants.py::testEveryGuiInvokedMutationHasCliEquivalent -v
218
+ python -m pytest tests/testArchitecturalInvariants.py::testEveryCatalogActionHasCliCommand -v
219
+ python -m pytest tests/testArchitecturalInvariants.py::testGeneratedActionsSendFieldsOnTheTransportTheRouteReads -v
220
+ python -m pytest tests/testHubAppGovernance.py tests/testResearcherActions.py -v
221
+ ```
222
+
223
+ `testAgentActionRegistered` builds only the viewer app;
224
+ `testHubControlPlaneRoutesAreGoverned` applies the same rule to the hub.
225
+
226
+ ### 6. Raise the module-size caps you cross
227
+
228
+ `testModuleSizeIsBounded` holds every module to `I_MODULE_LINE_CAP`, or
229
+ to its entry in `tests/testArchitecturalInvariants.py::DICT_GRANDFATHERED_MODULE_LINES`,
230
+ which records the module's size when it was last raised. The modules a
231
+ new route registers in (`actionCatalog.py`, `routeScope.py`,
232
+ `appFactory.py`, `pipelineServer.py`) sit at or near their caps, so a
233
+ registration line usually trips one. Raise that entry by exactly what
234
+ the edit needs, with a one-line dated reason above it, as the setup
235
+ wizard did:
236
+
237
+ ```python
238
+ # 1544 -> 1548 (2026-10-24): the setup wizard's step route is excluded from the agent catalog, with why.
239
+ "actionCatalog.py": 1548,
240
+ ```
241
+
242
+ A module still at the default cap takes its first entry the same way.
243
+ Never delete blank lines or docstrings to fit under a cap.
244
+
245
+ ### 7. Add tests
246
+
247
+ Create `tests/test<Name>Routes.py`. At minimum:
248
+
249
+ - A test that imports the module and confirms `fnRegisterAll` is
250
+ callable.
251
+ - One test per new endpoint, using the FastAPI `TestClient`. Look at
252
+ existing `tests/testPipelineRoutes*.py` and `tests/testSyncRoutes*.py`
253
+ for mocking patterns for the Docker context.
254
+
255
+ Do not add Docker-dependent tests here — those go under the
256
+ `testContainerBuildIntegration.py`-style exclusions.
257
+
258
+ ### 8. Run the contract tests
259
+
260
+ ```bash
261
+ python -m pytest tests/testArchitecturalInvariants.py -v
262
+ python -m pytest tests/testCarrierModeDeclaration.py tests/testSecurityBoundaryInvariants.py tests/testStyleInvariants.py -v
263
+ ```
264
+
265
+ Expect these to pass without modification:
266
+
267
+ - `testEveryRouteModuleExportsRegisterAll`
268
+ - `testAllRouteModulesRegisteredInInit`
269
+ - `testAllPackageModulesDefineDunderAll` (if your file lands outside
270
+ `routes/`, make sure it declares `__all__`)
271
+ - `testModuleSizeIsBounded`, once step 6 is done
272
+ - `testEveryContainerScopedRouteEitherDeclaresOrIsRecordedAsAwaiting`
273
+ and `testContainerReadScopeIsAFrozenRatchetedAllowlist`
274
+
275
+ ### 9. Run the new route's tests and the full suite
276
+
277
+ ```bash
278
+ python -m pytest tests/test<Name>Routes.py -v
279
+ python -m pytest tests/ -q --ignore=tests/testContainerBuildIntegration.py
280
+ ```
281
+
282
+ ### 10. Exercise the endpoint end-to-end if possible
283
+
284
+ If the route affects the dashboard or reports container state, start a
285
+ real container and confirm the GUI reflects the new data correctly.
286
+ Remember: the dashboard must always reflect the true state of the
287
+ workflow and the container. Do not cache, short-circuit, or hide
288
+ errors.
289
+
290
+ ## Common failure modes
291
+
292
+ - **`testAllRouteModulesRegisteredInInit` fails.** You forgot to add
293
+ the module to the `from . import (...)` block in
294
+ `vaibify/gui/routes/__init__.py`, which is what the test reads. Add
295
+ it to `__all__` as well; the test does not check that list.
296
+ - **Every app-building test fails with "Mutating routes with no declared
297
+ authorization scope".** Step 4: a mutating route outside the
298
+ `{sContainerId}` convention needs a `DICT_CONTROL_PLANE_SCOPES` entry
299
+ or an `@ffnRouteScope` stamp.
300
+ - **Import error at app startup.** The route module imports a symbol
301
+ that doesn't exist, or there's a circular import. Route modules can
302
+ import from `..pipelineServer`, `..pipelineRunner`, and domain
303
+ modules, but not from other route modules — those are siblings.
304
+ - **A 500 error on the new endpoint when the container is stopped.**
305
+ Handlers should check container state via `dictCtx["require"]` (called with the container id)
306
+ early and return a clean 4xx error when the container is not
307
+ running. Do not mask the error — surface it.
308
+ - **The endpoint answers 404 though every contract test passes.** The
309
+ module is imported but not mounted: step 3.
310
+
311
+ ## Do not
312
+
313
+ - Do not bypass `VaibifyApi` on the frontend side if you're also
314
+ adding a JS caller for this endpoint — route through
315
+ `scriptApiClient.js`.
316
+ - Do not embed science-specific example names (planet names, system
317
+ names) in route paths, sample data, or test fixtures.
318
+ - Do not add a new polling loop on the frontend without discussion —
319
+ see the invariants in `vaibify/gui/static/AGENTS.md`.