Repository navigation
v0.1.0
v0.1.0
日期:2026-10-13
这是 MercLink 的第一个可部署版本。它把 2026-10-05 到 2026-10-13 的提交收成一家店、一个进程、一套公开发现和一套可选买入。生产应用镜像是 docker.io/ptonlix/merclink:0.1.0。
中文
这一版能做什么
- 启动时创建唯一店主和这一家店。店主就是管理员,授权页不能注册商家。
- 商家 Agent 通过设备码授权,用管理 Skill 建目录、定义字段、创建带规格的商品,并上架或下架。不收集密码、短信验证码或长期 API Key。
- 公开页、
/llms.txt和用户 Skill 使用同一套已上架商品事实。公开价格以主要单位和 Markdown 展示,不接受商家自写的价格文本。 - 商品页展示字段标签,机器标识留在商品 Markdown 里。接口目录和字段表示例从同一张字段表生成,避免另写一套协议。
- 店面可以由 Agent 替换。生成来自当前公开页,不执行上传的授权 HTML,也不能用预览请求改掉发布本身或把请求转到别的主机。
- 可选的执照和联系事实可以标识这家店,不填也不阻止发布。
- 商品图片只进已配置的 S3 或 MinIO。短信和上传次数由 Redis 限制。Redis 或对象桶不可用时拒绝对应操作,不降级到本地磁盘。
- 买入默认关闭。未设置
MERCLINK_PURCHASE=1时,部署不要求验证码、短信和支付密钥,用户 Skill 只教查询。 - 开启买入后,买家首次授权用手机号注册。买家 Agent 必须留着令牌,才能继续查自己的订单。下单仍是一行。支付可以走支付宝电脑收银台、支付宝手机网站,或启动时配置的易支付。只有订单状态
paid表示支付成功。迟到的支付不会把已关闭订单改成已支付。 - 正式部署拉取已发布镜像,不再在部署机编译应用。PostgreSQL 18.6、Redis 8.10.2 和固定版本 MinIO 仍由
compose.yaml拉起。v0.1.0会同时推送0.1.0和latest。回滚使用版本号标签,不使用latest。
这一版不做
- 不做购物车、优惠券、运费、推荐、退款、商家自助注册,也不接其他电商平台。
- 不做多店、主题市场和人点的商品后台。管理页只改店主密码。
- 不在 Agent 页面收集支付宝密码,也不把同步回跳当成支付成功。
升级注意
已有部署要保持下单,升级前必须设置 MERCLINK_PURCHASE=1。数据库迁移只向前追加。回滚应用镜像前,先确认该版本认识已经执行过的表结构。
English
Date: 2026-10-13
This is the first deployable MercLink release. It collects the work from 2026-10-05 through 2026-10-13 into one store, one process, one public discovery surface, and an optional purchase flow. The production image is docker.io/ptonlix/merclink:0.1.0.
What this version does
- Startup creates the only store owner and the only store. The owner is the administrator. The authorization page cannot register a merchant.
- A merchant agent authorizes with a device code, then uses the management Skill to create catalogs, fields, specified products, and to publish or unpublish them. The product does not collect passwords, SMS codes, or long-lived API keys for the agent.
- Public pages,
/llms.txt, and the user Skill share the same published-product facts. Public prices use major units and Markdown. A merchant cannot supply a separate price string. - Product pages show field labels. Machine identifiers stay in the product Markdown. The interface directory and field examples are generated from the same field table, so they do not become a second protocol.
- An agent can replace the storefront. Generation comes from the live public pages. Uploaded authorization HTML is not executed, and a preview request cannot reset the release or choose another host.
- Optional license and contact facts can identify the store. Leaving them empty does not block publishing.
- Product images go only to the configured S3 or MinIO bucket. SMS and upload counts are limited in Redis. If Redis or the bucket is unavailable, that operation is refused. There is no local-disk fallback.
- Purchase is off by default. Without
MERCLINK_PURCHASE=1, the deployment does not require captcha, SMS, or payment credentials, and the user Skill only teaches lookup. - With purchase enabled, the buyer registers by phone number on first authorization. The buyer agent must retain its token to look up its own orders later. An order is still one line. Payment can use the Alipay desktop cashier, Alipay mobile website pay, or the EasyPay provider selected at startup. Only the order status
paidmeans payment succeeded. A late payment does not mark a closed order paid. - Production pulls the published image instead of compiling on the deploy machine. PostgreSQL 18.6, Redis 8.10.2, and the pinned MinIO image still come from
compose.yaml.v0.1.0also publisheslatest. Roll back by version tag, not bylatest.
What this version does not do
- No cart, coupons, shipping fees, recommendations, refunds, merchant self-registration, or other commerce platforms.
- No multi-store setup, theme marketplace, or human product admin. The admin page only changes the owner password.
- Agent pages do not collect an Alipay password, and a synchronous return URL is not payment success.
Upgrade note
An existing deployment that must keep taking orders has to set MERCLINK_PURCHASE=1 before upgrading. Database migrations only move forward. Before rolling an application image back, confirm that version understands the schema already applied.