git-fit 0.23.1 → 0.23.2
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.
- checksums.yaml +4 -4
- data/lib/git_fit/export/ai.rb +14 -1
- data/lib/git_fit/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9f0c03193a95a9f5f4b02aaf515cad3b547e57c82201359d1a9cbd2194261ccf
|
|
4
|
+
data.tar.gz: ba4acbff8c51f343c0641a265c3e75356830864e48e93abd8c24054602762745
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 57640bd7dc13d63da72f616a50cd48f9bd9a903f4cadf3edf1321f2344410859641f44d50701ac26da1622c3bdc460a6d639a94564c1da7a7862dccd6b9c8c65
|
|
7
|
+
data.tar.gz: 80ee63c140618207ab471327f3673daed9d2ed211f104dd9442484758f085a2420290756187dadb6d521575abf50b5832edfcb24911db633e620fbf5c207c4e0
|
data/lib/git_fit/export/ai.rb
CHANGED
|
@@ -135,15 +135,28 @@ module GitFit
|
|
|
135
135
|
"sha256:#{Digest::SHA256.hexdigest(payload)}"
|
|
136
136
|
end
|
|
137
137
|
|
|
138
|
+
# digest 只指纹输入(数据/模型/语言/周期);输出完整性由 completeness gate
|
|
139
|
+
# 把关——部分场景失败省略段落后,下次运行即使 digest 相同也会重试再生
|
|
140
|
+
# (自愈循环),否则残缺文件会被 digest-skip 永久卡住。
|
|
138
141
|
def unchanged?(digest)
|
|
139
142
|
return false unless File.exist?(@output)
|
|
140
143
|
|
|
141
144
|
existing = ::JSON.parse(File.read(@output))
|
|
142
|
-
existing.is_a?(Hash) && existing['source_digest'] == digest
|
|
145
|
+
existing.is_a?(Hash) && existing['source_digest'] == digest && SCENARIOS.all? do |s|
|
|
146
|
+
section_present?(existing, s)
|
|
147
|
+
end
|
|
143
148
|
rescue JSON::ParserError, TypeError
|
|
144
149
|
false
|
|
145
150
|
end
|
|
146
151
|
|
|
152
|
+
def section_present?(doc, scenario)
|
|
153
|
+
case scenario
|
|
154
|
+
when :monthly_report then doc['summary_markdown'].is_a?(String) && !doc['summary_markdown'].empty?
|
|
155
|
+
when :insights then doc['insights'].is_a?(Array)
|
|
156
|
+
when :coaching then doc['coaching'].is_a?(Array)
|
|
157
|
+
end
|
|
158
|
+
end
|
|
159
|
+
|
|
147
160
|
# --- generation ---
|
|
148
161
|
|
|
149
162
|
def generate_scenario(scenario, stats, rows)
|
data/lib/git_fit/version.rb
CHANGED