Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
162632 stories
·
33 followers

Tray-tober Day 9: Tray-MdB

1 Share

When understanding why I am reaching for my phone while on my PC, a common reason is because I want to look up info in the great iOS app Callsheet. What if I had a similar app in my tray for those quick questions in the moment without opening a web browser? That is Tray-MdB (Tray Movie Database). Search for movies and TV shows, as well as actors directors and more!

In addition to getting info about a movie the app can also serve as a list of “want to watch” and “seen” for your content. Now keep the details and the favorite list close at hand for making quick decisions about what to watch, or info about what your watching without interrupting your workflow!

Happy Tray-tober!

Joe

Read the whole story
alvinashcraft
just a second ago
reply
Pennsylvania, USA
Share this story
Delete

Android Bench 2 Adds Support for Long-Horizon Tasks, Agentic Evaluation, and Continuous Scoring

1 Share

Google has released Android Bench 2.0, a major update to its benchmark framework for evaluating AI models and agents on Android development tasks. The update introduces long-horizon tasks (LHTs), agent-based evaluation, and continuous scoring to better assess performance on complex, multi-step development tasks.

By Sergio De Simone
Read the whole story
alvinashcraft
20 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

Jevfree - repurposing EmbeddingGemma 2 for Jev-like decisions

1 Share
<p>This week EmbeddingGemma 2 - an open, lightweight and multimodal embedding model from Google was released. Nice, but embedding models are not something that gets me super excited on its own - for now i thought about these models as basic building blocks for search and retrieval, that’s what i use them for - for example in my local harness <a href="https://johnnysnews.com/2026/08/Floaty/" target="_blank">Floaty</a> where i embed data and computer activity and then retrieve them via similarity. What got me hooked was a small comment in the discussion thread:</p> <blockquote> <p>It’s also very neat that this can be used for “Jev”-like tasks with text and image.<br> — Nautman on <a href="https://news.ycombinator.com/item?id=49984406" target="_blank">Hacker News</a></p> </blockquote> <p>with a link to the <a href="https://developers.google.com/edge/mediapipe/solutions/decision/decision_maker" target="_blank">MediaPipe Decision Maker guide</a> from Google. I didn’t know that you could use an embedding model for structured decisions and I found the idea quite neat - so I followed the guide for a first version and started to play with it. The result is Jevfree.</p> <p><img src="2026/10/Jevfree-repurposing-an-embedding-model-for-decisions/intro.jpg" alt="jevfree decides based upon an image" loading="lazy" class="φbp"></p> <h1 id="tl;dr">TL;DR<a title="#tl;dr" href="#tl;dr"></a></h1> <p>Jevfree is a small web experiment which takes Jev-style decision requests (a situation + typed questions) and answers them with rough probabilities - entirely in the browser with EmbeddingGemma 2, no server, no API key, no tokens burned. It’s a quick and dirty experiment (obviously with AI slop UI) and not a replacement for Jev - check it out here: <a href="https://nor0x.github.io/Jevfree/" target="_blank">https://nor0x.github.io/Jevfree/</a></p> <h1 id="jev-and-decision-tasks">Jev and decision tasks<a title="#jev-and-decision-tasks" href="#jev-and-decision-tasks"></a></h1> <p>For those unfamiliar with it - Jev is TypeSafe’s format for “decision” requests. Instead of chatting with a model and parsing whatever text comes back, you send a <code>state</code> (the situation) and a set of typed <code>questions</code> and get structured answers back. There are three types of questions:</p> <ul> <li><code>choice</code>: pick one of a couple of options</li> <li><code>boolean</code>: is a condition true or not (with a threshold)</li> <li><code>score</code>: rate something on an ordered rubric (1…K) and get an expected score</li> </ul> <p>Here is one of the examples I have added to the Jevfree page - deciding what to cook tonight:</p> <figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;state&quot;</span><span class="punctuation">:</span> <span class="string">&quot;I only have 20 minutes, there&#x27;s leftover rice, a few eggs and spring onions in the fridge, and I&#x27;m exhausted.&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;questions&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;dish&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;type&quot;</span><span class="punctuation">:</span> <span class="string">&quot;choice&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;instructions&quot;</span><span class="punctuation">:</span> <span class="string">&quot;What should I cook?&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;criteria&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;Fried rice&quot;</span><span class="punctuation">:</span> <span class="string">&quot;A quick stir-fry of cooked rice with egg and vegetables.&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;Pasta bake&quot;</span><span class="punctuation">:</span> <span class="string">&quot;Pasta baked in the oven with sauce and cheese.&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;Big salad&quot;</span><span class="punctuation">:</span> <span class="string">&quot;A fresh salad of raw vegetables and leaves.&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;Order takeout&quot;</span><span class="punctuation">:</span> <span class="string">&quot;Skip cooking and order food from a restaurant.&quot;</span></span><br><span class="line"> <span class="punctuation">&#125;</span></span><br><span class="line"> <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;quick&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;type&quot;</span><span class="punctuation">:</span> <span class="string">&quot;boolean&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;instructions&quot;</span><span class="punctuation">:</span> <span class="string">&quot;Can it be done fast?&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;condition&quot;</span><span class="punctuation">:</span> <span class="string">&quot;The meal can be ready in well under half an hour.&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;false&quot;</span><span class="punctuation">:</span> <span class="string">&quot;The meal needs a long time to prepare or cook.&quot;</span></span><br><span class="line"> <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;effort&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;type&quot;</span><span class="punctuation">:</span> <span class="string">&quot;score&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;instructions&quot;</span><span class="punctuation">:</span> <span class="string">&quot;How much energy do I have?&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;rubric&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="string">&quot;1: Drained: Too tired to do anything&quot;</span><span class="punctuation">,</span> <span class="string">&quot;2: Low: Can manage something simple&quot;</span><span class="punctuation">,</span> <span class="string">&quot;3: Okay: Normal energy&quot;</span><span class="punctuation">,</span> <span class="string">&quot;4: Good: Happy to cook&quot;</span><span class="punctuation">,</span> <span class="string">&quot;5: Buzzing: Full of energy&quot;</span><span class="punctuation">]</span></span><br><span class="line"> <span class="punctuation">&#125;</span></span><br><span class="line"> <span class="punctuation">&#125;</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure> <p>The response comes back in a structured format as well - for every question a selected key, the probabilities for each option and a confidence value (for booleans the <code>probability_true</code> and the resulting <code>value</code>, for scores also the <code>expected_score</code>).</p> <figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;model&quot;</span><span class="punctuation">:</span> <span class="string">&quot;embeddinggemma-2-onnx-q4&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;results&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;dish&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;type&quot;</span><span class="punctuation">:</span> <span class="string">&quot;choice&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;selected_key&quot;</span><span class="punctuation">:</span> <span class="string">&quot;Order takeout&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;probabilities&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;Fried rice&quot;</span><span class="punctuation">:</span> <span class="number">0.1988</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;Pasta bake&quot;</span><span class="punctuation">:</span> <span class="number">0.277</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;Big salad&quot;</span><span class="punctuation">:</span> <span class="number">0.0772</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;Order takeout&quot;</span><span class="punctuation">:</span> <span class="number">0.447</span></span><br><span class="line"> <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;confidence&quot;</span><span class="punctuation">:</span> <span class="number">0.1398</span></span><br><span class="line"> <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;quick&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;type&quot;</span><span class="punctuation">:</span> <span class="string">&quot;boolean&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;value&quot;</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">false</span></span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;probability_true&quot;</span><span class="punctuation">:</span> <span class="number">0.1766</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;threshold&quot;</span><span class="punctuation">:</span> <span class="number">0.5</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;confidence&quot;</span><span class="punctuation">:</span> <span class="number">0.4872</span></span><br><span class="line"> <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;effort&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;type&quot;</span><span class="punctuation">:</span> <span class="string">&quot;score&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;selected_key&quot;</span><span class="punctuation">:</span> <span class="string">&quot;1&quot;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;expected_score&quot;</span><span class="punctuation">:</span> <span class="number">1.9613</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;probabilities&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;1&quot;</span><span class="punctuation">:</span> <span class="number">0.584</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;2&quot;</span><span class="punctuation">:</span> <span class="number">0.1451</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;3&quot;</span><span class="punctuation">:</span> <span class="number">0.0146</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;4&quot;</span><span class="punctuation">:</span> <span class="number">0.2382</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;5&quot;</span><span class="punctuation">:</span> <span class="number">0.0181</span></span><br><span class="line"> <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;confidence&quot;</span><span class="punctuation">:</span> <span class="number">0.3404</span></span><br><span class="line"> <span class="punctuation">&#125;</span></span><br><span class="line"> <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;usage&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;state_tokens&quot;</span><span class="punctuation">:</span> <span class="number">38</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;option_tokens&quot;</span><span class="punctuation">:</span> <span class="number">272</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;cached_options&quot;</span><span class="punctuation">:</span> <span class="number">0</span></span><br><span class="line"> <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;elapsed_ms&quot;</span><span class="punctuation">:</span> <span class="number">766</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure> <p>Decision models are kinda having a moment right now - besides Jev, OpenAI recently released a <a href="https://developers.openai.com/api/docs/guides/decisions" target="_blank">Decisions API</a> (currently still in beta) with very similar question types (predicate, choice and score) that returns typed answers with probabilities instead of generated text. And there is <a href="https://github.com/jaredpalmer/kev" target="_blank">Kev</a> which I find quite interesting - an open source family of small decision models (0.8B up to 27B) built on Qwen base models. It speaks the same API as Jev so it can be used as a local, self-hosted drop-in, and you can fine-tune it on your own labelled examples. I like the direction a lot - for many tasks in my projects I don’t need a model to write me a paragraph, I need a quick and cheap answer to “which one of these?” or “is this true?”.</p> <h1 id="how-does-this-work?">How does this work?<a title="#how-does-this-work?" href="#how-does-this-work?"></a></h1> <p>This was the part that fascinated me the most - an embedding model doesn’t generate any text, it can’t “answer” a question. So how can it decide something?</p> <h2 id="the-simple-version">The simple version<a title="#the-simple-version" href="#the-simple-version"></a></h2> <p>An embedding model turns a piece of text (or an image, or a sound with multimodal modesl like EmbeddingGemma 2) into a list of numbers - which represents the “meaning” of that content in a high-dimensional space. Things that mean similar stuff end up close to each other in that space, things that are unrelated end up far apart. This is what poweres vector based RAG - embed the documents and the query, find the closest documents to the query and return them to the LLM for further processing - easy!</p> <p>The trick for decisions is basically the same: embed the situation, embed every possible answer and check which answer is the closest one to the situation. “I’m exhausted and have leftover rice” is just closer to “a quick stir-fry of cooked rice with egg” than to “pasta baked in the oven”. That’s it - the closest answer wins. And since we know how close every answer is, we can turn those distances into probabilities as well.</p> <p><img src="2026/10/Jevfree-repurposing-an-embedding-model-for-decisions/decision.jpg" alt="situation and answers in the &quot;meaning space&quot;" loading="lazy" class="φbp"></p> <h2 id="the-slightly-less-simple-version">The slightly less simple version<a title="#the-slightly-less-simple-version" href="#the-slightly-less-simple-version"></a></h2> <p>Following the MediaPipe Decision Maker recipe (bi-encoder backend), there are a few more steps involved to make it work better:</p> <ul> <li><strong>Embed the options once:</strong> every answer option is embedded with the question’s instructions (e.g. <code>What should I cook? — Fried rice: A quick stir-fry...</code>) and cached - this is the “prewarm” step. A new request then only needs to embed the situation, which makes it quite fast after the first run.</li> <li><strong>Whitening:</strong> for each question the average of all its option embeddings is subtracted from every option (and then normalized again). All the dinner options have a lot in common - they are all about food - and this common part would make them all look similarly close to the situation. Subtracting the average cancels out the shared stuff and only the differences between the options remain. I found this quite clever.</li> <li><strong>Scores to probabilities:</strong> the situation is compared to every option via a dot product and those scores go through a softmax with a low temperature (0.05) - which turns the similarity scores into probabilities that sum up to 1. The confidence is a mix of how far ahead the winner is and how “flat” the distribution is.</li> <li><strong>Yes / No:</strong> a boolean question is just a choice between two options - the condition and its negation (if you don’t define a <code>false</code> description it’s simply “It is not the case that…”). If the probability of the true option is above the threshold, the answer is yes.</li> <li><strong>Rate:</strong> score questions are treated as a choice between the different score levels (1…K) and the expected score is calculated from the probabilities.</li> </ul> <p>Since EmbeddingGemma 2 is multimodal, all of this also works with images, sounds and videos - both for the situation and the answers since they end up in the same space. So questions like “Which photo fits my mood?” with photos as answers are possible as well. Text inputs also get the classification task prefix from the model card (<code>task: classification | query: ...</code>).</p> <p><img src="2026/10/Jevfree-repurposing-an-embedding-model-for-decisions/image-decision.jpg" alt="decisions on image input" loading="lazy" class="φbp"></p> <h1 id="running-it-in-the-browser">Running it in the browser<a title="#running-it-in-the-browser" href="#running-it-in-the-browser"></a></h1> <p>Everything runs locally in the browser via <a href="https://github.com/huggingface/transformers.js" target="_blank">transformers.js</a> and the <a href="https://huggingface.co/onnx-community/embeddinggemma-2-ONNX" target="_blank">ONNX weights</a> of EmbeddingGemma 2. The model runs in a web worker on WebGPU if available, with a WASM fallback otherwise. By default the fp16 model is loaded (~1.5 GB - so yes, the first load takes a while) and is cached by the browser afterwards - if the GPU doesn’t support <code>shader-f16</code> the q4 version is loaded instead. Audio and video are decoded on the main thread (those browser APIs are not available in workers) and are capped (16 kHz mono and max 90 seconds for audio, 1 frame per second and max 16 frames for video) to stay under the token limit of the WebGPU backend. On the playground page different quantization levels of the model can be selected to compare the performance and results.</p> <p>There are two pages:</p> <h2 id="jevfree">Jevfree<a title="#jevfree" href="#jevfree"></a></h2> <p>A no-code page for “end users” - you describe a situation (text, a photo, a sound - from a file or recorded via the microphone - or a video) and add questions - <em>Pick one</em>, <em>Yes / No</em> or <em>Rate</em> - with answers as text or media files. I have added a bunch of everyday examples like “Dinner tonight”, “Is this email urgent?” or “Which photo fits my mood?” to quickly get a feeling for it. The generated Jev request and the response JSON are in a collapsed drawer at the bottom for the curious ones who might want to compare the results with Jev compatible APIs.</p> <p><img src="2026/10/Jevfree-repurposing-an-embedding-model-for-decisions/screenshot.jpg" alt="the Jevfree page" loading="lazy" class="φbp"></p> <h2 id="playground">Playground<a title="#playground" href="#playground"></a></h2> <p>This is more where I played with the model (and the various quantized versions) itself - embedding text with the different task prefixes, dropping images, audio and video, sending raw Jev JSON requests and looking at the results. There is a heatmap per item (to visualize the similarities in the embedding space), a cosine similarity matrix and a nearest neighbour ranking, and a switch for 768/512/256/128 dimensions to see how much the results change with smaller embeddings.</p> <p><img src="2026/10/Jevfree-repurposing-an-embedding-model-for-decisions/playground.jpg" alt="the playground" loading="lazy" class="φbp"></p> <h1 id="not-a-drop-in-replacement">Not a drop-in replacement<a title="#not-a-drop-in-replacement" href="#not-a-drop-in-replacement"></a></h1> <p>I’m aware that this is not a drop-in replacement for Jev in terms of quality or reliability. It’s a quick and dirty experiment to play with the idea. An embedding model only compares “meanings”, it doesn’t reason about the situation - so negations, numbers or anything that needs a bit of thinking can easily go wrong. Even in the HN thread someone reported that Google’s own example (a request to cancel a flight and get a refund) was classified as not financial. The MediaPipe Decision Maker also has cross-encoder and generative (Gemma) backends which should do a lot better here. The probabilities you get back from Jevfree are rough - more of a “vibe” than an answer you should rely on. Still, for simple everyday examples it’s fun to see how far you get with just an embedding model - and I think that’s what makes it so interesting.</p> <h1 id="why-i-find-this-exciting">Why I find this exciting<a title="#why-i-find-this-exciting" href="#why-i-find-this-exciting"></a></h1> <p>I’m really into local first approaches lately - with <a href="/2026/08/Floaty/">Floaty</a> my conversations and knowledge are stored in a local vector + graph db and I’m tinkering with some more local first document and knowledge base project Chester where all the data stays on my machine. In general i’m a fan of local models - they are free to run, no data leaves the machine and no third party can limit your ability to work by applying limits or quotas. Of course the local-first models are smaller compared to the frontier LLMs - but for a lot of tasks you don’t need a &gt;100B parameter model to get a good answer or solve a specific use case. I can totally see these small decision “building blocks” inside my projects. In general i find it fascinating that models can be repurposed for tasks they were not originally designed for.</p> <p>Some things I want to try next:</p> <ul> <li>compare the results with a cross-encoder backend (Laya or GLiNER2.5-Decide) in the browser</li> <li>use it inside Floaty for routing prompts to the right tool or assistant</li> <li>more examples with images and sound as answers</li> </ul> <p>Jevfree is here on GitHub: <a href="https://github.com/nor0x/Jevfree" target="_blank">https://github.com/nor0x/Jevfree</a> - and you can try the deployed version here: <a href="https://nor0x.github.io/Jevfree/" target="_blank">https://nor0x.github.io/Jevfree/</a> (be aware of the ~1.5 GB model download on first load and you need a browser with WebGPU for good performance - but from then on everything is cached and runs 100% locally).</p>
Read the whole story
alvinashcraft
37 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

1.0.95

1 Share

2026-10-09

  • Use native Microsoft Entra broker authentication on macOS when available, with browser fallback.
  • copilot config supports sandbox credential injectHosts keys, with key completion in Bash, Zsh, and Fish.
  • --context now applies to new and resumed ACP sessions instead of silently using the default or previously saved context tier
  • Managed plugin setup retries hourly or after policy changes instead of on every message failure
Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

Job listings for week ending 10/09

1 Share

Job postings that came across my desk, slack, email, discord, etc this week.

The post Job listings for week ending 10/09 appeared first on Leon Adato.

Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

Call For Papers Listings for 10/9

1 Share

A collection of upcoming CFPs (call for papers) from across the internet and around the world.

The post Call For Papers Listings for 10/9 appeared first on Leon Adato.

Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories