Repository navigation
v1.7.0
MirrorProxy v1.7.0
MirrorProxy v1.7.0 delivers a rebuilt Web console, an instance-bound AI Agent
setup workflow, and an opt-in authenticated download channel. Existing package
and source proxy routes remain available.
Highlights
Native Ant Design Pro administration and a refined public portal
- Administration now uses Umi 4, Ant Design 6 and native Pro layout, forms,
cards, statistics and tables. User summaries and audit records are paginated;
user management actions expand from their table row. - Improve mirror health statistics, IP database status and rule forms, SMTP and
invitation actions, third-party login policy notices, security forms and
advanced configuration. Make help text readable and keep card spacing,
checkbox sizes, icon alignment and keyboard focus consistent. - Add a password-change entry to the administrator avatar menu. The home action
opens the public site in a separate tab. Keep one sign-out entry and its
existing confirmation. Footers follow content and reach the viewport bottom
on short pages without covering the interface. - Public home, login, invitation registration and account pages use a separately
scoped Apple-style theme. Align homepage sections on a common responsive
wide-screen grid; refine source cards, configuration dialogs and copy feedback. - Highlight copyable Shell/PowerShell commands. Present installation platforms
in one column and provide a one-line PowerShell installer command without
changing the execution policy. Introduce the supplied browser, touch and
maskable app icons while retaining custom site icons and/favicon.svg. - Preserve Chinese/English UI, light/dark themes, browser session handling,
invitations, quotas and existing public/admin route contracts.
One-command client, Skill and MCP setup
- Add
mirrorproxy setup --base-url https://YOUR-INSTANCEfor Codex, Claude Code
and Cursor. The wizard asks for installation scope, strongly recommends the
current user's global scope by default, and supports selecting multiple Agents. - Generate an instance-bound Skill and native MCP stdio configuration, verify
the live client/MCP handshake and instance catalog, and preserve unmanaged
configuration through the existing merge, backup and rollback protections. - Add
mirrorproxy mcpdiscovery tools andmirrorproxy agentJSON queries for
enabled sources, adapters and public policy. Discovery remains bounded and
read-only; this does not create an unrestricted forward proxy. - The Web console serves matching
/install.shand/install.ps1installers.
They download stable release assets, verify their checksum and check for
setup support before replacing an existing client. The existing-client setup
command remains available. Restart the Agent after configuration and retain
its normal workspace trust and MCP approval checks. - Handle Windows CRLF Skill templates correctly and report invalid embedded
templates without panicking.
Opt-in authenticated public HTTPS downloads
- Add a separate download channel with explicit user/group grants and scoped,
revocable download-only tokens. It is disabled by default and does not
grant administration access, forward browser credentials, upload artifacts,
or reuse shared package caches/configurable mirror-upstream proxies. - Validate public HTTPS targets, pin approved DNS resolutions, enforce redirect
checks and domain blocks, and retain TLS verification and SSRF protections.
Apply per-file/per-day limits, existing global/user/group monthly quotas,
per-chunk accounting, rate limits, deadlines and concurrency controls. - Add domain/entry-host statistics, blocking and active-download cancellation,
plus client/MCP integration. Keep download credentials local: never place
tokens in Skill files or send them to an Agent. - New unsaved policy defaults: 10 GiB/file, 20 GiB/user/day (UTC), 16 concurrent
instance downloads, 5 per user, 300 requests/user/minute, a 1800-second deadline
and shared 100 MiB/s output bandwidth. Explicitly saved policies are preserved. - Billing-group quotas retain their existing semantics: leave blank for unlimited;
0is a zero-byte allowance, not unlimited.
Security and dependency maintenance
- Update Vitest and
@vitest/mockerto 5.0.5, including fixes for
manual mock-registration code injection
and Windows redirect-allowlist traversal.
These are development tools, not a new server endpoint. - Update Tokio to 1.53.3 for the
AsyncFd I/O safety advisory.
This is a targeted runtime patch; it does not add an advisory exception. - Use Umi core instead of the unused Max lint/DVA/legacy internationalization
bundle. Keep Ant Design Pro components and existing application providers.
Replace deprecated SVG, TypeScript runner, coverage and cleanup dependency
chains with maintained versions and real API compatibility tests. - Reduce clean-install deprecated-package warnings from 20 to 3. Remaining
upstream development-tool dependencies are@stagewise/toolbar,
@floating-ui/react-dom-interactionsandnode-domexception; their warnings
remain visible.npm auditreports no findings for the locked frontend tree. - Preserve authentication, authorization, audience-specific cookie/CSRF checks,
Argon2 password hashing, TLS verification, path/symlink protection, rate limits,
quotas and audit controls. No security alert is manually dismissed. - Retain the documented verification-only RustSec exceptions for
RUSTSEC-2023-0071 and RUSTSEC-2026-0387: the OIDC paths use public-key verification,
not the affected private-key/secret-integer operations. Other advisories remain
blocking. See SECURITY.md.
Build and test reliability
./build.shreuses dependencies and frontend output only when their input
fingerprints and output digests agree. Changed, missing or unexpected outputs
invalidate the cache. GeoIP checksums and locked Cargo builds still run; server
and client build together. Use./build.sh --forceto refresh dependencies and
frontend output, or explicitly setBUILD_TIMEin release automation.- Keep native build timestamps and binary hashes stable for unchanged local
inputs. Stage timings make network/install, frontend and Rust costs observable.
The measured one-second warm rebuild is a local cached result, not a promise
about first builds or all machines. - Isolate Windows download test directories with an atomic sequence in addition
to timestamps. A deterministic identical-clock-tick regression ensures that
one fixture cannot delete another fixture's output. Existing output-file,
digest, symlink and credential protections are retained.
Upgrade, verification and rollback
- Upgrade the server and client together to use the one-command setup workflow.
Preserve TOML configuration, SQLite data, cache, GeoIP databases and any
encryption master key. Publishing this release does not replace a running
production installation. - The first server start applies the additive SQLite schema-5 controlled-
download migration. Existing users, proxy configuration and usage data are
retained. Before upgrading, make a recoverable database/configuration backup. - For rollback to v1.6.0, stop the service and restore the pre-upgrade database
and compatible configuration with the previous binary. Do not assume an older
binary understands schema 5 or new runtime settings. Agent/client setup has
separate recorded rollback; preserve those records for client rollback. - Verify release archives against
SHA256SUMS, unpack them and check--version.
For an installed server, verify/healthz,/version, actual package payloads
and the changed Web/CLI paths. A successful HTTP status alone is not complete
protocol acceptance. - Existing ecosystem limitations remain. Docker
registry-mirrorsapplies to
Docker Hub; other OCI registries require explicit image-host rewriting. The
source catalog is not proof that every distribution/version/architecture has
been tested in an authentic environment.
Validation and distribution
Local acceptance covers frontend unit tests, toolchain API and build-cache
contracts, Chromium behavior in both languages/themes and responsive layouts,
locked all-feature Rust tests, strict Clippy/formatting, dependency audits,
real administration API/session/CSRF and HTTP/HTTPS browser smoke, and native
server/client builds. CI and CodeQL are required for the exact version commit
before the annotated stable tag is published. Platform release jobs build Linux,
macOS and Windows clients plus Linux server archives/native packages.
After publication, verify the Release name/tag/latest state, curated notes,
checksums, required assets and representative unpacked client/server versions.
APT, Homebrew, Scoop and WinGet distribution metadata follow the existing release
pipeline. Optional WinGet submission requires its existing automation setting.
Docker build/signing is independent and may still run after native assets are
ready; its status is reported separately.
Container packaging follow-up
The initial tag-triggered Docker job failed because the Rust build stage did not
copy the two embedded installer scripts. Native release archives and the running
server are unaffected. A packaging-only follow-up on main adds these inputs and
a build-context regression check; the published v1.7.0 tag remains immutable.
When building containers from source, use the corrected
Dockerfile on main.
The repaired image publication is tracked separately from this native release.
Full comparison: v1.6.0...v1.7.0