Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
279 commits
Select commit Hold shift + click to select a range
9431e91
refactor: 将 VisionConfig 通过 Deps 透传到 CommandRegistry
May 14, 2026
646aac9
test: 更新 app_test 适配新工具和 registry API
May 14, 2026
6479fbc
chore: 注册 browser/vision/webfetch/websearch 导入,更新 embed_test 期望 12 个技能
May 14, 2026
8564d74
refactor: 移除 agent_output 中 parse/filter 的硬编码状态预览
May 14, 2026
d1992f0
docs: 更新 aiscan SKILL.md 添加新伪命令和执行环境说明
May 14, 2026
114c8a8
chore: 为 template.go 添加 generated_templates 构建标签
May 14, 2026
42f6dce
chore: 更新 go.mod/go.sum 添加浏览器和 Web 工具依赖
May 14, 2026
d0ed524
test: 适配 e2e 测试到统一 CommandRegistry API
May 14, 2026
3ef2f79
ci: comprehensive CI pipeline with lint, tidy, coverage, generated-te…
M09Ic May 14, 2026
bd061d1
refactor: restructure scan package — extract pipeline, consolidate fi…
M09Ic May 14, 2026
4e92c5e
chore: browser build tag 隔离, 移除 generated_templates 构建标签
M09Ic May 14, 2026
50b4dfb
feat: 新增 Vision/WebFetch/WebSearch/CyberhubSearch 工具, Bash 重构, scan 包…
M09Ic May 14, 2026
a44ea51
chore: rename acp to ioa and fix ci
M09Ic May 15, 2026
bdba9f9
Enable gogo exploit mode in scan
M09Ic May 15, 2026
b50e5d8
refactor: extract pkg/swarm from pkg/loop and pkg/protocol
M09Ic May 15, 2026
e6d3d85
scan: unify output and metrics
M09Ic May 16, 2026
3ad537a
feat: add dynamic cron tool for LLM-driven scheduled tasks
M09Ic May 16, 2026
b2d6055
feat(scan): unified AI skill plugin architecture with structured reco…
M09Ic May 17, 2026
358fdd3
fix: remove local replace directives for CI compatibility
M09Ic May 17, 2026
4a1568b
fix: add BroadPOC field to flags struct
M09Ic May 17, 2026
d3624cb
fix: update test for renamed buildScanAISystemPrompt function
M09Ic May 17, 2026
672e8f2
fix: remove unused strings import in app_test.go
M09Ic May 17, 2026
b003a8c
fix: resolve golangci-lint issues
M09Ic May 17, 2026
d7dd84a
fix: remove more unused functions flagged by golangci-lint
M09Ic May 17, 2026
557cc64
fix: suppress nilerr lint by avoiding named error variable
M09Ic May 17, 2026
9bf4ecc
fix: restructure skill JSON parsing to satisfy nilerr linter
M09Ic May 17, 2026
237a83f
fix: resolve CI test failures
M09Ic May 17, 2026
d90d9ee
fix: resolve remaining CI test failures
M09Ic May 17, 2026
0a128fb
fix cli scanner flag isolation
M09Ic May 18, 2026
6445c09
feat: add --proxy for scanner tools and --llm-proxy for LLM API, all …
M09Ic May 19, 2026
934ea67
feat: switch templates from base64 to go:embed for smaller source and…
M09Ic May 19, 2026
bcda73d
chore: update fingers/utils deps for RE2 default and AC pre-filtering
M09Ic May 20, 2026
1873501
feat: agent 系统重构 — task 内存化 + SubAgent 三模式 + prompt 上下文注入
M09Ic May 25, 2026
a43727e
refactor: agent 系统整改 + e2e harness 真实测试
M09Ic May 25, 2026
b75d58b
refactor: rename pkg/e2e → pkg/harness, clean up scanner AI code
M09Ic May 25, 2026
dd04fc6
refactor: tool system — structured results, schema generation, parall…
M09Ic May 25, 2026
c382875
refactor: clean up Loop/LoopScheduler abstractions, remove cron remnants
M09Ic May 25, 2026
06aad74
test: add Loop tool e2e tests, add LoopCalls/LoopCreateCount helpers
M09Ic May 25, 2026
dd16ada
refactor: split harness into structured files, add Verify assertion f…
M09Ic May 25, 2026
2853d5a
feat: intent verification engine for AI behavior validation
M09Ic May 25, 2026
10e3611
feat: LLM-as-judge for intent verification in harness
M09Ic May 25, 2026
3b68ce5
fix: resolve shell by absolute path, prefer bash over sh
M09Ic May 25, 2026
5e9f2cc
feat: upgrade agent/subagent tests to Intent + LLM judge verification
M09Ic May 25, 2026
802c0ce
test: add real-target scanning test suite (101.132.149.35/28)
M09Ic May 25, 2026
8f29a93
feat: real-time agent monitor for harness
M09Ic May 25, 2026
6071458
feat: add per-turn token observability to agent transcript and pipeli…
M09Ic May 27, 2026
a5b7c20
refactor: config dedup, stream buffer, collector lock, and token trac…
M09Ic May 27, 2026
14e8726
chore: remove unused ImageBlock, ContentBlock image fields, and ToolR…
M09Ic May 27, 2026
b9df67d
feat: integrate multimodal into provider layer, delete vision subsystem
M09Ic May 27, 2026
82bbae2
feat: add proxy management tool with Clash subscription, multi-protoc…
M09Ic May 27, 2026
622eab0
feat: web_search 支持显式代理配置
May 28, 2026
ce15838
refactor: loadRuntimeDefaults 替代 applyScanDefaults
May 28, 2026
557f010
feat: scan 主动验证增强
May 28, 2026
375549d
feat: browser 交互式会话支持
May 28, 2026
d61fce9
fix: IOA 工具描述修正
May 28, 2026
da6151f
docs: report/verify SKILL 增加验证语义规则
May 28, 2026
e040b6f
chore: 更新 neutron 指纹库
May 28, 2026
dc08be0
refactor: replace global proxy patching with per-instance SDK injection
M09Ic May 29, 2026
159cce9
docs: add README and project documentation
M09Ic May 29, 2026
8ff75fc
refactor: unify bash/tmux execution and task manager with PTY support
M09Ic May 29, 2026
f9a23f3
refactor: simplify browser session lifecycle and websearch proxy wiring
M09Ic May 29, 2026
efc0b5e
chore: clean up cmd config, session, build script and test fixtures
M09Ic May 29, 2026
599a0c5
fix: resolve all golangci-lint issues
M09Ic May 29, 2026
ea592d7
chore: downgrade go directive to 1.25.7 for golangci-lint compatibility
M09Ic May 29, 2026
a1dc778
fix: add missing clash side-effect import in proxy registration
M09Ic May 29, 2026
01b50ea
test: add proxy and tmux tool tests, add CI tool-tests job
M09Ic May 29, 2026
b6be55b
feat: add unified LLM prompt cache abstraction for Anthropic and Open…
M09Ic May 29, 2026
33d30f5
refactor: rename pkg/agent/task to pkg/agent/tmux, clean up old task …
M09Ic May 29, 2026
20abd1c
ci(dependabot): enable automated dependency updates
M09Ic May 29, 2026
19ba909
deps: bump goreleaser/goreleaser-action from 6 to 7
dependabot[bot] May 29, 2026
7f38098
deps: bump actions/upload-artifact from 4 to 7
dependabot[bot] May 29, 2026
e33defd
deps: bump actions/checkout from 4 to 6
dependabot[bot] May 29, 2026
d944bd2
deps: bump actions/setup-go from 5 to 6
dependabot[bot] May 29, 2026
aed4912
deps: bump golangci/golangci-lint-action from 9.2.0 to 9.2.1
dependabot[bot] May 29, 2026
059db82
Merge pull request #6 from chainreactors/dependabot/github_actions/go…
M09Ic May 29, 2026
35c5b28
Merge pull request #7 from chainreactors/dependabot/github_actions/ac…
M09Ic May 29, 2026
cde6adb
Merge pull request #8 from chainreactors/dependabot/github_actions/ac…
M09Ic May 29, 2026
5e01375
Merge pull request #9 from chainreactors/dependabot/github_actions/ac…
M09Ic May 29, 2026
6af4585
Merge pull request #10 from chainreactors/dependabot/github_actions/g…
M09Ic May 29, 2026
2d58fed
refactor: 移除旧 browser 模块,由 playwright 替代
May 30, 2026
ef610db
feat: 新增 playwright 浏览器工具模块
May 30, 2026
1ac0b84
feat: swarm 节点增强,支持多节点协作调度
May 30, 2026
d8539b9
chore: 更新依赖、配置及修复 zombie 兼容性
May 30, 2026
2589256
fix: review fixes — 凭据清理、语义兼容、代码质量改进
M09Ic May 31, 2026
420f24d
fix: 移除 Intent deprecated 字段,直接使用 Prompt
M09Ic May 31, 2026
48d528f
feat: 补全 Playwright API 高安全价值命令 + Python 对比 harness
M09Ic May 31, 2026
b96aa08
fix: 重构 harness 为持久化 JSON-line 驱动, 全部 11 个对比测试通过
M09Ic May 31, 2026
336978a
fix: 补全全部 22 个新命令的对比测试, 修复 set-extra-headers/route 生命周期
M09Ic May 31, 2026
87b031c
feat: 对标 playwright-cli — context flags + 状态查询 + save-storage/HAR
M09Ic May 31, 2026
3172e2d
feat: 参数级别对标 playwright-cli — 共享 context flags 覆盖率 87%
M09Ic May 31, 2026
a00d47f
feat: add headless protocol engine with full nuclei template compatib…
M09Ic May 31, 2026
ea81cab
feat: add playwright session recorder for nuclei headless template co…
M09Ic May 31, 2026
2d480e3
refactor: remove parse_results and filter_results pseudo-commands
M09Ic May 29, 2026
4349163
refactor: clean up legacy naming — OriginTask→OriginSession, taskmod→…
M09Ic May 29, 2026
fe45fd1
chore: update templates submodule and remove unused vision skill
M09Ic May 31, 2026
eb26e0a
fix: resolve CI failures — env override, race condition, skill count,…
M09Ic Jun 1, 2026
dead4da
refactor: slim skill system — frontmatter-only indexing, on-demand co…
M09Ic Jun 1, 2026
ec3ed08
feat: katana crawl integration, reverse registration, and report rend…
M09Ic Jun 3, 2026
4408264
feat: add asset-based web scan UI and deep analysis
M09Ic Jun 3, 2026
dc562d0
fix: race conditions, goroutine leaks, test compilation, and credenti…
M09Ic Jun 3, 2026
6c84dcc
refactor: extract core/config + core/runner + pkg/pidlock from cmd
M09Ic Jun 4, 2026
a9d89c7
refactor: unify search commands, merge fuzz skill, replace full build…
M09Ic Jun 4, 2026
f0f7149
refactor: consolidate output/color/format into pkg/output, eliminate …
M09Ic Jun 4, 2026
2f5bec7
refactor: unify Agent as single atomic abstraction, eliminate InProce…
M09Ic Jun 4, 2026
617b793
chore: gitignore community.yaml and remove from tracking
M09Ic Jun 5, 2026
2fefe40
refactor web asset result view
M09Ic Jun 5, 2026
52b7781
aiscan: unify llm env config
M09Ic Jun 5, 2026
0c4524c
feat: adapt PR #13 improvements to unified command architecture
M09Ic Jun 5, 2026
4489890
refactor(ioa): drop SDK tool layer, direct client calls with subcomma…
M09Ic Jun 5, 2026
c043784
refactor: unified EventBus replaces fragmented event/recording systems
M09Ic Jun 5, 2026
7893d77
docs(skill): update IOA skill to match subcommand CLI and space binding
M09Ic Jun 5, 2026
4e1a358
feat(checkpoint): auto-sync checkpoint results to IOA space
M09Ic Jun 5, 2026
b186bd9
refactor: unify -f JSONL output, add SessionID to agent events, cleanup
M09Ic Jun 6, 2026
4a6dfc2
refactor(agent): re-export provider types through agent package
M09Ic Jun 6, 2026
1253f43
refactor: replace finding/AISkill/CheckpointSink with unified Loot type
M09Ic Jun 7, 2026
9b95701
fix: ioa_send checkpoint routing bug + add Loot/IOA tests
M09Ic Jun 7, 2026
e6366e7
refactor(agent): internalize provider, unify types in types.go
M09Ic Jun 7, 2026
151c4fb
Render scan results from loot schema
M09Ic Jun 7, 2026
df6c61f
refactor: template-based prompt + dynamic SystemPromptFn + skill prel…
M09Ic Jun 8, 2026
10bd64c
feat(skills): YAML frontmatter parsing + multi-level loading with ove…
M09Ic Jun 8, 2026
0d245db
refactor(scan): subscription-based DAG pipeline replacing global dedup
M09Ic Jun 8, 2026
04611b4
refactor: migrate swarm/checkpoint to ioa/protocols
M09Ic Jun 8, 2026
458ab83
refactor: unify build tags to single "full" variant and remove ioa st…
M09Ic Jun 8, 2026
9e8c317
chore: remove local replace directives, use remote ioa/sdk from master
M09Ic Jun 8, 2026
7b146c8
ci(nightly): auto-delete old nightlies and publish without draft
M09Ic Jun 8, 2026
88d3227
docs: update README and usage for v0.2.0 — add sniper/deep/full/tmux/…
M09Ic Jun 8, 2026
3e55c90
docs: fix outdated params, add agent tools/skills, sniper/deep/view docs
M09Ic Jun 8, 2026
4eb3dcc
docs: simplify agent tools/skills to inline lists instead of tables
M09Ic Jun 8, 2026
0b092a3
feat: upgrade IOA dep — content_type envelope, swarm protocol import
M09Ic Jun 8, 2026
4362102
docs: add katana/passive sections, --trace, -F/--format, subagent, --…
M09Ic Jun 8, 2026
26ae407
docs: remove deprecated vision config section (merged into provider l…
M09Ic Jun 8, 2026
1bf8122
chore(deps): update chainreactors dependencies to latest
M09Ic Jun 8, 2026
88d86e0
refactor: remove scan --ai compatibility flag
M09Ic Jun 9, 2026
b84cf69
refactor: adapt to IOA swarm cleanup — branch-aware SSE, node meta
M09Ic Jun 9, 2026
b873eca
refactor: adapt to IOA package restructuring
M09Ic Jun 9, 2026
bcacaff
refactor: adapt to IoA simplification — unify store, internalize swar…
M09Ic Jun 9, 2026
8d7d43a
refactor: remove push-based inbox, switch to AI-driven IOA monitoring
M09Ic Jun 9, 2026
4ad0d98
refactor: unify agent event serialization and timeline rendering
M09Ic Jun 12, 2026
baa7bb0
feat(agent): finish tool, thinking block, provider web search
M09Ic Jun 15, 2026
5b4337a
refactor: extract TUI/REPL into pkg/tui with streaming and async exec…
M09Ic Jun 15, 2026
4121d0d
refactor: extract REPL command logic into pkg/repl
M09Ic Jun 15, 2026
678e8ec
refactor: remove MessageJSON intermediate struct and deduplicate prov…
M09Ic Jun 15, 2026
ef6742f
feat: tmux capture-pane default incremental + update skill docs
M09Ic Jun 15, 2026
bf5b4f7
feat: multi-provider fallback chain with REPL /provider command
M09Ic Jun 15, 2026
01e707e
feat(sdk): upgrade to v0.3.2, adapt API changes, add panic recovery a…
M09Ic Jun 15, 2026
824bf3a
feat: heartbeat via LoopScheduler, tmux incremental inbox monitoring,…
M09Ic Jun 15, 2026
3a53196
refactor(evaluator): use tool call for structured output, remove resp…
M09Ic Jun 16, 2026
2317a2f
refactor: extract pkg/truncate for unified text clipping and result t…
M09Ic Jun 16, 2026
8f3a759
refactor: simplify gogo tool, rebuild cyberhub on SDK association index
M09Ic Jun 16, 2026
6e15bff
refactor: remove search Command wrapper, cyberhub is now a standalone…
M09Ic Jun 16, 2026
3217df1
refactor: inline pkg/util into call sites and delete the package
M09Ic Jun 16, 2026
869eb54
refactor: merge pkg/repl into pkg/tui
M09Ic Jun 16, 2026
de1b8c2
refactor: move pkg/truncate into pkg/agent/truncate
M09Ic Jun 16, 2026
3c1b663
refactor: rename pkg/command to pkg/commands
M09Ic Jun 16, 2026
0e1a8af
refactor: unify REPL command registration, add ! bash direct execution
M09Ic Jun 16, 2026
929af41
refactor: embed katana as in-process crawler, replace external binary
M09Ic Jun 16, 2026
a544a75
feat(katana): add headless/hybrid engine support and fix result colle…
M09Ic Jun 16, 2026
f64cbb9
chore: update chainreactors scanner modules
M09Ic Jun 16, 2026
40bcb78
feat: two-phase Ctrl+C signal handling and context-aware tool cancell…
M09Ic Jun 16, 2026
e087eb2
chore: update sdk to 4dee008 (no local replace directives)
M09Ic Jun 16, 2026
bd0a561
fix(ci): go mod tidy and use tagged switch to satisfy staticcheck
M09Ic Jun 16, 2026
0e9a6fb
refactor: simplify signal handler wiring and tmux context API
M09Ic Jun 16, 2026
4e24f78
refactor: move aiscan-specific packages from pkg/ to core/
M09Ic Jun 16, 2026
a87b15c
refactor: merge pkg/app into core/runner, delete pkg/app
M09Ic Jun 16, 2026
d46142a
fix(ci): update stale pkg/app import in cmd_test.go, go mod tidy
M09Ic Jun 16, 2026
6ca1dc7
fix(ci): update pkg/resources → core/resources in CI, goreleaser, bui…
M09Ic Jun 16, 2026
d1d098d
fix(ci): update stale pkg/ imports in test files
M09Ic Jun 16, 2026
6ff22f4
chore: update templates submodule to latest (cc5dd3f)
M09Ic Jun 17, 2026
382ec9c
refactor(skills): clean up skill hierarchy and fix scan --verify level
M09Ic Jun 17, 2026
4657675
ci: package aiscan-full releases as zip with docs
M09Ic Jun 17, 2026
fd77b89
docs: add changelog and missing documentation files
M09Ic Jun 17, 2026
825b7c5
fix(eval): pass full message history to goal evaluator
M09Ic Jun 17, 2026
a23ff0b
docs: restructure docs around three modes, update README with v0.2.2 …
M09Ic Jun 17, 2026
2230fc1
docs: remove internal ops docs (cloudproxy-remount, release)
M09Ic Jun 17, 2026
c3369f7
docs: merge configuration.md into reference.md, fix stale links
M09Ic Jun 17, 2026
184e743
docs: simplify Quick Start to one-line launch commands
M09Ic Jun 17, 2026
7479df9
docs: use explicit provider config in Quick Start example
M09Ic Jun 17, 2026
33b6263
docs: complete README with install, build from source, contributing, …
M09Ic Jun 17, 2026
b4a3670
docs: add promotional description highlighting zero-dependency out-of…
M09Ic Jun 17, 2026
31db0bf
docs: revert README description to original style
M09Ic Jun 17, 2026
8c05cbf
feat: IOA token auth support — --ioa-token for serve, http://token@ho…
M09Ic Jun 17, 2026
ef2c5d5
feat: reverse-connect agent architecture for aiscan web
M09Ic Jun 17, 2026
50eac0b
feat(web): agent panel UI — show connected agents in frontend
M09Ic Jun 17, 2026
48e9f08
refactor: WebSocket + telemetry bridge, remove ScanEvent middle layer
M09Ic Jun 17, 2026
7f77697
refactor: evaluator with context-aware inherit_context and rename goa…
M09Ic Jun 17, 2026
d75dc5a
refactor: remove telemetry.Bridge, CallbackRuntime, RuntimeAdapter
M09Ic Jun 17, 2026
9f8fdf2
feat(evaluator): model context window lookup table and 50%/80% thresh…
M09Ic Jun 18, 2026
a4ba310
refactor(provider): simplify to openai and anthropic two protocol types
M09Ic Jun 18, 2026
0422c35
fix(provider): gracefully degrade image content for non-vision LLMs
M09Ic Jun 18, 2026
879b11f
fix: add playwright to SKILL.md, remove root entrypoint, fix TUI stre…
M09Ic Jun 18, 2026
e52adcc
refactor(playwright): remove session GC and TTL, let the agent manage…
M09Ic Jun 18, 2026
4ef7bdc
refactor(provider): remove domain-based capability detection, use pro…
M09Ic Jun 18, 2026
c6439a7
refactor(tui): unify rendering, add streaming markdown and syntax hig…
M09Ic Jun 18, 2026
010f2ff
feat(commands): add image optimization pipeline for LLM vision input
M09Ic Jun 18, 2026
3344acf
feat(playwright): align with microsoft/playwright-cli — add cookie/st…
M09Ic Jun 18, 2026
d34c0f2
refactor(tui): replace -q/-v booleans with verbosity levels, add turn…
M09Ic Jun 18, 2026
d380f77
feat(playwright): add snapshot, requests, route-list, state-save/load…
M09Ic Jun 18, 2026
99bf5ab
feat(goreleaser): add aiscan-agent build target and switch aiscan arc…
M09Ic Jun 18, 2026
be6871c
fix(web): add WaitEngines init, map output events to progress, strip …
M09Ic Jun 18, 2026
b815d56
refactor: remove checkpoint and loop custom tools, fix Anthropic tool…
M09Ic Jun 18, 2026
d0d2b72
refactor: remove --loop flag, trigger IOA worker mode via --ioa-url
M09Ic Jun 18, 2026
ea20dba
release: v0.2.3 — remove local replace, fix tests, add changelog
M09Ic Jun 18, 2026
335110e
fix: resolve CI failures — syntax error in ioa test, tmux process che…
M09Ic Jun 18, 2026
ca2bd0d
fix(ci): add processAlive test helpers, fix PTY test path
M09Ic Jun 18, 2026
6cd9028
fix(ci): nightly workflow should only trigger on schedule, not on push
M09Ic Jun 18, 2026
301ed49
fix(ci): add cmd/agent entrypoint, fix all lint errors, skip unavaila…
M09Ic Jun 18, 2026
28afc50
fix(ci): run go generate before unit tests so scanner commands register
M09Ic Jun 18, 2026
4db6f3f
fix(ci): add missing cmd setup files, fix all lint errors
M09Ic Jun 18, 2026
a9a3400
fix(build): use 'full' build tag in build.sh to match goreleaser and …
M09Ic Jun 18, 2026
e091e94
perf(ci): warm Go build cache and enable parallel goreleaser builds
M09Ic Jun 18, 2026
cc7c8aa
fix(lint): resolve all golangci-lint errors — nilerr, QF1008, unused
M09Ic Jun 18, 2026
3cd0152
perf(ci): split goreleaser into 3 parallel build jobs + release job
M09Ic Jun 18, 2026
b89be6a
fix(test): eliminate data race in DirectScanner tests
M09Ic Jun 18, 2026
17c1191
fix(agent): widen retryable error classification to cover 406 and oth…
M09Ic Jun 18, 2026
b83c469
feat(arsenal): integrate crtm as security tool package manager
M09Ic Jun 18, 2026
a0e9abd
feat(arsenal): add update/remove actions, idempotent install, docs_ur…
M09Ic Jun 18, 2026
4c10bbe
test(arsenal): add tests for update, remove, hint/docs output
M09Ic Jun 18, 2026
4b50473
feat(tui): redesign verbose tool rendering and add 9 UX improvements
M09Ic Jun 18, 2026
f4df860
perf(arsenal): use manifest for instant version lookup
M09Ic Jun 18, 2026
c3c4160
refactor(arsenal): version from git tag + skill guides agent to list …
M09Ic Jun 18, 2026
3a16233
refactor(arsenal): convert from AgentTool to pseudo-command via bash
M09Ic Jun 18, 2026
531e144
test(arsenal): add releases action tests, complete coverage
M09Ic Jun 18, 2026
a1133f9
feat(pty): remote PTY mechanism with web terminal integration
M09Ic Jun 20, 2026
5994541
chore(deps): use remote replace for console/readline forks
M09Ic Jun 20, 2026
083f363
refactor(pty): migrate to shared github.com/chainreactors/utils/pty
M09Ic Jun 20, 2026
7fc1684
refactor(commands): unify output via global OutputWriter, simplify Co…
M09Ic Jun 21, 2026
4d22c59
refactor: consolidate static assets, simplify router/YAML/WebSocket m…
M09Ic Jun 21, 2026
7b10c66
fix: resolve 4 pre-existing test failures in agent and runner packages
M09Ic Jun 21, 2026
bc3ee83
fix: resolve CI lint and tidy failures
M09Ic Jun 21, 2026
7cbc60d
feat(pty): remote PTY mechanism with web terminal integration
M09Ic Jun 21, 2026
d2814b8
fix: replace local readline path with remote module for CI compatibility
M09Ic Jun 21, 2026
7806f93
fix: resolve remaining golangci-lint errors for CI
M09Ic Jun 21, 2026
5a1960c
release: v0.2.4 — arsenal tool manager, TUI redesign, agent retry fix…
M09Ic Jun 21, 2026
949dee7
docs: add v0.2.5 changelog entry
M09Ic Jun 21, 2026
a4e65ad
docs: add usage examples to v0.2.5 changelog
M09Ic Jun 21, 2026
b022658
docs: remove web-related content from v0.2.5 changelog (not yet relea…
M09Ic Jun 21, 2026
3329397
docs: add preview badge, arsenal to README features and reference
M09Ic Jun 21, 2026
c0947dc
chore: add AGPL-3.0 license, update README license section
M09Ic Jun 21, 2026
9d851fa
docs: add logo, fix badges, add IOA link to README
M09Ic Jun 21, 2026
8664e21
docs: add aiscan-agent to download table and platform matrix
M09Ic Jun 21, 2026
a916590
docs: move platform matrix into download section
M09Ic Jun 21, 2026
e0ed15b
art: redesign logo — chain radar with brand red palette
M09Ic Jun 21, 2026
68d0fd9
docs: rewrite README with EN/CN split, restructure Features
M09Ic Jun 21, 2026
6ef4853
docs: add Design section — single binary, minimal agent, plugin archi…
M09Ic Jun 21, 2026
c94c6fe
docs: simplify Features — capability-focused, remove flag-level details
M09Ic Jun 21, 2026
0037425
docs: add sdk, proxyclient, crtm, utils, parsers, fingers to Links
M09Ic Jun 21, 2026
55e6590
docs: add IOA documentation links (design, CLI, extension)
M09Ic Jun 21, 2026
1a31635
docs: add legal disclaimer for offensive security tool
M09Ic Jun 21, 2026
c2b3166
docs: add full legal disclaimer (CN cybersecurity standard format)
M09Ic Jun 21, 2026
44ac2a5
deps: bump actions/download-artifact from 7 to 8
dependabot[bot] Jun 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.sh text eol=lf
35 changes: 35 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
version: 2
updates:
- package-ecosystem: gomod
directory: "/"
schedule:
interval: weekly
day: monday
time: "04:00"
timezone: Asia/Shanghai
open-pull-requests-limit: 10
labels:
- dependencies
- go
commit-message:
prefix: deps
groups:
golang-x:
patterns:
- "golang.org/x/*"
chainreactors:
patterns:
- "github.com/chainreactors/*"

- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
day: monday
time: "04:30"
timezone: Asia/Shanghai
labels:
- dependencies
- github-actions
commit-message:
prefix: deps
240 changes: 227 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,30 +17,244 @@ concurrency:
cancel-in-progress: true

jobs:
build:
# ── Fast gates (independent, no deps) ──────────────────────────

lint:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
submodules: recursive

- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: go.mod
cache: true

- name: Run golangci-lint
uses: golangci/golangci-lint-action@v9.2.1
with:
version: v2.12.2
args: --timeout=5m

tidy:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
submodules: recursive

- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: go.mod
cache: true

- name: Check go mod tidy
run: |
cp go.mod go.mod.orig
cp go.sum go.sum.orig
go mod tidy
if ! diff -q go.mod go.mod.orig >/dev/null 2>&1; then
echo "::error::go.mod is not tidy. Run 'go mod tidy' and commit the result."
diff go.mod.orig go.mod || true
exit 1
fi
if ! diff -q go.sum go.sum.orig >/dev/null 2>&1; then
echo "::error::go.sum is not tidy. Run 'go mod tidy' and commit the result."
diff go.sum.orig go.sum | head -30 || true
exit 1
fi

# ── Unit tests (depends on tidy) ──────────────────────────────

test:
runs-on: ubuntu-22.04
needs: tidy
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
submodules: recursive

- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: go.mod
cache: true

- name: Generate embedded resources
run: go generate ./core/resources/...

- name: Run unit tests with coverage
run: |
go test -race -count=1 -timeout 5m \
-coverprofile=coverage.out \
-covermode=atomic \
./...

- name: Display coverage summary
if: always()
run: |
if [ -f coverage.out ]; then
echo "### Total coverage"
go tool cover -func=coverage.out | tail -1
echo ""
echo "### Per-package coverage (top 20)"
go tool cover -func=coverage.out | grep -E '^[a-z]' | sort -t$'\t' -k3 -rn | head -20
fi

- name: Upload coverage artifact
if: always()
uses: actions/upload-artifact@v7
with:
name: coverage-report
path: coverage.out
retention-days: 14

# ── Proxy & TMux tool tests (depends on tidy) ─────────────────

tool-tests:
runs-on: ubuntu-22.04
needs: tidy
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
submodules: recursive

- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: go.mod
cache: true

- name: Run proxy tool tests
run: |
go test -race -count=1 -timeout 5m -v \
./pkg/tools/proxy/

- name: Run tmux command tests
run: |
go test -race -count=1 -timeout 5m -v \
-run 'Tmux|BashProxy' \
./pkg/commands/

- name: Run PTY interactive session tests
run: |
go test -race -count=1 -timeout 5m -v \
-run 'MultiRound|SendCtrlC' \
./pkg/agent/tmux/

- name: Run agent tmux integration tests
run: |
go test -race -count=1 -timeout 5m -v \
-run 'AgentTmux' \
./pkg/agent/

# ── Generated templates tests (depends on tidy) ───────────────

generated-test:
runs-on: ubuntu-22.04
needs: tidy
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0
submodules: recursive

- name: Set up Go
uses: actions/setup-go@v5
uses: actions/setup-go@v6
with:
go-version-file: go.mod
cache: true

- name: Install upx
run: sudo apt install upx -y
continue-on-error: true
- name: Run go generate for templates
run: go generate ./core/resources/...

- name: Compile release targets
uses: goreleaser/goreleaser-action@v6
- name: Run resources tests
run: |
go test -race -count=1 -timeout 5m \
./core/resources/...

# ── E2E tests (depends on test) ───────────────────────────────

e2e:
runs-on: ubuntu-22.04
needs: test
steps:
- name: Checkout
uses: actions/checkout@v6
with:
distribution: goreleaser
version: '~> v2'
args: build --snapshot --clean
env:
GOPATH: "/home/runner/go"
fetch-depth: 0
submodules: recursive

- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: go.mod
cache: true

- name: Run e2e tests
run: |
go test -race -count=1 -timeout 10m \
-tags e2e \
-v \
./pkg/e2e/

# ── Build (depends on test, 3 parallel profiles) ──────────────

build:
runs-on: ubuntu-22.04
needs: test
strategy:
fail-fast: false
matrix:
include:
- id: standard
main: ./cmd/aiscan
tags: "forceposix emptytemplates noembed osusergo netgo"
generate: true
- id: full
main: ./cmd/aiscan
tags: "forceposix emptytemplates noembed osusergo netgo full sqlite"
generate: true
- id: agent
main: ./cmd/agent
tags: "forceposix emptytemplates noembed osusergo netgo"
generate: false
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
submodules: recursive

- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: go.mod
cache: true

- name: Generate embedded resources
if: matrix.generate
run: go generate ./core/resources

- name: Build all platforms (${{ matrix.id }})
run: |
for target in linux/amd64 linux/arm64 darwin/amd64 darwin/arm64 windows/amd64; do
IFS='/' read -r goos goarch <<< "$target"
echo " compile ${goos}/${goarch}"
CGO_ENABLED=0 GOOS="$goos" GOARCH="$goarch" \
go build -trimpath -tags "${{ matrix.tags }}" -ldflags "-s -w" \
-buildvcs=false -o "dist/${{ matrix.id }}_${goos}_${goarch}" ${{ matrix.main }}
done
ls -lh dist/
Loading
Loading