共同成长

发布说明

CGW Token Portal 的所有新功能。您正在运行 v0.27.0 版本。

v0.27.0

当前的

地点与慈善机构、实时 CGW 访问权限以及更强大的 GardenApp

CoinGarden现已在“地点与慈善机构”版块整合了真实的环保报告、社区支持和经核实的完成证明。此次更新还将经过验证的CGW主网体验引入代币门户,扩展了花卉社区和养护工具,并增强了钱包、人工智能和管理员的可靠性。

新的
  • Places & Charities 让人们可以上传照片和地图坐标来报告受污染或濒危的地点,跟踪公众进展,支持 CGW 的活动,提交前后对比证据并查看已验证的结果。
  • 每个提交的地点都会接受人工智能的全新证据审核。清晰的报告可以直接发布,而不确定、重复、不一致或不安全的报告则需由人工审核员进行审核;人工智能绝不会开启资金或转移CGW。
  • 环境成就现在反映在个人资料、成就和管理中的报告、社区支持、已确认的贡献、已核实的清理和环境奖励。
  • 公共花卉分享功能现在包括更丰富的花卉卡片、所有者描述、公共园丁个人资料、关注、特色徽章、复制/分享控制和连续发现滚动。
  • Garden Plus 的结账、账单管理、使用限制和续订提醒功能均可通过现有账户和支付流程使用。
  • Token Portal 现在支持 Google 登录、关联钱包配置文件、Ledger 所有权签名选项、共享管理员奖励草稿,以及直接访问经过验证的 CGW 交易和流动性目的地。
改进
  • 代币门户和管理中心读取的是 Solana 主网 CGW 铸造、资金池、余额、持有者、交易、权限和市场链接的规范实时数据,而不是传统的预发布或占位符状态。
  • GardenApp 增加了直接浇水操作、更清晰的花园和花卉层级结构、主题感知订阅权益、主页快捷方式、紧凑的移动卡片以及更有用的个人资料活动摘要。
  • 花卉识别和养护使用经过审核的植物目录,其中包含名称、养护说明、可靠性和产地信息,同时将更正的控制权交给园丁。
  • 管理中心增加了更深入的用户/内容活动、地点审核和资金监督、环境徽章证据、共享奖励工作流程、分析和更具弹性的翻译操作。
  • 这三个公共网站都公开了一致的、只读的代理发现文档和 Google Analytics 衡量指标,而不会扩大对私人帐户数据的访问权限。
固定的
  • 恢复了桌面版 Ledger 的交易签名功能,并修正了钱包新增优先级设置的验证机制,同时保留了完整的挑战、签名和重放检查。Android 移动钱包适配器保留了原生登录功能,普通扩展钱包也保留了消息签名功能。
  • AI 请求使用中央提供商配置的网关,具有修正的超时和回退行为;当提供商不可用时,花卉识别绝不会用捏造的结果代替。
  • 公共场所照片会以匿名直接链接的形式加载给访客,包括较早缓存的媒体 URL;临时的私有照片错误在获得批准后不会被缓存,并且场所社交预览会使用真实的封面照片。
  • 地点卡片现在将大照片、长标题、位置和操作控件放在狭窄屏幕上单独的有界行中;个人资料影响卡片链接到地点和慈善机构。
  • 九月的更新修复了 CI、主网清单检查、代币数据回退、移动导航、目录分页、翻译和公共页面可靠性等问题。
安全
  • 钱包认证通过加密方式验证服务器发出的挑战和选定的地址,并且每个 nonce 只使用一次;原生 SIWS 字段保持不变,Ledger 证明保留严格的仅备忘录验证。认证交易不会被广播。
  • CGW 贡献仍由用户签名,并且只有在链上验证后才会被计入;项目收益和环境奖励仍然是显式的 Squads 多重签名操作,没有应用程序持有的签名密钥。
  • 公共场所和花卉景观仅显示允许列出的公共字段,敏感位置在需要时保持粗略显示,存储的 AI/提供商凭据保持不可读且位于服务器端。
文档
  • 产品、架构、人工智能、数据库、地点和慈善机构、代币和运营文档现在反映了经过验证的 Solana 主网部署和当前已发布的应用程序行为。

v0.26.1

移动导航和钱包连接恢复

恢复了手机上的网站菜单,改进了现有的移动钱包连接器,并显示了账户中已添加的钱包。管理员目录页面适配窄屏,分页功能正常。当前文档反映了双程序启动仪式;主网尚未部署。

改进
  • 代币和花卉应用使用其现有的移动连接器。已关联的钱包会直接显示,无需用户再次添加;额外的 Phantom 浏览器切换按钮已被移除。
  • 关闭的管理导航不会受到键盘焦点影响,菜单控件会显示其抽屉。
固定的
  • 公共网站菜单在手机上可见并可打开,触摸目标更大,按 Esc 键可关闭。
  • Android钱包登录会等待准备好的挑战,然后才会启用签名操作;失败的尝试会准备一个新的挑战以供重试。
  • 管理员植物目录页面使用控制台的响应式卡片、筛选器和表格;目录分页现在遵循请求的偏移量。
文档
  • 目前的指南反映了所有者已记录的移除升级时间锁的操作:两个程序均以 Squads Vault 0 作为升级权限。较早的版本说明仍保留为历史记录。
  • 发布计划区分了已完成的应用程序检查和尚未解决的仪式控制及执行证据。本次更新不授权启动 CGW 主网。

v0.26.0

仪式中的时间锁定、三方复制构建、移动钱包登录

cgw-timelock 获得了真正的主网身份、11 案例的 LiteSVM 套件以及创世序列中的位置;所有三个程序二进制文件均由两位验证者和持续集成 (CI) 在仪式提交 9c6e0f8 中逐字节复现;移动钱包适配器通过原生登录功能在 Android 上连接 Solana;管理员权限页面实时读取程序和元数据权限。仪式结果仍为 NO_GO:发行方放弃法律审查,操作门 O1/O5/O6/O7 和 C3 保持开放,且未发生 mainnet-beta 写入。

新的
  • cgw-timelock 声明仪式身份 EGu8yPEf…s48qi1M;tests-integration/tests/timelock.rs 针对真实二进制文件运行 11 个必需的用例,包括通过 timelock PDA 执行的真实 BPF 加载器升级。
  • 主网仪式工具部署了三个程序:@cgw/chain-config 获取 timelockProgram/timelockConfig,verify-mainnet-invariants.mjs 断言封存/奖励升级权限 == TimelockConfig PDA(直接 Vault 0 不匹配)和 cgw-timelock 升级权限 == Vault 0,并且操作员控制台、启动运行手册、仪式包和创世仪式描述了相同的序列。
  • build-attestation.mjs 涵盖所有三个程序并拒绝部分证明;Pavel A、Ivan G 和 CI 在 9c6e0f8 处重现了 cgw_vesting.so 84c85be2…、cgw_rewards.so 10ec7188… 和 cgw_timelock.so 8de82668…。
  • Devnet 端到端团队测试:team-vesting-check.mjs(只读;显示唯一的团队计划从未被认领,因为其受益人是一次性密钥)、team-claim-devnet.mjs(仅限 devnet 的声明,带有测试密钥对)以及 team-test-schedule-tool-gr2.html 上团队控制的受益人的 URL 参数。
  • 移动端:移动钱包适配器在 Android 上注册,并通过原生 solana:signIn 连接——一个钱包会话即可完成授权和签名。apps/api 发出无界 SIWS 挑战,并验证钱包构建的签名字节(域、地址、语句、随机数、请求 ID)。
  • 管理员令牌权限:程序升级权限和元数据更新权限现在可以实时读取(ProgramData PDA 和 Metaplex 帐户),而不是报告未知;预期权限遵循清单(记录的时间锁配置 PDA,否则为 Vault 0)。
固定的
  • ceremony.mjs repository.anchor 断言不存在主网程序映射,这是 T8 之前的不变式;现在它断言映射存在,匹配每个已编译的 declare_id!,并且没有重用 devnet id。
  • verify-fresh-program-identity.mjs 拒绝作为程序身份提议的钱包地址(签名者候选人、部署者、费用支付者)。
  • cgw-rewards 生成的常量通过 const 断言承载负载,修复了 rustc 1.98 dead_code 故障;LiteSVM 错误代码常量在两个套件中都得到了纠正;CI 缓存了 Solana/Anchor 工具链。
安全
  • T8 §2 保管记录:所有三个程序密钥对都保存在 BitLocker 加密的外部驱动器上,并附有第二个加密副本;从未传输过任何密钥材料。
  • 法律关卡 G2/G3 和签署人独立性关卡 O3 仍然处于 WAIVED_BY_OWNER 状态(2026-08-25),仍然阻止判决;公共文件页面显示,目前不存在签署人独立性。
开发者
  • 证明、不变性、清单一致性、控制器和 HTML 工具保护程序都通过新的三个程序路径运行,并报告 NOT_DEPLOYED;操作员控制台已在 Chrome 中从 C:\projects at c8af8ca 实时验证。
  • 未在创作沙箱中验证:pnpm typecheck/tests 用于 @cgw/api、@cgw/mobile 和 @cgw/chain-config,以及 Android 登录流程的设备通过 - CI 和手机是守卫。

v0.25.8

主网代码可补全的间隙闭合(T7-T9,不变引擎,仪式 PREPARE 工具)

关闭主网就绪审查中所有可补全的代码项,并将已弃用的第三方报告环节替换为强制性的内部调查结果处置、对抗性测试、两次独立的构建复现、模拟和最终不变性测试。仪式结果仍为“不通过”。

新的
  • scripts/mainnet/verify-program-authorities.mjs (T7): 独立地导出每个生产程序的 ProgramData PDA,并将其实时升级权限与运营商提供的预期值进行比较。
  • scripts/mainnet/verify-fresh-program-identity.mjs + docs/token/CGW_MAINNET_PROGRAM_ID_CEREMONY.md (T8): 防止将 devnet/localnet 程序密钥对用作主网身份;已进行自我测试。
  • scripts/mainnet/manifest-transition.mjs + verify-manifest-consistency.mjs (T9): CANDIDATE -> DEPLOYED -> INDEPENDENTLY_VERIFIED -> CANONICAL 状态机;canonical manifest.ts 文件在任何状态下都不会被自动编辑。
  • scripts/mainnet/verify-mainnet-invariants.mjs:单命令最终不变引擎,涵盖创世哈希、两个程序、Squads、铸币、元数据、所有六个金库、RewardsConfig/VestingConfig PDA 和就绪门交叉检查;JSON 输出,退出代码 0/1,无警告。
  • scripts/mainnet/evidence-record.mjs:标准证据记录模式和仅追加写入器,用于每个不可逆的仪式步骤,并带有秘密材料字段名称保护。
  • scripts/mainnet/prepare-mint-metadata-mainnet.mjs、prepare-vaults-mainnet.mjs、prepare-squads-mainnet.mjs、prepare-rewards-vesting-mainnet.mjs:仅用于准备、模拟和验证,仅使用公钥(不会加载私钥),直接基于已验证的 devnet Genesis Rehearsal #2 / 标准的 Squads 创建脚本。根据本仓库现有的非一键部署设计,特意没有提交路径。
  • scripts/mainnet/signer-ceremony-state.mjs:每个签名者的状态机为 IDENTIFIED -> OWNERSHIP_PROVEN -> APPOINTED -> INDEPENDENCE_VERIFIED -> RECOVERY_VERIFIED -> CEREMONY_READY,操作顺序已强制执行并已进行自我测试。
  • scripts/mainnet/authority-transition-matrix.mjs:OBJECT/CURRENT/EXPECTED/STATUS,用于管理每个主网权威机构,CURRENT 始终实时读取。
  • scripts/mainnet/verify-transaction-safety.mjs:对每个 prepare-*-mainnet.mjs 脚本进行静态安全审计(新的区块哈希,没有持久随机数,没有广播,没有私钥加载,模拟门控,证据在存储库之外)。
  • scripts/mainnet/mainnet-readiness-score.mjs:非门控工程/托管/法律/运营准备情况摘要,明确地永远不会覆盖 ceremony.mjs 的裁决。
  • scripts/mainnet/mainnet-rpc-lib.mjs:上面每个新脚本都重用的共享、无依赖的 RPC/manifest/base58 原语。
  • scripts/mainnet/package.json:隔离新的 PREPARE/VERIFY 脚本的 @solana/web3.js、@solana/spl-token、@metaplex-foundation/mpl-token-metadata 和 @sqds/multisig 依赖项,反映了 scripts/devnet 自身的隔离原理。
  • docs/token/CGW_DEVNET_MAINNET_GAP_MATRIX.md:涵盖所有 30 项仪式功能的完整 devnet 到 mainnet 操作清单。
安全
  • 已移除已退役的准备就绪门 G5 及其对应的私有控制审批字段。当前强制性证据包括内部调查结果处置、对抗性测试、来自两个独立验证者的可复现 SBF/IDL 哈希值、交易模拟以及最终的链上不变量。
  • 五份 Solflare + Ledger Nano S Plus 所有权证明将 O4 提升至 PASS;签名人任命、独立性和恢复仍然是单独的关卡。
开发者
  • Ledger 所有权证明页面现在与 devnet 工具类似,只需一次连接和一次签名操作即可完成。Solflare + Ledger Nano S Plus 生成了全部五个精确的 v0 签名;随后的见证验证提供了不同的屏幕见证和第二通道确认记录,离线验证则在实时状态下完成了 5/5 个硬件清晰签名的密钥控制证明。Phantom 拒绝了与交易形状相同的有效载荷,因此该页面推荐使用经过验证的 Solflare 路径。任命、独立性、恢复和最终托管批准仍然是独立的流程。
  • 每个新脚本都通过了 node --check;verify-fresh-program-identity.mjs、signer-ceremony-state.mjs 和 verify-transaction-safety.mjs 都包含并通过了真正的自检/回归运行(不仅仅是语法检查)。
  • verify-manifest-consistency.mjs 实际上针对实时存储库运行,并正确报告 11/11 结构检查通过,而 mainnet-beta 仍处于 NOT_DEPLOYED 状态。
  • mainnet-readiness-score.mjs 实际上已运行,并正确报告了 13/26,而没有改变最终结果。
  • pnpm 的完整 lint、typecheck、构建和 package-test 测试套件均已通过。Cargo 和 Anchor 在此主机上仍然不可用。隔离的 Solana 依赖项已通过 lockfile 安装,但它们继承的依赖项仍需处理,并且构建器需要一次性 devnet 试运行。
文档
  • packages/chain-config/src/manifest.ts 的 mainnet-beta 区块仍然完全为空/未部署。
  • 已移除过时的第三方参与方案和审批流程。法律、代币经济、签署人任命/恢复、构建、网络、监控和执行授权证据仍处于开放状态——13 个准备就绪流程中的 26 个流程仍未完成。
  • ceremony.mjs 的裁决仍然是 NO_GO;此版本中的任何内容都不能签署或广播 mainnet-beta 交易。

v0.25.7

私人仪式控制附件

允许只读的本地主机控制台通过绝对服务器端路径跟踪私有控制器记录,而不将其暴露给浏览器代码或启用事务。

改进
  • 回环服务接受 --control 参数,并指定一个现有的绝对私有 control.json 路径,然后在仪式工作区中呈现控制器的证据检查。
  • 概览报告附件状态,并保持准备工作未完成,直到控制架构和存储库提交绑定通过。
安全
  • 私有路径和记录内容仍然保留在服务器端;浏览器仍然没有上传、签名、事务构造、RPC 写入或广播功能。

v0.25.6

主网仪式工作区

添加一个按顺序排列的五钱包识别名册和一个完整的控制器派生的仪式映射,同时保持每个主网交易操作的锁定状态。

改进
  • 现在,本地主网控制台可以在浏览器会话中,在账户切换和仪式页面导航之间保留已识别的 Ledger 候选地址。
  • 概览现在提供了一个十二阶段的准备图,将每个发射阶段与其证据页面和诚实控制器衍生的状态联系起来。
安全
  • 会话识别与托管和授权仍然分离,并且在主网 NO_GO 期间没有添加消息签名、交易构造、RPC 写入或广播功能。

v0.25.5

主网仪式支付方资金

记录并验证独特的 Squads 付费候选人,使当前的仪式资金达到 7 SOL,而主网执行仍然锁定在其他启动门之后。

改进
  • 本地主网控制台现在可以获取并最终读取仪式付款人候选人以及五位 Ledger 签名人候选人。
  • 资金准备情况现在分别报告观察到的 5 个 SOL 部署者和 2 个 SOL 小队费用支付者,以及 7 个 SOL 合并准备余额。
安全
  • 生成的仪式包必须同时满足已审核的付款人候选人和拒绝付款人替换的要求,不得与彼此或任何签署人重叠,且余额低于当前资金最低限额。

v0.25.4

主网部署者候选控制

记录运营商指定的主网部署者候选人,验证其在本地控制台中的资金只读状态,并加强仪式检查,但不启用任何主网写入。

改进
  • 私人仪式包现在与经过审核的部署候选人绑定,并且拒绝替代付款人、付款人角色重叠或低于当前准备预算的合并资金。
  • 本地主网运营商控制台现在可以读取候选部署者账户和余额以及五个 Ledger 候选者的信息,同时禁用所有交易操作。
安全
  • 候选付款人与规范部署地址、签名人保管、未来的 Squads 费用付款人以及所有链上权威声明保持分离;主网仍处于 NOT_DEPLOYED 状态。

v0.25.3

自动主网操作员控制台

用一个自加载的、devnet风格的主网操作员控制台取代浏览器证据上传,该控制台会自动检查存储库、清单、网络和签名者状态,同时所有写入操作都保持锁定状态。

新的
  • 仅回环读取服务验证主网身份和所有五个候选帐户,同时将任何已批准的 RPC 凭证保留在浏览器代码之外。
  • Phantom 和 Solflare 可以识别候选名单中已连接的公共地址,而无需暴露任何签名或交易方法。
改进
  • 现在所有 13 个主网页面都直接打开到自动网络、清单、签名者、先决条件、阻止者和日志视图,无需浏览器文件上传或 RPC 设置表单。
  • 页面结构现在与成功的 devnet 工具相匹配:硬锁定通知、签名者面板、编号操作步骤、提案状态和一键刷新。

v0.25.2

主网运营商证据页面

为每个 devnet 操作员文件名添加一个生产安全的 HTML 对应项,以及主网特定的程序、铸币/金库和归属证据页面,这些页面在经过审查的仪式证据存在之前将保持关闭状态。

新的
  • Solana 主网文件夹现在包含 13 个本地服务的操作员页面,涵盖程序、小队、铸币/元数据/金库创世、协议初始化、归属、锁定和受控奖励操作。
  • 每个页面都可以在浏览器本地查看经过清理的仪式控制、预检和候选清单文件,并可选择进行仅会话的已编辑 RPC 身份验证。
改进
  • 每个 devnet HTML 文件名都有一个明确的主网对应项;GR2 和临时测试页面会显示“不适用”,而不是邀请用户复制 devnet 代码或地址。
  • 回归保护机制证明页面不包含 devnet 地址、钱包集成、签名库、交易构造或广播功能,浏览器验证涵盖桌面和手机屏幕宽度。

v0.25.1

主网关闭仪式控制

增加了一个可供操作员使用的私有仪式包和一个机器检查的 NO-GO 门,该门不能签名或广播,因此主网准备工作不会与上线授权混淆。

新的
  • Solana 工作区现在有一个有序的主网仪式指南、一个私有证据包生成器和一个控制器,该控制器检查所有 27 个准备就绪门以及见证角色、批准、签名者证明、审计的构建哈希、独立的 RPC 视图、资金和显式授权。
改进
  • Ledger 所有权挑战现在必须写入 Git 之外的绝对私有目录,以防止签名者和保管记录进入源代码树。
  • 仪式控制器在结构上是只读的:当闸门打开时,它会报告 NO-GO,并且不包含钱包、签名、部署或广播代码。

v0.25.0

生产签名者准备情况和主网上线保障措施

记录了五个获得资金支持的 Ledger 生产候选版本,没有夸大其保管权,将缺失的签名者门添加到公开的 MiCA 报告中,并加强了任何主网上线之前所需的证据。

改进
  • 财政部、安全部门、路线图和 MiCA 准备工作现在达成一致:五个已注资的 Ledger 地址是运营商指定的生产候选地址,而所有权、独立性、恢复和正式任命仍敞开大门。
  • 主网切换和仪式证据现在将签名者钱包与未来的 Squads 多重签名和 Vault 0 区分开来,并且需要证明哈希、独立性检查、恢复演练和单独的部署者资金证据。
  • 现在,每个公共 Token 路由都在生产构建时在 CI 中进行浏览器测试,包括完整的内部链接爬取、响应式溢出、地标和运行时控制台/网络故障。
固定的
  • 公开的 MiCA 准备情况表现在包含了其自身启动停止线所引用的生产托管工作流程,并且删除了关于尚未指定生产密钥的过时说法。
  • 规范地址泄漏保护现在涵盖了未来的 Squads Vault 0、成员密钥和元数据 PDA,以及铸币、程序和金库。
  • 白皮书引用现在解析为真正的 Token Portal 路由,路由特定的结构化数据不再继承主页标识,并且在缺少生产凭据时,可选的 Google 链接会安全地失败。
  • 同源钱包 RPC 边界现在对每位访客每小时的隐私保护限制进行限制,然后再消耗 Solana 专用提供商容量。

v0.24.0

修复了 CGW Explorer 元数据,添加了规范身份模块,并链接了每个管理员令牌地址。

彻底解决了 Solana Explorer 将 CGW devnet 代币显示为“未知”的问题,方法是将铸造币替换为包含从创建之初就带有真实链上元数据的铸造币;添加了一个每个应用程序现在都用于代币身份的规范函数;并使管理员代币页面上的每个钱包/程序地址都成为有效的 Explorer 链接。

新的
  • @cgw/chain-config now exports getTokenIdentity(cluster) — one function that composes token name/symbol/network/decimals with each cluster's mint/program/metadata deployment state, so no app has to import both the token specification and the deployment manifest and combine their fields by hand.
固定的
  • Solana Explorer 不再将 CGW devnet 代币显示为“未知代币”、“无符号”或“未验证”。根本原因:原始 devnet 代币的铸造权限在链上 Metaplex 元数据账户建立之前就被撤销,这使得永久附加元数据成为不可能——并非索引延迟或注册表项缺失所致。
  • 在铸造权限被触及之前,已将规范的 devnet 铸造(创世彩排 #2)替换为与铸造相同的交易中附加的元数据。新的铸造,六个金库的资金分配完全符合代币规格,总计达到 1B 的供应量,铸造权限被撤销,元数据更新权限被转移到 Squads Vault0 多重签名——所有操作之后均通过实时 RPC 读取进行了独立重新验证,绝不信任脚本自身的日志。
  • 现在,每个管理员代币页面上的每个地址(铸币、金库、权限、Squads 多重签名/Vault0/成员、程序 ID/升级权限、归属/奖励配置/金库/受益人/索赔人地址、持有者代币帐户/所有者地址——7 个页面上约 20 个地址)都是一个真正的 Explorer 链接,而不是纯文本缩短版。
开发者
  • 新版 identity.test.ts 保持令牌图标 URL 与令牌门户自身的真实元数据 JSON 文件同步,因此两者永远不会再悄悄地分开。

v0.23.0

更安全的订阅和更透明的套餐限制

使 Stripe 结账和 webhook 恢复具有幂等性,强制执行照片数量限制,保留计划限制下的工作,并且只显示实际可用的付费功能。

改进
  • 计划限制提示会保留所选照片或花卉表单,并链接到订阅,而不会替换草稿页面。
  • 每朵花的照片数量限制是逐个执行的,Garden Plus 只列出具有正常产品行为的功能。
  • “颜色”选项卡现在会等待菜单完全关闭,并支持 Esc 键、键盘焦点控制和焦点恢复。
固定的
  • Stripe 结账现在会重复使用一个持久的购买意图和现有的 Stripe 客户,从而防止同时出现重复的订阅会话。
  • 中断和乱序的 Stripe webhook 可以安全恢复,而不会过早地标记授权已授予。
  • 结账返回链接不再显示付款成功,直到服务器确认已激活由 Stripe 支持的 Garden Plus 访问权限。
  • 月度和年度控制现在具有清晰的选中状态,个性化 Discover 缓存会在注销时被删除。

v0.22.0

管理员付款历史记录、订阅卡修复和 Stripe webhook 加固

管理员订阅卡现在会显示用户的完整付款历史记录,修复了无论实际订阅状态如何都始终显示“不可用”的错误,并且 Stripe 付款 webhook 现在已限制速率以防止滥用。

新的
  • 管理中心:用户的订阅卡现在显示其完整的付款历史记录——每个订单(状态、付款方式、金额、日期)及其相关事件,以及与单个订单无关的订阅级别事件,例如续订。
改进
  • Stripe 支付 webhook 端点现在对每个连接地址都有速率限制,这标志着订阅/计费系统安全加固计划的完成。
固定的
  • 管理中心:之前用户的订阅卡始终显示“不可用”,无论其实际套餐、状态或使用情况如何——即使授予和撤销免费访问权限的功能一直正常。现在,它会显示准确的实时数据。

v0.21.0

宾客通道、花园管理、花卉摄影时间表和翻译可靠性

已注销的访客现在可以查看徽章目录和当地天气,您的个人资料链接可直接指向您的花园/花卉/徽章,花园可以安全地删除(无论是否包含花卉),花卉现在支持带有标题的完整照片时间线,并且管理员翻译页面卡在 0% 的错误已修复。

新的
  • 已签出访客可以看到完整的贡献徽章目录和当地大致天气情况,签到提示是主题式的,而不是硬墙。
  • 在移动侧边栏中始终显示“安装应用”条目,并提供主题化的 iOS 安装说明(如果该平台没有原生安装提示)。
  • 现在删除花园提供了两个明确、清晰的选项:仅删除花园(保留花卉,重新分配到无花园区域)或删除花园及其中的所有花卉,对于破坏性选项,会有更强烈的第二次确认。
  • 新增“没有花园的花卉”版块,采用真正的分页设计,并可将其移至花园。
  • 现在,花卉功能支持完整的照片时间线:每朵花可拍摄多张照片,按时间顺序排列,每张照片均可添加可选的标题和可设置的封面图片,并且可以安全地删除单个图像。
改进
  • 个人资料页面已重新排序,成就、花园、鲜花和徽章是您首先看到的内容,每个内容都有一个指向其自身页面的真实链接。
  • 管理员 AI 审核队列中的误报“页面可能显示价格或促销信息”标记已得到验证并清除。
  • 当真正的原因是暂时的 RPC 中断时,“管理员概览”、“代币交易”和“代币持有者”页面不再声称“不存在 CGW 铸币”。
固定的
  • “管理翻译”页面不再出现语言翻译进度永久停留在 0% 的情况。如果翻译进程在 Worker 实例回收时中断,系统现在会自动重试,而不是一直卡住。“重试失败”按钮也不会再使卡住的翻译情况变得更糟。
  • 翻译 API 密钥缺失现在是一个明确的、可操作的状态,而不是一个静默的、无法解释的覆盖范围缺口。

v0.20.0

适应天气变化的植物养护、管理可靠性和 Solana RPC 加固

GardenApp 现在会在实际天气预报显示您的花卉面临霜冻或高温风险时发出警告,天气数据通过共享缓存每小时更新一次,而不是每六小时更新一次,并且修复了平台上的几个管理/可靠性问题。

新的
  • 现在,花卉养护建议包括实时天气护理警报(霜冻风险、热应激或暴雨浇水提示),这些警报基于您当前的天气预报和该花卉的品种——仅供参考,绝非毒性或医疗声明。
改进
  • 现在天气信息每小时刷新一次,而不是每六小时刷新一次,同一区域内的所有用户共享一次提供商调用,而不是每个用户一次调用。
  • 天气卡片的位置标题不再将城市作为其自身的区域重复显示(“普罗夫迪夫,普罗夫迪夫”),现在总是显示国家/地区。
  • “管理员 AI 运行”页面会明确标记未进行模型调用的运行,并且可以按触发器进行筛选。
  • 管理员健康页面会解释由 Solana RPC 无法访问导致的降级状态,而不是显示五个绿色对勾而不作任何解释。
固定的
  • 管理员徽章页面不再显示 404s。
  • 公共代币门户的奖励和归属页面现在使用与平台其他部分相同的专用 Solana RPC 配置,而不是默默地回退到不同的端点。
  • 现在,地点自动完成功能出现故障时,会显示为错误信息,而不是显示为“未找到结果”。
  • 现在,两个内部配置错误(缺少内部 API 令牌、缺少原生登录配置)会被记录为异常,而不是静默失败。
  • Token Portal 现在有了错误边界,因此如果页面在该边界崩溃,操作员可以看到该边界处的错误信息,而不是显示默认的错误屏幕。

v0.19.0

多语言支持、地点和花粉

GardenApp 现在可以按需翻译成保加利亚语、西班牙语、德语和法语,让花园的主人可以通过 Google Places 搜索花园的真实位置,并显示该位置的花粉水平。

新的
  • GardenApp 界面可以显示保加利亚语、西班牙语、德语或法语,并可按需翻译和缓存,在翻译进行时可立即切换回英语。
  • 现在可以通过 Google Places 自动完成功能搜索和选择花园的位置,而不再只能手动输入文本。
  • 选定地点的花园会在其详情页面上显示附近花粉水平(草/树/杂草)。
  • 管理中心:新增的“翻译”页面报告每种语言的缓存覆盖率,并允许操作员使某种语言的缓存失效或重试失败的翻译。
改进
  • 管理中心会报告三个可选的 Google 集成(翻译、地点、花粉)是否已配置,但绝不会泄露密钥。

v0.18.2

天气提供商恢复

在预报中断期间,当地天气状况可以保护用户的粗略区域,并且可以通过独立的备用提供商进行恢复。

改进
  • 现在,计划内的天气故障会报告隐私安全的类别,以便运营商能够区分超时、网络、提供商响应和持久性故障,而无需记录用户或位置数据。
  • 管理员现在将位置更新时间与上次成功预测刷新时间分开。
固定的
  • 当首次预测刷新失败时,GardenApp 不再隐藏已保存的粗略位置。
  • 当 Open-Meteo 不可用时,天气刷新会回退到挪威气象局,并给移动代理足够的时间完成两次有界尝试。

v0.18.1

天气可靠性更新

现在,即使提供商省略了可选指标,本地天气也能保持可用的预报,并且该应用程序会在每次刷新时更早地捕获其保护隐私的 Cloudflare 位置上下文。

改进
  • 天气故障现在会留下一个有界限的、对隐私安全的服务器诊断信息以及检测到/不可用的响应信号,而不会暴露 IP 地址、坐标或私人位置数据。
固定的
  • GardenApp 不再因为某个可选天气指标为空或缺失而丢弃整个本地天气预报。
  • 天气刷新会在身份验证工作之前捕获 Cloudflare 的粗略请求位置上下文,从而降低在异步边界上丢失边缘上下文的可能性。

v0.18.0

公众分享鲜花和社区活动

现在所有人都可以查看鲜花链接,支持原生分享、复制链接、创作者个人资料、精选徽章和社区关注功能。天气页面在重新加载后也能正常重试。

新的
  • 从花卉简介和“发现”页面复制或分享花卉的公开链接及其名称。
  • 关注社区种植者,查看他们的粉丝数量以及他们获得的特色徽章。
固定的
  • 现在,扫描二维码即可打开公共社区页面,而不是仅限所有者访问的页面。
  • 不可用的天气信息不再缓存,每次重新加载都会重新检查当前的粗略 IP 位置。
  • 提醒快捷方式现在使用易于识别的铃铛图标。
安全
  • 公开分享和关注使用公开的帖子标识符;私有的花卉、花园、护理、提醒和帐户标识符保留在共享链接之外。

v0.17.0

自动部署更新

现在,打开 CoinGarden 浏览器应用程序即可检测每个新部署的版本,并在等待活动保存和钱包确认完成的同时,自动安全地切换到该版本。

改进
  • 打开的浏览器标签页会自动刷新到稳定且新部署的版本。
  • 更新需要等待活动表单、保存、钱包签名和声明,并保留现有的手动更新控制作为备用方案。
固定的
  • 即使面向用户的版本号没有改变,代码部署也会通过不可变的提交标识被检测到。
  • 一次性构建保护和 service-worker 激活可防止重复重新加载或过期的 PWA shell。

v0.15.0

花卉识别结果不再显示占位符

如果人工智能暂时无法使用,花卉识别功能将不再使用占位符结果。如果当前无法生成准确的识别结果,您将看到清晰的“无法识别此植物”消息,并附有“重试”按钮——绝不会用猜测的答案代替真实答案。此功能适用于网页应用、移动应用以及原生 iOS/Android 应用,无论用户是否登录。

改进
  • 原生应用:现在“识别”屏幕以易于阅读的布局显示植物的名称、学名、置信度和替代匹配项,而不是原始的技术结果。
固定的
  • 当 AI 服务不可用时,花卉识别(无论用户已登录、已访问还是使用原生应用)不再返回占位符结果,而是显示清晰友好的提示信息和一个可用的“重试”按钮。
  • 如果无法提供身份证明,则不再消耗客人的每日免费身份证明次数——尝试次数将自动退还。
开发者
  • 删除了最后一个可能用于伪造识别结果的生产代码路径;开发期间使用的模拟提供程序现在仅存在于测试套件中。
  • 添加了自动测试,可以扫描移动应用和原生应用的源代码,查找旧的占位符结果副本,以防止它悄悄地再次出现。
  • 重写了人工智能/身份识别文档以符合此行为。

v0.14.0

已修复:白皮书页面无法加载的问题

修复了令牌门户网站的白皮书页面可能因服务器错误而无法加载的问题。现在,该页面的内容已直接构建到应用程序中,无需在用户访问时从磁盘获取,因此更加可靠且加载速度更快。

固定的
  • 令牌门户:白皮书页面(/whitepaper)不再间歇性地出现服务器错误而无法加载。其内容现在会在构建时编译到应用程序中,而不是在请求时从文件中读取,这也略微加快了页面加载速度。

v0.13.0

已修复:花卉识别失败并出现连接错误

修复了一个错误,即识别花卉时可能会显示“我们现在无法连接到 CoinGarden”,即使识别本身实际上已经成功——应用程序在正常的、稍慢的 AI 响应有机会返回之前就放弃了并显示错误。

固定的
  • 现在,对于已登录用户和访客来说,识别花卉时不会再出现连接错误,AI 的响应速度也恢复正常。之前,应用内部请求超时时间短于实际识别所需的时间,导致一些原本成功的识别结果被错误地显示为失败。

v0.12.0

Solana 程序编译修复,以及金库跟踪错误修复

修复了链上归属和奖励计划中由未跟踪的依赖版本引起的三个实际编译错误,并修复了一个错误,该错误会导致 CGW 的六个金库中的两个默默地共享一个跟踪地址。

固定的
  • 链上 cgw-vesting 和 cgw-rewards 程序无法针对实际解析的 anchor-lang 库版本(1.1.2,而非预期的 1.0.2——该工作区从未提交过 lockfile)进行编译。已修复由此产生的三个 API 故障,并提交了 lockfile,以防止此类问题再次发生。
  • CGW 的部署跟踪系统之前只有一个地址槽位,用于跟踪两个不同的金库(流动性金库和社区金库,每个金库根据代币规范分别分配 5% 的资金)。现在,每个金库都有自己独立的跟踪槽位,因此实际部署过程中,一个金库的余额永远不会被误读为另一个金库的余额。
开发者
  • 已验证链上程序在此环境下编译和检查无误(使用 cargo check 和 cargo clippy,并将警告视为错误);完整的链上构建/部署仍然受此沙箱可用磁盘空间的限制,已单独跟踪。

v0.11.0

Token Portal 上的 Google 帐户关联问题以及钱包连接问题修复

Token Portal 的个人资料页面现在可以将 Google 帐户链接到您的钱包作为可选的备用身份,并且修复了在实际钱包连接后立即出现“未连接钱包”错误导致钱包连接流程失败的问题。

新的
  • 代币门户:个人资料页面的 Google 部分现已可用——您可以使用 Google 帐户登录,然后将其关联到您的钱包个人资料作为可选的备用身份,或稍后取消关联。钱包登录仍然完全独立,无需使用 Google 帐户。
固定的
  • Token Portal:在“连接钱包”模态框中连接钱包时,即使钱包扩展程序已实际连接,也不会立即错误地显示“未连接钱包”。

v0.10.0

更简洁的用户界面、更智能的AI模型选择器,以及原生应用的基础架构

对管理中心和令牌门户进行了一轮 UI 和文案修复,重建了移动端“关于”页面,使其能够真正描述当前应用程序,添加了可搜索的模型选择器,用于选择每个助手使用的 AI 模型,以及第一个可用的原生 iOS/Android 应用程序框架——虽然还不能安装,但登录和核心屏幕现在可以与 CoinGarden 的真实服务器进行端到端的运行。

新的
  • 管理中心:现在,选择哪个 AI 模型来驱动助手,会显示一个可搜索的列表,并按模型是否兼容(已验证)、是否需要验证或不兼容进行分组——而不是以前那种没有说明的冗长下拉菜单。
  • 移动应用:重新编写了“关于”页面,用更简洁明了的方式描述应用目前实际的功能(植物养护、识别、徽章、代币门户),而不是使用过时的功能描述。
  • CoinGarden 首个可运行的 iOS/Android 原生应用版本目前为内部工程版本:支持使用 Google 账号登录,查看您的花园和花卉,并使用摄像头识别植物。该版本尚未发布到 App Store 或 Play Store。
改进
  • 移动应用:您的个人资料页面现在会显示您真实的园丁数量、花卉数量和徽章数量,而不是之前显示的占位符面板。
  • 管理中心和令牌门户:修复了多处布局和文案问题,包括令牌门户示意图在较窄屏幕上可能重叠的问题。
安全
  • 弥补了之前的一个缺陷,即在将 AI 模型绑定到助手时,没有像主配置屏幕那样检查该模型是否真正支持助手所需的功能(例如,用于植物识别的图像理解)。
开发者
  • CoinGarden 的服务器现在支持原生应用的真实、可撤销的登录会话,该会话独立于网站的登录系统,因为手机应用没有自己的服务器来像网站那样保存共享密钥。

v0.9.0

在管理中心进行 Solana 实时操作

管理中心的令牌页面现在直接从 Solana 读取 CGW 的真实状态,而不是静态占位符,并且在您打开它们时会自动刷新自身——显示当前的真实情况:CGW 已获准实施,但尚未部署到任何集群上。

新的
  • 管理中心代币页面(概览、持有者、金库、安全、交易)现在通过只读的服务器端 RPC 连接直接从 Solana 读取 CGW 的实时部署状态、铸币详情、供应量、金库余额和铸币/冻结权限——绝不会通过浏览器访问。
  • 现在,所有令牌页面在打开时都会自动刷新(令牌页面刷新时间为5秒,全局 shell 页面刷新时间为10-15秒),标签页隐藏时暂停刷新,获得焦点后立即恢复刷新,并在多次读取失败后自动回退——此过程被明确标记为轮询,而非实时套接字连接。
  • 清晰的五状态部署状态读取(未部署、已配置但无法访问、已配置但帐户缺失、已部署且运行正常、已部署但与已批准的规范不匹配)取代了旧的始终为假的占位符。
改进
  • 持有者和交易数据现在始终根据实际读取的内容进行标记——例如“热门代币账户”,而不是隐含的完整持有者列表;以及真实的“无法通过配置的 RPC 获取”,而不是捏造的零值——并且绝不会猜测只读 RPC 连接无法实际确认的值。
  • 令牌门户链接现在源自配置,而不是硬编码的本地地址。
  • Token Overview 语言现在能够始终如一地区分已批准但尚未构建的决策和已实际部署的决策,从而取代了之前仍带有开放式设计提案性质的多个地方。
安全
  • 经自动化测试确认,Solana RPC 连接详细信息和提供程序凭据绝不会出现在管理中心的浏览器包、API 响应或日志中。

v0.8.2

更友好的连接错误信息(在“识别”页面上显示)

如果植物识别无法连接到 CoinGarden 的服务器,您现在将看到一条带有“重试”按钮的简明语言消息,而不是原始错误代码,并且该应用程序在后台静静地检查您的每日免费计数时,不会阻止照片表单。

改进
  • 现在,CoinGarden 服务器连接失败会被记录下来,并生成一个简短的参考代码,您可以提供该代码向技术支持反馈。此外,该故障信息也会显示在运维团队的错误监控系统中——此前,该故障信息仅在监控系统中可见。
固定的
  • 如果照片身份验证信息暂时无法连接到 CoinGarden 的服务器,“身份验证”页面可能会显示原始内部错误代码(“upstream_unavailable”),此时会替换为简明易懂的文字说明和一个“重试”按钮,点击该按钮即可重新提交同一张照片。
  • 现在,对于只读检查(例如每日免费额度),后台连接会在放弃前自动重试一次,因为重试不会导致任何重复操作。

v0.8.1

可随滚动响应的导航栏

现在,移动应用程序的顶部和底部导航栏会随着滚动而变化——页面顶部是一个紧凑的浮动栏,随着阅读的深入,它会平滑地扩展成一个完整的固定栏,而当你返回顶部时,它又会立即缩小。

改进
  • 移动应用:顶部标题和底部导航栏现在会在紧凑的悬浮卡片(页面顶部)和宽大的侧边栏(滚动后)之间切换动画效果,而不是一直保持悬浮状态——这与应用原有的导航体验保持一致。
  • 这种转换只有在真正、刻意滚动时才会触发——切换点周围的小缓冲区会防止它在两种状态之间闪烁。
  • 每个动画元素仍然遵循系统级减少运动的要求,立即切换状态而不是播放动画。

v0.8.0

贡献徽章

全新的“成就”页面旨在表彰用户的实际活动——包括会员里程碑、植物贡献、连续养护记录、植物鉴定和社区参与——并清晰地展示下一步的进展。您可以在个人资料页面展示一些徽章,并在创作者分享的花卉作品旁边看到相应的徽章。

新的
  • 成就页面(/badges):显示您已获得的所有徽章以及所有尚未解锁的徽章,按会员资格、植物贡献、植物养护、植物鉴定、社区和特殊类别分组,每个徽章都显示您距离下一个里程碑的实际进度——绝非虚假百分比。
  • 会员徽章会根据账户使用年限自动发放,从加入账户到六年以上均可享受此福利。
  • 植物贡献徽章根据实际保存里程碑(保存 1 至 2,000 朵花)颁发,而非仅根据 AI 识别尝试
  • 植物养护徽章奖励已记录的养护事件,以及真实的连续 30 天和 100 天养护记录
  • 身份识别徽章奖励的是已确认的身份识别,而不是每次人工智能呼叫。
  • 社区徽章奖励你分享的第一朵花,以及你收到的其他用户的真诚赞赏。
  • 特殊徽章(系统守护者、和谐守护者、社区灯塔、花卉恩惠者、稀有植物馆长)由 CoinGarden 手动颁发,无法自动获得。
  • 徽章详情页面会详细说明所需条件以及您离目标还有多远。
  • 个人资料页面最多可展示五个已获得的徽章——您可以选择哪些徽章可见,未展示的徽章将保持私密状态。
  • 现在,在创作者的公开花卉帖子中,他们的名字旁边会显示一个精选徽章。
  • 每个徽章都会显示一次经过精心处理、动态效果更佳的“成就解锁”通知,无论该徽章是你自己获得的,还是其他人为你获得的。
  • 管理中心新增“生态系统”→“徽章”功能:查看所有徽章及其持有人数,启用或禁用徽章,分配或撤销特殊徽章并注明理由,以及运行一次性核对,为每个现有帐户授予其已符合条件的所有徽章(而不仅仅是最新帐户的徽章)。
安全
  • 只有管理员才能分配或撤销特殊徽章,每次分配、撤销、启用/禁用切换和核对运行都会连同原因一起写入审计日志。
  • 自动获得的徽章没有管理员权限绕过实际评估流程——管理员只能启用/禁用徽章本身,而不能手动授予或撤销自动获得的徽章。
开发者
  • 徽章目录完全基于数据驱动(指标和阈值均从数据库读取),因此添加新徽章无需修改代码。
  • 徽章进度始终根据产品其他部分所依赖的同一数据源表(鲜花、护理事件、标识、鲜花帖子、鲜花帖子点赞数)实时计算——无需单独的进度表,因此不会出现进度不同步的情况。
  • 解锁通知是通过轮询一个未读/已确认的标志位而非推送通道发送的,因此,无论是您自己获得的徽章、他人点赞获得的徽章,还是管理员审核运行获得的徽章,都会以相同的方式显示。

v0.7.6

修复了移动应用分享预览图片被爬虫屏蔽的问题。

移动应用的新分享预览图(0.7.5 版本)本身无法被 Facebook、X 和其他链接展开式爬虫程序访问——它们会被重定向到登录页面而不是看到图片,因为这些爬虫程序不会登录。问题已修复。

固定的
  • 移动应用:opengraph-image 和 twitter-image 路由不在公共路由允许列表中,因此个人页面默认需要登录,导致所有爬虫请求都重定向到登录页面,而不是提供图片——已通过实时验证(HTTP 307 错误),并通过将这两个路由添加到已包含 robots.txt 和 sitemap.xml 的同一允许列表中修复。

v0.7.5

修复了 0.7.4 版本共享镜像中的部署失败问题

之前的版本中的共享预览镜像在本地构建和运行正常,但由于 Cloudflare 特有的兼容性问题,无法部署到网站、移动应用和令牌门户。此问题已修复,镜像现已上线。

固定的
  • 0.7.4 版本发布后,网站、移动应用和令牌门户部署失败——预览图像页面声明了一个运行时设置,而 Cloudflare 构建步骤直接拒绝该设置。移除该设置后(无论声明如何,每个应用都已在该运行时环境中运行),这次已在实际部署构建中进行了验证,而不仅仅是在本地构建中。

v0.7.4

网站、移动应用和代币门户网站的真实股票预览

以前在 Facebook、X 或其他任何地方分享 CoinGarden 链接时,不会显示图片,并且 Facebook 会发出缺少 og:image 的警告。现在,每个公开的应用都会生成品牌预览图,并且移动应用也获得了之前从未有过的社交标题/描述。

新的
  • 为营销网站、移动应用和令牌门户网站创建品牌化的 Open Graph 和 Twitter/X 预览图——每张预览图都采用该应用专属的颜色,并且实时生成,而非使用静态文件以保持同步。
固定的
  • 这款移动应用之前完全没有任何社交预览元数据(没有 og:title、og:description 或 og:image)——分享的 Discover 或鲜花帖子链接只会显示一个简陋的通用预览图。现在,它会显示应用名称、描述和新的预览图。
  • 该营销网站的 Twitter 卡片类型之前设置为小型“摘要”布局,即使提供了大图也无法显示——现在已更正为“summary_large_image”,因为已经有了真正的图片。

v0.7.3

修复了已登录用户的“发现”信息流问题

已登录用户每次访问“发现”页面时都会看到“无法加载社区花卉”的提示——这是应用与个性化推荐功能之间的链接失效,并非真正的服务中断。问题已修复,现在已登录用户可以看到自己选择的花卉,如果暂时没有心仪的花卉,则会显示社区热门花卉。

固定的
  • 发现动态:已登录用户不再看到永久性的“无法加载”错误——个性化动态现在可以正常加载,如果没有个性化推荐,则会回退到社区热门花卉。

v0.7.2

这次真的修复了用户编辑崩溃的问题

之前针对用户编辑页面崩溃问题的修复方案无效——保存操作仍然会导致页面崩溃。而这个方案有效:保存后的重定向现在与管理中心其他位置已验证有效的重定向模式完全一致。

固定的
  • 管理中心:更改用户角色、状态或显示名称后,保存页面不再导致页面崩溃——这次是通过重新测试之前出错的操作(而不仅仅是全新构建)确认的。

v0.7.1

修复了在管理中心保存用户编辑时发生的崩溃问题。

在用户帐户页面保存角色、状态或显示名称更改时,页面可能会崩溃而不是显示更改结果。保存操作本身没有问题——问题在于页面之后没有正确重新加载。此问题已修复。

固定的
  • 管理中心:更改用户角色、状态或显示名称后,保存操作不再导致页面崩溃——确认信息现在可以正确显示。

v0.7.0

管理员用户管理功能已修复,并且修复了两个实际存在的错误。

管理员现在可以直接从管理中心编辑显示名称、更改角色以及启用或禁用帐户,所有更改都会写入审计日志。审计日志本身的问题也已修复(之前它从未真正加载过),并且“运行状况”页面上的版本不匹配警告也已修复,以防止在部署仍在进行时发出误报。

新的
  • 管理中心:用户帐户页面现在支持编辑其公开显示名称、更改其角色(用户/版主/管理员)以及启用或禁用帐户——所有操作均在服务器端强制执行,并保留了产品一贯的最后管理员保护和自动禁用确认机制。
  • 健康页面现在显示“服务/预期版本/已部署版本/提交/状态”表格,因此真正的部署差异可以一目了然,而无需隐藏在版本列表中。
固定的
  • 管理中心的审计日志页面一直显示“此控制台无法识别的响应”的错误——API 路由从未返回页面所需的分页格式。现在问题解决了,页面可以正常加载实际条目。
  • 健康页面上的“版本不匹配”警告持续且错误地触发,原因是 API 自身的自检报告了一个从未随着版本发布而更新的版本字面值。现在,它每次检查都读取同一个共享版本,并且该警告仅在版本不匹配真正持续超过正常部署周期后才会触发,而不会在部署仍在进行时触发。
  • API 上一个孤立的、无法访问的状态端点仍然描述迁移前的区块链;已在同一文件中通过版本修复程序进行了更正。
安全
  • 每次用户管理更改(显示名称、角色、状态)都会连同结果和关联 ID 一起写入审计日志,以便追溯到发起更改的确切请求。
开发者
  • 审计日志现在有了真正的服务器端分页和结果跟踪(`result`、`correlation_id`),而不是之前那种无界、无分页的列表。
  • 现在,当服务的健康信息有效负载报告构建提交时,健康检查会记录该构建提交,这为新的版本表奠定了基础。

v0.6.0

更智能的发现信息流,更少的死胡同

现在,“发现”信息流除了热门花卉外,每天都会新增一条由人工智能精心挑选的植物推荐,每张卡片都配有简短的描述。植物识别更加清晰明了,同时还修复了一些虽小但确实存在的错误,例如“提醒我”按钮显示不全、信息流错误提示等。

新的
  • “发现”页面首页每天都会推送“今日花园精选”,由 CoinGarden AI 从社区热门花卉中每日精选一次;如果 AI 未提供精选结果,则会直接显示热门花卉的原始排名。
  • 现在每张共享花卉卡片都会显示一段摘自植物目录的简短描述。
  • 现在识别植物时,提供了独立的“拍照”和“从图库中选择”操作,而不是之前一个含义模糊的按钮。
  • CoinGarden 无法识别的植物不再是死胡同——点击它现在会在目录中搜索匹配项,或者打开手动搜索,并预先填充建议内容。
改进
  • 识别结果显示选中状态更加清晰——整张卡片均可点击,并带有勾选标记。
  • 现在,上传的照片会经过验证,确认其是否为真正的图像文件,而不是仅仅依靠文件扩展名;对于像 HEIC 这样不受支持的格式,现在会明确提示,而不是默默地失败。
固定的
  • 在狭窄的手机屏幕上,花卉养护建议中的“提醒我”按钮不再会被挤成难以辨认的狭长区域。
  • “发现”信息流不再同时显示“无法加载”和“尚无人发帖”——连接失败和社区为空是不同的情况,现在信息流会显示实际发生的情况,并提供有效的“请重试”选项。
开发者
  • CoinGarden 所有应用程序的搜索引擎元数据已修正——规范链接、站点地图和 robots.txt 文件现在指向实际部署的 CoinGarden 地址,而不是指向碰巧已上线的无关域名。
  • 已确认管理中心的私有页面在生产环境中已完全从搜索索引中排除。

v0.5.0

真正的植物目录

现在,通过植物的通用名称进行搜索已经恢复正常,包括“玫瑰”在内。植物目录从最初的约二十种室内植物扩展到数百种真正的物种、属和科,无论是旧的学名还是通用名称,都能找到正确的结果。

新的
  • 植物目录从约 20 种精心挑选的室内植物,发展为涵盖约 440 个物种、属和科的真实分类体系,包括室内植物、花园花卉、玫瑰、兰花、多肉植物和仙人掌、常见乔木和灌木、香草、蔬菜和水果
  • 现在搜索旧的或别名的学名就能找到正确的、目前公认的物种。
  • 搜索属名(例如“Rosa”、“Hibiscus”、“Monstera”)会显示 CoinGarden 已知的该属中的所有物种。
  • 可容错搜索常用植物名称
  • 管理中心新增了植物目录页面:显示覆盖率统计信息、每条条目的数据来源,以及哪些搜索结果为空——这样,目录中的空白就清晰可见,不再是无人知晓的隐患。
改进
  • 人工智能植物识别技术在仅能确定植物属名而非具体种名时更为准确——它现在会直接指出属名,而不是猜测具体种名。
  • “搜索植物目录”界面会在您开始搜索前解释需要输入的内容,并建议您尝试使用更宽泛的关键词,而不是仅仅显示“没有匹配项”。
固定的
  • 在植物目录中搜索“玫瑰”(以及许多其他常用名)不再返回“未找到匹配物种”的错误信息——目录在生产环境中缺少数据,而不仅仅是缺少搜索逻辑。

v0.4.0

一起赏花

CoinGarden 开放:无需注册即可浏览社区的花卉,每天最多可识别五种植物;随时分享您自己的花卉;登录后即可获得 AI 个性化的发现信息流。

新的
  • 仪表盘上的公开花卉发现动态——社区最受欢迎的分享花卉,无需注册即可查看
  • 作为访客,您每天最多可以识别五种植物;您的免费限额每天自动重置。
  • 您可以随时与社区分享鲜花——明确的确认信息会显示哪些内容会公开,您也可以随时取消发布。
  • 点赞你喜欢的花卉(需登录),看看社区成员都喜欢什么。
  • 登录用户可获得个性化推送,其中包含基于植物目录的简短人工智能花园笔记。
  • 用于分享的公开显示名称——在您选择一个名称之前,您的显示名称将是“CoinGardener”,而不是您的 Google 用户名或电子邮件地址。
  • 我的花园:您的专属植物养护中心——花卉、花园、养护事项和提醒——已从控制面板移至此处,并附有全新概览。
改进
  • 底部导航栏现在会根据您的登录状态进行调整:登录后显示“发现”、“识别”、“我的花园”和“个人资料”;以访客身份登录时显示“发现”、“识别”、“首页”和“登录”。
  • 登录页面解释了账户的实际作用——没有账户,浏览和每日身份验证仍然免费。
安全
  • 您的私人花卉、花园、笔记、养护记录和提醒永远不会公开显示——仅分享您批准的字段副本,作为快照。
  • 服务器端采用匿名哈希访客 ID 来强制执行访客身份识别限制,绝不会使用 IP 地址或电子邮件地址。
  • 点赞数由服务器计算,数据库中保证每人至少有一个点赞数。

v0.3.0

每个人工智能代理都在工作

CoinGarden 的所有十二个 AI 代理现在都有了实际的实现,可以根据成本和能力选择自己的模型,并按计划运行。

新的
  • 所有十二个人工智能代理均已部署并运行:聊天、CGW 监控、每日系统审查、移动端洞察、安全分级、工厂数据质量、产品洞察、成本优化、发布质量和 CGW 文档验证
  • 代理会自动选择自己的模型——选择成本最低、功能经过验证且通过该代理验收测试的模型。
  • 已安排的代理人现在确实在运行,调度员每十五分钟调度一次,最多只送达一次。
  • 需要人工关注的结果审核队列
  • 管理中心主页每日更新的 AI 摘要,基于真实运行数据构建。
  • 按需运行任何分析代理,按下按钮前会显示其预估费用。
改进
  • 每个代理都使用 SQL 计算数据,然后仅要求模型解释这些数据,这种方式成本更低,出错的概率也更低。
  • 报告会根据所提供的证据进行评分,因此,如果某个数据是模型虚构的,则会被标记出来而不是公布。
  • 模型能力检查不再将纯文本模型报告为无法生成结构化输出。
  • OpenAI 模型的定价现在已经公开,因此成本比较是真实的,而不是空洞的。
安全
  • 聊天助手只能读取与其对话者的数据,这是通过代码而非指令强制执行的。
  • CGW 监控本质上是只读的:不存在签名密钥,也没有提供写入路径。

v0.2.0

AI 控制中心和平台发布

增加了集中式 AI 提供商管理,改进了花卉识别,并引入了带有更新通知的应用内版本说明。

新的
  • 用于在一个地方管理 OpenAI 和 Anthropic 连接的 AI 控制中心
  • 花卉识别现在通过可配置的人工智能代理运行,溯源信息会显示每个建议是由哪个模型生成的。
  • CoinGarden 应用的每个页面 /changelog 中都提供了发布说明。
  • 当有新版本部署时,应用内会发出通知。
  • 通过手机应用将 CoinGarden 添加到您的主屏幕
改进
  • 识别结果现在带有验证分数,您可以随时进行更正。
  • 管理员可以在切换模型之前,从准确性、延迟和成本等方面对模型进行比较。
  • 现在每个应用程序页脚都会显示您正在运行的版本。
固定的
  • 即使存在最近的错误,管理中心概览也不会再无法加载。
  • 管理员AI页面现在在窄屏幕上布局正确。
安全
  • AI提供商密钥以加密形式存储,永远无法从系统中读取。
开发者
  • 数据库迁移现在会在部署时自动应用。
  • 持续集成会运行完整的测试套件

v0.1.1

管理与运营中心

引入私有运维控制台,提供服务运行状况、事件、错误监控和产品分析功能。

新的
  • 管理与运维中心,提供实时服务运行状况和事件历史记录
  • 集中式错误监控及异常分组
  • 用户和产品分析
改进
  • 植物养护、花园和提醒设置现在会保存到 CoinGarden API 而不是您的浏览器中。

v0.1.0

基础

CoinGarden.World 的首个版本:花园、花卉、植物养护和 CGW 代币门户。

新的
  • 创建花园并添加带有照片识别功能的花卉
  • 植物养护提醒和养护历史
  • CGW代币门户网站及其公布的项目代币经济学
  • 在所有 CoinGarden 应用中使用 Google 登录
ZH