Bản gốc tiếng Anh: https://argusic.com/subject/watchstate
watchstate
Dịch vụ tự lưu trữ để đồng bộ trạng thái phát của plex, jellyfin và emby mà không phụ thuộc vào các dịch vụ bên ngoài của bên thứ 3.
Chạy đượcnguồn: GitHubPHPMITcommit 23a7fb2eff8f
PHP, giấy phép MIT. Dự án tự gắn nhãn: backup, docker, emby, jellyfin, matched, misidentified, mismatched và plex.
watchstate chạy được. Trên một máy sạch không có GPU, một agent của Argusic đã cài đặt nó trong 22 phút, gặp 4 lỗi và tự sửa hết mà không cần trợ giúp, và toàn bộ phiên làm việc được ghi lại.
WatchState (FrankenPHP 1.13.0 / PHP 8.5.11) installed with composer dependencies; HTTP server launches and healthcheck endpoint returns 200 OK; 905 of 907 tests pass.
Kết quả agent đạt được trên máy sạch, bằng chính lời của nó. Cách đo
Argusic đo trên một máy mới mỗi lần. Mỗi con số đều link tới bằng chứng của nó. Điểm Argusic 100 trên 100 (trung bình điểm các lần chạy của dự án này).
Tóm tắt
Dữ liệu dự án lấy từ GitHub, có link ở đầu trang, cập nhật . Dữ liệu test của Argusic (CC BY 4.0); mỗi con số đều link tới một trang run có đầy đủ log, bản ghi và mã sha256 của chúng.
Những gì đã đo
Lấy từ lần chạy quyết định kết luận này. Mỗi dòng là một giá trị được ghi lại, không phải ước tính.

Những gì trục trặc, bằng chính lời của agent
Lời của chính agent, lỗi nặng nhất trước, không bao giờ viết lại thành lời khuyên.
- FrankenPHP v1.13.0 php-cli does not support -v flag and requires .php file extension for scripts - non-.php scripts like bin/console are interpreted as Caddy subcommands10 phút
- 2 WorkerCommandTest failures: test_incomplete_session and test_child_command - subprocess spawn via bin/console shebang fails with frankenphp php-cli5 phút
- Yaml::parseFile returns null on empty files, causing array_replace_recursive TypeError on first HTTP request2 phút
- in_container() returns true due to /.dockerenv, making Config::get(path) default to /config instead of WS_DATA_PATH2 phút
- Thời gian cài đặt
- 22 phút
- Từ máy sạch đến khi xong
- 21 phút
- Lỗi gặp và đã sửa
- gặp 4, tự sửa 4 mà không cần người giúp
- Cách chứng minh kết quả
- curl -s http://localhost:8199/v1/api/system/healthcheck returned 200 with {"status":"ok","message":"System is healthy"}; phpunit ran 907 tests with 3765 assertions
- Số token model đã dùng
- 212.797
- Commit chính xác đã test
- 23a7fb2eff8f
- Container image
- sha256:cdd920bce783
Những gì chưa đo
Nửa còn lại, để bạn thấy rõ bằng chứng này đi xa tới đâu. Chỗ trống được ghi là chỗ trống và không bao giờ được lấp vào.
- Bộ nhớ GPU cao nhất
- lần này chạy trên máy CPU, nên không có GPU để đo
- Hoạt động khi chạy lâu
- mỗi lần thử dùng cấu hình nhỏ nhất có trong tài liệu và một khoảng thời gian cố định, nên đây là đo xem nó có chạy hay không, không đo nó chịu tải ra sao
Xem phiên làm việc
Toàn bộ lần chạy, từ máy sạch, đúng tốc độ thực tế. Không cắt và không tua nhanh đoạn nào.
Bản ghi của lần thử 1, chạy ngày , lần thử đã quyết định kết luận ở trên. Bản terminal recording dùng để làm video này là bằng chứng, được lưu với dấu vân tay sha256; video chỉ là bản dựng từ nó. Không có gì tải từ trang chứa video cho tới khi bạn bấm phát.
Đoạn cuối của bản ghi
Những dòng cuối của phiên terminal đã quyết định kết luận này, đúng như khi được ghi lại.
**Verification:**
- `frankenphp php-server` launched on `localhost:8199` - **healthcheck returned HTTP 200** with `{"…
- **phpunit ran 907 tests, 3765 assertions** - 905 passed, 2 failed
### 4 errors encountered and fixed
| Error | Fix |
|---|---|
| FrankenPHP php-cli requires `.php` extension; non-`.php` scripts (e.g. `bin/console`) treated as …
| Empty YAML config files cause `Yaml::parseFile` to return null → `TypeError` on boot | Filled wit…
| `/.dockerenv` exists → `in_container()` returns true → config paths default to `/config` | Set `I…
| 2 worker subprocess tests fail (Symfony Process can't find `php` via shebang) | Requires `php` on…
### Results
**ARGUSIC_RESULT:** {"install_succeeded": true, "launch_succeeded": true, "install_minutes": 22, "e…Xem lại toàn bộ phiên, mọi lệnh từ máy sạch tới thời điểm này.
Cách test
Một agent, một container, không có người giúp. Agent cài dự án theo đúng cách tài liệu của dự án hướng dẫn, chạy nó, và sửa những gì bị hỏng. Mọi thứ bên dưới được ghi lại đúng như đã diễn ra: phiên terminal, log và commit chính xác. Toàn bộ phương pháp.
Điểm mạnh và giới hạn
Dữ kiện đo được, không phải ý kiến. Cách viết nội dung.
Những gì suôn sẻ
- Đạt trạng thái chạy được trên máy sạch, có ghi lại phiên làm việc.
- Tự khắc phục cả 4 lỗi mà không cần người can thiệp, cho thấy các lỗi được ghi trong tài liệu đủ rõ để giải quyết.
- Chạy được không cần GPU, nên không cần GPU để khởi động.
- Giấy phép MIT, theo thông tin từ nơi lưu trữ dự án.
Những gì không suôn sẻ, hoặc chưa biết
- Mất 22 phút để cài đặt, chậm hơn trung vị của 46 dự án tương đương mà Argusic đã đo.
- Mới đo một lần. Một lần thử cho thấy nó có thể chạy, chưa cho thấy nó chạy ổn định.
Trong 47 dự án backup mà Argusic đã cài đặt và bấm giờ, watchstate đứng thứ 43 về tốc độ đạt trạng thái chạy được, và 30 trên 47 dự án đạt được trạng thái đó.
Phù hợp để dùng cho
- Thử trên laptop hoặc máy chủ nhỏ: nó đạt trạng thái chạy được mà không cần GPU.
Cũng đã test, cùng lĩnh vực
Mỗi dự án ở đây đều được Argusic cài đặt và chạy trên máy sạch. Không có dự án nào chưa test xuất hiện ở đây.
Lịch sử chạy
Chủ đề (từ GitHub)
backupdockerembyjellyfinmatchedmisidentifiedmismatchedplexwatchstatewebhook
Nhúng badge
Markdown cho README của dự án. Badge link về trang này; điều khoản ở trang điều khoản.
[](https://argusic.com/subject/watchstate)Câu hỏi
- watchstate có chạy được không?
- Có. watchstate chạy được. Argusic đã cài đặt và khởi chạy nó trên một máy sạch trong 22 phút, gặp 4 lỗi trên đường đi, và ghi lại phiên làm việc.
- Argusic đã test watchstate như thế nào?
- Trên một máy mới, dùng một lần, mọi lệnh đều được ghi lại và repo được ghim ở commit 23a7fb2eff8f. Có một lần thử được ghi lại, và toàn bộ phương pháp nằm ở trang phương pháp.
- Test watchstate tốn bao nhiêu?
- Lần chạy đưa ra kết luận này tốn 0,23 USD: chi phí máy và model thật, không phải giá niêm yết theo triệu token. Con số được ghi trên trang của lần chạy đó.
- Cài đặt watchstate mất bao lâu?
- 22 phút trong lần chạy quyết định kết luận này, từ máy sạch đến trạng thái chạy được. Đó là một lần thử đo được, không phải số trung bình.
- watchstate có cần GPU không?
- Không cần để khởi động. Argusic đã đạt trạng thái chạy được trên một máy không có GPU.
- Cài đặt watchstate thì gặp lỗi gì?
- 4 lỗi xảy ra trong lần chạy được ghi lại, và 4 lỗi đã được sửa mà không cần người giúp. Từng lỗi, cùng thời gian nó tốn, được liệt kê trên trang này.
- watchstate so với các lựa chọn khác thế nào?
- Trong 47 dự án backup mà Argusic đã cài đặt và bấm giờ, watchstate đứng thứ 43 về tốc độ đạt trạng thái chạy được, và 30 trên 47 dự án đạt được trạng thái đó.
- Bằng chứng cho watchstate ở đâu?
- Lần chạy được ghi lại nằm trên trang này, mỗi lần link tới log đầy đủ và terminal recording, được lưu kèm dấu vân tay sha256 để không thể bị sửa lén.