Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
389 commits
Select commit Hold shift + click to select a range
189570d
fix(web): rebuild reload candidates from explicit config
M09Ic Jul 27, 2026
a320b44
fix(web): make cancellation and event replay durable
M09Ic Jul 27, 2026
8b2e121
fix(build): pin generator tool dependencies
M09Ic Jul 28, 2026
63479ba
fix: clear cross-platform lint debt
M09Ic Jul 28, 2026
fc72a48
Merge pull request #78 from chainreactors/fix/web-runtime-integrity
M09Ic Jul 28, 2026
b18ae98
refactor(agent): enforce root package dependency layers
M09Ic Jul 28, 2026
644cefc
test(web): require real agent and verify SSE resume
M09Ic Jul 28, 2026
f1e0b49
ci: enforce architecture and zero-debt gates
M09Ic Jul 28, 2026
d9bf03e
test(output): keep golden fixtures platform-stable
M09Ic Jul 28, 2026
e599073
fix(web): converge scans across timeout races
M09Ic Jul 28, 2026
04e7ade
fix(deps): consume race-free scanner and viewer
M09Ic Jul 28, 2026
1361fbd
Merge pull request #77 from chainreactors/refactor/unidirectional-lay…
M09Ic Jul 28, 2026
27c244c
refactor(build): demote agent command to example
M09Ic Jul 28, 2026
38f1441
test(output): normalize golden fixture line endings
M09Ic Jul 28, 2026
3530077
refactor(runner): transfer command ownership to cairn
M09Ic Jul 28, 2026
d940d30
fix(deps): preserve CONNECT tunnel bytes
M09Ic Jul 28, 2026
8ced520
refactor(config): centralize env and provider protocols
M09Ic Jul 29, 2026
d811949
refactor(config): enforce strict provider protocols
M09Ic Jul 29, 2026
b361175
fix(agent): clamp retry backoff before shifting
M09Ic Jul 29, 2026
b93601a
fix(web): initialize app from resolved configuration
M09Ic Jul 29, 2026
3d27cd5
test(tui): isolate bang output newline contract
M09Ic Jul 29, 2026
ea6c0e0
test(tui): retire obsolete platform skip
M09Ic Jul 29, 2026
ee91aa6
fix(scan): avoid per-run global logger mutation
M09Ic Jul 29, 2026
faa579d
Merge pull request #79 from chainreactors/refactor/unidirectional-lay…
M09Ic Jul 29, 2026
c850230
feat: unify web protocols on protobuf and ConnectRPC
M09Ic Aug 1, 2026
7201b2a
fix(neutron): emit the captured request/response in JSON results
Aug 1, 2026
326e020
feat(protocol): adopt namespaced AOP and split product RPC types
M09Ic Aug 2, 2026
d403178
refactor(scan): remove duplicate report and DTO pipelines
M09Ic Aug 2, 2026
7708906
refactor(agent): use typed AOP events across runtime
M09Ic Aug 2, 2026
2d91a53
refactor(web): unify AOP transport and product ConnectRPC
M09Ic Aug 2, 2026
a7ec164
refactor(frontend): consume generated AIScan protobuf clients
M09Ic Aug 2, 2026
ae3106f
fix(web): persist and route canonical node URIs
M09Ic Aug 2, 2026
d657008
fix(frontend): use canonical node URI identity
M09Ic Aug 2, 2026
6f68dcf
test(aop): preserve node URI field compatibility
M09Ic Aug 2, 2026
67bd8c7
refactor(web): name canonical node URI routing explicitly
M09Ic Aug 2, 2026
2030603
chore: ignore local test artifacts
M09Ic Aug 2, 2026
1841d7a
refactor(protocol): flatten packages and canonicalize node IDs
M09Ic Aug 2, 2026
7d590a8
refactor: unify agent runtime and web node transport
M09Ic Aug 2, 2026
be4da6e
refactor(skills): migrate tool docs to OKF-style knowledge bundles
M09Ic Aug 2, 2026
27d24a9
feat(examples): add rmcp tool node and acp client/server examples
M09Ic Aug 2, 2026
34e383c
docs(api): add external integration API reference
M09Ic Aug 2, 2026
ad28b25
docs(api): refocus on chat input/output with cross-language codegen
M09Ic Aug 2, 2026
83b2044
docs(api): add protoc-gen-doc generated proto references
M09Ic Aug 2, 2026
7abc8ae
refactor: unify web RPC and runtime architecture
M09Ic Aug 2, 2026
604abfe
chore(deps): bump chainreactors/ioa to d0e2604 for shared client CLI
M09Ic Aug 2, 2026
27f18de
fix(ci): restore generated asset placeholder and satisfy quality gates
M09Ic Aug 2, 2026
c1edf53
fix(test): keep stdio test output behind one host lock
M09Ic Aug 2, 2026
6c9472f
fix(web): align cyber-ui host component contracts
M09Ic Aug 2, 2026
379bd85
fix(web): auto-attach the runtime REPL after discovery
M09Ic Aug 2, 2026
c0f62c6
refactor(pty): use AOP messages as the canonical protocol
M09Ic Aug 2, 2026
f27b0e3
refactor(protocol): align AOP application and node endpoints
M09Ic Aug 2, 2026
42b000c
refactor(pty): encapsulate runtime behind AOP messages
M09Ic Aug 2, 2026
db9c425
fix(protocol): keep generic AOP nodes product-neutral
M09Ic Aug 2, 2026
f433165
chore(frontend): point AOP client at application endpoint
M09Ic Aug 2, 2026
16d661a
refactor(web): centralize runtime in service package
M09Ic Aug 2, 2026
20353b8
refactor(web): hide business composition behind management contract
M09Ic Aug 2, 2026
5db7ec7
refactor(web): consolidate service mechanisms
M09Ic Aug 2, 2026
8ca25f5
refactor(web): move sqlite persistence to bun and protojson
M09Ic Aug 2, 2026
0144f4d
fix(ci): make lint advisory and repair failing checks
M09Ic Aug 2, 2026
287d776
refactor(sco): normalize raw artifacts on the server
M09Ic Aug 2, 2026
6873362
Merge pull request #80 from chainreactors/feat/aop-connectrpc-unifica…
M09Ic Aug 2, 2026
0b82157
fix(build): enable cgo for full artifacts
M09Ic Aug 3, 2026
2d903b2
ci: upload standard and full binaries
M09Ic Aug 3, 2026
6cbf1b8
fix(web): align command and turn health state
M09Ic Aug 3, 2026
bdda0af
fix(session): unify JSONL persistence and rotate continuations
M09Ic Aug 3, 2026
1362228
Merge pull request #84 from chainreactors/fix/unified-jsonl-session-r…
M09Ic Aug 3, 2026
6e86f6b
merge: integrate v0.4.0 session and web fixes
M09Ic Aug 3, 2026
6e55f36
docs: prepare v0.4.0 release and document web console
M09Ic Aug 3, 2026
403c590
fix(release): validate UPX-packed Windows binaries
M09Ic Aug 3, 2026
be73daf
fix(release): avoid UPX environment collision
M09Ic Aug 3, 2026
bfbb17f
fix embedded IOA and tool panic boundaries
M09Ic Aug 5, 2026
ea823d2
feat(scan): emit native artifacts with correlated loot
M09Ic Aug 6, 2026
c768b03
feat(config): reuse shared LLM environment
M09Ic Aug 6, 2026
61add0a
feat: add optional shell command bridge
M09Ic Aug 7, 2026
7ca507c
refactor: keep command bridge as a PTY adapter
M09Ic Aug 7, 2026
5f5c093
fix: reclaim exited Windows bridge runtimes
M09Ic Aug 7, 2026
38b0893
refactor: make shell command adapter transparent
M09Ic Aug 7, 2026
5753f2b
test: stabilize concurrent PTY option isolation
M09Ic Aug 7, 2026
b1ef513
feat(skills): add ioa finding publishing convention
M09Ic Aug 7, 2026
572744c
feat(record): add native media capture transport
M09Ic Aug 7, 2026
e932775
fix(protocol): pin canonical loot and file range schemas
M09Ic Aug 7, 2026
6aed37b
fix(runner): make run wait include cleanup
M09Ic Aug 7, 2026
aebd0cd
fix(node): clean up panicked operations before reporting
M09Ic Aug 7, 2026
1c65da3
feat(record): add native desktop capture tool
M09Ic Aug 7, 2026
e35db5f
fix(ci): export Windows recorder SDK paths
M09Ic Aug 7, 2026
4acd1dd
fix(ci): persist recorder link environment on Windows
M09Ic Aug 7, 2026
e47d188
fix(build): restore static native RE2 for full artifacts
M09Ic Aug 3, 2026
45d5bfa
ci: validate native RE2 and name Windows artifacts
M09Ic Aug 3, 2026
891ccf7
refactor(record): consolidate native SDK tooling
M09Ic Aug 7, 2026
03e17e2
feat(browser): expand reusable headless automation
M09Ic Aug 7, 2026
84def21
fix(build): detect Windows MSYS hosts
M09Ic Aug 7, 2026
b1877a8
Merge remote-tracking branch 'origin/feat/native-artifact-loot' into …
M09Ic Aug 7, 2026
703d91c
Merge master into feat/native-artifact-loot
M09Ic Aug 8, 2026
4f4bb2f
Merge pull request #86 from chainreactors/feat/command-bridge
M09Ic Aug 8, 2026
a1713cf
Merge remote-tracking branch 'origin/master' into feat/native-artifac…
M09Ic Aug 8, 2026
a638806
fix(ci): fall back to building recorder SDK
M09Ic Aug 8, 2026
e3adbba
fix(build): fetch x264 from GitHub mirror
M09Ic Aug 8, 2026
99f71fe
fix(ci): export Windows recorder link environment
M09Ic Aug 8, 2026
383de9b
Merge pull request #85 from chainreactors/feat/native-artifact-loot
M09Ic Aug 8, 2026
c77d056
Merge master into feat/record-tool
M09Ic Aug 8, 2026
4396332
Merge pull request #88 from chainreactors/feat/record-tool
M09Ic Aug 8, 2026
6b404ac
fix(ci): unify nightly and release workflows
M09Ic Aug 9, 2026
50a6726
refactor: clean v1 compatibility and package boundaries
M09Ic Aug 9, 2026
27e5768
build: align full profile with static re2
M09Ic Aug 9, 2026
c76e5ac
docs: add record and release promo materials
M09Ic Aug 9, 2026
0454c76
fix(web): update cyber-ui record card focus
M09Ic Aug 9, 2026
8829684
chore: ignore local agent and browser artifacts
M09Ic Aug 9, 2026
0c47335
Merge remote-tracking branch 'origin/master' into feat/native-artifac…
M09Ic Aug 9, 2026
b022102
chore(release): finalize v1 gates and cleanup
M09Ic Aug 9, 2026
b0b1958
test(arch): follow portable recorder shell contract
M09Ic Aug 9, 2026
77dac6a
test(web): synchronize terminal reconnect teardown
M09Ic Aug 9, 2026
668fe06
fix(build): strip local release-profile binaries
M09Ic Aug 9, 2026
55df4b9
test(tmux): isolate offset reads from PTY timing
M09Ic Aug 9, 2026
c2abcc8
fix(deps): pin race-free zombie runner
M09Ic Aug 9, 2026
b8fd6b3
docs: write v1.0.0-rc1 changelog
M09Ic Aug 9, 2026
9767580
fix(node): reset reconnect backoff after stable sessions
h3zh1 Aug 9, 2026
40b18cd
fix(node): enforce websocket liveness deadlines
h3zh1 Aug 9, 2026
410c069
fix(node): classify websocket connection failures
h3zh1 Aug 9, 2026
fdc8e54
feat(node): advertise runner process instance identity
h3zh1 Aug 9, 2026
a405238
fix(node): surface enrollment rejection reasons
h3zh1 Aug 9, 2026
c828928
feat(web): add contextual chat input guide
M09Ic Aug 10, 2026
0b4850a
feat(web): automate agent quick connect
M09Ic Aug 10, 2026
bd6e7c6
refactor(node): simplify websocket connection lifecycle
M09Ic Aug 10, 2026
e2d5c26
refactor(node): derive websocket recovery timings
M09Ic Aug 10, 2026
fa9acb9
Merge pull request #92 from chainreactors/fix/node-websocket-reliability
M09Ic Aug 10, 2026
9f687ce
refactor(agent): separate harness prompt from scan skill
M09Ic Aug 10, 2026
5bd4274
fix(runner): sanitize AOP tool text at UTF-8 boundary
wuchulonly Aug 10, 2026
d852455
Merge pull request #93 from chainreactors/fix/aop-invalid-utf8
wuchulonly Aug 10, 2026
bc67b73
docs(skills): correct gogo/scan port presets (top100/top1000 invalid)
Aug 12, 2026
b2e0c25
Merge pull request #94 from chainreactors/fix/gogo-scan-port-presets
wuchulonly Aug 12, 2026
d459a33
fix(node): 工具 terminal 后丢弃流式工具的尾随 artifact
wuchulonly Aug 13, 2026
0988ae2
fix(node): 尾随 artifact 按"已结算 call"丢弃,并覆盖取消路径
Aug 13, 2026
d23e0d0
test(node): websocket 存活测试并入 proto_connection_test
Aug 13, 2026
4c3d658
Merge pull request #95 from chainreactors/fix/toolnode-drop-trailing-…
wuchulonly Aug 14, 2026
46386ea
fix(toolargs): bound scanner-native artifacts at their sole birth point
wuchulonly Aug 14, 2026
0bb8c2f
fix(toolargs): enforce hard artifact data budget
wuchulonly Aug 14, 2026
dcc2ab4
Merge pull request #96 from chainreactors/fix/artifact-budget-at-emit
wuchulonly Aug 14, 2026
e3f185f
fix: upgrade katana to v1.7.0
wuchulonly Aug 16, 2026
2204864
Merge pull request #97 from chainreactors/fix/katana-v1.7.0
wuchulonly Aug 16, 2026
43ccaea
ci: reduce GitHub Actions usage
M09Ic Aug 16, 2026
76d90a7
feat(traffic): AOP traffic namespace over an always-on capture hub
M09Ic Aug 18, 2026
de0e7eb
build: make the module resolvable outside this multi-repo checkout
M09Ic Aug 18, 2026
fbc7d03
feat(file): the runtime's file-access audit trail
M09Ic Aug 18, 2026
35fe338
build: make record tool opt-in
M09Ic Aug 18, 2026
6d1b719
build(aop): bump cyber-ui to the file-access proto
M09Ic Aug 18, 2026
91ba6b4
refactor(runner): unify native runtime assembly
M09Ic Aug 19, 2026
3888749
Merge remote-tracking branch 'origin/master' into feat/traffic-namespace
M09Ic Aug 19, 2026
674c078
fix(ci): verify release candidates before publishing
M09Ic Aug 19, 2026
e4e2be8
refactor(ci): separate release build from publishing
M09Ic Aug 19, 2026
b31c260
fix(web): pin published cyber-ui file protocol
M09Ic Aug 19, 2026
64b3182
fix(ci): satisfy static analysis
M09Ic Aug 19, 2026
a166888
fix(ci): make cold generation and headless capture reliable
M09Ic Aug 19, 2026
46368aa
Merge pull request #103 from chainreactors/feat/traffic-namespace
M09Ic Aug 19, 2026
c959c08
fix(pty): consume drained session output
M09Ic Aug 19, 2026
e56eddb
fix(agent): unify keep-alive producer lifecycle
M09Ic Aug 19, 2026
6493076
Merge pull request #106 from chainreactors/fix/rc2-pty-drain
M09Ic Aug 19, 2026
93dd787
fix(ci): bound Playwright browser installation
M09Ic Aug 19, 2026
33213df
Merge pull request #107 from chainreactors/fix/ci-playwright-install
M09Ic Aug 19, 2026
b17913b
docs: complete v1.0.0-rc2 changelog
M09Ic Aug 19, 2026
76574a2
ci: keep runner verification out of release assets
M09Ic Aug 19, 2026
6dec246
Merge pull request #108 from chainreactors/docs/rc2-changelog
M09Ic Aug 19, 2026
6faa1a7
docs: focus rc2 notes on mitm and proxy
M09Ic Aug 19, 2026
bfb1b03
Merge pull request #109 from chainreactors/docs/rc2-mitm-focus
M09Ic Aug 19, 2026
1048659
feat(curl): add pure-Go, browser-naturalized curl bash tool
M09Ic Aug 19, 2026
79078d4
feat(aop/traffic): add Exchange, the canonical HTTP exchange struct
M09Ic Aug 19, 2026
23607ed
refactor(proxy): embed the canonical traffic.Exchange in the hub Flow
M09Ic Aug 20, 2026
ac2672e
feat(curl): add -F/--form, --data-urlencode and -x/--proxy
M09Ic Aug 20, 2026
74eac59
feat(aop/traffic): compose Exchange of Request and an optional Response
M09Ic Aug 20, 2026
54bae99
chore(web): pin cyber-ui with the nested traffic Flow
M09Ic Aug 20, 2026
b87a02b
feat(curl): support common compatibility flags
wuchulonly Aug 21, 2026
6fbef3b
fix(curl): reject overflowing timeout values
wuchulonly Aug 21, 2026
6b11e8e
test(curl): keep path tests within repository layout
wuchulonly Aug 21, 2026
f42e224
fix(curl): honor last HTTP version option
wuchulonly Aug 21, 2026
bb93c2a
test(curl): cover resolve TLS and proxy boundaries
wuchulonly Aug 21, 2026
7df05e0
fix(curl): reject head requests with bodies
wuchulonly Aug 21, 2026
0bee893
fix(curl): report timeout failures as code 28
wuchulonly Aug 21, 2026
5d4351b
fix(curl): map body read deadlines to timeout code
wuchulonly Aug 21, 2026
650e38e
fix(curl): classify network timeout errors consistently
wuchulonly Aug 21, 2026
3aa191d
test(curl): cover common fail bundle
wuchulonly Aug 21, 2026
76b171a
fix(curl): preserve output files on failed transfers
wuchulonly Aug 21, 2026
0fe6ef7
feat(curl): support ascii request tracing
wuchulonly Aug 21, 2026
904e17d
fix(curl): tighten compatibility edge cases
M09Ic Aug 21, 2026
f4e55c2
chore: clean curl and proxy lint debt
M09Ic Aug 21, 2026
00239a8
chore: clean curl and proxy lint debt
M09Ic Aug 21, 2026
58e0f7a
chore(curl): simplify response capture and lint fixes
M09Ic Aug 21, 2026
65e3c40
test: include curl in default capabilities
M09Ic Aug 21, 2026
7b5afb5
refactor(curl): reuse standard response snapshots
M09Ic Aug 21, 2026
f5a05c1
test: include curl in full capabilities
M09Ic Aug 21, 2026
aef07e2
test: include curl in full capabilities
M09Ic Aug 21, 2026
fe20a20
Merge pull request #110 from chainreactors/feat/curl-tool
M09Ic Aug 21, 2026
0c150fb
Merge pull request #111 from chainreactors/feat/curl-compat
M09Ic Aug 21, 2026
dd4a5a9
fix(config): load staged yaml without guessing format from suffix
h3zh1 Aug 22, 2026
b0b1ffb
feat(proxy): stream MITM bodies into durable capture files
M09Ic Aug 22, 2026
a2fbb2b
fix(proxy): satisfy lint for durable capture
M09Ic Aug 23, 2026
51f126f
ci: merge optimize-actions onto current master
M09Ic Aug 23, 2026
ba5a5b1
Merge pull request #98 from chainreactors/ci/optimize-actions
M09Ic Aug 23, 2026
4e6ec1f
Merge remote-tracking branch 'origin/feat/mitm-stream-capture' into HEAD
M09Ic Aug 23, 2026
ef613af
Merge pull request #112 from chainreactors/feat/mitm-stream-capture
M09Ic Aug 23, 2026
28cae8d
fix(runner): stop failed turns from looping through automatic continu…
h3zh1 Aug 26, 2026
e1278d7
feat(output): cap JSONL file size and per-session sqlite events
h3zh1 Aug 26, 2026
7c26275
fix(traffic): reconstruct the Host header net/http strips at capture
wuchulonly Aug 26, 2026
592fb64
Merge pull request #114 from chainreactors/fix/capture-host-header
wuchulonly Aug 27, 2026
90764fb
fix: unify runner egress for built-in tools
M09Ic Aug 24, 2026
fddd243
fix: prevent repeated AOP persistence
M09Ic Aug 26, 2026
dc9e0d7
fix(runner): cap inline tool result size at 64KiB
h3zh1 Aug 31, 2026
85112cc
fix(prompt): align gogo flags and port presets
wuchulonly Sep 1, 2026
5e6139e
Merge pull request #117 from chainreactors/fix/gogo-prompt-contract
wuchulonly Sep 1, 2026
e5bae2f
修复(commands):前台命令继承调用工作目录
wuchulonly Aug 27, 2026
68ec504
修复(aop):在协议边界规范化工具文本
wuchulonly Sep 4, 2026
c26799d
修复(proxy):限制并回收 MITM body 捕获
wuchulonly Sep 4, 2026
7815e27
修复(web):将取消请求交由运行时处理
wuchulonly Sep 4, 2026
76ab375
统一(curl):使用 AIScan Web 资产摘要
wuchulonly Sep 4, 2026
593a854
优化(frontend):为资产面板启用分页
wuchulonly Sep 4, 2026
78e1851
修复(frontend):更新回复完成时间的子模块版本
wuchulonly Sep 5, 2026
f1cef59
修复(frontend):更新聊天时间线子模块版本
wuchulonly Sep 5, 2026
4ff97ba
feat(traffic): add selective subscriptions and bounded capture
M09Ic Sep 9, 2026
1523b1a
refactor(traffic): remove storage sink and body reference abstractions
M09Ic Sep 9, 2026
93f99cb
Merge pull request #120 from chainreactors/pr-62
M09Ic Sep 9, 2026
eb3e3e3
fix(ci): stabilize rc3 release checks
M09Ic Sep 9, 2026
918751e
release: prepare v1.0.0-rc3
M09Ic Sep 9, 2026
8a83caa
ci: isolate stale browser service tests
M09Ic Sep 9, 2026
aaa9458
test(web): restore terminal E2E through the node endpoint
M09Ic Sep 9, 2026
e0f79a1
test(web): acknowledge terminal open before reconnect
M09Ic Sep 9, 2026
88ff4a0
test(web): tolerate reconnect notification ordering
M09Ic Sep 9, 2026
100278e
test(web): synchronize reconnect with completed forwarding
M09Ic Sep 9, 2026
9c0d039
docs: refine rc3 changelog for users
M09Ic Sep 9, 2026
d17a97e
docs: make rc3 changelog concrete
M09Ic Sep 9, 2026
6589ba1
refactor: separate app runtime console and communication host
M09Ic Sep 10, 2026
d3dcc83
docs: plan next console decoupling phase
M09Ic Sep 10, 2026
c169053
refactor: unify console execution with runtime
M09Ic Sep 10, 2026
0c1a29f
simplify repository harness and browser architecture
M09Ic Sep 10, 2026
e25c8b1
feat: add explicit plugin lifecycle coordinator
M09Ic Sep 10, 2026
ce9bd32
test: add real product and LLM delegation harness to CI
M09Ic Sep 10, 2026
05b97d2
refactor: separate tool execution from registration
M09Ic Sep 12, 2026
af6a8e3
refactor: enforce extension-owned lifecycle context
M09Ic Sep 12, 2026
ba6f324
refactor: own app registry through extension set
M09Ic Sep 12, 2026
3eac499
docs: record extension lifecycle boundaries and migration gap
M09Ic Sep 12, 2026
0852c19
test: exercise registry through extension set
M09Ic Sep 12, 2026
ecb0ec9
refactor: unify file tool registration extensions
M09Ic Sep 12, 2026
98bd837
refactor: centralize tool group extension ownership
M09Ic Sep 12, 2026
7ab4f21
test: migrate resource lifecycle checks to extension sets
M09Ic Sep 12, 2026
6c701bc
docs: record converged file extension boundaries
M09Ic Sep 12, 2026
2f17a76
refactor: centralize extensions under pkg/exts
M09Ic Sep 12, 2026
61d10ae
refactor: adapt IOA service through extension host
M09Ic Sep 12, 2026
638c325
refactor(harness): consolidate extension ownership and retire legacy …
M09Ic Sep 13, 2026
0a64ef6
refactor: separate composition roots from extension capabilities
M09Ic Sep 14, 2026
32790fa
refactor(harness): unify agent session ownership and extension declar…
M09Ic Sep 14, 2026
14392fe
fix(harness): converge profile wiring and session failure drain
M09Ic Sep 14, 2026
f7f94fd
refactor(harness): finalize observation terminology and profile contr…
M09Ic Sep 14, 2026
cbbdfa6
refactor: separate agent loop and session extensions
M09Ic Sep 14, 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
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .actrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
--container-architecture=linux/amd64
-P ubuntu-22.04=ghcr.io/catthehacker/ubuntu:act-22.04
--pull=false
--container-options=--init
12 changes: 12 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
**
!go.mod
!go.sum
!cmd/
!cmd/runner/
!cmd/runner/**
!core/
!core/**
!pkg/
!pkg/**
!skills/
!skills/**
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
*.sh text eol=lf
*.go text eol=lf
*.golden text eol=lf
go.mod text eol=lf
go.sum text eol=lf
14 changes: 8 additions & 6 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,16 @@ updates:
day: monday
time: "04:00"
timezone: Asia/Shanghai
open-pull-requests-limit: 10
open-pull-requests-limit: 3
labels:
- dependencies
- go
commit-message:
prefix: deps
groups:
golang-x:
all-go-dependencies:
patterns:
- "golang.org/x/*"
chainreactors:
patterns:
- "github.com/chainreactors/*"
- "*"

- package-ecosystem: github-actions
directory: "/"
Expand All @@ -28,8 +25,13 @@ updates:
day: monday
time: "04:30"
timezone: Asia/Shanghai
open-pull-requests-limit: 1
labels:
- dependencies
- github-actions
commit-message:
prefix: deps
groups:
all-github-actions:
patterns:
- "*"
46 changes: 46 additions & 0 deletions .github/native/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Recorder native SDK

AIScan keeps the native recorder SDK separate from normal product builds.

1. Maintainers run the `recorder-native-sdk` workflow after changing `versions.env` or the native build configuration. It builds the pinned sources, creates relocatable static SDK archives, writes SHA-256 sidecars, and publishes the assets to the versioned GitHub release.
2. SDK and record-tool developers run `make record` when they need the optional backend. It downloads the matching platform archive once, verifies it, installs it below `.cache/record-native`, and builds `aiscan-record`. Default `make full` and product release jobs do not fetch or link this SDK.

Supported bundles are `linux-amd64`, `linux-arm64`, and `windows-amd64`. FFmpeg and x264 are static, so the distributed executable does not require separate FFmpeg/x264 installation. Operating-system libraries remain external dependencies: Linux uses glibc and X11/XCB; Windows uses system DLLs. The source builder uses an explicit component allowlist (capture input, H.264 encoder, MP4 muxer, and file output only), and packaging rejects static-library sets larger than 16 MiB by default.

The Makefile is the public build interface:

```bash
make record # fetch SDK and build aiscan-record
make record-native # fetch and verify SDK only
make record-native-source # build SDK from pinned sources
make record-native-source record-native-package
make record-native-source RECORD_ARCH=arm64
```

Maintainers and CI use the single underlying script when they need an individual stage:

```bash
bash .github/native/sdk.sh fetch linux amd64
bash .github/native/sdk.sh build linux amd64
bash .github/native/sdk.sh package linux amd64 dist/native
bash .github/native/sdk.sh env linux amd64
```

Environment overrides:

- `AISCAN_RECORD_PREFIX`: SDK install/cache directory.
- `AISCAN_RECORD_NATIVE_URL`: release or mirror base URL containing the archive and `.sha256` sidecar.
- `AISCAN_RECORD_OFFLINE=1`: forbid downloads and require an already cached matching SDK.
- `AISCAN_RECORD_BUILD_FROM_SOURCE=1`: make `make record` or `make record-native` use the pinned source builder instead of downloading an SDK.
- `RECORD_ARCH`: target architecture for Makefile SDK targets (defaults to `go env GOARCH`).
- `RECORD_NATIVE_OUTPUT`: package output directory (defaults to `dist/native`).

When native inputs or flags change, increment `RECORD_NATIVE_VERSION` and `RECORD_NATIVE_RELEASE` together before publishing. Do not replace an existing SDK version with incompatible contents.

## macOS CGO cross-build

The release workflow builds both standard and full macOS binaries on an Ubuntu runner. Standard uses the normal pure-Go `CGO_ENABLED=0` cross-build. Full uses the Zig C/C++ driver with a pinned macOS SDK, `CGO_ENABLED=1`, and external Go linking so the bundled Darwin `libcstx` and RE2 archives can link against `Security`, `CoreFoundation`, `libresolv`, and libc++.

The SDK version, checksum, Zig version, and minimum deployment target are pinned in `versions.env`. The SDK archive is downloaded from the versioned `joseluisq/macosx-sdks` release and verified before extraction. Native recording remains supported only by the Linux and Windows recorder SDK bundles above.

No macOS GitHub Actions runner is used. Linux can validate the generated Mach-O format and architecture, but it cannot execute the release binary; runtime smoke coverage remains the responsibility of downstream macOS users or a separately authorized external test environment.
15 changes: 15 additions & 0 deletions .github/native/pkg-config-static.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
@echo off
setlocal
set "MINGW_PKG_CONFIG="
for /f "delims=" %%I in ('where gcc.exe 2^>nul') do (
set "MINGW_PKG_CONFIG=%%~dpIpkg-config.exe"
goto found
)
:found
if not defined MINGW_PKG_CONFIG goto fallback
if not exist "%MINGW_PKG_CONFIG%" goto fallback
"%MINGW_PKG_CONFIG%" --static %*
exit /b %ERRORLEVEL%

:fallback
pkg-config --static %*
3 changes: 3 additions & 0 deletions .github/native/pkg-config-static.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env bash
set -euo pipefail
exec pkg-config --static "$@"
Loading
Loading