Skip to content

refactor: compose optional tools by import and preserve failure feedback - #188

Merged
M09Ic merged 7 commits into
masterfrom
fix/issues-148-173-current
Oct 25, 2026
Merged

M09Ic merged 7 commits into
masterfrom
fix/issues-148-173-current

Conversation

@M09Ic

@M09Ic M09Ic commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Changes

Ordinary tool failures now remain actionable when a tool also returns partial output, and async/fork failures notify the parent even without a result. Hooks, Agent, AOP and JEV use one small feedback projection while preserving the original Go error, media and explicit control flags. Provider searches require evidence that search actually executed; fallback failures retain their causes.

Browser, passive recon and Katana can be composed through explicit imports without capability build tags. The aiscan full product composition remains, native record can compose independently, and passive/CyberHub/crawler dependencies are separated from scanner and general search. Standalone examples exercise each optional extension. Redundant forwarding aliases are removed in favor of their canonical proto/provider types; wire schemas are unchanged.

Update CI selectors and package paths for the moved regressions, clean packages newly included in default lint, and fix the harness readiness matcher. Permanent usage and migration documentation is updated. Temporary assessment/RFC/validation reports are excluded.

Refs #148, #173. These references do not close either issue; live model acceptance remains outstanding.

Validation

All 17 CI jobs passed for 899e1951ef146cf10200e6cf46c0111260f213c5: https://github.com/chainreactors/cyber-harness/actions/runs/40205246139. This includes root race/coverage, Windows variants, scanner/JEV regressions, browser and Web E2E, all 18 release archives, and packaged Windows/Linux amd64/arm64 startup and audit single-file checks.

  • Root core/agent/pkg/exts/examples regression: 79 tested packages passed; full composition and scanner functional regressions passed.
  • Full offline cmd/harness integration suite passed; independent audit and AOP module tests passed.
  • Windows standard/full builds passed with CGO=0 and CGO=1; native record linking, standalone record tests, and exact edition manifest checks passed.
  • go mod tidy -diff, go vet ./..., golangci-lint run --timeout=8m, documentation links, and patch whitespace checks passed locally.
  • Full local headless/Playwright suites passed with race detection. CI root race/coverage tests and Linux headless, authenticated browser record/replay, and Katana SPA E2E passed. Local Windows Katana E2E remains blocked by Defender rejecting upstream leakless.exe; the Linux CI exercises that path.
  • Real LLM acceptance was skipped because credentials were unavailable. Actual desktop recording was not run.

Compatibility

Go callers must use aop.ToolResult / aop.ToolDefinition, agent/provider, and agent/hooks directly. Context hooks return []*aop.Message with nil meaning unchanged. Recon declarations move to exts/passive/config; existing config keys and CLI names remain. Vendor structures with independent encoding/validation semantics are retained.

@M09Ic
M09Ic merged commit c289e3c into master Oct 25, 2026
17 checks passed
@M09Ic
M09Ic deleted the fix/issues-148-173-current branch October 26, 2026 15:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant