Add JSON and folder fallback extraction for Octopus import
Summary
- Created local branch
feature/octopus-import-input-fallbackfromfeature/squid-import-project. - Added
IOctopusInputExtractor/OctopusInputExtractorfor supported non-ZIP Octopus import inputs. - Added standalone JSON extraction and recursive folder JSON discovery with shared import size/count limits.
- Added structured diagnostics for missing folders, empty JSON folders, read failures, malformed JSON, unsupported JSON roots, unrecognized documents, and input size/count limit failures.
- Added parsed JSON document results carrying source path, classification, cloned JSON root, and size metadata.
- Added unit tests covering standalone JSON, manifest detection, malformed/unrecognized documents, folder fallback, archive-entry JSON parsing, limits, and cancellation.
- Scope intentionally stops at task 2.4; manifest hash/file consistency checks and normalized resource graph construction remain for later branches.
- Local ignored OpenSpec task file now shows task 2.4 complete, but
openspec/is ignored by.git/info/excludeand is not part of tracked branch changes.
Test plan
-
/usr/local/share/dotnet/dotnet test tests/Squid.UnitTests/Squid.UnitTests.csproj --filter "FullyQualifiedName~Services.OctopusImport"passed:78passed,0failed,0skipped. -
/usr/local/share/dotnet/dotnet test tests/Squid.UnitTests/Squid.UnitTests.csprojpassed:6300passed,0failed,0skipped.