vaibify 0.1.2__tar.gz → 0.1.4.dev95__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.1.4.dev95/.claude/skills/add-route-module/SKILL.md +202 -0
- vaibify-0.1.4.dev95/.claude/skills/container-image-and-packaging/SKILL.md +227 -0
- vaibify-0.1.4.dev95/.claude/skills/dashboard-state-honesty/SKILL.md +185 -0
- vaibify-0.1.4.dev95/.claude/skills/reproducibility-lane/SKILL.md +885 -0
- vaibify-0.1.4.dev95/.github/workflows/browser-chromium.yml +197 -0
- vaibify-0.1.4.dev95/.github/workflows/browser-firefox.yml +129 -0
- vaibify-0.1.4.dev95/.github/workflows/browser-webkit.yml +129 -0
- vaibify-0.1.4.dev95/.github/workflows/runtimeSetup.yml +132 -0
- vaibify-0.1.4.dev95/.github/workflows/tests-linux.yml +236 -0
- vaibify-0.1.4.dev95/AGENTS.md +465 -0
- vaibify-0.1.4.dev95/CLAUDE.md +465 -0
- vaibify-0.1.4.dev95/PKG-INFO +138 -0
- vaibify-0.1.4.dev95/README.md +65 -0
- vaibify-0.1.4.dev95/design/cpuClassReproducibility.md +1183 -0
- vaibify-0.1.4.dev95/design/cpuClassReproducibilityImplementation.md +1504 -0
- vaibify-0.1.4.dev95/docs/agentCouncil.md +341 -0
- vaibify-0.1.4.dev95/docs/aiUse.md +249 -0
- vaibify-0.1.4.dev95/docs/architecture.md +3958 -0
- vaibify-0.1.4.dev95/docs/cli.md +616 -0
- vaibify-0.1.4.dev95/docs/environmentsAndProjects.md +761 -0
- vaibify-0.1.4.dev95/docs/install.md +456 -0
- vaibify-0.1.4.dev95/docs/lessons.md +699 -0
- vaibify-0.1.4.dev95/docs/proofLadder.md +390 -0
- vaibify-0.1.4.dev95/docs/quickStart.md +224 -0
- vaibify-0.1.4.dev95/docs/reproducibility.md +516 -0
- vaibify-0.1.4.dev95/docs/security.md +334 -0
- vaibify-0.1.4.dev95/docs/systemPrompt.md +31 -0
- vaibify-0.1.4.dev95/docs/testing.md +703 -0
- vaibify-0.1.4.dev95/docs/vibeCoding.md +384 -0
- vaibify-0.1.4.dev95/tests/assessedRerunLaneHarness.py +120 -0
- vaibify-0.1.4.dev95/tests/browser/conftest.py +785 -0
- vaibify-0.1.4.dev95/tests/browser/testANewStepRunsItsDataCommands.py +91 -0
- vaibify-0.1.4.dev95/tests/browser/testATierWithNothingToCheckSaysWhy.py +94 -0
- vaibify-0.1.4.dev95/tests/browser/testAnAgentsEditAppearsWithoutNavigation.py +222 -0
- vaibify-0.1.4.dev95/tests/browser/testAssessedVerdictsOnScreen.py +166 -0
- vaibify-0.1.4.dev95/tests/browser/testBrowserJourneys.py +1104 -0
- vaibify-0.1.4.dev95/tests/browser/testCompareManifests.py +507 -0
- vaibify-0.1.4.dev95/tests/browser/testContainerizeFromPinnedImage.py +794 -0
- vaibify-0.1.4.dev95/tests/browser/testCouncilChairbotChat.py +384 -0
- vaibify-0.1.4.dev95/tests/browser/testCouncilMaximumRoundsReachesTheRecord.py +50 -0
- vaibify-0.1.4.dev95/tests/browser/testDeterminismRowFollowsTheGate.py +216 -0
- vaibify-0.1.4.dev95/tests/browser/testGeneratedTestsSayWhoWroteThem.py +102 -0
- vaibify-0.1.4.dev95/tests/browser/testHostProjectPicker.py +698 -0
- vaibify-0.1.4.dev95/tests/browser/testLostClaimIsRecoverable.py +317 -0
- vaibify-0.1.4.dev95/tests/browser/testManifestCheckReportOnScreen.py +106 -0
- vaibify-0.1.4.dev95/tests/browser/testOutputContextNoteIsNeutral.py +71 -0
- vaibify-0.1.4.dev95/tests/browser/testSetUpDockerWizard.py +231 -0
- vaibify-0.1.4.dev95/tests/browser/testStartBannersBelongToTheirContainer.py +63 -0
- vaibify-0.1.4.dev95/tests/browser/testSymbolicTokenDependenciesOnScreen.py +75 -0
- vaibify-0.1.4.dev95/tests/browser/testTheContainerizingWindowFollowsTheHub.py +607 -0
- vaibify-0.1.4.dev95/tests/browser/testTheGraphLeavesOtherViewersAlone.py +192 -0
- vaibify-0.1.4.dev95/tests/browser/testTheImageTrustModalAsksBeforeAnUnbuiltImageRuns.py +334 -0
- vaibify-0.1.4.dev95/tests/browser/testTheMemoryWatchTellsAKillOnce.py +429 -0
- vaibify-0.1.4.dev95/tests/browser/testTheVerificationShowsItsOutput.py +142 -0
- vaibify-0.1.4.dev95/tests/browser/testUncoveredLibrariesOnScreen.py +52 -0
- vaibify-0.1.4.dev95/tests/browser/testUnintrospectableToastSaysWhatHappened.py +78 -0
- vaibify-0.1.4.dev95/tests/browser/testVectorFigureNoteOnScreen.py +44 -0
- vaibify-0.1.4.dev95/tests/browser/testViewersBelongToTheirProject.py +293 -0
- vaibify-0.1.4.dev95/tests/cliRunnerStreams.py +20 -0
- vaibify-0.1.4.dev95/tests/conftest.py +585 -0
- vaibify-0.1.4.dev95/tests/depositFaultServer.py +311 -0
- vaibify-0.1.4.dev95/tests/falsificationRegistry.py +36334 -0
- vaibify-0.1.4.dev95/tests/guardCoverageSeed.json +234 -0
- vaibify-0.1.4.dev95/tests/hostCapabilityInventory.json +202 -0
- vaibify-0.1.4.dev95/tests/levelGateStubs.py +128 -0
- vaibify-0.1.4.dev95/tests/mutationInventory.json +688 -0
- vaibify-0.1.4.dev95/tests/reproduceScriptHarness.py +131 -0
- vaibify-0.1.4.dev95/tests/rerunAssessmentHarness.py +282 -0
- vaibify-0.1.4.dev95/tests/styleInventory.json +346 -0
- vaibify-0.1.4.dev95/tests/testALockThatDeclaresNothing.py +115 -0
- vaibify-0.1.4.dev95/tests/testARunKeepsThePassingTestsItRecordedLive.py +407 -0
- vaibify-0.1.4.dev95/tests/testARunsOwnOutputsAreNotModifications.py +171 -0
- vaibify-0.1.4.dev95/tests/testAgentCouncilFrontendContract.py +922 -0
- vaibify-0.1.4.dev95/tests/testAgentCouncilLedger.py +228 -0
- vaibify-0.1.4.dev95/tests/testAgentEditsReachTheOpenTab.py +251 -0
- vaibify-0.1.4.dev95/tests/testAgentLaneEnforcement.py +805 -0
- vaibify-0.1.4.dev95/tests/testAgentSessionBridge.py +155 -0
- vaibify-0.1.4.dev95/tests/testAiDeclarationAddStepAndDeterminismRoutes.py +325 -0
- vaibify-0.1.4.dev95/tests/testAnalysisStack.py +58 -0
- vaibify-0.1.4.dev95/tests/testArchitecturalInvariants.py +8794 -0
- vaibify-0.1.4.dev95/tests/testAssessedRerunLane.py +562 -0
- vaibify-0.1.4.dev95/tests/testAssessedRerunLive.py +206 -0
- vaibify-0.1.4.dev95/tests/testBasenameCollisionBlocksLevelTwo.py +101 -0
- vaibify-0.1.4.dev95/tests/testBinaryDeclaration.py +306 -0
- vaibify-0.1.4.dev95/tests/testCapabilityAuthorities.py +1100 -0
- vaibify-0.1.4.dev95/tests/testCarrierMigratedRoutes.py +8334 -0
- vaibify-0.1.4.dev95/tests/testCliApiCommands.py +276 -0
- vaibify-0.1.4.dev95/tests/testCliCommands.py +239 -0
- vaibify-0.1.4.dev95/tests/testCliExecLive.py +199 -0
- vaibify-0.1.4.dev95/tests/testCliTemplateProjectTowardLevelThreeLive.py +418 -0
- vaibify-0.1.4.dev95/tests/testCommandSetupDocker.py +108 -0
- vaibify-0.1.4.dev95/tests/testCommitCarrier.py +1274 -0
- vaibify-0.1.4.dev95/tests/testComparisonPolicyNotes.py +79 -0
- vaibify-0.1.4.dev95/tests/testConnectionCheck.py +278 -0
- vaibify-0.1.4.dev95/tests/testCouncilCredentialAdmission.py +493 -0
- vaibify-0.1.4.dev95/tests/testCoverageBoost.py +1217 -0
- vaibify-0.1.4.dev95/tests/testCoverageBroadGaps.py +1532 -0
- vaibify-0.1.4.dev95/tests/testCoverageCliBuildStartReproduce.py +568 -0
- vaibify-0.1.4.dev95/tests/testCoverageCliReconcileRepairOpen.py +726 -0
- vaibify-0.1.4.dev95/tests/testCoverageCliRemote.py +823 -0
- vaibify-0.1.4.dev95/tests/testCoverageGaps.py +1839 -0
- vaibify-0.1.4.dev95/tests/testCoverageReproducibilityDeterminismAndRerun.py +409 -0
- vaibify-0.1.4.dev95/tests/testCoverageReproducibilityImageAcquisition.py +536 -0
- vaibify-0.1.4.dev95/tests/testCoverageRoutesAPipelineSideEffects.py +672 -0
- vaibify-0.1.4.dev95/tests/testCoverageRoutesBPipelineServer.py +847 -0
- vaibify-0.1.4.dev95/tests/testCoverageRoutesBReproducibility.py +877 -0
- vaibify-0.1.4.dev95/tests/testDeclarationPushMutationCoverage.py +739 -0
- vaibify-0.1.4.dev95/tests/testDependencyDismissalRoute.py +97 -0
- vaibify-0.1.4.dev95/tests/testDependencyReconciliationGatesLevelOne.py +343 -0
- vaibify-0.1.4.dev95/tests/testDependencyScanRoutes.py +243 -0
- vaibify-0.1.4.dev95/tests/testDeterminismGate.py +308 -0
- vaibify-0.1.4.dev95/tests/testDeterminismRowMatchesItsGate.py +435 -0
- vaibify-0.1.4.dev95/tests/testDeterministicGeneratorIsAgentSafe.py +188 -0
- vaibify-0.1.4.dev95/tests/testDeterministicTestGenerator.py +2992 -0
- vaibify-0.1.4.dev95/tests/testDockerfileHardening.py +171 -0
- vaibify-0.1.4.dev95/tests/testEntrypointAgentSkills.py +375 -0
- vaibify-0.1.4.dev95/tests/testEntrypointInstructionPrecedence.py +80 -0
- vaibify-0.1.4.dev95/tests/testExecutionProfiles.py +821 -0
- vaibify-0.1.4.dev95/tests/testExecutionProfilesLive.py +443 -0
- vaibify-0.1.4.dev95/tests/testForeignManifestGuard.py +239 -0
- vaibify-0.1.4.dev95/tests/testGracefulExitsChecker.py +370 -0
- vaibify-0.1.4.dev95/tests/testGuiBuildWarnsAboutTheMachine.py +85 -0
- vaibify-0.1.4.dev95/tests/testGuiSignalsItsCategory.py +80 -0
- vaibify-0.1.4.dev95/tests/testGuiTemplateManager.py +401 -0
- vaibify-0.1.4.dev95/tests/testHostCliRunsThroughTheHub.py +150 -0
- vaibify-0.1.4.dev95/tests/testIsolationGating.py +465 -0
- vaibify-0.1.4.dev95/tests/testL3Attestation.py +207 -0
- vaibify-0.1.4.dev95/tests/testL3AttestationMutationCoverage.py +111 -0
- vaibify-0.1.4.dev95/tests/testLevelGateL2Arxiv.py +532 -0
- vaibify-0.1.4.dev95/tests/testLevelGateL3.py +204 -0
- vaibify-0.1.4.dev95/tests/testLevelGateL3Blockers.py +452 -0
- vaibify-0.1.4.dev95/tests/testLevelGateL3EndToEnd.py +321 -0
- vaibify-0.1.4.dev95/tests/testLevelGatesCoverage2.py +505 -0
- vaibify-0.1.4.dev95/tests/testListModules.py +171 -0
- vaibify-0.1.4.dev95/tests/testManifestCheckReport.py +151 -0
- vaibify-0.1.4.dev95/tests/testMutationInventory.py +2134 -0
- vaibify-0.1.4.dev95/tests/testNarrowLlmFallback.py +314 -0
- vaibify-0.1.4.dev95/tests/testOutputProvenance.py +393 -0
- vaibify-0.1.4.dev95/tests/testOverleafChipAgreesWithRows.py +106 -0
- vaibify-0.1.4.dev95/tests/testPipelineRunnerOffLoop.py +215 -0
- vaibify-0.1.4.dev95/tests/testPipelineServerFull.py +587 -0
- vaibify-0.1.4.dev95/tests/testPipelineServerRoutes.py +1243 -0
- vaibify-0.1.4.dev95/tests/testProjectScopedRegistries.py +203 -0
- vaibify-0.1.4.dev95/tests/testPromptRecordPublishesNoRawDigestOracle.py +123 -0
- vaibify-0.1.4.dev95/tests/testProofLadderUncoveredLines.py +934 -0
- vaibify-0.1.4.dev95/tests/testQuickStartJourneyThroughRoutesLive.py +635 -0
- vaibify-0.1.4.dev95/tests/testReadOnlyCouncilRunsNoCommands.py +112 -0
- vaibify-0.1.4.dev95/tests/testReaderRecordIsNeverCommitted.py +449 -0
- vaibify-0.1.4.dev95/tests/testReproduceCommand.py +694 -0
- vaibify-0.1.4.dev95/tests/testReproduceCommandAttestation.py +703 -0
- vaibify-0.1.4.dev95/tests/testReproduceFromSnapshot.py +493 -0
- vaibify-0.1.4.dev95/tests/testReproduceRerunHashCompare.py +191 -0
- vaibify-0.1.4.dev95/tests/testReproduceScriptContainerHalf.py +262 -0
- vaibify-0.1.4.dev95/tests/testReproduceScriptDeterminism.py +571 -0
- vaibify-0.1.4.dev95/tests/testReproduceScriptGateRejectsResidualTokens.py +145 -0
- vaibify-0.1.4.dev95/tests/testReproduceScriptGenerator.py +800 -0
- vaibify-0.1.4.dev95/tests/testReproduceScriptParity.py +185 -0
- vaibify-0.1.4.dev95/tests/testReproduceScriptParityLive.py +250 -0
- vaibify-0.1.4.dev95/tests/testReproducedManifest.py +687 -0
- vaibify-0.1.4.dev95/tests/testReproducibilityRoutes.py +1815 -0
- vaibify-0.1.4.dev95/tests/testReproductionLabelInPollResponse.py +689 -0
- vaibify-0.1.4.dev95/tests/testReproductionLive.py +243 -0
- vaibify-0.1.4.dev95/tests/testReproductionRecordPlatform.py +141 -0
- vaibify-0.1.4.dev95/tests/testReproductionReport.py +161 -0
- vaibify-0.1.4.dev95/tests/testRerunAssessmentEvidence.py +327 -0
- vaibify-0.1.4.dev95/tests/testRerunAssessmentImageCheck.py +281 -0
- vaibify-0.1.4.dev95/tests/testRerunAssessmentPrecedence.py +398 -0
- vaibify-0.1.4.dev95/tests/testRerunAssessmentStructure.py +326 -0
- vaibify-0.1.4.dev95/tests/testRerunAssessmentTranscription.py +143 -0
- vaibify-0.1.4.dev95/tests/testRerunDiagnostics.py +280 -0
- vaibify-0.1.4.dev95/tests/testRerunProcedureGuards.py +121 -0
- vaibify-0.1.4.dev95/tests/testRerunRegeneratesWhatItGrades.py +678 -0
- vaibify-0.1.4.dev95/tests/testRerunVerifiesWhatItRan.py +1042 -0
- vaibify-0.1.4.dev95/tests/testResearcherActions.py +289 -0
- vaibify-0.1.4.dev95/tests/testResumableDownload.py +992 -0
- vaibify-0.1.4.dev95/tests/testRuntimeSetupFacts.py +249 -0
- vaibify-0.1.4.dev95/tests/testRuntimeSetupPlan.py +472 -0
- vaibify-0.1.4.dev95/tests/testRuntimeSetupRoutes.py +203 -0
- vaibify-0.1.4.dev95/tests/testRuntimeSetupRunner.py +369 -0
- vaibify-0.1.4.dev95/tests/testSeededFolderRepositoryList.py +366 -0
- vaibify-0.1.4.dev95/tests/testSeededFolderRepositoryListLive.py +133 -0
- vaibify-0.1.4.dev95/tests/testStaleReproduceScriptIsNotRunnable.py +254 -0
- vaibify-0.1.4.dev95/tests/testStepLevelStates.py +1131 -0
- vaibify-0.1.4.dev95/tests/testStepRoutes.py +604 -0
- vaibify-0.1.4.dev95/tests/testStyleInvariants.py +1590 -0
- vaibify-0.1.4.dev95/tests/testSyncRoutesCoverage.py +3128 -0
- vaibify-0.1.4.dev95/tests/testTestGenerationIntegrity.py +580 -0
- vaibify-0.1.4.dev95/tests/testTestGeneratorBranches.py +339 -0
- vaibify-0.1.4.dev95/tests/testTestGeneratorPure.py +411 -0
- vaibify-0.1.4.dev95/tests/testTestRoutesCoverage.py +1538 -0
- vaibify-0.1.4.dev95/tests/testTheNextStepIsNamedOnlyWhenOrderMatters.py +795 -0
- vaibify-0.1.4.dev95/tests/testUncoveredLibrariesAreNamed.py +67 -0
- vaibify-0.1.4.dev95/tests/testUnseededRandomnessReachesLevelThree.py +86 -0
- vaibify-0.1.4.dev95/tests/testVaibifyDoCli.py +1882 -0
- vaibify-0.1.4.dev95/tests/testVerificationLiveOutput.py +112 -0
- vaibify-0.1.4.dev95/tests/testWorkflowManager.py +1269 -0
- vaibify-0.1.4.dev95/tests/testZenodoCandidatesCoverLevelThree.py +41 -0
- vaibify-0.1.4.dev95/tests/testZenodoEnvelopeArchive.py +603 -0
- vaibify-0.1.4.dev95/tests/testZenodoLookupPatience.py +449 -0
- vaibify-0.1.4.dev95/tests/typedHashDouble.py +34 -0
- vaibify-0.1.4.dev95/tools/checkInstalledDistribution.py +408 -0
- vaibify-0.1.4.dev95/tools/generateMutationInventory.py +2463 -0
- vaibify-0.1.4.dev95/tools/generateStyleInventory.py +868 -0
- vaibify-0.1.4.dev95/vaibify/_version.py +24 -0
- vaibify-0.1.4.dev95/vaibify/cli/actionCommands.py +581 -0
- vaibify-0.1.4.dev95/vaibify/cli/commandBuild.py +1240 -0
- vaibify-0.1.4.dev95/vaibify/cli/commandCredential.py +120 -0
- vaibify-0.1.4.dev95/vaibify/cli/commandReproduce.py +1327 -0
- vaibify-0.1.4.dev95/vaibify/cli/commandSetupDocker.py +151 -0
- vaibify-0.1.4.dev95/vaibify/cli/commandVerifyStep.py +119 -0
- vaibify-0.1.4.dev95/vaibify/cli/hubSession.py +744 -0
- vaibify-0.1.4.dev95/vaibify/cli/main.py +572 -0
- vaibify-0.1.4.dev95/vaibify/completions/vaibify.bash +213 -0
- vaibify-0.1.4.dev95/vaibify/completions/vaibify.fish +104 -0
- vaibify-0.1.4.dev95/vaibify/completions/vaibify.zsh +152 -0
- vaibify-0.1.4.dev95/vaibify/config/analysisStack.py +46 -0
- vaibify-0.1.4.dev95/vaibify/config/containerConfig.py +272 -0
- vaibify-0.1.4.dev95/vaibify/config/registryManager.py +868 -0
- vaibify-0.1.4.dev95/vaibify/containerImage/Dockerfile +787 -0
- vaibify-0.1.4.dev95/vaibify/containerImage/Dockerfile.jupyter +32 -0
- vaibify-0.1.4.dev95/vaibify/containerImage/entrypoint.sh +1818 -0
- vaibify-0.1.4.dev95/vaibify/containerImage/skills/create-pipeline-step/SKILL.md +137 -0
- vaibify-0.1.4.dev95/vaibify/containerImage/skills/graceful-exits/SKILL.md +27 -0
- vaibify-0.1.4.dev95/vaibify/containerImage/skills/graceful-exits/checkGracefulExits.py +631 -0
- vaibify-0.1.4.dev95/vaibify/containerImage/vaibifyDo.py +1079 -0
- vaibify-0.1.4.dev95/vaibify/docker/containerManager.py +1583 -0
- vaibify-0.1.4.dev95/vaibify/docker/dockerConnection.py +3997 -0
- vaibify-0.1.4.dev95/vaibify/docker/dockerContext.py +415 -0
- vaibify-0.1.4.dev95/vaibify/docker/pinnedImageAcquisition.py +647 -0
- vaibify-0.1.4.dev95/vaibify/docs/agentCouncil.md +341 -0
- vaibify-0.1.4.dev95/vaibify/docs/environmentsAndProjects.md +761 -0
- vaibify-0.1.4.dev95/vaibify/docs/proofLadder.md +390 -0
- vaibify-0.1.4.dev95/vaibify/docs/reproducibility.md +516 -0
- vaibify-0.1.4.dev95/vaibify/docs/testing.md +703 -0
- vaibify-0.1.4.dev95/vaibify/gui/actionCatalog.py +1548 -0
- vaibify-0.1.4.dev95/vaibify/gui/agentClientFreshness.py +130 -0
- vaibify-0.1.4.dev95/vaibify/gui/agentCouncil.py +1550 -0
- vaibify-0.1.4.dev95/vaibify/gui/agentCouncilAntigravityProvider.py +411 -0
- vaibify-0.1.4.dev95/vaibify/gui/agentCouncilCodexProvider.py +355 -0
- vaibify-0.1.4.dev95/vaibify/gui/agentSessionBridge.py +94 -0
- vaibify-0.1.4.dev95/vaibify/gui/appFactory.py +800 -0
- vaibify-0.1.4.dev95/vaibify/gui/buildRoutes.py +667 -0
- vaibify-0.1.4.dev95/vaibify/gui/conversionLifecycle.py +744 -0
- vaibify-0.1.4.dev95/vaibify/gui/determinismEnvironment.py +673 -0
- vaibify-0.1.4.dev95/vaibify/gui/deterministicTestWriter.py +374 -0
- vaibify-0.1.4.dev95/vaibify/gui/fileStatusManager.py +2658 -0
- vaibify-0.1.4.dev95/vaibify/gui/introspectionScript.py +1213 -0
- vaibify-0.1.4.dev95/vaibify/gui/llmTestGeneration.py +315 -0
- vaibify-0.1.4.dev95/vaibify/gui/outputProvenance.py +560 -0
- vaibify-0.1.4.dev95/vaibify/gui/pipelineLogger.py +637 -0
- vaibify-0.1.4.dev95/vaibify/gui/pipelineRunner.py +1955 -0
- vaibify-0.1.4.dev95/vaibify/gui/pipelineServer.py +3781 -0
- vaibify-0.1.4.dev95/vaibify/gui/pipelineTestRunner.py +294 -0
- vaibify-0.1.4.dev95/vaibify/gui/pipelineUtils.py +769 -0
- vaibify-0.1.4.dev95/vaibify/gui/pipelineValidator.py +142 -0
- vaibify-0.1.4.dev95/vaibify/gui/promptRecordManager.py +720 -0
- vaibify-0.1.4.dev95/vaibify/gui/reproductionProgress.py +644 -0
- vaibify-0.1.4.dev95/vaibify/gui/rerunEvidence.py +55 -0
- vaibify-0.1.4.dev95/vaibify/gui/researcherActions.py +359 -0
- vaibify-0.1.4.dev95/vaibify/gui/researcherNotices.py +142 -0
- vaibify-0.1.4.dev95/vaibify/gui/routeContext.py +940 -0
- vaibify-0.1.4.dev95/vaibify/gui/routeScope.py +1198 -0
- vaibify-0.1.4.dev95/vaibify/gui/routes/__init__.py +83 -0
- vaibify-0.1.4.dev95/vaibify/gui/routes/fileRoutes.py +916 -0
- vaibify-0.1.4.dev95/vaibify/gui/routes/pipelineRoutes.py +4353 -0
- vaibify-0.1.4.dev95/vaibify/gui/routes/reproducibilityRoutes.py +2400 -0
- vaibify-0.1.4.dev95/vaibify/gui/routes/runtimeSetupRoutes.py +173 -0
- vaibify-0.1.4.dev95/vaibify/gui/routes/scriptRoutes.py +559 -0
- vaibify-0.1.4.dev95/vaibify/gui/routes/stepRoutes.py +1044 -0
- vaibify-0.1.4.dev95/vaibify/gui/routes/testRoutes.py +1325 -0
- vaibify-0.1.4.dev95/vaibify/gui/runOutputBaseline.py +95 -0
- vaibify-0.1.4.dev95/vaibify/gui/serverMiddleware.py +488 -0
- vaibify-0.1.4.dev95/vaibify/gui/standardsFiles.py +139 -0
- vaibify-0.1.4.dev95/vaibify/gui/stateContract.py +412 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/index.html +1506 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptAcquisitionWindow.js +635 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptAgentCouncil.js +5034 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptApplication.js +8190 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptContainerManager.js +3333 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptDependencyScanner.js +836 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptDirectoryBrowser.js +345 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptEventBindings.js +1554 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptFigureViewer.js +1962 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptFileOutcomes.js +197 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptPolling.js +567 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptProofTab.js +1505 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptReproducePublished.js +621 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptRuntimeSetup.js +318 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptStepEditor.js +427 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptStepRenderer.js +2192 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptSyncManager.js +3236 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptTestManager.js +1006 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/scriptWorkflowRequirements.js +3973 -0
- vaibify-0.1.4.dev95/vaibify/gui/static/styleMain.css +9947 -0
- vaibify-0.1.4.dev95/vaibify/gui/stepDependencyScan.py +237 -0
- vaibify-0.1.4.dev95/vaibify/gui/stepRename.py +617 -0
- vaibify-0.1.4.dev95/vaibify/gui/syncDispatcher.py +2141 -0
- vaibify-0.1.4.dev95/vaibify/gui/templateManager.py +579 -0
- vaibify-0.1.4.dev95/vaibify/gui/testGenerator.py +973 -0
- vaibify-0.1.4.dev95/vaibify/gui/testParser.py +97 -0
- vaibify-0.1.4.dev95/vaibify/gui/trackedReposManager.py +749 -0
- vaibify-0.1.4.dev95/vaibify/gui/verificationProgress.py +351 -0
- vaibify-0.1.4.dev95/vaibify/gui/workflowManager.py +2954 -0
- vaibify-0.1.4.dev95/vaibify/gui/workflowMigrations.py +818 -0
- vaibify-0.1.4.dev95/vaibify/gui/workflowReloadDetector.py +289 -0
- vaibify-0.1.4.dev95/vaibify/install/runtimeSetupFacts.py +412 -0
- vaibify-0.1.4.dev95/vaibify/install/runtimeSetupPlan.py +751 -0
- vaibify-0.1.4.dev95/vaibify/install/runtimeSetupRunner.py +352 -0
- vaibify-0.1.4.dev95/vaibify/install/runtimeSetupSupervisor.py +52 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/answeredQuestion.py +91 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/assessmentLane.py +333 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/comparisonPolicyNotes.py +52 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/comparisonPolicyV1.py +1184 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/connectionCheck.py +449 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/dataArchiver.py +556 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/dependencyFindings.py +234 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/dependencyPinning.py +452 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/determinismGate.py +567 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/executionProfiles.py +226 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/imageAcquisition.py +1145 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/l3Attestation.py +644 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/levelGates.py +5472 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/levelOrdering.py +424 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/manifestPaths.py +312 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/publicationScope.py +370 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/rangedHttpTransport.py +495 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/repoFiles.py +1329 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/reproduceScriptGenerator.py +1042 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/reproductionLabel.py +351 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/reproductionReport.py +421 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/rerunAssessment.py +391 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/rerunDiagnostics.py +188 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/rerunPreparation.py +261 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/rerunProcedure.py +1084 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/rerunVerification.py +1056 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/resumableDownload.py +896 -0
- vaibify-0.1.4.dev95/vaibify/reproducibility/zenodoClient.py +1319 -0
- vaibify-0.1.4.dev95/vaibify/templates/workflow/GenerateSamples/generateSamples.py +66 -0
- vaibify-0.1.4.dev95/vaibify/templates/workflow/PlotHistogram/plotHistogram.py +126 -0
- vaibify-0.1.4.dev95/vaibify.egg-info/PKG-INFO +138 -0
- vaibify-0.1.4.dev95/vaibify.egg-info/SOURCES.txt +1893 -0
- vaibify-0.1.4.dev95/vaibify.egg-info/scm_file_list.json +1888 -0
- vaibify-0.1.4.dev95/vaibify.egg-info/scm_version.json +8 -0
- vaibify-0.1.2/.claude/skills/add-route-module/SKILL.md +0 -193
- vaibify-0.1.2/.claude/skills/container-image-and-packaging/SKILL.md +0 -216
- vaibify-0.1.2/.claude/skills/dashboard-state-honesty/SKILL.md +0 -161
- vaibify-0.1.2/.claude/skills/reproducibility-lane/SKILL.md +0 -736
- vaibify-0.1.2/.github/workflows/browser-chromium.yml +0 -194
- vaibify-0.1.2/.github/workflows/browser-firefox.yml +0 -126
- vaibify-0.1.2/.github/workflows/browser-webkit.yml +0 -126
- vaibify-0.1.2/.github/workflows/tests-linux.yml +0 -235
- vaibify-0.1.2/AGENTS.md +0 -440
- vaibify-0.1.2/CLAUDE.md +0 -440
- vaibify-0.1.2/PKG-INFO +0 -138
- vaibify-0.1.2/README.md +0 -65
- vaibify-0.1.2/docs/agentCouncil.md +0 -340
- vaibify-0.1.2/docs/aiUse.md +0 -239
- vaibify-0.1.2/docs/architecture.md +0 -3790
- vaibify-0.1.2/docs/cli.md +0 -533
- vaibify-0.1.2/docs/environmentsAndProjects.md +0 -759
- vaibify-0.1.2/docs/install.md +0 -419
- vaibify-0.1.2/docs/lessons.md +0 -682
- vaibify-0.1.2/docs/proofLadder.md +0 -377
- vaibify-0.1.2/docs/quickStart.md +0 -208
- vaibify-0.1.2/docs/reproducibility.md +0 -315
- vaibify-0.1.2/docs/security.md +0 -334
- vaibify-0.1.2/docs/systemPrompt.md +0 -28
- vaibify-0.1.2/docs/testing.md +0 -644
- vaibify-0.1.2/docs/vibeCoding.md +0 -384
- vaibify-0.1.2/tests/browser/conftest.py +0 -777
- vaibify-0.1.2/tests/browser/testBrowserJourneys.py +0 -1086
- vaibify-0.1.2/tests/browser/testCompareManifests.py +0 -497
- vaibify-0.1.2/tests/browser/testContainerizeFromPinnedImage.py +0 -781
- vaibify-0.1.2/tests/browser/testCouncilChairbotChat.py +0 -321
- vaibify-0.1.2/tests/browser/testDeterminismRowFollowsTheGate.py +0 -229
- vaibify-0.1.2/tests/browser/testHostProjectPicker.py +0 -643
- vaibify-0.1.2/tests/browser/testLostClaimIsRecoverable.py +0 -302
- vaibify-0.1.2/tests/browser/testTheContainerizingWindowFollowsTheHub.py +0 -315
- vaibify-0.1.2/tests/browser/testTheImageTrustModalAsksBeforeAnUnbuiltImageRuns.py +0 -331
- vaibify-0.1.2/tests/browser/testTheMemoryWatchTellsAKillOnce.py +0 -425
- vaibify-0.1.2/tests/conftest.py +0 -573
- vaibify-0.1.2/tests/depositFaultServer.py +0 -275
- vaibify-0.1.2/tests/falsificationRegistry.py +0 -33643
- vaibify-0.1.2/tests/guardCoverageSeed.json +0 -235
- vaibify-0.1.2/tests/hostCapabilityInventory.json +0 -201
- vaibify-0.1.2/tests/levelGateStubs.py +0 -91
- vaibify-0.1.2/tests/mutationInventory.json +0 -670
- vaibify-0.1.2/tests/styleInventory.json +0 -346
- vaibify-0.1.2/tests/testARunKeepsThePassingTestsItRecordedLive.py +0 -402
- vaibify-0.1.2/tests/testAgentCouncilFrontendContract.py +0 -920
- vaibify-0.1.2/tests/testAgentCouncilLedger.py +0 -223
- vaibify-0.1.2/tests/testAgentLaneEnforcement.py +0 -804
- vaibify-0.1.2/tests/testAgentSessionBridge.py +0 -151
- vaibify-0.1.2/tests/testAiDeclarationAddStepAndDeterminismRoutes.py +0 -343
- vaibify-0.1.2/tests/testArchitecturalInvariants.py +0 -8615
- vaibify-0.1.2/tests/testBinaryDeclaration.py +0 -309
- vaibify-0.1.2/tests/testCapabilityAuthorities.py +0 -1047
- vaibify-0.1.2/tests/testCarrierMigratedRoutes.py +0 -8289
- vaibify-0.1.2/tests/testCliApiCommands.py +0 -289
- vaibify-0.1.2/tests/testCliCommands.py +0 -232
- vaibify-0.1.2/tests/testCliExecLive.py +0 -184
- vaibify-0.1.2/tests/testCommitCarrier.py +0 -1268
- vaibify-0.1.2/tests/testConnectionCheck.py +0 -272
- vaibify-0.1.2/tests/testCouncilCredentialAdmission.py +0 -490
- vaibify-0.1.2/tests/testCoverageBoost.py +0 -1216
- vaibify-0.1.2/tests/testCoverageBroadGaps.py +0 -1526
- vaibify-0.1.2/tests/testCoverageCliBuildStartReproduce.py +0 -567
- vaibify-0.1.2/tests/testCoverageCliReconcileRepairOpen.py +0 -734
- vaibify-0.1.2/tests/testCoverageCliRemote.py +0 -831
- vaibify-0.1.2/tests/testCoverageGaps.py +0 -1838
- vaibify-0.1.2/tests/testCoverageReproducibilityDeterminismAndRerun.py +0 -398
- vaibify-0.1.2/tests/testCoverageReproducibilityImageAcquisition.py +0 -507
- vaibify-0.1.2/tests/testCoverageRoutesAPipelineSideEffects.py +0 -672
- vaibify-0.1.2/tests/testCoverageRoutesBPipelineServer.py +0 -839
- vaibify-0.1.2/tests/testCoverageRoutesBReproducibility.py +0 -821
- vaibify-0.1.2/tests/testDeclarationPushMutationCoverage.py +0 -738
- vaibify-0.1.2/tests/testDependencyScanRoutes.py +0 -240
- vaibify-0.1.2/tests/testDeterminismGate.py +0 -324
- vaibify-0.1.2/tests/testDeterminismRowMatchesItsGate.py +0 -429
- vaibify-0.1.2/tests/testDeterministicGeneratorIsAgentSafe.py +0 -175
- vaibify-0.1.2/tests/testDeterministicTestGenerator.py +0 -2955
- vaibify-0.1.2/tests/testDockerfileHardening.py +0 -118
- vaibify-0.1.2/tests/testEntrypointAgentSkills.py +0 -372
- vaibify-0.1.2/tests/testForeignManifestGuard.py +0 -239
- vaibify-0.1.2/tests/testGuiSignalsItsCategory.py +0 -78
- vaibify-0.1.2/tests/testGuiTemplateManager.py +0 -348
- vaibify-0.1.2/tests/testIsolationGating.py +0 -464
- vaibify-0.1.2/tests/testL3Attestation.py +0 -204
- vaibify-0.1.2/tests/testL3AttestationMutationCoverage.py +0 -106
- vaibify-0.1.2/tests/testLevelGateL2Arxiv.py +0 -512
- vaibify-0.1.2/tests/testLevelGateL3.py +0 -204
- vaibify-0.1.2/tests/testLevelGateL3Blockers.py +0 -451
- vaibify-0.1.2/tests/testLevelGateL3EndToEnd.py +0 -314
- vaibify-0.1.2/tests/testLevelGatesCoverage2.py +0 -505
- vaibify-0.1.2/tests/testListModules.py +0 -167
- vaibify-0.1.2/tests/testMutationInventory.py +0 -2109
- vaibify-0.1.2/tests/testPipelineRunnerOffLoop.py +0 -213
- vaibify-0.1.2/tests/testPipelineServerFull.py +0 -586
- vaibify-0.1.2/tests/testPipelineServerRoutes.py +0 -1242
- vaibify-0.1.2/tests/testProjectScopedRegistries.py +0 -198
- vaibify-0.1.2/tests/testProofLadderUncoveredLines.py +0 -937
- vaibify-0.1.2/tests/testQuickStartJourneyThroughRoutesLive.py +0 -625
- vaibify-0.1.2/tests/testReaderRecordIsNeverCommitted.py +0 -448
- vaibify-0.1.2/tests/testReproduceCommand.py +0 -691
- vaibify-0.1.2/tests/testReproduceCommandAttestation.py +0 -705
- vaibify-0.1.2/tests/testReproduceFromSnapshot.py +0 -488
- vaibify-0.1.2/tests/testReproduceRerunHashCompare.py +0 -190
- vaibify-0.1.2/tests/testReproduceScriptDeterminism.py +0 -461
- vaibify-0.1.2/tests/testReproduceScriptGateRejectsResidualTokens.py +0 -141
- vaibify-0.1.2/tests/testReproduceScriptGenerator.py +0 -779
- vaibify-0.1.2/tests/testReproducedManifest.py +0 -683
- vaibify-0.1.2/tests/testReproducibilityRoutes.py +0 -1811
- vaibify-0.1.2/tests/testReproductionLabelInPollResponse.py +0 -658
- vaibify-0.1.2/tests/testReproductionLive.py +0 -241
- vaibify-0.1.2/tests/testReproductionRecordPlatform.py +0 -141
- vaibify-0.1.2/tests/testReproductionReport.py +0 -160
- vaibify-0.1.2/tests/testRerunDiagnostics.py +0 -232
- vaibify-0.1.2/tests/testRerunRegeneratesWhatItGrades.py +0 -674
- vaibify-0.1.2/tests/testRerunVerifiesWhatItRan.py +0 -1041
- vaibify-0.1.2/tests/testResumableDownload.py +0 -974
- vaibify-0.1.2/tests/testStaleReproduceScriptIsNotRunnable.py +0 -227
- vaibify-0.1.2/tests/testStepLevelStates.py +0 -1125
- vaibify-0.1.2/tests/testStepRoutes.py +0 -506
- vaibify-0.1.2/tests/testStyleInvariants.py +0 -1588
- vaibify-0.1.2/tests/testSyncRoutesCoverage.py +0 -3083
- vaibify-0.1.2/tests/testTestGeneratorBranches.py +0 -358
- vaibify-0.1.2/tests/testTestGeneratorPure.py +0 -393
- vaibify-0.1.2/tests/testTestRoutesCoverage.py +0 -1520
- vaibify-0.1.2/tests/testTheNextStepIsNamedOnlyWhenOrderMatters.py +0 -790
- vaibify-0.1.2/tests/testVaibifyDoCli.py +0 -1600
- vaibify-0.1.2/tests/testWorkflowManager.py +0 -1267
- vaibify-0.1.2/tests/testZenodoEnvelopeArchive.py +0 -602
- vaibify-0.1.2/tools/checkInstalledDistribution.py +0 -385
- vaibify-0.1.2/tools/generateMutationInventory.py +0 -2460
- vaibify-0.1.2/tools/generateStyleInventory.py +0 -860
- vaibify-0.1.2/vaibify/_version.py +0 -24
- vaibify-0.1.2/vaibify/cli/actionCommands.py +0 -505
- vaibify-0.1.2/vaibify/cli/commandBuild.py +0 -1238
- vaibify-0.1.2/vaibify/cli/commandReproduce.py +0 -1297
- vaibify-0.1.2/vaibify/cli/commandVerifyStep.py +0 -156
- vaibify-0.1.2/vaibify/cli/hubSession.py +0 -578
- vaibify-0.1.2/vaibify/cli/main.py +0 -568
- vaibify-0.1.2/vaibify/completions/vaibify.bash +0 -213
- vaibify-0.1.2/vaibify/completions/vaibify.fish +0 -104
- vaibify-0.1.2/vaibify/completions/vaibify.zsh +0 -152
- vaibify-0.1.2/vaibify/config/containerConfig.py +0 -195
- vaibify-0.1.2/vaibify/config/registryManager.py +0 -825
- vaibify-0.1.2/vaibify/containerImage/Dockerfile +0 -783
- vaibify-0.1.2/vaibify/containerImage/Dockerfile.jupyter +0 -28
- vaibify-0.1.2/vaibify/containerImage/entrypoint.sh +0 -1799
- vaibify-0.1.2/vaibify/containerImage/skills/create-pipeline-step/SKILL.md +0 -134
- vaibify-0.1.2/vaibify/containerImage/vaibifyDo.py +0 -983
- vaibify-0.1.2/vaibify/docker/containerManager.py +0 -1428
- vaibify-0.1.2/vaibify/docker/dockerConnection.py +0 -3988
- vaibify-0.1.2/vaibify/docker/dockerContext.py +0 -404
- vaibify-0.1.2/vaibify/docker/pinnedImageAcquisition.py +0 -620
- vaibify-0.1.2/vaibify/docs/agentCouncil.md +0 -340
- vaibify-0.1.2/vaibify/docs/environmentsAndProjects.md +0 -759
- vaibify-0.1.2/vaibify/docs/proofLadder.md +0 -377
- vaibify-0.1.2/vaibify/docs/reproducibility.md +0 -315
- vaibify-0.1.2/vaibify/docs/testing.md +0 -644
- vaibify-0.1.2/vaibify/gui/actionCatalog.py +0 -1525
- vaibify-0.1.2/vaibify/gui/agentCouncil.py +0 -1550
- vaibify-0.1.2/vaibify/gui/agentCouncilAntigravityProvider.py +0 -404
- vaibify-0.1.2/vaibify/gui/agentCouncilCodexProvider.py +0 -339
- vaibify-0.1.2/vaibify/gui/agentSessionBridge.py +0 -92
- vaibify-0.1.2/vaibify/gui/appFactory.py +0 -798
- vaibify-0.1.2/vaibify/gui/buildRoutes.py +0 -629
- vaibify-0.1.2/vaibify/gui/conversionLifecycle.py +0 -747
- vaibify-0.1.2/vaibify/gui/determinismEnvironment.py +0 -423
- vaibify-0.1.2/vaibify/gui/fileStatusManager.py +0 -2654
- vaibify-0.1.2/vaibify/gui/introspectionScript.py +0 -1215
- vaibify-0.1.2/vaibify/gui/pipelineLogger.py +0 -629
- vaibify-0.1.2/vaibify/gui/pipelineRunner.py +0 -1896
- vaibify-0.1.2/vaibify/gui/pipelineServer.py +0 -3782
- vaibify-0.1.2/vaibify/gui/pipelineTestRunner.py +0 -275
- vaibify-0.1.2/vaibify/gui/pipelineUtils.py +0 -708
- vaibify-0.1.2/vaibify/gui/pipelineValidator.py +0 -122
- vaibify-0.1.2/vaibify/gui/promptRecordManager.py +0 -663
- vaibify-0.1.2/vaibify/gui/reproductionProgress.py +0 -638
- vaibify-0.1.2/vaibify/gui/routeContext.py +0 -936
- vaibify-0.1.2/vaibify/gui/routeScope.py +0 -1193
- vaibify-0.1.2/vaibify/gui/routes/__init__.py +0 -81
- vaibify-0.1.2/vaibify/gui/routes/fileRoutes.py +0 -910
- vaibify-0.1.2/vaibify/gui/routes/pipelineRoutes.py +0 -4301
- vaibify-0.1.2/vaibify/gui/routes/reproducibilityRoutes.py +0 -2388
- vaibify-0.1.2/vaibify/gui/routes/scriptRoutes.py +0 -433
- vaibify-0.1.2/vaibify/gui/routes/stepRoutes.py +0 -1035
- vaibify-0.1.2/vaibify/gui/routes/testRoutes.py +0 -1078
- vaibify-0.1.2/vaibify/gui/serverMiddleware.py +0 -465
- vaibify-0.1.2/vaibify/gui/stateContract.py +0 -403
- vaibify-0.1.2/vaibify/gui/static/index.html +0 -1492
- vaibify-0.1.2/vaibify/gui/static/scriptAcquisitionWindow.js +0 -447
- vaibify-0.1.2/vaibify/gui/static/scriptAgentCouncil.js +0 -4991
- vaibify-0.1.2/vaibify/gui/static/scriptApplication.js +0 -7997
- vaibify-0.1.2/vaibify/gui/static/scriptContainerManager.js +0 -3319
- vaibify-0.1.2/vaibify/gui/static/scriptDependencyScanner.js +0 -827
- vaibify-0.1.2/vaibify/gui/static/scriptDirectoryBrowser.js +0 -341
- vaibify-0.1.2/vaibify/gui/static/scriptEventBindings.js +0 -1517
- vaibify-0.1.2/vaibify/gui/static/scriptFigureViewer.js +0 -1921
- vaibify-0.1.2/vaibify/gui/static/scriptFileOutcomes.js +0 -133
- vaibify-0.1.2/vaibify/gui/static/scriptPolling.js +0 -565
- vaibify-0.1.2/vaibify/gui/static/scriptProofTab.js +0 -1365
- vaibify-0.1.2/vaibify/gui/static/scriptReproducePublished.js +0 -600
- vaibify-0.1.2/vaibify/gui/static/scriptStepEditor.js +0 -427
- vaibify-0.1.2/vaibify/gui/static/scriptStepRenderer.js +0 -2078
- vaibify-0.1.2/vaibify/gui/static/scriptSyncManager.js +0 -3304
- vaibify-0.1.2/vaibify/gui/static/scriptTestManager.js +0 -986
- vaibify-0.1.2/vaibify/gui/static/scriptWorkflowRequirements.js +0 -3954
- vaibify-0.1.2/vaibify/gui/static/styleMain.css +0 -9777
- vaibify-0.1.2/vaibify/gui/stepRename.py +0 -618
- vaibify-0.1.2/vaibify/gui/syncDispatcher.py +0 -2141
- vaibify-0.1.2/vaibify/gui/templateManager.py +0 -543
- vaibify-0.1.2/vaibify/gui/testGenerator.py +0 -1151
- vaibify-0.1.2/vaibify/gui/testParser.py +0 -83
- vaibify-0.1.2/vaibify/gui/trackedReposManager.py +0 -746
- vaibify-0.1.2/vaibify/gui/verificationProgress.py +0 -222
- vaibify-0.1.2/vaibify/gui/workflowManager.py +0 -2952
- vaibify-0.1.2/vaibify/gui/workflowMigrations.py +0 -797
- vaibify-0.1.2/vaibify/gui/workflowReloadDetector.py +0 -271
- vaibify-0.1.2/vaibify/reproducibility/answeredQuestion.py +0 -91
- vaibify-0.1.2/vaibify/reproducibility/connectionCheck.py +0 -423
- vaibify-0.1.2/vaibify/reproducibility/dataArchiver.py +0 -525
- vaibify-0.1.2/vaibify/reproducibility/dependencyPinning.py +0 -422
- vaibify-0.1.2/vaibify/reproducibility/determinismGate.py +0 -508
- vaibify-0.1.2/vaibify/reproducibility/imageAcquisition.py +0 -822
- vaibify-0.1.2/vaibify/reproducibility/l3Attestation.py +0 -541
- vaibify-0.1.2/vaibify/reproducibility/levelGates.py +0 -5171
- vaibify-0.1.2/vaibify/reproducibility/levelOrdering.py +0 -423
- vaibify-0.1.2/vaibify/reproducibility/manifestPaths.py +0 -306
- vaibify-0.1.2/vaibify/reproducibility/publicationScope.py +0 -360
- vaibify-0.1.2/vaibify/reproducibility/rangedHttpTransport.py +0 -491
- vaibify-0.1.2/vaibify/reproducibility/repoFiles.py +0 -1271
- vaibify-0.1.2/vaibify/reproducibility/reproduceScriptGenerator.py +0 -678
- vaibify-0.1.2/vaibify/reproducibility/reproductionLabel.py +0 -326
- vaibify-0.1.2/vaibify/reproducibility/reproductionReport.py +0 -337
- vaibify-0.1.2/vaibify/reproducibility/rerunDiagnostics.py +0 -174
- vaibify-0.1.2/vaibify/reproducibility/rerunPreparation.py +0 -315
- vaibify-0.1.2/vaibify/reproducibility/rerunVerification.py +0 -808
- vaibify-0.1.2/vaibify/reproducibility/resumableDownload.py +0 -828
- vaibify-0.1.2/vaibify/reproducibility/zenodoClient.py +0 -1302
- vaibify-0.1.2/vaibify/templates/workflow/GenerateSamples/generateSamples.py +0 -65
- vaibify-0.1.2/vaibify/templates/workflow/PlotHistogram/plotHistogram.py +0 -126
- vaibify-0.1.2/vaibify.egg-info/PKG-INFO +0 -138
- vaibify-0.1.2/vaibify.egg-info/SOURCES.txt +0 -1794
- vaibify-0.1.2/vaibify.egg-info/scm_file_list.json +0 -1789
- vaibify-0.1.2/vaibify.egg-info/scm_version.json +0 -8
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.claude/hooks/askSensitiveEdit.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.claude/hooks/blockDestructiveGit.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.claude/settings.json +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.claude/skills/add-data-loader/SKILL.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.claude/skills/container-mutations/SKILL.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.claude/skills/host-mode-and-paths/SKILL.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.claude/skills/monitor-pr/SKILL.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.claude/skills/terminal-sessions/SKILL.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.githooks/pre-commit +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.github/workflows/agentDocsPathCheck.yml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.github/workflows/badges.yml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.github/workflows/containerAcceptance.yml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.github/workflows/docs.yml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.github/workflows/falsification.yml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.github/workflows/freshImageBuild.yml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.github/workflows/mutation.yml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.github/workflows/pip-install.yml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.github/workflows/publishedReproduction.yml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.github/workflows/remoteSsh.yml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.github/workflows/security.yml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.github/workflows/styleContract.yml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.github/workflows/tests-macos-nightly.yml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.github/workflows/tests-macos.yml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.github/workflows/toolchainEpoch.yml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.gitignore +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/.zenodo.json +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/CITATION.cff +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/LICENSE +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/VaibifyIcon.png +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/bin/connect_vc +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/bin/vcTransferCommon.sh +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/bin/vc_pull +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/bin/vc_push +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/cosmic-ray.toml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/design/agentCouncil.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/design/agentCouncilContinuationPlan.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/design/agentCouncilMultiProviderImplementationPlan.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/design/agentCouncilPhase0Findings.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/design/agentCouncilRemediation.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/design/agentCouncilReviewCouncil.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/design/agentCouncilVerificationLanes.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/design/copiesLevel3MergeAndOrderedEndgame.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/design/externalServices.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/design/level3AttainmentSequence.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/design/permanentArchivePromotion.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/design/permanentArchivePromotionImplementation.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/docs/_static/.gitkeep +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/docs/_static/custom.css +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/docs/conduct.rst +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/docs/conf.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/docs/developers.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/docs/externalResources.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/docs/forAgents.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/docs/index.rst +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/docs/knownDebt.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/docs/skillTesting.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/docs/vaibify_logo.png +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/docs/vaibify_screenshot.png +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/pyproject.toml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/pytest.ini +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/setup.cfg +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/__init__.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/agentCouncilHarness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/attributionShapes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/__init__.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/fakeDockerAdapter.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/filesLane.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testABadgeOffersTheActionThatResolvesIt.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testABlockedRowStillTeaches.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testABuildRefusalIsNotARunningBuild.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAClickSurvivesAPollRender.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAContainerOffThePinWarnsBesideTheSnapshotRow.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testADragThatLeavesTheWindowKeepsScrolling.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testADropTargetIsATargetInEveryBrowser.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testADroppedBuildRequestAttachesInstead.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAFailedStepExplainsItsExitCode.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAFailureToastOffersADiagnosis.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAHeldTileOffersRelease.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testALateAnswerNeverRepaintsAViewer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testALevelCrossingWarnsBeforeItWrites.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testALockedTileExplainsOnClick.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testALostClaimRecoversWhereverItIsMet.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAMissingFileIsListedNotJustCounted.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAPartlyDivergedEnvelopeReadsPartial.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAPendingSignOffIsNotAWarning.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAPreRunWarningReachesTheScreen.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAPromoteRefusalSaysWhy.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAPromotionDoesNotTakeItsOwnClaimBack.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAQuickVerificationIsStillReported.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAReadersVerificationLeavesTheAttestationRowStill.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testARecreateSaysWhatItDiscards.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testARefusedTestRunIsNotAFailure.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAResizeDoesNotStrandOldFrames.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAResizeKeepsThePaneFollowingItsOutput.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testARunMenuCheckSaysItIsWorking.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testARunningRemoteCheckPulsesTheBadge.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testASandboxDepositIsNamedOnTheRow.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testASettledAttestationRechecksTheRemotes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAStaleAiDeclarationSaysWhatChanged.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAStaleVerifyAdmitsIt.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAVerificationIsFollowedOnTheProjectBlock.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAVerificationPulsesOnlyWhatItAssesses.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAdoptBarOffersOnlyWhatCanWork.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAnAgentsRunMovesTheStepLights.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAnErrorToastKeepsItsRemedy.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAnExternalRunIsAppliedByCategoryAndAnnouncedOnce.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAnInterruptedPromotionSurvivesAReload.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAnOlderScopeRendersAsVerifyAgain.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testAnUncheckedPassIsNeverShownAsPassed.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testBadgesRepaintAfterAVerify.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testBlankProjectCanReadAndChangeItsSession.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCleanOutputsAppliesWhatTheRouteWrote.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testConvertToProjectJourney.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCopyButtonsReportTheRealOutcome.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCopyHasAShortcutTheBrowserCannotTake.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCopySurvivesTheSelectionBeingCleared.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilAcceptCarriesItsDirectory.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilBlockedButtonExplainsItself.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilChooserTasks.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilConveneNeedsAModel.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilCredentialConsent.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilDraftSurvivesAReload.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilFinishedSurface.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilGroupNameCannotInjectMarkup.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilImplementPlanButton.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilLoginCapNotice.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilNotesAndSummarySurfaces.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilPauseSurface.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilPlanningJourney.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilProvenanceLostGateIsReadOnly.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilRetentionBoundaryIsInTheConsole.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilRetryOffer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilSnapshotScopeModal.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testCouncilWorkspaceCloseReturnsToChooser.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testDashboardEdgesTellTheTruth.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testDashboardSkipsAreMarkedStale.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testDeclarationStepClaimsNoRunOutcome.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testDeleteEnvironmentIsTypedNotClicked.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testDestructiveActionsLookDestructive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testDownloadDoesNotAskToLeaveThePage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testEnvironmentInfoModalOpens.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testErrorRedaction.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testExpiredWindowSaysSo.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testFailedBadgeRefreshMakesNoClaim.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testFilesTabDownload.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testFilesTabUpload.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testForeignManifestGuard.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testHelpLivesInOnePlace.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testHostCancelSurface.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testHostProjectJourney.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testIdleTimeoutSetting.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testInformationalFilesAreNotLevelTwoDefects.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testInlineFailuresCarryTheDiagnosis.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testOpenInVsCodeAsksTheHostForTheLink.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testPausedBadgeIndicator.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testPerFileZenodoSyncOpensTheModal.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testPickerScreensScroll.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testProjectBlockBadgesAreActionable.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testProjectBlockShowsItCanBeOpened.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testProjectSwitchShowsItsProgress.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testPromoteFromInsideJourney.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testPromoteToHostProjectJourney.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testProofTabLedgerFollowsTheGate.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testPushRunsTheVerifyThatProvesIt.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testQuarantineChipExplains.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testRegenerateWarnsBeforeItCosts.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testRemnantsGlyphAndPanel.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testRemoteFilesGroupByDisposition.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testRemoteSessionSaysWhere.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testReposPanelIsReachableWithAProjectOpen.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testReproducePublishedCard.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testResizeAndCopyHoldTogether.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testSaveFailureNamesItsReason.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testSelectingTextWhileAProgramHoldsTheMouse.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testSessionLifetimeSetting.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testStepReorderUsesAPrivateDragType.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testSwitchingProjectsKeepsEachProjectsState.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTerminalPaneSurvivesADrop.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTerminalScrollbackIsReachable.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheAgentMemoryAdviceIsTheServers.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheAiBlockCountsOnlyItsGatingRows.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheAiDeclarationEditsInPlace.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheAiDeclarationFileIsChosenOrGenerated.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheArchiveRowNamesWhereADepositGoes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheArchiveRowsCarryTheirOwnConditions.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheAttestationNudgeIsActionable.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheAttestationNudgeIsAnEncouragement.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheDriftBannerHidesForThisVisit.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheEnvelopeMirrorRowRenders.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheEnvironmentArchiveRowTellsItsStatesApart.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheHelpNamesThisMachinesKey.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheLimitSettingsSayWhatWillHappen.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheLockRowKeepsItsStateAndSaysWhy.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheMergeModalIsActuallyVisible.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheNextStepArrowPointsAtARealRow.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheOpenTimeReadsAreChained.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testThePickerKeepsItsCardsAcrossAPoll.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testThePinnedEnvironmentNoteIsTheServers.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheProjectBlockPaintsOnceAndCorrectly.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheProjectHubDiagnosesItself.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testThePromptRecordNamesWhatItLeftOut.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testThePromptRecordViewerShowsAGeminiRewind.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testThePromptRecordViewerShowsTheRecord.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheReproductionBadgeFollowsTheServer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheResetAndCompareLoopIsReachable.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheResourceHelpDoesNotRecommendACap.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheRunMenuCanStartAnL3Verify.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheSetupWizardKeepsAndReports.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheSetupWizardSignsItselfIn.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheSignOffFollowsTheServer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheTerminalResetGivesTheMouseBack.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheToolbarControlsStayOneCluster.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheVerifyControlsSayTheyAreWorking.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheX11OptInIsOffByDefaultAndExcludesIsolation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testTheZenodoRowOffersBothRemedies.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testUndecidedRepoPrompts.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testUndeclaredTestCategorySaysNotApplicable.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testUnprovenEnvelopeIsNotAnAlarm.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testUnsignedTabSaysSo.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testUploadZoneNamesItsSourceMachine.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testVerifyOffersCommittedRestore.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testVerifyRefusesBeforeItWarns.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testVerifyWarnsBeforeCopyingTheProject.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testViewRenderBaseline.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testWizardStartsFromCommittedFiles.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testWorkflowFieldsCannotInjectMarkup.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testWorkspaceRootReachesThePanels.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/browser/testZenodoRecordsModal.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/carrierStandDown.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/confinedReadScenarios.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/confinedWriteHarness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/councilCredentialLiveHelpers.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/dockerConnectionDoubles.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/dockerRuntimeStub.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/hostGitProbeCalls.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/hostGitProbeHarness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/liveContainerLabels.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/localGitRemote.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/markerPollHarness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/markerStateSupport.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/perTestMarkerHarness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/reproductionSourceFixtures.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/sessionTokenTestHelper.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/shellCompletionHarness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/snapshotProgramHarness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/syncStatusFixtures.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testABusyCheckWaitsForATransientRecord.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testADivergedBranchIsOfferedAMerge.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAMissingOutputIsNotAModifiedOne.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAbandonHostJournal.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAcknowledgementKeepsThePollBaseline.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testActionCatalog.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testActionCommandsDispatchCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAdvancingALevelNeverLowersOne.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAdvertisedCommandsExist.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAgentCouncilCharter.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAgentCouncilContext.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAgentCouncilContextLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAgentCouncilEgressLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAgentCouncilEngine.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAgentCouncilMultiProvider.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAgentCouncilProviders.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAgentCouncilProvidersLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAgentCouncilRegistry.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAgentCouncilRunnerLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAgentCouncilSnapshotScopeLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAgentLayerSeparation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAgentRunsItsOwnProject.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAgentUpdateStepAllowlist.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAiDeclarationFileLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAiDeclarationStepKind.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAiModelDeclarationIssues.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAiProvenanceStamp.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAlphaFacingTruthfulness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAlreadyCommittedFileIsNotASyncFailure.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAmericanSpelling.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAnOutputAbsentFromTheManifestIsNeverVouchedFor.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testApiClientContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testArchiveDepositPlan.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testArchiveFeatures.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testArchiveMemberValidatorIsShared.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testArchivePermanence.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testArchiveTestsOptOutLeavesNoUnclearableRows.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testArchivedAttestationIsPublic.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testArxivClient.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testArxivConfigureRoute.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testArxivPathTraversal.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAttainingALevelDoesNotLowerAnother.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAttestationRevalidation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAttributionLog.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAttributionLogConcurrentAppends.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testAutoArchive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBackgroundTasksAreReferenced.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBadgeState.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBaseImagePin.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBaseImagePinLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBatchedSmallFileRead.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBinaryDrift.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBinaryStaleWarning.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBindMountDenyListReadsTheFilesystem.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBindMountRefusesAbsentSource.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBindMountValidator.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBlindSpotDispositions.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBlockersExplainEveryRefusal.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBootstrapEndpoint.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBothBuildLanesPreflightAlike.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBoundedPriorHash.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBreachOutcomeDeterminism.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBridgeGateway.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBroadHandlersPassControlPlaneRefusals.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBrowserCredentialPresentation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBrowserLaneContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBrowserLaneParallelSafety.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBrowserSession.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBuildArchiveSnapshot.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBuildCacheInvalidation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBuildErrorClassification.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBuildFailureModalFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBuildInputHash.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBuildProgressRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBuildSilenceIsReported.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testBuildTailKeepsTheReason.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCancelledRunLeavesItsLog.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCapabilitiesSurviveMalformedTypedReads.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCarrierIntentAudit.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCarrierModeDeclaration.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCgroupMemory.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testClaimRequiredRefusal.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testClaimRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testClaimSurvivesTheDisclosure.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCliActionCommands.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCliExecIsCleanedUp.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCliHubSessionMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCliMain.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCliPipelineDispatch.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCliStatusDestroy.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCliSubcommands.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoherentExport.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoherentExportLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testColimaHostagentLogProbe.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testColimaVersionPreflight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCommandBuild.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCommandBuildBaseImagePin.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCommandBuildPipFlags.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCommandBuildPreflight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCommandDoctor.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCommandGenerateStandards.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCommandReconcile.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCommandRevoke.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCommandSecret.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCommandSessions.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCommandStartGui.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCommandStartPreflight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCommandUtilities.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCommandUtilsDocker.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCommittedFileRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCommittedFiles.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCompletePathCommand.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCompletionIsStateOnly.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConcurrentProjectRuns.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConcurrentStateSaves.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConfigFieldPreflight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConfigLoader.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConfigurationFingerprint.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConfinedContainerWrite.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConfinedRead.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConfinedReadParity.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConfinedStreamingLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConfinedStreamingWrite.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConfinedTreeWrite.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConfinedTreeWriteLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConfinedWriteLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConfinedWriteSignalDeath.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConftestCarriesTheContractVerbatim.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConftestLoaderKeepsCommittedFilesStable.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConftestManagerCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConftestManagerMarker.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConftestManagerVersioning.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConftestPerTestMarker.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConftestRefreshBeforeRun.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConftestRefreshSparesStepsWithoutTests.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConnectHubOwnershipGate.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConnectionRouter.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testContainerAcceptance.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testContainerBuildIntegration.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testContainerConfig.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testContainerGit.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testContainerLifecycleGating.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testContainerLock.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testContainerManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testContainerManagerFull.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testContainerMemoryRoute.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testContainerMemoryWatch.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testContainerMemoryWatchLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testContainerOwnership.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testContainerRepairIsLifecycleSafe.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testContainerSessionResolution.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testContainerSweepSparesHostProjects.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testContentSecurityPolicy.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConversionLifecycle.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConvertConfigRewrite.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testConvertToContainerRoute.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCopyDirectoryLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilAdmissionLogIsBounded.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilBaselineOffLoop.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilCampaignIdentity.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilCampaignName.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilChat.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilControllerIntegration.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilControllerLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilControllerSerialization.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilCrashRecovery.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilCredentialGate.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilCredentialRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilCredentialStore.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilCredentialTestJob.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilCredentialTestJobLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilDurableProvenance.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilGateDecisions.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilGatewayAuthority.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilGatewayLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilIdleVeto.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilNotesAndDeliberationSummary.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilPause.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilPeerHubIsolation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilPeerHubIsolationLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilPhaseAttempts.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilPhaseInFlight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilReadiness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilResume.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilRetry.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilRunnerAccess.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilRunnerLimitsFollowTheDaemon.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilShutdownOrder.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilSnapshotCapacity.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilSnapshotCredentialExclusions.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilSnapshotRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilSnapshotScope.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilStoppingPoint.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilStorePersistence.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilStoreRetention.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCouncilTurnBudgetsAreEnforced.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCliDoctorChecks.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCliDoctorCommand.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCliStandardsAndActions.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCliUnreadableProjectFile.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCoreCommitCarrier.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCoreDataLoaders.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCoreEnvironmentDeletion.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCoreFileStatusManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCoreGitStatus.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCoreHostConnection.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCoreOperationJournal.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCorePinnedEnvironment.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCoreServerLifespan.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCoreSessionLifecycle.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCoreStartReservation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCoreStateManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCoreTerminalContainment.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCoreTerminalSession.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCouncilControllerRefusals.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCouncilGatewayLifecycle.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCouncilProviderAdapters.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCouncilStateCampaign.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCouncilStateChat.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCouncilStateCredentialTest.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCouncilStateEngine.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCouncilStateRouteHelpers.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCouncilStateRunnerAndEgress.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCouncilStateSnapshotScope.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageCouncilStateStore.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageDockerConnectionTransfers.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageDockerConnectionTypedReads.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageDockerContainerManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageDockerDisposableContainer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageDockerDisposableSpecification.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageDockerImageBuilder.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageDockerLifecycleRepair.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageDockerPinnedImage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageDockerRuntimeRemedies.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageHostControlHandlers.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageHostControlSocket.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageReproducibilityDockerfileExport.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageReproducibilityEnvironmentSnapshot.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageReproducibilityImageDeposit.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageReproducibilityLevelGates.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageReproducibilityOverleafSync.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageReproducibilityRepoFiles.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageReproducibilityReproductionSource.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageReproducibilityScheduledReverify.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageReproducibilityZenodoArxiv.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageRoutesAEnvironmentArchive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageRoutesAFalsification.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageRoutesAFileRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageRoutesAPromotionRecovery.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageRoutesATerminal.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageRoutesBAppFactory.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageRoutesBBuild.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageRoutesBGit.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageRoutesBRegistry.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageRoutesBReplay.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageRoutesBReproduction.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageRoutesBStep.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageRoutesBSync.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCoverageTargeted.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCreationWizardRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCredentialIsolation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCredentialRedactionIsBySpan.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCredentialRedactor.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCredentialRedactorMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCredentialTestErrorsStayClean.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCrossMachineUserVerification.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testCrossWorkflowStateErasure.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDaemonCapacity.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDaemonDiskPreflight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDashboardColumnsFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDataArchiverExtended.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDataArchiverMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDataLoaders.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDataLoadersCsvErrorPaths.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDataLoadersMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDataLoadersStayOutOfTheHub.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDataPreviewInjection.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDeclarationFreshness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDeclarationStepHonorsTheSlugContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDeclaredGuaranteesAreAnchored.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDeclaredPackagesMatchTheImage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDeleteEnvironmentRoute.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDependencyPinning.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDependencyPinningMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDependencyScan.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDependencyScanner.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDepositIsNotDownloadedTwice.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDepositSeams.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDeterminismEnvHonesty.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDigestTimestampNaming.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDirectTestRunsRestoreTheMarkerPlugin.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDirectoryListing.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDiskSpace.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDisposableContainerLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDisposableSurvivorReclaim.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDockerBinaryIsolation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDockerBuild.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDockerConnection.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDockerConnectionExecResult.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDockerConnectionLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDockerContext.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDockerErrorDiagnosis.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDockerHostContextRoundTrip.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDockerLiveDaemonRequirement.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDockerRuntimeClassification.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDockerStatusEndpoint.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDockerfileComposition.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDockerfileLint.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDockerfileLintMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDockerfileNetworkRetries.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDockerfileProvenance.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDocsMatchWorkflowTriggers.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDocsPublishedLinksResolve.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDoctorFindingsNameACommand.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDoctorInterpreterArchitecture.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDoctorIsReadOnly.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDoctorNetworkGraph.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDoctorNetworkLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDoctorProjectScope.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDoctorScopesAndExitCodes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDoctorShellCompletions.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDownloadRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDraftRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testDurableFile.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEntrypointAdvertisedPaths.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEntrypointAgentDocLinks.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEntrypointBuildBinary.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEntrypointCallsOnlyFunctionsItDefines.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEntrypointClaudeSettings.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEntrypointGitCredentials.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEntrypointMigration.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEntrypointPipNotAPackage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEntrypointReadinessMarker.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEntrypointRepairsBrokenDocLinks.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEntrypointRepoRefs.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEntrypointResourcesGuidance.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEntrypointRootPhasePath.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEnvelopeImageCurrency.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEnvelopeRegenerationReportsItsDelta.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEnvelopeSnapshot.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEnvelopeTierResultsAreVisible.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEnvironmentArchive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEnvironmentArchivePromotion.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEnvironmentArchiveRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEnvironmentArchiveStop.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEnvironmentDeletion.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEnvironmentDrift.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEnvironmentInfoRoute.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEnvironmentSnapshot.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEnvironmentSnapshotMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEphemeralStore.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testEveryLevelTwoSyncRefusalIsNamedByABlocker.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testExecArgumentBudget.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testExecSocketExchange.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testExhaustiveCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testExitCodesAreExplained.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testExitedContainerEvidence.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testExplicitReleaseAuthority.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFailedSaveGroundTruthFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFalsificationAttestation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFalsificationAttestationMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFalsificationRoutesCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFalsificationRoutesMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFalsificationSharding.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFigureServer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFigureViewerFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFileBrowserEscapingFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFileEdgesAreSafe.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFileEndpointsAndMiddleware.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFileStatusManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFileStatusManagerInvalidation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFileStatusManagerProofAdditions.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFileStatusManagerStaleness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFileStatusManagerTimestamps.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFileTransfer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFinalCoverageGaps.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testForcePushArgumentOrder.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testForwardedHostPortFree.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFreshnessUncheckedLevelOne.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testFunctionLengthStatement.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testGatesRunOnEveryPullRequest.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testGenerateReproducibilityEnvelope.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testGeneratedFileNamesAreStepNamed.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testGitBadgesPartialRenderFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testGitRoutesProjectRepoSync.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testGitRoutesRemoteUrl.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testGitStatus.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testGithubAuth.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testGithubBadgeMeansAgreementNotCleanliness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testGithubMirror.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testGithubRemoteIsDerivedNotDeclared.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testGithubRoutesProjectRepoCwd.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testGithubTokenBinding.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testGithubTokenResolution.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testGithubWorkflow.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testGuiLaunchHonesty.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHarnessHookMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHashStaleness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHashStalenessCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHashStalenessIntegration.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHashStalenessManifest.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostBusyOracle.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostCancel.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostCapabilityInventory.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostClaimPath.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostCliSession.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostConfinedRead.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostConnection.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostControlChannel.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostCpuAccounting.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostDeterminismEnvironment.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostGitAndReposPanel.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostGitSafetyProbes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostHeaderCheck.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostIncidents.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostModeContainerOnlyRefusals.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostModeDaemonGate.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostModeHonestyGates.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostModeProjectRoots.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostPathGuardCorpus.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostPrerequisiteReport.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostProjectAsksGitWithoutTimeoutBinary.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostQuarantineSurface.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostReadNeedsDirectoryRelativeAccess.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostResidueStaysInsideOneProject.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostScratchSweeper.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostSnapshotTwin.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostStreamingWrite.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostSubprocessConfinement.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostTerminal.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHostTransfer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHubAppGovernance.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHubDoctorRoute.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHubIdleWatchdog.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHubPortRegistry.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHubSessionCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testHubShutdownSignals.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testIdleWatchdogOffLoop.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testImageAcquisition.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testImageArchiveVersioning.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testImageBuilder.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testImageBuilderExtended.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testImageLocale.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testImageTrustAnsweredForThePin.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testImageTrustCommandLine.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testImageTrustGuardsTheLaunch.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testImageTrustLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testImageTrustProvenanceRows.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testImageTrustTextHasOneHome.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testInitRegistrationOutcome.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testInitTemplateRepositories.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testInjectionGuards.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testInlineCodeCommandsPassPreflight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testInputDataStaleness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testInstallScriptAgents.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testInteractivePauseSurvivesReconnect.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testInteractiveSteps.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testIntrospectionScriptGaps.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testIntrospectionTfrecord.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testInventoryRepositoryGitSurface.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testKeepAliveManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testKeepAliveSpawnLedger.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testKeychainIsolationCrossesProcesses.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLatexAnnotation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLatexConnectorExtended.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLeaseSessionBinding.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLedgerFormatIsCanonical.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLevelBlockers.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLevelCellsNeverOverstate.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLevelContiguousClimbContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLevelGateL2Blockers.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLevelGates.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLevelGatesBlockerCache.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLevelGatesMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLevelGatesRefusalPropagation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLevelGatesStepClassifiers.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLevelReportCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLevelRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLevelTwoRechecksLocalBytes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLifecycleLogging.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLifecycleRouteAuthority.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLinuxDockerPreflight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLiveLanesLabelWhatTheyCreate.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLiveSessionBoundary.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLlmInvokerBranches.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLockInputFallsBackToVaibifyRequirements.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testLoggingHygiene.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMakeDirectory.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testManifestCheck.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testManifestCompletenessAsksTheWriter.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testManifestOwnershipFromSnapshotFacts.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testManifestPaths.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testManifestVerifyRoute.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testManifestWriter.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testManifestWriterMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMarkerAppliedToUnnecessaryStep.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMarkerBookkeepingIsIgnored.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMarkerDigestVerdicts.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMarkerFreshnessLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMarkerFreshnessPoll.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMarkerHashesTemplatedPlots.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMarkerLevelGate.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMarkerNamespaceFromLoadedWorkflow.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMarkerStaleness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMatplotlibSaltIsolation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMatplotlibSaltIsolationLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMissingFileBadges.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testModelIdsAreHeldToPlainShapes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testModuleAttributeReferencesResolve.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMtimeCache.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMutationAttribution.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMutationBoundary.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testMutationScannerTypeCheckingExemption.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testNetworkEfficiencyFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testNoProjectOpenRefusal.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testNoQuoteBlindEscaperInTheFrontend.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testNoUnforwardedUrlsInRemoteSession.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testObtainedBaseStacksLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOldMarkerReadsAsItAlwaysDid.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOomAttribution.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOperationJournal.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOperationJournalMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOrphanTransition.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOrphanedPublishMachinery.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOrphanedTerminalsAreEnded.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOrphanedWriteTemporaries.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOutputFreshnessByContent.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOverlayBannersReadTheStepFirst.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOverleafBehavior.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOverleafFetchHashes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOverleafMirror.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOverleafPushProvenance.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOverleafSync.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOverleafSyncCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOverleafSyncExtended.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testOverleafTokenStaysOffTheCommandLine.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPackagedResources.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPathContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPathTraversal.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPathValidation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPendingPromotionRecord.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPerContainerStateLifecycle.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPerTestMarkerEndToEnd.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPidFileRegistry.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPinnedEnvironmentDrift.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPinnedImageAcquisition.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineLogAppend.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineLoggerCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineLoggerRotation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineRoutesCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineRoutesDiagnostics.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineRoutesEtag.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineRoutesManifestText.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineRoutesMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineRoutesShaCache.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineRunnerBranches.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineRunnerCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineRunnerErrors.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineRunnerExtended.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineRunnerFull.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineRunnerHeartbeat.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineRunnerMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineRunnerPure.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineRunnerStepsAndLog.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineRunnerStreamingEmitter.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineServerAgentAuth.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineServerCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineServerGaps.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineServerLifespan.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineServerPure.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineServerTaskEviction.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineState.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineStateHostIncidents.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineStateLiveness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineStateMock.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineStateWriter.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineTestRunnerCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPipelineUtilsScaling.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPlotRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPoisonRecord.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPortAllocator.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPreferencesRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPreferencesStore.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPreflightNamesTheCauseNotTheCascade.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPreflightResult.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPreflightValidation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProcessLiveness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProjectAdoption.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProjectAdoptionFalsification.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProjectBookkeepingSidecar.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProjectConfigExtended.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProjectContextRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProjectDepositPromotion.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProjectHeaderNeverOutranksItsRows.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProjectHubRefusals.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProjectRepoDetection.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProjectScopedAgentActions.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProjectSwitchWithinContainer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPromoteToHostProjectRoute.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPromotionRecovery.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPromptRecordAgentsLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPromptRecordManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPromptRecordPollFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPromptRecordViewer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProofGateLevel1.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProofLevelInPollResponse.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProvenanceCommitDuringRun.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProvenanceContractMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProvenanceTaint.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProvenanceTracker.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProvenanceTrackerMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testProviderApiTransport.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPublicationScopeSeparatesTheLevels.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPublishedReproductionWorkflow.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPullFromContainer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPullManuscriptRoute.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testPythonPackagePreflight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testQuarantineDetailRoute.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testQuarantineRefusalNamesItsCause.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testQuickStartReaderJourneyLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRandomnessLint.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReaderRunReplaysRecordedEpoch.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReadinessRoute.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReclaimNeverTreatsANameAsAnId.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReconcileNothingToReconcileExitsZero.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReconcileQuarantineRoute.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReconciliation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReconciliationMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReconfirmFalsificationJudgesKills.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReconnectWindowContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRecordedEpochReplay.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRefactoringCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRefreshRemotes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRefuseUnexecutedCommandFields.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRefusedArchiveConversionChangesNothing.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRegistryContainerRecognition.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRegistryIsNotAnL3Requirement.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRegistryManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRegistryRemovalIsLeaseEnforced.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRegistryRouteLockState.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRegistryRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRegistryRoutesCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemainingGaps.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemnantReapers.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemnantRemovalLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemnantRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemnantScanner.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemnantScannerLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemoteBadgeRefresh.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemoteClient.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemoteDataMarker.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemoteDataOverwriteGate.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemoteDataProvenance.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemoteDataRecordIdentity.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemoteHelper.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemoteProtocol.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemoteReattachment.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemoteSessionLane.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemoteSshLane.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRemotesMigration.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRenameKeepsPerTestMarkerSections.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReplayGate.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReplayRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRepoFiles.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRepoFilesMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRepoRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRepoStatusTypedRead.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReposPanelFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReposPollingFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRepositoryPreflight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReproduceFromSource.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReproducePublishedFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReproduceTierParity.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReproduceTierThreeRemedy.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReproductionProgress.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReproductionRecordBindsItsEvidence.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReproductionRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testReproductionSource.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRequirementsMirrorNamesWhatItDrops.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRerunHashCompareMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRerunRefusesUnexecutedSteps.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testResourceAdequacy.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testResourceLimitDrift.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testResourceLimitLiveApply.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testResourceLimitLiveApplyLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testResourceLimitRoundTrip.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testResourceLimitSettings.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testResourceLimits.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testResourceMonitor.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRouteContextCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRoutesRefuseCallerPathsOutsideTheirRoot.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRowAndGateAgreeOnManifestFreshness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRunAllRespectsDisabledFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRunFrameWithABadStepIsRefusedNotFatal.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testRunStateWireCarriesStepResults.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSafeReaper.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSandboxArchiveWithholdsLevel3.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testScheduledReverify.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSecretAvailability.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSecretFilesFollowTheirContainer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSecretManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSecretNamesWithSeparatorsCanBeStagedAndMounted.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSecurityBoundaryInvariants.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSemanticWorkflowFingerprint.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testServerLaunchContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testServerMiddlewareCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSessionCapSetting.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSessionCardinality.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSessionEndingNotice.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSessionLaneFollowsClaim.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSessionLifecycleEvaluator.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSessionLifecycleFoundation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSessionRegistry.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSessionRenewalAndWarningBands.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSessionSpawnRoute.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSetupWizard.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSetupWizardIsGuarded.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSetupWizardKeepsWhatItDoesNotShow.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testShadowContainerAdmission.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testShadowLaneLockFiles.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testShadowNamesTheImageGap.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testShadowRerun.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testShellCompletionInsertion.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testShellCompletionPositions.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testShellCompletionWiring.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testShellSetupVersioning.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSignOffCapturesPlotBytes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSignOffIsDatedByTheContainerClock.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSignOffReconciliationByContent.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSkillIntegrity.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSleepPreventionFollowsWork.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSnapshotAnswersBlobShaAndMissing.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSnapshotCacheRacyClean.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSnapshotNamesStayInsideTheRoot.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSpawnedWindowSignsIn.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStaleCapturedWorkflow.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStaleOutputAdvisoryIsNotADeadPayload.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStaleOutputDetector.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStandardsGenerator.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStandardsLoader.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStartLaunchCommands.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStartPreflightExtensions.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStartReservation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStartReservationFalsification.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStateContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStateDirectoryIsolation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStateLevelHighWater.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStateManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStateRecovery.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStateWriteLock.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStaticAnalysisClean.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStatusContextLine.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStepDirectoryValidator.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStepEditFingerprintFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStepEditorFingerprintLifetimeFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStepGateAgreesWithManifestWriter.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStepLabels.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStepListRenderFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStepRename.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStepRenameCascadeMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStepRenameCascadeReachesEverything.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStepRenameMoveCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStepRendererBlockerGlyphs.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStepSlugContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStepSlugMirrorEquivalence.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStepTestLogDirectory.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStepUpdateDestructiveGuard.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStepVerdictFromRuns.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStochasticDetector.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStopByRunMarkerLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testStopDoesNotNeedTheSession.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSupervisionAnchor.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSupervisionChipFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSupervisionWatchdog.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSymbolicStepReferencesAreChecked.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSyncDispatcherCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSyncDispatcherExtended.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSyncDispatcherGaps.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSyncDispatcherMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSyncDispatcherPure.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSyncEpoch.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSyncEpochReachesTheIdleDashboard.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSyncErrorClassification.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSyncErrors.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSyncProjectionCoversEveryPublishedPath.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSyncRoutesPushHardening.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSyncRoutesPushIdempotency.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSyncTestGenFull.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSyncVerifyRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSystemPackagePreflight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testSystemPackageValidation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTemplateManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTemplatedPlotMarkerInAContainerLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTerminalContainment.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTerminalContainmentLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTerminalPromptReset.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTerminalPromptResetLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTerminalRedialContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTerminalResizeOrdering.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTerminalRoutesCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTerminalSelectionContrast.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTerminalSession.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTerminalSessionExtended.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTerminalStartWindowIsDrained.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTerminalTeardownSurvivesShutdownCancellation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTestGeneratorExtended.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTestMarkerContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTestMarkerSystem.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTestsAndSignOffFollowThePlotBytesLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTextIoNamesItsEncoding.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTheArchiveIsAskedWhatItStored.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTheBlockedMapOutlivesTheArrow.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTheDashboardSettingsReachEveryMode.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTheLockIsCheckedBeforeARerunIsSpent.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTheLockVerdictCarriesItsFingerprint.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTheManifestDescribesTheFilesItShipsWith.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testThePollDoesNotRewriteWhatItReads.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTheProjectDepositIsAskedWhatItStored.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTheReadinessRouteAnswersARequest.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTheRerunSaysWhatItCosts.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTheScalarGateHasNoSecondList.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTheSnapshotIsADeclaredRead.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTheStagedClientStaysCurrent.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTimedCommandComposition.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTimedCommandsLive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testToolchainEpoch.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testToolchainPinDrift.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testToolkitEndToEnd.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTopologyCorrectFileActions.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTrackedIndexBeyondSymlinkBucket.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTrackedReposManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTranscriptSanitizer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTranscriptSanitizerCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTranscriptSanitizerJsonRecords.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTranscriptSanitizerParallel.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTranscriptSanitizerSplitSecrets.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTransferResolvesRelativeContainerPaths.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTruthDerivation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTypeAloneStopsTheSwallow.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testTypedReadFailureIsNeverAbsence.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testUndiscoveredTerminalRecordSettles.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testUnloadDoesNotReleaseContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testUploadRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testVaibifyDoHeadless.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testVaibifyDoUnansweredRequest.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testVaibifyOpen.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testVendoredPdfJs.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testVerifyRemoteIsBoundToThePush.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testVerifyResolvesPlotPathsWhereTheRunWritesThem.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testVirtiofsRetry.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testVolumeCommandsStayOffTheTerminal.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testVolumeManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testVsCodeAttachLink.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWallClockBudget.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWebSocketAuthorization.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWithdrawnTerminalLegacyRecords.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWizardDirectoryPickerContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWizardsShareOneRepositoryAuthority.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkflowDiscoveryLegacyRoot.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkflowFieldTypesAreValidatedAtLoad.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkflowLoadingBannerFrontendContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkflowManagerExtended.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkflowManagerMutationCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkflowManagerScaling.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkflowMergeGateSplit.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkflowMigrations.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkflowMigrationsAICSLevel.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkflowMigrationsProofLevelRename.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkflowReloadDetector.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkflowReloadIntegration.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkflowRoutesCoverage.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkflowSchemaForwardCompat.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkflowSwitchGenerationContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkspacePath.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkspaceRootHandshake.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWorkspaceSeedPaths.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testWritableLayerLoss.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testX11Findings.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testX11Forwarding.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testX11OptIn.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testX11Settings.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testZenodoClient.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testZenodoClientExtended.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testZenodoDatasetDownloadIsWithdrawn.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testZenodoFetchHashes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testZenodoIntegrationGaps.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testZenodoPublishWhereTheRecordIs.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testZenodoServiceAuthorities.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testZenodoUploadResilience.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/testZenodoVerifyUsesTheRecordedService.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tests/timingSupport.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/bootstrapAcceptanceContainer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/carrierIntentAudit.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/checkAgentDocsPaths.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/checkAmericanSpelling.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/checkBrowserLaunches.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/checkToolchainEpoch.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/checkToolchainPinDrift.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/computeBuildInputHash.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/deriveLaneSelection.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/evaluateSkillOutcomes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/evaluateSkillTriggers.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/generateHostCapabilityInventory.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/inventoryRepositoryGitSurface.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/ledgerFormat.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/listModules.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/mutationAttribution.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/reconfirmFalsification.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/skillEvals/outcomeTasks.json +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/skillEvals/triggerPrompts.json +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/summarizeFalsificationShards.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/tools/syncRequiredChecks.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/__init__.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/__main__.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/__init__.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/baseImagePreflight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandCat.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandCompletePath.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandConfig.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandDestroy.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandDoctor.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandGenerateStandards.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandInit.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandLs.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandOpen.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandPublish.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandReconcile.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandRegister.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandRemote.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandRemoteHelper.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandRepair.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandRevoke.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandRun.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandSecret.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandSessions.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandStart.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandStatus.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandTest.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandUtilsDocker.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/commandWorkflow.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/configFieldPreflight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/configLoader.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/daemonDiskPreflight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/doctorHostChecks.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/doctorNetwork.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/doctorProjectChecks.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/doctorX11Checks.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/imageTrustPrompt.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/levelReport.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/portAllocator.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/preflightChecks.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/preflightResult.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/pythonPackagePreflight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/remoteProtocol.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/repositoryPreflight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/serverLaunch.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/cli/systemPackagePreflight.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/__init__.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/abandonmentAudit.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/bindMountValidator.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/configurationFingerprint.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/connectionAvailability.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/containerLock.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/durableFile.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/ephemeralStore.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/hostResidue.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/hubPortRegistry.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/imageOrigins.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/imageTrust.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/keepAliveManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/modelIdentity.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/mutationAdmission.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/operationJournal.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/pendingConversions.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/pidFileRegistry.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/preferencesStore.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/processLiveness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/projectConfig.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/reconciliation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/resourceAdequacy.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/resourceLimits.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/secretAvailability.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/secretManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/sessionRegistry.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/templateManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/config/workerProcessPool.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/Dockerfile.antigravity +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/Dockerfile.claude +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/Dockerfile.claudeArmOnIntel +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/Dockerfile.cline +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/Dockerfile.codex +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/Dockerfile.gemini +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/Dockerfile.julia +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/Dockerfile.node +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/Dockerfile.opencode +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/Dockerfile.openhands +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/Dockerfile.pi +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/Dockerfile.rlang +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/Dockerfile.uv +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/checkIsolation.sh +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/overlays/database.dockerfile +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/overlays/dvc.dockerfile +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/overlays/gpu.dockerfile +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/overlays/nestedSampling.dockerfile +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/skills/diagnose-failed-run/SKILL.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/skills/proof-ladder/SKILL.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/skills/read-arxiv/SKILL.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/skills/read-manuscript/SKILL.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/skills/reproducible-analysis/SKILL.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/skills/running-steps/SKILL.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/skills/session-budget/SKILL.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/containerImage/skills/vaibify-doc-map/SKILL.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/__init__.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/bridgeGateway.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/cgroupMemory.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/coherentExport.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/confinedRead.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/confinedWrite.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/containerLifecycleRepair.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/daemonCapacity.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/daemonDescription.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/disposableContainer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/disposableSpecification.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/dockerErrorDiagnosis.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/execArgumentBudget.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/fileTransfer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/imageBuilder.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/keepAliveManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/pathContainment.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/runtimeRemedies.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/volumeManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/writableLayerLoss.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docker/x11Forwarding.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docs/forAgents.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/docs/scriptAuthoring.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/AGENTS.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/__init__.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/acquisitionFailure.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilCampaign.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilCapacity.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilCharter.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilChat.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilContext.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilController.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilCredentialGate.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilCredentialStore.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilCredentialTest.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilCredentialTestRecords.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilCredentialTestRecovery.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilDockerGateway.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilEgress.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilEvidence.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilProviderRegistry.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilProviders.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilReadiness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilRegistry.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilResolution.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilRunner.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilSnapshotScope.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilStagedCopies.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentCouncilStore.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/agentProjectScope.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/aiProvenanceCapture.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/archiveProgress.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/attributionLog.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/backgroundTasks.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/badgeState.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/browserSession.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/cliShellContainment.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/commandUtilities.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/commitCarrier.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/conftestManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/connectionRouter.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/containerGit.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/containerMemorySampler.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/containerMemoryWatch.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/containerOwnership.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/councilRouteGuards.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/dataLoaders.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/dataPreview.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/dependencyScan.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/dependencyScanner.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/diskSpace.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/dockerStatus.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/draftManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/environmentDeletion.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/environmentDeletionRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/executionTopology.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/figureServer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/fileIntegrity.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/gitStatus.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/hashStaleness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/helperPrograms.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/hostBusyOracle.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/hostControlChannel.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/hostIncidents.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/hostModeReturn.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/interactiveSteps.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/llmInvoker.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/manifestCheck.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/mtimeCache.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/pathContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/personalLayerManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/pinnedEnvironmentConversion.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/pipelineRunSlots.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/pipelineState.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/projectAdoption.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/projectContextManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/projectRoots.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/promptRecordViewer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/provenanceCommitter.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/providerApiTransport.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/randomnessLint.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/registryRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/remnantReapers.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/remnantScanner.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/resourceLimitApplication.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/resourceMonitor.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/committedFileRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/connectionCheckRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/conversionRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/councilChatRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/councilCredentialRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/councilRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/councilSnapshotRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/downloadRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/draftRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/environmentArchiveRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/falsificationRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/figureRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/gitRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/imageTrustRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/levelRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/plotRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/preferencesRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/promotionRecoveryRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/promptRecordViewerRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/remnantRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/remoteRefreshRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/replayRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/repoRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/reproductionRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/sessionRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/settingsRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/syncRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/systemRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/terminalRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/uploadRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/routes/workflowRoutes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/serverLifespan.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/sessionLifecycle.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/sleepPrevention.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/staleOutputDetector.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/startReservation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/startResultStore.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/startupObservations.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/stateManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/stateWriteLock.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/AGENTS.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/favicon.png +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/favicon.svg +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptAiModelConfig.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptApiClient.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptArxivConfig.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptBinaryDeclaration.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptConnectionMonitor.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptCouncilConsent.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptCouncilSnapshotScope.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptDiagnosis.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptDraftManager.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptEnvironmentInfo.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptFileDropWalker.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptFileOperations.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptFilePull.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptFileRowMenu.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptFileUpload.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptFiles.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptGitBadges.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptImageTrust.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptLegendPanel.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptManifestCheck.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptMemoryWatch.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptModals.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptNewWorkflowWizard.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptOverleafMirror.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptPersonalLayer.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptPipelineRunner.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptPlotStandards.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptProjectContext.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptPromptRecordConfig.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptPromptRecordViewer.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptRemnants.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptReposPanel.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptResourceMonitor.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptSetupWizard.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptTerminal.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptUtilities.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptWebSocket.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptWorkflowManager.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/scriptZenodoDepositCard.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/setupWizard.html +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/styleSetupWizard.css +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/vaibify_logo_paleblue.png +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/vaibify_logo_paleblue_dark.png +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/vendor/addon-fit.min.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/vendor/addon-unicode11.min.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/vendor/pdf.min.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/vendor/pdf.worker.min.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/vendor/xterm.min.css +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/static/vendor/xterm.min.js +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/supervisionAnchor.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/terminalContainment.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/terminalSession.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/testMarkerContract.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/testStatusManager.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/transcriptSanitizer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/truthDerivation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/uploadStaging.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/vscodeAttachLink.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/webSocketAuthorization.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/workflowFieldTypes.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/workspacePath.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/gui/writableLayerPreview.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/host/__init__.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/host/archiveExtraction.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/host/hostCancellation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/host/hostConfinedRead.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/host/hostConnection.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/host/hostScratch.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/install/__init__.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/install/installVaibify.sh +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/install/setupServer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/install/shellSetup.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/install/uninstallVaibify.sh +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/__init__.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/_hashing.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/agentLayerSeparation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/aiDeclarationStep.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/aiProvenanceStamp.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/archiveDepositPlan.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/archivePermanence.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/archivePromotion.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/arxivClient.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/askpassHelper.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/committedFiles.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/credentialRedactor.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/declarationFreshness.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/declaredPackages.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/dockerfileComposer.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/dockerfileLint.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/downloadPartial.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/environmentDrift.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/environmentSnapshot.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/falsificationAttestation.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/gitEvidence.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/gitHardening.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/githubAuth.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/githubMirror.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/githubWorkflow.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/imageArchive.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/imageDeposit.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/imageDockerfileExport.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/latexConnector.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/lockSatisfaction.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/manifestWriter.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/overleafAuth.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/overleafMirror.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/overleafSync.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/provenanceTracker.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/remoteCheckState.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/replayGate.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/reproductionRecord.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/reproductionSource.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/rerunEstimate.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/scheduledReverify.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/shadowRerun.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/stepPredicates.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/reproducibility/syncBookkeeping.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/resources.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/templates/sandbox/container.conf +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/templates/toolkit/README.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/templates/toolkit/container.conf +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/templates/toolkit/project.json +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/templates/workflow/container.conf +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/templates/workflow/project.json +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/templates/workflow.yml.j2 +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/testing/__init__.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/testing/standards.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify/testing/stochasticDetector.py +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify.egg-info/dependency_links.txt +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify.egg-info/entry_points.txt +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify.egg-info/requires.txt +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/vaibify.egg-info/top_level.txt +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/website/.gitignore +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/website/README.md +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/website/public/404.html +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/website/public/_headers +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/website/public/assets/favicon.png +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/website/public/assets/vaibifyDashboard.png +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/website/public/assets/vaibifyLogo.png +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/website/public/index.html +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/website/public/robots.txt +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/website/public/sitemap.xml +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/website/public/styles.css +0 -0
- {vaibify-0.1.2 → vaibify-0.1.4.dev95}/website/wrangler.toml +0 -0
|
@@ -0,0 +1,202 @@
|
|
|
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
|
+
- `vaibify/gui/routes/figureRoutes.py` — small, clean reference example
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
### 1. Create `vaibify/gui/routes/<name>Routes.py`
|
|
23
|
+
|
|
24
|
+
The filename is camelCase ending in `Routes.py` (e.g., `metricsRoutes.py`,
|
|
25
|
+
`userRoutes.py`). The file must declare `__all__`, provide a module
|
|
26
|
+
docstring, and export a module-level function `fnRegisterAll(app, dictCtx)`.
|
|
27
|
+
|
|
28
|
+
Minimal scaffold:
|
|
29
|
+
|
|
30
|
+
```python
|
|
31
|
+
"""<One-sentence description of what this route group does>."""
|
|
32
|
+
|
|
33
|
+
__all__ = ["fnRegisterAll"]
|
|
34
|
+
|
|
35
|
+
from fastapi import HTTPException
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def _fnRegisterExample(app, dictCtx):
|
|
39
|
+
"""Register GET /api/<name>/{sContainerId}/<resource>."""
|
|
40
|
+
|
|
41
|
+
@app.get("/api/<name>/{sContainerId}/<resource>")
|
|
42
|
+
async def fnHandleExample(sContainerId: str):
|
|
43
|
+
fnRequire = dictCtx["require"]
|
|
44
|
+
fnRequire(sContainerId)
|
|
45
|
+
# ... implementation ...
|
|
46
|
+
return {"bOk": True}
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def fnRegisterAll(app, dictCtx):
|
|
50
|
+
"""Register all <name> routes."""
|
|
51
|
+
_fnRegisterExample(app, dictCtx)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Notes:
|
|
55
|
+
|
|
56
|
+
- Functions are about 20 to 30 lines (a guideline: split for reuse or a
|
|
57
|
+
genuine conceptual boundary, never to meet a line count). Factor helpers
|
|
58
|
+
out (`_fn…`, `_fs…`, `_fdict…`) if a handler grows.
|
|
59
|
+
- The module-level `fnRegisterAll` should only call the per-endpoint
|
|
60
|
+
`_fn…` helpers. Keep it thin so tests can import it without side
|
|
61
|
+
effects.
|
|
62
|
+
- For container-path joins use `posixpath`, never `os.path`. The
|
|
63
|
+
workspace root and path-validation helpers live in
|
|
64
|
+
`vaibify.gui.pipelineServer` (`WORKSPACE_ROOT`,
|
|
65
|
+
`fsValidatePathWithinRoot`, `fsResolveFigurePath`,
|
|
66
|
+
`fbaFetchFigureWithFallback`).
|
|
67
|
+
- For shell-quoting container command arguments, use
|
|
68
|
+
`fsShellQuote` from `vaibify.gui.pipelineRunner`.
|
|
69
|
+
- If the route needs Docker access, call through
|
|
70
|
+
`dictCtx["docker"]`; do not import Docker utilities directly.
|
|
71
|
+
|
|
72
|
+
### 2. Register the module in `vaibify/gui/routes/__init__.py`
|
|
73
|
+
|
|
74
|
+
Add the module name to both the `__all__` list and the
|
|
75
|
+
`from . import (...)` block. Preserve the existing order grouping
|
|
76
|
+
where it makes sense; otherwise append.
|
|
77
|
+
|
|
78
|
+
### 3. Register state-mutating endpoints with `@ffnAgentAction`
|
|
79
|
+
|
|
80
|
+
If any endpoint on the new module mutates state and a researcher
|
|
81
|
+
could reasonably invoke it from the UI (run, test, verify, commit,
|
|
82
|
+
create, edit, delete, push, publish, upload, write, etc.), it must
|
|
83
|
+
appear in the agent-action catalog so the in-container `vaibify-do`
|
|
84
|
+
CLI can translate researcher intent into the same call.
|
|
85
|
+
|
|
86
|
+
Two things go together:
|
|
87
|
+
|
|
88
|
+
1. **Decorate the handler.** Import the decorator and apply it
|
|
89
|
+
directly above the FastAPI path-op decorator:
|
|
90
|
+
```python
|
|
91
|
+
from ..actionCatalog import ffnAgentAction
|
|
92
|
+
|
|
93
|
+
@ffnAgentAction("my-new-action")
|
|
94
|
+
@app.post("/api/my-thing/{sContainerId}/do-it")
|
|
95
|
+
async def fnDoIt(sContainerId: str): ...
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
2. **Add a catalog entry** in
|
|
99
|
+
`vaibify/gui/actionCatalog.py::LIST_AGENT_ACTIONS`. Copy the shape
|
|
100
|
+
of existing entries: `sName`, `sCategory`, `sMethod`, `sPath`,
|
|
101
|
+
`bAgentSafe`, `sDescription`. The `sName` here must match the
|
|
102
|
+
decorator argument exactly.
|
|
103
|
+
|
|
104
|
+
Pick `bAgentSafe`:
|
|
105
|
+
|
|
106
|
+
- **True** — execution, read-side work, test runs, agent authoring
|
|
107
|
+
(writing files, creating/updating steps the agent is working on),
|
|
108
|
+
committing canonical state, downloading inputs.
|
|
109
|
+
- **False** — destructive (delete, clean, kill, force), externally
|
|
110
|
+
visible (push to GitHub/Overleaf, publish to Zenodo), or requiring
|
|
111
|
+
researcher judgment (accept plots as standard, set Zenodo metadata,
|
|
112
|
+
reorder pipeline semantics).
|
|
113
|
+
|
|
114
|
+
Every state-mutating route the GUI invokes must also have a CLI
|
|
115
|
+
equivalent. Register it in exactly one place:
|
|
116
|
+
|
|
117
|
+
- `LIST_AGENT_ACTIONS` — callable by agents and by `vaibify do`
|
|
118
|
+
(ships into the container);
|
|
119
|
+
- `LIST_RESEARCHER_ACTIONS` — `vaibify do` on the host only, never
|
|
120
|
+
shipped into the container (credential-free researcher actions);
|
|
121
|
+
- `DICT_ROUTE_TO_HOST_COMMAND` — a hand-written `vaibify` subcommand
|
|
122
|
+
(credentials, typed confirmations, interactive frames);
|
|
123
|
+
- `SET_GUI_ONLY_ROUTES` — genuine browser plumbing, with a one-line
|
|
124
|
+
reason.
|
|
125
|
+
|
|
126
|
+
A route that mutates but is never invoked by the GUI still goes in
|
|
127
|
+
`SET_INTENTIONALLY_EXCLUDED_PATHS` with a comment.
|
|
128
|
+
|
|
129
|
+
Confirm registration:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
python -m pytest tests/testArchitecturalInvariants.py::testAgentActionRegistered -v
|
|
133
|
+
python -m pytest tests/testArchitecturalInvariants.py::testEveryGuiInvokedMutationHasCliEquivalent -v
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### 4. Add tests
|
|
137
|
+
|
|
138
|
+
Create `tests/test<Name>Routes.py`. At minimum:
|
|
139
|
+
|
|
140
|
+
- A test that imports the module and confirms `fnRegisterAll` is
|
|
141
|
+
callable.
|
|
142
|
+
- One test per new endpoint, using the FastAPI `TestClient`. Look at
|
|
143
|
+
existing `tests/testPipelineRoutes*.py` and `tests/testSyncRoutes*.py`
|
|
144
|
+
for mocking patterns for the Docker context.
|
|
145
|
+
|
|
146
|
+
Do not add Docker-dependent tests here — those go under the
|
|
147
|
+
`testContainerBuildIntegration.py`-style exclusions.
|
|
148
|
+
|
|
149
|
+
### 5. Run the contract tests
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
python -m pytest tests/testArchitecturalInvariants.py -v
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Expect these to pass without modification:
|
|
156
|
+
|
|
157
|
+
- `testEveryRouteModuleExportsRegisterAll`
|
|
158
|
+
- `testAllRouteModulesRegisteredInInit`
|
|
159
|
+
- `testAllPackageModulesDefineDunderAll` (if your file lands outside
|
|
160
|
+
`routes/`, make sure it declares `__all__`)
|
|
161
|
+
|
|
162
|
+
### 6. Run the new route's tests and the full suite
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
python -m pytest tests/test<Name>Routes.py -v
|
|
166
|
+
python -m pytest tests/ -q --ignore=tests/testContainerBuildIntegration.py
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### 7. Exercise the endpoint end-to-end if possible
|
|
170
|
+
|
|
171
|
+
If the route affects the dashboard or reports container state, start a
|
|
172
|
+
real container and confirm the GUI reflects the new data correctly.
|
|
173
|
+
Remember: the dashboard must always reflect the true state of the
|
|
174
|
+
workflow and the container. Do not cache, short-circuit, or hide
|
|
175
|
+
errors.
|
|
176
|
+
|
|
177
|
+
## Common failure modes
|
|
178
|
+
|
|
179
|
+
- **`testAllRouteModulesRegisteredInInit` fails.** You forgot to add
|
|
180
|
+
the module to both the `__all__` and the `from . import (...)`
|
|
181
|
+
block in `vaibify/gui/routes/__init__.py`. Both are required.
|
|
182
|
+
- **Import error at app startup.** The route module imports a symbol
|
|
183
|
+
that doesn't exist, or there's a circular import. Route modules can
|
|
184
|
+
import from `..pipelineServer`, `..pipelineRunner`, and domain
|
|
185
|
+
modules, but not from other route modules — those are siblings.
|
|
186
|
+
- **A 500 error on the new endpoint when the container is stopped.**
|
|
187
|
+
Handlers should check container state via `dictCtx["require"]` (called with the container id)
|
|
188
|
+
early and return a clean 4xx error when the container is not
|
|
189
|
+
running. Do not mask the error — surface it.
|
|
190
|
+
- **Module not picked up at startup.** Both the `__all__` entry and
|
|
191
|
+
the `from . import (...)` block in `vaibify/gui/routes/__init__.py`
|
|
192
|
+
must include the new module name.
|
|
193
|
+
|
|
194
|
+
## Do not
|
|
195
|
+
|
|
196
|
+
- Do not bypass `VaibifyApi` on the frontend side if you're also
|
|
197
|
+
adding a JS caller for this endpoint — route through
|
|
198
|
+
`scriptApiClient.js`.
|
|
199
|
+
- Do not embed science-specific example names (planet names, system
|
|
200
|
+
names) in route paths, sample data, or test fixtures.
|
|
201
|
+
- Do not add a new polling loop on the frontend without discussion —
|
|
202
|
+
see the invariants in `vaibify/gui/static/AGENTS.md`.
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: container-image-and-packaging
|
|
3
|
+
description: The vaibify container image: the Dockerfile and entrypoint, the Claude/Codex/Gemini agent overlays and their shared login store, agent-facing docs inside the container, and how runtime resources are located so they ship in the wheel. Use when editing vaibify/containerImage/, vaibify/resources.py, the packaged templates, or the docs staged into the image.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# The container image and packaged resources
|
|
7
|
+
|
|
8
|
+
Two rules dominate this area. Anything the image needs must live under
|
|
9
|
+
`vaibify/` and be located through `vaibify/resources.py`, because a
|
|
10
|
+
`parents[N]` walk resolves to site-packages in an install. And every
|
|
11
|
+
agent in the image reads one canonical instruction file through
|
|
12
|
+
symlinks -- a second real file at one of those names silently splits
|
|
13
|
+
them.
|
|
14
|
+
|
|
15
|
+
The repository-wide rules in `AGENTS.md` still apply; this file is
|
|
16
|
+
the detail for this subsystem.
|
|
17
|
+
|
|
18
|
+
## The toolchain epoch is pinned on three axes
|
|
19
|
+
|
|
20
|
+
The Dockerfile pins the base image by DIGEST, the toolchain packages
|
|
21
|
+
by VERSION, and the archive they come from by DATE
|
|
22
|
+
(`ARG APT_SNAPSHOT_DATE`, served by `snapshot.ubuntu.com`). The third
|
|
23
|
+
axis was added because the first two were not enough: Ubuntu drops
|
|
24
|
+
superseded versions from its pool within weeks, so the pins stopped
|
|
25
|
+
RESOLVING on a monthly cadence and every unrelated pull request went
|
|
26
|
+
red waiting for a maintainer to approve something nobody can evaluate
|
|
27
|
+
-- a glibc SRU changes real bytes, and no review separates "this moves
|
|
28
|
+
a number" from "this does not".
|
|
29
|
+
|
|
30
|
+
There is one pin list per architecture the image builds on, amd64 and
|
|
31
|
+
arm64, and the shell selects the list matching
|
|
32
|
+
`dpkg --print-architecture`. The base digest is a multi-architecture
|
|
33
|
+
index, so a daemon pulls the manifest for its own platform and the
|
|
34
|
+
toolchain packages carry that platform in their names
|
|
35
|
+
(`gcc-13-x86-64-linux-gnu`, `gcc-13-aarch64-linux-gnu`); a single
|
|
36
|
+
amd64 list stopped every native build on an Apple Silicon daemon at
|
|
37
|
+
that step (met 2026-09-18). The two lists carry the SAME versions,
|
|
38
|
+
because one Ubuntu source upload builds every architecture, and
|
|
39
|
+
differ only in those suffixed names and in `libquadmath0`, which has
|
|
40
|
+
no aarch64 build. Any other architecture is refused before apt runs,
|
|
41
|
+
with its own message, so that refusal can never read as a withdrawn
|
|
42
|
+
version. `tools/checkToolchainEpoch.py --verify` reads every list
|
|
43
|
+
against its own `binary-<arch>` index and fails first if the lists
|
|
44
|
+
disagree on a version; `--architecture` narrows either tool, and
|
|
45
|
+
`checkToolchainPinDrift --write` bumps every list that pins the
|
|
46
|
+
package. Regenerate a list with `apt-get install -s` under
|
|
47
|
+
`--platform linux/<arch>`, per the Dockerfile's comment.
|
|
48
|
+
`fresh-image-build` runs one leg per list (an amd64 and an arm64
|
|
49
|
+
runner), because a daemon only ever installs the list for its own
|
|
50
|
+
platform, so a single-architecture lane verifies half the file. Two more
|
|
51
|
+
traps in the same block, both met the same week: the base image is
|
|
52
|
+
pinned by digest, so when that digest already ships a NEWER libc than
|
|
53
|
+
the pins name, apt refuses the install as a downgrade
|
|
54
|
+
("Packages were downgraded and -y was used without --allow-downgrades")
|
|
55
|
+
and the answer is an epoch bump, never `--allow-downgrades`; and
|
|
56
|
+
BuildKit ends a failed build by echoing the whole sixty-line step, so
|
|
57
|
+
the one apt line naming the cause scrolls out of any short tail -- the
|
|
58
|
+
catalog drops that echo before it looks for the reason.
|
|
59
|
+
|
|
60
|
+
Four things not to undo:
|
|
61
|
+
|
|
62
|
+
- **The date and the pins are one statement.** Editing either alone
|
|
63
|
+
produces an image that cannot build.
|
|
64
|
+
`python tools/checkToolchainEpoch.py --verify` is the agreement
|
|
65
|
+
check, and `fresh-image-build` runs it before the hour-long build so
|
|
66
|
+
the answer costs thirty seconds.
|
|
67
|
+
- **The toolchain DATE covers ONLY the pinned block.** Every other apt
|
|
68
|
+
step reads the build's own snapshot, `APT_BUILD_SNAPSHOT` (the most
|
|
69
|
+
recent midnight UTC, passed by `imageBuilder.fsArchiveSnapshotForBuild`
|
|
70
|
+
and computed by the step itself when a plain `docker build` passes
|
|
71
|
+
nothing), so the waived packages float from one build to the next but
|
|
72
|
+
never WITHIN one. Freezing them to the toolchain date would strand a
|
|
73
|
+
researcher whose `systemPackages` name anything published since.
|
|
74
|
+
Letting them read the live mirrors again reopens the defect the build
|
|
75
|
+
snapshot closed: `security.ubuntu.com` is several servers that disagree
|
|
76
|
+
while an update propagates, each RUN step fetched its own index, and
|
|
77
|
+
one build installed a library new and found its `-dev` package old
|
|
78
|
+
(every amd64 build, 2026-09-24). No fallback to the live archive
|
|
79
|
+
either -- an unreachable snapshot stops the build and says why.
|
|
80
|
+
- **The live-archive comparison never runs on a pull request.** That is
|
|
81
|
+
`toolchainEpoch.yml`, monthly, and it opens an ISSUE rather than a
|
|
82
|
+
pull request because choosing between candidate versions needs dpkg
|
|
83
|
+
ordering plus a judgment about what results rest on.
|
|
84
|
+
`testTheLiveArchiveComparisonIsNotOnThePullRequestPath` is the guard.
|
|
85
|
+
- **`fsExtractToolchainBlock` anchors on the architecture test that
|
|
86
|
+
opens each list** (`[ "${sArchitecture}" = "<arch>" ] && ! apt-get
|
|
87
|
+
install`), not on the `RUN` line, because the preamble grew a
|
|
88
|
+
sources swap. It refused rather than scanning nothing when that
|
|
89
|
+
happened, which is the property to keep -- a permissive anchor
|
|
90
|
+
would have silently graded the empty set, and one that did not name
|
|
91
|
+
the architecture would hand every caller the first list. It is the
|
|
92
|
+
ONE parser of the block: the epoch tool imports it rather than
|
|
93
|
+
keeping a whole-file regex, which would merge both lists.
|
|
94
|
+
|
|
95
|
+
## An image carries what it was built FROM, on two axes
|
|
96
|
+
|
|
97
|
+
The recipe fingerprint (`dockerfileComposer.S_RECIPE_IMAGE_LABEL`)
|
|
98
|
+
covers the texts vaibify ships. A second label,
|
|
99
|
+
`configurationFingerprint.S_CONFIGURATION_IMAGE_LABEL`, covers the
|
|
100
|
+
researcher's own `vaibify.yml` -- but only the fields the BUILD
|
|
101
|
+
consumes. Together they answer "was this image built from these texts
|
|
102
|
+
and this configuration", and the dashboard reads the second one on
|
|
103
|
+
every container entry so an edit that needs a rebuild says so instead
|
|
104
|
+
of being met by the old behaviour a restart later.
|
|
105
|
+
|
|
106
|
+
Two things not to undo. `T_BAKED_CONFIGURATION_FIELDS` is a claim about
|
|
107
|
+
what requires a rebuild: adding a field says changing it does, leaving
|
|
108
|
+
one out says it does not, and both are claims about the build rather
|
|
109
|
+
than preferences -- check the Dockerfile's build args, the generated
|
|
110
|
+
`container.conf`, and the overlay selection before touching it. And the
|
|
111
|
+
label is stamped on the BASE build alone: Docker inherits a parent
|
|
112
|
+
image's labels, so every overlay carries it, where the recipe label is
|
|
113
|
+
re-stamped per overlay because its value differs per chain.
|
|
114
|
+
|
|
115
|
+
**`introspectionScript.py` is an f-string executed inside containers.**
|
|
116
|
+
Editing it as ordinary Python loses escape sequences and string
|
|
117
|
+
delimiters silently. The format-handling duplication with
|
|
118
|
+
`dataLoaders.py` is also deliberate — container scripts cannot import
|
|
119
|
+
from the host environment.
|
|
120
|
+
|
|
121
|
+
**The entrypoint's root phase runs with a fixed system `PATH`.**
|
|
122
|
+
`entrypoint.sh` calls `fnUseFixedSystemPath` before it runs anything as
|
|
123
|
+
root, so a binary planted in the researcher-writable `~/.local/bin` (or
|
|
124
|
+
in a directory named by `/etc/vaibify/binaries.env`) can never be the
|
|
125
|
+
command a root-phase `chown` or sub-script resolves to. The
|
|
126
|
+
`binaries.env` directories are prepended only in the user phase and the
|
|
127
|
+
`profile.d` file. In-container agents are taught the
|
|
128
|
+
`{step:<sStepId>.<stem>}` token form, never the deprecated `{StepNN.x}`.
|
|
129
|
+
|
|
130
|
+
## A container may host Claude, Codex, or Gemini
|
|
131
|
+
|
|
132
|
+
Container agents are overlays selected by feature flags
|
|
133
|
+
(`vaibify/containerImage/Dockerfile.claude`, `.codex`, `.gemini`). Each installs **as
|
|
134
|
+
the unprivileged container user**, not root, so the provider's own
|
|
135
|
+
updater can replace its binary without sudo — do not "fix" that by
|
|
136
|
+
installing as root, and do not add sudo to the image.
|
|
137
|
+
|
|
138
|
+
**Cline is the exception to the flat-name rule.** Six of the seven
|
|
139
|
+
agents read a repo-root markdown file, so a symlink serves them. Cline
|
|
140
|
+
reads a `.clinerules/` **directory**, so `fnLinkClineRules` creates it
|
|
141
|
+
with a symlink inside pointing back at the canonical file — a flat
|
|
142
|
+
`.clinerules` symlink would be a file where a directory is expected.
|
|
143
|
+
It is gated on Cline being installed, because a stray directory in the
|
|
144
|
+
researcher's repository is the sort of thing that gets committed by
|
|
145
|
+
accident. `tests/testEntrypointAgentDocLinks.py` fails if an agent is
|
|
146
|
+
added to the skills loop without a path to the guidance, which is
|
|
147
|
+
exactly how Cline came to ship with skills and no instructions.
|
|
148
|
+
|
|
149
|
+
**Agent-facing docs have one source and several names.** Inside the
|
|
150
|
+
container the canonical file is
|
|
151
|
+
`/workspace/<repo>/.vaibify/AGENTS.md`; `entrypoint.sh`'s
|
|
152
|
+
`fnLinkRepoClaudeMd` symlinks `/workspace/<repo>/CLAUDE.md`,
|
|
153
|
+
`/workspace/<repo>/AGENTS.md` and `/workspace/<repo>/GEMINI.md` to it,
|
|
154
|
+
and migrates a legacy CLAUDE.md in that directory into place. So write
|
|
155
|
+
in-container agent guidance once, to the canonical file. Never author
|
|
156
|
+
a provider-specific one — a second *real* file at one of those names
|
|
157
|
+
shadows the symlink for that provider only, and the three agents
|
|
158
|
+
silently start reading different instructions.
|
|
159
|
+
|
|
160
|
+
(These are container paths, deliberately absolute:
|
|
161
|
+
`tools/checkAgentDocsPaths.py` resolves repo-relative references and
|
|
162
|
+
would flag them as broken, because they exist only inside a running
|
|
163
|
+
container.)
|
|
164
|
+
|
|
165
|
+
**All three agents share one login store and one user.** Each agent's
|
|
166
|
+
config directory is persisted into the workspace volume and symlinked
|
|
167
|
+
back into the home directory (`fnPersistAgentConfig`), so logins
|
|
168
|
+
survive container recreation. This pattern predates multi-agent
|
|
169
|
+
support; what changed is the blast radius. Every agent runs as the
|
|
170
|
+
same container user, so file permissions isolate nothing between
|
|
171
|
+
them: whichever agent is compromised can read all three providers'
|
|
172
|
+
credentials, and they are reachable through the dashboard's file
|
|
173
|
+
routes like any other workspace path. Treat "an agent was
|
|
174
|
+
compromised" as "every configured provider's session was exposed"
|
|
175
|
+
when reasoning about a threat, and do not add a fourth provider
|
|
176
|
+
without revisiting that.
|
|
177
|
+
|
|
178
|
+
Two more things not to undo:
|
|
179
|
+
|
|
180
|
+
- The generated instructions' "Whose instructions win" section and
|
|
181
|
+
conditional conventions are a contract; do not restore unconditional
|
|
182
|
+
conventions. `tests/testEntrypointInstructionPrecedence.py` guards
|
|
183
|
+
both.
|
|
184
|
+
- No credential or token on a command line or in an environment
|
|
185
|
+
variable inside an image. The JupyterLab token reaches the server
|
|
186
|
+
through a mode-600 config file;
|
|
187
|
+
`test_jupyter_token_never_reaches_a_command_line` guards it.
|
|
188
|
+
|
|
189
|
+
## Runtime resources live inside the package
|
|
190
|
+
|
|
191
|
+
`vaibify/templates/` and `vaibify/containerImage/` ship in the wheel.
|
|
192
|
+
They used to be reached with `parents[N]` from the repository root,
|
|
193
|
+
which resolves to `site-packages` in an install — so no wheel ever
|
|
194
|
+
contained them and `vaibify init` printed "No templates found" and
|
|
195
|
+
exited 0. Four rules follow; the full account is in
|
|
196
|
+
[docs/architecture.md](docs/architecture.md) — "Packaging: why runtime
|
|
197
|
+
resources live inside the package".
|
|
198
|
+
|
|
199
|
+
**Locate them only through `vaibify/resources.py`.** It is the single
|
|
200
|
+
place that names the trees, and `importlib.resources` resolves them
|
|
201
|
+
identically from a checkout, an editable install, and a wheel. **Never
|
|
202
|
+
reintroduce a `parents[N]` walk to reach package data** — and after
|
|
203
|
+
fixing any resolution bug, grep for every other way the codebase reaches
|
|
204
|
+
outside the package, not just the spelling that bit you.
|
|
205
|
+
|
|
206
|
+
**Treat them as read-only, and give every build its own copy.**
|
|
207
|
+
`commandBuild.fsStageBuildContext` mkdtemps a private context under
|
|
208
|
+
`~/.vaibify/build/`, discarded on success and kept on failure with its
|
|
209
|
+
path printed. It is per *build*, not per project — two dashboard clicks
|
|
210
|
+
race, and refreshing a shared directory starts with `rmtree`.
|
|
211
|
+
`tests/testPackagedResources.py` fails if this regresses.
|
|
212
|
+
|
|
213
|
+
**Anything the image needs must live under `vaibify/`.** The curated
|
|
214
|
+
agent docs at `vaibify/docs/` are **symlinks onto the Sphinx sources** —
|
|
215
|
+
never replace one with a real file, which is the shadowing trap;
|
|
216
|
+
`testCuratedDocsRemainSymlinksOntoTheSphinxSources` fails if you do.
|
|
217
|
+
When adding one: add the symlink, extend `T_STAGED_DOCS`, extend the
|
|
218
|
+
doc-map skill's table, and add the *Sphinx source* path to
|
|
219
|
+
`freshImageBuild.yml`'s triggers.
|
|
220
|
+
|
|
221
|
+
**Prove the distribution, not the import.** `pip-install.yml` runs
|
|
222
|
+
`tools/checkInstalledDistribution.py` against an installed sdist and
|
|
223
|
+
wheel. It is **release-only**, so a packaging regression can sit on
|
|
224
|
+
`main` until a version is cut — after touching `vaibify/resources.py`,
|
|
225
|
+
the packaged trees, or the Dockerfile `COPY` set, run it by hand
|
|
226
|
+
(`workflow_dispatch`). Never make it a required status check: it cannot
|
|
227
|
+
report on a pull request, so every PR would wait on it forever.
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dashboard-state-honesty
|
|
3
|
+
description: Rules that keep the dashboard from overstating what vaibify knows: a row renders a gate's verdict rather than re-deriving it, a level cell and its rows must fail on the same set, an uncheckable remote is never red, and a configured secret this host cannot resolve degrades loudly. Use when changing WHAT a requirement row, level cell, badge, or poll payload asserts about container or workflow state. Not for explaining why a badge shows the state it shows, and not for reshaping an endpoint's JSON when every assertion in it stays the same.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# The dashboard tells the truth or says it does not know
|
|
7
|
+
|
|
8
|
+
The GUI is the researcher's ground truth. Each contract here exists
|
|
9
|
+
because a screen once contradicted the machinery behind it while every
|
|
10
|
+
component was internally consistent -- which is the failure mode that
|
|
11
|
+
no unit test catches.
|
|
12
|
+
|
|
13
|
+
The repository-wide rules in `AGENTS.md` still apply; this file is
|
|
14
|
+
the detail for this subsystem.
|
|
15
|
+
|
|
16
|
+
**A failure names its remedy, or offers the diagnosis that will.** A
|
|
17
|
+
2026-09-18 audit of the environment hub and the Project Hub found four
|
|
18
|
+
shapes of failure reporting: the server's raw text shown verbatim
|
|
19
|
+
(Docker's stderr included -- "pull access denied ... repository does
|
|
20
|
+
not exist" for an image that had never been built), a description with
|
|
21
|
+
no remedy ("Build failed", "Cannot load containers"), silence (a list
|
|
22
|
+
frozen at its last good render after a poll 500, a Restart abandoned
|
|
23
|
+
after a failed stop with no word), and a real sentence discarded on
|
|
24
|
+
the server behind "Pipeline action failed. Check server logs for
|
|
25
|
+
details." The rule that closes all four: every user-visible failure
|
|
26
|
+
either states what to do, or ends in "Click to run a diagnosis"
|
|
27
|
+
(`VaibifyDiagnosis`, backed by `GET /api/system/doctor`, which runs the
|
|
28
|
+
same host checks `vaibify doctor` prints so the browser can never say
|
|
29
|
+
something the terminal would not). On the server, Docker's text is
|
|
30
|
+
translated at the boundary by `dockerErrorDiagnosis` with the daemon's
|
|
31
|
+
words kept as evidence, a control-plane refusal passes through the
|
|
32
|
+
client sanitizer in its own words because it is written for the
|
|
33
|
+
researcher and names the reconcile, and a sentence that names the file
|
|
34
|
+
to fix is never collapsed into a generic status. A refusal without a
|
|
35
|
+
remedy is a dead end the researcher pays for in a support round trip.
|
|
36
|
+
|
|
37
|
+
**A configured secret this host cannot resolve DEGRADES, and the
|
|
38
|
+
telling is the load-bearing half.** `flistMountSecrets` skips it and
|
|
39
|
+
the container starts (ruled 2026-09-05, making the Features page's
|
|
40
|
+
"the container will still work but git push will fail" true). All three
|
|
41
|
+
methods used to RAISE, before `docker run` was ever composed, so no
|
|
42
|
+
container existed to inspect — a researcher met that hours after a
|
|
43
|
+
wizard toggle with a `RuntimeError` naming neither the secret nor the
|
|
44
|
+
remedy. A silent degrade would be strictly worse than that refusal, so
|
|
45
|
+
three surfaces report it from one authority
|
|
46
|
+
(`vaibify/config/secretAvailability.py`): the CLI preflight, the hub
|
|
47
|
+
log at start, and the dashboard's readiness banner. The dashboard's copy is
|
|
48
|
+
RECOMPUTED per settled readiness answer, never remembered — a
|
|
49
|
+
researcher who runs `gh auth login` afterwards has fixed the thing it
|
|
50
|
+
complains about — and only on the SETTLED answer, because the frontend
|
|
51
|
+
polls readiness sixty times while a container boots and `gh auth token`
|
|
52
|
+
is a subprocess. Never materialize a secret to discover that it exists;
|
|
53
|
+
`fbSecretExists` is written not to.
|
|
54
|
+
|
|
55
|
+
**A requirement row renders the gate's VERDICT, never re-derives it.**
|
|
56
|
+
The Reproducibility-rules row computed "declared" in JavaScript as
|
|
57
|
+
"the `dictDeterminism` block is non-empty", while
|
|
58
|
+
`fbWorkflowDeclaresDeterminism` required a `true` waiver or a pinned
|
|
59
|
+
thread count. The declare form writes `{bAcceptBlasVariance: false}`
|
|
60
|
+
when submitted with nothing ticked — non-empty, and a declaration of
|
|
61
|
+
nothing — so the row went green, the L3 verify refused, and every
|
|
62
|
+
component was internally consistent while the screen contradicted the
|
|
63
|
+
machinery (researcher-reported, 2026-08-30). The poll now ships
|
|
64
|
+
`bDeterminismDeclared` and `listDeterminismIssues`; the row renders
|
|
65
|
+
them. **A mirrored predicate in JS is a second authority on a question
|
|
66
|
+
that has one** — the slug mirror in `scriptUtilities.js` is tolerated
|
|
67
|
+
only because it is display-only with the backend enforcing. Two
|
|
68
|
+
corollaries, both from the same report: a reason must distinguish the
|
|
69
|
+
shapes it describes ("no block" and "a block that pins nothing" read
|
|
70
|
+
identically, and one was false), and a refusal names its cause rather
|
|
71
|
+
than pointing at a tab. Guarded by
|
|
72
|
+
`tests/testDeterminismRowMatchesItsGate.py` and
|
|
73
|
+
`tests/browser/testDeterminismRowFollowsTheGate.py`.
|
|
74
|
+
|
|
75
|
+
Since 2026-10-17 the question is ONE row, and the rule holds in two
|
|
76
|
+
more places. The form renders the backend's `listChoices`, `sWhy` and
|
|
77
|
+
`sConsequence` verbatim and sends only the answer: the server, never
|
|
78
|
+
the page, decides which execution profile an answer records, and the
|
|
79
|
+
row shows the profile the poll says was recorded, not one JavaScript
|
|
80
|
+
would pick. And a Level 3 verdict is shown as the SERVER's sentence
|
|
81
|
+
WITH its tally ("Reproduced: published comparisons passed; N of M
|
|
82
|
+
files differ in their bytes"), never recomputed from per-file outcomes
|
|
83
|
+
in the page, and a pass with byte differences is worded and coloured as
|
|
84
|
+
a pass. An attestation made by the byte-only verifier, or under another
|
|
85
|
+
policy or profile, renders as a previous check — true about what it
|
|
86
|
+
checked, not accepted now — and its staleness reason
|
|
87
|
+
(`sProfileMismatch`) comes from the poll.
|
|
88
|
+
`tests/browser/testAssessedVerdictsOnScreen.py` guards the verdict
|
|
89
|
+
half. A step whose outputs were made under other settings or hardware
|
|
90
|
+
carries the server's neutral note (`dictOutputContextNotes`), never
|
|
91
|
+
red (`tests/browser/testOutputContextNoteIsNeutral.py`).
|
|
92
|
+
|
|
93
|
+
**A level CELL and the rows beneath it must fail on the same set.**
|
|
94
|
+
The Project header's L2 cell counts criteria from a fixed tuple
|
|
95
|
+
(`_T_WORKFLOW_LEVEL2_BASE_CRITERIA`) and INTERSECTS the live blocker
|
|
96
|
+
list against it — so a criterion the gates emit but the tuple omits is
|
|
97
|
+
silently dropped and the cell over-reports. That shipped: the tuple
|
|
98
|
+
listed only `*-verify-stale` and not `not-in-*`, so a fresh verify that
|
|
99
|
+
proved published files DIFFERED painted a check above two orange
|
|
100
|
+
Published-copies rows (researcher-reported, 2026-08-30). The scalar
|
|
101
|
+
gate `_fbComputeLevel2` was correct throughout, which is what makes
|
|
102
|
+
this class nasty — the display disagreed with itself and only the
|
|
103
|
+
display was wrong. **When you add or rename an L2/L3 blocker criterion,
|
|
104
|
+
check whether the workflow-scope tuple should carry it**; a criterion
|
|
105
|
+
absent from the tuple is invisible to the header, not merely
|
|
106
|
+
uncounted. `tests/testProjectHeaderNeverOutranksItsRows.py` is the
|
|
107
|
+
kill-confirmed guard, and it also pins the opposite error: the two
|
|
108
|
+
halves of one remote's check are mutually exclusive by construction, so
|
|
109
|
+
neither may charge a service twice.
|
|
110
|
+
|
|
111
|
+
**A container older than its own `vaibify.yml` says so, and an image
|
|
112
|
+
that predates the stamp says nothing.** Everything a researcher writes
|
|
113
|
+
in `vaibify.yml` that the BUILD consumes -- repositories, system and
|
|
114
|
+
Python packages, base image, Python version, container user, workspace
|
|
115
|
+
root, binaries, features -- is baked in at build time, and the
|
|
116
|
+
dashboard used to be silent about that. One researcher corrected a
|
|
117
|
+
misspelled package and a wrong branch, restarted the container, and met
|
|
118
|
+
the same three warnings, having already fixed their cause on disk
|
|
119
|
+
(2026-09-21). The build now stamps a hash of those fields as
|
|
120
|
+
`configurationFingerprint.S_CONFIGURATION_IMAGE_LABEL`, the readiness
|
|
121
|
+
answer compares it with the file as it is NOW, and the banner renders
|
|
122
|
+
`listConfigurationDrift` -- the server's sentences, never a predicate
|
|
123
|
+
of its own. Three properties hold it honest, and each is a way to turn
|
|
124
|
+
it back into a lie:
|
|
125
|
+
|
|
126
|
+
- **Run-time fields are deliberately OUT of the fingerprint.** Ports,
|
|
127
|
+
bind mounts, secrets, network isolation and the CPU/memory ceilings
|
|
128
|
+
are applied by `docker run`, so they take effect on the next start.
|
|
129
|
+
A fingerprint that covered them would send a researcher through an
|
|
130
|
+
hour-long rebuild to publish a port, which is how a true warning
|
|
131
|
+
becomes one people turn off.
|
|
132
|
+
- **No label is *nothing determined*, never drift.** An image built
|
|
133
|
+
before the stamp existed carries none, and the comparison is
|
|
134
|
+
three-state for the same reason `environmentDrift` is.
|
|
135
|
+
- **The stamp is the file AS WRITTEN.** The build adds the project's
|
|
136
|
+
own repository to what the container clones; that addition belongs
|
|
137
|
+
to the build context, and `fnPrepareBuildContext` works on a copy so
|
|
138
|
+
it never reaches the fingerprint. When it did, every freshly built
|
|
139
|
+
container claimed to predate the file it was built from
|
|
140
|
+
(researcher-reported, 2026-09-28) --
|
|
141
|
+
`testAFreshBuildStampsTheFileItWasBuiltFrom` drives real `git`.
|
|
142
|
+
- **It rides its own key, not `saWarnings`.** That list is headed
|
|
143
|
+
"from the most recent container start"; this is a statement about a
|
|
144
|
+
file the researcher edited since, and filing it there would make the
|
|
145
|
+
banner's own heading false.
|
|
146
|
+
|
|
147
|
+
`tests/testConfigurationFingerprint.py` is the kill-confirmed guard.
|
|
148
|
+
|
|
149
|
+
**A remote badge pulses while vaibify is asking, and a failed ask is
|
|
150
|
+
never red.** Opening a project re-checks every CONFIGURED remote
|
|
151
|
+
(`POST /api/workflow/{id}/remotes/refresh`), the poll REPORTS where
|
|
152
|
+
each check has got to (`dictRemoteChecks`), and the badge pulses until
|
|
153
|
+
its own answer arrives. Four things hold that honest, and each is a way
|
|
154
|
+
to turn it back into a lie:
|
|
155
|
+
|
|
156
|
+
- A check that could not complete settles UNCHECKABLE with a reason.
|
|
157
|
+
Red means *diverged* — a claim about the remote nobody earned — and
|
|
158
|
+
the cached record on disk stays untouched
|
|
159
|
+
(`scheduledReverify.fdictAttemptOneVerify` writes only on success; do
|
|
160
|
+
not add a write beside it).
|
|
161
|
+
- Which remotes pulse comes from
|
|
162
|
+
`scheduledReverify.flistSelectConfiguredServices`, the predicate the
|
|
163
|
+
scheduled loop skips on. A remote absent from `dictRemoteChecks`
|
|
164
|
+
renders exactly as it did before any of this existed.
|
|
165
|
+
- A check in flight moves no colour. It has compared nothing.
|
|
166
|
+
- The CHECKING timeout is evaluated when the state is READ, never on a
|
|
167
|
+
timer: the failure it covers is a worker that never returns, and such
|
|
168
|
+
a worker cannot clear its own flag.
|
|
169
|
+
|
|
170
|
+
The refresh cannot move into the poll —
|
|
171
|
+
`_fdictBuildWorkflowEnvelopeDetail` is built with no extra container
|
|
172
|
+
execs and no network I/O. `docs/architecture.md` carries the model and
|
|
173
|
+
the one accepted residual (a Run Step in the first seconds after open
|
|
174
|
+
is refused by name while the checks hold the drain).
|
|
175
|
+
`tests/testRemoteBadgeRefresh.py` and
|
|
176
|
+
`tests/browser/testARunningRemoteCheckPulsesTheBadge.py` are the
|
|
177
|
+
kill-confirmed guards; the browser one reads `animationName` off a live
|
|
178
|
+
element, because asserting the CSS class alone passes against a
|
|
179
|
+
stylesheet with no rule in it.
|
|
180
|
+
|
|
181
|
+
- A message about what happened is built from the result payload,
|
|
182
|
+
never fixed text. The test-generation toast claimed "Standards came
|
|
183
|
+
from the LLM fallback" from 2026-04 to 2026-10 although no LLM ran.
|
|
184
|
+
Generated tests carry their generator (`deterministic`,
|
|
185
|
+
`llm-fallback`, `llm`) and the step's test rows show it.
|