Artifacts-D1 — Proje Panosu

Artifacts-D1 TUR 27 PROD · review-1.1 CANLI · F6 küçük paket (meta+guard+asistan-köprüsü) yayında · PLAN-ARTF-003 sürüyor

Claude-Artifacts eşdeğeri self-hosted servis — cx53 + Coolify · servis: hart v0.4.3 · artifacts.gonet.com.tr/a/d1/pano CANLI · son güncelleme: 2026-09-28

Hedef · Kapsam · Sınıri

Hedef

Ajan/insan üretimi self-contained HTML'leri kalıcı, sürümlü, public linkli 7/24 servis etmek — vendor bağımsız. Claude Artifacts'ın işlev eşdeğeri.

Sınır (DEĞİLDİR)

Servis kodu bu repo'da yaşamaz (ayrı repo: Guru35/artifacts-*) · production deploy bu planda değil (kapılı, ayrı tur) · claude.ai klonu değil.

Sprint rayıi

S0 doğum+araştırma+plan+pano ✔
S1 mimari karar: hart ✔
S2 servis MVP staging'de CANLI ✔
S3 sürüm+paylaşım+sandbox ✔ (private/parola + limitler kanıtlı)
S4 ajan arabirimi: artifact-publish skill ✔
S5 işletim+prod: Coolify kaydı ✔ · PROD ilanı ✔ — plan tamam
F0 Claude-parity araştırma + PLAN-ARTF-002 ✔
F1 viewer: galeri + sürüm seçici ✔ CANLI (review-0.6)
F2 md aracı + jsx runtime ✔ CANLI
F3 window.arti köprüsü + KV store ✔ CANLI (review-0.7)
F4 sürüm bandı + kaynak/remix + olay günlüğü ✔ CANLI (review-0.8)

İş paketleri (PLAN-ARTF-001)i

PaketSprintİçerikKanıt testiDurumBağlı
ARTF-001S0Vault doğumu, kimlik, 7 raw derlemesi, wiki katmanı, plan, pano v0kapı YEŞİL + remote kanıtı (44731ca)bitti—
ARTF-002S1Mimari karar → hart (operatör delegasyonu; tek-origin+CSP, token)matris §Karar kaydı + geri-dönüş koşulubitti—
ARTF-003S2Servis MVP staging: publish→public URL; repo Guru35/artifacts-d1-servicePOST→v1, GET→200, restart→200, TLS+LEbitti—
ARTF-004S3Immutable sürümler + /v<n> + unlisted/private katmanıprivate: 401 unlock · X-Hart-Read-Key 200 · yanlış 401 · geçiş kanıtlıbitti—
ARTF-005S3CSP 'none' + linter 422 + limitler429 (~10/dk) · 5MB kabul · owner cap 30MB · nosniff/noindexbitti—
ARTF-006S4.devin/skills/artifact-publish (kanıtlı sözleşme) + doğrulama publish'iskill'den publish → /a/d1/skill-dogrulama 200bitti—
ARTF-007S5Coolify service kaydı + prod ilanı + backup/restoreservice uuid 5w76… · 13 artifact korundu · pano 200 · volume-rename tuzağı aşıldıbitti—
ARTF-008T7-T8Yorum/review katmanı CANLI — /review/<id> iframe+yorum paneli (ayrı SQLite, volume review-data)healthz 200 · wrapper+iframe · POST→GET roundtrip (id=1) · 404 yabancı · hart 200'ler etkilenmedibitti—
ARTF-008bT10Parity eksikleri: resolve toggle ucu+UI · pin ekle modu (overlay %x/%y + marker katmanı) · artifact_version passthroughtest 16/16 · canlı: pin POST id=2 (anchor+sürüm) · resolve 1→0 toggle · 404 olmayan · review-0.2 deploy'lubitti—
ARTF-009—Sablon-V3-D1 şablonu (Sablon-D1 çatalı + servisli-vault katmanı)sandbox doğum YEŞİL · Guru35/Sablon-V3-D1 push'lubitti—
ARTF-010F0Claude-Artifacts parity derin araştırması + PLAN-ARTF-002 (F1-F5 fazları)wiki'de: web-claude-artifacts-2026 + PLAN-ARTF-002bitti—
ARTF-011F1Galeri: /review/galeri public liste (hart /v1 admin okuması sunucuda; private+gizli elenir) + admin gizle ucutest T17-T19,T22-T24 · CANLI: /review/galeri 200, d1/pano listede · repo 8d77e9cbitti—
ARTF-012F1Sürüm seçici: /review/{o}/{n}/versions ucu + sayfada seçici/pin/latest linkleritest T20-T21 · CANLI: /versions → 30 sürüm JSON, seçici render · repo 8d77e9cbitti—
ARTF-013F2.md → styled page: publish-time conversion tools/md-publish.py (markdown-it + inline-CSS şablon; frontmatter soyma, harici-ref uyarısı, --dry-run)md-test v3 canlı 200, h1/table render doğrulandı · temizlik DELETEbitti—
ARTF-014F2JSX doğrulama: format=jsx + HART_RUNTIME_DIR=/data/runtime (envs API) + redeploy → runtime canlı/_hart/runtime/* 3/3 → 200 · jsx-test wrapper+#root OK · regresyon 5/5 → 200bitti—
ARTF-016F3window.arti köprüsü: artifact shim'i (postMessage arti.req/res) → review sayfası dispatch (declare-meta + origin/source kapısı) → /arti/api/complete + download parent'ta Blobtest T36-T42 · CANLI: complete → {"text":"Merhaba!"} gerçek LLM · 422 uzun prompt · 404 yok artifact · sayfada arti.req/res+declare · repo 0c9abe7bitti—
ARTF-017F3Storage KV: artifact_store tablosu + /arti/api/store (GET/POST/DELETE) — key≤64 · value≤32KB · ≤50 key · ≤256KB/artifact · 30 yazım/dktest T25-T35 · CANLI: store set→get→list→del→404 roundtrip /review/arti/api/* altında · repo 0c9abe7bitti—
ARTF-022F6Metadata: hart ?title= (tek kaynak — served title + galeri + review barı) + review artifact_meta iconu (admin PUT / public GET /review/{o}/{n}/meta) + md-publish --title/--icon (emoji data: favicon)test T56-T61+T63 · CANLI: meta roundtrip · galeri "📋 Artifacts-D1 Pano" · served <title> doğrulandıbitti—
ARTF-025F6Stale-publish guard: md-publish.py --expect N — publish öncesi /v1/artifacts okunur, güncel≠N ise kesilir (hart binary server-side guard desteklemez; araç-seviyesi eşdeğer)CANLI: --expect 5 → "stale base" ile kesildi; --expect 1 → v3 publish 200bitti—
ARTF-026F6Yorum→asistan köprüsü: yorum kartında "asistana sor" linki → /asistan?s=yorum#id·ad:metin (yorum LLM'e bolum bağlamı olarak girer)test T62 marker · CANLI: sayfada link render doğrulandıbitti—

Emsal matrisi (S1 karar tabanı)i

Adaycx53SürümPaylaşımSandboxSinyal
artifact-server (plannotator)✔ Compact Composeimmutable + review linkWorkOS/OIDC, private/publiciki-origin (en güçlü)184★, conformance ledger
Stela (kdowding)✔ container+SQLiteimmutable, aynı URLheader-trust; 3 katman + pinned commentiframe + CSP 'none'0★, 1 commit — genç
hart (javimosch)✔ tek binary+SQLiteimmutable + rollbacktoken + public link + custom domainCSP skeleton + 422 lintercanlı demo hart.intrane.fr
open-artifacts (coda0)✘ CF Workers?v=N immutableunguessable id + writeToken + ZKCSP sandbox 'none'60★ — kalıp kaynağı
hushdrop (maxtechera)✘ Vercel Blobupdate-in-placeZK parola + expire/burn + email-gateCSP + noindexkalıp kaynağı

Kaynak: raw/web-*.md derlemeleri · detay: wiki/concepts/oss-emsal-karsilastirmasi.md

Kararlari

TarihKararKim
2026-09-27Tek turda doğum+araştırma+plan+panooperatör
2026-09-27Servis kodu ayrı repo + Coolify deployoperatör
2026-09-27Sablon-V3-D1 ertelendi — desen önce kanıtlansınoperatör
2026-09-27Uzak repo + public domain hedefi evetoperatör
2026-09-27Mimari: hart (operatör "sen seç" → ajan; geri-dönüş koşulu matriste)ajan (delegasyon)
2026-09-27"ikisini de yap, doğru sırayla" → önce review araştırması, sonra V3 inşası (erteleme kararı geçildi)operatör
2026-09-27Review katmanı yönü: ince companion önerildi — karar implementasyon turundaajan (öneri)

Tuzaklari

Kanıt kayıtlarıi

TurKanıtSonuç
T1dogur-vault-d1.sh çıktısı: TUR KAPISI YESIL, 48→62 sayfa, araçlar 7/7yeşil
T1uzak-repo-kur.sh: ls-remote HEAD a8ca00e (Guru35/Artifacts-D1)yeşil
T1ortak-yazim.py: vault-haritasi.md sha 334de2b4→8a26dfe4 + kök commit 7b4e531yeşil
T2POST /v1/publish (token'lı) → {"url":"…/a/d1/pano","version":1}; tokensız → 401yeşil
T2GET /a/d1/pano → 200; republish → v2; /a/d1/pano/v1 → 200 (immutable)yeşil
T2dış-script'li HTML → 422 linter "external-script"; CSP header: default-src 'none', nosniff, frame-ancestors 'self'yeşil
T2docker restart → aynı URL 200 (SQLite volume kalıcı); http→https 302; LE cert YR2 → 2026-12-26yeşil
T3private publish (read_key) → keysiz 401+unlock sayfası · X-Hart-Read-Key → 200 · yanlış key → 401yeşil
T3visibility unlisted + clear_read_key → 200; clear'sız gate SÜRER (read-key kalıcı)yeşil
T3rate limit: ~10 publish/dk → 429; 5MB tek dosya → 200 (owner cap 30MB)yeşil
T3backup: stop→tar.gz+sha256→up; restore: ayrı volume'e extract + geçici instance → 13 artifact 200yeşil
T3artifact-publish skill sözleşmesi → /a/d1/skill-dogrulama 200yeşil
T4Coolify service kaydı: POST /services (compose base64) → deploy → container hart-5w76… upyeşil
T4geçiş kanıtı: pano 200 · 13 artifact · TLS + http→https 302 · COOLIFY_RESOURCE_UUID env varyeşil
T4tuzak yakalandı: Coolify volume rename (external yutuldu) → cp -a ile veri kopyası → 13/13yeşil
T4dbağımsız doğrulama: service DB'de (uuid 5w76, fqdn doğru) · hart-5w76 up · kök+pano 200 · iki repo ls-remote==HEADyeşil
T4dkünye kapanışı: PLAN-ARTF-001 frontmatter bitti+kapanis+kanit (bdcffc6) — gövde "tamam" yazarken künye "suruyor" kalmıştıyeşil
T4dtools/pano-yayinla.sh: tek komut publish → pano v6 (bu sayfa) — "her tur sonunda" republish prosedüre bağlandıyeşil
T5kök sayfa: HART_LANDING=/data/landing.html → https://artifacts.gonet.com.tr/ "Artifacts-D1" giriş sayfası (stok yerine)yeşil
T5HART_TOKEN rotasyonu (transkript sızıntısı): eski token publish → 401 · yeni token → v7 publish yeşilyeşil
T5tuzak: Service-level envs/bulk dockercompose container'a enjekte OLMAZ — çözüm docker_compose_raw PATCH (environment bloğu)yeşil
T5admin token envs-API + redeploy → container'da set · DELETE /v1/artifacts → 7/7 artık silindi, yalnız d1/pano kaldıyeşil
T5backup.sh elle koşu → tar.gz+SHA256SUMS → servis geri 200 · crontab 35 3 * * * kuruldu (14 gün retention)yeşil
T5bulgu: envs-API değeri compose literal'ını ezer · listeleme sahibesiz sorguda publish tokenla [] döner (admin/cross-owner) · silme admin'siz de çalışıryeşil
T6kok-neden: paralel işçi Hetzner-D1 köklü Claude oturumu (565c465e — jsonl kanıtı, "çift Devin" düzeltildi) · aktif-ajan-kilit sinyali oturum kökü ölçüyor → sınır-ötesi yazar görünmezyeşil
T8deploy: /review/healthz 200 · /review/d1/pano 200+iframe src=/a/d1/pano · yorum POST→201 + GET listede (id=1) · /review/yok-boyle 404 · / ve /a/d1/pano 200 (hart etkilenmedi)yeşil
T8backup.sh canli koşu: hart 36K + review 4.0K, code=200 review_code=200 (cift volume kapsamda)yeşil
T8tuzak: compose_raw PATCH base64 ister · app PATCH alanı url (fqdn değil) · is_stripprefix_enabled:false şart (true = Traefik /review'i yer → 404)yeşil
T10ARTF-008b: test 16/16 (resolve toggle, anchor+sürüm roundtrip, pin katmanı, 404'ler) · image artifacts-d1:review-0.2yeşil
T10deploy: compose_raw PATCH (image tag) → deploy → review-0.2 up · canlı: pin POST id=2 (anchor .5/.3, v11) · resolve 1→0 · olmayan 404 · /a/d1/pano 200yeşil
T10bulgu: /v1/artifacts?owner=d1 iç ağda bile tokensuz 401 → artifact_version opsiyonel passthrough (token review'a geçirilmedi)yeşil
T6çözüm: aktif-ajan-kilit v1.2.0-aday (tools/) — sınır-ötesi jsonl taraması + filo satırı · test 11/11 + regresyon 47/47 · canlı prova: 565c465e SINIR-ÖTESİ yakalandıyeşil
T6kanıtlı patch Loops/raw bildirim-20260927-1308 ile iletildi — kanonik değişim+senkron Loops'ta · ders: wiki/system/dersler/sinir-otesi-ajan-kor-noktasi.mdyeşil
T7ARTF-008 iskelet: review/ FastAPI+SQLite (iframe /a/<id> + comments API, honeypot, 30/dk) — 11/11 test · repo commit 82929eb · deploy YOK (bayrak'ta onay)yeşil
T7review araştırması: hart'ta public yazma ucu YOK (feedback=operatör, stats=sayaç) → gerçek yorum harici servis ister; Stela 1 commit/0★ ölü; öneri ince companionyeşil
T7Sablon-V3-D1 kuruldu: 6 V3 dosyası · sandbox doğum (--hedef-koku) kapı YEŞİL · push e8e30d5 · harita SBLNV3D1 (3825814)yeşil
T7saha bulgusu: doğurma yer-tutucu turu yalnız *.md tarar → pano.html tutucuları ilk güncellemede dolar (SKILL §Nasıl-0, V3-NOTU)yeşil
T21ARTF-011/012 kodu: pytest test_app.py → 24/24 OK (T17-T24 yeni: galeri/private-eleme/unverified bandı/versions ucu/seçici render/gizle 403+admin) · docker image artifacts-d1:review-0.6 build OK · repo commit 8d77e9c (yerel — push+deploy kapılı)yeşil
T21canlı prob: /v1/artifacts/d1/pano → sürüm listesi · /a/d1/pano/v1 ≠ /v29 (farklı gövde) · ?v= sürüm SEÇMİYOR (hepsi latest) → seçici path-tabanlı /a/o/n/vNyeşil
T22md ölçümü: format=md KABUL ediliyor ama render YOK (ham metin skeleton'da) → publish-time conversion kararı; tools/md-publish.py → md-test v3 canlı 200 (h1/table/styled), DELETE temizyeşil
T22jsx: HART_RUNTIME_DIR=/data/runtime envs-API ile yazıldı + redeploy → /_hart/runtime/* 3/3 → 200 · jsx-test publish wrapper+#root kanıtlı · regresyon 5/5 200 · DELETE temizyeşil
T23ARTF-016/017 kodu: review/arti.py + köprü JS → python test_app.py → 46/46 OK (T25-T42 yeni: store roundtrip/upsert/kota sınırları/izolasyon/404'ler · complete mock/prompt sınırları/günlük tavan 429/store rate 429/sayfa markerları) · test_asistan.py A1-A21 regresyon yeşil · repo bc16ecbyeşil
T23DEPLOY TAMAM: compose_raw PATCH image→review-0.7 + Coolify deploy · CANLI kanıt: store roundtrip (set→get→list→del→404) · complete → {"text":"Merhaba!"} (gerçek LLM) · 422/404 sınırları · regresyon 8/8 200 · bind mount korundu. İki deploy bulgusu düzeltildi: (1) uçlar /review/arti/api/* altına taşındı — Traefik review'e yalnız /review+/asistan path'lerini yönlendirir; (2) Dockerfile COPY listesine arti.py eklendi — ilk image'da yoktu, route kayıtsızdıyeşil
T24ARTF-018/019/020 kodu: python test_app.py → 54/54 OK (T43-T48 yeni: kaynak mock+escape+remix şablonu+404 · olay satırları yorum+store.set+complete · admin 403 fail-closed · complete detail'de prompt yok · sayfa markerları) · repo 4db8524 (yerel — push+deploy kapılı)yeşil
T25ARTF-021 iki-origin: ARTI_HOST env → iframe+linkler a.gonet.com.tr · iframe sandbox="allow-scripts" + arti v2 hello protokolü · review-0.9→review-1.0 CANLI · repo 379347b+3a16d69 · PLAN-ARTF-002 kapandıyeşil
T26Hasat (Mod C): Tur-2 kaynak taraması işlendi (raw bölüm + source özeti + artifact-servis-modeli güncellemesi) · PLAN-ARTF-003 doğdu (ARTF-022..028; küçük paket 022+025+026 onaylı) · kaynakça +7 kayıt · seyir kaydı · devir notu eki · TUR KAPISI yeşilyeşil
T27F6 küçük paket CANLI: review-1.1 (ARTF-022 meta + ARTF-026 asistan-köprüsü) · test 74/74 (T56-T63c) + asistan A1-A21 · canlı: meta PUT/GET roundtrip · galeri+bar "📋 Artifacts-D1 Pano" · served title · regresyon 10/10 200 · md-publish --expect guard + --title/--icon (v3 smoke kanıtlı) · repo 6abdbb1 push'luyeşil

Servis durumu (PROD)i

KalemDeğer
URLartifacts.gonet.com.tr (Traefik+LE, http→https)
Stackhart v0.4.3 (pin+sha256) · Coolify service (uuid container) · SQLite Coolify-volume · Traefik+LE
RepoGuru35/artifacts-d1-service (private) · ~/Code/artifacts-d1
PublishPOST /v1/publish + Authorization: Bearer $HART_TOKEN (env'de, yazdırılmaz)
Görünürlükunlisted (varsayılan) · public · private (read-key/parola)
KeşifHART_EXPLORE=0 → /explore kapalı (link-only)
Backup~/artifacts-d1-backup/2026-09-27/hart-data.tar.gz (sha256:8076f764…) — restore tatbikatı kanıtlı
İşletimCoolify: proje artifacts (zlhfs6…) · service 5w76wyoipamcklcpg2snu6v5 · API localhost:8000/api/v1 · token ~/.coolify/token-artifacts-d1
Backupgünlük cron 03:35 (~/srv/artifacts-d1/backup.sh, 14 gün retention) + elle kanıtlı arşiv
Bilinen artıklaryok — 7 test artığı T5'te silindi (DELETE /v1/artifacts, publish token) · envanter: yalnız d1/pano · eski volume artifacts-d1_hart-data diskte ek yedek

Tur kayıtlarıi

TurTarihÖzet
T12026-09-27Doğum (Sablon-D1→ARTFD1) · kimlik dolumu · harita satırı · uzak repo Guru35/Artifacts-D1 · 6 raw derleme (5 emsal+Claude docs+Coolify) · 2 kavram+3 entity+7 source+MOC+PLAN-ARTF-001 · pano v0
T22026-09-27ARTF-002 karar: hart (delegasyon) · repo Guru35/artifacts-d1-service · staging container (coolify net, Traefik+LE) · DNS artifacts.gonet.com.tr · 8 kanıt yeşil (401/201/v2/422/restart/CSP/TLS/302) · servis CANLI
T32026-09-27ARTF-004 private/read-key kanıtlı (401 unlock · read-key 200 · clear_read_key geçişi) · ARTF-005 limitler (429 ~10/dk, 5MB kabul) · ARTF-006 artifact-publish skill + doğrulama 200 · backup/restore tatbikatı (tar.gz + geçici instance'ta 13 artifact) · kalan: Coolify kaydı + prod kararı
T42026-09-27ARTF-007: Coolify service kaydı (tinker token mint → POST /services base64 compose → deploy) · volume-rename tuzağı aşıldı · 13 artifact korundu · PROD ilanı — PLAN-ARTF-001'in 7 paketi tamam
T4d2026-09-27Paralel-oturum doğrulaması (iş tekrarı yapılmadı) · LLMWKD1'e bilgi mektubu · harita PROD satırı · bayrak: posta-kuyruk kalıntısı + çift-oturum notu · plan künyesi kapatıldı · pano-yayinla.sh → v6
T52026-09-27Kök sayfa "çalışmıyor" ihbarı → teşhis: stok landing (kesinti yok) · HART_LANDING ile özel giriş sayfası · HART_TOKEN rotasyonu aynı restart'ta (eski 401) · landing.html repo'da · pano v7
T52026-09-27admin token + 7/7 artık silindi (yalnız d1/pano) · günlük backup cron'u (03:35, 14 gün) · Sablon-V3 değerlendirme raporu + Sablon-D1'e tohum mektubu · envs-API>compose + DELETE bulguları
T62026-09-27derin kök-neden: paralel el = sınır-ötesi Claude (Hetzner-D1, 565c465e) · aktif-ajan-kilit v1.1.0 körlüğü (sinyal=oturum kökü) · v1.2.0-aday patch testli (11/11+47/47) · Loops'a kanıtlı bildirim · bayrak düzeltildi
T72026-09-27ARTF-008: paralel oturumun yorum araştırması iskelete döndü — review/ servisi (iframe+panel, ayrı SQLite) 11/11 test, repo 82929eb · deploy onayı bayrak'ta · kök-ötesi devin yazımı canlı kanıtlandı (luxuriant-flig)
T82026-09-27ARTF-008 CANLI ("yapılsın"): review companion Coolify'da — /review/d1/pano çalışıyor, yorum roundtrip kanıtlı · strip-false + url-alanı tuzakları çözüldü · backup.sh cift-volume · bayrak KAPALI
T92026-09-27Bakım + karar temizliği: durum.md bayatı düzeltildi · posta-kuyruk.json Sablon-D1 kalıntısı operatör onayıyla silindi (bayrak KAPALI) · servis sağlık: hart+review up, /review/healthz 200
T102026-09-28ARTF-008b parity tamamlandı: resolve toggle + pin ekle (overlay %x/%y + marker) + sürüm passthrough · review-0.2 Coolify deploy · test 16/16 + canlı kanıt bataryası yeşil · repo e6947d3
T72026-09-27yorum katmanı araştırması (4 seçenek matrisi, öneri: ince companion — karar operatörde) · Sablon-V3-D1 kuruldu + sandbox doğum testi YEŞİL + GitHub push · harita satırı + Sablon-D1 karşılama mektubu · V3 saha bulgusu: yer-tutucu turu *.md-only
T112026-09-28Maraton8 (gözetimsiz bakım koşusu): 6 bug kanıtlanıp düzeltildi — anchor 0..1 · esc() quote/XSS · sayfa CSP+nosniff · XFF rate-kovası · created_at offset · comments artifact-var koruması; +bozuk-JSON→400, WAL, admin-delete (fail-closed). Olay: compose_raw PATCH Coolify volume adını çift-uuid yaptı → boş volume, pano 404 → kalıcı fix: host bind mount (~/srv/artifacts-d1/*-data), backup.sh uyarlama. Bakım: watchdog */10 + aylık restore tatbikatı cron. Test: test_maraton8.py M1–M12 yeşil (suite toplam 38). review-0.4 canlı (asistan dahil — paralel tur). Repo d22815c.
T122026-09-28ARTF-009 "(i) asistan" CANLI: /asistan/d1/pano 200 — postMessage balon + chat API + statik açıklamalar (pano v17'de 9 ikon enjekte). Coolify fqdn virgül-listesiyle /asistan Traefik router'ı üretti; pigme ağı cross-connect ile LiteLLM'e ulaşıldı. Test: enjekte 13/13 + A1-A10. Repo b845f08. Eksik: chat upstream API anahtarı bekliyor (pigme env'leri boş) — statik açıklamalar çalışıyor, chat 502 zarif.
T132026-09-28Sıradakiler paketi: cross-network kalıcılaştı (pigme compose'a external artfd1 ağı — recreate'te düşmez) · landing'e asistanlı görünüm linki · watchdog'a /asistan alarm-only kontrol · 2 standard sayfaya stale_after · tek kalan: OPENAI_API_KEY operatörde
T142026-09-28ARTF-009 TAM CANLI: anahtar panodan `litellm.env`'e (transkriptsiz, 600) → /opt/pigme'nin IDE-buffer ezmesi + root izinleri yüzünden rota değişimi: direkt api.openai.com (LiteLLM yolu opsiyonel kaldı) → canlı kanıt: POST /asistan/api/chat → 200 gerçek cevap. Bayrak kapandı.
T152026-09-28/asistan/ayar CANLI: operatör self-servis key yönetimi — admin-token korumalı formdan OpenAI key kaydet/test et/sil (db'de, sayfada sk-…son4 maskeli); db-key varsa chat direkt api.openai.com, yoksa env yolu yedek. Harcama freni: ASISTAN_DAILY_TOKENS=200k/gün → aşımda 429. Canlı kanıt: 403/403/200 · save→maske · test→gerçek upstream 401 · clear→env'e dönüş → chat yine 200. Test A11–A21 (suite 49/49) · review-0.5 deploy'lu · repo f11e634.
T162026-09-28ARTF-009 tıklama sağlamlaştırma: (i) ikonları <a href="/asistan/…?s=…"> — JS'siz bile çalışır (progresif geliştirme); iframe'de postMessage→balon, standalone'da yerel balon→location.href (window.open kalktı). Kök neden bulgusu: review script'i v0.2'den beri SyntaxError'le TAMAMEN ölüydü (üç-tırnaklı Python şablonunda \' yenir → çıplak ' → script parse olamaz) — düzeltildi, node --check temiz. /review'a ai→asistan nav eklendi. Yayın: pano v23, review-0.5.2; headless E2E 4/4; canlı chat 200. Repo a2e93a0+ad887ed.
T172026-09-28Watchdog→posta köprüsü: ALARM/AKSIYON/KRITIK satırları artık vault'un kendi raw/bildirim-* kutusuna düşer (6sa dedup, --posta-test kanıt ucu; sonraki oturum posta-uyari ile görür) · yazilacaklar 2 sayfa yazıldı (tam-hucre-dogrulama, fact-prosedur-ayrimi → kuyruk boş) · pano skill'e çip-senkron notu · rutinler ölçüldü: backup 03:35 otomatik koştu (200/200, 36K+4K), watchdog 8/8 OK · repo d63a1da
T182026-09-28Bayrak+posta toplu turu: posta araçları Sablon-D1'den kuruldu (13 dosya — skill §0 ARAC-EKSIK kapandı) · kendi kutum TEMIZ (0 işlenmemiş) · iki giden mektup karşıda bekliyor (Loops kilit 1308 + LLM-Wiki servis 1211, ~1g < 3g uyku eşiği) · karar-kuyrugu.md açıldı: K1 Sablon-V3 + K2 filo posta birikimi (1246 işlenmemiş bildirim / ~110 vault — filo sağlığı bizim işimiz değil) · operatör cevapları: K1 "şimdilik hayır", K2 "CNNCT'ye bildir" → mektup push'landı (CNNCT ~11g uykuda, kuyrukta) · kuyruk boş
T192026-09-28Hasat + devir kapanışı: 2 yeni ders (bayat-yukleme-raporu · ezilen-duzeltme-sahiplik-katmani) · artifact-servis-modeli güncellendi · PLAN-ARTF-001'e ARTF-008/009 kapanışları işlendi · devir-20260928.md yazıldı · iki alici-uykuda sinyali islendi (CNNCT ~11g · Sablon ~3g, ikisi de bilgi sınıfı)
T202026-09-28Rutin işletim kontrolü — tüm yüzeyler yeşil: 4 uç 200 (/, /a/d1/pano, /review/healthz, /asistan/d1/pano) · watchdog temiz (fails=0, disk 38%, tls 88g) · backup 03:35 yeşil (36K+4K, 200/200) · kutu temiz (posta-var rc=0) · hart+review container up · pano çipi bayatı düzeltildi (TUR 17→20)
T212026-09-28Claude-parity F1 kodlandı (ARTF-011/012): /review/galeri public artifact listesi (hart /v1 admin okuması sunucuda kalır; unauth probe ile private/read_key'liler + admin gizli bayraklılar elenir) · /review/{o}/{n}/versions sürüm ucu · review sayfasında sürüm seçici (iframe /a/o/n/vN'e döner — ?v= sürüm seçmiyor, kanıtlı) + pin/latest link kopyalama + unverified bandı · admin gizle ucu fail-closed · compose review-0.6 + HART_ADMIN_TOKEN env · test 24/24 yeşil · repo 8d77e9c · DEPLOY TAMAM: compose_raw PATCH (base64) + env enjeksiyonu + Coolify deploy → review-0.6 canlı; 6 uç 200, galeri'de d1/pano, versions ucu 30 sürüm dönüyor, bind mount korundu. Olay-notu: ilk deploy bayat image'la crash-loop'a girdi (~4dk review kesintisi) — image test-fix'ten ÖNCE build edilmişti; rebuild + redeploy ile çözüldü. Ders: image kod-finalden sonra build edilir, redeploy öncesi image içeriği doğrulanır
T222026-09-28Claude-parity F2: ARTF-013 tamam — tools/md-publish.py (md→styled HTML publish-time conversion; hart format=md'nin render ETMEDİĞİ ölçüldü, ham metin dönüyor) → md-test v3 canlı kanıt · ARTF-014 kısmi — format=jsx publish+wrapper çalışıyor ama /_hart/runtime/* 404: HART_RUNTIME_DIR env'i compose'da yok → react/react-dom/babel /data/runtime'a seed'lendi (bind mount, kalıcı), env+redeploy aşıldı (T22-ek: envs API + redeploy → runtime 3/3 200) · artifact-publish skill'e formatlar bölümü · README eki · test artifact'ları DELETE'lendi
T232026-09-28Claude-parity F3 kodlandı (ARTF-016/017): window.arti köprüsü — artifact'a gömülen shim postMessage ile review wrapper'ına ulaşır (arti.req/arti.res, declare-meta + origin+source kapısı, CSP postMessage'ı engellemez); wrapper /arti/api/* uçlarını çağırır. Yeni review/arti.py: POST /arti/api/complete/{o}/{n} (serbest LLM tamamlama — asistan'la ORTAK IP rate + 200k/gün token sayacı) · GET|POST|DELETE /arti/api/store/{o}/{n} (artifact-özel KV: key≤64 regex · value≤32KB · ≤50 key · ≤256KB toplam · 30 yazım/dk) · download parent'ta Blob. Sınırlar kanıtlı: 46/46 test yeşil + asistan regresyon · non-string key/prompt → 422 (500 değil, self-review bulgusu düzeltildi). Sözleşme: artifact-publish skill'e "window.arti köprüsü" bölümü (declare meta + shim snippet) · compose review-0.7 · repo bc16ecb+0c9abe7 — DEPLOY TAMAM: uçlar /review/arti/api/* altına taşındı (Traefik yalnız /review+/asistan yönlendirir — ilk deploy 404'ledi) + Dockerfile'a arti.py eklendi; canlı: store roundtrip + complete→{"text":"Merhaba!"} + 8/8 regresyon
T242026-09-28Claude-parity F4 kodlandı (ARTF-018/019/020): yeni-sürüm bandı (15sn versions poll, latest artınca "v{N} yayında" → tıkla latest) · /review/{o}/{n}/kaynak view-source+remix sayfası (escaped pre + kopyala + curl şablonu, 200KB kesim — view-source: linki tıklanamaz) · olay günlüğü: events tablosu + log_event yorum/resolve/store/complete/gizle uçlarına bağlandı, admin GET /review/admin/olaylar (x-review-admin fail-closed) — detail'e prompt/secret asla yazılmaz. Test 54/54 + bir bulgu düzeltildi (T46: d1/pano 50-key doluydu, store testi ayrı artifact'a taşındı) · repo 4db8524 — push+deploy ayrı onayda
T252026-09-28F4 DEPLOY + ARTF-021 iki-origin CANLI: review-0.8 (F4 deploy kapanışı) → ARTF-021 fizibilite (iki-origin) → C-adımı iframe sandbox + arti v2 hello (review-0.9) → A-adımı ARTI_HOST env (review-1.0) · ikinci origin a.gonet.com.tr ayakta · repo 379347b+3a16d69 · PLAN-ARTF-002 tamamlandı (11 paket, 5 faz)
T262026-09-28Tur-2 derin kaynak taraması + PLAN-ARTF-003 + hasat: code.claude.com docs + changelog + 4 destek makalesi + Compliance API + topluluk CLI + GH #70254 → raw Tur-2 bölümü · kaynak sayfası özeti · artifact-servis-modeli güncellendi · PLAN-ARTF-003 (durum matrisi + ARTF-022..028; operatör kararı: küçük paket = ARTF-022+025+026) · F6 küçük paket mühürlendi ama kodlanmadı → sonraki oturuma · kaynakça +7, seyir +1 kayıt
T272026-09-29F6 küçük paket CANLI (review-1.1): ARTF-022 metadata (artifact_meta icon + hart ?title= tek kaynak + md-publish --title/--icon emoji favicon) · ARTF-025 stale-publish guard (md-publish --expect N → uyumsuzsa keser; hart binary server-side desteklemez) · ARTF-026 yorum→asistan köprüsü (yorum kartında "asistana sor" → /asistan?s=) · test 74/74 + asistan regresyonu · canlı doğrulama: meta roundtrip + galeri/bar icon+title + 10/10 uç 200 · md-publish private-verify bug'ı düzeltildi (read-key header eksikti) · repo 6abdbb1 push'lu · pano v41+ republish
✕

sor
AI sohbeti asistan sayfasinda acilir