@morehao/dsh-github-trending 0.8.13 → 0.8.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/client.js CHANGED
@@ -162,7 +162,6 @@ var DICT = {
162
162
  "scope.weekly": "每周",
163
163
  "scope.monthly": "每月",
164
164
  "scope.languages": "语言",
165
- "scope.topN": "每语言条数",
166
165
  "card.schedule.title": "调度",
167
166
  "schedule.enabled": "定时运行",
168
167
  "schedule.periods": "自动产出周期",
@@ -359,6 +358,7 @@ var DICT = {
359
358
  "runs.prUnknown": "状态未知",
360
359
  "runs.prCreated": "PR 已创建",
361
360
  "runs.legacy": "旧记录",
361
+ "runs.degraded.tag": "降级",
362
362
  "runs.legacyHint": "旧记录没有预览副本,内容哈希使用旧算法,不能与 v2 直接比较。",
363
363
  "runs.detail.coreModel": "核心 / 模型",
364
364
  "runs.detail.date": "运行日期",
@@ -387,6 +387,7 @@ var DICT = {
387
387
  "digest.copied": "已复制",
388
388
  "digest.openPr": "打开 PR",
389
389
  "digest.truncated": "已截断到 512 KB",
390
+ "digest.degraded.badge": "本次为降级数据:抓取或摘要存在降级,详见下方说明",
390
391
  "digest.loading": "读取预览…",
391
392
  "digest.tag.preview": "有预览",
392
393
  "digest.tag.failed": "运行失败",
@@ -714,7 +715,6 @@ var DICT = {
714
715
  "scope.weekly": "Weekly",
715
716
  "scope.monthly": "Monthly",
716
717
  "scope.languages": "Languages",
717
- "scope.topN": "Per language",
718
718
  "card.schedule.title": "Schedule",
719
719
  "schedule.enabled": "Scheduled runs",
720
720
  "schedule.periods": "Auto periods",
@@ -911,6 +911,7 @@ var DICT = {
911
911
  "runs.prUnknown": "State unknown",
912
912
  "runs.prCreated": "PR created",
913
913
  "runs.legacy": "Legacy",
914
+ "runs.degraded.tag": "Degraded",
914
915
  "runs.legacyHint": "Legacy records have no preview copy and use the old hash algorithm, so they cannot be compared with v2 directly.",
915
916
  "runs.detail.coreModel": "Core / model",
916
917
  "runs.detail.date": "Run date",
@@ -939,6 +940,7 @@ var DICT = {
939
940
  "digest.copied": "Copied",
940
941
  "digest.openPr": "Open PR",
941
942
  "digest.truncated": "Truncated at 512 KB",
943
+ "digest.degraded.badge": "Degraded data: fetching or summarizing was degraded — see the note below",
942
944
  "digest.loading": "Loading preview…",
943
945
  "digest.tag.preview": "Preview",
944
946
  "digest.tag.failed": "Failed",
@@ -1333,6 +1335,7 @@ var CSS = `
1333
1335
  .dshgt-empty{padding:48px 0;text-align:center;color:var(--gt-muted);font-size:13px;}
1334
1336
  .dshgt-tag{display:inline-flex;align-items:center;height:20px;padding:0 7px;border:1px solid var(--gt-border);border-radius:999px;font-size:11px;color:var(--gt-muted);background:var(--gt-bg);white-space:nowrap;}
1335
1337
  .dshgt-inline-tag{margin-left:6px;vertical-align:1px;}
1338
+ .dshgt-tag-warn{color:var(--gt-warn,#c08a00);border-color:color-mix(in srgb,var(--gt-warn,#c08a00) 45%,var(--gt-border));}
1336
1339
 
1337
1340
  /* ——— 顶部身份条(第一行):名称 / 版本 / 完整包名 / GitHub / 检查更新 ——— */
1338
1341
  .dshgt-idbar{display:flex;align-items:center;gap:9px;height:48px;padding:0 var(--dshgt-inset);border-bottom:1px solid var(--gt-border);flex:none;background:var(--gt-bg);min-width:0;}
@@ -1343,7 +1346,7 @@ var CSS = `
1343
1346
  .dshgt-id-sep{width:1px;height:16px;background:var(--gt-border);flex:none;}
1344
1347
  .dshgt-id-pkg{appearance:none;border:0;background:none;padding:2px 4px;border-radius:5px;color:var(--gt-muted);cursor:pointer;font-size:12px;max-width:min(44vw,360px);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto;}
1345
1348
  .dshgt-id-pkg:hover{color:var(--gt-fg);background:color-mix(in srgb,var(--gt-fg) 5%,var(--gt-bg));}
1346
- .dshgt-idbar-right{margin-left:auto;position:relative;display:flex;align-items:center;gap:10px;flex:none;min-width:0;}
1349
+ .dshgt-idbar-actions{margin-left:auto;position:relative;display:flex;align-items:center;gap:10px;flex:none;min-width:0;}
1347
1350
  .dshgt-id-gh{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;color:var(--gt-muted);border:1px solid transparent;flex:none;}
1348
1351
  .dshgt-id-gh:hover{color:var(--gt-fg);background:color-mix(in srgb,var(--gt-fg) 6%,var(--gt-bg));border-color:var(--gt-border);}
1349
1352
  /* 更新入口:版本徽标 + 纯图标刷新,作为一个整体;与 GitHub 图标同形制 */
@@ -1464,6 +1467,8 @@ var CSS = `
1464
1467
  .dshgt-seg button.on{background:var(--gt-card);color:var(--gt-fg);font-weight:600;white-space:nowrap;}
1465
1468
  .dshgt-digest-doc{padding:26px 32px 22px;min-width:0;}
1466
1469
  .dshgt-doc-meta{display:flex;gap:12px;flex-wrap:wrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--gt-muted);padding-bottom:12px;border-bottom:1px solid color-mix(in srgb,var(--gt-border) 70%,transparent);}
1470
+ .dshgt-degraded-badge{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:9px 12px;border:1px solid color-mix(in srgb,var(--gt-warn,#c08a00) 45%,var(--gt-border));border-radius:8px;font-size:12px;line-height:1.5;color:var(--gt-fg);background:color-mix(in srgb,var(--gt-warn,#c08a00) 12%,transparent);}
1471
+ .dshgt-degraded-icon{font-size:14px;line-height:1;}
1467
1472
  .dshgt-digest-raw{margin:0;padding:22px 28px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.75;white-space:pre-wrap;word-break:break-word;color:var(--gt-muted);background:color-mix(in srgb,var(--gt-fg) 2.5%,var(--gt-card));max-height:640px;overflow:auto;}
1468
1473
  .dshgt-digest-loading{padding:40px 28px;color:var(--gt-muted);font-size:13px;}
1469
1474
  .dshgt-digest-empty{padding:42px 36px 46px;}
@@ -2722,13 +2727,6 @@ function SettingsView(props) {
2722
2727
  )
2723
2728
  )
2724
2729
  ),
2725
- h(
2726
- Row,
2727
- { label: t("scope.topN") },
2728
- h(Input, { mono: true, width: 70, value: String(draft.trending.topN), onInput: (value) => update((next) => {
2729
- next.trending.topN = Math.round(Number(value) || 0);
2730
- }) })
2731
- ),
2732
2730
  h(
2733
2731
  Row,
2734
2732
  { label: t("scope.languages") },
@@ -3777,6 +3775,10 @@ var FILTERS = [
3777
3775
  { id: "failed", key: "runs.filter.failed" },
3778
3776
  { id: "dry", key: "runs.filter.dry" }
3779
3777
  ];
3778
+ function isDegradedRecord(record) {
3779
+ if (!record.ok || record.skipped) return false;
3780
+ return Array.isArray(record.warnings) && record.warnings.some((w) => w.includes("降级"));
3781
+ }
3780
3782
  function recordSummary(t, record) {
3781
3783
  if (!record.ok) {
3782
3784
  return [record.errorCode, record.errorMessage].filter((item) => item !== void 0 && item !== "").join(" · ") || t("state.failed");
@@ -3922,7 +3924,8 @@ function RunsView(props) {
3922
3924
  record.kind === "dry-run" ? t("state.dry") : record.skipped ? t("state.skipped") : record.ok ? t("state.ok") : t("state.failed"),
3923
3925
  h("span", { className: "dshgt-run-muted" }, recordSummary(t, record)),
3924
3926
  record.legacy === true ? h("span", { className: "dshgt-tag dshgt-inline-tag" }, t("runs.legacy")) : null,
3925
- record.forced === true ? h("span", { className: "dshgt-tag dshgt-inline-tag" }, t("run.forced.tag")) : null
3927
+ record.forced === true ? h("span", { className: "dshgt-tag dshgt-inline-tag" }, t("run.forced.tag")) : null,
3928
+ isDegradedRecord(record) ? h("span", { className: "dshgt-tag dshgt-inline-tag dshgt-tag-warn" }, t("runs.degraded.tag")) : null
3926
3929
  ),
3927
3930
  h("span", { className: "dshgt-run-files" }, t("runs.files", { count: record.files })),
3928
3931
  record.tokens === void 0 ? null : h("span", { className: "dshgt-run-tokens dshgt-mono", title: t("run.usage.tokens") }, `${formatTokens(record.tokens)} tok`),
@@ -4822,6 +4825,7 @@ function DigestView(props) {
4822
4825
  rendered === null ? null : h(
4823
4826
  import_react.default.Fragment,
4824
4827
  null,
4828
+ rendered.meta.degraded === "true" ? degradedBadge(t) : null,
4825
4829
  metaLine(rendered),
4826
4830
  h("div", { className: "dshgt-md" }, rendered.nodes)
4827
4831
  )
@@ -4830,6 +4834,14 @@ function DigestView(props) {
4830
4834
  )
4831
4835
  );
4832
4836
  }
4837
+ function degradedBadge(t) {
4838
+ return h(
4839
+ "div",
4840
+ { className: "dshgt-degraded-badge", role: "note" },
4841
+ h("span", { className: "dshgt-degraded-icon" }, "⚠️"),
4842
+ h("span", null, t("digest.degraded.badge"))
4843
+ );
4844
+ }
4833
4845
  function metaLine(rendered) {
4834
4846
  const entries = META_KEYS.filter((key) => rendered.meta[key] !== void 0 && rendered.meta[key] !== "");
4835
4847
  if (entries.length === 0) return null;
@@ -58,7 +58,7 @@ var DEFAULT_SETTINGS = {
58
58
  labels: []
59
59
  },
60
60
  github: { authMode: "gh", tokenRef: "GITHUB_TOKEN" },
61
- trending: { since: "daily", languages: ["all", "typescript", "python", "go", "rust"], topN: 25 },
61
+ trending: { since: "daily", languages: ["all", "typescript", "python", "go", "rust"] },
62
62
  summarize: {
63
63
  batchSize: 10,
64
64
  maxRetries: 1,
@@ -211,8 +211,7 @@ function normalizeSettings(input) {
211
211
  },
212
212
  trending: {
213
213
  since: isPeriod(since) ? since : "daily",
214
- languages: strArray(trending.languages, DEFAULT_SETTINGS.trending.languages),
215
- topN: Math.round(num(trending.topN, DEFAULT_SETTINGS.trending.topN))
214
+ languages: strArray(trending.languages, DEFAULT_SETTINGS.trending.languages)
216
215
  },
217
216
  summarize: {
218
217
  batchSize: Math.round(num(summarize.batchSize, DEFAULT_SETTINGS.summarize.batchSize)),
@@ -308,9 +307,6 @@ function validateSettings(settings, providers = CORE_PROVIDERS) {
308
307
  } else if (!path.isAbsolute(repo.path)) {
309
308
  problems.push({ field: "repo.path", code: "CONFIG_INVALID", message: "\u4ED3\u5E93\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84" });
310
309
  }
311
- if (!Number.isInteger(trending.topN) || trending.topN <= 0) {
312
- problems.push({ field: "trending.topN", code: "CONFIG_INVALID", message: "\u6BCF\u8BED\u8A00\u6761\u6570\u5FC5\u987B\u662F\u6B63\u6574\u6570" });
313
- }
314
310
  if (!isEnrich(summarize.enrich)) {
315
311
  problems.push({ field: "summarize.enrich", code: "CONFIG_INVALID", message: "enrich \u5FC5\u987B\u662F none / repo / readme" });
316
312
  }
@@ -401,8 +397,7 @@ function toCoreConfig(settings, apiKey, baseURLOverride, period, repoCount = 0)
401
397
  },
402
398
  trending: {
403
399
  languages: settings.trending.languages,
404
- since: period ?? settings.trending.since,
405
- perLanguage: settings.trending.topN
400
+ since: period ?? settings.trending.since
406
401
  },
407
402
  summarize: {
408
403
  batchSize: settings.summarize.batchSize,
@@ -3972,9 +3967,6 @@ function importFromCli(filePath, base = DEFAULT_SETTINGS) {
3972
3967
  take(imported, "trending.since", asString(trending.since), (value) => {
3973
3968
  patch.trending.since = value === "weekly" ? "weekly" : "daily";
3974
3969
  });
3975
- take(imported, "trending.perLanguage", asNumber(trending.perLanguage), (value) => {
3976
- patch.trending.topN = Math.round(value);
3977
- });
3978
3970
  take(imported, "output.dir", asString(output.dir), (value) => {
3979
3971
  patch.output.dir = value;
3980
3972
  });
package/lib/index.js CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  createUpdateService,
10
10
  ensureGithubFlow,
11
11
  readPluginInfo
12
- } from "./chunk-OMQY3T3V.js";
12
+ } from "./chunk-6YH4NOBR.js";
13
13
 
14
14
  // src/index.ts
15
15
  var name = "dsh-github-trending";
package/lib/internal.d.ts CHANGED
@@ -262,7 +262,6 @@ interface GithubSettings {
262
262
  interface TrendingSettings {
263
263
  since: Since;
264
264
  languages: string[];
265
- topN: number;
266
265
  }
267
266
  interface OutputSettings {
268
267
  dir: string;
@@ -413,7 +412,6 @@ interface CoreConfig {
413
412
  trending: {
414
413
  languages: string[];
415
414
  since: string;
416
- perLanguage: number;
417
415
  };
418
416
  summarize: {
419
417
  batchSize: number;
package/lib/internal.js CHANGED
@@ -27,7 +27,7 @@ import {
27
27
  tools_exports,
28
28
  update_exports,
29
29
  version_exports
30
- } from "./chunk-OMQY3T3V.js";
30
+ } from "./chunk-6YH4NOBR.js";
31
31
 
32
32
  // src/internal.ts
33
33
  import * as exec from "@morehao/dsh-plugin-kit/exec";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morehao/dsh-github-trending",
3
- "version": "0.8.13",
3
+ "version": "0.8.14",
4
4
  "description": "GitHub 趋势日报的 DeepSeek Harness 插件:按日 / 周 / 月周期定时 spawn 本地 trendradar 核心,抓取 Trending、生成中文简介与周期总结,并可选把订阅仓库的新 Release 合成中文摘要,一起提交到你的仓库、自动开 PR 合并;内置概览 / 榜单 / 运行记录 / 订阅 / 设置工作台。",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -60,7 +60,7 @@
60
60
  },
61
61
  "core": {
62
62
  "repo": "morehao/trendradar",
63
- "version": "0.8.3"
63
+ "version": "0.8.4"
64
64
  },
65
65
  "client": {
66
66
  "platform": "web",