Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
238 commits
Select commit Hold shift + click to select a range
5b9a7ff
fix(sight): mask payload_len for BPF verifier on older kernels
chengshuyi May 11, 2026
3329cbe
ci(sec-core): add python code style check
yangdao479 May 11, 2026
820a0b6
chore(sec-core): add AGENTS.md for sec-core
yangdao479 May 11, 2026
45dcd09
fix(sec-core): fix reviewer comments
yangdao479 May 12, 2026
21d1b7a
fix(sec-core): detect unsigned skill files
1570005763 May 11, 2026
ba9d0cd
fix(sec-core): align skill signing paths
1570005763 May 12, 2026
5f07e72
feat(sight): add uid field to SLS logs with OnceLock cache and startu…
chengshuyi May 12, 2026
01a375a
fix(sight): handle Node.js process.title change in OpenClaw matcher
chengshuyi May 12, 2026
cb4820f
feat(cosh): expose run_id in HookInput for per-run event correlation
kongche-jbw May 11, 2026
16f17e5
fix(sight): adapt skill extraction for Hermes agent architecture
Daydreamer-Li May 13, 2026
f80fe2b
fix(sec-core): limit skill-ledger hook scope
1570005763 May 12, 2026
06fe804
fix(tokenless): add activation onCapabilities hook for openclaw plugi…
shiloong May 10, 2026
987ee32
chore(tokenless): bump to v0.3.1
shiloong May 10, 2026
64f2483
feat(sight): add tls sni module
chengshuyi May 9, 2026
64b466f
feat(sight): refactor discovery to config-driven rules, add SNI probe…
chengshuyi May 9, 2026
fa38bef
feat(sight): replace TLS SNI probe with UDP DNS probe for agent disco…
chengshuyi May 13, 2026
eedb187
fix(sight): resolve BPF verifier -E2BIG by removing nested #pragma un…
chengshuyi May 13, 2026
2b9b264
refactor(sight): move DNS QNAME parsing from BPF to userspace to reso…
chengshuyi May 13, 2026
0a75c05
docs(sight): reorganize integration-tests with DNS test cases and tem…
chengshuyi May 13, 2026
359bc3b
docs(sight): update c-ffi-api doc replacing SNI with DNS, add example…
chengshuyi May 13, 2026
ca86e48
feat(sec-core): integrate code-scanner with skill-ledger
1570005763 May 12, 2026
ca01209
feat(sec-core): add cisco static skill scanner
1570005763 May 12, 2026
7e2db31
fix(tokenless): redesign tool-ready for 4-category spec model and fix…
shiloong May 13, 2026
8752952
fix(tokenless): use official CLI for openclaw plugin and fix RPM inst…
shiloong May 13, 2026
c0cf759
fix(tokenless): add schema migration for before_output/after_output c…
shiloong May 13, 2026
f0c0853
chore(tokenless): bump to v0.3.2
shiloong May 13, 2026
5d0e2ea
feat(sec-core): add security observability metrics for agent runs
RemindD May 11, 2026
9403f87
feat(sec-core): security observability CLI and jsonl writer
RemindD May 12, 2026
202abf3
feat(sec-core): openclaw plugin for security observability
RemindD May 12, 2026
9d6b315
fix(tokenless): correct 5 bugs in stats, naming, SQL, paths and permi…
shiloong May 11, 2026
6d29df0
fix(skill-ledger): use managed skill dirs for discovery
1570005763 May 13, 2026
9169530
chore(sec-core): update owner info of agent-sec-core module
kid9 May 14, 2026
cc435db
feat(sec-core): support build all for sec-core
yangdao479 May 13, 2026
e385b44
ci(sec-core): add source build ci
yangdao479 May 13, 2026
836637d
ci(sec-core): check cosh python deps in ci
yangdao479 May 13, 2026
ed57ebe
fix(sec-core): support installed skill signing paths
1570005763 May 13, 2026
15748a5
test(sec-core): run skill signing e2e in ci
1570005763 May 13, 2026
593beb2
test(sec-core): cover legacy skill signing ci call
1570005763 May 13, 2026
2d73efd
fix(sec-core): decouple skill signing path detection
1570005763 May 13, 2026
1f4421a
feat(sec-core): install in local space for build-all
yangdao479 May 14, 2026
51eaf1c
chore(sec-core): remove sign-skill tool
yangdao479 May 14, 2026
c7c3681
chore(sec-core): fix comments
yangdao479 May 14, 2026
9ab891b
refactor(tokenless): align FHS paths, restructure adapter dir, remove…
yangdao479 May 14, 2026
0764474
fix(cosh): fire UserPromptSubmit hook only on real user prompts
kongche-jbw May 14, 2026
1b1ba11
feat(sec-core): add PIIChecker scan CLI and middleware
1570005763 May 14, 2026
c05d88b
fix(cosh): set run_id before UserPromptSubmit hook fires
kongche-jbw May 15, 2026
62447e3
fix(sec-core): detect scan-pii module mode via subprocess
1570005763 May 15, 2026
717f352
fix(tokenless): address code review findings across schema, env-check…
shiloong May 14, 2026
3b23157
feat(sec-core): cosh hook for security observability
RemindD May 13, 2026
307182f
feat(tokenless): add hermes agent plugin
shiloong May 15, 2026
4216370
feat(sec-core): update skill ledger security interactions
1570005763 May 14, 2026
56573d9
feat(sec-core): add hermes-plugin framework and add code scan support…
yangdao479 May 15, 2026
06cae73
chore(sec-core): move hermes test case
yangdao479 May 15, 2026
4244886
feat(sec-core): abstract class for hermes hook
yangdao479 May 15, 2026
516cc5d
chore(sec-core): fix comments, add more log in hermes plugin
yangdao479 May 18, 2026
fe9e7de
fix(cosh): correct read_file arg key in auto-memory session hook
kongche-jbw May 15, 2026
e65e98f
fix(cosh): preserve user dirs in auto-memory workspace cleanup
kongche-jbw May 15, 2026
c111c87
fix(sec-core): move warmup detection from error-string matching to fi…
haosanzi May 12, 2026
83ac42b
chore(sec-core): bump version to 0.4.1
yangdao479 May 13, 2026
24a780e
feat(cosh): surface UserPromptSubmit and PostToolUse hook reason in UI
kongche-jbw May 15, 2026
ffd6962
fix(cosh): atomic stale-lock takeover and async IO in memory hooks
kongche-jbw May 18, 2026
f19385d
feat(sec-core): add PIIChecker hooks for cosh and OpenClaw
1570005763 May 15, 2026
5db775a
fix(sec-core): show PII warnings via reply dispatch
1570005763 May 18, 2026
03e2d91
fix(sec-core): make PII scan unbounded by default
1570005763 May 18, 2026
3e6ae59
feat(sec-core): persist observability record to sqldb
RemindD May 15, 2026
20bd24c
fix(sec-core): lower frequency for sql maintenance
RemindD May 18, 2026
e76e9b5
fix(sec-core): fix TOCTOU at sqldb read path
RemindD May 15, 2026
2d23a3c
fix(sec-core): fix fixed timestamp in test which cause sqldb prune
RemindD May 18, 2026
0d5e825
feat(sec-core): observability plugin for hermes
RemindD May 18, 2026
b042444
fix(sec-core): log clear error message for openclaw and hermes plugin
RemindD May 18, 2026
c81837b
fix(sec-core): remove compact logic for hermes observability plugin
RemindD May 18, 2026
f39df90
docs(sec-core): align skill ledger docs with implementation
1570005763 May 18, 2026
c0db159
feat(sec-core): refine skill ledger scan workflow
1570005763 May 18, 2026
0e5626b
docs(sec-core): add scheduled skill ledger scan guide
1570005763 May 18, 2026
0cc35c1
test(sec-core): fix skill ledger CI expectations
1570005763 May 18, 2026
6e1a524
fix(sec-core): harden skill ledger recovery and key UX
1570005763 May 18, 2026
b6a9563
feat(sight): support container PID namespace in BPF traced process fi…
chengshuyi May 18, 2026
6c0f60e
feat(sec-core): add code-scan requireappove config for openclaw
yangdao479 May 19, 2026
ee0dd9f
feat(sec-core): add Hermes PII checker hook
1570005763 May 18, 2026
a8f93dd
fix(sec-core): pass PII scan input via stdin
1570005763 May 18, 2026
d927cfe
fix(sec-core): bound PII stdin reads
1570005763 May 19, 2026
dffa3a4
feat(ckpt): change the daemon to a stateful one
Ziqi002 May 12, 2026
070be6a
feat(ckpt): mv state file `img` to /var/lib/ws-ckpt/
Ziqi002 May 13, 2026
e927b05
feat(ckpt): rm placeholder interface for overlayFS backend
Ziqi002 May 13, 2026
01f801f
fix(ckpt): pre stage in spec shouldn't block rpm installation
Ziqi002 May 13, 2026
77c0e51
refactor(ckpt): refactor bootstrap as trait
Ziqi002 May 13, 2026
61d5969
fix(ckpt): move legacy img migration into daemon bootstrap
Ziqi002 May 19, 2026
f548458
fix(ckpt): drop dead img_path from DaemonConfig and ConfigReport
Ziqi002 May 19, 2026
f14b130
fix(tokenless): security hardening & critical algorithm correctness
shiloong May 18, 2026
8f43ea4
fix(tokenless): behavioral correctness & logic fixes
shiloong May 18, 2026
12b7a9a
fix(tokenless): dedup, dead code removal & cosmetic cleanup
shiloong May 18, 2026
0192077
feat(sight): reduce BPF ring buffer to 32MB and add agent matching rules
Daydreamer-Li May 19, 2026
3a32946
feat(sight): add tools field to AgentsightLLMData FFI struct
chengshuyi May 19, 2026
61a374c
fix(sight): pass tools field through as raw JSON and fix duration_ns …
chengshuyi May 19, 2026
50ca3b7
fix(cosh): include tool_use_id in PreToolUse hooks
kongche-jbw May 18, 2026
c464e86
feat(sec-core): add cli review for observability
RemindD May 17, 2026
8a17b68
fix(sec-core): optimize query function in list_runs
RemindD May 19, 2026
668825a
feat(sec-core): add Hermes skill ledger hook
1570005763 May 19, 2026
1182804
fix(sec-core): align Hermes skill ledger hook resolution
1570005763 May 19, 2026
27f53f8
test(sec-core): include skill-ledger e2e in install flows
1570005763 May 19, 2026
65b609e
feat(sec-core): add correlation context in agent-sec-cli
RemindD May 19, 2026
a0f6a49
feat(sec-core): cosh adapter change for correlation context
RemindD May 19, 2026
2144043
feat(sec-core): openclaw adapter change for correlation context
RemindD May 19, 2026
f453966
fix(sec-core): add path in workflow before import and add e2e tests f…
RemindD May 19, 2026
df4c498
fix(sec-core): restrict cosh trace context extraction to hook input f…
RemindD May 19, 2026
34ef57a
fix(sec-core): truncate correlation id if too long
RemindD May 20, 2026
ba8716f
fix(sec-core): define bootstrap trace-context parsing contract
RemindD May 20, 2026
4383945
feat(sec-core): make openclaw skill ledger approval configurable
1570005763 May 20, 2026
caada00
fix(sec-core): skip skill ledger warning hook in approval mode
1570005763 May 20, 2026
575924b
feat(sight): add connection scanner for pre-established LLM API conne…
chengshuyi May 20, 2026
a7a4561
fix(ckpt): list snapshot with metadata will bincode err
Ziqi002 May 14, 2026
021edc1
fix(ckpt): diff returns SnapshotNotFound instead of InternalError on …
Ziqi002 May 15, 2026
162311a
fix(ckpt): diff parser handles symlink, hardlink, and mv via link/unl…
Ziqi002 May 15, 2026
0e89c0d
feat(ckpt): support displaying local time and zone offsets when list …
Ziqi002 May 18, 2026
1c0e230
fix(ckpt): daemon robustness and edge-case handling
Ziqi002 May 19, 2026
dcef1e6
fix(ckpt): live-mount legacy→target relocation and loop_img_state rep…
Ziqi002 May 19, 2026
80d0b67
fix(ckpt): ws-ckpt cannot declare ownership of "%{_datadir}/anolisa"
Ziqi002 May 20, 2026
5180b9c
refactor(cosh): support install profiles
kongche-jbw May 15, 2026
ef72ed0
refactor(skills): add make install contract
kongche-jbw May 15, 2026
4c9bf98
refactor(tokenless): support staged installs
kongche-jbw May 15, 2026
0de7b61
refactor(ws-ckpt): add make install contract
kongche-jbw May 15, 2026
3ddaa3a
refactor(agentsight): support profile installs
kongche-jbw May 15, 2026
bbede34
feat(sec-core): add adapter manifest
kongche-jbw May 15, 2026
6e4a741
refactor(build): introduce unified build workflow
kongche-jbw May 15, 2026
e113cc1
fix(sec-core): rely on Makefile install paths
kongche-jbw May 18, 2026
cb975d4
chore(build): improve build-all interaction UX
kongche-jbw May 19, 2026
da71de8
fix(build): make dry-run non-mutating
kongche-jbw May 20, 2026
02b447f
feat(sight): support claude code
chengshuyi May 14, 2026
3b9797a
fix(sight): support Anthropic SSE thinking/tool_use content blocks an…
May 19, 2026
c0686b4
fix(sight): fix SSL probe attach for Claude Code (BoringSSL) and clea…
May 19, 2026
40f9db3
fix(sight): extend response_mapper to support Anthropic message.id fo…
May 19, 2026
7674a00
docs(sight): add Claude Code integration test prompt
husterL9 May 20, 2026
4acc972
fix(sec-core): skip sqldb prune in unit tests
RemindD May 21, 2026
8be0cc8
feat(sec-core): add Hermes prompt-scan capability
yanrong-hsr May 20, 2026
1769ac1
fix(sec-core): pass prompt text via stdin instead of argv
yanrong-hsr May 21, 2026
d6248d7
feat(sec-core): add OpenClaw enableBlock hook policies
1570005763 May 21, 2026
cdcc07a
fix(sec-core): make sqlarchemy lazy import
RemindD May 20, 2026
7e02cb2
feat(sec-core): correlate security events with observability events
RemindD May 20, 2026
c94c837
fix(sec-core): optimize correlation logic and support batch query
RemindD May 21, 2026
60be6e1
feat(sec-core): add hermes plugin install for rpmbuild and build from…
yangdao479 May 21, 2026
647af17
feat(sec-core): support correlation context in hermes agent plugin
RemindD May 21, 2026
9786ef3
fix(openclaw): expand home paths for skill-ledger
1570005763 May 21, 2026
dce48ca
fix(sec-core): respect trace-id filter in count
RemindD May 21, 2026
3b45947
fix(sec-core): stabilize Hermes skill-ledger warnings
1570005763 May 21, 2026
7089ae0
refactor(tokenless): replace submodules with crates.io deps and
shiloong May 19, 2026
42d6cac
fix(cosh): route UserPromptSubmit through safety-priority merge
kongche-jbw May 21, 2026
67f0810
chore(sec-core): bump version to 0.5.0
yangdao479 May 22, 2026
e1e739f
feat(cosh): add dashscope token plan provider
samchu-zsl May 21, 2026
4fda7f6
feat(sight): add tcpsniff probe for plain HTTP traffic capture
Daydreamer-Li May 21, 2026
df76ff8
feat(sight): add User-Agent based agent detection and redesign tcpsni…
Daydreamer-Li May 22, 2026
cb76227
refactor(sight): simplify agent detection by using comm as fallback i…
Daydreamer-Li May 22, 2026
6469064
docs(sight): add tcpsniff integration test specification
Daydreamer-Li May 22, 2026
0edca07
fix(sight): disable tcpsniff by default with empty tcp_targets
Daydreamer-Li May 22, 2026
096b744
feat(ckpt): init openclaw plugin
Ziqi002 May 12, 2026
d96a5e0
feat(ckpt): rpm/makefile/manifest support plugins
Ziqi002 May 21, 2026
306d3c8
fix(ckpt): bugs from rpm/makefile/manifest support plugins
Ziqi002 May 22, 2026
2eeccf1
feat(ckpt): make ws-ckpt skill agent-agnostic, prompt for workspace
Ziqi002 May 19, 2026
fe12905
feat(ckpt): init hermes plugin
Ziqi002 May 19, 2026
530b951
fix(ckpt): bugs from openclaw plugins and docs
Ziqi002 May 22, 2026
5a9f67e
fix(ckpt): build-all and adapter error
Ziqi002 May 22, 2026
577f3ff
chore(ckpt): release v0.3.0
Ziqi002 May 22, 2026
30b4d55
chore(sight): release v0.5.0
Daydreamer-Li May 22, 2026
8062f3c
feat(sight): add FFI interface for tcp_targets config
Daydreamer-Li May 22, 2026
9179159
chore(cosh): release v2.4.0
samchu-zsl May 25, 2026
0c3d02e
fix(tokenless): support Debian/Ubuntu FHS paths and harden binary res…
shiloong May 22, 2026
dacca3b
fix(tokenless): build OpenClaw plugin to dist/index.js
kongche-jbw May 21, 2026
a9ed001
chore(tokenless): bump to v0.4.0
shiloong May 25, 2026
06d5849
feat(sight): add client-side hybrid encryption for sensitive message …
husterL9 May 22, 2026
3439f7e
refactor(sight): load encryption public key from agentsight.json
husterL9 May 25, 2026
a3f8243
fix(sight): preserve initial SSE chunk in event-stream responses
Relifest May 25, 2026
3b7168d
feat(scripts): add standalone ANOLISA adapter entry (#549)
kongche-jbw May 26, 2026
4fdbc12
fix(sight): fix BoringSSL probe attachment, FFI event delivery and ch…
Daydreamer-Li May 26, 2026
7c8ece1
feat(sight): restructure config to https/http rules
Daydreamer-Li May 26, 2026
decd2cc
fix(sight): add CO-RE compatibility to UDP DNS probe for kernel 6.0+
Daydreamer-Li May 26, 2026
ff24545
feat(sight): resolve http domain rules to tcpsniff BPF map via DNS
Daydreamer-Li May 26, 2026
d23a029
fix(tokenless): normalize adapter version numbers to 0.4.0
shiloong May 26, 2026
d730c2a
fix(sight): improve c_char / BPF comm portability (i8 vs u8)
chengshuyi May 26, 2026
c88b41f
fix(tokenless): derive Makefile version from Cargo.toml, fix spec cha…
shiloong May 27, 2026
bd8625d
feat(sight): add unit tests for http endpoint and domain rule parsing
Daydreamer-Li May 27, 2026
d33e450
feat(memory): introduce agent-memory MCP server v0.1.0
May 27, 2026
8b6b0b8
ci(memory): wire agent-memory into CI / release pipelines
May 27, 2026
81199eb
fix(cosh): keep prompt ids monotonic after shell remount
kongche-jbw May 27, 2026
f828498
fix(cosh): render HookSystemMessage as info and fix Content/Thought d…
kongche-jbw May 27, 2026
c6fb08d
fix(ckpt): remove unused btrfs_ops.rs
Ziqi002 May 25, 2026
15ef957
fix(ckpt): fswatch don't close after write ops close
Ziqi002 May 26, 2026
86554f6
fix(ckpt): add protect for "cwd can't be workspace itself or a descen…
Ziqi002 May 26, 2026
6e8ad1a
fix(ckpt): skill requires --force when delete
Ziqi002 May 27, 2026
13f51e1
fix(ckpt): plugin may not auto load
Ziqi002 May 27, 2026
2152a7d
fix(ckpt): plugin tool support pass workspace with priority over config
Ziqi002 May 27, 2026
219269f
refactor(sight): query stats.db by tool_use_id and unify savings display
chengshuyi May 27, 2026
0bcf729
fix(tokenless): derive adapter plugin versions from Cargo.toml instea…
shiloong May 27, 2026
7a208e6
fix(openclaw): normalize OpenClaw state dir handling
kongche-jbw May 27, 2026
6d00aa0
chore(tokenless): bump to v0.4.1
shiloong May 27, 2026
bc00bbe
feat(memory): add openclaw memory-anolisa plugin
shiloong May 26, 2026
76327b0
chore(cosh): release v2.4.1
samchu-zsl May 27, 2026
79fd8d3
fix(ckpt): register workspace to plugin config
Ziqi002 May 27, 2026
d408203
chore(ckpt): release v0.3.1
Ziqi002 May 27, 2026
099c7d7
fix(memory): normalize openclaw state dir handling and fix RPM build
shiloong May 28, 2026
6da7d67
chore(memory): bump to v0.1.0-3
shiloong May 28, 2026
1160184
chore(ckpt): update spec changelog
Ziqi002 May 28, 2026
3f66bbd
fix(ckpt): optimize refuse parent path as workspace rules
Ziqi002 May 28, 2026
f08a457
fix(ckpt): uninstall openclaw with tool whitelist remove
Ziqi002 May 28, 2026
b91b742
feat(ci): install npm dependencies for the ws-ckpt plugin in package-…
Ziqi002 May 28, 2026
6efd77a
chore(ckpt): release v0.3.2
Ziqi002 May 28, 2026
38c825c
feat(sight): add traceEnabled configuration toggle
husterL9 May 28, 2026
d4eebe8
fix(sight): apply traceEnabled at SLS upload layer instead of probe l…
husterL9 May 29, 2026
99ba08a
feat(scripts): add Hermes adapter runner
kongche-jbw May 26, 2026
37d4332
fix(scripts): move sec-core manifest to cli package
kongche-jbw May 29, 2026
0892dc0
fix(scripts): centralize sec-core adapter manifest parsing
kongche-jbw May 29, 2026
6c02414
fix(tokenless): drop TOON wrapper prefix and slim diagnostic tags
May 28, 2026
6b1784b
fix(tokenless): unify rtk rewrite exit code 3 handling across adapters
shiloong May 28, 2026
820dc43
fix(sight): decode HPACK Huffman headers
jfeng18 May 30, 2026
ceaecc5
chore(sight): drop dead code + deprecated APIs
jfeng18 May 30, 2026
f876e01
chore(sight): silence generated-code warnings
jfeng18 May 30, 2026
cf8b1a6
docs(sight): sync probe/Event/test-index docs
jfeng18 May 30, 2026
1fe2263
add input delta ffi
Jun 2, 2026
5a9e409
fix(cosh): show visible cursor in provider/auth config inputs
kongche-jbw Jun 3, 2026
1b0c8e4
fix(tokenless): secure shell variable interpolation in env-fix and hooks
shiloong Jun 1, 2026
fc0c58a
fix(tokenless): add subprocess returncode checks and extract shared h…
shiloong Jun 1, 2026
84c7b9a
fix(tokenless): secure resolveBinaryPath and improve binary cache inv…
shiloong Jun 1, 2026
0844dea
chore(tokenless): add tokenizer tests, improve chrono config, warn on…
shiloong Jun 1, 2026
9517bb1
fix(tokenless): use mktemp in tests and safe home expansion
shiloong Jun 1, 2026
d08ee77
fix(tokenless): bound SchemaCompressor recursion to prevent stack ove…
shiloong Jun 2, 2026
00be17b
fix(tokenless): propagate env-fix subprocess failures instead of retu…
shiloong Jun 2, 2026
ae22d3d
fix(tokenless): anchor home lookup on getpwuid_r and trust-check cand…
shiloong Jun 2, 2026
5ecd6b5
fix(tokenless): harden env-fix install paths with uid trust check and…
shiloong Jun 2, 2026
da645ba
fix(tokenless): recover from poisoned mutex in stats recorder instead…
shiloong Jun 2, 2026
e6066cb
fix(tokenless): add input size limit and validate db path
shiloong Jun 2, 2026
6d33525
fix(tokenless): reserve truncation marker length in response compressor
shiloong Jun 2, 2026
82c4ea3
chore(tokenless): misc cleanups — serialization, permissions, dual trust
shiloong Jun 2, 2026
32557e8
chore(tokenless): fix formatting and clippy warnings after cherry-pick
shiloong Jun 2, 2026
a113c11
refactor(tokenless): rename openclaw plugin Name to Tokenless and ID …
shiloong Jun 2, 2026
6e57f5d
temp
Ziqi002 Jun 3, 2026
3bec310
feat(sight): support HTTP wildcard capture (*) for unknown IP/port ta…
Daydreamer-Li Jun 3, 2026
70cfcd0
feat(sight): add BPF-layer HTTP protocol filter for wildcard capture
Daydreamer-Li Jun 3, 2026
dd1dbf1
feat(sec-core): add daemon process for agent-sec-cli
RemindD Jun 2, 2026
7e1f206
Revert "temp"
samchu-zsl Jun 3, 2026
4d1eb84
chore(sec-core): store hash in requirements
yangdao479 Jun 3, 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
  •  
  •  
  •  
9 changes: 8 additions & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,18 @@
/src/copilot-shell/ @kongche-jbw @samchu-zsl # auto-label: component:cosh
/src/agentsight/ @chengshuyi # auto-label: component:sight
/src/agent-sec-core/ @edonyzpc @kid9 # auto-label: component:sec-core
/src/agent-sec-core/linux-sandbox/ @yanrong-hsr # auto-label: component:sec-core
/src/agent-sec-core/agent-sec-cli/ @RemindD @edonyzpc # auto-label: component:sec-core
/src/agent-sec-core/cosh-extension/ @yangdao479 # auto-label: component:sec-core
/src/agent-sec-core/linux-sandbox/ @haosanzi # auto-label: component:sec-core
/src/agent-sec-core/openclaw-plugin/ @RemindD # auto-label: component:sec-core
/src/agent-sec-core/skills/ @1570005763 # auto-label: component:sec-core
/src/agent-sec-core/Makefile @yangdao479 # auto-label: component:sec-core
/src/agent-sec-core/*.spec.in @yangdao479 # auto-label: component:sec-core
/src/os-skills/ @Ziqi002 # auto-label: component:skill
/src/ws-ckpt/ @Ziqi002 # auto-label: component:ckpt
/src/osbase/ @casparant # auto-label: component:osbase
/src/tokenless/ @Forrest-ly @shiloong # auto-label: component:tokenless
/src/agent-memory/ @shiloong # auto-label: component:memory

# ---------------------------------------------------------------------------
# Scope paths
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ body:
- sight
- tokenless
- ckpt
- memory
- other
validations:
required: true
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ body:
- sight
- tokenless
- ckpt
- memory
- other
validations:
required: true
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/question.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ body:
- sight
- tokenless
- ckpt
- memory
- other
- type: textarea
id: question
Expand Down
46 changes: 45 additions & 1 deletion .github/actions/package-source/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ runs:
tokenless) SRC_DIR="src/tokenless" ;;
os-skills) SRC_DIR="src/os-skills" ;;
ws-ckpt) SRC_DIR="src/ws-ckpt" ;;
agent-memory) SRC_DIR="src/agent-memory" ;;
*)
echo "ERROR: Unknown component: $COMPONENT"
exit 1
Expand Down Expand Up @@ -100,7 +101,7 @@ runs:
echo "LICENSE_BUILD_TARGET=${LICENSE_BUILD_TARGET}" >> $GITHUB_ENV

# -----------------------------------------------------------------
# Step 3: Create source archive
# Step 3.1: Create source archive
#
# If Step 2 detected a LICENSE path reference, the resolved real
# file is copied into the build tree before packaging so the archive
Expand Down Expand Up @@ -144,6 +145,49 @@ runs:
cp -p "${LICENSE_REAL_PATH}" "/tmp/build/${ARCHIVE_NAME}/${LICENSE_BUILD_TARGET}"
fi

# -----------------------------------------------------------------
# Step 3.2: Install plugin npm dependencies (ws-ckpt only)
#
# The source archive for ws-ckpt ships pre-installed node_modules
# so downstream consumers can use plugins without running npm.
# -----------------------------------------------------------------
- name: Setup Node.js (ws-ckpt)
if: inputs.component == 'ws-ckpt'
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install plugin npm dependencies (ws-ckpt)
if: inputs.component == 'ws-ckpt'
shell: bash
run: |
found=0
while IFS= read -r pkg; do
plugin_dir=$(dirname "$pkg")
echo "::group::npm install: ${plugin_dir#/tmp/build/${ARCHIVE_NAME}/}"
cd "$plugin_dir"
if [ -f package-lock.json ]; then
npm ci --ignore-scripts --omit=peer
else
npm install --ignore-scripts --omit=peer
fi
echo "::endgroup::"
found=$((found + 1))
cd /tmp/build/${ARCHIVE_NAME}
done < <(find /tmp/build/${ARCHIVE_NAME}/src/plugins -name 'package.json' -not -path '*/node_modules/*' 2>/dev/null)

if [ "$found" -eq 0 ]; then
echo "::warning::No plugin package.json found under src/plugins/"
else
echo "Installed npm dependencies for $found plugin(s)"
fi

# -----------------------------------------------------------------
# Step 3.3: Continue Create source archive
# -----------------------------------------------------------------
- name: Create source archive (tar)
shell: bash
run: |
mkdir -p /tmp/archives
tar -czf "/tmp/archives/${ARCHIVE_FILE}" \
-C /tmp/build "${ARCHIVE_NAME}"
Expand Down
1 change: 1 addition & 0 deletions .github/commitlint.config.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"sight",
"tokenless",
"ckpt",
"memory",
"deps",
"ci",
"docs",
Expand Down
20 changes: 20 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,26 @@ updates:
- "deps"
- "tokenless"

# agent-memory (cargo)
- package-ecosystem: "cargo"
directory: "/src/agent-memory"
schedule:
interval: "weekly"
target-branch: "main"
open-pull-requests-limit: 0 # ← Toggle: 0 = off, 1 = on
commit-message:
prefix: "chore(deps)"
include: "scope"
groups:
cargo-minor-patch:
applies-to: "version-updates"
update-types:
- "minor"
- "patch"
labels:
- "deps"
- "agent-memory"


# GitHub Actions
- package-ecosystem: "github-actions"
Expand Down
8 changes: 8 additions & 0 deletions .github/maintainers.json
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,14 @@
"github": "Ziqi002"
}
]
},
{
"label": "component:memory",
"maintainers": [
{
"github": "shiloong"
}
]
}
],
"default": {
Expand Down
2 changes: 2 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ closes #
- [ ] `skill` (os-skills)
- [ ] `sight` (agentsight)
- [ ] `tokenless` (tokenless)
- [ ] `memory` (agent-memory)
- [ ] Multiple / Project-wide

## Checklist
Expand All @@ -55,6 +56,7 @@ closes #
- [ ] For `skill`: Skill directory structure is valid and shell scripts pass syntax check
- [ ] For `sight`: `cargo clippy -- -D warnings` and `cargo fmt --check` pass
- [ ] For `tokenless`: `cargo clippy -- -D warnings` and `cargo fmt --check` pass
- [ ] For `memory` (Linux only): `cargo clippy --all-targets -- -D warnings`, `cargo fmt --check`, and `cargo test` pass
- [ ] Lock files are up to date (`package-lock.json` / `Cargo.lock`)

## Testing
Expand Down
8 changes: 7 additions & 1 deletion .github/workflows/_rpm-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_call:
inputs:
component:
description: "Component to build (copilot-shell, agent-sec-core, agentsight, os-skills)"
description: "Component to build (copilot-shell, agent-sec-core, agentsight, os-skills, tokenless, ws-ckpt, agent-memory)"
required: true
type: string
version:
Expand Down Expand Up @@ -62,6 +62,12 @@ jobs:
ws-ckpt)
dnf install -y rust cargo btrfs-progs rsync systemd-rpm-macros
;;
agent-memory)
# rusqlite (bundled) + git2 (vendored libgit2) need a C toolchain
# and cmake; systemd-devel provides libsystemd headers for the
# journald fan-out feature.
dnf install -y rust cargo cmake systemd-devel
;;
os-skills)
# noarch, no extra build deps
;;
Expand Down
90 changes: 86 additions & 4 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ on:
required: false
type: boolean
default: false
run_agent_memory:
description: 'Force run agent-memory tests (ignore change detection)'
required: false
type: boolean
default: false

permissions:
contents: read
Expand All @@ -49,6 +54,7 @@ jobs:
agentsight: ${{ steps.changes.outputs.agentsight }}
tokenless: ${{ steps.changes.outputs.tokenless }}
ws_ckpt: ${{ steps.changes.outputs.ws_ckpt }}
agent_memory: ${{ steps.changes.outputs.agent_memory }}
steps:
- uses: actions/checkout@v4
with:
Expand All @@ -74,6 +80,7 @@ jobs:
AGENTSIGHT=false
TOKENLESS=false
WS_CKPT=false
AGENT_MEMORY=false

# Path-based detection
if echo "$CHANGED" | grep -q "^src/copilot-shell/"; then
Expand All @@ -91,6 +98,9 @@ jobs:
if echo "$CHANGED" | grep -q "^src/ws-ckpt/"; then
WS_CKPT=true
fi
if echo "$CHANGED" | grep -q "^src/agent-memory/"; then
AGENT_MEMORY=true
fi

# Manual override via workflow_dispatch
if [[ "${{ inputs.run_copilot_shell }}" == "true" ]]; then
Expand All @@ -108,12 +118,16 @@ jobs:
if [[ "${{ inputs.run_ws_ckpt }}" == "true" ]]; then
WS_CKPT=true
fi
if [[ "${{ inputs.run_agent_memory }}" == "true" ]]; then
AGENT_MEMORY=true
fi

echo "copilot_shell=$COPILOT_SHELL" >> $GITHUB_OUTPUT
echo "agent_sec_core=$AGENT_SEC" >> $GITHUB_OUTPUT
echo "agentsight=$AGENTSIGHT" >> $GITHUB_OUTPUT
echo "tokenless=$TOKENLESS" >> $GITHUB_OUTPUT
echo "ws_ckpt=$WS_CKPT" >> $GITHUB_OUTPUT
echo "agent_memory=$AGENT_MEMORY" >> $GITHUB_OUTPUT

echo "### Change Detection Results" >> $GITHUB_STEP_SUMMARY
echo "| Component | Changed |" >> $GITHUB_STEP_SUMMARY
Expand All @@ -123,6 +137,7 @@ jobs:
echo "| agentsight | $AGENTSIGHT |" >> $GITHUB_STEP_SUMMARY
echo "| tokenless | $TOKENLESS |" >> $GITHUB_STEP_SUMMARY
echo "| ws-ckpt | $WS_CKPT |" >> $GITHUB_STEP_SUMMARY
echo "| agent-memory | $AGENT_MEMORY |" >> $GITHUB_STEP_SUMMARY

# =========================================================================
# Step 2: Build & Lint copilot-shell
Expand Down Expand Up @@ -280,6 +295,33 @@ jobs:
fi
echo "Code style check passed."

- name: Lint check (incremental)
if: github.event_name == 'pull_request'
run: |
cd src/agent-sec-core
uv run --project agent-sec-cli ruff check --config agent-sec-cli/pyproject.toml --output-format=concise . > ruff_report.txt || true
# Prefix paths to match git-diff repo-root-relative paths
sed -i 's|^\([^: ]*\.py\)|src/agent-sec-core/\1|' ruff_report.txt
cd "$GITHUB_WORKSPACE"
LINT_OUTPUT=$(diff-quality --violations=flake8 --fail-under=100 src/agent-sec-core/ruff_report.txt 2>&1) || true
rm -f src/agent-sec-core/ruff_report.txt
echo "$LINT_OUTPUT"
# Extract violation count from diff-quality output
if echo "$LINT_OUTPUT" | grep -q "Failure"; then
{
echo "### ⚠️ agent-sec-core Lint Warnings (incremental)"
echo ""
echo '以下为 PR 变更行中的 ruff lint 违规(不卡点,仅提示):'
echo ""
echo '```'
echo "$LINT_OUTPUT"
echo '```'
} >> "$GITHUB_STEP_SUMMARY"
echo "::warning::Lint violations found in changed lines. See step summary for details."
else
echo "### ✅ agent-sec-core Lint Check Passed" >> "$GITHUB_STEP_SUMMARY"
fi

- name: Run Python tests with coverage
run: |
cd src/agent-sec-core
Expand Down Expand Up @@ -522,7 +564,7 @@ jobs:

- uses: dtolnay/rust-toolchain@stable
with:
toolchain: '1.85.0'
toolchain: '1.89.0'
components: 'rustfmt, clippy'

- uses: Swatinem/rust-cache@v2
Expand All @@ -532,17 +574,17 @@ jobs:
- name: Check formatting
run: |
cd src/tokenless
cargo fmt --all --check
cargo fmt -p tokenless-cli -p tokenless-schema -p tokenless-stats -- --check

- name: Lint
run: |
cd src/tokenless
cargo clippy --workspace -- -D warnings
cargo clippy -p tokenless-cli -p tokenless-schema -p tokenless-stats -- -D warnings

- name: Run tests
run: |
cd src/tokenless
cargo test --workspace
cargo test -p tokenless-cli -p tokenless-schema -p tokenless-stats

# =========================================================================
# Step 7: Test ws-ckpt
Expand Down Expand Up @@ -582,3 +624,43 @@ jobs:
run: |
cd src/ws-ckpt/src
cargo test --workspace

# =========================================================================
# Step 8: Test agent-memory (Linux-only Rust crate)
# =========================================================================
test-agent-memory:
name: Test agent-memory
needs: detect-changes
if: needs.detect-changes.outputs.agent_memory == 'true'
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@stable
with:
toolchain: '1.89.0'
components: 'rustfmt, clippy'

- uses: Swatinem/rust-cache@v2
with:
workspaces: src/agent-memory

- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libsystemd-dev cmake

- name: Check formatting
run: |
cd src/agent-memory
cargo fmt --all --check

- name: Lint
run: |
cd src/agent-memory
cargo clippy --all-targets --locked -- -D warnings

- name: Run tests
run: |
cd src/agent-memory
cargo test --locked
Loading
Loading