fix(memory): SceneStats 的 strength/features 不再说谎

- 旧行经 ALTER 加列后 strength 为 NULL,直接 SELECT 会显示成 0(实际是 1 次);
  改为 COALESCE(strength,1),并补上 features 计数(场景长出了几个特征)。
- 两栏一起看才能判断「场景是不是真在涌现」,而不是被一次性写出来的。
This commit is contained in:
JianFeeeee
2026-09-15 09:29:46 +08:00
parent d4f9a12db0
commit bb7e7979ae

View File

@ -475,6 +475,8 @@ func (g *GraphDB) SceneStats() ([]SceneStat, error) {
COUNT(sr.id),
SUM(CASE WHEN sr.kind = 'relation' THEN 1 ELSE 0 END),
SUM(CASE WHEN sr.kind = 'entity' THEN 1 ELSE 0 END),
COALESCE(s.strength, 1),
(SELECT COUNT(*) FROM scene_features f WHERE f.scene_id = s.id),
s.updated_at
FROM scenes s LEFT JOIN scene_refs sr ON sr.scene_id = s.id
GROUP BY s.id ORDER BY COUNT(sr.id) DESC, s.key`)
@ -487,7 +489,7 @@ func (g *GraphDB) SceneStats() ([]SceneStat, error) {
for rows.Next() {
var st SceneStat
var rels, ents sql.NullInt64
if err := rows.Scan(&st.Key, &st.Refs, &rels, &ents, &st.UpdatedAt); err != nil {
if err := rows.Scan(&st.Key, &st.Refs, &rels, &ents, &st.Strength, &st.Features, &st.UpdatedAt); err != nil {
return nil, err
}
st.Relations = int(rels.Int64)