From a90f6e67a3d6e53d1f5c9a405c9d097206bf4bda Mon Sep 17 00:00:00 2001 From: Autumn-27 <53844290+Autumn-27@users.noreply.github.com> Date: Thu, 10 Sep 2026 11:02:33 -0400 Subject: [PATCH] =?UTF-8?q?feat(web):=20=E6=94=BB=E5=87=BB=E9=93=BE?= =?UTF-8?q?=E8=B7=AF=E5=9B=BE=E6=B8=B2=E6=9F=93=E5=8E=8B=E7=BC=A9(digest)?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E5=B9=B6=E6=94=B6=E7=BC=A9=E5=85=B6=E6=88=90?= =?UTF-8?q?=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ExploreKind/ExploreRel 增加 digest/covers 类型 - digest 节点独立样式(青色 Layers)、图例与摘要(body) - collapseDigestGraph:active digest 覆盖的 fact/intent 成员从图中隐藏, 触及成员的边端点改接到 digest,成员内部边丢弃并去重,covers 边不渲染 - 详情抽屉展示压缩结论与被压缩成员列表,成员可点击下钻 --- web/src/components/exploration-graph.tsx | Bin 20362 -> 26123 bytes web/src/lib/types.ts | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/components/exploration-graph.tsx b/web/src/components/exploration-graph.tsx index 34afa450c65caac2ff3f8f13014a717ef1c192c1..7e53e187b3830547ece55a47f2a5c6dd20a6f0e1 100644 GIT binary patch delta 4407 zcmaJ_U2I!d9Vcy*CaJ1*qfMF>wg0#u^CkARleBB%#0hOTSj^H6Qt=W+?TzoTeUEbA9Zf=`Xw@E=HfapW4}7&ez!M0N5WE)JD%v6vzl1<%+`fHJ9jiQnaIdx=B%?|$>b0)1OE>z3`#~Z z%vf&7+z>20Ga_0jc{YA61)c*|$iX*iwr7~bC@kqnIhT-JuM=3M&`Rr@-}07GLu)u-r1&hf7tr7+RkDxQ$7K?xMjr&LfwW14X~O2K8Y8s{~0` z4{JVy@q8W+EIb4s^3pJ*4>&`4F`vOB zLV%8|ixgt%Eq*!^1V(LM*#uW3Ul-7M2_)~KXu9PN2{gzQX#Y|c!m6(8Nnh_$rb|t* zxQNDUDfsw(q$#3U(;dT4u1HKZ($IjS5f&@t2j*ymLL%2+n2zC7(qt|11fZ5~bGcqIIMQKiX<7tlTeyx@f>)Sr zh?Jy|wH~`2V+Hx93@-2WQhBc$XOE|gpX6u)axmWOowUu>EmKROtS%4&h7AaDPFkkw z)!6kUu8;AT(E;S9wq==Qyuy$(=60eKHP(e>mjZIFH{SWEot3-*l1fY$=FR^Lx<-1j zva5`2h^+{UXoPen3PATQqTY2&6|Zh7tQagAR613nn~%xfU^V2ve5{V7jn5pb%S50L z$kMpnB?*y`C?f;Lzt>EHNjFS0NtcQz#zpt5yb>G2zDDUmxh2iUtd?m5i@-3dbs8uv zMeQpk32<;D4h{T?CQ?`3r8>0+jn?wsRf!2gJr{y z0-1^j`2wkFGvu(@b*f)x%N5TuTQ?{A`*3KfkgEKlodt^++W>l?TIF(knUQToL$B1B z?`9*WSb!XnGWn?7siTkwdX$k`TqzE=9cMpv#P<3@{b79E(OPe(zCSGfJGF1OG9e*; zf9l}Q`GsNem+Ad@-Y-5lKC}xZYk2Xr$eo@MkEVBv%v3U|M=RYHu2h(LX@{9s)k!R< zUGe_U#e*OIY(7&tDUK8l?gE(i#iP%E?xYdD6|*gK3Znmo9_ZKOB7z~thc z*$LD#(5wCrv-?T)j*O22$HYgo2gO6AnMm#xmnV0LyED5*{`4u~7y8M%kx#Zxynb>N zrR;hpGV-l&Jh=Yy{g;3G@b;_q4yrbD%VDMQ@b)zUg@Zel4`bptlluotHrq;L;};(; z9U(zaL~LAz!V!;N7!}#VZZWYmH0dnkh{1T#R!1LKDYL(9xn|PQ)~H{!FLbr~%%M7I zp3s*DKD)exai?e#t4@n|=YD1BkkoQ`W?1r|#$lXxwS3*dP9_K|GUCy6|6bCOPpntN z&~p=Q;zO9R=WMIEk*_CZmbMcZE$ilX=6^Czj@FBAGU0^jECxA;scCho8zO5*1v9h#SQV5$4-`RfsyQ+@v-F*M=Z@spCM{HmF*7o;)v3>p4gFAO*()k6TdWq{b zQy3Df*%7Q)#B_FKfJWAQMx2>EAo`}pTF;%n)laXyFUC6^mJQ}x(sGNo-n*G`Eney5 z+TXp>MavwvXcYGNs*kIyi@TxRC2>Wp$-UI|LYx@1!Z)!kVFl7okK5rD17CLS79RIn ztk19Fvm(^19828slB%3&H^X6})_Rmus5%=lsQ?cmjz_`7cE0xAHgkNeUWK(eM@13tU~d-d#A}CqF*l`rYCyJB~a~ zN;|Q7Ys>l8x^#APU@#TEkz0RyVRY9TMn?T3Nb_}k1>yK+CXN5jx#Z5*-P%^Mjfux~!cDa*9^KleYz&BbC0a+BAX=xtUsWn|pE-E213#Y!&h*{|^cg(@V?DOVQBC(^RmvQ^?cHOi{44wN;oL z6YMaVMOb9=mf#AGy!@2ZVjYFl$u=RyjCq^4gs3tyrf$9$+Q!5KlS)ZXE#BN5QO>rR gC0>+8KmjCfTV0%*lbT$Tno>KtELm^!s^ml_0CZVGLjV8( diff --git a/web/src/lib/types.ts b/web/src/lib/types.ts index 6fac143..13ca429 100644 --- a/web/src/lib/types.ts +++ b/web/src/lib/types.ts @@ -401,12 +401,12 @@ export interface Company { } // ---- Exploration graph (per task) ---- -export type ExploreKind = "task" | "begin" | "goal" | "intent" | "fact" | "finding" | "hint"; +export type ExploreKind = "task" | "begin" | "goal" | "intent" | "fact" | "finding" | "hint" | "digest"; export type GoalState = "open" | "met" | "abandoned"; export type IntentState = "open" | "running" | "paused" | "done" | "blocked" | "exhausted" | "stopped"; export type FindingState = "confirmed" | "dismissed"; export type HintState = "active" | "consumed"; -export type ExploreRel = "spawns" | "derived_from" | "yields" | "proves"; +export type ExploreRel = "spawns" | "derived_from" | "yields" | "proves" | "covers"; export interface TaskNode { id: string;