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.
- vaibify-0.2.2/.claude/skills/add-data-loader/SKILL.md +266 -0
- vaibify-0.2.2/.claude/skills/add-route-module/SKILL.md +319 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.claude/skills/container-image-and-packaging/SKILL.md +58 -24
- {vaibify-0.2.1 → vaibify-0.2.2}/.claude/skills/container-mutations/SKILL.md +40 -23
- {vaibify-0.2.1 → vaibify-0.2.2}/.claude/skills/dashboard-state-honesty/SKILL.md +18 -11
- {vaibify-0.2.1 → vaibify-0.2.2}/.claude/skills/host-mode-and-paths/SKILL.md +2 -2
- {vaibify-0.2.1 → vaibify-0.2.2}/.claude/skills/monitor-pr/SKILL.md +37 -16
- {vaibify-0.2.1 → vaibify-0.2.2}/.claude/skills/reproducibility-lane/SKILL.md +152 -36
- {vaibify-0.2.1 → vaibify-0.2.2}/AGENTS.md +159 -58
- {vaibify-0.2.1 → vaibify-0.2.2}/CLAUDE.md +159 -58
- {vaibify-0.2.1/vaibify.egg-info → vaibify-0.2.2}/PKG-INFO +1 -1
- {vaibify-0.2.1/vaibify → vaibify-0.2.2}/docs/environmentsAndProjects.md +1 -1
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/forAgents.md +7 -0
- {vaibify-0.2.1/vaibify → vaibify-0.2.2}/docs/reproducibility.md +6 -4
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testALostClaimRecoversWhereverItIsMet.py +9 -2
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheZenodoRowOffersBothRemedies.py +7 -3
- vaibify-0.2.2/tests/browser/testTheZenodoRowOffersVerifyFirst.py +106 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/falsificationRegistry.py +303 -12
- vaibify-0.2.2/tests/testASavedTestRunsOnce.py +59 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArchitecturalInvariants.py +43 -13
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCarrierMigratedRoutes.py +108 -78
- vaibify-0.2.2/tests/testContainerGuidanceMatchesCatalog.py +206 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointAgentSkills.py +1 -1
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGates.py +2 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGatesMutationCoverage.py +3 -3
- vaibify-0.2.2/tests/testLevelTwoGapsAgreeWithTheGate.py +76 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineStateHostIncidents.py +39 -0
- vaibify-0.2.2/tests/testPostPushVerifyFollowsTheSharedPredicate.py +144 -0
- vaibify-0.2.2/tests/testPublishLogsNameOnlyPublicIdentifiers.py +56 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReconfirmFalsificationJudgesKills.py +33 -7
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncRoutesCoverage.py +45 -1
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTestRoutesCoverage.py +2 -1
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheNextStepIsNamedOnlyWhenOrderMatters.py +65 -0
- vaibify-0.2.2/tests/testTheSignOffSaveReadsOnlyLevelOne.py +90 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVerifyRemoteIsBoundToThePush.py +35 -2
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/reconfirmFalsification.py +10 -3
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/_version.py +3 -3
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/entrypoint.sh +22 -21
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/create-pipeline-step/SKILL.md +63 -26
- vaibify-0.2.2/vaibify/containerImage/skills/dashboard-map/SKILL.md +113 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/diagnose-failed-run/SKILL.md +17 -9
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/graceful-exits/SKILL.md +4 -1
- vaibify-0.2.2/vaibify/containerImage/skills/proof-ladder/SKILL.md +369 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/read-arxiv/SKILL.md +5 -1
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/read-manuscript/SKILL.md +5 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/reproducible-analysis/SKILL.md +13 -7
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/running-steps/SKILL.md +15 -5
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/session-budget/SKILL.md +13 -4
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/vaibify-doc-map/SKILL.md +3 -1
- {vaibify-0.2.1 → vaibify-0.2.2/vaibify}/docs/environmentsAndProjects.md +1 -1
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docs/forAgents.md +7 -0
- {vaibify-0.2.1 → vaibify-0.2.2/vaibify}/docs/reproducibility.md +6 -4
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/AGENTS.md +76 -41
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/actionCatalog.py +24 -19
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/fileStatusManager.py +10 -11
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pipelineState.py +39 -5
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routeContext.py +22 -6
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/environmentArchiveRoutes.py +22 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/repoRoutes.py +16 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/reproducibilityRoutes.py +5 -1
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/stepRoutes.py +40 -8
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/syncRoutes.py +75 -4
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/testRoutes.py +16 -14
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/AGENTS.md +87 -42
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/index.html +1 -1
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptApplication.js +8 -7
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptSyncManager.js +12 -7
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptWorkflowRequirements.js +55 -8
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/testStatusManager.py +25 -2
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/workflowManager.py +14 -1
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/dependencyPinning.py +7 -7
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/l3Attestation.py +1 -1
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/levelGates.py +54 -13
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/levelOrdering.py +58 -4
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/scheduledReverify.py +44 -8
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/syncBookkeeping.py +6 -5
- {vaibify-0.2.1 → vaibify-0.2.2/vaibify.egg-info}/PKG-INFO +1 -1
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify.egg-info/SOURCES.txt +8 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify.egg-info/scm_file_list.json +8 -0
- vaibify-0.2.2/vaibify.egg-info/scm_version.json +8 -0
- vaibify-0.2.1/.claude/skills/add-data-loader/SKILL.md +0 -176
- vaibify-0.2.1/.claude/skills/add-route-module/SKILL.md +0 -202
- vaibify-0.2.1/vaibify/containerImage/skills/proof-ladder/SKILL.md +0 -247
- vaibify-0.2.1/vaibify.egg-info/scm_version.json +0 -8
- {vaibify-0.2.1 → vaibify-0.2.2}/.claude/hooks/askSensitiveEdit.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.claude/hooks/blockDestructiveGit.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.claude/settings.json +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.claude/skills/terminal-sessions/SKILL.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.githooks/pre-commit +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/agentDocsPathCheck.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/badges.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/browser-chromium.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/browser-firefox.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/browser-webkit.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/containerAcceptance.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/docs.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/falsification.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/freshImageBuild.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/mutation.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/pip-install.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/publishedReproduction.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/remoteSsh.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/runtimeSetup.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/security.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/styleContract.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/tests-linux.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/tests-macos-nightly.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/tests-macos.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.github/workflows/toolchainEpoch.yml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.gitignore +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/.zenodo.json +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/CITATION.cff +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/LICENSE +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/README.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/VaibifyIcon.png +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/bin/connect_vc +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/bin/vcTransferCommon.sh +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/bin/vc_pull +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/bin/vc_push +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/cosmic-ray.toml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/_static/.gitkeep +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/_static/custom.css +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/agentCouncil.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/aiUse.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/architecture.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/cli.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/conduct.rst +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/conf.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/developers.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/externalResources.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/index.rst +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/install.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/knownDebt.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/lessons.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/proofLadder.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/quickStart.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/security.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/skillTesting.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/systemPrompt.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/testing.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/vaibify_logo.png +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/vaibify_screenshot.png +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/docs/vibeCoding.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/pyproject.toml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/pytest.ini +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/setup.cfg +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/__init__.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/agentCouncilHarness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/assessedRerunLaneHarness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/attributionShapes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/__init__.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/conftest.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/fakeDockerAdapter.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/filesLane.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testABadgeOffersTheActionThatResolvesIt.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testABlockedRowStillTeaches.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testABuildRefusalIsNotARunningBuild.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAClickSurvivesAPollRender.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAContainerOffThePinWarnsBesideTheSnapshotRow.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testADragThatLeavesTheWindowKeepsScrolling.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testADropTargetIsATargetInEveryBrowser.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testADroppedBuildRequestAttachesInstead.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAFailedStepExplainsItsExitCode.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAFailureToastOffersADiagnosis.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAFullScreenProgramsLimitIsStated.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAHeldTileOffersRelease.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testALateAnswerNeverRepaintsAViewer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testALevelCrossingWarnsBeforeItWrites.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testALockedTileExplainsOnClick.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAMissingFileIsListedNotJustCounted.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testANewStepRunsItsDataCommands.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAPartlyDivergedEnvelopeReadsPartial.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAPendingSignOffIsNotAWarning.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAPreRunWarningReachesTheScreen.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAProgramsCopyWaitsForTheResearchersClick.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAPromoteRefusalSaysWhy.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAPromotionDoesNotTakeItsOwnClaimBack.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAQuickVerificationIsStillReported.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAReadersVerificationLeavesTheAttestationRowStill.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testARecreateSaysWhatItDiscards.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testARefusedCopyOnSelectSaysHowToRetry.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testARefusedTestRunIsNotAFailure.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAResizeDoesNotStrandOldFrames.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAResizeKeepsThePaneFollowingItsOutput.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testARunMenuCheckSaysItIsWorking.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testARunningRemoteCheckPulsesTheBadge.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testASandboxDepositIsNamedOnTheRow.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testASettledAttestationRechecksTheRemotes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAStaleAiDeclarationSaysWhatChanged.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAStaleVerifyAdmitsIt.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testATierWithNothingToCheckSaysWhy.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAVerificationIsFollowedOnTheProjectBlock.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAVerificationPulsesOnlyWhatItAssesses.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAdoptBarOffersOnlyWhatCanWork.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAnAgentsEditAppearsWithoutNavigation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAnAgentsRunMovesTheStepLights.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAnErrorToastKeepsItsRemedy.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAnExternalRunIsAppliedByCategoryAndAnnouncedOnce.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAnInterruptedPromotionSurvivesAReload.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAnOlderScopeRendersAsVerifyAgain.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAnUncheckedPassIsNeverShownAsPassed.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testAssessedVerdictsOnScreen.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testBadgesRepaintAfterAVerify.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testBlankProjectCanReadAndChangeItsSession.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testBrowserJourneys.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCleanOutputsAppliesWhatTheRouteWrote.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCompareManifests.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testContainerizeFromPinnedImage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testConvertToProjectJourney.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCopyButtonsReportTheRealOutcome.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCopyHasAShortcutTheBrowserCannotTake.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCopySurvivesTheSelectionBeingCleared.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilAcceptCarriesItsDirectory.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilBlockedButtonExplainsItself.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilChairbotChat.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilChooserTasks.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilConveneNeedsAModel.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilCredentialConsent.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilDraftSurvivesAReload.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilFinishedSurface.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilGroupNameCannotInjectMarkup.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilImplementPlanButton.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilLoginCapNotice.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilMaximumRoundsReachesTheRecord.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilNotesAndSummarySurfaces.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilPauseSurface.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilPlanningJourney.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilProvenanceLostGateIsReadOnly.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilRetentionBoundaryIsInTheConsole.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilRetryOffer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilSnapshotScopeModal.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testCouncilWorkspaceCloseReturnsToChooser.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testDashboardEdgesTellTheTruth.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testDashboardSkipsAreMarkedStale.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testDeclarationStepClaimsNoRunOutcome.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testDeleteEnvironmentIsTypedNotClicked.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testDestructiveActionsLookDestructive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testDeterminismRowFollowsTheGate.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testDockerBannerNamesWhatFailed.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testDownloadDoesNotAskToLeaveThePage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testEnvironmentInfoModalOpens.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testErrorRedaction.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testExpiredWindowSaysSo.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testFailedBadgeRefreshMakesNoClaim.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testFilesTabDownload.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testFilesTabUpload.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testForeignManifestGuard.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testGeneratedTestsSayWhoWroteThem.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testHelpLivesInOnePlace.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testHostCancelSurface.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testHostProjectJourney.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testHostProjectPicker.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testIdleTimeoutSetting.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testInformationalFilesAreNotLevelTwoDefects.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testInlineFailuresCarryTheDiagnosis.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testLostClaimIsRecoverable.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testManifestCheckReportOnScreen.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testOpenInVsCodeAsksTheHostForTheLink.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testOutputContextNoteIsNeutral.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testPausedBadgeIndicator.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testPerFileZenodoSyncOpensTheModal.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testPickerScreensScroll.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testProjectBlockBadgesAreActionable.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testProjectBlockShowsItCanBeOpened.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testProjectSwitchShowsItsProgress.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testPromoteFromInsideJourney.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testPromoteToHostProjectJourney.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testProofTabLedgerFollowsTheGate.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testPushRunsTheVerifyThatProvesIt.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testQuarantineChipExplains.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testRegenerateWarnsBeforeItCosts.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testRemnantsGlyphAndPanel.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testRemoteFilesGroupByDisposition.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testRemoteSessionSaysWhere.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testReposPanelIsReachableWithAProjectOpen.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testReproducePublishedCard.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testResizeAndCopyHoldTogether.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testRightClickingTheHighlightCopiesIt.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testSaveFailureNamesItsReason.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testSelectingTextWhileAProgramHoldsTheMouse.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testSessionLifetimeSetting.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testSetUpDockerWizard.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testStartBannersBelongToTheirContainer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testStepReorderUsesAPrivateDragType.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testSwitchingProjectsKeepsEachProjectsState.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testSymbolicTokenDependenciesOnScreen.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTerminalPaneSurvivesADrop.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTerminalScrollbackIsReachable.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheAgentMemoryAdviceIsTheServers.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheAiBlockCountsOnlyItsGatingRows.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheAiDeclarationEditsInPlace.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheAiDeclarationFileIsChosenOrGenerated.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheArchiveRowNamesWhereADepositGoes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheArchiveRowsCarryTheirOwnConditions.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheAttestationNudgeIsActionable.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheAttestationNudgeIsAnEncouragement.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheContainerizingWindowFollowsTheHub.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheDriftBannerHidesForThisVisit.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheEnvelopeMirrorRowRenders.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheEnvironmentArchiveRowTellsItsStatesApart.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheGraphLeavesOtherViewersAlone.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheHelpNamesThisMachinesKey.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheImageTrustModalAsksBeforeAnUnbuiltImageRuns.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheLimitSettingsSayWhatWillHappen.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheLockRowKeepsItsStateAndSaysWhy.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheMemoryWatchTellsAKillOnce.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheMergeModalIsActuallyVisible.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheNextStepArrowPointsAtARealRow.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheOpenTimeReadsAreChained.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testThePickerKeepsItsCardsAcrossAPoll.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testThePinnedEnvironmentNoteIsTheServers.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheProjectBlockPaintsOnceAndCorrectly.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheProjectHubDiagnosesItself.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testThePromptRecordNamesWhatItLeftOut.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testThePromptRecordViewerShowsAGeminiRewind.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testThePromptRecordViewerShowsTheRecord.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheReproductionBadgeFollowsTheServer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheResetAndCompareLoopIsReachable.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheResourceHelpDoesNotRecommendACap.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheRunMenuCanStartAnL3Verify.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheSetupWizardKeepsAndReports.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheSetupWizardSignsItselfIn.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheSignOffFollowsTheServer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheTerminalResetGivesTheMouseBack.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheToolbarControlsStayOneCluster.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheVerificationShowsItsOutput.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheVerifyControlsSayTheyAreWorking.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTheX11OptInIsOffByDefaultAndExcludesIsolation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testTileTooltipsSayWhatAClickDoes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testUncoveredLibrariesOnScreen.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testUndecidedRepoPrompts.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testUndeclaredTestCategorySaysNotApplicable.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testUnintrospectableToastSaysWhatHappened.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testUnprovenEnvelopeIsNotAnAlarm.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testUnsignedTabSaysSo.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testUploadZoneNamesItsSourceMachine.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testVectorFigureNoteOnScreen.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testVerifyOffersCommittedRestore.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testVerifyRefusesBeforeItWarns.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testVerifyWarnsBeforeCopyingTheProject.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testViewRenderBaseline.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testViewersBelongToTheirProject.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testWizardStartsFromCommittedFiles.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testWorkflowFieldsCannotInjectMarkup.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testWorkspaceRootReachesThePanels.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/browser/testZenodoRecordsModal.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/carrierStandDown.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/cliRunnerStreams.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/confinedReadScenarios.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/confinedWriteHarness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/conftest.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/councilCredentialLiveHelpers.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/depositFaultServer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/dockerConnectionDoubles.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/dockerRuntimeStub.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/guardCoverageSeed.json +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/hostCapabilityInventory.json +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/hostGitProbeCalls.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/hostGitProbeHarness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/levelGateStubs.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/liveContainerLabels.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/localGitRemote.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/markerPollHarness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/markerStateSupport.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/mutationInventory.json +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/perTestMarkerHarness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/reproduceScriptHarness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/reproductionSourceFixtures.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/rerunAssessmentHarness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/sessionTokenTestHelper.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/shellCompletionHarness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/snapshotProgramHarness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/styleInventory.json +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/syncStatusFixtures.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testABusyCheckWaitsForATransientRecord.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testADivergedBranchIsOfferedAMerge.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testALockThatDeclaresNothing.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAMissingOutputIsNotAModifiedOne.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testARunKeepsThePassingTestsItRecordedLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testARunsOwnOutputsAreNotModifications.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAbandonHostJournal.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAcknowledgementKeepsThePollBaseline.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testActionCatalog.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testActionCommandsDispatchCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAdvancingALevelNeverLowersOne.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAdvertisedCommandsExist.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilCharter.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilContext.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilContextLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilEgressLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilEngine.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilLedger.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilMultiProvider.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilProviders.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilProvidersLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilRegistry.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilRunnerLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentCouncilSnapshotScopeLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentEditsReachTheOpenTab.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentLaneEnforcement.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentLayerSeparation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentRunsItsOwnProject.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentSessionBridge.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAgentUpdateStepAllowlist.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAiDeclarationAddStepAndDeterminismRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAiDeclarationFileLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAiDeclarationStepKind.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAiModelDeclarationIssues.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAiProvenanceStamp.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAlphaFacingTruthfulness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAlreadyCommittedFileIsNotASyncFailure.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAmericanSpelling.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAnOutputAbsentFromTheManifestIsNeverVouchedFor.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAnalysisStack.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testApiClientContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArchiveDepositPlan.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArchiveFeatures.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArchiveMemberValidatorIsShared.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArchivePermanence.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArchiveTestsOptOutLeavesNoUnclearableRows.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArchivedAttestationIsPublic.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArxivClient.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArxivConfigureRoute.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testArxivPathTraversal.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAssessedRerunLane.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAssessedRerunLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAttainingALevelDoesNotLowerAnother.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAttestationRevalidation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAttributionLog.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAttributionLogConcurrentAppends.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testAutoArchive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBackgroundTasksAreReferenced.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBadgeState.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBaseImagePin.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBaseImagePinLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBasenameCollisionBlocksLevelTwo.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBatchedSmallFileRead.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBinaryDeclaration.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBinaryDrift.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBinaryStaleWarning.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBindMountDenyListReadsTheFilesystem.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBindMountRefusesAbsentSource.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBindMountValidator.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBlindSpotDispositions.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBlockersExplainEveryRefusal.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBootstrapEndpoint.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBothBuildLanesPreflightAlike.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBoundedPriorHash.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBreachOutcomeDeterminism.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBridgeGateway.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBroadHandlersPassControlPlaneRefusals.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBrowserCredentialPresentation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBrowserLaneContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBrowserLaneParallelSafety.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBrowserSession.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildArchiveSnapshot.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildCacheInvalidation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildErrorClassification.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildFailureModalFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildInputHash.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildKitRequirement.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildProgressRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildSilenceIsReported.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testBuildTailKeepsTheReason.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCancelledRunLeavesItsLog.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCapabilitiesSurviveMalformedTypedReads.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCapabilityAuthorities.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCarrierIntentAudit.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCarrierModeDeclaration.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCgroupMemory.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testClaimRequiredRefusal.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testClaimRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testClaimSurvivesTheDisclosure.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testClaudeCodeRendererLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testClaudeCodeRendererVerdict.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliActionCommands.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliApiCommands.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliCommands.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliExecIsCleanedUp.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliExecLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliHubSessionMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliMain.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliPipelineDispatch.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliStatusDestroy.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliSubcommands.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCliTemplateProjectTowardLevelThreeLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoherentExport.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoherentExportLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testColimaHostagentLogProbe.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testColimaVersionPreflight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandBuild.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandBuildBaseImagePin.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandBuildPipFlags.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandBuildPreflight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandDoctor.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandGenerateStandards.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandReconcile.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandRevoke.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandSecret.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandSessions.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandSetupDocker.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandStartGui.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandStartPreflight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandUtilities.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommandUtilsDocker.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommitCarrier.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommittedFileRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCommittedFiles.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testComparisonPolicyNotes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCompletePathCommand.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCompletionIsStateOnly.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConcurrentProjectRuns.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConcurrentStateSaves.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfigFieldPreflight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfigLoader.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfigurationFingerprint.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedContainerWrite.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedRead.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedReadParity.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedStreamingLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedStreamingWrite.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedTreeWrite.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedTreeWriteLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedWriteLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConfinedWriteSignalDeath.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConftestCarriesTheContractVerbatim.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConftestLoaderKeepsCommittedFilesStable.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConftestManagerCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConftestManagerMarker.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConftestManagerVersioning.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConftestPerTestMarker.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConftestRefreshBeforeRun.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConftestRefreshSparesStepsWithoutTests.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConnectHubOwnershipGate.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConnectionCheck.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConnectionRouter.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerAcceptance.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerBuildIntegration.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerConfig.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerGit.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerLifecycleGating.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerLock.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerManagerFull.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerMemoryRoute.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerMemoryWatch.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerMemoryWatchLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerOwnership.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerRepairIsLifecycleSafe.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerSessionResolution.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContainerSweepSparesHostProjects.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testContentSecurityPolicy.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConversionLifecycle.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConvertConfigRewrite.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testConvertToContainerRoute.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCopyDirectoryLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilAdmissionLogIsBounded.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilBaselineOffLoop.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCampaignIdentity.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCampaignName.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilChat.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilControllerIntegration.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilControllerLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilControllerSerialization.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCrashRecovery.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCredentialAdmission.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCredentialGate.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCredentialRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCredentialStore.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCredentialTestJob.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilCredentialTestJobLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilDurableProvenance.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilEvidenceContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilExecutionPermissionNote.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilGateDecisions.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilGatewayAuthority.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilGatewayLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilIdleVeto.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilManifestConfinement.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilNotesAndDeliberationSummary.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilPause.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilPeerHubIsolation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilPeerHubIsolationLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilPhaseAttempts.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilPhaseInFlight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilReadiness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilResume.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilRetry.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilRunnerAccess.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilRunnerExecutableMounts.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilRunnerLimitsFollowTheDaemon.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilShutdownOrder.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilSnapshotCapacity.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilSnapshotCredentialExclusions.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilSnapshotRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilSnapshotScope.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilStoppingPoint.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilStorePersistence.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilStoreRetention.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilTurnBudgetsAreEnforced.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCouncilWorkingSpaceReserve.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageBoost.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageBroadGaps.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCliBuildStartReproduce.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCliDoctorChecks.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCliDoctorCommand.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCliReconcileRepairOpen.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCliRemote.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCliStandardsAndActions.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCliUnreadableProjectFile.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreCommitCarrier.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreDataLoaders.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreEnvironmentDeletion.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreFileStatusManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreGitStatus.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreHostConnection.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreOperationJournal.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCorePinnedEnvironment.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreServerLifespan.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreSessionLifecycle.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreStartReservation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreStateManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreTerminalContainment.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCoreTerminalSession.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilControllerRefusals.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilGatewayLifecycle.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilProviderAdapters.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilStateCampaign.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilStateChat.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilStateCredentialTest.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilStateEngine.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilStateRouteHelpers.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilStateRunnerAndEgress.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilStateSnapshotScope.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageCouncilStateStore.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerConnectionTransfers.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerConnectionTypedReads.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerContainerManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerDisposableContainer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerDisposableSpecification.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerImageBuilder.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerLifecycleRepair.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerPinnedImage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageDockerRuntimeRemedies.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageGaps.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageHostControlHandlers.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageHostControlSocket.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityDeterminismAndRerun.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityDockerfileExport.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityEnvironmentSnapshot.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityImageAcquisition.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityImageDeposit.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityLevelGates.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityOverleafSync.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityRepoFiles.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityReproductionSource.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityScheduledReverify.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageReproducibilityZenodoArxiv.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesAEnvironmentArchive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesAFalsification.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesAFileRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesAPipelineSideEffects.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesAPromotionRecovery.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesATerminal.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBAppFactory.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBBuild.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBGit.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBPipelineServer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBRegistry.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBReplay.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBReproducibility.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBReproduction.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBStep.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageRoutesBSync.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCoverageTargeted.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCreationWizardRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCredentialIsolation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCredentialRedactionIsBySpan.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCredentialRedactor.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCredentialRedactorMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCredentialTestErrorsStayClean.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCrossMachineUserVerification.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testCrossWorkflowStateErasure.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDaemonCapacity.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDaemonDiskPreflight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDashboardColumnsFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDataArchiverExtended.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDataArchiverMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDataLoaders.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDataLoadersCsvErrorPaths.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDataLoadersMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDataLoadersStayOutOfTheHub.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDataPreviewInjection.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeclarationFreshness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeclarationPushMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeclarationStepHonorsTheSlugContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeclaredGuaranteesAreAnchored.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeclaredPackagesMatchTheImage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeleteEnvironmentRoute.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDependencyDismissalRoute.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDependencyPinning.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDependencyPinningMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDependencyReconciliationGatesLevelOne.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDependencyScan.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDependencyScanRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDependencyScanner.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDepositIsNotDownloadedTwice.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDepositSeams.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeterminismEnvHonesty.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeterminismGate.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeterminismRowMatchesItsGate.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeterministicGeneratorIsAgentSafe.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDeterministicTestGenerator.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDigestTimestampNaming.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDirectTestRunsRestoreTheMarkerPlugin.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDirectoryListing.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDiskSpace.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDisposableContainerLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDisposableSurvivorReclaim.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerBinaryIsolation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerBuild.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerConnection.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerConnectionExecResult.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerConnectionLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerContext.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerErrorDiagnosis.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerHostContextRoundTrip.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerLiveDaemonRequirement.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerRuntimeClassification.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerStatusEndpoint.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerfileComposition.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerfileHardening.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerfileLint.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerfileLintMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerfileNetworkRetries.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDockerfileProvenance.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDocsMatchWorkflowTriggers.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDocsPublishedLinksResolve.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDoctorFindingsNameACommand.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDoctorInterpreterArchitecture.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDoctorIsReadOnly.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDoctorNetworkGraph.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDoctorNetworkLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDoctorProjectScope.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDoctorScopesAndExitCodes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDoctorShellCompletions.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDownloadRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDraftRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testDurableFile.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointAdvertisedPaths.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointAgentDocLinks.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointBuildBinary.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointCallsOnlyFunctionsItDefines.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointClaudeSettings.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointGitCredentials.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointInstructionPrecedence.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointMigration.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointPipNotAPackage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointReadinessMarker.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointRepairsBrokenDocLinks.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointRepoRefs.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointResourcesGuidance.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEntrypointRootPhasePath.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvelopeImageCurrency.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvelopeRegenerationReportsItsDelta.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvelopeSnapshot.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvelopeTierResultsAreVisible.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentArchive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentArchivePromotion.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentArchiveRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentArchiveStop.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentDeletion.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentDrift.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentInfoRoute.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentSnapshot.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEnvironmentSnapshotMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEphemeralStore.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testEveryLevelTwoSyncRefusalIsNamedByABlocker.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testExecArgumentBudget.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testExecSocketExchange.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testExecutionProfiles.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testExecutionProfilesLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testExhaustiveCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testExitCodesAreExplained.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testExitedContainerEvidence.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testExplicitReleaseAuthority.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFailedSaveGroundTruthFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFalsificationAttestation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFalsificationAttestationMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFalsificationRoutesCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFalsificationRoutesMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFalsificationSharding.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFigureServer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFigureViewerFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileBrowserEscapingFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileEdgesAreSafe.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileEndpointsAndMiddleware.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileStatusManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileStatusManagerInvalidation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileStatusManagerProofAdditions.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileStatusManagerStaleness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileStatusManagerTimestamps.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFileTransfer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFinalCoverageGaps.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testForcePushArgumentOrder.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testForeignManifestGuard.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testForwardedHostPortFree.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFreshnessUncheckedLevelOne.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testFunctionLengthStatement.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGatesRunOnEveryPullRequest.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGenerateReproducibilityEnvelope.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGeneratedFileNamesAreStepNamed.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGitBadgesPartialRenderFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGitRoutesProjectRepoSync.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGitRoutesRemoteUrl.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGitStatus.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGithubAuth.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGithubBadgeMeansAgreementNotCleanliness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGithubMirror.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGithubRemoteIsDerivedNotDeclared.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGithubRoutesProjectRepoCwd.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGithubTokenBinding.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGithubTokenResolution.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGithubWorkflow.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGracefulExitsChecker.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGuiBuildWarnsAboutTheMachine.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGuiLaunchHonesty.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGuiSignalsItsCategory.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testGuiTemplateManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHarnessHookMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHashStaleness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHashStalenessCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHashStalenessIntegration.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHashStalenessManifest.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostBusyOracle.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostCancel.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostCapabilityInventory.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostClaimPath.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostCliRunsThroughTheHub.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostCliSession.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostConfinedRead.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostConnection.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostControlChannel.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostCpuAccounting.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostDeterminismEnvironment.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostGitAndReposPanel.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostGitSafetyProbes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostHeaderCheck.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostIncidents.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostModeContainerOnlyRefusals.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostModeDaemonGate.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostModeHonestyGates.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostModeProjectRoots.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostPathGuardCorpus.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostPrerequisiteReport.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostProjectAsksGitWithoutTimeoutBinary.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostQuarantineSurface.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostReadNeedsDirectoryRelativeAccess.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostResidueStaysInsideOneProject.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostScratchSweeper.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostSnapshotTwin.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostStreamingWrite.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostSubprocessConfinement.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostTerminal.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHostTransfer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHubAppGovernance.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHubDoctorRoute.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHubIdleWatchdog.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHubPortRegistry.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHubSessionCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testHubShutdownSignals.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testIdleWatchdogOffLoop.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageAcquisition.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageArchiveVersioning.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageBuilder.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageBuilderExtended.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageLocale.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageTrustAnsweredForThePin.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageTrustCommandLine.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageTrustGuardsTheLaunch.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageTrustLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageTrustProvenanceRows.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testImageTrustTextHasOneHome.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInitRegistrationOutcome.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInitTemplateRepositories.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInjectionGuards.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInlineCodeCommandsPassPreflight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInputDataStaleness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInstallScriptAgents.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInteractivePauseSurvivesReconnect.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInteractiveSteps.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testIntrospectionScriptGaps.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testIntrospectionTfrecord.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testInventoryRepositoryGitSurface.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testIsolationGating.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testKeepAliveManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testKeepAliveSpawnLedger.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testKeychainIsolationCrossesProcesses.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testL3Attestation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testL3AttestationMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLatexAnnotation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLatexConnectorExtended.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLeaseSessionBinding.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLedgerFormatIsCanonical.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLegacyBuilderLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelBlockers.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelCellsNeverOverstate.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelContiguousClimbContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGateL2Arxiv.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGateL2Blockers.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGateL3.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGateL3Blockers.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGateL3EndToEnd.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGatesBlockerCache.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGatesCoverage2.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGatesRefusalPropagation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelGatesStepClassifiers.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelReportCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLevelTwoRechecksLocalBytes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLifecycleLogging.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLifecycleRouteAuthority.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLinuxDockerPreflight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testListModules.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLiveLanesLabelWhatTheyCreate.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLiveSessionBoundary.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLlmInvokerBranches.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLockInputFallsBackToVaibifyRequirements.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testLoggingHygiene.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMachineAttention.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMakeDirectory.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testManifestCheck.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testManifestCheckReport.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testManifestCompletenessAsksTheWriter.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testManifestOwnershipFromSnapshotFacts.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testManifestPaths.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testManifestVerifyRoute.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testManifestWriter.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testManifestWriterMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerAppliedToUnnecessaryStep.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerBookkeepingIsIgnored.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerDigestVerdicts.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerFreshnessLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerFreshnessPoll.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerHashesTemplatedPlots.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerLevelGate.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerNamespaceFromLoadedWorkflow.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMarkerStaleness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMatplotlibSaltIsolation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMatplotlibSaltIsolationLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMissingFileBadges.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testModelIdsAreHeldToPlainShapes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testModuleAttributeReferencesResolve.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMtimeCache.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMutationAttribution.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMutationBoundary.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMutationInventory.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testMutationScannerTypeCheckingExemption.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testNarrowLlmFallback.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testNetworkEfficiencyFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testNoProjectOpenRefusal.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testNoQuoteBlindEscaperInTheFrontend.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testNoUnforwardedUrlsInRemoteSession.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testObtainedBaseStacksLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOldMarkerReadsAsItAlwaysDid.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOomAttribution.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOperationJournal.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOperationJournalMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOrphanTransition.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOrphanedPublishMachinery.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOrphanedTerminalsAreEnded.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOrphanedWriteTemporaries.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOutputFreshnessByContent.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOutputProvenance.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverlayBannersReadTheStepFirst.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafBehavior.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafChipAgreesWithRows.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafFetchHashes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafMirror.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafPushProvenance.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafSync.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafSyncCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafSyncExtended.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testOverleafTokenStaysOffTheCommandLine.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPackagedResources.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPathContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPathTraversal.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPathValidation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPendingPromotionRecord.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPerContainerStateLifecycle.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPerTestMarkerEndToEnd.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPidFileRegistry.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPinnedEnvironmentDrift.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPinnedImageAcquisition.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineLogAppend.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineLoggerCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineLoggerRotation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRoutesCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRoutesDiagnostics.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRoutesEtag.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRoutesManifestText.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRoutesMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRoutesShaCache.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerBranches.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerErrors.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerExtended.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerFull.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerHeartbeat.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerOffLoop.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerPure.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerStepsAndLog.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineRunnerStreamingEmitter.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineServerAgentAuth.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineServerCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineServerFull.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineServerGaps.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineServerLifespan.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineServerPure.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineServerRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineServerTaskEviction.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineState.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineStateLiveness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineStateMock.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineStateWriter.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineTestRunnerCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPipelineUtilsScaling.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPlotRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPoisonRecord.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPortAllocator.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPreferencesRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPreferencesStore.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPreflightNamesTheCauseNotTheCascade.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPreflightResult.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPreflightValidation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProcessLiveness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectAdoption.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectAdoptionFalsification.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectBookkeepingSidecar.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectConfigExtended.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectContextRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectDepositPromotion.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectHeaderNeverOutranksItsRows.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectHubRefusals.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectRepoDetection.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectScopedAgentActions.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectScopedRegistries.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProjectSwitchWithinContainer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPromoteToHostProjectRoute.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPromotionRecovery.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPromptRecordAgentsLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPromptRecordManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPromptRecordPollFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPromptRecordPublishesNoRawDigestOracle.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPromptRecordViewer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProofGateLevel1.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProofLadderUncoveredLines.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProofLevelInPollResponse.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProvenanceCommitDuringRun.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProvenanceContractMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProvenanceTaint.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProvenanceTracker.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProvenanceTrackerMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testProviderApiTransport.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPublicationScopeSeparatesTheLevels.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPublishedReproductionWorkflow.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPullFromContainer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPullManuscriptRoute.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testPythonPackagePreflight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testQuarantineDetailRoute.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testQuarantineRefusalNamesItsCause.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testQuickStartJourneyThroughRoutesLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testQuickStartReaderJourneyLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRandomnessLint.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReadOnlyCouncilRunsNoCommands.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReaderRecordIsNeverCommitted.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReaderRunReplaysRecordedEpoch.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReadinessRoute.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReclaimNeverTreatsANameAsAnId.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReconcileNothingToReconcileExitsZero.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReconcileQuarantineRoute.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReconciliation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReconciliationMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReconnectWindowContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRecordedEpochReplay.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRefactoringCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRefreshRemotes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRefuseUnexecutedCommandFields.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRefusedArchiveConversionChangesNothing.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRegistryContainerRecognition.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRegistryIsNotAnL3Requirement.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRegistryManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRegistryRemovalIsLeaseEnforced.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRegistryRouteLockState.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRegistryRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRegistryRoutesCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemainingGaps.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemnantReapers.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemnantRemovalLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemnantRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemnantScanner.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemnantScannerLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteBadgeRefresh.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteClient.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteDataMarker.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteDataOverwriteGate.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteDataProvenance.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteDataRecordIdentity.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteHelper.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteProtocol.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteReattachment.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteSessionLane.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemoteSshLane.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRemotesMigration.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRenameKeepsPerTestMarkerSections.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReplayGate.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReplayRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRepoFiles.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRepoFilesMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRepoRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRepoStatusTypedRead.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReposPanelFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReposPollingFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRepositoryPreflight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceCommand.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceCommandAttestation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceFromSnapshot.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceFromSource.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproducePublishedFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceRerunHashCompare.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceScriptContainerHalf.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceScriptDeterminism.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceScriptGateRejectsResidualTokens.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceScriptGenerator.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceScriptParity.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceScriptParityLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceTierParity.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproduceTierThreeRemedy.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproducedManifest.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproducibilityRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproductionLabelInPollResponse.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproductionLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproductionProgress.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproductionRecordBindsItsEvidence.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproductionRecordPlatform.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproductionReport.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproductionRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testReproductionSource.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRequirementsMirrorNamesWhatItDrops.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunAssessmentEvidence.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunAssessmentImageCheck.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunAssessmentPrecedence.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunAssessmentStructure.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunAssessmentTranscription.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunDiagnostics.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunHashCompareMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunProcedureGuards.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunRefusesUnexecutedSteps.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunRegeneratesWhatItGrades.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRerunVerifiesWhatItRan.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResearcherActions.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResourceAdequacy.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResourceLimitDrift.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResourceLimitLiveApply.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResourceLimitLiveApplyLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResourceLimitRoundTrip.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResourceLimitSettings.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResourceLimits.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResourceMonitor.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testResumableDownload.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRouteContextCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRoutesRefuseCallerPathsOutsideTheirRoot.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRowAndGateAgreeOnManifestFreshness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRunAllRespectsDisabledFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRunFrameWithABadStepIsRefusedNotFatal.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRunStateWireCarriesStepResults.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRuntimeSetupFacts.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRuntimeSetupPlan.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRuntimeSetupRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testRuntimeSetupRunner.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSafeReaper.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSandboxArchiveWithholdsLevel3.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testScheduledReverify.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSecretAvailability.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSecretFilesFollowTheirContainer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSecretManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSecretNamesWithSeparatorsCanBeStagedAndMounted.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSecurityBoundaryInvariants.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSeededFolderRepositoryList.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSeededFolderRepositoryListLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSemanticWorkflowFingerprint.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testServerLaunchContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testServerMiddlewareCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionCapSetting.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionCardinality.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionEndingNotice.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionLaneFollowsClaim.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionLifecycleEvaluator.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionLifecycleFoundation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionRegistry.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionRenewalAndWarningBands.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSessionSpawnRoute.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSetupWizard.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSetupWizardIsGuarded.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSetupWizardKeepsWhatItDoesNotShow.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testShadowContainerAdmission.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testShadowLaneLockFiles.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testShadowNamesTheImageGap.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testShadowRerun.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testShellCompletionInsertion.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testShellCompletionPositions.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testShellCompletionWiring.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testShellSetupVersioning.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSignOffCapturesPlotBytes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSignOffIsDatedByTheContainerClock.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSignOffReconciliationByContent.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSkillIntegrity.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSleepPreventionFollowsWork.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSnapshotAnswersBlobShaAndMissing.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSnapshotCacheRacyClean.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSnapshotNamesStayInsideTheRoot.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSpawnedWindowSignsIn.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStaleCapturedWorkflow.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStaleOutputAdvisoryIsNotADeadPayload.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStaleOutputDetector.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStaleReproduceScriptIsNotRunnable.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStandardsGenerator.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStandardsLoader.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStartLaunchCommands.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStartPreflightExtensions.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStartReservation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStartReservationFalsification.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStateContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStateDirectoryIsolation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStateLevelHighWater.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStateManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStateRecovery.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStateWriteLock.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStaticAnalysisClean.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStatusContextLine.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepDirectoryValidator.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepEditFingerprintFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepEditorFingerprintLifetimeFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepGateAgreesWithManifestWriter.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepLabels.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepLevelStates.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepListRenderFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepRename.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepRenameCascadeMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepRenameCascadeReachesEverything.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepRenameMoveCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepRendererBlockerGlyphs.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepSlugContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepSlugMirrorEquivalence.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepTestLogDirectory.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepUpdateDestructiveGuard.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStepVerdictFromRuns.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStochasticDetector.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStopByRunMarkerLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStopDoesNotNeedTheSession.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testStyleInvariants.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSupervisionAnchor.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSupervisionChipFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSupervisionWatchdog.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSymbolicStepReferencesAreChecked.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncDispatcherCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncDispatcherExtended.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncDispatcherGaps.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncDispatcherMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncDispatcherPure.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncEpoch.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncEpochReachesTheIdleDashboard.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncErrorClassification.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncErrors.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncProjectionCoversEveryPublishedPath.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncRoutesPushHardening.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncRoutesPushIdempotency.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncTestGenFull.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSyncVerifyRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSystemPackagePreflight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testSystemPackageValidation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTemplateManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTemplatedPlotMarkerInAContainerLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalContainment.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalContainmentLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalPromptReset.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalPromptResetLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalRedialContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalResizeOrdering.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalRoutesCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalSelectionContrast.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalSession.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalSessionExtended.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalStartWindowIsDrained.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTerminalTeardownSurvivesShutdownCancellation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTestGenerationIntegrity.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTestGeneratorBranches.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTestGeneratorExtended.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTestGeneratorPure.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTestMarkerContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTestMarkerSystem.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTestsAndSignOffFollowThePlotBytesLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTextIoNamesItsEncoding.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheArchiveIsAskedWhatItStored.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheBlockedMapOutlivesTheArrow.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheDashboardSettingsReachEveryMode.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheLockIsCheckedBeforeARerunIsSpent.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheLockVerdictCarriesItsFingerprint.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheManifestDescribesTheFilesItShipsWith.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testThePollDoesNotRewriteWhatItReads.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheProjectDepositIsAskedWhatItStored.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheReadinessRouteAnswersARequest.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheRerunSaysWhatItCosts.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheScalarGateHasNoSecondList.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheSnapshotIsADeclaredRead.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTheStagedClientStaysCurrent.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTimedCommandComposition.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTimedCommandsLive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testToolchainEpoch.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testToolchainPinDrift.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testToolkitEndToEnd.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTopologyCorrectFileActions.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTrackedIndexBeyondSymlinkBucket.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTrackedReposManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTranscriptSanitizer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTranscriptSanitizerCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTranscriptSanitizerJsonRecords.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTranscriptSanitizerParallel.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTranscriptSanitizerSplitSecrets.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTransferResolvesRelativeContainerPaths.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTruthDerivation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTypeAloneStopsTheSwallow.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testTypedReadFailureIsNeverAbsence.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testUncoveredLibrariesAreNamed.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testUndiscoveredTerminalRecordSettles.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testUnloadDoesNotReleaseContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testUnseededRandomnessReachesLevelThree.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testUploadRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVaibifyDoCli.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVaibifyDoHeadless.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVaibifyDoUnansweredRequest.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVaibifyOpen.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVendoredPdfJs.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVerificationLiveOutput.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVerifyResolvesPlotPathsWhereTheRunWritesThem.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVirtiofsRetry.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVolumeCommandsStayOffTheTerminal.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVolumeManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testVsCodeAttachLink.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWallClockBudget.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWebSocketAuthorization.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWithdrawnTerminalLegacyRecords.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWizardDirectoryPickerContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWizardsShareOneRepositoryAuthority.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowDiscoveryLegacyRoot.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowFieldTypesAreValidatedAtLoad.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowLoadingBannerFrontendContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowManagerExtended.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowManagerMutationCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowManagerScaling.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowMergeGateSplit.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowMigrations.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowMigrationsAICSLevel.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowMigrationsProofLevelRename.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowReloadDetector.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowReloadIntegration.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowRoutesCoverage.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowSchemaForwardCompat.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkflowSwitchGenerationContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkspacePath.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkspaceRootHandshake.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWorkspaceSeedPaths.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testWritableLayerLoss.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testX11Findings.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testX11Forwarding.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testX11OptIn.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testX11Settings.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoCandidatesCoverLevelThree.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoClient.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoClientExtended.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoDatasetDownloadIsWithdrawn.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoEnvelopeArchive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoFetchHashes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoIntegrationGaps.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoLookupPatience.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoPublishWhereTheRecordIs.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoServiceAuthorities.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoUploadResilience.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/testZenodoVerifyUsesTheRecordedService.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/timingSupport.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tests/typedHashDouble.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/bootstrapAcceptanceContainer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/carrierIntentAudit.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/checkAgentDocsPaths.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/checkAmericanSpelling.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/checkBrowserLaunches.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/checkInstalledDistribution.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/checkToolchainEpoch.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/checkToolchainPinDrift.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/computeBuildInputHash.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/deriveLaneSelection.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/evaluateSkillOutcomes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/evaluateSkillTriggers.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/generateHostCapabilityInventory.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/generateMutationInventory.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/generateStyleInventory.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/inventoryRepositoryGitSurface.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/ledgerFormat.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/listModules.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/mutationAttribution.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/skillEvals/outcomeTasks.json +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/skillEvals/triggerPrompts.json +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/summarizeFalsificationShards.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/tools/syncRequiredChecks.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/__init__.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/__main__.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/__init__.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/actionCommands.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/baseImagePreflight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandBuild.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandCat.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandCompletePath.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandConfig.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandCredential.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandDestroy.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandDoctor.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandGenerateStandards.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandInit.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandLs.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandOpen.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandPublish.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandReconcile.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandRegister.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandRemote.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandRemoteHelper.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandRepair.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandReproduce.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandRevoke.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandRun.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandSecret.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandSessions.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandSetupDocker.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandStart.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandStatus.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandTest.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandUtilsDocker.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandVerifyStep.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/commandWorkflow.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/configFieldPreflight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/configLoader.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/daemonDiskPreflight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/doctorHostChecks.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/doctorNetwork.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/doctorProjectChecks.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/doctorX11Checks.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/hubSession.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/imageTrustPrompt.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/levelReport.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/main.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/portAllocator.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/preflightChecks.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/preflightResult.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/pythonPackagePreflight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/remoteProtocol.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/repositoryPreflight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/serverLaunch.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/cli/systemPackagePreflight.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/completions/vaibify.bash +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/completions/vaibify.fish +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/completions/vaibify.zsh +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/__init__.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/abandonmentAudit.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/agentTerminalEnvironment.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/analysisStack.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/bindMountValidator.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/configurationFingerprint.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/connectionAvailability.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/containerConfig.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/containerLock.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/durableFile.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/ephemeralStore.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/hostResidue.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/hubPortRegistry.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/imageOrigins.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/imageTrust.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/keepAliveManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/modelIdentity.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/mutationAdmission.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/operationJournal.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/pendingConversions.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/pidFileRegistry.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/preferencesStore.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/processLiveness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/projectConfig.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/reconciliation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/registryManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/resourceAdequacy.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/resourceLimits.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/secretAvailability.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/secretManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/sessionRegistry.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/templateManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/config/workerProcessPool.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.antigravity +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.claude +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.claudeArmOnIntel +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.cline +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.codex +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.gemini +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.julia +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.jupyter +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.node +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.opencode +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.openhands +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.pi +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.rlang +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/Dockerfile.uv +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/checkIsolation.sh +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/overlays/database.dockerfile +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/overlays/dvc.dockerfile +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/overlays/gpu.dockerfile +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/overlays/nestedSampling.dockerfile +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/skills/graceful-exits/checkGracefulExits.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/containerImage/vaibifyDo.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/__init__.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/bridgeGateway.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/buildKitRequirement.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/cgroupMemory.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/coherentExport.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/confinedRead.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/confinedWrite.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/containerLifecycleRepair.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/containerManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/daemonCapacity.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/daemonDescription.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/disposableContainer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/disposableSpecification.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/dockerConnection.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/dockerContext.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/dockerErrorDiagnosis.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/execArgumentBudget.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/fileTransfer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/imageBuilder.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/keepAliveManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/pathContainment.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/pinnedImageAcquisition.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/runtimeRemedies.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/volumeManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/writableLayerLoss.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docker/x11Forwarding.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docs/agentCouncil.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docs/proofLadder.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docs/scriptAuthoring.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/docs/testing.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/__init__.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/acquisitionFailure.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentClientFreshness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncil.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilAntigravityProvider.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCampaign.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCapacity.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCharter.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilChat.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCodexProvider.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilContext.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilController.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCredentialGate.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCredentialStore.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCredentialTest.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCredentialTestRecords.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilCredentialTestRecovery.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilDockerGateway.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilEgress.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilEvidence.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilEvidenceContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilManifest.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilProviderRegistry.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilProviders.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilReadiness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilRegistry.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilResolution.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilRunner.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilSnapshotScope.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilStagedCopies.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentCouncilStore.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentProjectScope.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/agentSessionBridge.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/aiProvenanceCapture.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/appFactory.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/archiveProgress.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/attributionLog.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/backgroundTasks.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/badgeState.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/browserSession.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/buildRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/cliShellContainment.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/commandUtilities.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/commitCarrier.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/conftestManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/connectionRouter.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/containerGit.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/containerMemorySampler.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/containerMemoryWatch.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/containerOwnership.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/conversionLifecycle.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/councilRouteGuards.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/dataLoaders.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/dataPreview.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/dependencyScan.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/dependencyScanner.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/determinismEnvironment.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/deterministicTestWriter.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/diskSpace.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/dockerStatus.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/draftManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/environmentDeletion.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/environmentDeletionRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/executionTopology.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/figureServer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/fileIntegrity.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/gitStatus.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/hashStaleness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/helperPrograms.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/hostBusyOracle.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/hostControlChannel.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/hostIncidents.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/hostModeReturn.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/interactiveSteps.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/introspectionScript.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/llmInvoker.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/llmTestGeneration.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/machineAttention.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/manifestCheck.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/mtimeCache.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/outputProvenance.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pathContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/personalLayerManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pinnedEnvironmentConversion.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pipelineLogger.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pipelineRunSlots.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pipelineRunner.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pipelineServer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pipelineTestRunner.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pipelineUtils.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/pipelineValidator.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/projectAdoption.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/projectContextManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/projectRoots.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/promptRecordManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/promptRecordViewer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/provenanceCommitter.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/providerApiTransport.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/randomnessLint.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/registryRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/remnantReapers.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/remnantScanner.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/reproductionProgress.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/rerunEvidence.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/researcherActions.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/researcherNotices.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/resourceLimitApplication.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/resourceMonitor.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routeScope.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/__init__.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/committedFileRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/connectionCheckRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/conversionRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/councilChatRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/councilCredentialRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/councilRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/councilSnapshotRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/downloadRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/draftRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/falsificationRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/figureRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/fileRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/gitRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/imageTrustRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/levelRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/pipelineRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/plotRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/preferencesRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/promotionRecoveryRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/promptRecordViewerRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/remnantRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/remoteRefreshRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/replayRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/reproductionRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/runtimeSetupRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/scriptRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/sessionRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/settingsRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/systemRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/terminalRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/uploadRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/routes/workflowRoutes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/runOutputBaseline.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/serverLifespan.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/serverMiddleware.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/sessionLifecycle.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/sleepPrevention.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/staleOutputDetector.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/standardsFiles.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/startReservation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/startResultStore.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/startupObservations.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/stateContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/stateManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/stateWriteLock.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/favicon.png +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/favicon.svg +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptAcquisitionWindow.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptAgentCouncil.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptAiModelConfig.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptApiClient.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptArxivConfig.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptBinaryDeclaration.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptConnectionMonitor.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptContainerManager.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptCouncilConsent.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptCouncilSnapshotScope.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptDependencyScanner.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptDiagnosis.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptDirectoryBrowser.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptDraftManager.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptEnvironmentInfo.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptEventBindings.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptFigureViewer.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptFileDropWalker.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptFileOperations.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptFileOutcomes.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptFilePull.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptFileRowMenu.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptFileUpload.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptFiles.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptGitBadges.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptImageTrust.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptLegendPanel.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptManifestCheck.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptMemoryWatch.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptModals.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptNewWorkflowWizard.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptOverleafMirror.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptPersonalLayer.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptPipelineRunner.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptPlotStandards.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptPolling.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptProjectContext.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptPromptRecordConfig.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptPromptRecordViewer.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptProofTab.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptRemnants.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptReposPanel.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptReproducePublished.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptResourceMonitor.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptRuntimeSetup.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptSetupWizard.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptStepEditor.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptStepRenderer.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptTerminal.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptTestManager.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptUtilities.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptWebSocket.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptWorkflowManager.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/scriptZenodoDepositCard.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/setupWizard.html +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/styleMain.css +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/styleSetupWizard.css +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/vaibify_logo_paleblue.png +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/vaibify_logo_paleblue_dark.png +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/vendor/addon-fit.min.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/vendor/addon-unicode11.min.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/vendor/pdf.min.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/vendor/pdf.worker.min.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/vendor/xterm.min.css +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/static/vendor/xterm.min.js +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/stepDependencyScan.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/stepRename.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/supervisionAnchor.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/syncDispatcher.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/templateManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/terminalContainment.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/terminalSession.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/testGenerator.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/testMarkerContract.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/testParser.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/trackedReposManager.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/transcriptSanitizer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/truthDerivation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/uploadStaging.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/verificationProgress.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/vscodeAttachLink.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/webSocketAuthorization.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/workflowFieldTypes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/workflowMigrations.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/workflowReloadDetector.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/workspacePath.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/gui/writableLayerPreview.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/host/__init__.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/host/archiveExtraction.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/host/hostCancellation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/host/hostConfinedRead.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/host/hostConnection.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/host/hostScratch.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/__init__.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/installVaibify.sh +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/runtimeSetupFacts.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/runtimeSetupPlan.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/runtimeSetupRunner.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/runtimeSetupSupervisor.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/setupServer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/shellSetup.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/install/uninstallVaibify.sh +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/__init__.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/_hashing.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/agentLayerSeparation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/aiDeclarationStep.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/aiProvenanceStamp.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/answeredQuestion.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/archiveDepositPlan.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/archivePermanence.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/archivePromotion.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/arxivClient.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/askpassHelper.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/assessmentLane.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/committedFiles.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/comparisonPolicyNotes.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/comparisonPolicyV1.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/connectionCheck.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/credentialRedactor.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/dataArchiver.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/declarationFreshness.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/declaredPackages.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/dependencyFindings.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/determinismGate.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/dockerfileComposer.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/dockerfileLint.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/downloadPartial.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/environmentDrift.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/environmentSnapshot.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/executionProfiles.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/falsificationAttestation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/gitEvidence.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/gitHardening.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/githubAuth.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/githubMirror.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/githubWorkflow.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/imageAcquisition.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/imageArchive.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/imageDeposit.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/imageDockerfileExport.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/latexConnector.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/lockSatisfaction.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/manifestPaths.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/manifestWriter.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/overleafAuth.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/overleafMirror.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/overleafSync.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/provenanceTracker.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/publicationScope.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/rangedHttpTransport.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/remoteCheckState.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/replayGate.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/repoFiles.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/reproduceScriptGenerator.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/reproductionLabel.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/reproductionRecord.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/reproductionReport.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/reproductionSource.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/rerunAssessment.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/rerunDiagnostics.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/rerunEstimate.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/rerunPreparation.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/rerunProcedure.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/rerunVerification.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/resumableDownload.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/shadowRerun.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/stepPredicates.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/reproducibility/zenodoClient.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/resources.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/sandbox/container.conf +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/toolkit/README.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/toolkit/container.conf +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/toolkit/project.json +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/workflow/GenerateSamples/generateSamples.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/workflow/PlotHistogram/plotHistogram.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/workflow/container.conf +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/workflow/project.json +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/templates/workflow.yml.j2 +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/testing/__init__.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/testing/standards.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify/testing/stochasticDetector.py +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify.egg-info/dependency_links.txt +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify.egg-info/entry_points.txt +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify.egg-info/requires.txt +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/vaibify.egg-info/top_level.txt +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/website/.gitignore +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/website/README.md +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/website/public/404.html +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/website/public/_headers +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/website/public/assets/favicon.png +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/website/public/assets/vaibifyDashboard.png +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/website/public/assets/vaibifyLogo.png +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/website/public/index.html +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/website/public/robots.txt +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/website/public/sitemap.xml +0 -0
- {vaibify-0.2.1 → vaibify-0.2.2}/website/public/styles.css +0 -0
- {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`.
|