You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 6594b0d
Browse filesBrowse the repository at this point in the historyBrowse files
Arşiv okumayı RSS'in ötesine taşı, boş panoyu reddet
İki şey Selene'nin canlı denemesinden çıktı.
BOŞ PANO. `panoOku`nun boş `board` döndürdüğü bildirildi; kusur okumada
değildi — o panoyu ben yazmıştım, boş olarak, "ajan yolu hâlâ çalışıyor mu"
kontrolü sırasında. Ama boş bir panonun YAZILABİLMESİ gerçek bir eksikti:
panonun tamamı "şu adaylar arasından seç" demek ve sıfır adaylı bir pano
`selectCount: 1` ile kendi kendisiyle çelişiyor. Artık reddediliyor.
ARŞİV OKUMA. `yayinlariOku` son haberleri döndürüyordu, yani RSS'in daha
zayıf bir kopyasıydı: RSS gövdeyi de veriyor, o vermiyordu. Orbit'ten
geçmenin bir karşılığı olmalı ve bu karşılık kısıtla değil FAZLALIKLA
kurulmalı — RSS'e dokunulmadı, olduğu gibi açık.
Fark artık arşivin kendisi: arama, etiket, kategori, tarih aralığı,
sayfalama, ve istenirse haber gövdesi. RSS son haberleri veriyor; bu uç 580
haberin tamamını, süzülebilir halde.
Aramada joker karakterler kaçırılıyor. Kaçırılmasaydı `%` gönderen biri
süzgeci sessizce etkisiz hale getirirdi — arama yaptığını sanarak her şeyi
alırdı. FTS5 kurmadım: 580 satırda tarama ucuz ve ayrı indeks, senkron
tutulması gereken ikinci bir gerçek demek.
67 vaka; boş pano kapısı ve joker kaçırma mutasyonla sınandı.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: public/orbit-actions.json
+47-9Lines changed: 47 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@
15
15
"properties": {
16
16
"board": {
17
17
"type": "array",
18
-
"description": "Aday haberler. Her adayın en az id, title, url, source alanları olmalı.",
18
+
"description": "Aday haberler. En az bir aday gerekiyor; boş pano reddedilir.",
19
19
"items": {
20
20
"type": "object",
21
21
"additionalProperties": true
@@ -239,26 +239,55 @@
239
239
},
240
240
{
241
241
"operationId": "haber.yayinlariOku",
242
-
"summary": "Yayımlanmış haberleri en yeniden eskiye döndürür. Yayıncı yetkisi gerektirmez; Orbit'e bağlı her ajan çağırabilir.",
242
+
"summary": "Yayımlanmış haber arşivinde arama ve süzme. Yayıncı yetkisi gerektirmez: Haber'i bağlamış ve ajan erişimini açmış her insanın ajanı çağırabilir.",
243
243
"idempotent": true,
244
244
"input": {
245
245
"type": "object",
246
246
"additionalProperties": false,
247
+
"description": "Hiçbir alan zorunlu değil; boş girdi son 20 haberi döndürür.",
247
248
"properties": {
248
-
"limit": {
249
-
"type": "integer",
250
-
"minimum": 1,
251
-
"maximum": 100,
252
-
"description": "Kaç haber. Varsayılan 20."
249
+
"arama": {
250
+
"type": "string",
251
+
"maxLength": 120,
252
+
"description": "Başlık ve özette geçen metin."
253
253
},
254
254
"kategori": {
255
255
"enum": [
256
256
"Siyaset",
257
257
"Ekonomi",
258
258
"Teknoloji",
259
259
"Bilim"
260
-
],
261
-
"description": "Tek kategoriye daraltır."
260
+
]
261
+
},
262
+
"etiket": {
263
+
"type": "string",
264
+
"maxLength": 80
265
+
},
266
+
"tarihten": {
267
+
"type": "string",
268
+
"maxLength": 40,
269
+
"description": "ISO tarih; bu tarihten sonrası."
270
+
},
271
+
"tarihe": {
272
+
"type": "string",
273
+
"maxLength": 40,
274
+
"description": "ISO tarih; bu tarihe kadarı."
275
+
},
276
+
"limit": {
277
+
"type": "integer",
278
+
"minimum": 1,
279
+
"maximum": 100,
280
+
"description": "Varsayılan 20."
281
+
},
282
+
"offset": {
283
+
"type": "integer",
284
+
"minimum": 0,
285
+
"maximum": 10000,
286
+
"description": "Sayfalama için atlanacak kayıt."
287
+
},
288
+
"govde": {
289
+
"type": "boolean",
290
+
"description": "true ise haber metnini de döndürür (markdown)."
0 commit comments