dodo-mcp 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/docs/AI_PROVIDERS.md +1 -1
- package/docs/ARCHITECTURE.md +16 -0
- package/docs/RELEASE_1.0.1.md +46 -0
- package/docs/RELEASE_NOTES.md +24 -0
- package/docs/SECURITY.md +12 -0
- package/docs/TEST_REPORT.md +23 -2
- package/docs/WINDOWS.md +1 -1
- package/docs/adr/030-windows-native-candidate.md +10 -8
- package/docs/adr/043-trusted-self-hosted-platform-gates.md +21 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# DODO MCP
|
|
2
2
|
|
|
3
|
-
**DODO MCP 1.0.
|
|
3
|
+
**DODO MCP 1.0.1** คือ MCP server แบบ local-first สำหรับให้ AI ช่วยพัฒนา software โดยทำงานกับ workspace ที่เจ้าของเลือก ค่าเริ่มต้นเป็นโหมดส่วนตัวแบบเพิ่มโปรเจกต์แล้วใช้ได้ทันที และยังมีโหมด managed สำหรับแยก workspace ACL/trust แบบละเอียด
|
|
4
4
|
|
|
5
5
|
## จุดเด่น
|
|
6
6
|
|
package/docs/AI_PROVIDERS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# AI Providers, Sub-agents และหลายโปรเจกต์
|
|
2
2
|
|
|
3
|
-
DODO MCP 1.0.
|
|
3
|
+
DODO MCP 1.0.1 สามารถเปิด runtime ของหลายโปรเจกต์ใน process เดียว และเรียกโมเดลจาก backend ผ่าน connection/profile ที่เจ้าของเลือกได้ ค่าเริ่มต้นเป็นโหมดส่วนตัว: เพิ่มโปรเจกต์, connection และ profile แล้วใช้งานได้ทันทีโดยไม่ต้องทำ allowlist ซ้ำ
|
|
4
4
|
|
|
5
5
|
## เริ่มใช้งานผ่านเว็บ
|
|
6
6
|
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# DODO MCP — Architecture
|
|
2
2
|
|
|
3
|
+
## Platform evidence
|
|
4
|
+
|
|
5
|
+
`release-gate.mjs` collects separate core/packaging JSON reports from `test:all`,
|
|
6
|
+
validates their assertion counts, and binds the run to HEAD, dependency lock and
|
|
7
|
+
a fingerprint of code/tests/gate inputs (including untracked candidate files).
|
|
8
|
+
The fingerprint excludes generated dist/schemas and documentation; it is checked
|
|
9
|
+
again at completion. Docker also checks the actual copied inputs against the host
|
|
10
|
+
fingerprint. A dirty candidate remains ineligible for a clean release claim.
|
|
11
|
+
|
|
12
|
+
Private command capture is shared by the release gate and Linux Docker driver.
|
|
13
|
+
`gate-summary.mjs` writes a separate allowlisted public summary; it never rewrites
|
|
14
|
+
the authoritative private report or promotes manual acceptance. Evidence output
|
|
15
|
+
directories cannot reuse old gate/test reports. Linux images require real ffmpeg
|
|
16
|
+
and eSpeak coverage; absence of those prerequisites is a gate failure, while
|
|
17
|
+
Whisper/interactive desktop remain explicitly separate gates.
|
|
18
|
+
|
|
3
19
|
## Overview
|
|
4
20
|
|
|
5
21
|
DODO แบ่งเป็น data plane สำหรับ MCP tools และ owner control plane สำหรับ Local Config/CLI ทั้งสอง plane ใช้ state และ workspace lifecycle เดียวกัน แต่ public MCP ไม่มี admin endpoint
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# DODO MCP 1.0.1
|
|
2
|
+
|
|
3
|
+
Patch release นี้ปรับความน่าเชื่อถือของ platform/release gates โดยไม่เปลี่ยน runtime
|
|
4
|
+
หรือ API contract จาก 1.0.0 ระบบ multi-project, AI provider/profile, owner web workspace
|
|
5
|
+
และ Sub-agent controls ยังคงทำงานตาม contract เดิม และไม่เปลี่ยน security authority
|
|
6
|
+
ของ OAuth, project ACL, workspace ID/epoch, trust, approval, path/secret guard,
|
|
7
|
+
expected hash หรือ command sandbox
|
|
8
|
+
|
|
9
|
+
## สิ่งที่เปลี่ยน
|
|
10
|
+
|
|
11
|
+
- เพิ่ม Linux media, tunnel credential และ gate-evidence regression tests
|
|
12
|
+
- ทำ source fingerprint และ persistent Windows checkout ให้ deterministic แม้ runner
|
|
13
|
+
เคยใช้ CRLF policy ต่างจาก repository
|
|
14
|
+
- ตรวจ canonical tracked bytes และ clean index ก่อนเริ่ม Windows gate
|
|
15
|
+
- เก็บ sanitized gate summary ใน log เมื่อ GitHub artifact quota เต็ม โดยไม่ทำให้
|
|
16
|
+
artifact upload กลายเป็นตัวตัดสินผล test
|
|
17
|
+
|
|
18
|
+
## ติดตั้งและอัปเดต
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm install -g dodo-mcp@1.0.1
|
|
22
|
+
dodo --version
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
หลังอัปเดตให้ restart process ที่กำลังรันอยู่ และให้ MCP client rescan/recreate connection
|
|
26
|
+
หาก client เก็บ tool catalog เดิมไว้
|
|
27
|
+
|
|
28
|
+
## Tool surface
|
|
29
|
+
|
|
30
|
+
- HTTP ใช้ Compact 19 tools เป็นค่าเริ่มต้น
|
|
31
|
+
- STDIO ใช้ Full 121 tools เป็นค่าเริ่มต้น
|
|
32
|
+
- เมื่อเจ้าของเปิด Sub-agent MCP exposure แล้ว Full เป็น 125 tools
|
|
33
|
+
- Hybrid คง 49 tools
|
|
34
|
+
|
|
35
|
+
การซ่อนหรือเปิด Sub-agent operations เปลี่ยนเฉพาะ catalog exposure ไม่เพิ่ม OAuth scope,
|
|
36
|
+
project ACL, trust, profile authority หรือ approval
|
|
37
|
+
|
|
38
|
+
## ผลตรวจอัตโนมัติ
|
|
39
|
+
|
|
40
|
+
- macOS Node 22: core 669 ผ่าน, packaging 16/16, audit 0, benchmark 7/7 และ fresh install ผ่าน
|
|
41
|
+
- Windows native Node 22 และ 24: core 671 ผ่านต่อรุ่น, packaging 16/16, audit 0,
|
|
42
|
+
benchmark 7/7 และ fresh install ผ่าน
|
|
43
|
+
- Linux Docker ใช้หลักฐาน gate ที่ผ่านก่อนหน้า; release follow-up นี้ไม่ได้รัน Linux ซ้ำ
|
|
44
|
+
|
|
45
|
+
ผล live provider, external MCP client และ Windows desktop permission จริงยังเป็น
|
|
46
|
+
`MANUAL_NOT_RUN` จนกว่าเจ้าของจะทดสอบด้วย credential และ environment จริง
|
package/docs/RELEASE_NOTES.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# DODO MCP — Release Notes
|
|
2
2
|
|
|
3
|
+
## 1.0.1
|
|
4
|
+
|
|
5
|
+
### Platform และ release hardening
|
|
6
|
+
|
|
7
|
+
- เพิ่ม Linux Docker gate และ Windows native self-hosted gates สำหรับ Node 22/24
|
|
8
|
+
- ทำ Windows checkout/fingerprint ให้ deterministic เมื่อ runner ถูกใช้ซ้ำและมีนโยบาย
|
|
9
|
+
CRLF ต่างจาก repository โดยตรวจ tracked tree ให้สะอาดก่อนเริ่ม gate
|
|
10
|
+
- release gate ตรวจ typecheck, lint, core/security/compatibility, packaging, production
|
|
11
|
+
dependency audit, DodoBench และ fresh exact-tarball install
|
|
12
|
+
- เพิ่ม regression tests สำหรับ Linux media, tunnel credential handling และการจัดการ
|
|
13
|
+
gate evidence โดยไม่เปลี่ยน runtime/API contract จาก 1.0.0
|
|
14
|
+
- ไม่มีการลด OAuth, project ACL, workspace context, approval, path/secret guard,
|
|
15
|
+
expected-hash conflict protection หรือ command sandbox
|
|
16
|
+
|
|
17
|
+
## วิธีอัปเดตเป็น 1.0.1
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm install -g dodo-mcp@1.0.1
|
|
21
|
+
dodo --version
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
หลังติดตั้งให้ restart DODO process และ rescan/recreate MCP connection เมื่อ client cache
|
|
25
|
+
tool catalog เดิม
|
|
26
|
+
|
|
3
27
|
## 1.0.0
|
|
4
28
|
|
|
5
29
|
### Global launcher และ interactive CLI
|
package/docs/SECURITY.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# DODO MCP — Security
|
|
2
2
|
|
|
3
|
+
## Release evidence privacy
|
|
4
|
+
|
|
5
|
+
The DODO release-gate and Linux Docker-driver scripts capture child stdout/stderr and failure diagnostics in private
|
|
6
|
+
ignored logs. CI readiness does not dump Docker/host details. Only an explicitly
|
|
7
|
+
allowlisted `public-summary.json` is uploaded, with seven-day retention: revision,
|
|
8
|
+
lock/code fingerprint, platform/architecture/Node, step exit codes, test counts
|
|
9
|
+
including skips, audit counts and package hashes. Arbitrary error messages,
|
|
10
|
+
command arguments, test names, owner paths and runner identity are not copied.
|
|
11
|
+
Raw evidence is not suitable for public upload. GitHub's automatic Set up job
|
|
12
|
+
machine-name output and previously published logs require separate owner action;
|
|
13
|
+
these changes do not erase historical disclosures.
|
|
14
|
+
|
|
3
15
|
## Security model
|
|
4
16
|
|
|
5
17
|
DODO ใช้หลายชั้นร่วมกัน:
|
package/docs/TEST_REPORT.md
CHANGED
|
@@ -2,7 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
## Scope
|
|
4
4
|
|
|
5
|
-
รายงานนี้ใช้กับ DODO MCP 1.0.
|
|
5
|
+
รายงานนี้ใช้กับ DODO MCP 1.0.1 source และแยกผล automated กับ manual อย่างชัดเจน
|
|
6
|
+
|
|
7
|
+
## Release 1.0.1 platform gate — 2026-09-15
|
|
8
|
+
|
|
9
|
+
- macOS local, Node 22: **AUTOMATED_PASS** — core 669 passed / 0 failed / 34 skipped,
|
|
10
|
+
packaging 16/16, production audit 0 vulnerabilities, DodoBench 7/7 และ fresh
|
|
11
|
+
exact-tarball install ผ่าน
|
|
12
|
+
- Windows native self-hosted, Node 22: **AUTOMATED_PASS** — core 671 passed / 0 failed /
|
|
13
|
+
32 skipped, packaging 16/16, production audit 0 vulnerabilities, DodoBench 7/7
|
|
14
|
+
และ fresh install ผ่าน
|
|
15
|
+
- Windows native self-hosted, Node 24: **AUTOMATED_PASS** — core 671 passed / 0 failed /
|
|
16
|
+
32 skipped, packaging 16/16, production audit 0 vulnerabilities, DodoBench 7/7
|
|
17
|
+
และ fresh install ผ่าน
|
|
18
|
+
- Linux Docker: ใช้หลักฐาน gate ที่ผ่านก่อนหน้าและไม่มี runtime source เปลี่ยนหลังจากนั้น;
|
|
19
|
+
release นี้ไม่ได้รัน Linux ซ้ำตามขอบเขต platform follow-up ที่เจ้าของกำหนด
|
|
20
|
+
- Windows manual acceptance บน desktop/permission จริงและ live AI providers:
|
|
21
|
+
**MANUAL_NOT_RUN**
|
|
22
|
+
|
|
23
|
+
Windows CI แก้ persistent-checkout line-ending drift โดยบังคับ canonical Git bytes และ
|
|
24
|
+
ตรวจ clean index ก่อนสร้าง source fingerprint ไม่มีการลด security assertion หรือข้าม
|
|
25
|
+
release gate ส่วน GitHub artifact upload อาจไม่เกิดเมื่อ storage quota เต็ม แต่ sanitized
|
|
26
|
+
summary ยังคงอยู่ใน job log และผล gate ไม่อาศัย artifact upload
|
|
6
27
|
|
|
7
28
|
## Optional Sub-agent MCP exposure — 2026-09-14
|
|
8
29
|
|
|
@@ -48,7 +69,7 @@ OAuth scope, ACL, trust, profile authority, approval หรือข้าม gu
|
|
|
48
69
|
|
|
49
70
|
## AI Providers / Multi-project — current source verification
|
|
50
71
|
|
|
51
|
-
วันที่ 2026-09-14 บน macOS, Node 22.23.2; source
|
|
72
|
+
วันที่ 2026-09-14 บน macOS, Node 22.23.2; source baseline ก่อน release 1.0.1
|
|
52
73
|
|
|
53
74
|
| Gate | ผล |
|
|
54
75
|
|---|---|
|
package/docs/WINDOWS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# DODO Windows Candidate — Deferred
|
|
2
2
|
|
|
3
|
-
DODO MCP 1.0.
|
|
3
|
+
DODO MCP 1.0.1 ยังไม่ประกาศ native Windows support โค้ดและ tests สำหรับ Windows
|
|
4
4
|
บางส่วนมีอยู่เป็น candidate สำหรับ phase สุดท้าย แต่ยังไม่มีหลักฐานจาก Windows 11 จริง
|
|
5
5
|
และ Linux Docker ไม่สามารถใช้แทนหลักฐาน Windows ได้
|
|
6
6
|
|
|
@@ -42,18 +42,20 @@ budget, never deleting a destination or clearing read-only attributes to force
|
|
|
42
42
|
a write. Preserve BOM and CRLF bytes in source edits.
|
|
43
43
|
|
|
44
44
|
OAuth, workspace/client ACLs, trust modes, per-action approvals, journals and
|
|
45
|
-
compact/hybrid/full exposure retain their existing authority.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
compact/hybrid/full exposure retain their existing authority. The current
|
|
46
|
+
candidate includes Windows sandbox integration with native status/confinement
|
|
47
|
+
receipt checks, a C# desktop helper and SAPI speech. These are optional backends:
|
|
48
|
+
missing prerequisites or required confinement must fail closed, not silently
|
|
49
|
+
run unsandboxed. Source availability is not proof of positive native acceptance;
|
|
50
|
+
see WINDOWS.md for outstanding Windows 11, desktop and confinement gates.
|
|
49
51
|
|
|
50
52
|
## Compatibility and rollout
|
|
51
53
|
|
|
52
54
|
The project keeps its current baseline while the Windows support status remains
|
|
53
|
-
EXPERIMENTAL until the proposal's native gates pass.
|
|
54
|
-
|
|
55
|
-
produce green results.
|
|
56
|
-
|
|
55
|
+
EXPERIMENTAL until the proposal's native gates pass. The current Windows Node
|
|
56
|
+
22/24 CI jobs fail the workflow on test failure; do not skip legacy assertions
|
|
57
|
+
to produce green results. A green automated workflow does not replace Windows 11
|
|
58
|
+
manual acceptance or by itself permit documentation to say supported.
|
|
57
59
|
|
|
58
60
|
The IPC protocol intentionally has no unauthenticated fallback. Owners
|
|
59
61
|
must stop running servers from the existing installation or terminal before
|
|
@@ -16,10 +16,17 @@ self-hosted runner มีความเสี่ยงต่อเครื่
|
|
|
16
16
|
ทุก job ใช้ `contents: read`, checkout ไม่ persist credentials และ action dependency
|
|
17
17
|
ถูก pin ด้วย full commit SHA
|
|
18
18
|
|
|
19
|
+
`push main` และ manual dispatch ค่าเริ่มต้นรันเฉพาะ Windows Node 22/24
|
|
20
|
+
ยอมรับผล Linux Docker ที่ตรวจในเครื่องได้โดยไม่บังคับทดสอบ Linux X64 ซ้ำ
|
|
21
|
+
หากต้องการ remote Linux เพิ่ม เจ้าของเลือก `platform=linux` หรือ `all`
|
|
22
|
+
ใน manual dispatch ได้ การเลือก job ไม่เปลี่ยนผลหรือ identity ของ evidence เดิม
|
|
23
|
+
|
|
19
24
|
Linux runner label `linux-ci` รัน release gate ภายใน Docker image เดิมบน Node 22/24
|
|
20
25
|
Windows runner label `windows-ci 02` รัน native candidate release gate บน Node 22/24
|
|
21
26
|
พร้อมตรวจ enabled Administrator token สำหรับ ACL tests ทั้งสอง job upload เฉพาะ
|
|
22
|
-
|
|
27
|
+
`public-summary.json` ที่สร้างด้วย explicit field allowlist และกำหนด retention
|
|
28
|
+
7 วัน ไม่ upload raw logs, runner identity, state หรือ evidence directory ทั้งชุด
|
|
29
|
+
ไม่มีขั้น publish npm
|
|
23
30
|
|
|
24
31
|
macOS ยังคงเป็น local release gate Strict release readiness ต้องมี macOS กับ Linux
|
|
25
32
|
evidence จาก clean revision และ dependency lock เดียวกัน Windows automated result
|
|
@@ -36,3 +43,16 @@ PR checks ภายหลังต้องใช้ disposable isolated runner
|
|
|
36
43
|
`.github/workflows/platform-gates.yml`, `scripts/test-linux-docker.mjs` และ
|
|
37
44
|
`scripts/release-gate.mjs` บันทึก platform, runner origin, revision, lock digest,
|
|
38
45
|
test/package/audit/fresh-install results โดยไม่เก็บ token
|
|
46
|
+
|
|
47
|
+
## Evidence/privacy update
|
|
48
|
+
|
|
49
|
+
Readiness ไม่ dump `docker info`; gate/Docker child diagnostics รวม error paths
|
|
50
|
+
เก็บเฉพาะใน private logs Public summary ไม่รับ error strings, command arguments,
|
|
51
|
+
test names หรือ host identity จากรายงานดิบ และตรวจ machine-test counts กับ
|
|
52
|
+
assertion results ก่อนรับรองผ่าน แต่ GitHub runner ยังแสดง Machine name ใน
|
|
53
|
+
Set up job ก่อน workflow steps; owner ต้องจัดการ hostname และ logs เก่าแยก
|
|
54
|
+
การเปลี่ยน source นี้ไม่ลบสิ่งที่เคยเผยแพร่แล้ว
|
|
55
|
+
|
|
56
|
+
Gate บันทึก code/test/gate fingerprint สำหรับ dirty candidate เพิ่มจาก HEAD/lock
|
|
57
|
+
และตรวจอีกครั้งตอนจบ Docker ตรวจ fingerprint ของไฟล์ที่ COPY จริงกับ host
|
|
58
|
+
ไม่ใช้ HEAD เดิมรับรอง uncommitted source คนละชุด และไม่เปลี่ยน release policy
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dodo-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"author": "Arthittakun",
|
|
5
5
|
"description": "DODO — local-first MCP server with multi-project coding, AI providers, sub-agents, context, memory, media and workflow tools; embedded OAuth and workspace permissions.",
|
|
6
6
|
"type": "module",
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"docs/RESOURCES.md",
|
|
40
40
|
"docs/RUNTIME.md",
|
|
41
41
|
"docs/RELEASE_1.0.0.md",
|
|
42
|
+
"docs/RELEASE_1.0.1.md",
|
|
42
43
|
"docs/RELEASE_NOTES.md",
|
|
43
44
|
"docs/SCHEDULES.md",
|
|
44
45
|
"docs/SECURITY.md",
|