Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
362 commits
Select commit Hold shift + click to select a range
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
b6b6a9d
feat: config fallback 改为 -c > 当前目录 > 二进制目录
M09Ic Jun 22, 2026
60d2e5c
refactor: 统一 .aiscan 数据目录到 DataDir(),默认跟随二进制路径
M09Ic Jun 22, 2026
e991166
refactor(cmd): restructure cmd/ — Arsenal always loaded, agent minima…
M09Ic Jun 22, 2026
076b5e7
fix: break import cycle by moving passive scanner registration to its…
M09Ic Jun 22, 2026
5821bee
fix: unified panic recovery for tool execution and scan pipeline
M09Ic Jun 22, 2026
ba86a53
feat: add --resume/--save-session for agent conversation persistence,…
M09Ic Jun 23, 2026
cc1c6da
docs: add extension development guide for Bash Tool and Skill
M09Ic Jun 23, 2026
c6ba009
refactor(output): unify record format — tool-named types, loot flag, …
M09Ic Jun 23, 2026
4ff53ad
fix: image error recovery and session fault tolerance for non-vision …
M09Ic Jun 23, 2026
938a13e
refactor: merge --resume and --resume-file into single --resume flag
M09Ic Jun 23, 2026
67cda16
chore: update utils dep, add PTY win7/2008 compat to v0.2.6 changelog
M09Ic Jun 23, 2026
0452105
chore: update utils/pty to 737b33d (win7/2008 PTY compat fix)
M09Ic Jun 23, 2026
ab735c6
chore: go mod tidy
M09Ic Jun 23, 2026
eaa0eb2
chore: regenerate config.yaml from reflection-based generator
M09Ic Jun 23, 2026
1c55892
fix: update provider descriptions and add Images to LLMProviderEntry
M09Ic Jun 23, 2026
956fc88
refactor: rename config.yaml to aiscan.yaml to avoid filename conflicts
M09Ic Jun 23, 2026
442eb58
feat: support providers list as primary LLM config format
M09Ic Jun 23, 2026
8bb41e6
feat: add /loop command and register loop tool, rename /reset to /clear
M09Ic Jun 23, 2026
ab42c02
feat(web): add AI findings summary and status badges to scan results
M09Ic Jun 23, 2026
00e4234
chore(web): rebuild frontend static assets
M09Ic Jun 23, 2026
21bdf51
feat: add LoopTool, verbosity toggle (Ctrl+O), and loop e2e tests
M09Ic Jun 23, 2026
8609091
feat(tui): add verbosity toggle, Ctrl+C/Esc interrupt, @ file complet…
M09Ic Jun 23, 2026
272e4b3
feat(tmux): support pipes for pseudo-commands (pseudo-cmd | shell-pip…
M09Ic Jun 23, 2026
a235ffd
feat: add found pseudo-command and bidirectional pipe support
M09Ic Jun 23, 2026
e10d143
fix(tui): stabilize agent thinking rendering
M09Ic Jun 23, 2026
5e7349a
fix(agent): emit cumulative usage events
M09Ic Jun 23, 2026
479fdfb
fix(tui): unify agent live status rendering
M09Ic Jun 23, 2026
ecc26b1
refactor: rename found→proton, use SDK engine + embedded templates
M09Ic Jun 23, 2026
2eaef7c
fix(agent): cap concurrent tool execution to prevent OOM
M09Ic Jun 23, 2026
20afb4f
fix(tui): render cumulative live token usage
M09Ic Jun 23, 2026
8af2c60
feat(proton): align with neutron CLI patterns and resource provider
M09Ic Jun 23, 2026
b59e32e
refactor: simplify scanner tool infrastructure, extract shared utilities
M09Ic Jun 23, 2026
9bfef9f
fix: replace fake Stripe keys in tests to pass GitHub push protection
M09Ic Jun 23, 2026
3ca0bb1
fix(recon): support FOFA key-only auth in passive recon
wuchulonly Jun 23, 2026
7093959
fix: clean up stale references left by prior refactors
wuchulonly Jun 23, 2026
2192709
chore: go mod tidy to align with CI toolchain
wuchulonly Jun 23, 2026
7730614
Merge pull request #42 from chainreactors/fix/fofa-key-only-auth
wuchulonly Jun 23, 2026
91274d7
docs: add proton skill, update scanner list in aiscan SKILL.md
M09Ic Jun 23, 2026
a5c7ae4
docs: add proton to README, README_CN, and reference docs
M09Ic Jun 23, 2026
efce8fd
fix: resolve lint errors, data races, and build failures in CI
M09Ic Jun 24, 2026
c0bcf1d
deps: bump spray and logs for concurrent logger fix
M09Ic Jun 24, 2026
702ece4
fix(tui): use syncedBuffer for all test stderr to prevent data races
M09Ic Jun 24, 2026
398d3d6
fix(ci): skip e2e job when pkg/e2e directory does not exist
M09Ic Jun 24, 2026
863d789
deps: bump zombie for OutputCh race fix
M09Ic Jun 24, 2026
fc793c6
chore: go mod tidy
M09Ic Jun 24, 2026
a35e04c
refactor(loop): rewrite as bash pseudo-command with cron scheduling
M09Ic Jun 24, 2026
29ac31b
feat(proxy): add MITM traffic capture via proxy mitm subcommands
M09Ic Jun 24, 2026
a327c74
test(proxy): add MITM correctness, throughput, and benchmark tests
M09Ic Jun 24, 2026
99996ea
fix(proxy): update MITM tests for server-probe detection
M09Ic Jun 24, 2026
ea77e2c
refactor(mitm): promote to top-level command, wrap instead of global …
M09Ic Jun 24, 2026
d3bad80
fix(proxy): align test with unexported captureAddon
M09Ic Jun 24, 2026
d40f940
chore: add utils/cert transitive dependency, fix flaky SSH banner test
M09Ic Jun 24, 2026
1a2bd6d
chore: update go.mod after utils/cert refactor
M09Ic Jun 24, 2026
712abbc
feat: integrate utils/cert atomic primitives, remove local replace
M09Ic Jun 24, 2026
c35e54c
fix: address code quality issues from post-v0.2.6 review
M09Ic Jun 25, 2026
c015bf5
refactor: extract scanner Base struct, unify tool registration, split…
M09Ic Jun 25, 2026
0b2af2e
chore: update v0.2.7 changelog, fix MITM lint and flaky test
M09Ic Jun 25, 2026
9b28301
fix: embed quick-reference docs in system prompt to reduce agent tria…
M09Ic Jun 26, 2026
1434188
Use console paste references in TUI
M09Ic Jun 26, 2026
a1c79c1
refactor: migrate from reeflective/readline,console to chainreactors/…
M09Ic Jun 26, 2026
92d7e22
refactor(web): migrate UI components to @aspect/ui and @aspect/theme …
M09Ic Jun 27, 2026
fbf1f8b
refactor(web): deepen cyber-ui adoption — Tooltip, Tabs, Select, Badg…
M09Ic Jun 27, 2026
7b92e85
refactor: remove line numbers from read tool output
M09Ic Jun 27, 2026
b168ffb
feat(web): configuration center — web server distributes config to ag…
M09Ic Jun 28, 2026
6548c62
refactor(web): replace local UI with cyber-ui submodule
M09Ic Jun 28, 2026
32265a5
feat(web): chat sessions, agent event forwarding, and build refresh
M09Ic Jun 28, 2026
1c63bfe
Fix web chat REPL session handling
M09Ic Jun 28, 2026
a3b6984
refactor(web): import chat components from @aspect/viewer, add viewer…
M09Ic Jun 28, 2026
7b7214e
feat: file upload through agent channel
M09Ic Jun 28, 2026
2eb644f
fix(web): persist upload success message
M09Ic Jun 28, 2026
a2c8c9f
refactor(web): migrate chat to composable timeline renderer registry
M09Ic Jun 29, 2026
c0e8f43
feat(web): unified record telemetry for agent events and scan results
M09Ic Jun 29, 2026
f4eb014
refactor(web): inline record conversion, remove core/runner/records.go
M09Ic Jun 29, 2026
c88ce5d
refactor: unify JSONL and WS event format as Record
M09Ic Jun 29, 2026
d182def
chore: remove unused record query abstractions
M09Ic Jun 29, 2026
be62f20
refactor: reorganize scattered tests into source-aligned files
M09Ic Jun 29, 2026
4583306
chore: release v0.2.8
M09Ic Jul 1, 2026
6d6c784
feat: match/extract graded output and stats fix for proton command
M09Ic Jul 3, 2026
c3d8560
chore: update proton/utils dependencies, remove local replace
M09Ic Jul 3, 2026
f29afa6
chore: update all deps, remove local replace
M09Ic Jul 3, 2026
1fda621
fix: adapt proton command to Scanner.FindAll and ScanGroup.Templates()
M09Ic Jul 4, 2026
f8baa72
chore: remove all local replaces, update deps
M09Ic Jul 4, 2026
6d4f04d
chore: remove large test binaries from tracking
M09Ic Jul 4, 2026
9e09a33
deps: bump golangci/golangci-lint-action from 9.2.1 to 9.3.0
dependabot[bot] Jul 5, 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 .aiscan/agent_history
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"datetime":"2026-06-28T00:32:16.6372412+08:00","block":"/status"}
6 changes: 6 additions & 0 deletions .aiscan/arsenal/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"httpx": {
"version": "1.9.0",
"installed_at": "2026-06-28T01:53:50.6587119+08:00"
}
}
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
244 changes: 231 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,30 +17,248 @@ 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.3.0
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: |
if [ -d pkg/e2e ]; then
go test -race -count=1 -timeout 10m \
-tags e2e \
-v \
./pkg/e2e/
else
echo "pkg/e2e not found, skipping"
fi

# ── 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