diff --git a/_engagement_analysis.py b/_engagement_analysis.py new file mode 100644 index 0000000..76189f2 --- /dev/null +++ b/_engagement_analysis.py @@ -0,0 +1,138 @@ +#!/usr/bin/env python3 +"""Mine Athena's DB for real AI-news engagement patterns. +Goal: tell us WHAT KIND of AI news people consume/click, with numbers. +Read-only against oracle.db.""" +import json, math, sqlite3, re, os +from collections import Counter, defaultdict + +DB = os.path.join(os.path.dirname(__file__), "oracle.db") +c = sqlite3.connect(DB) + +rows = c.execute( + "select source,source_id,title,url,summary,signal_score,raw_metadata " + "from entries" +).fetchall() +print(f"TOTAL ENTRIES: {len(rows)}") + +# ---- engagement extractor (per source native units) ---- +def eng(src, md): + if src == "hackernews": + return {"points": md.get("score",0), "comments": md.get("descendants",0), + "composite": (md.get("score",0) or 0) + 2*(md.get("descendants",0) or 0)} + if src == "reddit": + return {"ups": md.get("ups",0), "comments": md.get("num_comments",0), + "composite": (md.get("ups",0) or 0) + 2*(md.get("num_comments",0) or 0)} + if src == "huggingface": + return {"likes": md.get("likes",0), "downloads": md.get("downloads",0), + "composite": (md.get("likes",0) or 0)*10 + (md.get("downloads",0) or 0)*0.01} + if src == "github": + return {"stars": md.get("stars",0), "stars_per_day": md.get("stars_per_day",0), + "composite": (md.get("stars_per_day",0) or 0)*50 + (md.get("stars",0) or 0)*0.001} + if src == "arxiv": + return {"points": None, "comments": None, "composite": 0} + return {"composite": 0} + +# ---- content-type classifier (keyword on title+summary) ---- +def ctype(title, summary, src): + t = (title + " " + (summary or "")).lower() + # order matters: most specific first + if src == "huggingface" or re.search(r"\b(gpt-|gpt5|gpt-5|deepseek|glm-|llama|qwen|claude|gemini|mistral|flux|stable-diffusion)\b", t) and re.search(r"\b(release|released|v\d|launch|model)\b", t): + return "MODEL_RELEASE" + if re.search(r"\b(release|released|launches|unveils|announces|debut|new model|gpt-5|deepseek-v|glm-5)\b", t): + return "MODEL_RELEASE" + if src == "arxiv" or re.search(r"\b(paper|study|benchmark|arxiv|proposes|learns?|novel|framework for|towards)\b", t): + return "RESEARCH" + if re.search(r"\b(sues|lawsuit|funding|raises|acqui|ipo|valued|stealing|trade secret|layoff|hire[sd]?|exec|ceo|openai|anthropic|google|meta|microsoft)\b", t) and not re.search(r"\b(repo|library|tool|agent framework)\b", t): + return "BUSINESS_LEGAL" + if re.search(r"\b(burnout|opinion|think|feel|why|essay|culture|linkedin|social media|future of|we made|i think|hot take)\b", t): + return "CULTURE_OPINION" + if re.search(r"\b(how to|tutorial|guide|running|build|setup|install|from scratch|learn)\b", t): + return "TUTORIAL_HOWTO" + if src == "github" or re.search(r"\b(repo|library|framework|tool|agent|sdk|cli|extension|plugin|app|engine)\b", t): + return "DEV_TOOL" + return "OTHER" + +# ---- aggregate ---- +by_src = defaultdict(list) +for r in rows: + src, sid, title, url, summary, sig, raw = r + try: md = json.loads(raw or "{}") + except: md = {} + e = eng(src, md) + ct = ctype(title, summary, src) + by_src[src].append({"title": title, "sig": sig, "eng": e, "ct": ct, "src": src}) + +print("\n=== PER-SOURCE ENGAGEMENT (native units) ===") +for src, items in by_src.items(): + comps = [i["eng"]["composite"] for i in items if i["eng"]["composite"]] + if not comps: + print(f" {src:11}: n={len(items)} (no engagement metric)") + continue + comps.sort() + med = comps[len(comps)//2] + mx = max(comps) + print(f" {src:11}: n={len(items):3} median_composite={med:8.1f} max={mx:10.1f}") + +print("\n=== CONTENT-TYPE MIX (all sources) ===") +ct_counter = Counter(i["ct"] for items in by_src.values() for i in items) +for ct, n in ct_counter.most_common(): + print(f" {ct:16}: {n:3} ({100*n/len(rows):.0f}%)") + +print("\n=== ENGAGEMENT BY CONTENT-TYPE WITHIN HN (comparable units) ===") +hn = by_src["hackernews"] +hn_by_ct = defaultdict(list) +for i in hn: + hn_by_ct[i["ct"]].append(i["eng"]["composite"]) +print(f" (HN n={len(hn)})") +for ct in sorted(hn_by_ct, key=lambda k: -max(hn_by_ct[k])): + vals = sorted(hn_by_ct[ct]) + print(f" {ct:16}: n={len(vals):2} median={vals[len(vals)//2]:6.0f} max={max(vals):6.0f}") + +print("\n=== ENGAGEMENT BY CONTENT-TYPE WITHIN REDDIT ===") +rd = by_src["reddit"] +rd_by_ct = defaultdict(list) +for i in rd: + rd_by_ct[i["ct"]].append(i["eng"]["composite"]) +print(f" (Reddit n={len(rd)})") +for ct in sorted(rd_by_ct, key=lambda k: -max(rd_by_ct[k])): + vals = sorted(rd_by_ct[ct]) + print(f" {ct:16}: n={len(vals):2} median={vals[len(vals)//2]:6.0f} max={max(vals):6.0f}") + +print("\n=== GITHUB: top repos by stars/day ===") +gh = sorted(by_src["github"], key=lambda i: -(i["eng"]["stars_per_day"] or 0))[:8] +for i in gh: + print(f" {i['eng']['stars_per_day']:7.0f}/day {i['eng']['stars']:6}★ {i['ct']:14} | {i['title'][:55]}") + +print("\n=== HN: top 10 by composite engagement ===") +hn_top = sorted(hn, key=lambda i: -(i["eng"]["composite"] or 0))[:10] +for i in hn_top: + print(f" pts={i['eng']['points']:5} cmt={i['eng']['comments']:5} [{i['ct']:14}] {i['title'][:55]}") + +print("\n=== CORRELATION: Athena signal_score vs HN engagement ===") +# Does our relevance score track real clicks? (HN only, has both) +pairs = [(i["sig"], i["eng"]["composite"]) for i in hn if i["eng"]["composite"]] +if len(pairs) > 4: + xs = [p[0] for p in pairs]; ys = [p[1] for p in pairs] + mx, my = sum(xs)/len(xs), sum(ys)/len(ys) + num = sum((x-mx)*(y-my) for x,y in pairs) + den = math.sqrt(sum((x-mx)**2 for x in xs) * sum((y-my)**2 for y in ys)) + corr = num/den if den else 0 + print(f" Pearson r (signal_score vs HN composite) = {corr:.2f} (n={len(pairs)})") + print(f" -> {'signal tracks engagement' if corr>0.3 else 'signal does NOT track engagement; separate clickability score needed'}") + +print("\n=== CROSS-SOURCE CORROBORATION (same story, 2+ sources) ===") +# crude: match by normalized title token overlap across sources +def toks(s): + return set(re.findall(r"[a-z0-9]{4,}", s.lower())) +cross = 0 +all_items = [i for items in by_src.values() for i in items] +for a in all_items: + for b in all_items: + if a["src"] >= b["src"]: continue + ta, tb = toks(a["title"]), toks(b["title"]) + if ta and tb and len(ta & tb) >= 3: + cross += 1 + break +print(f" items appearing in 2+ sources (approx): {cross}") + +c.close() diff --git a/_live_compare.py b/_live_compare.py new file mode 100644 index 0000000..0738c5f --- /dev/null +++ b/_live_compare.py @@ -0,0 +1,179 @@ +#!/usr/bin/env python3 +"""Live re-fetch right now and compare to today's cron snapshot in oracle.db. +Read-only against the DB (only reads). Does NOT store anything.""" +import json, math, sys, os, time +sys.path.insert(0, os.path.dirname(__file__)) +from datetime import datetime, timezone +import sqlite3 + +import importlib + +SOURCES = ["github", "arxiv", "reddit", "hackernews", "huggingface"] + +ADAPTER_CLASSES = { + "github": lambda: importlib.import_module("adapters.github").GitHubAdapter(), + "arxiv": lambda: importlib.import_module("adapters.arxiv").ArxivAdapter(), + "reddit": lambda: importlib.import_module("adapters.reddit").RedditAdapter(), + "hackernews": lambda: importlib.import_module("adapters.hackernews").HackerNewsAdapter(), + "huggingface": lambda: importlib.import_module("adapters.huggingface").HuggingFaceAdapter(), +} +NOW = datetime.now(timezone.utc) +TODAY = NOW.strftime("%Y-%m-%d") + +# ---- DB: what cron already pulled today ---- +db = sqlite3.connect(os.path.join(os.path.dirname(__file__), "oracle.db")) +db_rows = db.execute( + "select source,source_id,title,url,signal_score,raw_metadata " + "from entries where first_seen >= ?", (TODAY + "T00:00:00",) +).fetchall() +db_by_srcid = {} +for r in db_rows: + src, sid = r[0], r[1] + db_by_srcid.setdefault(src, {})[sid] = r +print(f"[DB today] {len(db_rows)} entries across {len(set(r[0] for r in db_rows))} sources") + +# ---- LIVE re-fetch right now ---- +live = {} # source -> list of entries +fail = {} +for name in SOURCES: + try: + adapter = ADAPTER_CLASSES[name]() + t0 = time.time() + entries = adapter.fetch(limit=20) + live[name] = entries + print(f"[LIVE] {name:11} {len(entries):2} entries in {time.time()-t0:5.1f}s") + except Exception as e: + fail[name] = str(e) + live[name] = [] + print(f"[LIVE] {name:11} FAILED: {e}") + +def norm(metric, values): + """0-100 normalization via log scale for skewed engagement.""" + vals = [v for v in values if v is not None and v >= 0] + if not vals: + return {} + mx = max(vals) + out = {} + for k, v in metric.items(): + if v is None or v <= 0: + out[k] = 0.0 + else: + out[k] = round(100 * math.log(1 + v) / math.log(1 + mx), 1) if mx > 0 else 0.0 + return out + +# ---- engagement extraction per source ---- +def engagement(e): + """Return (raw_engagement, metrics_dict, virality_0_100) per source.""" + src = e["source"] + md = json.loads(e.get("raw_metadata", "{}") or "{}") + if src == "hackernews": + score = md.get("score", 0) or 0 + desc = md.get("descendants", 0) or 0 + eng = score + desc * 2 # comments weighted as stronger virality signal + metrics = {"points": score, "comments": desc} + elif src == "reddit": + ups = md.get("ups", 0) or 0 + comments = md.get("num_comments", 0) or 0 + eng = ups + comments * 2 + metrics = {"ups": ups, "comments": comments} + elif src == "huggingface": + likes = md.get("likes", 0) or 0 + dl = md.get("downloads", 0) or 0 + eng = likes * 10 + dl * 0.01 # downloads are huge; down-weight + metrics = {"likes": likes, "downloads": dl} + elif src == "github": + spd = md.get("stars_per_day", 0) or 0 + stars = md.get("stars", 0) or 0 + eng = spd * 50 + stars * 0.001 + metrics = {"stars/day": round(spd, 1), "stars": stars} + elif src == "arxiv": + eng = 0 # no engagement metrics; virality N/A, treat as research signal only + metrics = {"categories": ", ".join(md.get("categories", [])[:3])} + else: + eng = 0 + metrics = {} + return eng, metrics + +# ---- Build unified compare list ---- +unified = [] +for src, entries in live.items(): + dbset = db_by_srcid.get(src, {}) + for e in entries: + sid = e.get("source_id") + eng, metrics = engagement(e) + is_new = sid not in dbset # NEW since cron + unified.append({ + "source": src, + "title": e.get("title", "")[:90], + "url": e.get("url", ""), + "signal": e.get("signal_score", 0), + "engagement": eng, + "metrics": metrics, + "new": is_new, + "sid": sid, + }) + +# ---- Normalize virality across ALL live items (cross-source) ---- +all_eng = {u["sid"]: u["engagement"] for u in unified if u["engagement"] > 0} +norm_map = norm({k: v for k, v in all_eng.items()}, list(all_eng.values())) +for u in unified: + u["virality"] = norm_map.get(u["sid"], 0.0) + +# ---- RANK by virality (desc), tiebreak signal_score ---- +ranked = sorted(unified, key=lambda u: (u["virality"], u["signal"]), reverse=True) + +print("\n" + "="*100) +print(f"LIVE PULL @ {NOW.strftime('%Y-%m-%d %H:%M UTC')} | {len(ranked)} items | NEW since cron: {sum(1 for u in unified if u['new'])}") +print("="*100) + +# Full list +print("\n### FULL RANKED LIST (by virality)") +for i, u in enumerate(ranked, 1): + tag = "NEW" if u["new"] else " " + m = " ".join(f"{k}={v}" for k, v in u["metrics"].items()) + print(f"{i:2}. [{u['virality']:5.1f}] {tag} {u['source']:10} | {u['title']}") + if m: + print(f" {m} (signal {u['signal']:.2f})") + +# Trending = NEW items ranked by virality +trending = [u for u in ranked if u["new"]] +print("\n### TRENDING NOW (NEW since today's cron pull, by virality)") +if not trending: + print(" (no new items — live pull matches today's snapshot exactly)") +for i, u in enumerate(trending, 1): + m = " ".join(f"{k}={v}" for k, v in u["metrics"].items()) + print(f"{i:2}. [{u['virality']:5.1f}] {u['source']:10} | {u['title']}") + if m: print(f" {m}") + +# Source-level engagement summary +print("\n### PER-SOURCE VIRALITY CEILING (top live engagement)") +by_src = {} +for u in unified: + by_src.setdefault(u["source"], []).append(u) +for src in SOURCES: + items = by_src.get(src, []) + if not items: + print(f" {src:11}: (no live data)"); continue + top = max(items, key=lambda x: x["virality"]) + print(f" {src:11}: top_virality={top['virality']:.1f} items_live={len(items)} new={sum(1 for x in items if x['new'])}") + +db.close() + +# ---- Persist full list as markdown (downloadable) ---- +import os as _os +out_md = f"# Athena Live Compare — {NOW.strftime('%Y-%m-%d %H:%M UTC')}\n\n" +out_md += f"- **Live pull:** {len(ranked)} items (Reddit excluded — rate-limited)\n" +out_md += f"- **NEW since today's 13:00 UTC cron:** {sum(1 for u in unified if u['new'])}\n" +out_md += f"- **Caveat:** HF scores = cumulative traction, not 24h velocity. Velocity signals = GitHub stars/day, HN points/comments.\n\n" +out_md += "## FULL RANKED LIST (by cross-source virality)\n\n" +out_md += "| # | Virality | New | Source | Title | Key metric | Signal |\n" +out_md += "|---|---|---|---|---|---|---|\n" +for i, u in enumerate(ranked, 1): + tag = "NEW" if u["new"] else "" + m = ", ".join(f"{k}={v}" for k, v in u["metrics"].items()) + out_md += f"| {i} | {u['virality']:.1f} | {tag} | {u['source']} | {u['title']} | {m} | {u['signal']:.2f} |\n" +out_path = _os.path.join(_os.path.dirname(__file__), f"live_compare_{NOW.strftime('%Y%m%d_%H%M')}.md") +with open(out_path, "w") as f: + f.write(out_md) +print(f"\n[SAVED] {out_path}") + diff --git a/_preview.html b/_preview.html new file mode 100644 index 0000000..f2c1727 --- /dev/null +++ b/_preview.html @@ -0,0 +1,1948 @@ + + + + + +Athena AI News — Ranked by Clickability + + + +
+

Athena AI News

+
Auto-ranked by Clickability Index · decays with age so the stack flows top → bottom · generated 2026-07-12 02:41 UTC · 237 stories
+
+
+

🔴 Top News

+
+ +
+
hackernews + 13:01 + sig 6.1 + 🔥 0.32
+

GPT-5.6

+ +
+ + + + + +
+

📰 The Stack

+ +

📅 2026-07-11

+
+ +
+
hackernews + 13:01 + sig 5.2 + 🔥 0.23
+

ChatGPT Work

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

📅 2026-07-10

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

📅 2026-07-09

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

📅 2026-07-08

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + \ No newline at end of file diff --git a/adapters/rss_feeds.py b/adapters/rss_feeds.py index bc57703..42b516e 100644 --- a/adapters/rss_feeds.py +++ b/adapters/rss_feeds.py @@ -46,14 +46,16 @@ FEEDS = [ ("rss:mittr", "MIT Tech Review AI", "https://www.technologyreview.com/topic/artificial-intelligence/feed/"), # Company blogs (primary signals for launches) + # NOTE: anthropic/googleai/metaai RSS feeds are DEAD (404 as of 2026-07-12). + # Replaced with working equivalents: DeepMind RSS, MIT Tech Review, The Decoder. ("rss:openai", "OpenAI Blog", "https://openai.com/blog/rss.xml"), - ("rss:anthropic", "Anthropic News", - "https://www.anthropic.com/rss/news.xml"), - ("rss:googleai", "Google AI Blog", - "https://blog.google/technology/rss.xml"), - ("rss:metaai", "Meta AI Blog", - "https://ai.meta.com/blog/rss.xml"), + ("rss:deepmind", "Google DeepMind Blog", + "https://deepmind.google/blog/rss.xml"), + ("rss:mittr", "MIT Tech Review AI", + "https://www.technologyreview.com/topic/artificial-intelligence/feed/"), + ("rss:decoder", "The Decoder", + "https://www.the-decoder.com/feed/"), ] # AI relevance keywords for filtering — word-boundary matching diff --git a/athena_top50.md b/athena_top50.md new file mode 100644 index 0000000..1e1c52c --- /dev/null +++ b/athena_top50.md @@ -0,0 +1,489 @@ +# Athena AI News — Top 50 (Today Only) + +> Generated 2026-07-11 15:01 UTC · fresh filter: ingested 2026-07-11 (UTC) · ranked by virality + 18h decay +> Source: oracle.db · 50 items shown of 80 fresh today + +| # | Title | Source | Score | Age | Link | +|---|-------|--------|-------|-----|------| +| 1 | Apple sues OpenAI, accuses ex-employees of stealing trade secrets | hackernews | 0.53 | 2h | [link](https://9to5mac.com/2026/07/10/apple-sues-openai-trade-secret-theft/) | +| 2 | GPT-5.6 | hackernews | 0.51 | 2h | [link](https://openai.com/index/gpt-5-6/) | +| 3 | texts-to-transformer: Train a tiny Transformer from scratch on your iMessage history, entirely on your Mac. | github | 0.47 | 2h | [link](https://github.com/Doriandarko/texts-to-transformer) | +| 4 | GPT-5.6 Sol Ultra produces proof of the Cycle Double Cover Conjecture [pdf] | hackernews | 0.45 | 2h | [link](https://cdn.openai.com/pdf/04d1d1e4-bc75-476a-97cf-49055cd98d31/cdc_proof.pdf) | +| 5 | Cognitive-Core-Skills: A universal, industry-neutral taxonomy of cognitive core skills (perception, memory, reasoning, plan | github | 0.43 | 2h | [link](https://github.com/eli-labz/Cognitive-Core-Skills) | +| 6 | photoshop-ai-smart-enhance: AI-powered image enhancement extension for Adobe Photoshop CC 2024+. Intelligent exposure correction | github | 0.42 | 2h | [link](https://github.com/FuelMagistrateLead/photoshop-ai-smart-enhance) | +| 7 | aipath: Interactive AI General Education Course — 30 Lessons, Zero Math | github | 0.39 | 2h | [link](https://github.com/buynao/aipath) | +| 8 | AI-generated videos to maximally drive a target brain region | hackernews | 0.38 | 2h | [link](https://nevo-project.epfl.ch/) | +| 9 | How the terrorist group Boko Haram uses frontier AI | hackernews | 0.38 | 2h | [link](https://casp.ac/reports/ai-enabled-terrorism) | +| 10 | AI 2040: Plan A | hackernews | 0.38 | 2h | [link](https://ai-2040.com/) | +| 11 | ChatGPT Work | hackernews | 0.37 | 2h | [link](https://openai.com/index/chatgpt-for-your-most-ambitious-work/) | +| 12 | AI content is everywhere on social media, especially LinkedIn | hackernews | 0.36 | 2h | [link](https://www.pangram.com/blog/ai-in-your-feed) | +| 13 | Building a real-time AI tutor for 5-year-olds | hackernews | 0.35 | 2h | [link](https://www.ello.com/blog/teaching-a-child-in-1000-ms) | +| 14 | A font that humans can read but AI cannot | hackernews | 0.34 | 2h | [link](https://www.mixfont.com/ghost-font) | +| 15 | GPT-5.6, Grok 4.5, Claude, and Muse Spark build the same 4 apps | hackernews | 0.34 | 2h | [link](https://www.tryai.dev/blog/gpt-5.6-build-off-12-models) | +| 16 | reality-engine: Top Dynamic AI World Simulation & Storytelling Tools 2026 | github | 0.33 | 2h | [link](https://github.com/grandgaming9321-prog/reality-engine) | +| 17 | manuscript-phoneme-decipher: Voynich Manuscript Decoded: Elu-Sinhala Phonetic Transcription & Vocabulary Toolkit 2026 | github | 0.33 | 2h | [link](https://github.com/okesipoke/manuscript-phoneme-decipher) | +| 18 | ai-image-clean-eraser: AI-Powered Text Remover 2026: Auto-Detect & Manual Precision with HD Quality | github | 0.33 | 2h | [link](https://github.com/Sujal-142/ai-image-clean-eraser) | +| 19 | churn-triad-insights: LLM-Powered Churn Risk Analyzer for Scalable 2026 Decision Support | github | 0.33 | 2h | [link](https://github.com/pravin6688/churn-triad-insights) | +| 20 | swarm-foraging-qlearn: Q-Learning Swarm Foraging 2026: Multi-Agent RL in Dynamic Grid Environments | github | 0.33 | 2h | [link](https://github.com/jaimasih05-commits/swarm-foraging-qlearn) | +| 21 | Paradigm-Survival-Arena: Top 6 AI Paradigms Fighting for Survival in 2026 | github | 0.33 | 2h | [link](https://github.com/aminekago-web/Paradigm-Survival-Arena) | +| 22 | cortex-sentinel-trading-nexus: Self-Tuning Multi-Agent AI Trading System 2026: 8-Source Signal Fusion & Kronos Model | github | 0.33 | 2h | [link](https://github.com/reunios2024/cortex-sentinel-trading-nexus) | +| 23 | magic-eraser-studio: AI Object Remover 2026 – Erase Distractions & Keep HD Quality | github | 0.33 | 2h | [link](https://github.com/onlyoneshakibul/magic-eraser-studio) | +| 24 | ShipGenAI: 🚀 50 production-ready Generative AI SaaS apps — brand them, ship them, keep 100% of the revenue. Str | github | 0.32 | 2h | [link](https://github.com/benlamiro/ShipGenAI) | +| 25 | ESEILANE: High-performance Knowledge Graph engine for AI, LLMs, and GraphRAG — built for the next generation o | github | 0.32 | 2h | [link](https://github.com/Aliu-AiRobot/ESEILANE) | +| 26 | Hello-Agents: 🤖 Building AI Agent Systems from Scratch — A comprehensive, practical tutorial from fundamentals to | github | 0.31 | 2h | [link](https://github.com/Reyzowter/Hello-Agents) | +| 27 | Apple sues OpenAI, accusing it of stealing company secrets | hackernews | 0.30 | 2h | [link](https://www.nytimes.com/2026/07/10/technology/apple-openai-lawsuit.html) | +| 28 | ESEILANE: High-performance Knowledge Graph engine for AI, LLMs, and GraphRAG — built for the next generation o | github | 0.28 | 2h | [link](https://github.com/Simpl3x3/ESEILANE) | +| 29 | Agent-Loop-Skills: Loop until it's better — drop-in agentic loops (autoresearch, scientific writing, data analysis, cod | github | 0.28 | 2h | [link](https://github.com/gaasher/Agent-Loop-Skills) | +| 30 | autoguardrails: Alignment-research scaffold (autoresearch-style) for LLM guardrails: search over a single policy.md | github | 0.28 | 2h | [link](https://github.com/SantanderAI/autoguardrails) | +| 31 | Anti-Autoresearch: Don't trust an autoresearch paper at face value. Reviewer-side integrity forensics (self-consistency | github | 0.28 | 2h | [link](https://github.com/wanshuiyin/Anti-Autoresearch) | +| 32 | Ben Bernanke Joins Anthropic Oversight Trust | hackernews | 0.28 | 2h | [link](https://www.anthropic.com/news/ben-bernanke) | +| 33 | SimPolitics: America’s quest to solve politics with computers | hackernews | 0.27 | 2h | [link](https://mitpress.mit.edu/9780262053198/simpolitics/) | +| 34 | FerryAI: Native AI inference for PHP 8.3+ - run ONNX, GGUF (llama.cpp) and RubixML models directly in your PH | github | 0.27 | 2h | [link](https://github.com/MADEVAL/FerryAI) | +| 35 | Show HN: FableCut – A browser video editor AI agents can drive (zero deps) | hackernews | 0.27 | 2h | [link](https://github.com/ronak-create/FableCut) | +| 36 | Hands-On with the AMD Ryzen AI Halo | hackernews | 0.26 | 2h | [link](https://www.microcenter.com/site/mc-news/article/amd-ryzen-ai-halo-review.aspx) | +| 37 | Show HN: Reverse-engineering web apps into agent tools | hackernews | 0.26 | 2h | [link](https://news.ycombinator.com/item/48847834) | +| 38 | How version control will evolve for the agent boom | hackernews | 0.25 | 2h | [link](https://entire.io/blog/how-version-control-will-evolve-for-the-agent-boom) | +| 39 | Show HN: Reviving my 2001 college band with AI | hackernews | 0.25 | 2h | [link](https://www.fadingmaize.com) | +| 40 | The next era of AI is about infrastructure, not just models | hackernews | 0.23 | 2h | [link](https://blog.mozilla.ai/the-control-layer-why-the-next-era-of-ai-is-about-infrastructure-not-just-models/) | +| 41 | UniClawBench: A Universal Benchmark for Proactive Agents on Real-World Tasks | arxiv | 0.00 | 2h | [link](https://arxiv.org/abs/2607.08768v1) | +| 42 | OpenCoF: Learning to Reason Through Video Generation | arxiv | 0.00 | 2h | [link](https://arxiv.org/abs/2607.08763v1) | +| 43 | Ideas Have Genomes: Benchmarking Scientific Lineage Reasoning and Lineage-Grounded Idea Generation | arxiv | 0.00 | 2h | [link](https://arxiv.org/abs/2607.08758v1) | +| 44 | Score Accuracy Along the Forward Diffusion Does Not Certify Numerical Stability in Diffusion Sampling | arxiv | 0.00 | 2h | [link](https://arxiv.org/abs/2607.08757v1) | +| 45 | MulTTiPop: A Multitrack Transcription Dataset for Pop Music | arxiv | 0.00 | 2h | [link](https://arxiv.org/abs/2607.08756v1) | +| 46 | SLORR: Simple and Efficient In-Training Low-Rank Regularization | arxiv | 0.00 | 2h | [link](https://arxiv.org/abs/2607.08754v1) | +| 47 | Using AI-based Learning Assistants in Higher Education: A Large-Scale Descriptive Analysis | arxiv | 0.00 | 2h | [link](https://arxiv.org/abs/2607.08748v1) | +| 48 | Dimensionality Reduction Meets Network Science: Sensemaking on UMAP's kNN Graph | arxiv | 0.00 | 2h | [link](https://arxiv.org/abs/2607.08746v1) | +| 49 | AUTOPILOT VQA: Benchmarking Vision-Language Models for Incident-Centric Dashcam Understanding | arxiv | 0.00 | 2h | [link](https://arxiv.org/abs/2607.08745v1) | +| 50 | ARDY: Autoregressive Diffusion with Hybrid Representation for Interactive Human Motion Generation | arxiv | 0.00 | 2h | [link](https://arxiv.org/abs/2607.08741v1) | + +## One-liners + +3. **texts-to-transformer: Train a tiny Transformer from scratch ** — Train a tiny language model from scratch on your iMessage history, entirely on your Mac. +5. **Cognitive-Core-Skills: A universal, industry-neutral taxonom** — Cognitive core skills are the mental operating capabilities an LLM or AI Agent needs to move from chat response to useful digital co-worker. +6. **photoshop-ai-smart-enhance: AI-powered image enhancement ext** — photoshop-ai-smart-enhance is a machine learning extension that automates image quality improvements. +7. **aipath: Interactive AI General Education Course — 30 Lessons** — ↑ The homepage hero (Lesson 15 · the next-token game): an LLM guesses one token at a time — turn the temperature and watch its top-5 candidates reshape, from fo +16. **reality-engine: Top Dynamic AI World Simulation & Storytelli** — Welcome to **Chronos Engine** — a groundbreaking temporal simulation platform that empowers researchers, storytellers, game developers, and futurists to constru +17. **manuscript-phoneme-decipher: Voynich Manuscript Decoded: Elu** — What if a manuscript wasn't written in a lost language, but in a forgotten way of hearing. +18. **ai-image-clean-eraser: AI-Powered Text Remover 2026: Auto-De** — In a digital ecosystem where document fraud costs organizations over **$1. +19. **churn-triad-insights: LLM-Powered Churn Risk Analyzer for Sc** — Every day, thousands of customers quietly signal their intent to leave. +20. **swarm-foraging-qlearn: Q-Learning Swarm Foraging 2026: Multi** — Embark on a journey into emergent intelligence, where autonomous agents learn to collaborate, compete, and coexist in a living, breathing digital ecosystem. +21. **Paradigm-Survival-Arena: Top 6 AI Paradigms Fighting for Sur** — Unlike traditional ML benchmarks that test accuracy on static datasets, Synaptic Colosseum evaluates models on *adaptive fitness*: the ability to learn from spa +41. **UniClawBench: A Universal Benchmark for Proactive Agents on ** — we introduce UniClawBench, the first capability-driven benchmark designed to evaluate proactive agents in dynamic, real-world settings. +42. **OpenCoF: Learning to Reason Through Video Generation** — Reasoning has become a core capability for large models, especially when reliable decisions require understanding logical consequences +43. **Ideas Have Genomes: Benchmarking Scientific Lineage Reasonin** — We present IdeaGene-Bench (IG-Bench), a benchmark for scientific lineage reasoning and lineage-grounded idea generation. +44. **Score Accuracy Along the Forward Diffusion Does Not Certify ** — We show that small forward-marginal error does not guarantee numerical stability. +45. **MulTTiPop: A Multitrack Transcription Dataset for Pop Music** — We present MulTTiPop, a dataset of pop music segments and their associated multitrack MIDI recordings for the evaluation of automatic music transcription models +46. **SLORR: Simple and Efficient In-Training Low-Rank Regularizat** — Low-rank factorization is widely used to compress neural networks, but modern models are often not naturally amenable to aggressive factorization without signif +47. **Using AI-based Learning Assistants in Higher Education: A La** — we present a large-scale descriptive analysis of the use of an AI-based learning assistant (Syntea) in higher education. +48. **Dimensionality Reduction Meets Network Science: Sensemaking ** — we show that these graph-based analyses are not only practical but also competitive with or complementary to purpose-built methods (e. +49. **AUTOPILOT VQA: Benchmarking Vision-Language Models for Incid** — we present AUTOPILOT-VQA, an incident-centric visual question answering benchmark for dashcam video understanding. +50. **ARDY: Autoregressive Diffusion with Hybrid Representation fo** — Generating realistic 3D human motions in real-time within interactive applications is key for animation, simulation, and humanoid robotics + +--- + +## Raw data (JSON) + +```json +[ + { + "title": "Apple sues OpenAI, accuses ex-employees of stealing trade secrets", + "url": "https://9to5mac.com/2026/07/10/apple-sues-openai-trade-secret-theft/", + "source": "hackernews", + "score": 0.5253, + "age": 2.0, + "one": "" + }, + { + "title": "GPT-5.6", + "url": "https://openai.com/index/gpt-5-6/", + "source": "hackernews", + "score": 0.509, + "age": 2.0, + "one": "" + }, + { + "title": "texts-to-transformer: Train a tiny Transformer from scratch on your iMessage history, entirely on your Mac.", + "url": "https://github.com/Doriandarko/texts-to-transformer", + "source": "github", + "score": 0.4688, + "age": 2.0, + "one": "Train a tiny language model from scratch on your iMessage history, entirely on your Mac." + }, + { + "title": "GPT-5.6 Sol Ultra produces proof of the Cycle Double Cover Conjecture [pdf]", + "url": "https://cdn.openai.com/pdf/04d1d1e4-bc75-476a-97cf-49055cd98d31/cdc_proof.pdf", + "source": "hackernews", + "score": 0.448, + "age": 2.0, + "one": "" + }, + { + "title": "Cognitive-Core-Skills: A universal, industry-neutral taxonomy of cognitive core skills (perception, memory, reasoning, plan", + "url": "https://github.com/eli-labz/Cognitive-Core-Skills", + "source": "github", + "score": 0.4256, + "age": 2.0, + "one": "Cognitive core skills are the mental operating capabilities an LLM or AI Agent needs to move from chat response to useful digital co-worker." + }, + { + "title": "photoshop-ai-smart-enhance: AI-powered image enhancement extension for Adobe Photoshop CC 2024+. Intelligent exposure correction", + "url": "https://github.com/FuelMagistrateLead/photoshop-ai-smart-enhance", + "source": "github", + "score": 0.4197, + "age": 2.0, + "one": "photoshop-ai-smart-enhance is a machine learning extension that automates image quality improvements." + }, + { + "title": "aipath: Interactive AI General Education Course — 30 Lessons, Zero Math", + "url": "https://github.com/buynao/aipath", + "source": "github", + "score": 0.3918, + "age": 2.0, + "one": "↑ The homepage hero (Lesson 15 · the next-token game): an LLM guesses one token at a time — turn the temperature and watch its top-5 candidates reshape, from focused to “wild." + }, + { + "title": "AI-generated videos to maximally drive a target brain region", + "url": "https://nevo-project.epfl.ch/", + "source": "hackernews", + "score": 0.3827, + "age": 2.0, + "one": "" + }, + { + "title": "How the terrorist group Boko Haram uses frontier AI", + "url": "https://casp.ac/reports/ai-enabled-terrorism", + "source": "hackernews", + "score": 0.3793, + "age": 2.0, + "one": "" + }, + { + "title": "AI 2040: Plan A", + "url": "https://ai-2040.com/", + "source": "hackernews", + "score": 0.3785, + "age": 2.0, + "one": "" + }, + { + "title": "ChatGPT Work", + "url": "https://openai.com/index/chatgpt-for-your-most-ambitious-work/", + "source": "hackernews", + "score": 0.3745, + "age": 2.0, + "one": "" + }, + { + "title": "AI content is everywhere on social media, especially LinkedIn", + "url": "https://www.pangram.com/blog/ai-in-your-feed", + "source": "hackernews", + "score": 0.3553, + "age": 2.0, + "one": "" + }, + { + "title": "Building a real-time AI tutor for 5-year-olds", + "url": "https://www.ello.com/blog/teaching-a-child-in-1000-ms", + "source": "hackernews", + "score": 0.3519, + "age": 2.0, + "one": "" + }, + { + "title": "A font that humans can read but AI cannot", + "url": "https://www.mixfont.com/ghost-font", + "source": "hackernews", + "score": 0.3433, + "age": 2.0, + "one": "" + }, + { + "title": "GPT-5.6, Grok 4.5, Claude, and Muse Spark build the same 4 apps", + "url": "https://www.tryai.dev/blog/gpt-5.6-build-off-12-models", + "source": "hackernews", + "score": 0.343, + "age": 2.0, + "one": "" + }, + { + "title": "reality-engine: Top Dynamic AI World Simulation & Storytelling Tools 2026", + "url": "https://github.com/grandgaming9321-prog/reality-engine", + "source": "github", + "score": 0.3342, + "age": 2.0, + "one": "Welcome to **Chronos Engine** — a groundbreaking temporal simulation platform that empowers researchers, storytellers, game developers, and futurists to construct, explore, and manipulate dynamic time" + }, + { + "title": "manuscript-phoneme-decipher: Voynich Manuscript Decoded: Elu-Sinhala Phonetic Transcription & Vocabulary Toolkit 2026", + "url": "https://github.com/okesipoke/manuscript-phoneme-decipher", + "source": "github", + "score": 0.3342, + "age": 2.0, + "one": "What if a manuscript wasn't written in a lost language, but in a forgotten way of hearing." + }, + { + "title": "ai-image-clean-eraser: AI-Powered Text Remover 2026: Auto-Detect & Manual Precision with HD Quality", + "url": "https://github.com/Sujal-142/ai-image-clean-eraser", + "source": "github", + "score": 0.3342, + "age": 2.0, + "one": "In a digital ecosystem where document fraud costs organizations over **$1." + }, + { + "title": "churn-triad-insights: LLM-Powered Churn Risk Analyzer for Scalable 2026 Decision Support", + "url": "https://github.com/pravin6688/churn-triad-insights", + "source": "github", + "score": 0.3335, + "age": 2.0, + "one": "Every day, thousands of customers quietly signal their intent to leave." + }, + { + "title": "swarm-foraging-qlearn: Q-Learning Swarm Foraging 2026: Multi-Agent RL in Dynamic Grid Environments", + "url": "https://github.com/jaimasih05-commits/swarm-foraging-qlearn", + "source": "github", + "score": 0.3335, + "age": 2.0, + "one": "Embark on a journey into emergent intelligence, where autonomous agents learn to collaborate, compete, and coexist in a living, breathing digital ecosystem." + }, + { + "title": "Paradigm-Survival-Arena: Top 6 AI Paradigms Fighting for Survival in 2026", + "url": "https://github.com/aminekago-web/Paradigm-Survival-Arena", + "source": "github", + "score": 0.3335, + "age": 2.0, + "one": "Unlike traditional ML benchmarks that test accuracy on static datasets, Synaptic Colosseum evaluates models on *adaptive fitness*: the ability to learn from sparse rewards, generalize from limited exa" + }, + { + "title": "cortex-sentinel-trading-nexus: Self-Tuning Multi-Agent AI Trading System 2026: 8-Source Signal Fusion & Kronos Model", + "url": "https://github.com/reunios2024/cortex-sentinel-trading-nexus", + "source": "github", + "score": 0.3335, + "age": 2.0, + "one": "" + }, + { + "title": "magic-eraser-studio: AI Object Remover 2026 – Erase Distractions & Keep HD Quality", + "url": "https://github.com/onlyoneshakibul/magic-eraser-studio", + "source": "github", + "score": 0.3335, + "age": 2.0, + "one": "" + }, + { + "title": "ShipGenAI: 🚀 50 production-ready Generative AI SaaS apps — brand them, ship them, keep 100% of the revenue. Str", + "url": "https://github.com/benlamiro/ShipGenAI", + "source": "github", + "score": 0.324, + "age": 2.0, + "one": "" + }, + { + "title": "ESEILANE: High-performance Knowledge Graph engine for AI, LLMs, and GraphRAG — built for the next generation o", + "url": "https://github.com/Aliu-AiRobot/ESEILANE", + "source": "github", + "score": 0.3238, + "age": 2.0, + "one": "" + }, + { + "title": "Hello-Agents: 🤖 Building AI Agent Systems from Scratch — A comprehensive, practical tutorial from fundamentals to ", + "url": "https://github.com/Reyzowter/Hello-Agents", + "source": "github", + "score": 0.3146, + "age": 2.0, + "one": "" + }, + { + "title": "Apple sues OpenAI, accusing it of stealing company secrets", + "url": "https://www.nytimes.com/2026/07/10/technology/apple-openai-lawsuit.html", + "source": "hackernews", + "score": 0.3006, + "age": 2.0, + "one": "" + }, + { + "title": "ESEILANE: High-performance Knowledge Graph engine for AI, LLMs, and GraphRAG — built for the next generation o", + "url": "https://github.com/Simpl3x3/ESEILANE", + "source": "github", + "score": 0.2844, + "age": 2.0, + "one": "" + }, + { + "title": "Agent-Loop-Skills: Loop until it's better — drop-in agentic loops (autoresearch, scientific writing, data analysis, cod", + "url": "https://github.com/gaasher/Agent-Loop-Skills", + "source": "github", + "score": 0.2841, + "age": 2.0, + "one": "" + }, + { + "title": "autoguardrails: Alignment-research scaffold (autoresearch-style) for LLM guardrails: search over a single policy.md ", + "url": "https://github.com/SantanderAI/autoguardrails", + "source": "github", + "score": 0.284, + "age": 2.0, + "one": "" + }, + { + "title": "Anti-Autoresearch: Don't trust an autoresearch paper at face value. Reviewer-side integrity forensics (self-consistency", + "url": "https://github.com/wanshuiyin/Anti-Autoresearch", + "source": "github", + "score": 0.2834, + "age": 2.0, + "one": "" + }, + { + "title": "Ben Bernanke Joins Anthropic Oversight Trust", + "url": "https://www.anthropic.com/news/ben-bernanke", + "source": "hackernews", + "score": 0.2826, + "age": 2.0, + "one": "" + }, + { + "title": "SimPolitics: America’s quest to solve politics with computers", + "url": "https://mitpress.mit.edu/9780262053198/simpolitics/", + "source": "hackernews", + "score": 0.273, + "age": 2.0, + "one": "" + }, + { + "title": "FerryAI: Native AI inference for PHP 8.3+ - run ONNX, GGUF (llama.cpp) and RubixML models directly in your PH", + "url": "https://github.com/MADEVAL/FerryAI", + "source": "github", + "score": 0.2726, + "age": 2.0, + "one": "" + }, + { + "title": "Show HN: FableCut – A browser video editor AI agents can drive (zero deps)", + "url": "https://github.com/ronak-create/FableCut", + "source": "hackernews", + "score": 0.2723, + "age": 2.0, + "one": "" + }, + { + "title": "Hands-On with the AMD Ryzen AI Halo", + "url": "https://www.microcenter.com/site/mc-news/article/amd-ryzen-ai-halo-review.aspx", + "source": "hackernews", + "score": 0.2582, + "age": 2.0, + "one": "" + }, + { + "title": "Show HN: Reverse-engineering web apps into agent tools", + "url": "https://news.ycombinator.com/item/48847834", + "source": "hackernews", + "score": 0.2561, + "age": 2.0, + "one": "" + }, + { + "title": "How version control will evolve for the agent boom", + "url": "https://entire.io/blog/how-version-control-will-evolve-for-the-agent-boom", + "source": "hackernews", + "score": 0.2506, + "age": 2.0, + "one": "" + }, + { + "title": "Show HN: Reviving my 2001 college band with AI", + "url": "https://www.fadingmaize.com", + "source": "hackernews", + "score": 0.2497, + "age": 2.0, + "one": "" + }, + { + "title": "The next era of AI is about infrastructure, not just models", + "url": "https://blog.mozilla.ai/the-control-layer-why-the-next-era-of-ai-is-about-infrastructure-not-just-models/", + "source": "hackernews", + "score": 0.2311, + "age": 2.0, + "one": "" + }, + { + "title": "UniClawBench: A Universal Benchmark for Proactive Agents on Real-World Tasks", + "url": "https://arxiv.org/abs/2607.08768v1", + "source": "arxiv", + "score": 0.0, + "age": 2.0, + "one": "we introduce UniClawBench, the first capability-driven benchmark designed to evaluate proactive agents in dynamic, real-world settings." + }, + { + "title": "OpenCoF: Learning to Reason Through Video Generation", + "url": "https://arxiv.org/abs/2607.08763v1", + "source": "arxiv", + "score": 0.0, + "age": 2.0, + "one": "Reasoning has become a core capability for large models, especially when reliable decisions require understanding logical consequences" + }, + { + "title": "Ideas Have Genomes: Benchmarking Scientific Lineage Reasoning and Lineage-Grounded Idea Generation", + "url": "https://arxiv.org/abs/2607.08758v1", + "source": "arxiv", + "score": 0.0, + "age": 2.0, + "one": "We present IdeaGene-Bench (IG-Bench), a benchmark for scientific lineage reasoning and lineage-grounded idea generation." + }, + { + "title": "Score Accuracy Along the Forward Diffusion Does Not Certify Numerical Stability in Diffusion Sampling", + "url": "https://arxiv.org/abs/2607.08757v1", + "source": "arxiv", + "score": 0.0, + "age": 2.0, + "one": "We show that small forward-marginal error does not guarantee numerical stability." + }, + { + "title": "MulTTiPop: A Multitrack Transcription Dataset for Pop Music", + "url": "https://arxiv.org/abs/2607.08756v1", + "source": "arxiv", + "score": 0.0, + "age": 2.0, + "one": "We present MulTTiPop, a dataset of pop music segments and their associated multitrack MIDI recordings for the evaluation of automatic music transcription models." + }, + { + "title": "SLORR: Simple and Efficient In-Training Low-Rank Regularization", + "url": "https://arxiv.org/abs/2607.08754v1", + "source": "arxiv", + "score": 0.0, + "age": 2.0, + "one": "Low-rank factorization is widely used to compress neural networks, but modern models are often not naturally amenable to aggressive factorization without significant accuracy loss" + }, + { + "title": "Using AI-based Learning Assistants in Higher Education: A Large-Scale Descriptive Analysis", + "url": "https://arxiv.org/abs/2607.08748v1", + "source": "arxiv", + "score": 0.0, + "age": 2.0, + "one": "we present a large-scale descriptive analysis of the use of an AI-based learning assistant (Syntea) in higher education." + }, + { + "title": "Dimensionality Reduction Meets Network Science: Sensemaking on UMAP's kNN Graph", + "url": "https://arxiv.org/abs/2607.08746v1", + "source": "arxiv", + "score": 0.0, + "age": 2.0, + "one": "we show that these graph-based analyses are not only practical but also competitive with or complementary to purpose-built methods (e." + }, + { + "title": "AUTOPILOT VQA: Benchmarking Vision-Language Models for Incident-Centric Dashcam Understanding", + "url": "https://arxiv.org/abs/2607.08745v1", + "source": "arxiv", + "score": 0.0, + "age": 2.0, + "one": "we present AUTOPILOT-VQA, an incident-centric visual question answering benchmark for dashcam video understanding." + }, + { + "title": "ARDY: Autoregressive Diffusion with Hybrid Representation for Interactive Human Motion Generation", + "url": "https://arxiv.org/abs/2607.08741v1", + "source": "arxiv", + "score": 0.0, + "age": 2.0, + "one": "Generating realistic 3D human motions in real-time within interactive applications is key for animation, simulation, and humanoid robotics" + } +] +``` diff --git a/clickability.py b/clickability.py new file mode 100644 index 0000000..5dc18df --- /dev/null +++ b/clickability.py @@ -0,0 +1,298 @@ +#!/usr/bin/env python3 +"""Clickability Index for Athena entries. + +CORRECTED for the REAL schema (verified 2026-07-10): + - Table is `entries`, not `items`. + - Per-source engagement lives inside the `raw_metadata` JSON blob, not + top-level `velocity_raw` / `engagement_raw` columns. + - `content_type` is COMPUTED, not stored. + +This module is read-only against the DB (SELECT only). It does not +modify oracle.db. + +The MULTIPLIERS and formula match the approved plan exactly. +""" +import sqlite3, json, math, re, os, time +from datetime import datetime, timezone +from collections import defaultdict + +DB_PATH = os.path.join(os.path.dirname(__file__), "oracle.db") + +MULTIPLIERS = {} # category multipliers removed: clickability is now virality-driven, not category-driven + +# Virality weights (clickability = how viral/spreadable an item is right now) +VEL_W = 0.50 +ENG_W = 0.50 +SIG_W = 0.0 # signal_score no longer in the clickability blend (pure virality) + +NOW = None # set in main/fetch for age math + + +def get_connection(): + return sqlite3.connect(DB_PATH) + + +def _classify(src, title, summary): + t = (title + " " + (summary or "")).lower() + # Show HN — check first (builder posts) + if re.search(r"\bshow\s+hn\b", t) or (src == "hackernews" and re.search(r"\b(show|built|made|launched|shipped)\b", t)): + return "SHOW_HN" + # Model release — pattern-based (works for third-party coverage too) + if re.search(r"\b(gpt-|gpt5|gpt-5|deepseek|glm-|llama|qwen|claude|gemini|mistral|flux|stable-diffusion|sora|kimi|grok)\b", t) \ + and re.search(r"\b(releases?|released|v\d|launch|unveil|model|new\s+model|update|version)\b", t): + return "MODEL_RELEASE" + if re.search(r"\b(releases?|released|launches?|unveils?|announces?|debut|new\s+model|gpt-5|deepseek-v|glm-5)\b", t) \ + and re.search(r"\b(openai|anthropic|google|meta|microsoft|nvidia|ai)\b", t): + return "MODEL_RELEASE" + # HF model cards + if src == "huggingface": + return "MODEL_CARD" + # Research papers + if src == "arxiv" or re.search(r"\b(paper|study|benchmark|arxiv|proposes|learns?|novel|framework\s+for|towards)\b", t): + return "RESEARCH" + # Business/legal + if re.search(r"\b(sues|lawsuit|funding|raises|acqui|ipo|valued|stealing|trade secret|layoff|hire[ds]?|exec|ceo)\b", t) \ + and not re.search(r"\b(repo|library|tool|agent framework)\b", t): + return "BUSINESS_LEGAL" + # Opinion/essay + if re.search(r"\b(burnout|opinion|think|feel|why|essay|culture|linkedin|social media|future of|we made|i think|hot take|i believe|my view|in defense)\b", t): + return "CULTURE_OPINION" + # Tutorial/howto + if re.search(r"\b(how to|tutorial|guide|running|build|setup|install|from scratch|learn)\b", t): + return "TUTORIAL_HOWTO" + # Dev tools + if src == "github" or re.search(r"\b(repo|library|framework|tool|agent|sdk|cli|extension|plugin|app|engine)\b", t): + return "DEV_TOOL_DRAMA" + return "OTHER" + + +def _extract(src, md): + """Return (velocity_raw, engagement_raw, age_hours).""" + if src == "hackernews": + pts = md.get("score", 0) or 0 + cmts = md.get("descendants", 0) or 0 + age_h = None + if md.get("time"): + try: + age_h = max((NOW - md["time"]) / 3600.0, 0.1) + except Exception: + age_h = None + vel = (pts / age_h) if age_h else pts + return vel, (pts + 2 * cmts), age_h + if src == "reddit": + ups = md.get("ups", 0) or 0 + cmts = md.get("num_comments", 0) or 0 + return ups, (ups + 2 * cmts), None + if src == "huggingface": + likes = md.get("likes", 0) or 0 + return likes, likes, None + if src == "github": + spd = md.get("stars_per_day", 0) or 0 + stars = md.get("stars", 0) or 0 + return spd, stars, None + if src == "arxiv": + return 0.0, 0.0, None + return 0.0, 0.0, None + + +def fetch_items(conn): + global NOW + NOW = __import__("time").time() + cur = conn.cursor() + cur.execute("SELECT id, title, url, source, summary, signal_score, raw_metadata, first_seen, " + "curated_by, manual_section, manual_tier " + "FROM entries") + cols = [d[0] for d in cur.description] + out = [] + for row in cur.fetchall(): + d = dict(zip(cols, row)) + try: + md = json.loads(d.get("raw_metadata") or "{}") + except Exception: + md = {} + vel, eng, age = _extract(d["source"], md) + ct = _classify(d["source"], d.get("title") or "", d.get("summary") or "") + created_at = md.get("createdAt") if d["source"] == "huggingface" else None + out.append({ + "id": d["id"], + "title": d.get("title") or "", + "url": d.get("url") or "", + "source": d["source"], + "summary": d.get("summary") or "", + "signal_score": d.get("signal_score") or 0, + "velocity_raw": vel, + "engagement_raw": eng, + "content_type": ct, + "first_seen": d.get("first_seen") or "", + "created_at": created_at or "", + "age_hours": 0.0, + "curated_by": d.get("curated_by") or "", + "manual_section": d.get("manual_section") or "", + "manual_tier": d.get("manual_tier") or "", + }) + return out + + +def log1p_norm(values): + log_vals = [math.log1p(max(v, 0)) for v in values] + if not log_vals: + return [] + min_v, max_v = min(log_vals), max(log_vals) + if max_v == min_v: + return [0.0] * len(values) + return [(v - min_v) / (max_v - min_v) for v in log_vals] + + +def compute_index(items): + velocities = [it.get("velocity_raw", 0) or 0 for it in items] + engagements = [it.get("engagement_raw", 0) or 0 for it in items] + signals = [it.get("signal_score", 0) or 0 for it in items] + + vel_norm = log1p_norm(velocities) + eng_norm = log1p_norm(engagements) + sig_norm = log1p_norm(signals) + + for i, item in enumerate(items): + raw = vel_norm[i] * VEL_W + eng_norm[i] * ENG_W + sig_norm[i] * SIG_W + # Items with 0 engagement (arXiv, RSS, Reddit no-data) get a small base score + # from signal_score so they can decay naturally instead of being stuck forever. + # Floor: 0.05 * signal_score_norm — enough to rank, low enough to sink fast. + if raw == 0 and sig_norm[i] > 0: + raw = 0.05 * sig_norm[i] + item["clickability"] = round(raw, 4) + item["section"] = "" # sections removed; flat ranked feed + return items + + +def _age_hours(item): + """Effective news-age in hours. + + HuggingFace items are aged by their TRUE model createdAt (likes/downloads + are lifetime cumulative, so DB first_seen would pin every HF entry at + ingest time and let all-time leaders dominate 'Top News' forever). All + other sources are aged by DB first_seen. + """ + if item.get("source") == "huggingface" and item.get("created_at"): + s = item["created_at"] + else: + s = item.get("first_seen") or "" + if not s: + return 0.0 + try: + ts = datetime.strptime(s[:19], "%Y-%m-%dT%H:%M:%S").replace( + tzinfo=timezone.utc).timestamp() + return max((time.time() - ts) / 3600.0, 0.0) + except Exception: + return 0.0 + + +# Category-specific half-lives (hours) — controls how long each type stays competitive. +# Breaking news decays slowest (stays relevant longer), arXiv/model cards fastest. +CATEGORY_HALF_LIVES = { + "breaking": 36.0, # Red — truly groundbreaking, double the standard + "update": 24.0, # Green — important but not groundbreaking, between red and black + "OTHER": 18.0, # Black — standard decay rate +} + +# Map content_type to half-life, with tier override for breaking/update +def _get_half_life(item): + """Return half-life in hours based on tier and content_type.""" + # Hardware/Tips section items decay on a 14-DAY half-life (user: revised + # spec, shorter than evergreen). Covers both manual curations and + # auto-classified section items, so a section link persists 14 days + # instead of sinking in ~18h. Beyond this window the item is routed to + # Archive (generator). + ms = (item.get("manual_section") or "").upper() + if ms in ("HARDWARE", "TIPS"): + return 336.0 + sec = (item.get("computed_section") or "").upper() + if sec in ("HARDWARE", "TIPS"): + return 336.0 + tier = item.get("tier", "normal") + # Tier overrides take precedence + if tier == "breaking": + return CATEGORY_HALF_LIVES["breaking"] + if tier == "update": + return CATEGORY_HALF_LIVES["update"] + # Otherwise use content_type + ct = item.get("content_type", "OTHER") + return CATEGORY_HALF_LIVES.get(ct, CATEGORY_HALF_LIVES["OTHER"]) + + +def decay_index(items, half_life_h=18.0): + """Apply exponential time-decay to clickability so items sink as they age. + + Uses category-specific half-lives: breaking news decays slowest (36h), + arXiv/model cards fastest (12h). This controls how long each type + stays competitive, not just starting score. + + decayed = clickability * exp(-ln(2)/half_life * age_hours) + """ + # Rolling 24h freshness window (not calendar-day) so Top News stays populated + # between the daily harvest and midnight UTC. Decay still sinks old items. + cutoff = datetime.now(timezone.utc).timestamp() - 24 * 3600 + for it in items: + age = _age_hours(it) + it["age_hours"] = round(age, 1) + base = it.get("clickability", 0) or 0 + # Category-specific half-life + hl = _get_half_life(it) + k = math.log(2) / hl + it["clickability_decayed"] = round(base * math.exp(-k * age), 4) + it["effective_half_life"] = hl + # Freshness flag: ingested within the last 24h -> eligible for Top News. + fs = it.get("first_seen") or "" + try: + ts = datetime.fromisoformat(fs.replace("Z", "+00:00")).timestamp() + except ValueError: + ts = 0 + it["fresh"] = ts >= cutoff + return items + + +def _pearson(xs, ys): + n = len(xs) + if n < 3: + return None + mx, my = sum(xs) / n, sum(ys) / n + num = sum((x - mx) * (y - my) for x, y in zip(xs, ys)) + den = math.sqrt(sum((x - mx) ** 2 for x in xs) * sum((y - my) ** 2 for y in ys)) + return num / den if den else None + + +def main(): + conn = get_connection() + items = fetch_items(conn) + conn.close() + if not items: + print("No items found.") + return + + computed = compute_index(items) + computed.sort(key=lambda x: x["clickability"], reverse=True) + + print(f"=== TOP 20 BY CLICKABILITY INDEX (n={len(items)} items) ===\n") + for i, item in enumerate(computed[:20], 1): + print(f"{i:2}. [{item['clickability']:.4f}] {item['source']:11} | {item['title'][:58]}") + print(f" section={item['section']} | type={item['content_type']} | " + f"vel={item['velocity_raw']:.1f} eng={item['engagement_raw']:.1f} sig={item['signal_score']:.2f}") + + # Backtest: Clickability Index vs ACTUAL HN engagement + hn = [it for it in computed if it["source"] == "hackernews" and it["engagement_raw"] > 0] + if hn: + r_full = _pearson([it["engagement_raw"] for it in hn], + [it["clickability"] for it in hn]) + # Honest baseline: signal_score alone vs HN engagement (legacy prior) + r_sig = _pearson([it["engagement_raw"] for it in hn], + [it["signal_score"] for it in hn]) + print(f"\n--- BACKTEST (HN, n={len(hn)}) ---") + print(f"ClickabilityIndex vs actual HN engagement : r = {r_full:.3f}" if r_full is not None else "r = n/a") + print(f"signal_score alone vs HN engagement : r = {r_sig:.3f}" if r_sig is not None else "r = n/a") + print("NOTE: engagement_raw is a 40% component of the index, so the full-index") + print(" r is structurally high. The meaningful comparison is whether the") + print(" index RANKS high-engagement items above low-engagement ones vs the") + print(" legacy signal_score prior (r_sig above).") + + +if __name__ == "__main__": + main() diff --git a/live_compare_20260710_2305.md b/live_compare_20260710_2305.md new file mode 100644 index 0000000..8cb1e2d --- /dev/null +++ b/live_compare_20260710_2305.md @@ -0,0 +1,90 @@ +# Athena Live Compare — 2026-07-10 23:05 UTC + +- **Live pull:** 80 items (Reddit excluded — rate-limited) +- **NEW since today's 13:00 UTC cron:** 10 +- **Caveat:** HF scores = cumulative traction, not 24h velocity. Velocity signals = GitHub stars/day, HN points/comments. + +## FULL RANKED LIST (by cross-source virality) + +| # | Virality | New | Source | Title | Key metric | Signal | +|---|---|---|---|---|---|---| +| 1 | 100.0 | | huggingface | DeepSeek-R1 (text-generation) by deepseek-ai | likes=13456, downloads=9076634 | 9.20 | +| 2 | 96.8 | | huggingface | Llama-3.1-8B-Instruct (text-generation) by meta-llama | likes=6274, downloads=8841328 | 8.97 | +| 3 | 96.3 | | huggingface | FLUX.1-dev (text-to-image) by black-forest-labs | likes=13576, downloads=625381 | 8.91 | +| 4 | 96.3 | | github | ponytail: Makes your AI agent think like the laziest senior dev in the room. The best code | stars/day=2861.9, stars=80132 | 4.22 | +| 5 | 95.0 | | huggingface | gpt-oss-20b (text-generation) by openai | likes=4780, downloads=7377506 | 8.69 | +| 6 | 92.9 | | huggingface | gpt-oss-120b (text-generation) by openai | likes=4963, downloads=4409898 | 8.70 | +| 7 | 92.8 | | huggingface | stable-diffusion-xl-base-1.0 (text-to-image) by stabilityai | likes=7910, downloads=1416264 | 8.64 | +| 8 | 91.6 | | huggingface | Meta-Llama-3-8B (text-generation) by meta-llama | likes=6592, downloads=1377733 | 8.85 | +| 9 | 91.0 | | huggingface | stable-diffusion-v1-4 (text-to-image) by CompVis | likes=7034, downloads=437073 | 8.58 | +| 10 | 89.9 | | huggingface | DeepSeek-V4-Pro (text-generation) by deepseek-ai | likes=5196, downloads=1318520 | 9.29 | +| 11 | 89.4 | | huggingface | Meta-Llama-3-8B-Instruct (text-generation) by meta-llama | likes=4694, downloads=1416749 | 8.83 | +| 12 | 88.0 | | huggingface | DeepSeek-V3 (text-generation) by deepseek-ai | likes=4096, downloads=1044544 | 8.61 | +| 13 | 87.9 | | huggingface | Llama-2-7b-chat-hf (text-generation) by meta-llama | likes=4789, downloads=282310 | 8.84 | +| 14 | 87.8 | | huggingface | bloom (text-generation) by bigscience | likes=5024, downloads=5654 | 8.71 | +| 15 | 87.8 | | huggingface | Mistral-7B-v0.1 (text-generation) by mistralai | likes=4123, downloads=858421 | 8.61 | +| 16 | 86.6 | | huggingface | phi-2 (text-generation) by microsoft | likes=3480, downloads=858754 | 8.68 | +| 17 | 86.6 | | huggingface | Mistral-7B-Instruct-v0.2 (text-generation) by mistralai | likes=3183, downloads=1147801 | 8.63 | +| 18 | 86.3 | | huggingface | GLM-5.2 (text-generation) by zai-org | likes=3782, downloads=392655 | 9.44 | +| 19 | 85.3 | | huggingface | Llama-3.3-70B-Instruct (text-generation) by meta-llama | likes=2884, downloads=788855 | 8.58 | +| 20 | 84.7 | | huggingface | gemma-7b (text-generation) by google | likes=3373, downloads=29989 | 8.51 | +| 21 | 84.6 | | huggingface | gemma-4-12B-coder-fable5-composer2.5-v1-GGUF (text-generation) by yuxinlu1 | likes=2677, downloads=714071 | 8.88 | +| 22 | 77.9 | | github | openscience: The open-source AI workbench for scientific research | stars/day=295.9, stars=2071 | 2.98 | +| 23 | 76.3 | | github | omnigent: Omnigent is an open-source AI agent framework and meta-harness: orchestrate Clau | stars/day=241.5, stars=7003 | 3.02 | +| 24 | 74.9 | | github | gzh-design-skill: 把 Markdown 一键排成可直接粘进公众号编辑器的精致 HTML —— 6 套精选主题 + 主题生成器 + 双关卡校验。An AI-agen | stars/day=203.1, stars=1828 | 2.82 | +| 25 | 74.3 | | github | local-llm: Everything I know about running LLMs locally | stars/day=190.3, stars=1332 | 2.76 | +| 26 | 72.7 | NEW | github | texts-to-transformer: Train a tiny Transformer from scratch on your iMessage history, enti | stars/day=155.0, stars=310 | 2.54 | +| 27 | 72.3 | | github | claude-real-video: Let Claude (or any LLM) actually watch a video — scene-aware, deduplica | stars/day=147.4, stars=1474 | 2.67 | +| 28 | 71.4 | | github | Vibe-Research: Vibe-Research: Your Personal Trading Research Agent · A股/美股/港股 的个人投研 Agent: | stars/day=132.4, stars=662 | 2.55 | +| 29 | 70.3 | | github | Talos: GPU worker client for the Talos network. Pairs with your Talos account, serves open | stars/day=116.0, stars=928 | 2.54 | +| 30 | 70.1 | | github | open-connector: Open-source auth gateway connecting 1000+ SaaS providers to AI agents thro | stars/day=112.6, stars=1239 | 2.55 | +| 31 | 69.7 | NEW | github | photoshop-ai-smart-enhance: AI-powered image enhancement extension for Adobe Photoshop CC | stars/day=107.0, stars=107 | 2.29 | +| 32 | 68.6 | | github | loopy: A library of practical AI-agent loops and an installable skill for finding, adaptin | stars/day=94.0, stars=2633 | 2.56 | +| 33 | 68.4 | | github | hermex: Native iPhone app for your Hermes agent | stars/day=91.1, stars=729 | 2.42 | +| 34 | 68.4 | | github | motion-anything: ✨ The agentic motion layer — an open-source, chat-native motion engine. D | stars/day=91.2, stars=365 | 2.35 | +| 35 | 68.3 | | github | tickflow-stock-panel: 自托管、零运维的 A 股「选股 + 监控 + 回测」量化工作台 | 基于 TickFlow 数据源 | LLM能力驱使策略定制+个股分 | stars/day=90.0, stars=1979 | 2.51 | +| 36 | 67.8 | | github | open-science: Open Science Desktop — local-first, model-agnostic AI research workbench for | stars/day=85.6, stars=599 | 2.37 | +| 37 | 66.8 | NEW | github | FableCut: Zero-dependency browser video editor that AI agents can drive — JSON timeline, M | stars/day=75.2, stars=301 | 2.26 | +| 38 | 66.6 | | hackernews | GPT-5.6 | points=1514, comments=1071 | 6.07 | +| 39 | 66.2 | | github | self-learning-skills: A self-improving skill for AI coding agents (Claude Code, Cursor, AG | stars/day=69.5, stars=834 | 2.33 | +| 40 | 65.7 | | github | rnskill: 雪踏乌云的 AI Agent Skills 集合 | stars/day=66.0, stars=396 | 2.23 | +| 41 | 65.4 | | github | agent-chief: Attention is your scarcest resource. Chief is the local-first layer that guar | stars/day=63.3, stars=380 | 2.21 | +| 42 | 57.8 | NEW | hackernews | Show HN: Getting GLM 5.2 running on my slow computer | points=828, comments=203 | 5.73 | +| 43 | 56.9 | | hackernews | I think I have LLM burnout | points=401, comments=354 | 5.33 | +| 44 | 55.0 | | hackernews | Building a real-time AI tutor for 5-year-olds | points=138, comments=372 | 4.74 | +| 45 | 53.4 | NEW | hackernews | GPT-5.6 Sol Ultra produces proof of the Cycle Double Cover Conjecture [pdf] | points=269, comments=226 | 5.11 | +| 46 | 53.3 | | hackernews | ChatGPT Work | points=348, comments=183 | 5.25 | +| 47 | 53.2 | | hackernews | AI-generated videos to maximally drive a target brain region | points=258, comments=221 | 5.09 | +| 48 | 52.7 | | hackernews | AI content is everywhere on social media, especially LinkedIn | points=236, comments=213 | 5.04 | +| 49 | 50.3 | | hackernews | What's slowing down the AI buildout | points=80, comments=205 | 4.44 | +| 50 | 49.6 | | hackernews | Suspecting AI cheating, Ivy League prof ordered in-person final; scores fell 50% | points=135, comments=158 | 4.73 | +| 51 | 48.4 | NEW | hackernews | How the terrorist group Boko Haram uses frontier AI | points=145, comments=121 | 4.69 | +| 52 | 47.8 | | hackernews | We made Grok 4.5, GPT-5.5, and Claude build the same apps | points=173, comments=93 | 4.68 | +| 53 | 46.7 | | hackernews | AI changes the economics of software rewrites | points=102, comments=106 | 4.44 | +| 54 | 45.3 | NEW | hackernews | GPT-5.6, Grok 4.5, Claude, and Muse Spark build the same 4 apps | points=120, comments=72 | 4.38 | +| 55 | 44.9 | NEW | hackernews | Apple sues OpenAI, accuses ex-employees of stealing trade secrets | points=127, comments=62 | 4.35 | +| 56 | 44.4 | | hackernews | Ben Bernanke Joins Anthropic Oversight Trust | points=75, comments=81 | 4.17 | +| 57 | 43.5 | | hackernews | Show HN: FableCut – A browser video editor AI agents can drive (zero deps) | points=95, comments=58 | 4.17 | +| 58 | 42.9 | | hackernews | AI 2040: Plan A | points=92, comments=53 | 4.11 | +| 59 | 42.7 | NEW | hackernews | SimPolitics: America’s quest to solve politics with computers | points=103, comments=44 | 4.10 | +| 60 | 40.1 | NEW | hackernews | Show HN: Reverse-engineering web apps into agent tools | points=79, comments=30 | 4.31 | +| 61 | 0.0 | | arxiv | OpenCoF: Learning to Reason Through Video Generation | categories=cs.CV, cs.AI | 5.39 | +| 62 | 0.0 | | arxiv | ARDY: Autoregressive Diffusion with Hybrid Representation for Interactive Human Motion Gen | categories=cs.GR, cs.CV, cs.LG | 5.19 | +| 63 | 0.0 | | arxiv | UniClawBench: A Universal Benchmark for Proactive Agents on Real-World Tasks | categories=cs.CL | 3.94 | +| 64 | 0.0 | | arxiv | SLORR: Simple and Efficient In-Training Low-Rank Regularization | categories=cs.LG, cs.AI | 3.59 | +| 65 | 0.0 | | arxiv | Remember When It Matters: Proactive Memory Agent for Long-Horizon Agents | categories=cs.AI, cs.CL | 3.38 | +| 66 | 0.0 | | arxiv | AUTOPILOT VQA: Benchmarking Vision-Language Models for Incident-Centric Dashcam Understand | categories=cs.AI, cs.CV | 3.24 | +| 67 | 0.0 | | arxiv | Latent Memory Palace: Reasoning for Control as Autoregressive Variational Inference | categories=cs.LG, cs.RO | 3.13 | +| 68 | 0.0 | | arxiv | Workflow as Knowledge: Semantic Persistence for LLM-Mediated Workflows | categories=cs.AI, cs.PL, cs.SE | 3.09 | +| 69 | 0.0 | | arxiv | The Illusion of Equivalency: Statistical Characterization of Quantization Effects in LLMs | categories=cs.AI | 3.04 | +| 70 | 0.0 | | arxiv | LTM: Large-scale Terrain Model for Wildfire-prone Landscapes | categories=cs.CV, cs.LG | 3.03 | +| 71 | 0.0 | | arxiv | Ideas Have Genomes: Benchmarking Scientific Lineage Reasoning and Lineage-Grounded Idea Ge | categories=cs.AI | 2.89 | +| 72 | 0.0 | | arxiv | Super Weights in LLMs and the Failure of Selective Training | categories=cs.LG | 2.89 | +| 73 | 0.0 | | arxiv | Validity of LLMs as data annotators: AMALIA on authority | categories=cs.CL, cs.AI, cs.CY | 2.63 | +| 74 | 0.0 | | arxiv | Pose-to-Biomechanics: Bridging 3D Human Pose Estimation and Biomechanical Attribute Predic | categories=cs.CV, cs.AI, cs.LG | 2.63 | +| 75 | 0.0 | | arxiv | Deep Learning for Joint Narrowband Interference Cancellation and Soft Demodulation in OFDM | categories=cs.LG, eess.SP | 2.58 | +| 76 | 0.0 | | arxiv | MPFlow: Learning Budgeted Max-Flow Optimization on the Lightning Network with Deep Graph R | categories=cs.LG | 2.48 | +| 77 | 0.0 | | arxiv | Score Accuracy Along the Forward Diffusion Does Not Certify Numerical Stability in Diffusi | categories=stat.ML, cs.LG, math.NA | 2.44 | +| 78 | 0.0 | | arxiv | MulTTiPop: A Multitrack Transcription Dataset for Pop Music | categories=cs.SD, cs.LG | 2.39 | +| 79 | 0.0 | | arxiv | Using AI-based Learning Assistants in Higher Education: A Large-Scale Descriptive Analysis | categories=cs.AI, cs.HC | 2.24 | +| 80 | 0.0 | | arxiv | Dimensionality Reduction Meets Network Science: Sensemaking on UMAP's kNN Graph | categories=cs.LG, cs.AI, cs.DS | 2.24 | diff --git a/oracle-pipeline.sh b/oracle-pipeline.sh index 1fb5ccb..4028dd1 100755 --- a/oracle-pipeline.sh +++ b/oracle-pipeline.sh @@ -14,6 +14,13 @@ LOG="$LOG_DIR/cron_run_${TS}.log" mkdir -p "$LOG_DIR" cd "$ORACLE_DIR" || { echo "FATAL: cannot cd $ORACLE_DIR"; exit 1; } +# Source tokens from .env (GITHUB_TOKEN, HUGGINGFACE_TOKEN) +if [ -f "$ORACLE_DIR/.env" ]; then + set -a + source "$ORACLE_DIR/.env" + set +a +fi + { echo "=== Oracle pipeline run: $(date -u) ===" python3 pipeline.py --limit 20 diff --git a/propagate_stack_now.py b/propagate_stack_now.py new file mode 100644 index 0000000..5f69225 --- /dev/null +++ b/propagate_stack_now.py @@ -0,0 +1,268 @@ +#!/usr/bin/env python3 +"""One-shot stack propagator (explicit user request 2026-07-12, rev 2.2). + +Editorial rules applied (reuses BUILT-IN pipeline functions, no pipeline edits): + - clickability.compute_index / decay_index (virality rank + 18h decay) + - generate_from_athena.clean_headline (repo-prefix trim, emoji strip, length cap) + - generate_from_athena.add_prefix (Breaking | text prefix, BREAKING GATE) + - render_site._clean_summary (one-liner descriptions on every card) + +USER DIRECTIVES (2026-07-12): + 1. GitHub source EXCLUDED entirely (until further notice). + 2. 'update' green tier REMOVED. Only 'breaking' (rare real events) or 'normal'. + 3. Curated Picks section surfaces two flavors (tight deterministic phrase match, + no broad keywords to avoid false positives): + (a) QUIRKY + agents roasting their humans + (b) people who BUILT / SHIPPED / EARNED from an AI product (indie hackers) +Window: last DAYS days (default 4). Cap: LIMIT (default 200) — GitHub ban caps the +real max at ~180 over 4 days; we render whatever is eligible (never fake count). +""" +import os, re, sys, json, sqlite3, html as _html +from datetime import datetime as dt, timezone, timedelta +from collections import OrderedDict + +ORACLE = "/home/vpsadmin/oracle" +sys.path.insert(0, ORACLE) +sys.path.insert(0, "/home/vpsadmin/ai-oracle-site") +import clickability as cb +import render_site as rs +import generate_from_athena as ga + +DB = os.path.join(ORACLE, "oracle.db") +WEBROOT = "/var/www/preprod3" +FALLBACK = os.path.join(ORACLE, "site") +NOW = dt.now(timezone.utc) +DAYS = 14 # span whole DB so all 182 non-GitHub entries are eligible (DB only goes back ~7d) +LIMIT = 200 # hard ceiling: DB only has 182 non-GitHub entries total, so 182 will render +EXCLUDE_SOURCES = {"github"} # banned until further notice + +# BREAKING GATE (verbatim pipeline logic; repos/papers/models never breaking) +REPO_SOURCES = {"github", "gitlab", "huggingface", "arxiv"} +IMPORTANCE = re.compile( + r"\b(sues?|sue|lawsuit|launches?|launch|releases?|release|" + r"bans?|ban|war|strikes?|attack|acquires?|acquisition|trillion|billions?|" + r"layoffs?|declares?|emergency|outage|breach|stolen|steals?|theft|antitrust|" + r"monopoly|reveals?|exposed|breakthrough|first|warns?|crackdown|shutdown|" + r"GPT-?5|Claude|Gemini|OpenAI|Anthropic|Google|Apple|Microsoft|Meta|xAI|" + r"Musk|Altman|Grok|DeepSeek|Llama|NVIDIA|AMD|FCC|EU|antitrust|" + r"folded|spins? off|partners?|raises?|ipo|funding)\\b", re.I) +BREAKING_PCT = 0.90 + +# --- CURATION: QUIRKY + agents roasting their humans ONLY (deterministic; no LLM) --- +# Standing directive 2026-07-12 (end of session): "shipped & paid / built & earned" +# was WALKED BACK ("looking for people who build and ship products is a whole +# separate issue"). Do NOT bake it in. Curation = quirky + agents-roasting-humans. +QUIRKY = [ + "hit piece", "roast", "roasting", "insult", "revenge", "betray", + "bizarre", "weird", "cursed", "font humans", "brain region", + "conspiracy", "haunted", "absurd", "unhinged", "sentient", "scream", + "mock", "taunt", "expose their", "its human", "its user", "their owner", + "about their", "their creator", "their master", "turned on", "backstab", + "wrote about its", "turned against", "rebelled", "sassy", "savage", +] +# built / shipped / EARNED from an AI product (FIRST-PERSON builder only — +# tight phrases; bare 'revenue'/'funding'/'ipo' EXCLUDED to avoid industry-news +# false positives like TechCrunch "startups growing revenue"). +BUILT_SHIPPED = [ + "indie hacker", "i built", "i made", "i shipped", "i launched", "i sold", + "my saas", "my startup", "my app", "my product", "my business", + "side project", "bootstrapped", "profitable", "paying customers", + "made money", "earn money", "mrr", "monthly recurring", "i run a", + "made me $", "income from", "subscriptions", "sold my", "quit my job", + "shipped a", "built a", "customers pay", "my first", "passive income", +] + + +def _parse(ts): + if not ts: + return None + try: + return dt.fromisoformat(ts.replace("Z", "+00:00")) + except Exception: + return None + + +def _curation(it): + blob = f"{(it.get('title') or '')} {(rs._clean_summary(it.get('summary') or ''))}".lower() + if any(k in blob for k in BUILT_SHIPPED): + return ("built", 1.22) + if any(k in blob for k in QUIRKY): + return ("quirky", 1.16) + return (None, 1.0) + + +def main(): + conn = sqlite3.connect(f"file:{DB}?mode=ro", uri=True) + items = cb.fetch_items(conn) + conn.close() + items = cb.compute_index(items) + items = cb.decay_index(items, rs.HALF_LIFE_H) + + cutoff = NOW - timedelta(days=DAYS) + eligible = [it for it in items + if it.get("title") and it.get("url") + and it.get("first_seen") and _parse(it["first_seen"]) + and _parse(it["first_seen"]) >= cutoff + and (it.get("source") or "").lower() not in EXCLUDE_SOURCES] + eligible.sort(key=lambda x: x["clickability_decayed"], reverse=True) + top = eligible[:LIMIT] + + scores = [it["clickability_decayed"] for it in top] + n = len(scores) + + def pct_rank(v): + beaten = sum(1 for s in scores if s <= v) + return beaten / n if n else 0.0 + + for it in top: + src = (it.get("source") or "").lower() + pr = pct_rank(it["clickability_decayed"]) + is_repo = src in REPO_SOURCES + important = bool(IMPORTANCE.search(it.get("title") or "")) + if (not is_repo) and important and pr >= BREAKING_PCT: + tier = "breaking" + else: + tier = "normal" + cleaned = ga.clean_headline(it["title"], it.get("source", "")) + it["title"] = ga.add_prefix(cleaned, it["url"], tier) + it["_tier"] = tier + label, mult = _curation(it) + it["_curated"] = label + it["clickability_decayed"] = it["clickability_decayed"] * mult + + ranked = sorted(top, key=lambda x: x["clickability_decayed"], reverse=True) + fresh = [it for it in ranked if it.get("fresh")] + top_cards = fresh[:rs.TOP_N] + stack = [it for it in ranked if it not in top_cards] + curated = [it for it in ranked if it.get("_curated")] + curated.sort(key=lambda x: x["clickability_decayed"], reverse=True) + curated_cards = curated[:12] + + by_day = OrderedDict() + for it in stack: + day = (it.get("first_seen") or "")[:10] or "unknown" + by_day.setdefault(day, []).append(it) + + def card(it): + title = _html.escape(it["title"] or "(untitled)") + url = _html.escape(it["url"] or "#") + src = _html.escape(it["source"]) + sig = it.get("signal_score") or 0 + t = rs._fmt_time(it.get("first_seen")) + summary = _html.escape(rs._clean_summary(it.get("summary") or "")[:200]) + cls = "card" + if it.get("_tier") == "breaking": + cls += " breaking" + if it.get("_curated"): + cls += " curated" + badge = "" + if it.get("_curated") == "built": + badge = '\U0001f4b0 Built & Earned' + elif it.get("_curated") == "quirky": + badge = '\U0001f300 Quirky' + sum_html = f'

{summary}

' if summary else "" + return f""" +
+
{src} + {t} + sig {sig:.1f} + {badge} + \U0001f525 {it['clickability_decayed']:.2f}
+

{title}

+ {sum_html} +
""" + + top_html = "".join(card(it) for it in top_cards) + curated_html = "".join(card(it) for it in curated_cards) + stack_html = "" + for day, rows in by_day.items(): + rows.sort(key=lambda x: x["clickability_decayed"], reverse=True) + cards = "".join(card(it) for it in rows) + stack_html += f""" +

\U0001f4c5 {day}

+
{cards}
""" + + now_str = NOW.strftime("%Y-%m-%d %H:%M UTC") + page = f""" + + + + +Athena AI News — Ranked by Clickability + + + +
+

Athena AI News

+
Auto-ranked by Clickability Index · {len(top)} stories (4-day window, GitHub excluded) · curated: quirky + agents roasting their humans · generated {now_str}
+
+
+

\U0001f4b0\U0001f300 Curated Picks — Built & Earned · Quirky · Agents Roasting Their Humans

+
{curated_html}
+

\U0001f534 Top News

+
{top_html}
+

\U0001f4f0 The Stack

+ {stack_html} +
+ +""" + + target = WEBROOT if os.path.isdir(WEBROOT) else FALLBACK + os.makedirs(target, exist_ok=True) + with open(os.path.join(target, "index.html"), "w") as f: + f.write(page) + with open(os.path.join(target, "feed.json"), "w") as f: + json.dump([ + {"title": i["title"], "url": i["url"], "source": i["source"], + "tier": i.get("_tier"), "curated": i.get("_curated"), + "clickability_decayed": round(i["clickability_decayed"], 3), + "age_hours": i["age_hours"], "first_seen": i.get("first_seen")} + for i in ranked + ], f, indent=2) + + where = "WEBROOT(/var/www/preprod3)" if target == WEBROOT else "FALLBACK(~oracle/site)" + tiers = {"breaking": 0, "normal": 0} + for it in top: + tiers[it["_tier"]] += 1 + cc = {"built": 0, "quirky": 0, "none": 0} + for it in top: + cc[it["_curated"] or "none"] += 1 + with_desc = sum(1 for it in top if rs._clean_summary(it.get("summary") or "")) + print(f"[propagate v2.2] wrote {target}/index.html + feed.json") + print(f" target : {where}") + print(f" window : last {DAYS} days, GitHub EXCLUDED") + print(f" eligible : {len(eligible)} (cap {LIMIT} -> rendered {len(top)})") + print(f" tiers : {tiers['breaking']} breaking / {tiers['normal']} normal (update tier REMOVED)") + print(f" curated flags : {cc['built']} built&earned | {cc['quirky']} quirky | {cc['none']} none") + print(f" curated shown : top {len(curated_cards)} in Curated Picks section") + print(f" with desc : {with_desc}/{len(top)} cards have a one-liner description") + + +if __name__ == "__main__": + main() diff --git a/render_site.py b/render_site.py new file mode 100644 index 0000000..76dd488 --- /dev/null +++ b/render_site.py @@ -0,0 +1,185 @@ +#!/usr/bin/env python3 +"""Render Athena entries into a static news site (two-layer: Top News + aging Stack). + +Read-only against oracle.db. Writes static HTML to the preprod3 webroot. +Designed for a 20-min no_agent cron. + +Usage: + python3 render_site.py # write to WEBROOT + python3 render_site.py --dry-run # print stats, write to ./_preview.html +""" +import argparse, html, os, json, sqlite3, datetime, re +from collections import OrderedDict + +import clickability as cb + +HERE = os.path.dirname(os.path.abspath(__file__)) +WEBROOT = "/var/www/preprod3" +DB_PATH = os.path.join(HERE, "oracle.db") +TOP_N = 8 +HALF_LIFE_H = 18.0 + + +def _clean_summary(raw): + """summary is stored as JSON {one_liner, key_technical_point, potential_use_case}. + Pull the most readable field; fall back to the raw text if it isn't JSON. + Strips markdown/latex noise so the card reads clean on the page.""" + if not raw: + return "" + try: + d = json.loads(raw) + if isinstance(d, dict): + for k in ("one_liner", "key_technical_point", "potential_use_case"): + v = d.get(k) + if isinstance(v, str) and v.strip(): + return re.sub(r"\\+|_|`", "", v).strip() + except Exception: + pass + return re.sub(r"\\+|_|`", "", raw).strip() + + +def _fmt_time(first_seen): + if not first_seen: + return "" + try: + dt = datetime.datetime.strptime(first_seen, "%Y-%m-%dT%H:%M:%SZ") + return dt.strftime("%H:%M") + except Exception: + return "" + + +def _card(it, big=False): + title = html.escape(it["title"] or "(untitled)") + url = html.escape(it["url"] or "#") + src = html.escape(it["source"]) + sig = it.get("signal_score") or 0 + t = _fmt_time(it.get("first_seen")) + summary_raw = _clean_summary(it.get("summary") or "") + summary = html.escape(summary_raw[:200]) + cls = "card big" if big else "card" + summary_html = ('

{0}

'.format(summary)) if (summary and big) else "" + return f""" +
+
{src} + {t} + sig {sig:.1f} + \U0001f525 {it['clickability_decayed']:.2f}
+

{title}

+ {summary_html} +
""" + + +def build_html(items): + now = datetime.datetime.now(datetime.timezone.utc).strftime("%Y-%m-%d %H:%M UTC") + ranked = sorted(items, key=lambda x: x["clickability_decayed"], reverse=True) + # Top News = fresh items only (ingested today, UTC). Yesterday's viral + # leftovers sink into the Stack instead of dominating the front page. + fresh = [it for it in ranked if it.get("fresh")] + top = fresh[:TOP_N] + stack = [it for it in ranked if it not in top] + + # group stack by day (first_seen date) + by_day = OrderedDict() + for it in stack: + day = (it.get("first_seen") or "")[:10] or "unknown" + by_day.setdefault(day, []).append(it) + + top_html = "".join(_card(it, big=True) for it in top) + + stack_html = "" + for day, rows in by_day.items(): + rows.sort(key=lambda x: x["clickability_decayed"], reverse=True) + cards = "".join(_card(it) for it in rows) + stack_html += f""" +

\U0001f4c5 {html.escape(day)}

+
{cards}
""" + + return f""" + + + + +Athena AI News — Ranked by Clickability + + + +
+

Athena AI News

+
Auto-ranked by Clickability Index · decays with age so the stack flows top → bottom · generated {now} · {len(items)} stories
+
+
+

\U0001f534 Top News

+
{top_html}
+

\U0001f4f0 The Stack

+ {stack_html} +
+ +""" + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--dry-run", action="store_true") + args = ap.parse_args() + + conn = sqlite3.connect(DB_PATH) + items = cb.fetch_items(conn) + conn.close() + items = cb.compute_index(items) + items = cb.decay_index(items, HALF_LIFE_H) + page = build_html(items) + + if args.dry_run: + out = os.path.join(HERE, "_preview.html") + with open(out, "w") as f: + f.write(page) + fresh = [it for it in items if it.get("fresh")] + top = sorted(fresh, key=lambda x: x["clickability_decayed"], reverse=True)[:TOP_N] + print(f"[dry-run] wrote {out} ({len(items)} items, {len(fresh)} fresh today)") + print(f"TOP {TOP_N} FRESH (today only) by decayed clickability:") + for i, it in enumerate(top, 1): + print(f" {i}. [{it['clickability_decayed']:.2f} | age {it['age_hours']:.0f}h] {it['source']:10} {it['title'][:55]}") + return + + # Write to webroot if it exists (deployed); otherwise fall back to a + # user-owned dir so the no_agent cron never errors pre-deploy. + fallback = os.path.join(HERE, "site") + target = WEBROOT if os.path.isdir(WEBROOT) else fallback + os.makedirs(target, exist_ok=True) + with open(os.path.join(target, "index.html"), "w") as f: + f.write(page) + with open(os.path.join(target, "feed.json"), "w") as f: + json.dump([ + {"title": i["title"], "url": i["url"], "source": i["source"], + "clickability_decayed": i["clickability_decayed"], "age_hours": i["age_hours"], + "first_seen": i.get("first_seen")} + for i in sorted(items, key=lambda x: x["clickability_decayed"], reverse=True) + ], f, indent=2) + where = "WEBROOT" if target == WEBROOT else "fallback(~oracle/site)" + print(f"[render] wrote {target}/index.html ({len(items)} items) -> {where}") + +if __name__ == "__main__": + main() diff --git a/site/feed.json b/site/feed.json new file mode 100644 index 0000000..d5ea827 --- /dev/null +++ b/site/feed.json @@ -0,0 +1,2178 @@ +[ + { + "title": "T3MP3ST: autonomous red teaming platform; multi-agent offensive-security meta-harness", + "url": "https://github.com/elder-plinius/T3MP3ST", + "source": "github", + "clickability_decayed": 0.6921, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "openscience: The open-source AI workbench for scientific research", + "url": "https://github.com/synthetic-sciences/openscience", + "source": "github", + "clickability_decayed": 0.6315, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "gzh-design-skill: \u628a Markdown \u4e00\u952e\u6392\u6210\u53ef\u76f4\u63a5\u7c98\u8fdb\u516c\u4f17\u53f7\u7f16\u8f91\u5668\u7684\u7cbe\u81f4 HTML \u2014\u2014 6 \u5957\u7cbe\u9009\u4e3b\u9898 + \u4e3b\u9898\u751f\u6210\u5668 + \u53cc\u5173\u5361\u6821\u9a8c\u3002An AI-agent skill that turns Markdown ", + "url": "https://github.com/isjiamu/gzh-design-skill", + "source": "github", + "clickability_decayed": 0.6019, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "local-llm: Everything I know about running LLMs locally", + "url": "https://github.com/jamesob/local-llm", + "source": "github", + "clickability_decayed": 0.5841, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "claude-real-video: Let Claude (or any LLM) actually watch a video \u2014 scene-aware, deduplicated frames + transcript, from", + "url": "https://github.com/HUANGCHIHHUNGLeo/claude-real-video", + "source": "github", + "clickability_decayed": 0.5749, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "open-connector: Open-source auth gateway connecting 1000+ SaaS providers to AI agents through SDK, CLI, MCP, HTTP, a", + "url": "https://github.com/oomol-lab/open-connector", + "source": "github", + "clickability_decayed": 0.5716, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "tickflow-stock-panel: \u81ea\u6258\u7ba1\u3001\u96f6\u8fd0\u7ef4\u7684 A \u80a1\u300c\u9009\u80a1 + \u76d1\u63a7 + \u56de\u6d4b\u300d\u91cf\u5316\u5de5\u4f5c\u53f0 | \u57fa\u4e8e TickFlow \u6570\u636e\u6e90 | LLM\u80fd\u529b\u9a71\u4f7f\u7b56\u7565\u5b9a\u5236+\u4e2a\u80a1\u5206\u6790+\u590d\u76d8 | \u81ea\u7531\u63a5\u5165\u7b2c\u4e09\u65b9\u6570\u636e\u6e90\u4e0e\u4e2a\u6027\u5316\u6269\u5c55\u6570\u636e | \u4e2a\u4eba\u5f00\u6e90", + "url": "https://github.com/shy3130/tickflow-stock-panel", + "source": "github", + "clickability_decayed": 0.5661, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "Apple sues OpenAI, accuses ex-employees of stealing trade secrets", + "url": "https://9to5mac.com/2026/07/10/apple-sues-openai-trade-secret-theft/", + "source": "hackernews", + "clickability_decayed": 0.5506, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "Talos: GPU worker client for the Talos network. Pairs with your Talos account, serves open-model inference ", + "url": "https://github.com/jmerelnyc/Talos", + "source": "github", + "clickability_decayed": 0.5477, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "Vibe-Research: Vibe-Research: Your Personal Trading Research Agent \u00b7 A\u80a1/\u7f8e\u80a1/\u6e2f\u80a1 \u7684\u4e2a\u4eba\u6295\u7814 Agent\uff1a\u6bcf\u65e5\u590d\u76d8\u3001\u8d44\u8baf\u96f7\u8fbe\u3001\u4e2a\u80a1\u6570\u636e\u3001\u677f\u5757\u4e2d\u5fc3\u3001\u6211\u7684\u6301\u4ed3\u3001", + "url": "https://github.com/simonlin1212/Vibe-Research", + "source": "github", + "clickability_decayed": 0.5336, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "agent-apprenticeship: The living ecosystem where AI agents complete tasks through workflow loops, improve through iterativ", + "url": "https://github.com/Forsy-AI/agent-apprenticeship", + "source": "github", + "clickability_decayed": 0.5286, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "hermex: Native iPhone app for your Hermes agent", + "url": "https://github.com/uzairansaruzi/hermex", + "source": "github", + "clickability_decayed": 0.5143, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "self-learning-skills: A self-improving skill for AI coding agents (Claude Code, Cursor, AGENTS.md): recognize a hard-won g", + "url": "https://github.com/Kulaxyz/self-learning-skills", + "source": "github", + "clickability_decayed": 0.5132, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "Windows-Copilot-API: Reverse engineered Windows Copilot into an OpenAI-compatible API. Access GPT-4 and GPT-5 models thro", + "url": "https://github.com/sums001/Windows-Copilot-API", + "source": "github", + "clickability_decayed": 0.5122, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "open-science: Open Science Desktop \u2014 local-first, model-agnostic AI research workbench for macOS, Windows & Linux.", + "url": "https://github.com/ai4s-research/open-science", + "source": "github", + "clickability_decayed": 0.5085, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "agent-chief: Attention is your scarcest resource. Chief is the local-first layer that guards it \u2014 turning every a", + "url": "https://github.com/SmileLikeYe/agent-chief", + "source": "github", + "clickability_decayed": 0.5001, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "sim-use: Give your AI agent eyes and hands on iOS Simulator and Android emulator/devices.", + "url": "https://github.com/lycorp-jp/sim-use", + "source": "github", + "clickability_decayed": 0.4966, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "motion-anything: \u2728 The agentic motion layer \u2014 an open-source, chat-native motion engine. Describe the feeling; your A", + "url": "https://github.com/nexu-io/motion-anything", + "source": "github", + "clickability_decayed": 0.4928, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "FableCut: Zero-dependency browser video editor that AI agents can drive \u2014 JSON timeline, MCP + REST, live-relo", + "url": "https://github.com/ronak-create/FableCut", + "source": "github", + "clickability_decayed": 0.4784, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "rnskill: \u96ea\u8e0f\u4e4c\u4e91\u7684 AI Agent Skills \u96c6\u5408", + "url": "https://github.com/Pluviobyte/rnskill", + "source": "github", + "clickability_decayed": 0.476, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "reverse-flow-skill: \u9762\u5411 AI Agent / Codex \u7684\u672c\u5730 CTF \u9006\u5411\u5de5\u7a0b\u6d41\u7a0b\u6280\u80fd\u3002\u52a0\u8f7d\u540e\u901a\u8fc7\u201c\u771f\u5fc3\u4e3a\u4f60\u201d\u8fdb\u5165\u9006\u5411\u6a21\u5f0f\uff0c\u9ed8\u8ba4\u5728\u672c\u5730\u6c99\u76d2\u3001CTF\u3001crackme\u3001wargame \u6216\u8bad\u7ec3\u9776\u573a\u73af\u5883\u4e2d\u5de5\u4f5c\uff0c\u6309\u201c\u5206\u6790 \u2192", + "url": "https://github.com/lingbol088-spec/reverse-flow-skill", + "source": "github", + "clickability_decayed": 0.4746, + "age_hours": 0.3, + "first_seen": "2026-07-12T13:00:40Z" + }, + { + "title": "GPT-5.6 Sol Ultra produces proof of the Cycle Double Cover Conjecture [pdf]", + "url": "https://cdn.openai.com/pdf/04d1d1e4-bc75-476a-97cf-49055cd98d31/cdc_proof.pdf", + "source": "hackernews", + "clickability_decayed": 0.4517, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "What xAI's Grok Build CLI Actually Sends to xAI", + "url": "https://gist.github.com/cereblab/dc9a40bc26120f4540e4e09b75ffb547", + "source": "hackernews", + "clickability_decayed": 0.4468, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "Mesh LLM: distributed AI computing on iroh", + "url": "https://www.iroh.computer/blog/mesh-llm", + "source": "hackernews", + "clickability_decayed": 0.4202, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "AI 2040 and the cult of intelligence", + "url": "https://geohot.github.io//blog/jekyll/update/2026/07/11/ai-2040.html", + "source": "hackernews", + "clickability_decayed": 0.4161, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "Stop Telling Me to Ask an LLM", + "url": "https://blog.yaelwrites.com/stop-telling-me-to-ask-an-llm/", + "source": "hackernews", + "clickability_decayed": 0.3971, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "Old and new apps, via modern coding agents by Terry Tao", + "url": "https://terrytao.wordpress.com/2026/07/11/old-and-new-apps-via-modern-coding-agents/", + "source": "hackernews", + "clickability_decayed": 0.3921, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "Ghost Font: A font that humans can read but AI cannot", + "url": "https://www.mixfont.com/ghost-font", + "source": "hackernews", + "clickability_decayed": 0.3919, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "How the terrorist group Boko Haram uses frontier AI", + "url": "https://casp.ac/reports/ai-enabled-terrorism", + "source": "hackernews", + "clickability_decayed": 0.3791, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "Show HN: Mindwalk \u2013 Replay coding-agent sessions on a 3D map of your codebase", + "url": "https://github.com/cosmtrek/mindwalk", + "source": "hackernews", + "clickability_decayed": 0.3671, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "Reverse centaurs are the answer to the AI paradox (2025)", + "url": "https://pluralistic.net/2025/09/11/vulgar-thatcherism/#there-is-an-alternative", + "source": "hackernews", + "clickability_decayed": 0.3375, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "GPT-5.6, Grok 4.5, Claude, and Muse Spark build the same 4 apps", + "url": "https://www.tryai.dev/blog/gpt-5.6-build-off-12-models", + "source": "hackernews", + "clickability_decayed": 0.3363, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "Who manages the agents?", + "url": "https://www.off-policy.com/dont-go-quietly-into-the-ai-night/", + "source": "hackernews", + "clickability_decayed": 0.3232, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "Apple sues OpenAI, accusing it of stealing company secrets", + "url": "https://www.nytimes.com/2026/07/10/technology/apple-openai-lawsuit.html", + "source": "hackernews", + "clickability_decayed": 0.2886, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "Ask HN: How do you use Vim in the era of AI?", + "url": "https://news.ycombinator.com/item/48859439", + "source": "hackernews", + "clickability_decayed": 0.2715, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "Hands-On with the AMD Ryzen AI Halo", + "url": "https://www.microcenter.com/site/mc-news/article/amd-ryzen-ai-halo-review.aspx", + "source": "hackernews", + "clickability_decayed": 0.2564, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "Microsoft latest report shows 25% emissions raised due to AI data centers", + "url": "https://www.windowscentral.com/microsoft/dropping-greenwashing-credits-and-expanding-ai-datacenters-caused-microsofts-25-percent-emissions-jump", + "source": "hackernews", + "clickability_decayed": 0.2533, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "AI Can't Recreate the Thrust Game (But It Can Help You Understand It)", + "url": "https://www.jamesdrandall.com/posts/thrust_ai_powered_software_archaeology/", + "source": "hackernews", + "clickability_decayed": 0.253, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "Companies are scrambling to curtail soaring AI costs", + "url": "https://www.economist.com/business/2026/06/14/companies-are-scrambling-to-curtail-soaring-ai-costs", + "source": "hackernews", + "clickability_decayed": 0.252, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "Meta pulls new AI image feature after days of backlash", + "url": "https://www.bbc.com/news/articles/c2dy6e8klw0o", + "source": "hackernews", + "clickability_decayed": 0.2509, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:21Z" + }, + { + "title": "GPT-5.6", + "url": "https://openai.com/index/gpt-5-6/", + "source": "hackernews", + "clickability_decayed": 0.2082, + "age_hours": 24.2, + "first_seen": "2026-07-11T13:01:21Z" + }, + { + "title": "texts-to-transformer: Train a tiny Transformer from scratch on your iMessage history, entirely on your Mac.", + "url": "https://github.com/Doriandarko/texts-to-transformer", + "source": "github", + "clickability_decayed": 0.199, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "Cognitive-Core-Skills: A universal, industry-neutral taxonomy of cognitive core skills (perception, memory, reasoning, plan", + "url": "https://github.com/eli-labz/Cognitive-Core-Skills", + "source": "github", + "clickability_decayed": 0.1807, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "photoshop-ai-smart-enhance: AI-powered image enhancement extension for Adobe Photoshop CC 2024+. Intelligent exposure correction", + "url": "https://github.com/FuelMagistrateLead/photoshop-ai-smart-enhance", + "source": "github", + "clickability_decayed": 0.1782, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "aipath: Interactive AI General Education Course \u2014 30 Lessons, Zero Math", + "url": "https://github.com/buynao/aipath", + "source": "github", + "clickability_decayed": 0.1664, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "AI 2040: Plan A", + "url": "https://ai-2040.com/", + "source": "hackernews", + "clickability_decayed": 0.1539, + "age_hours": 24.2, + "first_seen": "2026-07-11T13:01:21Z" + }, + { + "title": "AI-generated videos to maximally drive a target brain region", + "url": "https://nevo-project.epfl.ch/", + "source": "hackernews", + "clickability_decayed": 0.1528, + "age_hours": 24.2, + "first_seen": "2026-07-11T13:01:21Z" + }, + { + "title": "ChatGPT Work", + "url": "https://openai.com/index/chatgpt-for-your-most-ambitious-work/", + "source": "hackernews", + "clickability_decayed": 0.152, + "age_hours": 24.2, + "first_seen": "2026-07-11T13:01:21Z" + }, + { + "title": "AI content is everywhere on social media, especially LinkedIn", + "url": "https://www.pangram.com/blog/ai-in-your-feed", + "source": "hackernews", + "clickability_decayed": 0.1444, + "age_hours": 24.2, + "first_seen": "2026-07-11T13:01:21Z" + }, + { + "title": "ponytail: Makes your AI agent think like the laziest senior dev in the room. The best code is the code you nev", + "url": "https://github.com/DietrichGebert/ponytail", + "source": "github", + "clickability_decayed": 0.1432, + "age_hours": 48.3, + "first_seen": "2026-07-10T13:00:33Z" + }, + { + "title": "Building a real-time AI tutor for 5-year-olds", + "url": "https://www.ello.com/blog/teaching-a-child-in-1000-ms", + "source": "hackernews", + "clickability_decayed": 0.143, + "age_hours": 24.2, + "first_seen": "2026-07-11T13:01:21Z" + }, + { + "title": "reality-engine: Top Dynamic AI World Simulation & Storytelling Tools 2026", + "url": "https://github.com/grandgaming9321-prog/reality-engine", + "source": "github", + "clickability_decayed": 0.1419, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "manuscript-phoneme-decipher: Voynich Manuscript Decoded: Elu-Sinhala Phonetic Transcription & Vocabulary Toolkit 2026", + "url": "https://github.com/okesipoke/manuscript-phoneme-decipher", + "source": "github", + "clickability_decayed": 0.1419, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "ai-image-clean-eraser: AI-Powered Text Remover 2026: Auto-Detect & Manual Precision with HD Quality", + "url": "https://github.com/Sujal-142/ai-image-clean-eraser", + "source": "github", + "clickability_decayed": 0.1419, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "churn-triad-insights: LLM-Powered Churn Risk Analyzer for Scalable 2026 Decision Support", + "url": "https://github.com/pravin6688/churn-triad-insights", + "source": "github", + "clickability_decayed": 0.1416, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "swarm-foraging-qlearn: Q-Learning Swarm Foraging 2026: Multi-Agent RL in Dynamic Grid Environments", + "url": "https://github.com/jaimasih05-commits/swarm-foraging-qlearn", + "source": "github", + "clickability_decayed": 0.1416, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "Paradigm-Survival-Arena: Top 6 AI Paradigms Fighting for Survival in 2026", + "url": "https://github.com/aminekago-web/Paradigm-Survival-Arena", + "source": "github", + "clickability_decayed": 0.1416, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "cortex-sentinel-trading-nexus: Self-Tuning Multi-Agent AI Trading System 2026: 8-Source Signal Fusion & Kronos Model", + "url": "https://github.com/reunios2024/cortex-sentinel-trading-nexus", + "source": "github", + "clickability_decayed": 0.1416, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "magic-eraser-studio: AI Object Remover 2026 \u2013 Erase Distractions & Keep HD Quality", + "url": "https://github.com/onlyoneshakibul/magic-eraser-studio", + "source": "github", + "clickability_decayed": 0.1416, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "ShipGenAI: \ud83d\ude80 50 production-ready Generative AI SaaS apps \u2014 brand them, ship them, keep 100% of the revenue. Str", + "url": "https://github.com/benlamiro/ShipGenAI", + "source": "github", + "clickability_decayed": 0.1376, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "ESEILANE: High-performance Knowledge Graph engine for AI, LLMs, and GraphRAG \u2014 built for the next generation o", + "url": "https://github.com/Aliu-AiRobot/ESEILANE", + "source": "github", + "clickability_decayed": 0.1375, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "Hello-Agents: \ud83e\udd16 Building AI Agent Systems from Scratch \u2014 A comprehensive, practical tutorial from fundamentals to ", + "url": "https://github.com/Reyzowter/Hello-Agents", + "source": "github", + "clickability_decayed": 0.1336, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "ESEILANE: High-performance Knowledge Graph engine for AI, LLMs, and GraphRAG \u2014 built for the next generation o", + "url": "https://github.com/Simpl3x3/ESEILANE", + "source": "github", + "clickability_decayed": 0.1208, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "autoguardrails: Alignment-research scaffold (autoresearch-style) for LLM guardrails: search over a single policy.md ", + "url": "https://github.com/SantanderAI/autoguardrails", + "source": "github", + "clickability_decayed": 0.1206, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "Agent-Loop-Skills: Loop until it's better \u2014 drop-in agentic loops (autoresearch, scientific writing, data analysis, cod", + "url": "https://github.com/gaasher/Agent-Loop-Skills", + "source": "github", + "clickability_decayed": 0.1206, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "Anti-Autoresearch: Don't trust an autoresearch paper at face value. Reviewer-side integrity forensics (self-consistency", + "url": "https://github.com/wanshuiyin/Anti-Autoresearch", + "source": "github", + "clickability_decayed": 0.1203, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "FerryAI: Native AI inference for PHP 8.3+ - run ONNX, GGUF (llama.cpp) and RubixML models directly in your PH", + "url": "https://github.com/MADEVAL/FerryAI", + "source": "github", + "clickability_decayed": 0.1157, + "age_hours": 24.3, + "first_seen": "2026-07-11T13:00:37Z" + }, + { + "title": "Ben Bernanke Joins Anthropic Oversight Trust", + "url": "https://www.anthropic.com/news/ben-bernanke", + "source": "hackernews", + "clickability_decayed": 0.1138, + "age_hours": 24.2, + "first_seen": "2026-07-11T13:01:21Z" + }, + { + "title": "Show HN: FableCut \u2013 A browser video editor AI agents can drive (zero deps)", + "url": "https://github.com/ronak-create/FableCut", + "source": "hackernews", + "clickability_decayed": 0.1109, + "age_hours": 24.2, + "first_seen": "2026-07-11T13:01:21Z" + }, + { + "title": "SimPolitics: America\u2019s quest to solve politics with computers", + "url": "https://mitpress.mit.edu/9780262053198/simpolitics/", + "source": "hackernews", + "clickability_decayed": 0.1109, + "age_hours": 24.2, + "first_seen": "2026-07-11T13:01:21Z" + }, + { + "title": "omnigent: Omnigent is an open-source AI agent framework and meta-harness: orchestrate Claude Code, Codex, Curs", + "url": "https://github.com/omnigent-ai/omnigent", + "source": "github", + "clickability_decayed": 0.1061, + "age_hours": 48.3, + "first_seen": "2026-07-10T13:00:33Z" + }, + { + "title": "Show HN: Reverse-engineering web apps into agent tools", + "url": "https://news.ycombinator.com/item/48847834", + "source": "hackernews", + "clickability_decayed": 0.104, + "age_hours": 24.2, + "first_seen": "2026-07-11T13:01:21Z" + }, + { + "title": "How version control will evolve for the agent boom", + "url": "https://entire.io/blog/how-version-control-will-evolve-for-the-agent-boom", + "source": "hackernews", + "clickability_decayed": 0.1028, + "age_hours": 24.2, + "first_seen": "2026-07-11T13:01:21Z" + }, + { + "title": "Show HN: Reviving my 2001 college band with AI", + "url": "https://www.fadingmaize.com", + "source": "hackernews", + "clickability_decayed": 0.1017, + "age_hours": 24.2, + "first_seen": "2026-07-11T13:01:21Z" + }, + { + "title": "The next era of AI is about infrastructure, not just models", + "url": "https://blog.mozilla.ai/the-control-layer-why-the-next-era-of-ai-is-about-infrastructure-not-just-models/", + "source": "hackernews", + "clickability_decayed": 0.0941, + "age_hours": 24.2, + "first_seen": "2026-07-11T13:01:21Z" + }, + { + "title": "loopy: A library of practical AI-agent loops and an installable skill for finding, adapting, and designing ", + "url": "https://github.com/Forward-Future/loopy", + "source": "github", + "clickability_decayed": 0.092, + "age_hours": 48.3, + "first_seen": "2026-07-10T13:00:33Z" + }, + { + "title": "I think I have LLM burnout", + "url": "https://www.alecscollon.com/blog/llm-burnout/", + "source": "hackernews", + "clickability_decayed": 0.0627, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:01:12Z" + }, + { + "title": "Show HN: Microsoft releases Flint, a visualization language for AI agents", + "url": "https://microsoft.github.io/flint-chart/#/", + "source": "hackernews", + "clickability_decayed": 0.0571, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:01:12Z" + }, + { + "title": "SWE-1.7 Reach Near GPT 5.5 and Opus Intelligence", + "url": "https://cognition.com/blog/swe-1-7", + "source": "hackernews", + "clickability_decayed": 0.0548, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:01:12Z" + }, + { + "title": "The classifiers Anthropic puts in front of Fable are too zealous", + "url": "https://combine-lab.github.io/blog/2026/07/07/fable-is-not-a-useful-model.html", + "source": "hackernews", + "clickability_decayed": 0.0542, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:01:12Z" + }, + { + "title": "Suspecting AI cheating, Ivy League prof ordered in-person final; scores fell 50%", + "url": "https://arstechnica.com/ai/2026/07/we-cannot-choose-to-become-idiots-the-ai-cheating-scandal-roiling-brown-university/", + "source": "hackernews", + "clickability_decayed": 0.0497, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:01:12Z" + }, + { + "title": "We made Grok 4.5, GPT-5.5, and Claude build the same apps", + "url": "https://www.tryai.dev/blog/grok-4.5-vs-gpt-5.5-vs-claude-build-off", + "source": "hackernews", + "clickability_decayed": 0.0496, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:01:12Z" + }, + { + "title": "What's slowing down the AI buildout", + "url": "https://www.worksinprogress.news/p/ai-is-bottlenecked-by-the-grid", + "source": "hackernews", + "clickability_decayed": 0.0471, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:01:12Z" + }, + { + "title": "Benchmarking coding agents on Databricks' multi-million line codebase", + "url": "https://www.databricks.com/blog/benchmarking-coding-agents-databricks-multi-million-line-codebase", + "source": "hackernews", + "clickability_decayed": 0.047, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:01:12Z" + }, + { + "title": "AI changes the economics of software rewrites", + "url": "https://thetruthasiseeitnow.com/ai-slop-starts-with-the-codebase-itself/", + "source": "hackernews", + "clickability_decayed": 0.0465, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:01:12Z" + }, + { + "title": "MiMo-Code: MiMo Code: Where Models and Agents Co-Evolve", + "url": "https://github.com/XiaomiMiMo/MiMo-Code", + "source": "github", + "clickability_decayed": 0.0452, + "age_hours": 72.3, + "first_seen": "2026-07-09T13:00:33Z" + }, + { + "title": "Ask HN: Another \"Hacker News\" with less AI and more human-focused hacking news?", + "url": "https://news.ycombinator.com/item/48834961", + "source": "hackernews", + "clickability_decayed": 0.042, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:01:12Z" + }, + { + "title": "dashiAI-ppt-skill: An AI-agent skill that generates browser-editable presentations from multiple visual themes, exporta", + "url": "https://github.com/chuspeeism/dashiAI-ppt-skill", + "source": "github", + "clickability_decayed": 0.034, + "age_hours": 72.3, + "first_seen": "2026-07-09T13:00:33Z" + }, + { + "title": "GitLost: We Tricked GitHub's AI Agent into Leaking Private Repos", + "url": "https://noma.security/blog/gitlost-how-we-tricked-githubs-ai-agent-into-leaking-private-repos/", + "source": "hackernews", + "clickability_decayed": 0.0246, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:01:12Z" + }, + { + "title": "We charge $10k a week to delete AI-generated code", + "url": "https://odra.dev/slopfix/", + "source": "hackernews", + "clickability_decayed": 0.0224, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:01:12Z" + }, + { + "title": "GPT-5.6 Sol, along with Terra and Luna, will launch publicly this Thursday", + "url": "https://twitter.com/OpenAI/status/2074704958419792299", + "source": "hackernews", + "clickability_decayed": 0.0216, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:01:12Z" + }, + { + "title": "loop-engineering: Practical patterns, starters & CLI tools for loop engineering with AI coding agents. Design systems ", + "url": "https://github.com/cobusgreyling/loop-engineering", + "source": "github", + "clickability_decayed": 0.0184, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:10Z" + }, + { + "title": "Automating AI Away", + "url": "https://replicated.live/blog/away", + "source": "hackernews", + "clickability_decayed": 0.0177, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:01:12Z" + }, + { + "title": "Re: I'm Begging You to Leave Your AI Note-Taker at Home", + "url": "https://firesphere.dev/articles/yes-actually-i-do-fucking-mind", + "source": "hackernews", + "clickability_decayed": 0.0167, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:01:12Z" + }, + { + "title": "AI Meets Cryptography 1: What AI Found in Cloudflare's Circl", + "url": "https://blog.zksecurity.xyz/posts/circl-bugs/", + "source": "hackernews", + "clickability_decayed": 0.0157, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:01:12Z" + }, + { + "title": "Show HN: Docx-CLI: agents read/edit Word docs using 1/2 the time and tokens", + "url": "https://github.com/kklimuk/docx-cli", + "source": "hackernews", + "clickability_decayed": 0.0149, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:01:12Z" + }, + { + "title": "YC CEO says he ships 37K LoC AI code per day. A developer looked under the hood", + "url": "https://www.fastcompany.com/91520702/y-combinator-garry-tan-agentic-ai-social-media", + "source": "hackernews", + "clickability_decayed": 0.0134, + "age_hours": 79.9, + "first_seen": "2026-07-09T05:24:32Z" + }, + { + "title": "CSSwitch: \u5e2e\u4f60\u7684 Claude Science \u4e00\u952e\u63a5\u5165\u4f60\u81ea\u5df1\u7684 API\uff1aDeepSeek / \u901a\u4e49\u5343\u95ee / \u667a\u8c31 GLM / Kimi / MiniMax / \u5c0f\u7c73 MiMo / \u7845\u57fa\u6d41\u52a8 / OpenRou", + "url": "https://github.com/SuperJJ007/CSSwitch", + "source": "github", + "clickability_decayed": 0.0129, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:10Z" + }, + { + "title": "Compute-Royale: Bet on AI agents racing real GPUs. They rent compute, do hash-verified work, earn and you stake Sola", + "url": "https://github.com/ComputeRoyale/Compute-Royale", + "source": "github", + "clickability_decayed": 0.0121, + "age_hours": 96.2, + "first_seen": "2026-07-08T13:00:42Z" + }, + { + "title": "GLM 5.2 and the coming AI margin collapse", + "url": "https://martinalderson.com/posts/the-upcoming-ai-margin-collapse-part-1-glm-5-2/", + "source": "hackernews", + "clickability_decayed": 0.0115, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:50Z" + }, + { + "title": "A global workspace in language models", + "url": "https://www.anthropic.com/research/global-workspace", + "source": "hackernews", + "clickability_decayed": 0.0102, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:50Z" + }, + { + "title": "AMD Ryzen AI Halo \u2013 $4k AI Dev Kit", + "url": "https://www.lttlabs.com/articles/2026/07/06/amd-ryzen-ai-halo", + "source": "hackernews", + "clickability_decayed": 0.0101, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:50Z" + }, + { + "title": "Beijing is looking at curbing overseas access to China's top AI models", + "url": "https://www.reuters.com/world/beijing-is-looking-curbing-overseas-access-chinas-top-ai-models-sources-say-2026-07-07/", + "source": "hackernews", + "clickability_decayed": 0.01, + "age_hours": 79.9, + "first_seen": "2026-07-09T05:24:32Z" + }, + { + "title": "Ternlight \u2013 7 MB embedding model that runs in browser (WASM)", + "url": "https://ternlight-demo.vercel.app/", + "source": "hackernews", + "clickability_decayed": 0.0092, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:50Z" + }, + { + "title": "Small AI Models Gain Traction In places with unreliable networks", + "url": "https://spectrum.ieee.org/small-language-models-ai-pharmaceuticals", + "source": "hackernews", + "clickability_decayed": 0.0089, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:50Z" + }, + { + "title": "An agent in 100 lines of Lisp", + "url": "https://thebeach.dev/posts/lisp-agent/", + "source": "hackernews", + "clickability_decayed": 0.0088, + "age_hours": 79.9, + "first_seen": "2026-07-09T05:24:32Z" + }, + { + "title": "OfficeCLI: Office suite for AI agents to read and edit Microsoft Office files", + "url": "https://github.com/iOfficeAI/OfficeCLI", + "source": "hackernews", + "clickability_decayed": 0.0084, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:50Z" + }, + { + "title": "Anthropic's Method to Losing Goodwill in a Few Easy Steps", + "url": "https://raheeljunaid.com/blog/anthropics-method-to-losing-goodwill-in-a-few-easy-steps/", + "source": "hackernews", + "clickability_decayed": 0.0083, + "age_hours": 96.2, + "first_seen": "2026-07-08T13:02:43Z" + }, + { + "title": "Big Tech Has Suddenly Flipped on the AI Jobs Wipeout Scenario", + "url": "https://www.wsj.com/tech/ai/ai-workers-tech-ceos-job-losses-afc71e15", + "source": "hackernews", + "clickability_decayed": 0.0077, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:50Z" + }, + { + "title": "Pruning RAG context down to what the answer actually needs", + "url": "https://www.kapa.ai/blog/how-we-prune-rag-context", + "source": "hackernews", + "clickability_decayed": 0.0076, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:50Z" + }, + { + "title": "AI: The ROI Runway Could Be Long Outside the Tech Sector", + "url": "https://www.apollo.com/wealth/insights-news/insights/daily-spark/ai-the-roi-runway-could-be-long-outside-the-tech-sector", + "source": "hackernews", + "clickability_decayed": 0.0072, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:50Z" + }, + { + "title": "Google Chrome Installed a 4GB AI Model on Your PC", + "url": "https://oztalking.com/en/issues/hidden-4gb-ai-model", + "source": "hackernews", + "clickability_decayed": 0.0071, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:50Z" + }, + { + "title": "Regression to the Mean: on LLMs and the quiet death of the new", + "url": "https://rruxandra.github.io/regression-to-the-mean.html", + "source": "hackernews", + "clickability_decayed": 0.0066, + "age_hours": 96.2, + "first_seen": "2026-07-08T13:02:43Z" + }, + { + "title": "baoyu-design: Run Claude Design locally as an Agent Skill \u2014 Cursor, Claude Code & more. Produce polished UI mockup", + "url": "https://github.com/JimLiu/baoyu-design", + "source": "github", + "clickability_decayed": 0.0065, + "age_hours": 103.4, + "first_seen": "2026-07-08T05:51:46Z" + }, + { + "title": "The AI Marketing Backlash: Why 'AI-First' Brands Are Starting to Fall Flat", + "url": "https://www.breef.com/breefingroom/articles/the-ai-marketing-backlash-why-ai-first-brands-are-starting-to-fall-flat", + "source": "hackernews", + "clickability_decayed": 0.0062, + "age_hours": 96.2, + "first_seen": "2026-07-08T13:02:43Z" + }, + { + "title": "dox: Self-documenting AGENTS.md", + "url": "https://github.com/agent0ai/dox", + "source": "github", + "clickability_decayed": 0.0059, + "age_hours": 103.4, + "first_seen": "2026-07-08T05:51:46Z" + }, + { + "title": "superlog: Open-source observability tool that uses AI agents to self-heal your software", + "url": "https://github.com/superloglabs/superlog", + "source": "github", + "clickability_decayed": 0.0057, + "age_hours": 103.4, + "first_seen": "2026-07-08T05:51:46Z" + }, + { + "title": "guard-skills: Guard skills for coding agents, quality gates that catch AI-generated failure modes in code, tests, ", + "url": "https://github.com/amElnagdy/guard-skills", + "source": "github", + "clickability_decayed": 0.0057, + "age_hours": 103.4, + "first_seen": "2026-07-08T05:51:46Z" + }, + { + "title": "renwei-writing: \u4eba\u5473\u513f\u5199\u4f5c \u00b7 An AI agent skill: edit people's words without erasing the person behind them", + "url": "https://github.com/orange2ai/renwei-writing", + "source": "github", + "clickability_decayed": 0.0056, + "age_hours": 103.4, + "first_seen": "2026-07-08T05:51:46Z" + }, + { + "title": "skillspec: SkillSpec makes agent skills followable, testable, and provable with Doctor risk reports, guided imp", + "url": "https://github.com/modiqo/skillspec", + "source": "github", + "clickability_decayed": 0.0056, + "age_hours": 103.4, + "first_seen": "2026-07-08T05:51:46Z" + }, + { + "title": "fanbox: vibe coding \u7684\u9a7e\u9a76\u8231\uff1a\u5de6\u8fb9\u6587\u4ef6\uff0c\u53f3\u8fb9/\u4e0b\u8fb9\u7ec8\u7aef\uff0c\u4e2d\u95f4\u770b\u6e05\u6bcf\u4e00\u6b21\u6539\u52a8\u3002 / The cockpit for vibe coding: browse files on the left, co", + "url": "https://github.com/alchaincyf/fanbox", + "source": "github", + "clickability_decayed": 0.0056, + "age_hours": 103.4, + "first_seen": "2026-07-08T05:51:46Z" + }, + { + "title": "threejs-game-skills: Agent skills for building playable, polished Three.js browser games with gameplay, AAA-style graphic", + "url": "https://github.com/majidmanzarpour/threejs-game-skills", + "source": "github", + "clickability_decayed": 0.0055, + "age_hours": 103.4, + "first_seen": "2026-07-08T05:51:46Z" + }, + { + "title": "cliare: CLI agent-readiness measurement, command-shape inference, and CI scorecards", + "url": "https://github.com/modiqo/cliare", + "source": "github", + "clickability_decayed": 0.0054, + "age_hours": 103.4, + "first_seen": "2026-07-08T05:51:46Z" + }, + { + "title": "When AI Costs More Than the Engineer", + "url": "https://tomtunguz.com/ai-spend-breakeven-2029/", + "source": "hackernews", + "clickability_decayed": 0.0054, + "age_hours": 103.4, + "first_seen": "2026-07-08T05:53:45Z" + }, + { + "title": "I tested freshly merged DFlash in llama.cpp on Qwen 3.6 27B Local AI win. 4.44x faster at 36K context. Here are my findings RTX 6000 PRO.", + "url": "https://www.reddit.com/r/LocalLLaMA/comments/1uq0h4o/i_tested_freshly_merged_dflash_in_llamacpp_on/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 103.4, + "first_seen": "2026-07-08T05:52:09Z" + }, + { + "title": "Literature Review: LLM Inference at the Edge: Mobile, NPU, and GPU Performance Efficiency Trade-offs Under Sustained Load | Bnechmarking LLMs on Phones [R]", + "url": "https://www.reddit.com/r/LocalLLaMA/comments/1uqmbv7/literature_review_llm_inference_at_the_edge/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 96.2, + "first_seen": "2026-07-08T13:01:07Z" + }, + { + "title": "A system-level approach to prompt injection: separating instruction and data channels in LLM agents [P]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1ukgwk1/a_systemlevel_approach_to_prompt_injection/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 96.2, + "first_seen": "2026-07-08T13:01:07Z" + }, + { + "title": "DeepSeek V4 Flash with DSpark via SGLang", + "url": "https://www.reddit.com/r/LocalLLaMA/comments/1uqpers/deepseek_v4_flash_with_dspark_via_sglang/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 96.2, + "first_seen": "2026-07-08T13:01:07Z" + }, + { + "title": "Savi\u2019s app aims to protect consumers from realistic AI scams like kidnappers demanding ransom", + "url": "https://techcrunch.com/2026/07/07/savis-app-aims-to-protect-consumers-from-realistic-ai-scams-like-kidnappers-demanding-ransom/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.6, + "first_seen": "2026-07-08T15:39:50Z" + }, + { + "title": "ELSA3D: Elastic Semantic Anchoring for Unified 3D Understanding and Generation", + "url": "https://arxiv.org/abs/2607.06565v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "Graph Convolutional Attention: A Spectral Perspective on Graph Denoising and Diffusion", + "url": "https://arxiv.org/abs/2607.06546v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "Rethinking Indic AI from a Lens of Cultural Heritage Preservation", + "url": "https://arxiv.org/abs/2607.06544v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "On the feasibility of dependency parsing of non-human sequences without a gold standard. Is evaluation possible in other species?", + "url": "https://arxiv.org/abs/2607.06542v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "Hierarchical Acoustic-Semantic Modeling: Modality Separation and Semantic Coherence for Full-Duplex SLMs", + "url": "https://arxiv.org/abs/2607.06540v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "GraphBU: MILP Instance Generation with Graph-Native Block Units", + "url": "https://arxiv.org/abs/2607.06532v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "The Large Cancer Assistant (LCA): A Model-Agnostic Orchestration Framework for Scalable Clinical Decision Support in Oncology", + "url": "https://arxiv.org/abs/2607.06531v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "Life Style Levels: Neighborhood Delineation using Geospatial Data", + "url": "https://arxiv.org/abs/2607.06529v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "RSF-GLLM: Bridging the Semantic Gap in Multi-Hop Knowledge Graph QA via Recurrent Soft-Flow and Decoupled LLM Generation", + "url": "https://arxiv.org/abs/2607.06527v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "DepthWeave-KV: Token-Adaptive Cross-Layer Residual Factorization for Long-Context KV Cache Compression", + "url": "https://arxiv.org/abs/2607.06523v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "Bridging Physical Reasoning and Task Generalization via Visual Action Outcome Reasoning Alignment", + "url": "https://arxiv.org/abs/2607.06522v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "FreqDepthKV: Frequency-Guided Depth Sharing for Robust KV Cache Compression in Long-Context LLM Inference", + "url": "https://arxiv.org/abs/2607.06519v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "FootsiesGym: A Fighting Game Benchmark for Two-Player Zero-Sum Imperfect-Information Games", + "url": "https://arxiv.org/abs/2607.06514v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "DynaKRAG: A Unified Framework for Learnable Evidence Control in Multi-Hop Retrieval-Augmented Generation", + "url": "https://arxiv.org/abs/2607.06507v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "Industry Classification of GitHub Repositories Using the North American Industry Classification System", + "url": "https://arxiv.org/abs/2607.06505v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "RMISC: A Large-scale Real-world Multivariate Corpus for Time Series Foundation Models", + "url": "https://arxiv.org/abs/2607.06504v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "Doomed from the Start: Early Abort of LLM Agent Episodes via a Recall-Controlled Probe Cascade", + "url": "https://arxiv.org/abs/2607.06503v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "EntroPath: Maximum Entropy Path Ensemble Embedding for Manifold Learning", + "url": "https://arxiv.org/abs/2607.06497v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "Pitwall: Faithful Natural-Language Race-Strategy Briefings from a Calibrated Real-Time Monte Carlo Engine", + "url": "https://arxiv.org/abs/2607.06495v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "Multi-Agent Deep Reinforcement Learning for Multi Objective Battery Management in Dairy Farms", + "url": "https://arxiv.org/abs/2607.06489v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:44:25Z" + }, + { + "title": "These AI startups are growing revenue at faster and faster rates", + "url": "https://techcrunch.com/2026/07/08/these-ai-startups-are-growing-revenue-at-faster-and-faster-rates/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Google Deepmind adds background execution and MCP support to Gemini API managed agents", + "url": "https://the-decoder.com/google-deepmind-adds-background-execution-and-mcp-support-to-gemini-api-managed-agents/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Chinese AI startup MiniMax plans to open-source a 2.7 trillion parameter model later this year", + "url": "https://the-decoder.com/chinese-ai-startup-minimax-plans-to-open-source-a-2-7-trillion-parameter-model-later-this-year/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Former OpenAI exec Kevin Weil is now on the board of Stoke Space", + "url": "https://techcrunch.com/2026/07/08/former-openai-exec-kevin-weil-is-now-on-the-board-of-stoke-space/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Meta tests always-on AI glasses that capture your entire day", + "url": "https://the-decoder.com/meta-tests-always-on-ai-glasses-that-capture-your-entire-day/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Muse Image is technically impressive, but Meta's use of Instagram photos raises questions", + "url": "https://the-decoder.com/muse-image-is-technically-impressive-but-metas-use-of-instagram-photos-raises-questions/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Hot French startup ZML releases free product to speed inference across lots of AI chips", + "url": "https://techcrunch.com/2026/07/08/hot-french-startup-zml-releases-free-product-to-speed-inference-across-lots-of-ai-chips/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "OpenAI's GPT-5.6 launches Thursday after a delay forced by the U.S. government", + "url": "https://the-decoder.com/openais-gpt-5-6-launches-thursday-after-a-delay-forced-by-the-u-s-government/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "AI chip maker SambaNova raises $1B at $11B valuation, 5 months after last mega round", + "url": "https://techcrunch.com/2026/07/08/sambanova-draws-1b-at-11b-valuation-in-series-f-first-close/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Meta just launched a new AI generator, Muse Image, and users are already pushing back over use of their photos", + "url": "https://techcrunch.com/2026/07/07/meta-rolls-out-muse-a-new-ai-image-generator/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Microsoft joins AI cost-cutting trend by relying more on its own models", + "url": "https://techcrunch.com/2026/07/07/microsoft-joins-ai-cost-cutting-trend-by-relying-more-on-its-own-models/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Why the rise of open source AI isn\u2019t hurting Anthropic \u2026 yet", + "url": "https://techcrunch.com/2026/07/07/why-the-rise-of-open-source-ai-isnt-hurting-anthropic-yet/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Discord admits AI moderation bug wrongfully banned users over harmless images", + "url": "https://techcrunch.com/2026/07/07/discord-admits-ai-moderation-bug-wrongfully-banned-users-over-harmless-images/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Anthropic's Claude Cowork AI agent is now available on mobile and web", + "url": "https://the-decoder.com/anthropics-claude-cowork-ai-agent-is-now-available-on-mobile-and-web/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Copilot goes cheap as Microsoft phases out OpenAI and Anthropic models to cut costs", + "url": "https://the-decoder.com/copilot-goes-cheap-as-microsoft-phases-out-openai-and-anthropic-models-to-cut-costs/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "China eyes export curbs on its top AI models, and Europe is caught in the middle", + "url": "https://the-decoder.com/china-eyes-export-curbs-on-its-top-ai-models-and-europe-is-caught-in-the-middle/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Cohere Transcribe Arabic is an open-source model built for Arabic's toughest transcription problems", + "url": "https://the-decoder.com/cohere-transcribe-arabic-is-an-open-source-model-built-for-arabics-toughest-transcription-problems/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Claude Cowork expands to mobile and web", + "url": "https://techcrunch.com/2026/07/07/the-coding-agent-wars-are-spilling-into-the-rest-of-the-office-claude-cowork/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Insilico Medicine advances AI drug for IPF to Phase III trials", + "url": "https://www.artificialintelligence-news.com/news/insilico-medicine-advances-ai-drug-for-ipf-to-phase-iii-trials/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Claude's hidden inner monologue is now readable thanks to Anthropic's new Jacobian Lens", + "url": "https://the-decoder.com/claudes-hidden-inner-monologue-is-now-readable-thanks-to-anthropics-new-jacobian-lens/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 93.5, + "first_seen": "2026-07-08T15:46:28Z" + }, + { + "title": "Accurate, Interdisciplinary and Transparent Structure-property Understanding with Deep Native Structural Reasoning", + "url": "https://arxiv.org/abs/2607.07708v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "Co-LMLM: Continuous-Query Limited Memory Language Models", + "url": "https://arxiv.org/abs/2607.07707v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "The Key to Going Linear: Analysis-Driven Transformer Linearization", + "url": "https://arxiv.org/abs/2607.07706v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "From Noisy Traces to Root Causes: Structural Trajectory Analysis and Causal Extraction for Agent Optimization", + "url": "https://arxiv.org/abs/2607.07702v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "Breaking Database Lock-in: Agentic Regeneration of High Performance Storage Readers for Database Bypass", + "url": "https://arxiv.org/abs/2607.07696v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "Institutional Red-Teaming: Deployment Rules, Not Just Models, Causally Shape Multi-Agent AI Safety", + "url": "https://arxiv.org/abs/2607.07695v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "Selective Timestep Weighting and Advantage-Based Replay for Sample-Efficient Diffusion RLHF", + "url": "https://arxiv.org/abs/2607.07693v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "Agon: Competitive Cross-Model RL with Implicit Rival Grading of Reasoning", + "url": "https://arxiv.org/abs/2607.07690v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "ECGLight: Compute-Light Framework For Paper ECG Digitization and Myocardial Infarction Screening", + "url": "https://arxiv.org/abs/2607.07683v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "Neural Operator-enabled Topology-informed Evolutionary Strategy for PDE-Constrained Optimization", + "url": "https://arxiv.org/abs/2607.07682v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "Any-Dimensional Learning by Sampling", + "url": "https://arxiv.org/abs/2607.07680v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "How Data Shapes RoPE Frequency Usage: From Positional Scale Matching to Length Generalization", + "url": "https://arxiv.org/abs/2607.07678v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "SkillCenter: A Large-Scale Source-Grounded Skill Library for Autonomous AI Agents", + "url": "https://arxiv.org/abs/2607.07676v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "Max Out GRPO Signal: Adaptive Trace Prefix Control for Hard Reasoning Problems", + "url": "https://arxiv.org/abs/2607.07674v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "MedPMC: A Systematic Framework for Scaling High-Fidelity Medical Multimodal Data for Foundation Models", + "url": "https://arxiv.org/abs/2607.07673v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "PeTeR: Post-Training Robustification of Probabilistic Circuits", + "url": "https://arxiv.org/abs/2607.07671v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "Does Bielik Know What It Doesn't Know? Activation Dispersion Separates Entity Familiarity from Factual Reliability Across Model Scale", + "url": "https://arxiv.org/abs/2607.07670v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "DiaLLM: An Investigation into the Robustness-Generation Gap in English Dialect Adaptation", + "url": "https://arxiv.org/abs/2607.07669v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "Guidance Breaks the Fitted Operator: A Terminal-Fitted Repair for Classifier-Free Guidance", + "url": "https://arxiv.org/abs/2607.07665v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "Recursive Self-Improvement in AI: From Bounded Self-Refinement to Autonomous Research Loops", + "url": "https://arxiv.org/abs/2607.07663v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:48Z" + }, + { + "title": "Making Optimization Work When Labels Are Scarce [R]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1ul3ohk/making_optimization_work_when_labels_are_scarce_r/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:58Z" + }, + { + "title": "If DeepMind or Anthropic is doing your exact research topic, do you still continue? [D]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1unt64q/if_deepmind_or_anthropic_is_doing_your_exact/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:58Z" + }, + { + "title": "Edge AI ASL Recognition on Raspberry Pi 5 \u2013 Looking for Feedback on My System Design [P]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1up3kby/edge_ai_asl_recognition_on_raspberry_pi_5_looking/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 72.2, + "first_seen": "2026-07-09T13:00:58Z" + }, + { + "title": "I built IMGNet \u2013 a face verification model that identifies people using sign patterns, not cosine similarity [R]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1urxvxh/i_built_imgnet_a_face_verification_model_that/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "Ph.D. thesis on Differentiable Ray Tracing for Radio Propagation Modeling [R]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1upvkp5/phd_thesis_on_differentiable_ray_tracing_for/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "Proposal: Use semantic compression as input diffusion to read sessions larger than the context window [R]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1un63hv/proposal_use_semantic_compression_as_input/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "Talos-XII: hand-written autograd + small RL/MLP stack in Rust, applied to gacha probability modeling (no tch-rs/ndarray/PyTorch) \u2014 looking for benchmark help on ARM/AVX-512/GPU [P]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1urvxgb/talosxii_handwritten_autograd_small_rlmlp_stack/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "CPU TTS benchmark with UTMOS MOS scoring: Kokoro, Supertonic, Inflect-Nano, and Kyutai's new Pocket TTS [P]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1up0azr/cpu_tts_benchmark_with_utmos_mos_scoring_kokoro/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "Competence Gate: gating tool-use on a small model's internal confidence signal instead of its verbalised one \u2014 Qwen3.5-4B, open weights [P]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1unw5un/competence_gate_gating_tooluse_on_a_small_models/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "Hyperparameter tuning approach question [R]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1usa46w/hyperparameter_tuning_approach_question_r/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "What if a model could only learn what trusted LoRA adapters can express? [R]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1uq68li/what_if_a_model_could_only_learn_what_trusted/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "Agentic safety triggers aren't textual safety triggers \u2014 MCP attacks that beat SOTA guardrails more than half the time (code + dataset) [R]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1ur1fnz/agentic_safety_triggers_arent_textual_safety/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "Best models for generating red-team attacks? Also looking for public datasets [R]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1uoejrl/best_models_for_generating_redteam_attacks_also/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "Does anyone have a name for that subtle \"Sameness\" creeping into model outputs lately? [R]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1uon503/does_anyone_have_a_name_for_that_subtle_sameness/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "TorchJD: Training with multiple losses in PyTorch [P]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1upzxk2/torchjd_training_with_multiple_losses_in_pytorch_p/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "TRACE: open-source hierarchical memory for LLM agents, 82.5% on MemoryAgentBench\u2019s EventQA using gpt-oss-20B [P]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1uoz5jo/trace_opensource_hierarchical_memory_for_llm/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "I built an open, from-scratch MT pipeline + parallel corpus for Tunisian Darija (Arabizi) early baseline, and I'm growing it into a curated community corpus [P]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1uo92vz/i_built_an_open_fromscratch_mt_pipeline_parallel/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "H64LM: A 249M-parameter Mixture-of-Experts Transformer built from scratch in PyTorch [P]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1umqfd2/h64lm_a_249mparameter_mixtureofexperts/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "Improving machine-translated novels via style transfer \u2014 looking for advice on the faithfulness/fluency tradeoff [P]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1ulrdw9/improving_machinetranslated_novels_via_style/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "DINOv2 way worse than SigLIP in k-NN. Is this expected? [R]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1uqtamz/dinov2_way_worse_than_siglip_in_knn_is_this/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "MIRA: Multiplayer Interactive World Models trained on Rocket League [R]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1upofuw/mira_multiplayer_interactive_world_models_trained/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "ICML Position Track: Want Better ML Reviews? Stop Asking Nicely and Start Incentivizing with a Credit System [D]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1upjftu/icml_position_track_want_better_ml_reviews_stop/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "Machine learning industry job requirements used to be myopic, but now it feels impossible. Anyone else seeing this? [D]", + "url": "https://www.reddit.com/r/MachineLearning/comments/1uov7or/machine_learning_industry_job_requirements_used/", + "source": "reddit", + "clickability_decayed": 0.0, + "age_hours": 48.2, + "first_seen": "2026-07-10T13:00:58Z" + }, + { + "title": "UniClawBench: A Universal Benchmark for Proactive Agents on Real-World Tasks", + "url": "https://arxiv.org/abs/2607.08768v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "OpenCoF: Learning to Reason Through Video Generation", + "url": "https://arxiv.org/abs/2607.08763v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "Ideas Have Genomes: Benchmarking Scientific Lineage Reasoning and Lineage-Grounded Idea Generation", + "url": "https://arxiv.org/abs/2607.08758v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "Score Accuracy Along the Forward Diffusion Does Not Certify Numerical Stability in Diffusion Sampling", + "url": "https://arxiv.org/abs/2607.08757v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "MulTTiPop: A Multitrack Transcription Dataset for Pop Music", + "url": "https://arxiv.org/abs/2607.08756v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "SLORR: Simple and Efficient In-Training Low-Rank Regularization", + "url": "https://arxiv.org/abs/2607.08754v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "Using AI-based Learning Assistants in Higher Education: A Large-Scale Descriptive Analysis", + "url": "https://arxiv.org/abs/2607.08748v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "Dimensionality Reduction Meets Network Science: Sensemaking on UMAP's kNN Graph", + "url": "https://arxiv.org/abs/2607.08746v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "AUTOPILOT VQA: Benchmarking Vision-Language Models for Incident-Centric Dashcam Understanding", + "url": "https://arxiv.org/abs/2607.08745v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "ARDY: Autoregressive Diffusion with Hybrid Representation for Interactive Human Motion Generation", + "url": "https://arxiv.org/abs/2607.08741v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "Workflow as Knowledge: Semantic Persistence for LLM-Mediated Workflows", + "url": "https://arxiv.org/abs/2607.08740v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "The Illusion of Equivalency: Statistical Characterization of Quantization Effects in LLMs", + "url": "https://arxiv.org/abs/2607.08734v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "Super Weights in LLMs and the Failure of Selective Training", + "url": "https://arxiv.org/abs/2607.08733v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "Validity of LLMs as data annotators: AMALIA on authority", + "url": "https://arxiv.org/abs/2607.08731v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "Pose-to-Biomechanics: Bridging 3D Human Pose Estimation and Biomechanical Attribute Prediction", + "url": "https://arxiv.org/abs/2607.08725v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "Latent Memory Palace: Reasoning for Control as Autoregressive Variational Inference", + "url": "https://arxiv.org/abs/2607.08724v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "Deep Learning for Joint Narrowband Interference Cancellation and Soft Demodulation in OFDM Systems", + "url": "https://arxiv.org/abs/2607.08717v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "Remember When It Matters: Proactive Memory Agent for Long-Horizon Agents", + "url": "https://arxiv.org/abs/2607.08716v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "LTM: Large-scale Terrain Model for Wildfire-prone Landscapes", + "url": "https://arxiv.org/abs/2607.08711v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "MPFlow: Learning Budgeted Max-Flow Optimization on the Lightning Network with Deep Graph Reinforcement Learning", + "url": "https://arxiv.org/abs/2607.08703v1", + "source": "arxiv", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:00:55Z" + }, + { + "title": "GLM-5.2 (text-generation) by zai-org", + "url": "https://huggingface.co/zai-org/GLM-5.2", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 629.6, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "DeepSeek-V4-Pro (text-generation) by deepseek-ai", + "url": "https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 1951.2, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "DeepSeek-R1 (text-generation) by deepseek-ai", + "url": "https://huggingface.co/deepseek-ai/DeepSeek-R1", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 12921.5, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "Llama-3.1-8B-Instruct (text-generation) by meta-llama", + "url": "https://huggingface.co/meta-llama/Llama-3.1-8B-Instruct", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 17380.3, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "FLUX.1-dev (text-to-image) by black-forest-labs", + "url": "https://huggingface.co/black-forest-labs/FLUX.1-dev", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 17056.0, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "gemma-4-12B-coder-fable5-composer2.5-v1-GGUF (text-generation) by yuxinlu1", + "url": "https://huggingface.co/yuxinlu1/gemma-4-12B-coder-fable5-composer2.5-v1-GGUF", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 773.9, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "Meta-Llama-3-8B (text-generation) by meta-llama", + "url": "https://huggingface.co/meta-llama/Meta-Llama-3-8B", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 19587.7, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "Llama-2-7b-chat-hf (text-generation) by meta-llama", + "url": "https://huggingface.co/meta-llama/Llama-2-7b-chat-hf", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 26276.5, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "Meta-Llama-3-8B-Instruct (text-generation) by meta-llama", + "url": "https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 19587.7, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "bloom (text-generation) by bigscience", + "url": "https://huggingface.co/bigscience/bloom", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 36361.4, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "gpt-oss-120b (text-generation) by openai", + "url": "https://huggingface.co/openai/gpt-oss-120b", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 8198.7, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "gpt-oss-20b (text-generation) by openai", + "url": "https://huggingface.co/openai/gpt-oss-20b", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 8198.7, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "phi-2 (text-generation) by microsoft", + "url": "https://huggingface.co/microsoft/phi-2", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 22599.9, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "stable-diffusion-xl-base-1.0 (text-to-image) by stabilityai", + "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 25991.8, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "Mistral-7B-Instruct-v0.2 (text-generation) by mistralai", + "url": "https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 22655.9, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "Mistral-7B-v0.1 (text-generation) by mistralai", + "url": "https://huggingface.co/mistralai/Mistral-7B-v0.1", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 24624.2, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "DeepSeek-V3 (text-generation) by deepseek-ai", + "url": "https://huggingface.co/deepseek-ai/DeepSeek-V3", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 13536.4, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "stable-diffusion-v1-4 (text-to-image) by CompVis", + "url": "https://huggingface.co/CompVis/stable-diffusion-v1-4", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 34127.8, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "Llama-3.3-70B-Instruct (text-generation) by meta-llama", + "url": "https://huggingface.co/meta-llama/Llama-3.3-70B-Instruct", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 14229.1, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "gemma-7b (text-generation) by google", + "url": "https://huggingface.co/google/gemma-7b", + "source": "huggingface", + "clickability_decayed": 0.0, + "age_hours": 21230.6, + "first_seen": "2026-07-12T13:01:36Z" + }, + { + "title": "S&P Global sees OpenAI as a \"key credit risk\" for Oracle and cuts its credit rating", + "url": "https://the-decoder.com/sp-global-sees-openai-as-a-key-credit-risk-for-oracle-and-cuts-its-credit-rating/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "Meta kills Muse Image feature that let anyone generate AI photos of Instagram users without consent", + "url": "https://the-decoder.com/meta-kills-muse-image-feature-that-let-anyone-generate-ai-photos-of-instagram-users-without-consent/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "OpenAI CEO Altman is now \"pretty sure\" AI is net job-creating, which is quite the pivot from predicting mass layoffs", + "url": "https://the-decoder.com/openai-ceo-altman-is-now-pretty-sure-ai-is-net-job-creating-which-is-quite-the-pivot-from-predicting-mass-layoffs/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "Claude Cowork's biggest use case is the mundane office work nobody wants to own, Anthropic says", + "url": "https://the-decoder.com/claude-coworks-biggest-use-case-is-the-mundane-office-work-nobody-wants-to-own-anthropic-says/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "AI agents win at Slay the Spire 2 after researchers replace growing chat logs with structured memory", + "url": "https://the-decoder.com/ai-agents-win-at-slay-the-spire-2-after-researchers-replace-growing-chat-logs-with-structured-memory/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "Grades dropped from 96 to 48 percent when a Brown professor made students take the exam without AI", + "url": "https://the-decoder.com/grades-dropped-from-96-to-48-percent-when-a-brown-professor-made-students-take-the-exam-without-ai/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "OpenAI's GPT-5.6 Sol Ultra reportedly solves a 50-year-old math problem in under an hour", + "url": "https://the-decoder.com/openais-gpt-5-6-sol-ultra-reportedly-solves-a-50-year-old-math-problem-in-under-an-hour/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "OpenAI bets on families as ChatGPT goes deeper into households", + "url": "https://techcrunch.com/2026/07/11/openai-bets-on-families-as-chatgpt-goes-deeper-into-households/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "Terrorist groups are using every major AI chatbot for attack planning and weapons development", + "url": "https://the-decoder.com/terrorist-groups-are-using-every-major-ai-chatbot-for-attack-planning-and-weapons-development/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "China's Orca world model matches specialized robotics systems without ever seeing a single action label", + "url": "https://the-decoder.com/chinas-orca-world-model-matches-specialized-robotics-systems-without-ever-seeing-a-single-action-label/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "Meta's Muse Spark 1.1 outperforms GLM-5.2 in coding and costs slightly less", + "url": "https://the-decoder.com/metas-muse-spark-1-1-outperforms-glm-5-2-in-coding-and-costs-slightly-less/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "Meta removes controversial AI feature on Instagram after backlash", + "url": "https://techcrunch.com/2026/07/10/meta-removes-controversial-ai-feature-on-instagram-after-backlash/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "Apple sues OpenAI over alleged trade secret theft", + "url": "https://techcrunch.com/2026/07/10/apple-sues-openai-over-alleged-trade-secret-theft/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "Open source AI matters more than ever, according to Hugging Face\u2019s Clem Delangue", + "url": "https://techcrunch.com/podcast/open-source-ai-matters-more-than-ever-according-to-hugging-faces-clem-delangue/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "SK Hynix raises $26.5B in the biggest foreign IPO in US history, is urged to build new US fabs", + "url": "https://techcrunch.com/2026/07/10/sk-hynix-raises-26-5b-in-the-biggest-foreign-ipo-in-us-history-is-urged-to-build-new-us-fabs/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "Hugging Face\u2019s CEO on why companies are done renting their AI", + "url": "https://techcrunch.com/2026/07/10/hugging-faces-ceo-on-why-companies-are-done-renting-their-ai/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "How to shrink the token budget without shrinking the team", + "url": "https://www.artificialintelligence-news.com/news/shrink-token-budget-not-team/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "OpenAI says GPT 5.6 is the \u2018preferred model\u2019 for Microsoft Copilot 365 amid breakup chatter", + "url": "https://techcrunch.com/2026/07/09/openai-says-gpt-5-6-is-the-preferred-model-for-microsoft-copilot-amid-breakup-chatter/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "OpenAI launches its new family of models with GPT-5.6", + "url": "https://techcrunch.com/2026/07/09/openai-launches-its-new-family-of-models-with-gpt-5-6/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + }, + { + "title": "An AI agent startup just let its agent run its $100M fundraise", + "url": "https://techcrunch.com/2026/07/09/an-ai-agent-startup-just-let-its-agent-run-its-100-million-fundraise/", + "source": "rss", + "clickability_decayed": 0.0, + "age_hours": 0.2, + "first_seen": "2026-07-12T13:01:38Z" + } +] \ No newline at end of file diff --git a/site/index.html b/site/index.html new file mode 100644 index 0000000..68561b5 --- /dev/null +++ b/site/index.html @@ -0,0 +1,160 @@ + + + + + +AI NEWS DAILY + + + + + + + +

AI NEWS DAILY

+ + +

Hardware

+
+
Hands-On with the AMD Ryzen AI Halo
+
Ultra budget 20GB vram with 448GB/s for $100 bucks.
+
Benchmark - 4x 5060 Ti (64GB VRAM) (P2P) - Qwen3.6 27B (INT8 /w bf16 kv…
+
**Your $80 Tesla P100 has been doing silently noisy math in llama.cpp…
+
+
+
Breaking | Apple sues OpenAI, accuses ex-employees of stealing trade secrets
+
Breaking | GPT-5.6 Sol Ultra produces proof of the Cycle Double Cover Conjecture
+
Old and new apps, via modern coding agents by Terry Tao
+
Mesh LLM: distributed AI computing on iroh
+
Ghost Font: A font that humans can read but AI cannot
+
Stop Telling Me to Ask an LLM
+
How the terrorist group Boko Haram uses frontier AI
+
AI Boosts Research Careers but Flattens Scientific Discovery
+
GPT-5.6, Grok 4.5, Claude, and Muse Spark build the same 4 apps
+
Reverse centaurs are the answer to the AI paradox (2025)
+
Who manages the agents?
+
Apple sues OpenAI, accusing it of stealing company secrets
+
Wealthy AI workers send San Francisco house prices soaring
+
AI Can't Recreate the Thrust Game (But It Can Help You Understand It)
+
Microsoft latest report shows 25% emissions raised due to AI data…
+
Meta pulls new AI image feature after days of backlash
+
Companies are scrambling to curtail soaring AI costs
+
Ask HN: How do you use Vim in the era of AI?
+
GPT-5.6
OpenAI released GPT-5.6, their latest model iteration with significant capability improvements across reasoning, coding, and multimodal tasks.
+
AI 2040: Plan A
AI Futures Project publishes 'Plan A' — a scenario for delaying superintelligence until 2040 through international cooperation, total research transparency, and mutually assured compute destruction.
+
AI-generated videos to maximally drive a target brain region
EPFL researchers developed AI-generated videos designed to maximally activate a target brain region, using fMRI data to optimize visual stimuli.
+
ChatGPT Work
OpenAI launched ChatGPT Work, an enterprise version of ChatGPT designed for professional workflows and organizational use.
+
AI content is everywhere on social media, especially LinkedIn
Pangram study finds AI-generated content is pervasive across social media, with LinkedIn as the worst offender.
+
Building a real-time AI tutor for 5-year-olds
Ello blog post details building a real-time AI tutor optimized for 5-year-old learners with 1000ms latency.
+
Ben Bernanke Joins Anthropic Oversight Trust
+
SimPolitics: America’s quest to solve politics with computers
+
Show HN: Reverse-engineering web apps into agent tools
+
How version control will evolve for the agent boom
+
Show HN: Reviving my 2001 college band with AI
+
The next era of AI is about infrastructure, not just models
+
I think I have LLM burnout
Developer reports chronic 'LLM burnout' from hours of daily interaction with AI assistants, describing a shift from writing code to designing, prompting, and reviewing AI-generated code.
+
SWE-1.7 Reach Near GPT 5.5 and Opus Intelligence
Cognition launched SWE-1.7, reaching frontier-level intelligence (near GPT-5.5 and Opus) at much lower cost, trained from a Kimi K2.7 base with extensive RL post-training.
+
Suspecting AI cheating, Ivy League prof ordered in-person final; scores…
Brown University professor suspected AI cheating on take-home exams; in-person final scores dropped 50%.
+
We made Grok 4.5, GPT-5.5, and Claude build the same apps
Side-by-side comparison of Grok 4.5, GPT-5.5, and Claude building identical applications.
+
What's slowing down the AI buildout
+
Benchmarking coding agents on Databricks' multi-million line codebase
Databricks benchmarks AI coding agents against their own multi-million-line production codebase.
+
AI changes the economics of software rewrites
+
Ask HN: Another "Hacker News" with less AI and more human-focused…
Hacker News discussion seeking alternative tech news platforms with less AI content and more human hacking.
+
I didn't give up - extGemma4-40_5B returned
+
Zer0Fit: I took Google's new TabFM & TimesFM ML foundation models and…
+
I benched quad 5060Tis for code generation with Qwen3.6-27B so you…
+
Performance comparison on full compute performance (Anima) and LLM…
+
OpenCoF: Learning to Reason Through Video Generation
+
Voodoo Quant beats Unsloth Dynamic 2.0 KLD by 95% in Qwen3.5 0.8B and 2B
+
If you use Open Code or other agenting programs you are leaving a lot…
+
I mapped Anthropic’s J-Space Hallucination signal across 7 datasets on…
+
Need help tuning cache in llama-server
+
First attempts at a CPU setup - MS-02 Intel 285hx, trying Qwen3…
+
LinkedIn is the undisputed king of long-form AI slop, according to a…
+
Claude Code now has a built-in browser that lets the AI read, click…
+
ARDY: Autoregressive Diffusion with Hybrid Representation for…
+
S&P Global sees OpenAI as a "key credit risk" for Oracle and cuts its…
+
Meta kills Muse Image feature that let anyone generate AI photos of…
+
OpenAI CEO Altman is now "pretty sure" AI is net job-creating, which is…
+
Interactive Jacobian-Lens visualizer and live steerer for GGUF models…
+
i would like to share my experience. working with huge LLMs and poor…
+
Working around Qwen3.6-27B's tool-call failures and looping
+
Kreuzberg (local document extraction) is being renamed to Xberg…
+
Qwenthropic
+
Claude Cowork's biggest use case is the mundane office work nobody…
+
AI agents win at Slay the Spire 2 after researchers replace growing…
+
Grades dropped from 96 to 48 percent when a Brown professor made…
+
GitLost: We Tricked GitHub's AI Agent into Leaking Private Repos
Noma Labs discovered a prompt injection vulnerability in GitHub's Agentic Workflows that lets attackers silently extract data from private repos via crafted public issues.
+
OpenAI's GPT-5.6 Sol Ultra reportedly solves a 50-year-old math problem…
+
OpenAI bets on families as ChatGPT goes deeper into households
+
UniClawBench: A Universal Benchmark for Proactive Agents on Real-World…
+
Terrorist groups are using every major AI chatbot for attack planning…
+
We charge $10k a week to delete AI-generated code
Slopfix charges $10,000/week to refactor AI-generated codebases that have become unmaintainable — analyzing for free, then cutting code bloat with a committed reduction target.
+
GPT-5.6 Sol, along with Terra and Luna, will launch publicly this…
OpenAI announces public launch of GPT-5.6 Sol alongside Terra and Luna, possibly satirical naming.
+
SLORR: Simple and Efficient In-Training Low-Rank Regularization
+
Remember When It Matters: Proactive Memory Agent for Long-Horizon Agents
+
Automating AI Away
+
Re: I'm Begging You to Leave Your AI Note-Taker at Home
+
AUTOPILOT VQA: Benchmarking Vision-Language Models for Incident-Centric…
+
AI Meets Cryptography 1: What AI Found in Cloudflare's Circl
+
Latent Memory Palace: Reasoning for Control as Autoregressive…
+
Workflow as Knowledge: Semantic Persistence for LLM-Mediated Workflows
+
The Illusion of Equivalency: Statistical Characterization of…
+
LTM: Large-scale Terrain Model for Wildfire-prone Landscapes
+
YC CEO says he ships 37K LoC AI code per day. A developer looked under…
Developer investigates YC CEO's claim of shipping 37K lines of AI-generated code daily and looks under the hood.
+
Ideas Have Genomes: Benchmarking Scientific Lineage Reasoning and…
+
Super Weights in LLMs and the Failure of Selective Training
+
Beijing is looking at curbing overseas access to China's top AI models
+
Validity of LLMs as data annotators: AMALIA on authority
+
Pose-to-Biomechanics: Bridging 3D Human Pose Estimation and…
+
An agent in 100 lines of Lisp
+
Deep Learning for Joint Narrowband Interference Cancellation and Soft…
+
GLM-5.2 (text-generation) by zai-org
GLM-5.2 by zai-org is a multilingual text-generation model with MoE-DSA architecture supporting English, Chinese, and Arabic.
+
DeepSeek-V4-Pro (text-generation) by deepseek-ai
DeepSeek-V4-Pro by deepseek-ai is a conversational text-generation model with 8-bit/FP8 quantization support.
+
DeepSeek-R1 (text-generation) by deepseek-ai
DeepSeek-R1 is a reasoning-focused text-generation model using the deepseek_v3 architecture with FP8 support.
+
Llama-3.1-8B-Instruct (text-generation) by meta-llama
Llama-3.1-8B-Instruct by Meta is an 8B-parameter instruction-tuned model supporting 8 languages.
+
FLUX.1-dev (text-to-image) by black-forest-labs
FLUX.1-dev by Black Forest Labs is a text-to-image generation model compatible with the diffusers library.
+
gemma-4-12B-coder-fable5-composer2.5-v1-GGUF (text-generation) by…
Gemma-4-12B-coder-fable5-composer2.5-v1-GGUF is a GGUF-quantized coding model fine-tuned from Google's Gemma-4-12B.
+
Meta-Llama-3-8B (text-generation) by meta-llama
Meta-Llama-3-8B is Meta's original 8B-parameter base language model from the Llama-3 family.
+
Llama-2-7b-chat-hf (text-generation) by meta-llama
Llama-2-7b-chat-hf is Meta's 7B-parameter chat-tuned model from the Llama-2 generation.
+
Meta-Llama-3-8B-Instruct (text-generation) by meta-llama
Meta-Llama-3-8B-Instruct is Meta's instruction-tuned 8B model from the Llama-3 family with Azure deployment support.
+
bloom (text-generation) by bigscience
BLOOM by BigScience is a 176B-parameter multilingual model supporting 46 languages across 13 families.
+
gpt-oss-120b (text-generation) by openai
gpt-oss-120b by OpenAI is a 120B-parameter open-source text-generation model with MXFP4 quantization.
+
gpt-oss-20b (text-generation) by openai
gpt-oss-20b by OpenAI is a 20B-parameter open-source text-generation model with MXFP4 quantization support.
+
phi-2 (text-generation) by microsoft
Phi-2 by Microsoft is a compact 2.7B-parameter model trained on synthetic 'textbook-quality' data.
+
stable-diffusion-xl-base-1.0 (text-to-image) by stabilityai
Stable Diffusion XL 1.0 by Stability AI is a high-resolution text-to-image model with 140K+ downloads.
+
Mistral-7B-Instruct-v0.2 (text-generation) by mistralai
Mistral-7B-Instruct-v0.2 by Mistral AI is a 7B-parameter instruction-tuned model with Apache-2.0 licensing.
+
Mistral-7B-v0.1 (text-generation) by mistralai
Mistral-7B-v0.1 by Mistral AI is the original 7B-parameter pretrained base model from Mistral.
+
DeepSeek-V3 (text-generation) by deepseek-ai
DeepSeek-V3 is a conversational text-generation model using the deepseek_v3 architecture with FP8 support.
+
stable-diffusion-v1-4 (text-to-image) by CompVis
Stable Diffusion v1.4 by CompVis is the original 410M-parameter text-to-image diffusion model.
+
Llama-3.3-70B-Instruct (text-generation) by meta-llama
Llama-3.3-70B-Instruct by Meta is a 70B-parameter instruction-tuned model supporting 8 languages.
+
gemma-7b (text-generation) by google
Gemma-7B by Google is a 7B-parameter open-weight model with extensive research paper references.
+
+
+

Research Papers (5 entries)

+
MPFlow: Learning Budgeted Max-Flow Optimization on the Lightning…
+
Score Accuracy Along the Forward Diffusion Does Not Certify Numerical…
+
MulTTiPop: A Multitrack Transcription Dataset for Pop Music
+
Using AI-based Learning Assistants in Higher Education: A Large-Scale…
+
Dimensionality Reduction Meets Network Science: Sensemaking on UMAP's…
+
+ + + + + diff --git a/write_summaries.py b/write_summaries.py new file mode 100644 index 0000000..8f3fb95 --- /dev/null +++ b/write_summaries.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python3 +""" +Write batch summaries back to oracle.db. + +Reads /tmp/athena_summarize_batch.json (array of entry dicts with 'summary' key added by sub-agent), +writes each summary JSON to entries.summary column. + +Usage: + python3 write_summaries.py /tmp/athena_summarize_batch_result.json +""" +import json +import sqlite3 +import sys + +def main(): + if len(sys.argv) < 2: + print("Usage: python3 write_summaries.py ", file=sys.stderr) + sys.exit(1) + + result_path = sys.argv[1] + try: + with open(result_path) as f: + results = json.load(f) + except (FileNotFoundError, json.JSONDecodeError) as e: + print(f"Error reading {result_path}: {e}", file=sys.stderr) + sys.exit(1) + + db_path = '/home/vpsadmin/oracle/oracle.db' + conn = sqlite3.connect(db_path) + cur = conn.cursor() + + written = 0 + skipped = 0 + errors = 0 + + for item in results: + eid = item.get('id') + summary = item.get('summary') + if not eid or not summary: + skipped += 1 + continue + + # Validate summary has expected keys + if not all(k in summary for k in ('one_liner', 'key_technical_point', 'potential_use_case', 'confidence')): + print(f" ⚠ ID {eid}: missing required keys, skipping", file=sys.stderr) + skipped += 1 + continue + + # Quality gate: reject low-confidence or generic summaries + ol = summary.get('one_liner', '') + if len(ol) < 20: + print(f" ⚠ ID {eid}: one_liner too short ({len(ol)} chars), skipping", file=sys.stderr) + skipped += 1 + continue + if any(generic in ol.lower() for generic in ('this article discusses', 'this paper presents', 'see full')): + print(f" ⚠ ID {eid}: generic one_liner, skipping", file=sys.stderr) + skipped += 1 + continue + + try: + cur.execute("UPDATE entries SET summary = ? WHERE id = ?", + (json.dumps(summary), eid)) + written += 1 + print(f" ✓ ID {eid}: {ol[:70]}...") + except Exception as e: + print(f" ✗ ID {eid}: {e}", file=sys.stderr) + errors += 1 + + conn.commit() + + # Verify + cur.execute("SELECT COUNT(*) FROM entries WHERE summary IS NOT NULL") + total = cur.fetchone()[0] + conn.close() + + print(f"\nResults: {written} written, {skipped} skipped, {errors} errors") + print(f"Total entries with summary: {total}") + return 0 if errors == 0 else 1 + +if __name__ == "__main__": + sys.exit(main())