Bridge Tentacle package references to Windows service deploy
Summary
- Verified the current package flow: selected packages trigger
PackageAcquisitionInjector,ExecuteStepsPhasematches acquired packages by action name, Tentacle renderers copy them ontoScriptExecutionRequest.PackageReferences. - Added the missing generic Tentacle direct-script bridge: matched package references are now attached to
StartScriptCommand.Filesunderpackage-references/, with apackage-references.jsonmanifest describing package id, version, relative path, size, and hash. - Tightened package-reference matching to preserve selected-package order and retain case-insensitive matching, so the primary package remains deterministic for package-aware actions like Windows Service deploy.
- Updated the Windows Service PowerShell resource to keep explicit
Squid.Action.WindowsService.Package.SourcePathas highest priority, then fall back to the package-reference manifest/files staged into the Tentacle workdir. - Marked OpenSpec tasks
4.1-4.4complete with package-flow notes intasks.md.
Test plan
-
Unit: PackageAcquisitionInjectorTestsverifies a Windows Service action with a selected package injectsAcquire Packagesbefore the deploy step. -
Unit: ExecuteStepsPhasePackageReferencesTestsverifies Windows Service action-name/package-reference matching preserves selected package order and handles case-insensitive acquired package keys. -
Unit: HalibutMachineExecutionStrategyTestsverifies Tentacle direct-script dispatch attachespackage-references.jsonand the matched package file toStartScriptCommand.Files. -
Unit: WindowsServiceDeployScriptBuilderTestsverifies the embedded Windows Service script contains the package-reference manifest fallback. -
Focused regression: DOTNET_ROLL_FORWARD=Major dotnet test tests/Squid.UnitTests/Squid.UnitTests.csproj --filter "FullyQualifiedName~PackageAcquisitionInjectorTests|FullyQualifiedName~ExecuteStepsPhasePackageReferencesTests|FullyQualifiedName~HalibutMachineExecutionStrategyTests|FullyQualifiedName~WindowsServiceDeployScriptBuilderTests" --logger "console;verbosity=minimal"passed, 50 tests green. -
CI: remote CI not run in this turn.