Commit Graph
690 Commits
Author SHA1 Message Date
3c8578e9f4 feat(mcp): add Streamable HTTP transport (#736)
* feat(mcp): add Streamable HTTP transport

Add a modern MCP 2026-07-28 HTTP endpoint for standalone and Web modes, with shared listener configuration, authentication, schema, tests, and bilingual documentation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(tests): support Python 2 HTTP assertions

Normalize response header names and call handler methods through their underlying functions so the HTTP tests behave consistently on Python 2.7 and Python 3.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(mcp): harden HTTP request handling

Validate mirrored request IDs, align Config Studio listener checks, bound socket reads, and accept the binary wrapper's documented SIGINT exit status.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(mcp): align HTTP negotiation validation

Reject unavailable Accept media types by quality and keep schema host validation consistent with runtime listener checks.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(tests): validate host schema behavior

Assert accepted and rejected host samples instead of comparing Unicode escape representations that differ on Python 2.7.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(tests): avoid cross-engine schema regex

Keep the schema pattern contract without executing its ECMA-262 Unicode escape through Python 2's incompatible regex engine.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(mcp): validate HTTP request boundaries

Reject empty tokens and malformed JSON-RPC request shapes, and keep Config Studio bracket validation aligned with runtime listener handling.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(mcp): tighten HTTP input validation

Reject legacy notifications, nested host brackets, and document the required JSON content type so validation remains consistent across runtime, schema, and Config Studio.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(mcp): validate Origin before method errors

Apply the existing Origin policy to non-POST MCP requests and return CORS headers for configured allowed origins.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* docs(mcp): clarify proxy Origin allowlist

Explain that browser clients behind TLS termination must allowlist the public HTTPS origin even when the public page appears same-origin.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* docs(mcp): add standalone server guide

Move MCP client setup, transports, tools, security, and protocol limits into dedicated Chinese and English pages with matching navigation and index links.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(mcp): reject duplicate routing headers

Reject repeated MCP protocol, method, and name headers before body consistency checks across Python 2 and Python 3.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(mcp): validate named request headers

Validate Mcp-Name for tools/call, prompts/get, and resources/read before dispatching unsupported methods.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
v4.2.0
2026-08-23 21:36:26 +08:00
2501c4a1d8 ci(agent): add deterministic project checks (#735)
* feat(agent): define portable project development contract

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* ci(agent): add deterministic project checks

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(ci): isolate agent contract concurrency

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(ci): run complete agent contracts

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(agent): cover generated docs and drift reports

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(agent): close project contract coverage gaps

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(agent): harden change discovery contracts

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(agent): close final contract blind spots

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(agent): validate active provider surfaces

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(agent): enforce complete validation indexes

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(agent): reject stale provider overview rows

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(ci): validate all workflow changes

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(agent): keep validation inputs deterministic

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(agent): ignore deleted format targets

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(agent): ignore hidden provider inventories

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* perf(agent): deduplicate conservative checks

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-21 16:58:28 +08:00
08837bbd09 feat(agent): define portable project development contract (#734)
Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-21 14:02:26 +08:00
90e04b70bd test(http): handle wrapped network timeouts (#733)
* test(http): handle wrapped network timeouts

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* test(http): tighten network error classification

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-21 01:05:32 +08:00
CopilotandNewFuture 6b12670cca chore(ci): update Nuitka to 4.2 (#732)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
v4.2.0-beta2
2026-08-19 21:15:53 +08:00
dependabot[bot] e945f89c51 build(deps): bump actions/cache from 5 to 6 (#731)
Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-18 09:36:57 +08:00
dd16df78b7 ci(build): persist incremental compiler caches (#730)
* ci(build): persist compiler caches

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* ci(build): restrict compiler cache writes

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
v4.2.0-beta1
2026-08-17 14:13:55 +08:00
06c0e912f4 test(e2e): expand binary coverage (#727)
* test(e2e): expand binary coverage

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* ci(e2e): cap binary jobs at 10 minutes

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(e2e): stabilize binary matrix tests

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(ci): refresh cross-platform test images

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(ci): defer ARMv6 emulation until tests

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(ci): keep ARMv6 job within timeout

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-16 02:43:33 +08:00
6e3d3560c7 fix(http): bound external requests in CI tests (#726)
* fix(tests): handle endpoint timeouts in fallback

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(http): add configurable request timeout

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-15 22:23:27 +08:00
CopilotandNewFuture 27fa7f478d docs(agents): sync AGENTS.md structure with new ddns/mcp.py (#725)
* Initial plan

* docs(agents): sync AGENTS.md structure and metadata

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
2026-08-15 17:02:12 +08:00
CopilotandNewFuture 2e2daa50be Fix dashboard cache reads with small Windows mtime skew (#723)
* Initial plan

* fix(web): tolerate small cache timestamp skew

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

* fix(web): reject future cache timestamps

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

* test(web): cover future cache timestamps

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

* fix(web): tolerate small cache timestamp skew

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

* fix(test_web): keep cache fixture unicode-safe on Python 2.7

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
2026-08-14 17:50:59 +08:00
c919f2c6af feat(mcp): add dependency-free DDNS server (#722)
* feat(mcp): add dependency-free DDNS server

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(mcp): stop cancelled DDNS updates

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-13 17:25:47 +08:00
a05bedf000 docs(agents): document embedded web package (#721)
docs(agents): update web directory structure

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-12 17:42:56 +08:00
c30822bd33 test(e2e): cover source and binary workflows (#719)
* test(e2e): cover source and binary workflows

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(e2e): stop compiled process groups

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* ci(build): limit ARM BuildKit parallelism

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* revert: remove ARM BuildKit workaround

The builder image is being rebuilt to address the zstd allocation failure at its source.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(e2e): use OS-assigned dashboard port

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-12 15:39:51 +08:00
d14594f14d feat(web): add local management dashboard (#718)
* feat(web): add local management dashboard

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(web): address review and Python 2 compatibility

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* chore: remove design session artifacts

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(web): harden packaged resources and HTTP semantics

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* test(web): support Python 2 handler mocks

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(web): detect all external schedulers

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-11 18:23:17 +00:00
dependabot[bot] 5ee2351854 Bump vitepress from 2.0.0-alpha.18 to 2.0.0-alpha.19 in /docs (#717)
Bumps [vitepress](https://github.com/vuejs/vitepress) from 2.0.0-alpha.18 to 2.0.0-alpha.19.
- [Release notes](https://github.com/vuejs/vitepress/releases)
- [Changelog](https://github.com/vuejs/vitepress/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vitepress/compare/v2.0.0-alpha.18...v2.0.0-alpha.19)

---
updated-dependencies:
- dependency-name: vitepress
  dependency-version: 2.0.0-alpha.19
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-11 10:07:56 +08:00
c4b6d4e0d8 docs(agents): separate Config Studio from LLM sources (#716)
Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-10 10:35:34 +08:00
1d04b4eb0f feat(docs): redesign documentation experience (#715)
* feat(docs): redesign documentation experience

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(docs): preserve Config Studio state

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(docs): clarify credential diagnostics

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(docs): address review feedback

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-10 09:37:20 +08:00
e58daa0a80 feat(docs): add configuration studio (#712)
* feat(docs): add configuration studio

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(config): address PR review feedback

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(docker): avoid 32-bit Nuitka compression OOM

Disable onefile compression only for 32-bit BuildKit targets, where zstd can exhaust the process address space.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* revert: restore compressed Linux binaries

The builder image has been rebuilt with the previous working toolchain.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* docs: remove English configuration studio

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* chore: remove product design artifact

Restore the English configuration studio that was removed by mistake.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(docs): protect credentials in address sources

Treat URL userinfo in IPv4 and IPv6 detection sources as sensitive so previews, copies, downloads, and duplicated providers exclude it by default.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(docs): preserve explicit empty tokens

Keep runtime-significant empty token fields in credential-free exports while continuing to omit non-empty secrets.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(docs): export entered credentials

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* docs(config): clarify special source splitting

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-08 11:09:51 +08:00
e102ce5039 fix(docker): prevent zombie process accumulation (#711)
* fix(docker): prevent zombie process accumulation

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(docker): forward signals to startup processes

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-08 01:05:22 +08:00
0a80f32fb8 test(util.http): remove external network flakiness (#710)
* test(util.http): remove external network flakiness

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* test(util.http): bypass proxies in loopback test

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* test(util.http): support Python 2 HTTP handler

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-07 23:23:43 +08:00
06fceed0f7 feat(cache): add configurable cache max age (#709)
* feat(cache): add configurable cache max age

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* test(cache): cover cache max age integration paths

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* test(cache): fix portable regression test formatting

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* style(test): format cache max age run test

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Future New (WEILAI LIU) <weilail@microsoft.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
v4.1.5
2026-08-06 17:59:40 +08:00
CopilotandNewFuture adc3d4fd40 Fix Nuitka onefile compression dependencies (#707)
fix(build): install Nuitka onefile dependencies

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
2026-08-05 20:15:12 +08:00
CopilotandNewFuture 9a260d17c4 Fix Docker ARM build failure from buggy patchelf (#706)
* Initial plan

* fix(docker): avoid buggy patchelf in alpine builder

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

* chore(docker): use patchelf 0.19.1

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
2026-08-05 18:51:03 +08:00
iCastureandNew Future e61bc6b474 fix(ip): honor fallback order for index4/index6 rules (#690)
fix(ip): continue rule fallback when a resolver returns no result

Refactor get_ip() to evaluate one rule at a time and only stop when a
usable address is found.

This fixes index4/index6 fallback chains where resolvers such as url,
public, regex, cmd, or shell could return an empty result and prevent
later rules from running.

Update tests to cover fallback across multiple rule types for both IPv4
and IPv6.

Co-authored-by: New Future <NewFuture@users.noreply.github.com>
2026-08-05 15:42:02 +08:00
dependabot[bot]andNew Future 024ba4a336 Bump actions/setup-node from 6 to 7 (#703)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: New Future <NewFuture@users.noreply.github.com>
2026-07-22 13:56:35 +08:00
dependabot[bot] c0a5fb6c62 Bump actions/setup-python from 6 to 7 (#704)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6 to 7.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 14:34:53 +08:00
dependabot[bot] 8507073431 Bump vitepress from 2.0.0-alpha.17 to 2.0.0-alpha.18 in /docs (#702)
Bumps [vitepress](https://github.com/vuejs/vitepress) from 2.0.0-alpha.17 to 2.0.0-alpha.18.
- [Release notes](https://github.com/vuejs/vitepress/releases)
- [Changelog](https://github.com/vuejs/vitepress/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vitepress/compare/v2.0.0-alpha.17...v2.0.0-alpha.18)

---
updated-dependencies:
- dependency-name: vitepress
  dependency-version: 2.0.0-alpha.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-07 17:00:07 +08:00
dependabot[bot] e2e055ef6e Bump actions/checkout from 6 to 7 (#701)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-24 10:26:25 +08:00
f8c098561d Update AGENTS documentation structure and check (#700)
* Initial plan

* docs(agents): update documentation directory tree

* docs(llms): remove excessive English and schema links

* docs(agents): simplify English docs listing

* docs(llms): describe English doc link pattern

* fix(ci): support mirrored English docs in agents check

* fix(ci): clarify mirrored docs detection

* fix(ci): improve agents check readability

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* docs(agents): clarify parse_agents_md docstring return values

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: New Future <NewFuture@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-16 08:04:58 +08:00
New Future 96c4ba71ce docs(agents): streamline agent guidance (#698) 2026-06-15 09:59:50 +08:00
CopilotandNew Future 25d6075e37 docs(agents): sync AGENTS.md and llms.txt for west provider (#696)
* Initial plan

* docs(agents): update AGENTS.md and llms.txt for west provider

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: New Future <NewFuture@users.noreply.github.com>
2026-06-14 02:53:51 +00:00
Copilot 4fec62d95d Remove Alibaba Cloud ESA promotional links (#697)
* docs(aliesa): remove Alibaba Cloud ESA promo links

* docs(readme): remove ESA footer sponsor image

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-06-14 10:43:37 +08:00
93d4698ff7 feat(provider.west): add West.cn DNS provider support (#628)
* Initial plan

* feat(provider.west): add West.cn DNS provider support

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

* refactor(provider.west): address review feedback - remove LINE_MAPPING, implement domain fallback, update docs

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

* fix(provider.west): improve logging format for root domain

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix(provider.west): correct comment about domain parsing order and clarify error code handling

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

* refactor(provider.west): simplify domain not found check to use code=404

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: New Future <NewFuture@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-06-12 12:04:51 +00:00
Copilot 7490657d82 Use HTTP ipify URL in documentation examples (#694)
* fix(ip): remove unavailable ipify cn endpoint

* test(ip): avoid substring matching in fallback test

* fix(ip): remove unavailable ipw endpoints

* fix(ip): add ddnsip public endpoints

* docs: use http ipify URL in examples

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-06-12 19:51:59 +08:00
dependabot[bot] 9834fdea5e Bump actions/upload-pages-artifact from 4 to 5 (#689)
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 14:56:26 +00:00
dependabot[bot] 343a01c521 Bump actions/deploy-pages from 4 to 5 (#687)
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](https://github.com/actions/deploy-pages/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 22:44:14 +08:00
dependabot[bot] bed287da2e Bump actions/github-script from 8 to 9 (#688)
Bumps [actions/github-script](https://github.com/actions/github-script) from 8 to 9.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v8...v9)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '9'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-27 19:37:45 +08:00
dependabot[bot] 14b2d76fc0 Bump vitepress from 2.0.0-alpha.16 to 2.0.0-alpha.17 in /docs (#686)
Bumps [vitepress](https://github.com/vuejs/vitepress) from 2.0.0-alpha.16 to 2.0.0-alpha.17.
- [Release notes](https://github.com/vuejs/vitepress/releases)
- [Changelog](https://github.com/vuejs/vitepress/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vitepress/compare/v2.0.0-alpha.16...v2.0.0-alpha.17)

---
updated-dependencies:
- dependency-name: vitepress
  dependency-version: 2.0.0-alpha.17
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-26 19:50:09 +08:00
dependabot[bot] 78a81b9f3b Bump docker/metadata-action from 5 to 6 (#685)
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5 to 6.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 15:35:25 +08:00
dependabot[bot] 3824ddc2d8 Bump docker/setup-qemu-action from 3 to 4 (#684)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3 to 4.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-17 16:11:59 +08:00
dependabot[bot] f07a494bde Bump docker/setup-buildx-action from 3 to 4 (#681) 2026-03-13 17:11:13 +08:00
dependabot[bot] ea330d466c Bump docker/build-push-action from 6 to 7 (#682) 2026-03-13 15:29:16 +08:00
dependabot[bot] 163689dab7 Bump actions/download-artifact from 7 to 8 (#680) 2026-03-13 14:48:25 +08:00
dependabot[bot] a085723890 Bump docker/login-action from 3 to 4 (#683)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3 to 4.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-12 09:50:04 +08:00
dependabot[bot] afab29242b Bump actions/upload-artifact from 6 to 7 (#679) 2026-03-12 09:03:13 +08:00
CopilotandNewFuture 999e24c4d2 Revert markdown copy to simpler single-pass implementation (#674)
* Initial plan

* feat(docs): preserve markdown files in VitePress build output for AI consumption

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

* docs: update llms.txt to document markdown file availability

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

* refactor(docs): simplify markdown copy with cleaner separation of concerns

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

* revert(docs): restore simpler markdown copy implementation

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
2026-02-22 11:35:39 +00:00
CopilotandNewFuture 03946140d9 Pin Nuitka-Action builds to Nuitka 2.8.10 across workflows (#675)
* Initial plan

* fix(ci): pin nuitka action version to 2.8.10

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
2026-02-22 19:22:55 +08:00
dependabot[bot] 5aec750efe Bump vitepress from 2.0.0-alpha.15 to 2.0.0-alpha.16 in /docs (#672)
Bumps [vitepress](https://github.com/vuejs/vitepress) from 2.0.0-alpha.15 to 2.0.0-alpha.16.
- [Release notes](https://github.com/vuejs/vitepress/releases)
- [Changelog](https://github.com/vuejs/vitepress/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vitepress/compare/v2.0.0-alpha.15...v2.0.0-alpha.16)

---
updated-dependencies:
- dependency-name: vitepress
  dependency-version: 2.0.0-alpha.16
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 19:44:27 +08:00
CopilotandNewFuture 030c5cb32b docs(agents): exclude VitePress and ESA tooling files from structure tracking (#670)
* Initial plan

* docs(agents): ignore VitePress and ESA files in update-agents workflow

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

* style: fix linting issues in update_agents_structure.py

Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
2026-01-30 10:47:11 +00:00