Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Global asset view reports failures and unmatched searches as an empty cache

未关闭
#4,385 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

@kohjunhao 已经在做这个了。

开始于 2026年10月2日。

  • #4394 来自 @lorenzozanee —— 已关闭,未合并
  • #4903 来自 @kohjunhao —— 未关闭

评估

难度
3/5
预计耗时
1-2 天
新手友好度
68/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
typescript

调研方向

Read packages/studio/AGENTS.md, then inspect the request and filtered-empty branches in packages/studio/src/components/sidebar/GlobalAssetsView.tsx and its caller in AssetsTab.tsx. Run bun run --cwd packages/studio test and add component coverage for loading, failures, retries, empty results, unmatched searches, recovery, and unmount behavior. Done means each state has distinct messaging while existing rows and filtering remain intact.

由索引模型根据 Issue 内容生成。

描述

bug difficulty/easy triage/ready

Studio's global asset list reports “No assets in the global cache yet” for three different situations: an actual empty cache, a failed request, and a search that matches none of the existing assets. This tells users that their cache is empty when the data is unavailable or merely filtered out.

Reproduction and evidence

Verified against origin/main 86fa10ced4297bfd9f4fe67b6767afae7a07fd3c on September 23, 2026. Relevant source is unchanged from the browser probe.

In Studio's Assets panel, select the global asset view:

  1. Return HTTP 500 from /api/assets/global, or reject that request. The view displays the empty-cache message.
  2. Return { "assets": [{ "id": "logo", "type": "image", "description": "Brand logo" }] } successfully and search for zzz. The view again displays the empty-cache message.
  3. Clear the query. The existing Brand logo row reappears.

All these cases were executed in Chrome with the actual GlobalAssetsView component and mocked fetch responses. A successful response containing zero assets was also checked and currently displays the same message. This is an isolated component reproduction; the Assets panel caller was inspected in source rather than exercised through the complete application.

Scope

Represent loading, request failure, empty successful result, and no matching search results separately. Offer a retry for request failures using the existing endpoint. Preserve the current asset rows and filtering behavior.

Acceptance criteria
  • A non-OK response or rejected request displays a failure message rather than an empty-cache explanation.
  • Retrying a failed request can recover to a populated or genuinely empty result; there is no automatic retry loop.
  • A successful empty response displays the existing empty-cache guidance.
  • When the cache contains records but the query matches none, the view says there are no matching results.
  • Clearing the query restores the existing records without requiring another request.
  • Loading remains identifiable, and a response arriving after unmount does not update the disposed view.
  • Component tests cover these states and recovery using controlled fetch responses.
Code pointers and validation

Difficulty: easy — bounded component state and rendering behavior. Before starting, check current assignments and linked PRs. Open UI migration PRs #3625, #3626, #3774 and #3776 make only a CSS-class change in this component; their inspected patches do not address these states.

Reviewer/mentor is being arranged. Comment with your intended approach before starting so ownership can be coordinated; this issue is not yet a newcomer invitation.

主要语言
TypeScript
星标
54.1k
派生
4.9k
平均合并
7 小时 18 分钟
30 天内合并 PR
784

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

heygen-com/hyperframes 的其他 Issue

查看 heygen-com/hyperframes 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。