Hacker Newsnew | past | comments | ask | show | jobs | submit | deviation's commentslogin

Here's all the telemetry:

1. Telemetry to dirac.run/v1/event — Sends machine ID, token usage, model info, events, errors (first 500 chars), and platform info. Hardcoded API key. Defaults to opt-in (setting is "unset", not "disabled").

2. Feature flags from dirac.run/v1/event/decide — Polls every 60 minutes with your machine ID. Always enabled, independent of telemetry opt-out. No way to disable without code changes.

3. Web tools route through api.dirac.run — Web search and web fetch tools proxy through Dirac's own API server, sending your request content plus system headers (platform, version, machine ID).

4. Model list fetches — Calls OpenRouter, HuggingFace, Groq, etc. for model listings even when using the Anthropic provider.


> Web tools route through api.dirac.run

This is something that needs to be deprecated entirely. The web fetch tool no longer is used or works. There is nothing even listening at api.dirac.run. This was the result of me stretching my capacity too thin and bulk renaming cline.bot to dirac.run

UPDATE (+1h): both Web search and web fetch tools are now nuked.


Nice work. I adopted this to use with my workplace's LLM proxy with a few small changes to the api/config files. Works flawlessly.

AST (Abstract Syntax Tree) is essentially a search algorithm to better help the agent do it's job.

@dang can fix this right up, I believe

Paste this bad-boy into your console and watch the real expert play:

(function () { "use strict";

  // ── CONFIG ──────────────────────────────────────────────────
  const AUTO_RESTART = true;
  const RESTART_DELAY = 800;   // ms before auto-restart after death
  const MUTE_SOUND = true;     // silence during autoplay
  const SIM_FRAMES = 350;      // max frames to simulate per check
  // ────────────────────────────────────────────────────────────

  let running = true;
  let totalGames = 0;
  let botBest = 0;
  let scores = [];

  if (MUTE_SOUND && typeof snd !== "undefined") snd = false;

  function wouldHitTarget() {
    if (st !== 1 || !bl || !bl.orb) return false;

    var targets = [];
    for (var i = cWI + 1; i < Math.min(wl.length, cWI + 3); i++) {
      if (wl[i] && !wl[i].caught) targets.push(wl[i]);
    }
    if (targets.length === 0) return false;

    var ta = bl.angle + bl.dir * Math.PI / 2;
    var nw = wl[cWI + 1];
    var spd;
    if (nw) {
      var ddx = nw.x - bl.x, ddy = nw.y - bl.y;
      spd = Math.max(4.5, Math.min(7.5, Math.sqrt(ddx * ddx + ddy * ddy) * 0.038));
    } else {
      spd = 5.5;
    }

    var x = bl.x, y = bl.y;
    var vx = Math.cos(ta) * spd;
    var vy = Math.sin(ta) * spd;

    for (var f = 0; f < SIM_FRAMES; f++) {
      vy += 0.06;
      vx *= 0.995;
      vy *= 0.995;
      x += vx;
      y += vy;

      for (var t = 0; t < targets.length; t++) {
        var dx = x - targets[t].x, dy = y - targets[t].y;
        if (Math.sqrt(dx * dx + dy * dy) < targets[t].radius + 20) {
          return true;
        }
      }

      if (y > 2500 || x < -400 || x > W + 400) return false;
    }
    return false;
  }

  function autoRestart() {
    if (st !== 2) return;
    var go = document.getElementById("game-over");
    var rp = document.getElementById("revive-popup");
    if (go) go.classList.add("hidden");
    if (rp) rp.classList.add("hidden");
    document.getElementById("pause-btn").style.display = "flex";
    document.getElementById("sound-btn").style.display = "flex";
    st = 1;
    init();
  }

  function tick() {
    if (!running) return;

    if (st === 0) {
      handleTap();
    } else if (st === 2 && AUTO_RESTART) {
      totalGames++;
      scores.push(sc);
      if (sc > botBest) botBest = sc;
      console.log(
        "Game #" + totalGames +
        " | Score: " + sc +
        " | Jumps: " + jmp +
        " | Combo peak: " + cc +
        " | Bot best: " + botBest
      );
      setTimeout(autoRestart, RESTART_DELAY);
      setTimeout(function () { requestAnimationFrame(tick); }, RESTART_DELAY + 50);
      return;
    } else if (st === 1 && bl && bl.orb) {
      if (wouldHitTarget()) {
        release();
      }
    }

    requestAnimationFrame(tick);
  }

  window.stopBot = function () {
    running = false;
    console.log("Bot paused. Call startBot() to resume.");
  };

  window.startBot = function () {
    if (running) return;
    running = true;
    console.log("Bot resumed.");
    requestAnimationFrame(tick);
  };

  window.botStatus = function () {
    var avg = scores.length
      ? (scores.reduce(function (a, b) { return a + b; }, 0) / scores.length).toFixed(1)
      : 0;
    console.log(
      "Games: " + totalGames +
      " | Best: " + botBest +
      " | Avg: " + avg +
      " | Running: " + running
    );
  };

  console.log("=== STARFLING AUTO-PLAYER ===");
  console.log("Controls: stopBot() | startBot() | botStatus()");
  requestAnimationFrame(tick);
})();


I've been pretty obsessed with FSRS in general (tldr: https://github.com/open-spaced-repetition/awesome-fsrs/wiki/...) It's a fantastic new-ish scheduler for spaced repetition - basically a machine learning model which adapts to you, and schedules flash (or anything, really, it's an algorithm) cards according to how well you are personally performing - surfacing data like retention, stability, recall, etc. It's a massive jump over previous "learning algorithms" like

For the past 60d I've been using Anki (a flash card program) and it's FSRS setting to learn my French deck (5000 most common French words) and I'm absolutely zooming. I can already follow a fair chunk of conversational French.

I've also been using the same system to learn Chess more deeply (endgames, tactics, openings) through Chessable and a few other websites that offer FSRS. It's levelled up my chess game a lot

Basically - the thing that hooked me was the data. Being able to see how many cards I've reviewed, how many cards are at 90/80% retention, the stability of every piece of that knowledge, the decay rate, etc... It's really cool.


FSRS is really cool. I'm trying to use it and a modified flashcard system to learn more abstract computer science and higher math. I hadn't considered it as a way of learning Chess - that's really interesting. I'm thinking about expanding my system to cover ear-training, birdsong recognition, a few other things like that.


I never thought about ear-training!

My listening comprehension for Piano has always been lacking. A deck of piano sounds that map to actual notes (or even chords) might do wonders for it...

My current decks are as follows - I spend about an hour in total reviewing/learning them all, daily:

- 5000 most common French words

- 5000 most common French sentences (following the Alex Crompton method: https://www.alexcrompton.com/blog/how-to-learn-a-language)

- English GMAT Vocabulary List (to keep my English sharp)

- Unscrambling 5000 English Anagrams (to practice unscrambling for Scrabble or other similar board games)

- Some machine learning concepts & algorithms relevant to my day job

- Some distributed systems concepts & algorithms relevant to my day job


Are you finding the French decks helpful? I'm also trying to learn French (not using spaced repetition _per se_ but Pimsleur [which does use spaced repetition, really], InnerFrench, and reading [currently reading _Le Trône de fer_]).


Are all your decks from Anki's shared decks library? Are you making your own as well? If so, what's that process?


I really liked the article, but food for thought: is a transformer that offloads computation to python really that different from Python code being read and then executed by a compiler?

Both examples are of a system we created to abstract most of the hard work.

I think a more important concept here is that the term "AI" has a lot of built-in assumptions, one of which being that it is (or will be) super intelligent, and so folks like the author here think (correctly) that it's important for the AI to be actually doing the work itself.


There's one difference that if a program is run as tool call, the internal states and control flow are not visible to the LLM. You can imagine this being useful for "debugging" in a meta-sense, the same way humans can use debuggers to figure out where something went awry it might be useful for the LLM to "simulate" something and have access to the execution trace.

Of course you can also just simulate this by peppering your code with print statements, so maybe it's not that useful in the end after all.


I know it's semantics, but Apple has never actually marketed their Air products as lighter than their Pro counterparts. The 11" variant is ~460g.


Are we meant to associate it with "hot air" marketing or what else?


What are you talking about? Air literally always meant thin and light. Now they're treating it a premium product between normal and pro instead (see iPhone Air too)


Yeah they should never have tried to copy "Air" from MacBooks, precisely where it meant thinnest/lightest, to the iPad/iPhone line where the products are already thin and light. That has always seemed like a bizarre branding move to me.

If they need a mid-tier brand between entry-level and Pro, just call it Plus. The iPad Plus would make a lot more sense.


I'm impressed with the Arc-AGI-2 results - though readers beware... They achieved this score at a cost of $13.62 per task.

For context, Opus 4.6's best score is 68.8% - but at a cost of $3.64 per task.


Nice - Another post shaming Apple for a problem which the entire internet faces.

I'll load up Facebook right now and get the same things. Google? The same.

And to no surprise, ads like these break Apple's ad content guidelines[1].

OP should figuratively put down the video camera and go perform CPR. Report the Ad. Make the internet a better place.

[1]: https://support.apple.com/en-au/guide/adguide/apd527d891a8/1...


Apple News is a paid subscription. Facebook and Google are not. Apple is supposedly the premium brand that provides a curated experience (isn't that their reasoning behind the closed nature of the App Store?).


That could make sense as a criticism if Apple were some tiny struggling company. But they have the resources to do better. And a brand identity that definitely sets it apart from the rest of the internet.


Still a bit of a bummer that with Apple, you pay a premium to escape the ad-based ecosystem^W cesspool, both for the hardware and then here for Apple News itself, and then still not only get served ads, but tasteless scam ads.


I’m an Apple cultist but it is somewhat comical that Apple has their own content blocking format built into their own browser but somehow thinks I’d ever want to pay for a subscription to read ad-encumbered news in a separate webview app


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: