Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
151 commits
Select commit Hold shift + click to select a range
92f13f2
feat(sdk): expose embedded host policies and loop observation
1-ztc Oct 10, 2026
90e0044
fix: preserve durable task acceptance and platform verification
1-ztc Oct 10, 2026
f6ab442
test: keep git and redaction safety fixtures executable across platforms
1-ztc Oct 10, 2026
1ab4838
fix: honor PATH order for Windows MCP npx startup
1-ztc Oct 10, 2026
1132e37
fix: resolve Windows MCP PATH entries against child cwd
1-ztc Oct 10, 2026
a6c9bec
test: force real filter execution in git safety fixtures
1-ztc Oct 10, 2026
0393257
fix(windows): preserve host command quoting and directory permission …
1-ztc Oct 10, 2026
f6c7fa7
fix(task): preserve acceptance authority and durable completion
1-ztc Oct 10, 2026
b0f66e0
fix(task): serialize replay and drain native acceptance commits
1-ztc Oct 10, 2026
4ec7760
fix(task): clear proven undispatched acceptance prepares
1-ztc Oct 10, 2026
fe52458
Merge latest Moss main with Studio public SDK support
1-ztc Oct 10, 2026
2290cee
test: verify requested config directory mode on Windows
1-ztc Oct 10, 2026
907d9ee
fix: recover undispatched task prepares and reject late suite evidence
1-ztc Oct 10, 2026
d7376f4
test: run first-run journeys through real Windows ConPTY
1-ztc Oct 10, 2026
997ab6f
test: distinguish literal Windows paths from localized copy
1-ztc Oct 10, 2026
4e78abf
test: use a native absolute source checkout fixture path
1-ztc Oct 10, 2026
71c3269
fix: preserve native task completion and Windows Git boundaries
1-ztc Oct 10, 2026
7c9c240
test: observe real Windows config and trust mode requests
1-ztc Oct 10, 2026
8819463
test: verify Windows acceptance child PATH inheritance
1-ztc Oct 10, 2026
de423d8
fix(runtime): join task refresh IO and surface terminal storage errors
1-ztc Oct 11, 2026
bba3c0d
merge: sync latest upstream main 93ef58a9 with Studio SDK boundaries
1-ztc Oct 11, 2026
e63b0a6
test(windows): exercise selected host shell and real cmd fallback
1-ztc Oct 11, 2026
ea49628
test(runtime): observe real workspace presence at the drain barrier
1-ztc Oct 11, 2026
717cdac
test: isolate registry caches and verify native background shutdown
1-ztc Oct 11, 2026
c6bce5a
test(background): declare the native parent command directly
1-ztc Oct 11, 2026
ab769bd
test(device): use native canonical folder trust keys
1-ztc Oct 11, 2026
9764552
fix(windows): preserve quoted hook and goal verification commands
1-ztc Oct 11, 2026
b22a8fc
fix(sdk): scope host device tools and preserve real goal verification…
1-ztc Oct 11, 2026
305f369
test(windows): preserve real egress replacement through PowerShell mv…
1-ztc Oct 11, 2026
265d70f
test(windows): observe real background stops and preserve Git hook ha…
1-ztc Oct 11, 2026
fd677ff
fix(sdk): expose bounded canonical tool completion output
1-ztc Oct 11, 2026
7bf09a4
merge: sync official main 97f9 while preserving integration gates
1-ztc Oct 11, 2026
16979ea
fix(merge): deduplicate goal verification shell import
1-ztc Oct 11, 2026
3f05b67
fix(safety): avoid quadratic URL credential scans
1-ztc Oct 11, 2026
ca3aeb9
fix(edit): include full file in partial-read rejection so next edit s…
QiaolongLi1201 Oct 11, 2026
7acb29b
fix(cli): report PATH scan facts and test Windows termination
1-ztc Oct 11, 2026
ebe9117
test(exec): reject exceptions as native termination evidence
1-ztc Oct 11, 2026
7c29239
fix(edit): partial-read refusal carries full file; block shell writes…
QiaolongLi1201 Oct 11, 2026
937a258
Merge branch 'main' into fix/o97-partial-read-full-content
QiaolongLi1201 Oct 11, 2026
bf15cc6
fix(exec): bind Windows background lifetime to an owned Job
1-ztc Oct 11, 2026
3fdc05d
Merge official main 4cf10a93 into Studio SDK development
1-ztc Oct 11, 2026
cfd720c
Merge pull request #92 from D-Robotics/fix/o97-partial-read-full-content
QiaolongLi1201 Oct 11, 2026
03389fd
fix(O94): protected paths need one confirmation even in full mode
QiaolongLi1201 Oct 11, 2026
2a7d187
docs(release-policy): record v0.26.1 install smoke and publish path
QiaolongLi1201 Oct 11, 2026
a661d8b
fix(cli): fail closed missing Windows hooks and preserve OSC read con…
1-ztc Oct 11, 2026
74f1ffa
docs(O94): protected paths are best-effort interception, not a sandbo…
QiaolongLi1201 Oct 11, 2026
8977a42
docs(plan): sync roadmap to upstream main 2a7d1873 and npm 0.26.1 rea…
QiaolongLi1201 Oct 11, 2026
99566d9
fix(O94): -p/--print deny protected paths even when stdin is a TTY
QiaolongLi1201 Oct 11, 2026
58c9e3d
Merge pull request #93 from D-Robotics/fix/o94-protected-paths
QiaolongLi1201 Oct 11, 2026
149e046
fix(o98): no false success at end of --print runs
QiaolongLi1201 Oct 11, 2026
9baccf9
fix(o98): export stable RunOutcome for O99
QiaolongLi1201 Oct 11, 2026
665c9ee
fix(o98): VERIFY re-check, 完成 line, 未验证, Stop non-zero
QiaolongLi1201 Oct 11, 2026
adf2d98
Merge pull request #94 from D-Robotics/fix/o98-no-false-success
QiaolongLi1201 Oct 11, 2026
4b825bb
feat(cli): O99 show real progress during long runs
QiaolongLi1201 Oct 11, 2026
440062c
test(O99): expect real tool progress in TUI live spinner
QiaolongLi1201 Oct 11, 2026
4a81866
fix(o99): wire progress footer to O98 run-outcome
QiaolongLi1201 Oct 11, 2026
0f96fc9
fix(loop-guard): keep real casing in shell-write block paths (red mac…
QiaolongLi1201 Oct 11, 2026
c71cd08
Merge pull request #96 from D-Robotics/fix/o99-progress-v2
QiaolongLi1201 Oct 11, 2026
72b89f1
fix(o96): do not count lint/test non-zero exits as broken exec
QiaolongLi1201 Oct 11, 2026
913354c
fix(o96): count real exec timeouts as byToolFailure with 超时 copy
QiaolongLi1201 Oct 11, 2026
88b62bd
fix(o96): anchor shell fault classification to first line; drop isErr…
QiaolongLi1201 Oct 11, 2026
f6ea229
fix(config): O93 support agent.reasoningBudget in config set/unset/sh…
QiaolongLi1201 Oct 11, 2026
651c5f3
test(safety): O97a ln/touch/rm/shred protected-path cases + O97b .mos…
QiaolongLi1201 Oct 11, 2026
9ae3738
Merge pull request #99 from D-Robotics/test/o97-protected-path-and-co…
QiaolongLi1201 Oct 11, 2026
8e60ec7
fix(o96): exit 126/127 = start failure with sanitized command name; m…
QiaolongLi1201 Oct 11, 2026
5e607b3
test(ui): O93 allow reasoningBudget literal tokens in zh surface scan
QiaolongLi1201 Oct 11, 2026
465cbaa
Merge pull request #97 from D-Robotics/fix/o96-loop-guard-exec-exit
QiaolongLi1201 Oct 11, 2026
8eb25fd
fix(config): O93 complete UX/QA gates for agent.reasoningBudget
QiaolongLi1201 Oct 11, 2026
40c2ded
fix(config): O93 untrusted project may only lower reasoningBudget
QiaolongLi1201 Oct 11, 2026
f26ff95
Merge pull request #98 from D-Robotics/fix/o93-config-reasoning-budget
QiaolongLi1201 Oct 11, 2026
34e966a
feat(O101): detect indirect writes to protected paths (inline/script/…
Oct 11, 2026
b247eba
fix(safety): O105 redact Moss config on direct read_file execute
QiaolongLi1201 Oct 11, 2026
9f07daf
fix(O101): tip adapt — notice on all exec exits, stronger A/D asserts
QiaolongLi1201 Oct 11, 2026
25ce04c
Merge pull request #101 from D-Robotics/fix/o101-indirect-writes
QiaolongLi1201 Oct 11, 2026
9629e42
Merge pull request #100 from D-Robotics/fix/o105-config-credential-path
QiaolongLi1201 Oct 11, 2026
d5aec5c
fix(safety): O107 follow credential realpath/symlink (O105 follow-up)
QiaolongLi1201 Oct 11, 2026
048aa1f
Merge pull request #102 from D-Robotics/fix/o107-credential-realpath
QiaolongLi1201 Oct 11, 2026
626ce49
fix(o108): wire O101 layer-3 protected-path snapshot to exec_backgrou…
QiaolongLi1201 Oct 11, 2026
f038a16
Merge pull request #103 from D-Robotics/fix/o108-exec-background-l3
QiaolongLi1201 Oct 11, 2026
8dc4448
fix(hooks): reject non-string Moss hook command at config load (O89) …
QiaolongLi1201 Oct 11, 2026
a8b3d65
fix(o109): soft Unverified exits 9 (ExitCode.INCOMPLETE) (#105)
QiaolongLi1201 Oct 11, 2026
ecb1077
docs(readme): note Unverified shares exit 9 with incomplete (O109 fol…
QiaolongLi1201 Oct 11, 2026
5944465
fix(config): register MOSS_TOOL_LOOP_SAME_COMMAND_LIMIT in config env…
QiaolongLi1201 Oct 11, 2026
35c5271
fix(run-completion): EN/ZH claim parity (O110) (#107)
QiaolongLi1201 Oct 11, 2026
4470dbb
fix(run-outcome): omit stuck unknown; fill concrete class (O111) (#109)
QiaolongLi1201 Oct 11, 2026
3978c5d
fix(ui): O91 Chinese display names for Moss-format hook events (#110)
QiaolongLi1201 Oct 11, 2026
048d097
fix(O100): end Node gate output with upgrade + reinstall next steps (…
QiaolongLi1201 Oct 11, 2026
44d4cf4
fix(run-outcome): 被拦 wording + progress tracker (O113) (#111)
QiaolongLi1201 Oct 11, 2026
0bf1c69
fix(provider): O114 retry mid-stream stalls; inter-event idle default…
QiaolongLi1201 Oct 12, 2026
6407f90
fix(run-outcome): zh budget-exceeded tail without English sentence (O…
QiaolongLi1201 Oct 12, 2026
99f4256
fix(safety): O103 pre-block dangling symlinks, curl/wget output, git …
QiaolongLi1201 Oct 12, 2026
e0ea7be
fix(o106): treat Windows exit 9009 as start_failure like 127 (#116)
QiaolongLi1201 Oct 12, 2026
a8cd1d8
fix(run-outcome): O121 every safety refusal → Incomplete exit 9 'Bloc…
QiaolongLi1201 Oct 12, 2026
3bbe3dd
fix(run-completion): O121 unrecognized pre-blocks (Unknown tool …) ar…
QiaolongLi1201 Oct 12, 2026
b5d800f
test(O121): win32 9009 loop-guard stop → stuck at exec 未能启动, not Blocked
QiaolongLi1201 Oct 12, 2026
ad58a7d
docs(readme): split the bilingual README into zh main + README.en.md
QiaolongLi1201 Oct 12, 2026
68867e2
fix(O121): json/stream-json loop-guard stop → exit 9, error_during_ex…
QiaolongLi1201 Oct 12, 2026
95940cb
Merge remote-tracking branch 'drobotics/main' into o121-safety-blocks
QiaolongLi1201 Oct 12, 2026
222171d
fix(O121): json/stream-json fail from resolveRunOutcome (exitCode≠0) …
QiaolongLi1201 Oct 12, 2026
5f469ef
test: de-flake git-spawn fixture; win32 portability for exec-git-conf…
QiaolongLi1201 Oct 12, 2026
0fba038
test: correct win32 hooks skip reason (POSIX-only assertions; win32 c…
QiaolongLi1201 Oct 12, 2026
2180d06
test: report win32 hooks partial skip via t.skip instead of silent pass
QiaolongLi1201 Oct 12, 2026
4685087
test runner: under CI run all files and summarize failures; local sta…
QiaolongLi1201 Oct 12, 2026
c847e20
test(readme): assert zh README.md and en README.en.md separately afte…
QiaolongLi1201 Oct 12, 2026
aae469a
moss-self: O65 assert background pid parses before exit check
QiaolongLi1201 Oct 12, 2026
7973ebe
fix(safety): O129 realpath workspace/HOME in script scan and protecte…
QiaolongLi1201 Oct 12, 2026
757820e
test(O129): -p process-level deny for symlinked/outside-workspace scr…
QiaolongLi1201 Oct 12, 2026
c2cebd3
Merge pull request #121 from D-Robotics/fix/readme-split-tests
QiaolongLi1201 Oct 12, 2026
5619d65
merge drobotics/main (c2cebd31 / #121) into ci-tests-fix
QiaolongLi1201 Oct 12, 2026
be60d88
Merge remote-tracking branch 'drobotics/main' into o121-safety-blocks
QiaolongLi1201 Oct 12, 2026
f1f161d
merge drobotics/main (c2cebd31 / #121) into o129-symlink-workspace-scan
QiaolongLi1201 Oct 12, 2026
1705d9e
Merge pull request #118 from D-Robotics/o121-safety-blocks
QiaolongLi1201 Oct 12, 2026
abfc532
merge drobotics/main (1705d9ef / #118) into ci-tests-fix
QiaolongLi1201 Oct 12, 2026
c7bd5cc
merge drobotics/main (1705d9ef / #118) into o129-symlink-workspace-scan
QiaolongLi1201 Oct 12, 2026
b4169ab
fix(O128,O122): partial-read edit gate holds on retry; read_file neve…
QiaolongLi1201 Oct 12, 2026
78983ad
fix(O128): QA review — shell lock resolves $PWD/$(pwd)/`pwd`/$VAR tar…
QiaolongLi1201 Oct 12, 2026
ec25a2f
fix(O128): refuse whole-file write_file over a file whose full read w…
QiaolongLi1201 Oct 12, 2026
8af70fc
feat(O128): gate-type blocks (partial-read, truncated write) are reso…
QiaolongLi1201 Oct 12, 2026
44df2d7
fix(runtime): avoid redundant terminal and task probes
1-ztc Oct 12, 2026
f2d39e0
merge drobotics/main (1705d9ef / #118) into moss-self/s1-o65-glm-5.3
QiaolongLi1201 Oct 12, 2026
5bacf1c
fix(O128): unresolved resolvable gate blocks use 「还没改」 last line, nev…
QiaolongLi1201 Oct 12, 2026
645359a
Merge pull request #127 from D-Robotics/o128-partial-read-retry
QiaolongLi1201 Oct 12, 2026
ac51c4f
Merge pull request #125 from D-Robotics/moss-self/s1-o65-glm-5.3
QiaolongLi1201 Oct 12, 2026
9f2f8db
Merge remote-tracking branch 'origin/main' into o129-merge-main
QiaolongLi1201 Oct 12, 2026
4d3743e
test(tui): preserve rejecting fixture without lint suppression
1-ztc Oct 12, 2026
582f041
Merge pull request #123 from D-Robotics/o129-symlink-workspace-scan
QiaolongLi1201 Oct 12, 2026
620eebd
Merge remote-tracking branch 'drobotics/main' into ci-tests-fix
QiaolongLi1201 Oct 12, 2026
70d1549
test: preserve native Windows fixture execution and cleanup
1-ztc Oct 12, 2026
47ca28d
fix(safety): O117 L3 .git/config allow-list (fail-closed), watch conf…
QiaolongLi1201 Oct 12, 2026
e5d1579
fix(safety): O117 allow remote/branch upstream leaves and https/ssh/s…
QiaolongLi1201 Oct 12, 2026
218ffba
fix(safety): O117 check branch.*.remote by value (name, '.', or safe …
QiaolongLi1201 Oct 12, 2026
e37c968
fix(safety): O123 L3 path allow-list for ordinary git commit/checkout…
QiaolongLi1201 Oct 12, 2026
22b0888
fix(safety): O127 L3 snapshot follows linked-worktree .git file to gi…
QiaolongLi1201 Oct 12, 2026
1dee510
fix(safety): O127 pre-check no longer treats a bare cd operand (works…
QiaolongLi1201 Oct 12, 2026
971994a
fix(safety): O127 cd exemption only when target realpath is the works…
QiaolongLi1201 Oct 12, 2026
3ec69ed
fix(safety): O127 cancel workspace-root cd exemption after a second d…
QiaolongLi1201 Oct 12, 2026
e056e2b
Merge pull request #117 from D-Robotics/fix/o117-git-config-l3-precise
QiaolongLi1201 Oct 12, 2026
de60df8
Merge pull request #122 from D-Robotics/fix/o123-git-commit-l3
QiaolongLi1201 Oct 12, 2026
4407b4d
Merge pull request #124 from D-Robotics/fix/o127-linked-worktree-exec…
QiaolongLi1201 Oct 12, 2026
7d019e7
merge drobotics/main (4407b4d4 / #117 #122 #124) into ci-tests-fix
QiaolongLi1201 Oct 12, 2026
cb88c19
fix: reject dangling runtime gitignore entries before creation
1-ztc Oct 12, 2026
a55216f
Merge pull request #119 from D-Robotics/ci-tests-fix
QiaolongLi1201 Oct 12, 2026
2d4777c
test: recognize exact public endpoint in locale oracle
1-ztc Oct 12, 2026
d9667e0
O130: block pwsh/cmd writes into Moss config dir via env vars (P1 sec…
QiaolongLi1201 Oct 12, 2026
99ed396
moss-self: O74 device-bench sweeps stale temp dirs on startup (#126)
QiaolongLi1201 Oct 12, 2026
5e41ca3
test: await event-triggered task artifact refresh
1-ztc Oct 12, 2026
1f08971
ci: make Test blocking again; add Test summary gate job (CI gate part…
QiaolongLi1201 Oct 12, 2026
bd50e65
Merge remote-tracking branch 'origin/codex/studio-public-sdk-20261010…
QiaolongLi1201 Oct 12, 2026
e5c6803
Merge remote-tracking branch 'origin/codex/studio-public-sdk-20261010…
QiaolongLi1201 Oct 12, 2026
28e7d63
fix(goal-verify): keep non-zero ProcessError a rejection so FAIL/one-…
QiaolongLi1201 Oct 12, 2026
f9c79c9
test(goal-verify): expect honest non-zero exit and the re-verify pass…
QiaolongLi1201 Oct 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 103 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ on:
branches:
- main

permissions:
contents: read

jobs:
check:
name: Check
Expand All @@ -29,8 +32,6 @@ jobs:
test:
name: Test (${{ matrix.os }}, node ${{ matrix.node }})
runs-on: ${{ matrix.os }}
# Non-blocking for now (team decision 2026-10-11): failures stay visible but do not gate merges. Check stays blocking.
continue-on-error: true
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -71,6 +72,13 @@ jobs:
|| python3 -m pip install --user --break-system-packages pyte
python3 -c 'import pyte'

- name: Install real Windows ConPTY test driver
if: runner.os == 'Windows'
run: |
python --version
python -m pip install --only-binary=:all: pywinpty==3.0.5
python -c "from winpty import Backend, PtyProcess; print(Backend.ConPTY)"

- name: Test (build + spec suite)
env:
MOSS_SKIP_PY_LAYOUT: ${{ runner.os == 'Windows' && '1' || '' }}
Expand All @@ -80,14 +88,29 @@ jobs:
if: runner.os != 'Windows'
run: npm run smoke

# Record this leg's outcome for the Test summary gate (see test-summary).
- name: Record leg result
if: always()
shell: bash
run: |
mkdir -p leg-result
echo "${{ matrix.os }} node ${{ matrix.node }}: ${{ job.status }}" > leg-result/result.txt
cat leg-result/result.txt

- name: Upload leg result
if: always()
uses: actions/upload-artifact@v4
with:
name: test-leg-${{ matrix.os }}-${{ matrix.node }}
path: leg-result/result.txt
retention-days: 7

# Not part of the OS matrix. Ubuntu runners ship tmux and macOS runners ship
# GNU screen, but those sessions do not meet the composer check (and Windows
# has neither tool). This job installs the tools and opts in.
real-terminals:
name: Real terminals (Linux)
runs-on: ubuntu-latest
# Non-blocking for now (team decision 2026-10-11): failures stay visible but do not gate merges. Check stays blocking.
continue-on-error: true
timeout-minutes: 20
steps:
- name: Checkout
Expand Down Expand Up @@ -121,8 +144,6 @@ jobs:
install-e2e:
name: Install e2e (${{ matrix.os }}, npm 10)
runs-on: ${{ matrix.os }}
# Non-blocking for now (team decision 2026-10-11): failures stay visible but do not gate merges. Check stays blocking.
continue-on-error: true
timeout-minutes: 30
strategy:
fail-fast: false
Expand Down Expand Up @@ -158,8 +179,6 @@ jobs:
windows-shell:
name: Windows shell (pwsh 7)
runs-on: windows-latest
# Non-blocking for now (team decision 2026-10-11): failures stay visible but do not gate merges. Check stays blocking.
continue-on-error: true
timeout-minutes: 20
steps:
- name: Checkout
Expand All @@ -182,7 +201,82 @@ jobs:
run: |
$major = $PSVersionTable.PSVersion.Major
if ($major -lt 7) { throw "runner pwsh $major is older than 7" }
node --input-type=module -e "import { resolveHostShell } from './dist/utils/host-shell.js'; const shell = resolveHostShell(); if (shell.kind !== 'pwsh') { console.error(shell); process.exit(1); } console.log(shell.kind + ' ' + shell.executable);"
node scripts/check-windows-host-shell.mjs

- name: Host shell and write-sandbox specs
run: node test/host-shell.spec.mjs && node test/shell-write-sandbox.spec.mjs

# Single required status for branch protection.
# Rule (Boss decision on #120, 2026-10-12): Test summary fails if Check fails
# or if any ubuntu-latest / macos-latest Test leg did not succeed (failure,
# cancelled, or no recorded result). windows-latest legs are REPORTED here
# but do NOT block yet: 25 spec files fail on Windows on main (tracked in
# specs/windows-25-tests.md, each to be fixed or explicitly skipped).
#
# Windows becomes blocking AUTOMATICALLY (deadline for #120 / Goal 4, O134):
# when the run date in UTC+8 (Asia/Shanghai) is after 2026-10-15, i.e. from
# 2026-10-16 00:00 UTC+8, Windows Test failures fail Test summary. No manual
# flip needed.
# Manual override via WINDOWS_BLOCKING:
# 'auto' (default) date-based rule above
# 'true' block on Windows now, regardless of date
# 'false' never block on Windows. Emergency only: requires a Boss decision
# and a ticket number in the commit; do not extend silently.
test-summary:
name: Test summary
if: always()
needs:
- check
- test
runs-on: ubuntu-latest
env:
WINDOWS_BLOCKING: 'auto' # auto | true | false (see comment above)
WINDOWS_BLOCKING_AFTER: '20261015' # YYYYMMDD, UTC+8; blocking when run date > this
steps:
- name: Download leg results
uses: actions/download-artifact@v4
continue-on-error: true
with:
pattern: test-leg-*
path: legs

- name: Gate on Check + Test (Windows blocking after 2026-10-15 UTC+8)
env:
CHECK_RESULT: ${{ needs.check.result }}
TEST_RESULT: ${{ needs.test.result }}
run: |
fail=0
run_date=$(TZ=Asia/Shanghai date +%Y%m%d)
case "$WINDOWS_BLOCKING" in
true|false) win_block=$WINDOWS_BLOCKING; win_src=manual ;;
*) if [ "$run_date" -gt "$WINDOWS_BLOCKING_AFTER" ]; then win_block=true; else win_block=false; fi; win_src="auto(date=$run_date UTC+8, after=$WINDOWS_BLOCKING_AFTER)" ;;
esac
WINDOWS_BLOCKING=$win_block
echo "windows_blocking source: $win_src"
echo "check=$CHECK_RESULT test(matrix overall)=$TEST_RESULT windows_blocking=$WINDOWS_BLOCKING"
[ "$CHECK_RESULT" = success ] || { echo "::error::Check: $CHECK_RESULT"; fail=1; }
{
echo "## Test summary"
echo "Blocking: Check, ubuntu-latest, macos-latest. Windows blocking: $WINDOWS_BLOCKING ($win_src; auto-blocking after 2026-10-15 UTC+8)."
echo
echo "| Leg | Result | Blocking |"
echo "|---|---|---|"
} >> "$GITHUB_STEP_SUMMARY"
for os in ubuntu-latest macos-latest windows-latest; do
for node in 22.16.0 24; do
f="legs/test-leg-$os-$node/result.txt"
if [ -f "$f" ]; then r=$(awk '{print $NF}' "$f"); else r=missing; fi
blocking=yes
if [ "$os" = windows-latest ] && [ "$WINDOWS_BLOCKING" != true ]; then blocking=no; fi
echo "$os node $node: $r (blocking=$blocking)"
echo "| $os node $node | $r | $blocking |" >> "$GITHUB_STEP_SUMMARY"
if [ "$r" != success ]; then
if [ "$blocking" = yes ]; then
echo "::error::Test ($os, node $node): $r"; fail=1
else
echo "::warning::Test ($os, node $node): $r (non-blocking: $win_src)"
fi
fi
done
done
exit $fail
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
## 仓库身份

Moss 是一个精简的跨平台 coding agent harness:TypeScript / ESM 单包仓库(根 `package.json`,
包名 `moss`,bin 为 `dist/cli.js`),Node ≥ 22.16.0,运行于 Linux / macOS / Windows。
包名 `@rdk-moss/agent`,bin 为 `dist/cli.js`),Node ≥ 22.16.0,运行于 Linux / macOS / Windows。

核心能力(也是唯一应当存在的范围):agent loop、工具框架(`src/tools/`)、上下文管理
(`src/context/`)、provider(`src/provider/`)、安全(`src/safety/`)、会话
Expand Down
Loading
Loading