What's New · 产品迭代时间轴

更新日志

每一次发布都可追溯:性能、功能、视觉、数据、基建、修复,一目了然。 最近更新:2026-04-18

17
最近 7 天
17
累计条目

2026年4月20日 – 4月26日

7 项
  • 性能 2026-04-20

    性能:工具图标不再内联 data URI(列表/首页 HTML 体积)

    `app/Http/Controllers/ToolStoredIconController.php`;路由 `GET /tool-icon/{tool}` → `tools.stored-icon`(仅已发布、校验与 Tool 模型一致,二进制响应 + ETag + `Cac…

    查看全部改动(5 条)
    • 备份(优化前):仓库根目录 `code-backups/kaixinniao.com-pre-opt-20260420-192353.zip`(含 app、bootstrap、config、database、public、resources、routes、scripts、tests 及 composer/package 清单,不含 vendor/node_modules)。
    • 根因(有据):Network 中大量 `data:image/...` 且 Initiator 为文档,与 `Tool::getDisplayThumbnailUrlAttribute` 在存在有效 `icon_base64` 时直接返回整段 data URI 一致;HTML 巨大导致 DOMContentLoaded 极慢。
    • 新增:`app/Http/Controllers/ToolStoredIconController.php`;路由 `GET /tool-icon/{tool}` → `tools.stored-icon`(仅已发布、校验与 Tool 模型一致,二进制响应 + ETag + `Cache-Control: public, max-age=31536000, immutable`)。
    • 修改:`app/Models/Tool.php`(入库位图改为 `route('tools.stored-icon')`;`rawSelectHasBitmapIconHint` / `isStoredBitmapIconPayload` / `shouldServeStoredBitmapIconAsHttp`);`app/Http/Controllers/ToolController.php`(列表查询不再 SELECT `icon_base64`,改为 SQL 表达式列 `has_bitmap_icon_hint`;缓存键 `category_tools_*_st5`、`tools_index_categories_subtree_v6`);`routes/web.php`;`app/Support/ToolPublicDisplayCache.php`、`app/Console/Commands/SyncToolsToSubcategoriesCommand.php`、`database/seeders/ToolSubcategoriesSeeder.php`(补充 forget v6)。
    • 部署后:建议 `php artisan cache:clear` 或至少清上述键;可选 `php artisan route:clear`。
    app/Http/Controllers/ToolStoredIconController.php app/Models/Tool.php app/Http/Controllers/ToolController.php routes/web.php app/Support/ToolPublicDisplayCache.php app/Console/Commands/SyncToolsToSubcategoriesCommand.php +1 个文件
  • 修复 2026-04-20

    顶栏:窄屏「更多」收纳主导航(登录/注册/提交工具固定)

    为「探索」至「鲲穹AI工具箱」各包一层 `data-kx-nav-chunk`;轨道末增加「更多」`data-kx-nav-more-root` + 面板;`overflow-x: clip`;脚本在 `min-width: 640px` 下按轨道 `clientWidth` …

    查看全部改动(3 条)
    • 文件:`resources/views/layouts/app.blade.php`
    • 根因:中间导航 `kx-topbar__center-track` 为单行 flex,项多 + 右侧操作区占位后,中等宽度下主链路与下拉层叠/挤压(用户反馈重叠)。
    • 变更:为「探索」至「鲲穹AI工具箱」各包一层 `data-kx-nav-chunk`;轨道末增加「更多」`data-kx-nav-more-root` + 面板;`overflow-x: clip`;脚本在 `min-width: 640px` 下按轨道 `clientWidth` 与项宽 + gap +「更多」按钮宽计算可容纳前缀项数,尾部项移入面板;`ResizeObserver` + `resize` 重算。`#kxTopbarActions`(登录/注册/提交工具)仍在 grid 右列,不参与折叠。
    resources/views/layouts/app.blade.php
  • 修复 2026-04-20

    顶栏:「更多」下拉遮挡正文

    CSS 将 `[data-kx-nav-more-root] > .kx-nav-dropdown` 改为 **向上展开**(`bottom: calc(100% + 0.25rem)`,`z-index: 130`);`[data-kx-nav-more-panel] .kx…

    查看全部改动(3 条)
    • 文件:`resources/views/layouts/app.blade.php`
    • 现象(截图):「更多」面板在顶栏下方展开,盖住首屏分类卡片等区域。
    • 变更:CSS 将 `[data-kx-nav-more-root] > .kx-nav-dropdown` 改为 **向上展开**(`bottom: calc(100% + 0.25rem)`,`z-index: 130`);`[data-kx-nav-more-panel] .kx-nav-group .kx-nav-dropdown` 明确在面板内 **自上而下** 展开;`initTopbarDropdowns` 对 `data-kx-nav-more-root` **取消 mouseenter/mouseleave**,仅 **点击** 展开/收起,减少误挡;点击面板内链接后自动收起。
    resources/views/layouts/app.blade.php
  • 修复 2026-04-20

    顶栏:「更多」恢复向下并加宽

    「更多」主面板改回 **向下**(`top: 100%`,`right: 0` 右对齐);`min-width: 20rem`,`width: min(36rem, calc(100vw - 2rem))`,`max-width: calc(100vw - 2rem)`;`[d…

    查看全部改动(3 条)
    • 文件:`resources/views/layouts/app.blade.php`
    • 用户反馈:不要向上展开,希望右侧下拉 **加宽**。
    • 变更:「更多」主面板改回 **向下**(`top: 100%`,`right: 0` 右对齐);`min-width: 20rem`,`width: min(36rem, calc(100vw - 2rem))`,`max-width: calc(100vw - 2rem)`;`[data-kx-nav-more-panel]` 同步 `min-width: 20rem`。保留仅点击展开与点链接收起;子项内二级下拉规则不变。
    resources/views/layouts/app.blade.php
  • 部署/基建 2026-04-20

    部署:push_to_server.py

    本机执行:仓库根 `python push_to_server.py`,退出码 0;远端 cache/config/view clear;`Nothing to migrate`;`hub:seed-verticals` 条数与上次一致(84/88/83/616)。

    查看全部改动(1 条)
    • 本机执行:仓库根 `python push_to_server.py`,退出码 0;远端 cache/config/view clear;`Nothing to migrate`;`hub:seed-verticals` 条数与上次一致(84/88/83/616)。
  • 修复 2026-04-20

    企业 / 人物 / 机器人列表分页与摘要

    企业 / 人物名录改为每页 **12** 条(类常量 `HUB_DIRECTORY_PER_PAGE`);名录标题下增加「第 x–y 条,共 z 条」;机器人名录对筛选后列表做 **LengthAwarePaginator(每页 12)**,`MarketingPageSeo:…

    查看全部改动(3 条)
    • 文件:`app/Http/Controllers/HubDirectoryController.php`、`app/Http/Controllers/DiscoveryController.php`、`resources/views/hub/enterprises.blade.php`、`resources/views/hub/figures.blade.php`、`resources/views/discovery/robots.blade.php`
    • 根因(与代码核对):企业、人物已 `paginate(24)` 但单页仍偏长;机器人页 `$rows` 为全量 Collection,名录区无分页。
    • 变更:企业 / 人物名录改为每页 **12** 条(类常量 `HUB_DIRECTORY_PER_PAGE`);名录标题下增加「第 x–y 条,共 z 条」;机器人名录对筛选后列表做 **LengthAwarePaginator(每页 12)**,`MarketingPageSeo::forRequestPaginator` 与底部分页链;Hero「当前列表」改为「当前筛选」+ `total()`。
    app/Http/Controllers/HubDirectoryController.php app/Http/Controllers/DiscoveryController.php resources/views/hub/enterprises.blade.php resources/views/hub/figures.blade.php resources/views/discovery/robots.blade.php
  • 修复 2026-04-20

    顶栏:「更多」宽度减半 + 再点收起

    `min-width` 与 `width` 上限各减半(`10rem` / `18rem`);`:not(.is-open) > [data-kx-nav-more-panel]` 强制 `display:none`;「更多」触发器 `z-index:135` 避免与面板叠层抢…

    查看全部改动(3 条)
    • 文件:`resources/views/layouts/app.blade.php`
    • 根因(与代码核对):① 面板宽度沿用 `min(36rem)` / `min-width:20rem`,与短链列表不匹配。② `is-open` 仅改触发器颜色,**未**用 CSS 控制 `[data-kx-nav-more-panel]` 的 `display`,JS 已 `remove('is-open')` 时面板仍可保持绘制,表现为「再点不收起」。③ 收纳进面板的 chunk 内若含 `.kx-nav-group`,其 `mouseenter`→`openGroup`→`closeAll` 会摘掉「更多」的 `is-open`,与点击态叠加。
    • 变更:`min-width` 与 `width` 上限各减半(`10rem` / `18rem`);`:not(.is-open) > [data-kx-nav-more-panel]` 强制 `display:none`;「更多」触发器 `z-index:135` 避免与面板叠层抢点击;`closeAll` 在「当前要打开的分组位于面板内」时不关闭 `data-kx-nav-more-root`。
    resources/views/layouts/app.blade.php

2026年4月13日 – 4月19日

10 项
  • 视觉/交互 2026-04-18

    skills 列表页信息架构

    将「标签/话题」从「精选」与主列表之间移入顶部分类白卡片内(分类与标签同一筛选区);删除原独立标签区块。

    查看全部改动(3 条)
    • 文件:resources/views/skills/index.blade.php
    • 变更:将「标签/话题」从「精选」与主列表之间移入顶部分类白卡片内(分类与标签同一筛选区);删除原独立标签区块。
    • 原因:避免「分类 → 精选 → 标签 → 列表」的夹心布局;与 SkillController 中精选为全站 Top10、列表受 category/tag 控制的行为一致,精选副文案已写明「全站 / 下方为当前筛选」。
    resources/views/skills/index.blade.php
  • 视觉/交互 2026-04-18

    skills 列表页区块顺序

    顺序调整为 Hero → 精选 → 分类+标签卡片 → 列表;无精选数据时分类卡片仍紧贴 Hero(沿用原上边距)。精选副文案改为「不受下方分类/标签筛选」。

    查看全部改动(3 条)
    • 文件:resources/views/skills/index.blade.php
    • 变更:顺序调整为 Hero → 精选 → 分类+标签卡片 → 列表;无精选数据时分类卡片仍紧贴 Hero(沿用原上边距)。精选副文案改为「不受下方分类/标签筛选」。
    • 原因:产品侧希望「高光内容」与「筛选工具区」层次更分明。
    resources/views/skills/index.blade.php
  • 视觉/交互 2026-04-18

    提示词频道搜索

    在 Hero 内增加全页可见的 GET 搜索(保留 pcat/group 的 hidden);移除列表区重复搜索框;⌘K/Ctrl+K 聚焦;控制器对 q 做长度限制、兼容 search 参数;检索字段增加 content_html、usage_guide、seo_keywor…

    查看全部改动(3 条)
    • 文件:resources/views/hub/prompts-index.blade.php、app/Http/Controllers/HubDirectoryController.php
    • 变更:在 Hero 内增加全页可见的 GET 搜索(保留 pcat/group 的 hidden);移除列表区重复搜索框;⌘K/Ctrl+K 聚焦;控制器对 q 做长度限制、兼容 search 参数;检索字段增加 content_html、usage_guide、seo_keywords、slug 及 tags/group_labels(MySQL/MariaDB 用 CAST)。
    • 原因:原搜索仅在「非首页」分支展示,/prompt 首页无入口;与技能库搜索体验对齐。
    resources/views/hub/prompts-index.blade.php app/Http/Controllers/HubDirectoryController.php
  • 视觉/交互 2026-04-18

    提示词 Hero 搜索框尺寸

    搜索条与 skills/index Hero 一致:`mt-10`、`pl-5`、输入 `py-4 pl-3 pr-2 text-base`、提交 `px-5 py-4`;「清除筛选」改为同高 `rounded-2xl px-5 py-4 text-base`。

    查看全部改动(3 条)
    • 文件:resources/views/hub/prompts-index.blade.php
    • 变更:搜索条与 skills/index Hero 一致:`mt-10`、`pl-5`、输入 `py-4 pl-3 pr-2 text-base`、提交 `px-5 py-4`;「清除筛选」改为同高 `rounded-2xl px-5 py-4 text-base`。
    • 原因:原使用 text-sm / py-3.5,视觉比技能页搜索条偏小。
    resources/views/hub/prompts-index.blade.php
  • 修复 2026-04-18

    用户体验 Sprint1(Backlog:A1/A2/C1/D2 部分落地)

    resources/views/partials/skills-active-filter-summary.blade.php(技能首页/分类页复用);resources/views/errors/404.blade.php(extends layouts.app,noinde…

    查看全部改动(4 条)
    • 关联需求:列表筛选一句话说明(A1)、无结果可操作空态(A2)、窄屏防整页横向溢出(C1)、404 友好页(D2)。
    • 新增:resources/views/partials/skills-active-filter-summary.blade.php(技能首页/分类页复用);resources/views/errors/404.blade.php(extends layouts.app,noindex,链到探索中心/技能库/提示词/首页)。
    • 修改:resources/views/skills/index.blade.php(min-w-0 overflow-x-hidden、引入筛选摘要、空态按钮与 focus-visible);resources/views/skills/category.blade.php(同上摘要+空态、清除关键词 URL 用 route 数组合并 slug);resources/views/hub/prompts-index.blade.php(根与内容区 min-w-0 overflow-x-hidden、模型导航容器 w-full min-w-0、列表模式筛选摘要、无结果空态、Hero 搜索框 focus-visible)。
    • 溯源:若线上 404 未命中自定义视图,检查 `APP_DEBUG` 与 `bootstrap/app.php`/`Handler` 是否覆盖默认渲染;空态链接依赖路由名 `discover.hub`、`skills.index`、`skills.ranking.popular`、`discover.prompts`。
  • 修复 2026-04-18

    自检(助手侧,非生产浏览器实测)

    静态检查:Blade 中 `route('skills.category', array_merge(['slug' => $category->slug], …))` 与路由参数名一致;提示词空态使用 Hero 内已定义的 `$promptSearchClearUrl`;40…

    查看全部改动(3 条)
    • 命令:`php artisan view:cache` 在本机失败,报错 `Call to undefined function Illuminate\Support\mb_split()`(PHP 未启用 mbstring),故无法用 Laravel 编译视图作为自动化 gate;与此前 PHPUnit 缺 mbstring 一致。
    • 静态检查:Blade 中 `route('skills.category', array_merge(['slug' => $category->slug], …))` 与路由参数名一致;提示词空态使用 Hero 内已定义的 `$promptSearchClearUrl`;404 所用路由名与 web.php 中 `discover.hub` 等一致。
    • 已知体验点:技能「分类页」因传入 `fixedCategory`,筛选摘要条在「无关键词/无标签/默认排序」时仍会显示「当前列表·分类「…」」,与标题略重复,可后续收紧显示条件。
  • 数据扩充 2026-04-18

    探索中心数据扩充(下载中心 / 人物与 IP / 企业库-机器人向)

    企业库 AiEnterprise:新增 8 条(Boston Dynamics、Figure AI、宇树、Agility、傅利叶、越疆 Dobot、Universal Robots、达闼),侧重机器人/自动化与官网外链。

    查看全部改动(5 条)
    • 文件:database/seeders/ContentHubSeeder.php(仅扩展 `enterprises()`、`figures()`、`downloads()` 返回数组;仍为 `updateOrCreate` 幂等)。
    • 企业库 AiEnterprise:新增 8 条(Boston Dynamics、Figure AI、宇树、Agility、傅利叶、越疆 Dobot、Universal Robots、达闼),侧重机器人/自动化与官网外链。
    • 人物 AiFigure:新增 9 条;学术向(吴恩达、Hinton、Bengio)标题避免出现 `FigureSegment` 中产业关键词以免误判;产业向 1 条(Dario Amodei);IP 向含「机器人 IP」「虚拟形象 IP」「虚拟人 IP」以与 `App\Support\FigureSegment` 筛选一致。
    • 下载 DownloadHubItem:新增 12 条,覆盖 software / mobile_app / oss_model / resource,含 LM Studio、vLLM、Docker、VS Code、DeepSeek/Claude/Perplexity 应用、Mistral/Qwen、SD WebUI、PyTorch、Ubuntu、Node.js 等;`github_stars` 仅填有公开星数参考项。
    • 执行:`php artisan db:seed --class=ContentHubSeeder --force`;本机因 `could not find driver (mysql)` 未写入数据库,需在已配置 PDO MySQL 的环境执行同一命令生效。
  • 数据扩充 2026-04-18

    机器人专区 config 扩充(与上条区分:/discover/robots 读配置而非 DB)

    `catalog` 数组追加 8 条(傅利叶、普渡、高仙、擎朗、越疆协作臂、1X、达闼、非夕),`facet` 仅使用既有 `humanoid|quadruped|service`;普渡 `is_featured` 为 true 以丰富精选区。

    查看全部改动(3 条)
    • 文件:config/robots.php
    • 变更:`catalog` 数组追加 8 条(傅利叶、普渡、高仙、擎朗、越疆协作臂、1X、达闼、非夕),`facet` 仅使用既有 `humanoid|quadruped|service`;普渡 `is_featured` 为 true 以丰富精选区。
    • 部署:改配置即生效,无需 seed;若使用 `php artisan config:cache` 需重新缓存配置。
    config/robots.php
  • 视觉/交互 2026-04-18

    机器人专区视觉色系

    去掉主色青绿(emerald/teal/cyan),Hero 与下载中心对齐为 `violet/indigo/slate` 渐变;频道玻璃面板、形态卡片、精选与名录中的强调色、描边、阴影、hover 与 `focus-visible` 统一为靛紫系;`$facetAccent`…

    查看全部改动(3 条)
    • 文件:resources/views/discovery/robots.blade.php
    • 变更:去掉主色青绿(emerald/teal/cyan),Hero 与下载中心对齐为 `violet/indigo/slate` 渐变;频道玻璃面板、形态卡片、精选与名录中的强调色、描边、阴影、hover 与 `focus-visible` 统一为靛紫系;`$facetAccent` 中四足改为 indigo→blue、服务改为 indigo→violet;名录左侧色条与上述一致。
    • 原因:与 skills、downloads-index、figures 的探索频道气质统一,避免机器人页单独偏绿。
    resources/views/discovery/robots.blade.php
  • 数据扩充 2026-04-18

    机器人专区卡片品牌图

    新增 `$robotBrandLogoUrl`:`config/robots.php` 条目中可选 `logo_url` 优先;否则用官网 `website` 的 host 请求 `https://unavatar.io/{host}`。精选区头图与名录左侧头像展示该图,`on…

    查看全部改动(3 条)
    • 文件:resources/views/discovery/robots.blade.php
    • 变更:新增 `$robotBrandLogoUrl`:`config/robots.php` 条目中可选 `logo_url` 优先;否则用官网 `website` 的 host 请求 `https://unavatar.io/{host}`。精选区头图与名录左侧头像展示该图,`onerror` 时回退为首字渐变块。
    • 说明:依赖第三方 `unavatar.io`;若后续 CSP 限制外链图片,需放行该域或为各条补 `logo_url` 指向本站 `public/` 静态资源。
    resources/views/discovery/robots.blade.php

日志根据仓库根 修改记录.txt 自动解析 · 每 10 分钟刷新一次缓存