source_monitor 0.2.0 → 0.3.0

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.
Files changed (196) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/agents/rails-concern.md +464 -0
  3. data/.claude/agents/rails-controller.md +424 -0
  4. data/.claude/agents/rails-hotwire.md +446 -0
  5. data/.claude/agents/rails-implement.md +374 -0
  6. data/.claude/agents/rails-job.md +334 -0
  7. data/.claude/agents/rails-lint.md +294 -0
  8. data/.claude/agents/rails-mailer.md +371 -0
  9. data/.claude/agents/rails-migration.md +449 -0
  10. data/.claude/agents/rails-model.md +420 -0
  11. data/.claude/agents/rails-policy.md +443 -0
  12. data/.claude/agents/rails-presenter.md +427 -0
  13. data/.claude/agents/rails-query.md +412 -0
  14. data/.claude/agents/rails-review.md +490 -0
  15. data/.claude/agents/rails-service.md +458 -0
  16. data/.claude/agents/rails-state-records.md +465 -0
  17. data/.claude/agents/rails-tdd.md +314 -0
  18. data/.claude/agents/rails-test.md +441 -0
  19. data/.claude/agents/rails-view-component.md +418 -0
  20. data/.claude/hooks/block-secrets.sh +52 -0
  21. data/.claude/settings.json +85 -0
  22. data/.claude/skills/action-cable-patterns/SKILL.md +296 -0
  23. data/.claude/skills/action-mailer-patterns/SKILL.md +295 -0
  24. data/.claude/skills/active-storage-setup/SKILL.md +311 -0
  25. data/.claude/skills/api-versioning/SKILL.md +294 -0
  26. data/.claude/skills/authentication-flow/SKILL.md +335 -0
  27. data/.claude/skills/authentication-flow/reference/current.md +248 -0
  28. data/.claude/skills/authentication-flow/reference/passwordless.md +253 -0
  29. data/.claude/skills/authentication-flow/reference/sessions.md +201 -0
  30. data/.claude/skills/authorization-pundit/SKILL.md +462 -0
  31. data/.claude/skills/caching-strategies/SKILL.md +350 -0
  32. data/.claude/skills/database-migrations/SKILL.md +354 -0
  33. data/.claude/skills/form-object-patterns/SKILL.md +399 -0
  34. data/.claude/skills/hotwire-patterns/SKILL.md +247 -0
  35. data/.claude/skills/hotwire-patterns/reference/stimulus.md +307 -0
  36. data/.claude/skills/hotwire-patterns/reference/tailwind-integration.md +112 -0
  37. data/.claude/skills/hotwire-patterns/reference/turbo-frames.md +158 -0
  38. data/.claude/skills/hotwire-patterns/reference/turbo-streams.md +218 -0
  39. data/.claude/skills/i18n-patterns/SKILL.md +320 -0
  40. data/.claude/skills/install/SKILL.md +367 -0
  41. data/.claude/skills/performance-optimization/SKILL.md +311 -0
  42. data/.claude/skills/rails-architecture/SKILL.md +259 -0
  43. data/.claude/skills/rails-architecture/reference/error-handling.md +333 -0
  44. data/.claude/skills/rails-architecture/reference/event-tracking.md +142 -0
  45. data/.claude/skills/rails-architecture/reference/layer-interactions.md +417 -0
  46. data/.claude/skills/rails-architecture/reference/multi-tenancy.md +152 -0
  47. data/.claude/skills/rails-architecture/reference/query-patterns.md +342 -0
  48. data/.claude/skills/rails-architecture/reference/service-patterns.md +286 -0
  49. data/.claude/skills/rails-architecture/reference/state-records.md +250 -0
  50. data/.claude/skills/rails-architecture/reference/testing-strategy.md +326 -0
  51. data/.claude/skills/rails-concern/SKILL.md +399 -0
  52. data/.claude/skills/rails-controller/SKILL.md +336 -0
  53. data/.claude/skills/rails-model-generator/SKILL.md +321 -0
  54. data/.claude/skills/rails-model-generator/reference/validations.md +298 -0
  55. data/.claude/skills/rails-presenter/SKILL.md +274 -0
  56. data/.claude/skills/rails-query-object/SKILL.md +289 -0
  57. data/.claude/skills/rails-service-object/SKILL.md +349 -0
  58. data/.claude/skills/solid-queue-setup/SKILL.md +307 -0
  59. data/.claude/skills/tdd-cycle/SKILL.md +359 -0
  60. data/.claude/skills/viewcomponent-patterns/SKILL.md +333 -0
  61. data/.gitignore +1 -0
  62. data/.rubocop.yml +2 -0
  63. data/.ruby-version +1 -1
  64. data/.vbw-planning/.notification-log.jsonl +192 -0
  65. data/.vbw-planning/.session-log.jsonl +871 -0
  66. data/.vbw-planning/PROJECT.md +51 -0
  67. data/.vbw-planning/REQUIREMENTS.md +50 -0
  68. data/.vbw-planning/SHIPPED.md +28 -0
  69. data/.vbw-planning/codebase/ARCHITECTURE.md +147 -0
  70. data/.vbw-planning/codebase/CONCERNS.md +99 -0
  71. data/.vbw-planning/codebase/CONVENTIONS.md +97 -0
  72. data/.vbw-planning/codebase/DEPENDENCIES.md +100 -0
  73. data/.vbw-planning/codebase/INDEX.md +86 -0
  74. data/.vbw-planning/codebase/META.md +42 -0
  75. data/.vbw-planning/codebase/PATTERNS.md +262 -0
  76. data/.vbw-planning/codebase/STACK.md +101 -0
  77. data/.vbw-planning/codebase/STRUCTURE.md +324 -0
  78. data/.vbw-planning/codebase/TESTING.md +154 -0
  79. data/.vbw-planning/config.json +12 -0
  80. data/.vbw-planning/discovery.json +24 -0
  81. data/.vbw-planning/milestones/default/ROADMAP.md +115 -0
  82. data/.vbw-planning/milestones/default/STATE.md +83 -0
  83. data/.vbw-planning/milestones/default/phases/01-coverage-analysis-quick-wins/PLAN-01-SUMMARY.md +56 -0
  84. data/.vbw-planning/milestones/default/phases/01-coverage-analysis-quick-wins/PLAN-01.md +187 -0
  85. data/.vbw-planning/milestones/default/phases/01-coverage-analysis-quick-wins/PLAN-02-SUMMARY.md +64 -0
  86. data/.vbw-planning/milestones/default/phases/01-coverage-analysis-quick-wins/PLAN-02.md +137 -0
  87. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-01-SUMMARY.md +67 -0
  88. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-01.md +142 -0
  89. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-02-SUMMARY.md +64 -0
  90. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-02.md +138 -0
  91. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-03-SUMMARY.md +85 -0
  92. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-03.md +147 -0
  93. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-04-SUMMARY.md +63 -0
  94. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-04.md +129 -0
  95. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-05-SUMMARY.md +74 -0
  96. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-05.md +154 -0
  97. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/03-VERIFICATION-wave1.md +303 -0
  98. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/03-VERIFICATION.md +510 -0
  99. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/PLAN-01-SUMMARY.md +61 -0
  100. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/PLAN-01.md +161 -0
  101. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/PLAN-02-SUMMARY.md +66 -0
  102. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/PLAN-02.md +132 -0
  103. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/PLAN-03-SUMMARY.md +59 -0
  104. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/PLAN-03.md +171 -0
  105. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/PLAN-04-SUMMARY.md +56 -0
  106. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/PLAN-04.md +152 -0
  107. data/.vbw-planning/milestones/default/phases/04-code-quality-conventions-cleanup/04-CONTEXT.md +33 -0
  108. data/.vbw-planning/milestones/default/phases/04-code-quality-conventions-cleanup/PLAN-01-SUMMARY.md +42 -0
  109. data/.vbw-planning/milestones/default/phases/04-code-quality-conventions-cleanup/PLAN-01.md +119 -0
  110. data/.vbw-planning/milestones/default/phases/04-code-quality-conventions-cleanup/PLAN-02-SUMMARY.md +52 -0
  111. data/.vbw-planning/milestones/default/phases/04-code-quality-conventions-cleanup/PLAN-02.md +195 -0
  112. data/.vbw-planning/milestones/default/phases/04-code-quality-conventions-cleanup/PLAN-03-SUMMARY.md +79 -0
  113. data/.vbw-planning/milestones/default/phases/04-code-quality-conventions-cleanup/PLAN-03.md +130 -0
  114. data/CHANGELOG.md +28 -0
  115. data/CLAUDE.md +179 -0
  116. data/Gemfile +8 -0
  117. data/Gemfile.lock +114 -101
  118. data/Rakefile +2 -0
  119. data/app/assets/builds/source_monitor/application.css +2076 -0
  120. data/app/assets/builds/source_monitor/application.js +2758 -0
  121. data/app/assets/builds/source_monitor/application.js.map +7 -0
  122. data/app/controllers/source_monitor/application_controller.rb +2 -0
  123. data/app/controllers/source_monitor/health_controller.rb +2 -0
  124. data/app/controllers/source_monitor/import_sessions/bulk_configuration.rb +106 -0
  125. data/app/controllers/source_monitor/import_sessions/entry_annotation.rb +187 -0
  126. data/app/controllers/source_monitor/import_sessions/health_check_management.rb +112 -0
  127. data/app/controllers/source_monitor/import_sessions/opml_parser.rb +130 -0
  128. data/app/controllers/source_monitor/import_sessions_controller.rb +6 -507
  129. data/app/controllers/source_monitor/items_controller.rb +2 -0
  130. data/app/controllers/source_monitor/sources_controller.rb +0 -14
  131. data/app/helpers/source_monitor/application_helper.rb +4 -112
  132. data/app/helpers/source_monitor/health_badge_helper.rb +69 -0
  133. data/app/helpers/source_monitor/table_sort_helper.rb +53 -0
  134. data/app/jobs/source_monitor/application_job.rb +2 -0
  135. data/app/models/source_monitor/application_record.rb +2 -0
  136. data/app/models/source_monitor/log_entry.rb +0 -2
  137. data/config/coverage_baseline.json +217 -1862
  138. data/config/routes.rb +2 -0
  139. data/db/migrate/20251009103000_add_feed_content_readability_to_sources.rb +2 -0
  140. data/db/migrate/20251014171659_add_performance_indexes.rb +2 -0
  141. data/db/migrate/20251014172525_add_fetch_status_check_constraint.rb +2 -0
  142. data/db/migrate/20251108120116_refresh_fetch_status_constraint.rb +2 -0
  143. data/db/migrate/20260210204022_add_composite_index_to_log_entries.rb +17 -0
  144. data/lib/source_monitor/assets/bundler.rb +2 -0
  145. data/lib/source_monitor/assets.rb +2 -0
  146. data/lib/source_monitor/configuration/authentication_settings.rb +62 -0
  147. data/lib/source_monitor/configuration/events.rb +60 -0
  148. data/lib/source_monitor/configuration/fetching_settings.rb +27 -0
  149. data/lib/source_monitor/configuration/health_settings.rb +27 -0
  150. data/lib/source_monitor/configuration/http_settings.rb +43 -0
  151. data/lib/source_monitor/configuration/model_definition.rb +108 -0
  152. data/lib/source_monitor/configuration/models.rb +36 -0
  153. data/lib/source_monitor/configuration/realtime_settings.rb +95 -0
  154. data/lib/source_monitor/configuration/retention_settings.rb +45 -0
  155. data/lib/source_monitor/configuration/scraper_registry.rb +67 -0
  156. data/lib/source_monitor/configuration/scraping_settings.rb +39 -0
  157. data/lib/source_monitor/configuration/validation_definition.rb +32 -0
  158. data/lib/source_monitor/configuration.rb +12 -579
  159. data/lib/source_monitor/dashboard/queries/recent_activity_query.rb +138 -0
  160. data/lib/source_monitor/dashboard/queries/stats_query.rb +71 -0
  161. data/lib/source_monitor/dashboard/queries.rb +2 -195
  162. data/lib/source_monitor/engine.rb +2 -0
  163. data/lib/source_monitor/fetching/feed_fetcher/adaptive_interval.rb +141 -0
  164. data/lib/source_monitor/fetching/feed_fetcher/entry_processor.rb +89 -0
  165. data/lib/source_monitor/fetching/feed_fetcher/source_updater.rb +200 -0
  166. data/lib/source_monitor/fetching/feed_fetcher.rb +37 -379
  167. data/lib/source_monitor/items/item_creator/content_extractor.rb +113 -0
  168. data/lib/source_monitor/items/item_creator/entry_parser/media_extraction.rb +96 -0
  169. data/lib/source_monitor/items/item_creator/entry_parser.rb +294 -0
  170. data/lib/source_monitor/items/item_creator.rb +28 -455
  171. data/lib/source_monitor/setup/bundle_installer.rb +2 -0
  172. data/lib/source_monitor/setup/cli.rb +2 -0
  173. data/lib/source_monitor/setup/dependency_checker.rb +2 -0
  174. data/lib/source_monitor/setup/detectors.rb +2 -0
  175. data/lib/source_monitor/setup/gemfile_editor.rb +2 -0
  176. data/lib/source_monitor/setup/initializer_patcher.rb +2 -0
  177. data/lib/source_monitor/setup/install_generator.rb +2 -0
  178. data/lib/source_monitor/setup/migration_installer.rb +2 -0
  179. data/lib/source_monitor/setup/node_installer.rb +2 -0
  180. data/lib/source_monitor/setup/prompter.rb +2 -0
  181. data/lib/source_monitor/setup/requirements.rb +2 -0
  182. data/lib/source_monitor/setup/shell_runner.rb +2 -0
  183. data/lib/source_monitor/setup/verification/action_cable_verifier.rb +2 -0
  184. data/lib/source_monitor/setup/verification/printer.rb +2 -0
  185. data/lib/source_monitor/setup/verification/result.rb +2 -0
  186. data/lib/source_monitor/setup/verification/runner.rb +2 -0
  187. data/lib/source_monitor/setup/verification/solid_queue_verifier.rb +2 -0
  188. data/lib/source_monitor/setup/verification/telemetry_logger.rb +2 -0
  189. data/lib/source_monitor/setup/workflow.rb +2 -0
  190. data/lib/source_monitor/version.rb +3 -1
  191. data/lib/source_monitor.rb +140 -58
  192. data/lib/tasks/source_monitor_assets.rake +2 -0
  193. data/lib/tasks/source_monitor_setup.rake +2 -0
  194. data/lib/tasks/source_monitor_tasks.rake +2 -0
  195. data/source_monitor.gemspec +3 -1
  196. metadata +144 -4
@@ -0,0 +1,871 @@
1
+ {
2
+ "timestamp": "2026-02-09T19:20:34Z",
3
+ "duration_ms": 0,
4
+ "cost_usd": 0,
5
+ "tokens_in": 0,
6
+ "tokens_out": 0,
7
+ "model": "unknown",
8
+ "branch": "main"
9
+ }
10
+ {
11
+ "timestamp": "2026-02-09T19:21:39Z",
12
+ "duration_ms": 0,
13
+ "cost_usd": 0,
14
+ "tokens_in": 0,
15
+ "tokens_out": 0,
16
+ "model": "unknown",
17
+ "branch": "main"
18
+ }
19
+ {
20
+ "timestamp": "2026-02-09T19:28:22Z",
21
+ "duration_ms": 0,
22
+ "cost_usd": 0,
23
+ "tokens_in": 0,
24
+ "tokens_out": 0,
25
+ "model": "unknown",
26
+ "branch": "main"
27
+ }
28
+ {
29
+ "timestamp": "2026-02-09T19:29:04Z",
30
+ "duration_ms": 0,
31
+ "cost_usd": 0,
32
+ "tokens_in": 0,
33
+ "tokens_out": 0,
34
+ "model": "unknown",
35
+ "branch": "main"
36
+ }
37
+ {
38
+ "timestamp": "2026-02-09T19:31:33Z",
39
+ "duration_ms": 0,
40
+ "cost_usd": 0,
41
+ "tokens_in": 0,
42
+ "tokens_out": 0,
43
+ "model": "unknown",
44
+ "branch": "main"
45
+ }
46
+ {
47
+ "timestamp": "2026-02-09T19:33:35Z",
48
+ "duration_ms": 0,
49
+ "cost_usd": 0,
50
+ "tokens_in": 0,
51
+ "tokens_out": 0,
52
+ "model": "unknown",
53
+ "branch": "main"
54
+ }
55
+ {
56
+ "timestamp": "2026-02-09T19:34:42Z",
57
+ "duration_ms": 0,
58
+ "cost_usd": 0,
59
+ "tokens_in": 0,
60
+ "tokens_out": 0,
61
+ "model": "unknown",
62
+ "branch": "main"
63
+ }
64
+ {
65
+ "timestamp": "2026-02-09T19:36:59Z",
66
+ "duration_ms": 0,
67
+ "cost_usd": 0,
68
+ "tokens_in": 0,
69
+ "tokens_out": 0,
70
+ "model": "unknown",
71
+ "branch": "main"
72
+ }
73
+ {
74
+ "timestamp": "2026-02-09T19:40:08Z",
75
+ "duration_ms": 0,
76
+ "cost_usd": 0,
77
+ "tokens_in": 0,
78
+ "tokens_out": 0,
79
+ "model": "unknown",
80
+ "branch": "main"
81
+ }
82
+ {
83
+ "timestamp": "2026-02-09T19:48:52Z",
84
+ "duration_ms": 0,
85
+ "cost_usd": 0,
86
+ "tokens_in": 0,
87
+ "tokens_out": 0,
88
+ "model": "unknown",
89
+ "branch": "main"
90
+ }
91
+ {
92
+ "timestamp": "2026-02-09T19:49:22Z",
93
+ "duration_ms": 0,
94
+ "cost_usd": 0,
95
+ "tokens_in": 0,
96
+ "tokens_out": 0,
97
+ "model": "unknown",
98
+ "branch": "main"
99
+ }
100
+ {
101
+ "timestamp": "2026-02-09T19:49:26Z",
102
+ "duration_ms": 0,
103
+ "cost_usd": 0,
104
+ "tokens_in": 0,
105
+ "tokens_out": 0,
106
+ "model": "unknown",
107
+ "branch": "main"
108
+ }
109
+ {
110
+ "timestamp": "2026-02-09T19:49:30Z",
111
+ "duration_ms": 0,
112
+ "cost_usd": 0,
113
+ "tokens_in": 0,
114
+ "tokens_out": 0,
115
+ "model": "unknown",
116
+ "branch": "main"
117
+ }
118
+ {
119
+ "timestamp": "2026-02-09T19:49:34Z",
120
+ "duration_ms": 0,
121
+ "cost_usd": 0,
122
+ "tokens_in": 0,
123
+ "tokens_out": 0,
124
+ "model": "unknown",
125
+ "branch": "main"
126
+ }
127
+ {
128
+ "timestamp": "2026-02-09T19:51:15Z",
129
+ "duration_ms": 0,
130
+ "cost_usd": 0,
131
+ "tokens_in": 0,
132
+ "tokens_out": 0,
133
+ "model": "unknown",
134
+ "branch": "main"
135
+ }
136
+ {
137
+ "timestamp": "2026-02-09T19:51:56Z",
138
+ "duration_ms": 0,
139
+ "cost_usd": 0,
140
+ "tokens_in": 0,
141
+ "tokens_out": 0,
142
+ "model": "unknown",
143
+ "branch": "main"
144
+ }
145
+ {
146
+ "timestamp": "2026-02-09T19:52:17Z",
147
+ "duration_ms": 0,
148
+ "cost_usd": 0,
149
+ "tokens_in": 0,
150
+ "tokens_out": 0,
151
+ "model": "unknown",
152
+ "branch": "main"
153
+ }
154
+ {
155
+ "timestamp": "2026-02-09T19:52:43Z",
156
+ "duration_ms": 0,
157
+ "cost_usd": 0,
158
+ "tokens_in": 0,
159
+ "tokens_out": 0,
160
+ "model": "unknown",
161
+ "branch": "main"
162
+ }
163
+ {
164
+ "timestamp": "2026-02-09T19:52:52Z",
165
+ "duration_ms": 0,
166
+ "cost_usd": 0,
167
+ "tokens_in": 0,
168
+ "tokens_out": 0,
169
+ "model": "unknown",
170
+ "branch": "main"
171
+ }
172
+ {
173
+ "timestamp": "2026-02-09T19:53:07Z",
174
+ "duration_ms": 0,
175
+ "cost_usd": 0,
176
+ "tokens_in": 0,
177
+ "tokens_out": 0,
178
+ "model": "unknown",
179
+ "branch": "main"
180
+ }
181
+ {
182
+ "timestamp": "2026-02-09T19:53:10Z",
183
+ "duration_ms": 0,
184
+ "cost_usd": 0,
185
+ "tokens_in": 0,
186
+ "tokens_out": 0,
187
+ "model": "unknown",
188
+ "branch": "main"
189
+ }
190
+ {
191
+ "timestamp": "2026-02-09T19:53:13Z",
192
+ "duration_ms": 0,
193
+ "cost_usd": 0,
194
+ "tokens_in": 0,
195
+ "tokens_out": 0,
196
+ "model": "unknown",
197
+ "branch": "main"
198
+ }
199
+ {
200
+ "timestamp": "2026-02-09T20:01:38Z",
201
+ "duration_ms": 0,
202
+ "cost_usd": 0,
203
+ "tokens_in": 0,
204
+ "tokens_out": 0,
205
+ "model": "unknown",
206
+ "branch": "main"
207
+ }
208
+ {
209
+ "timestamp": "2026-02-09T20:02:24Z",
210
+ "duration_ms": 0,
211
+ "cost_usd": 0,
212
+ "tokens_in": 0,
213
+ "tokens_out": 0,
214
+ "model": "unknown",
215
+ "branch": "main"
216
+ }
217
+ {
218
+ "timestamp": "2026-02-09T20:02:59Z",
219
+ "duration_ms": 0,
220
+ "cost_usd": 0,
221
+ "tokens_in": 0,
222
+ "tokens_out": 0,
223
+ "model": "unknown",
224
+ "branch": "main"
225
+ }
226
+ {
227
+ "timestamp": "2026-02-09T20:03:35Z",
228
+ "duration_ms": 0,
229
+ "cost_usd": 0,
230
+ "tokens_in": 0,
231
+ "tokens_out": 0,
232
+ "model": "unknown",
233
+ "branch": "main"
234
+ }
235
+ {
236
+ "timestamp": "2026-02-09T20:41:44Z",
237
+ "duration_ms": 0,
238
+ "cost_usd": 0,
239
+ "tokens_in": 0,
240
+ "tokens_out": 0,
241
+ "model": "unknown",
242
+ "branch": "main"
243
+ }
244
+ {
245
+ "timestamp": "2026-02-10T15:40:17Z",
246
+ "duration_ms": 0,
247
+ "cost_usd": 0,
248
+ "tokens_in": 0,
249
+ "tokens_out": 0,
250
+ "model": "unknown",
251
+ "branch": "main"
252
+ }
253
+ {
254
+ "timestamp": "2026-02-10T15:41:31Z",
255
+ "duration_ms": 0,
256
+ "cost_usd": 0,
257
+ "tokens_in": 0,
258
+ "tokens_out": 0,
259
+ "model": "unknown",
260
+ "branch": "main"
261
+ }
262
+ {
263
+ "timestamp": "2026-02-10T15:42:37Z",
264
+ "duration_ms": 0,
265
+ "cost_usd": 0,
266
+ "tokens_in": 0,
267
+ "tokens_out": 0,
268
+ "model": "unknown",
269
+ "branch": "main"
270
+ }
271
+ {
272
+ "timestamp": "2026-02-10T16:12:03Z",
273
+ "duration_ms": 0,
274
+ "cost_usd": 0,
275
+ "tokens_in": 0,
276
+ "tokens_out": 0,
277
+ "model": "unknown",
278
+ "branch": "main"
279
+ }
280
+ {
281
+ "timestamp": "2026-02-10T16:12:03Z",
282
+ "type": "cost_summary",
283
+ "costs": {
284
+ "other": 810
285
+ }
286
+ }
287
+ {
288
+ "timestamp": "2026-02-10T16:12:18Z",
289
+ "duration_ms": 0,
290
+ "cost_usd": 0,
291
+ "tokens_in": 0,
292
+ "tokens_out": 0,
293
+ "model": "unknown",
294
+ "branch": "main"
295
+ }
296
+ {
297
+ "timestamp": "2026-02-10T16:12:18Z",
298
+ "type": "cost_summary",
299
+ "costs": {
300
+ "other": 89
301
+ }
302
+ }
303
+ {
304
+ "timestamp": "2026-02-10T16:12:26Z",
305
+ "duration_ms": 0,
306
+ "cost_usd": 0,
307
+ "tokens_in": 0,
308
+ "tokens_out": 0,
309
+ "model": "unknown",
310
+ "branch": "main"
311
+ }
312
+ {
313
+ "timestamp": "2026-02-10T16:12:26Z",
314
+ "type": "cost_summary",
315
+ "costs": {
316
+ "other": 30
317
+ }
318
+ }
319
+ {
320
+ "timestamp": "2026-02-10T16:12:29Z",
321
+ "duration_ms": 0,
322
+ "cost_usd": 0,
323
+ "tokens_in": 0,
324
+ "tokens_out": 0,
325
+ "model": "unknown",
326
+ "branch": "main"
327
+ }
328
+ {
329
+ "timestamp": "2026-02-10T16:12:29Z",
330
+ "type": "cost_summary",
331
+ "costs": {
332
+ "other": 5
333
+ }
334
+ }
335
+ {
336
+ "timestamp": "2026-02-10T16:12:42Z",
337
+ "duration_ms": 0,
338
+ "cost_usd": 0,
339
+ "tokens_in": 0,
340
+ "tokens_out": 0,
341
+ "model": "unknown",
342
+ "branch": "main"
343
+ }
344
+ {
345
+ "timestamp": "2026-02-10T16:12:42Z",
346
+ "type": "cost_summary",
347
+ "costs": {
348
+ "other": 61
349
+ }
350
+ }
351
+ {
352
+ "timestamp": "2026-02-10T16:12:46Z",
353
+ "duration_ms": 0,
354
+ "cost_usd": 0,
355
+ "tokens_in": 0,
356
+ "tokens_out": 0,
357
+ "model": "unknown",
358
+ "branch": "main"
359
+ }
360
+ {
361
+ "timestamp": "2026-02-10T16:12:46Z",
362
+ "type": "cost_summary",
363
+ "costs": {
364
+ "other": 18
365
+ }
366
+ }
367
+ {
368
+ "timestamp": "2026-02-10T16:13:11Z",
369
+ "duration_ms": 0,
370
+ "cost_usd": 0,
371
+ "tokens_in": 0,
372
+ "tokens_out": 0,
373
+ "model": "unknown",
374
+ "branch": "main"
375
+ }
376
+ {
377
+ "timestamp": "2026-02-10T16:13:19Z",
378
+ "duration_ms": 0,
379
+ "cost_usd": 0,
380
+ "tokens_in": 0,
381
+ "tokens_out": 0,
382
+ "model": "unknown",
383
+ "branch": "main"
384
+ }
385
+ {
386
+ "timestamp": "2026-02-10T16:13:19Z",
387
+ "type": "cost_summary",
388
+ "costs": {
389
+ "other": 57
390
+ }
391
+ }
392
+ {
393
+ "timestamp": "2026-02-10T16:13:26Z",
394
+ "duration_ms": 0,
395
+ "cost_usd": 0,
396
+ "tokens_in": 0,
397
+ "tokens_out": 0,
398
+ "model": "unknown",
399
+ "branch": "main"
400
+ }
401
+ {
402
+ "timestamp": "2026-02-10T16:13:26Z",
403
+ "type": "cost_summary",
404
+ "costs": {
405
+ "other": 23
406
+ }
407
+ }
408
+ {
409
+ "timestamp": "2026-02-10T16:19:55Z",
410
+ "duration_ms": 0,
411
+ "cost_usd": 0,
412
+ "tokens_in": 0,
413
+ "tokens_out": 0,
414
+ "model": "unknown",
415
+ "branch": "main"
416
+ }
417
+ {
418
+ "timestamp": "2026-02-10T16:19:55Z",
419
+ "type": "cost_summary",
420
+ "costs": {
421
+ "other": 191
422
+ }
423
+ }
424
+ {
425
+ "timestamp": "2026-02-10T16:19:58Z",
426
+ "duration_ms": 0,
427
+ "cost_usd": 0,
428
+ "tokens_in": 0,
429
+ "tokens_out": 0,
430
+ "model": "unknown",
431
+ "branch": "main"
432
+ }
433
+ {
434
+ "timestamp": "2026-02-10T16:19:58Z",
435
+ "type": "cost_summary",
436
+ "costs": {
437
+ "other": 13
438
+ }
439
+ }
440
+ {
441
+ "timestamp": "2026-02-10T16:32:38Z",
442
+ "duration_ms": 0,
443
+ "cost_usd": 0,
444
+ "tokens_in": 0,
445
+ "tokens_out": 0,
446
+ "model": "unknown",
447
+ "branch": "main"
448
+ }
449
+ {
450
+ "timestamp": "2026-02-10T16:32:38Z",
451
+ "type": "cost_summary",
452
+ "costs": {
453
+ "other": 409
454
+ }
455
+ }
456
+ {
457
+ "timestamp": "2026-02-10T16:33:00Z",
458
+ "duration_ms": 0,
459
+ "cost_usd": 0,
460
+ "tokens_in": 0,
461
+ "tokens_out": 0,
462
+ "model": "unknown",
463
+ "branch": "main"
464
+ }
465
+ {
466
+ "timestamp": "2026-02-10T16:33:00Z",
467
+ "type": "cost_summary",
468
+ "costs": {
469
+ "other": 42
470
+ }
471
+ }
472
+ {
473
+ "timestamp": "2026-02-10T16:34:13Z",
474
+ "duration_ms": 0,
475
+ "cost_usd": 0,
476
+ "tokens_in": 0,
477
+ "tokens_out": 0,
478
+ "model": "unknown",
479
+ "branch": "main"
480
+ }
481
+ {
482
+ "timestamp": "2026-02-10T16:34:13Z",
483
+ "type": "cost_summary",
484
+ "costs": {
485
+ "other": 110
486
+ }
487
+ }
488
+ {
489
+ "timestamp": "2026-02-10T16:34:17Z",
490
+ "duration_ms": 0,
491
+ "cost_usd": 0,
492
+ "tokens_in": 0,
493
+ "tokens_out": 0,
494
+ "model": "unknown",
495
+ "branch": "main"
496
+ }
497
+ {
498
+ "timestamp": "2026-02-10T16:34:17Z",
499
+ "type": "cost_summary",
500
+ "costs": {
501
+ "other": 6
502
+ }
503
+ }
504
+ {
505
+ "timestamp": "2026-02-10T16:44:59Z",
506
+ "duration_ms": 0,
507
+ "cost_usd": 0,
508
+ "tokens_in": 0,
509
+ "tokens_out": 0,
510
+ "model": "unknown",
511
+ "branch": "main"
512
+ }
513
+ {
514
+ "timestamp": "2026-02-10T16:44:59Z",
515
+ "type": "cost_summary",
516
+ "costs": {
517
+ "other": 178
518
+ }
519
+ }
520
+ {
521
+ "timestamp": "2026-02-10T17:23:11Z",
522
+ "duration_ms": 0,
523
+ "cost_usd": 0,
524
+ "tokens_in": 0,
525
+ "tokens_out": 0,
526
+ "model": "unknown",
527
+ "branch": "main"
528
+ }
529
+ {
530
+ "timestamp": "2026-02-10T17:23:11Z",
531
+ "type": "cost_summary",
532
+ "costs": {
533
+ "other": 239
534
+ }
535
+ }
536
+ {
537
+ "timestamp": "2026-02-10T17:24:59Z",
538
+ "duration_ms": 0,
539
+ "cost_usd": 0,
540
+ "tokens_in": 0,
541
+ "tokens_out": 0,
542
+ "model": "unknown",
543
+ "branch": "main"
544
+ }
545
+ {
546
+ "timestamp": "2026-02-10T17:24:59Z",
547
+ "type": "cost_summary",
548
+ "costs": {
549
+ "other": 33
550
+ }
551
+ }
552
+ {
553
+ "timestamp": "2026-02-10T17:41:15Z",
554
+ "duration_ms": 0,
555
+ "cost_usd": 0,
556
+ "tokens_in": 0,
557
+ "tokens_out": 0,
558
+ "model": "unknown",
559
+ "branch": "main"
560
+ }
561
+ {
562
+ "timestamp": "2026-02-10T17:41:15Z",
563
+ "type": "cost_summary",
564
+ "costs": {
565
+ "other": 80
566
+ }
567
+ }
568
+ {
569
+ "timestamp": "2026-02-10T17:48:24Z",
570
+ "duration_ms": 0,
571
+ "cost_usd": 0,
572
+ "tokens_in": 0,
573
+ "tokens_out": 0,
574
+ "model": "unknown",
575
+ "branch": "main"
576
+ }
577
+ {
578
+ "timestamp": "2026-02-10T17:48:24Z",
579
+ "type": "cost_summary",
580
+ "costs": {
581
+ "other": 180
582
+ }
583
+ }
584
+ {
585
+ "timestamp": "2026-02-10T17:59:58Z",
586
+ "duration_ms": 0,
587
+ "cost_usd": 0,
588
+ "tokens_in": 0,
589
+ "tokens_out": 0,
590
+ "model": "unknown",
591
+ "branch": "main"
592
+ }
593
+ {
594
+ "timestamp": "2026-02-10T17:59:58Z",
595
+ "type": "cost_summary",
596
+ "costs": {
597
+ "other": 82
598
+ }
599
+ }
600
+ {
601
+ "timestamp": "2026-02-10T18:02:48Z",
602
+ "duration_ms": 0,
603
+ "cost_usd": 0,
604
+ "tokens_in": 0,
605
+ "tokens_out": 0,
606
+ "model": "unknown",
607
+ "branch": "main"
608
+ }
609
+ {
610
+ "timestamp": "2026-02-10T18:02:48Z",
611
+ "type": "cost_summary",
612
+ "costs": {
613
+ "other": 56
614
+ }
615
+ }
616
+ {
617
+ "timestamp": "2026-02-10T23:24:12Z",
618
+ "duration_ms": 0,
619
+ "cost_usd": 0,
620
+ "tokens_in": 0,
621
+ "tokens_out": 0,
622
+ "model": "unknown",
623
+ "branch": "main"
624
+ }
625
+ {
626
+ "timestamp": "2026-02-10T23:24:12Z",
627
+ "type": "cost_summary",
628
+ "costs": {
629
+ "other": 1872
630
+ }
631
+ }
632
+ {
633
+ "timestamp": "2026-02-10T23:24:18Z",
634
+ "duration_ms": 0,
635
+ "cost_usd": 0,
636
+ "tokens_in": 0,
637
+ "tokens_out": 0,
638
+ "model": "unknown",
639
+ "branch": "main"
640
+ }
641
+ {
642
+ "timestamp": "2026-02-10T23:24:18Z",
643
+ "type": "cost_summary",
644
+ "costs": {
645
+ "other": 9
646
+ }
647
+ }
648
+ {
649
+ "timestamp": "2026-02-10T23:26:51Z",
650
+ "duration_ms": 0,
651
+ "cost_usd": 0,
652
+ "tokens_in": 0,
653
+ "tokens_out": 0,
654
+ "model": "unknown",
655
+ "branch": "main"
656
+ }
657
+ {
658
+ "timestamp": "2026-02-10T23:26:51Z",
659
+ "type": "cost_summary",
660
+ "costs": {
661
+ "other": 150
662
+ }
663
+ }
664
+ {
665
+ "timestamp": "2026-02-10T23:27:32Z",
666
+ "duration_ms": 0,
667
+ "cost_usd": 0,
668
+ "tokens_in": 0,
669
+ "tokens_out": 0,
670
+ "model": "unknown",
671
+ "branch": "main"
672
+ }
673
+ {
674
+ "timestamp": "2026-02-10T23:27:32Z",
675
+ "type": "cost_summary",
676
+ "costs": {
677
+ "other": 33
678
+ }
679
+ }
680
+ {
681
+ "timestamp": "2026-02-10T23:46:59Z",
682
+ "duration_ms": 0,
683
+ "cost_usd": 0,
684
+ "tokens_in": 0,
685
+ "tokens_out": 0,
686
+ "model": "unknown",
687
+ "branch": "main"
688
+ }
689
+ {
690
+ "timestamp": "2026-02-10T23:46:59Z",
691
+ "type": "cost_summary",
692
+ "costs": {
693
+ "other": 685
694
+ }
695
+ }
696
+ {
697
+ "timestamp": "2026-02-10T23:49:01Z",
698
+ "duration_ms": 0,
699
+ "cost_usd": 0,
700
+ "tokens_in": 0,
701
+ "tokens_out": 0,
702
+ "model": "unknown",
703
+ "branch": "main"
704
+ }
705
+ {
706
+ "timestamp": "2026-02-10T23:49:01Z",
707
+ "type": "cost_summary",
708
+ "costs": {
709
+ "other": 15
710
+ }
711
+ }
712
+ {
713
+ "timestamp": "2026-02-10T23:53:00Z",
714
+ "duration_ms": 0,
715
+ "cost_usd": 0,
716
+ "tokens_in": 0,
717
+ "tokens_out": 0,
718
+ "model": "unknown",
719
+ "branch": "main"
720
+ }
721
+ {
722
+ "timestamp": "2026-02-10T23:53:00Z",
723
+ "type": "cost_summary",
724
+ "costs": {
725
+ "other": 219
726
+ }
727
+ }
728
+ {
729
+ "timestamp": "2026-02-10T23:53:56Z",
730
+ "duration_ms": 0,
731
+ "cost_usd": 0,
732
+ "tokens_in": 0,
733
+ "tokens_out": 0,
734
+ "model": "unknown",
735
+ "branch": "main"
736
+ }
737
+ {
738
+ "timestamp": "2026-02-10T23:53:56Z",
739
+ "type": "cost_summary",
740
+ "costs": {
741
+ "other": 64
742
+ }
743
+ }
744
+ {
745
+ "timestamp": "2026-02-10T23:55:36Z",
746
+ "duration_ms": 0,
747
+ "cost_usd": 0,
748
+ "tokens_in": 0,
749
+ "tokens_out": 0,
750
+ "model": "unknown",
751
+ "branch": "main"
752
+ }
753
+ {
754
+ "timestamp": "2026-02-10T23:55:36Z",
755
+ "type": "cost_summary",
756
+ "costs": {
757
+ "other": 16
758
+ }
759
+ }
760
+ {
761
+ "timestamp": "2026-02-10T23:55:47Z",
762
+ "duration_ms": 0,
763
+ "cost_usd": 0,
764
+ "tokens_in": 0,
765
+ "tokens_out": 0,
766
+ "model": "unknown",
767
+ "branch": "main"
768
+ }
769
+ {
770
+ "timestamp": "2026-02-10T23:55:47Z",
771
+ "type": "cost_summary",
772
+ "costs": {
773
+ "other": 14
774
+ }
775
+ }
776
+ {
777
+ "timestamp": "2026-02-10T23:55:56Z",
778
+ "duration_ms": 0,
779
+ "cost_usd": 0,
780
+ "tokens_in": 0,
781
+ "tokens_out": 0,
782
+ "model": "unknown",
783
+ "branch": "main"
784
+ }
785
+ {
786
+ "timestamp": "2026-02-10T23:55:56Z",
787
+ "type": "cost_summary",
788
+ "costs": {
789
+ "other": 14
790
+ }
791
+ }
792
+ {
793
+ "timestamp": "2026-02-10T23:56:25Z",
794
+ "duration_ms": 0,
795
+ "cost_usd": 0,
796
+ "tokens_in": 0,
797
+ "tokens_out": 0,
798
+ "model": "unknown",
799
+ "branch": "main"
800
+ }
801
+ {
802
+ "timestamp": "2026-02-10T23:56:25Z",
803
+ "type": "cost_summary",
804
+ "costs": {
805
+ "other": 64
806
+ }
807
+ }
808
+ {
809
+ "timestamp": "2026-02-10T23:58:29Z",
810
+ "duration_ms": 0,
811
+ "cost_usd": 0,
812
+ "tokens_in": 0,
813
+ "tokens_out": 0,
814
+ "model": "unknown",
815
+ "branch": "main"
816
+ }
817
+ {
818
+ "timestamp": "2026-02-10T23:58:29Z",
819
+ "type": "cost_summary",
820
+ "costs": {
821
+ "other": 63
822
+ }
823
+ }
824
+ {
825
+ "timestamp": "2026-02-10T23:59:52Z",
826
+ "duration_ms": 0,
827
+ "cost_usd": 0,
828
+ "tokens_in": 0,
829
+ "tokens_out": 0,
830
+ "model": "unknown",
831
+ "branch": "main"
832
+ }
833
+ {
834
+ "timestamp": "2026-02-10T23:59:52Z",
835
+ "type": "cost_summary",
836
+ "costs": {
837
+ "other": 21
838
+ }
839
+ }
840
+ {
841
+ "timestamp": "2026-02-11T00:17:20Z",
842
+ "duration_ms": 0,
843
+ "cost_usd": 0,
844
+ "tokens_in": 0,
845
+ "tokens_out": 0,
846
+ "model": "unknown",
847
+ "branch": "release/v0.3.0"
848
+ }
849
+ {
850
+ "timestamp": "2026-02-11T00:17:20Z",
851
+ "type": "cost_summary",
852
+ "costs": {
853
+ "other": 111
854
+ }
855
+ }
856
+ {
857
+ "timestamp": "2026-02-11T00:43:14Z",
858
+ "duration_ms": 0,
859
+ "cost_usd": 0,
860
+ "tokens_in": 0,
861
+ "tokens_out": 0,
862
+ "model": "unknown",
863
+ "branch": "main"
864
+ }
865
+ {
866
+ "timestamp": "2026-02-11T00:43:14Z",
867
+ "type": "cost_summary",
868
+ "costs": {
869
+ "other": 439
870
+ }
871
+ }