<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: jeremychone</title><link>https://news.ycombinator.com/user?id=jeremychone</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 10 Jun 2026 21:55:49 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jeremychone" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by jeremychone in "1M context is now generally available for Opus 4.6 and Sonnet 4.6"]]></title><description><![CDATA[
<p>I looked at your solution and extension README, and it's very interesting and well thought out.<p>The fact that you've been using it for six months and that it performs well says a lot. At the end of the day, that's what counts.<p>I like your idea of piggybacking on top of the LSP services, and I can imagine that this was quite a bit of work. Doing it as an MCP server makes it usable across different tools.<p>I also really like the name "Context Master."<p>In my case, it's much more niche since it's for the tool I built. Though it's open source, the key difference is that the "indexing" is only agentic at this point.<p>I can see value in mixing the two. LSP integration scares me because of the amount of work involved, and tree-sitter seems like a good path.<p>In that case, in the code map, for each item, there could be both the LLM response info and some deterministic info, for example, from tree-sitter.<p>That being said, the current approach works so well that I think I am going to keep using and fine-tuning it for a while, and bring in deterministic context only when or if I need it.<p>Anyway, what you built looks great. If it works, that's great.</p>
]]></description><pubDate>Sun, 15 Mar 2026 17:37:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47389715</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=47389715</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47389715</guid></item><item><title><![CDATA[New comment by jeremychone in "1M context is now generally available for Opus 4.6 and Sonnet 4.6"]]></title><description><![CDATA[
<p>Yes, there is a parallel here. Now, some of those "indexing" steps can be performed by an LLM.<p>And that does not prevent mixing and matching the two, as some comments in this thread suggest.<p>Anyway, it's a great time for production coding.</p>
]]></description><pubDate>Sun, 15 Mar 2026 17:24:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47389563</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=47389563</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47389563</guid></item><item><title><![CDATA[New comment by jeremychone in "1M context is now generally available for Opus 4.6 and Sonnet 4.6"]]></title><description><![CDATA[
<p>Very good point. I had two options:<p>1) Deterministic<p><pre><code>  - Using a tree-sitter/AST-like approach, I could extract types, functions, and perhaps comments, and put them into an index map.

  - Cons:

    - The tricky part of this approach is that what I extract can be pretty large per file, for example, comments.

    - Then, I would probably need an agentic synthesis step for those comments anyway.
</code></pre>
2) Agentic<p><pre><code>  - Since Flash is dirt cheap, I wanted to experiment and skip #1, and go directly to #2.

  - Because my tool is built for concurrency, when set to 32, it's super fast.

  - The price is relatively low, perhaps $1 or $2 for 50k LOC, and 60 to 90 seconds, about 30 to 45 minutes of AI work.

  - What I get back is relatively consistent by file, size-wise, and it's just one trip per file.

</code></pre>
So, this is why I started with #2.<p>And then, the results in real coding scenarios have been astonishing.<p>Way above what I expected.<p>The way those indexes get combined with the user prompt gets the right files 95% of the time, and with surprisingly high quality.<p>So, I might add deterministic aspects to it, but since I think I will need the agentic step anyway, I have deprioritized it.</p>
]]></description><pubDate>Sat, 14 Mar 2026 20:44:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47380977</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=47380977</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47380977</guid></item><item><title><![CDATA[New comment by jeremychone in "1M context is now generally available for Opus 4.6 and Sonnet 4.6"]]></title><description><![CDATA[
<p>point taken.</p>
]]></description><pubDate>Sat, 14 Mar 2026 20:25:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47380803</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=47380803</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47380803</guid></item><item><title><![CDATA[New comment by jeremychone in "1M context is now generally available for Opus 4.6 and Sonnet 4.6"]]></title><description><![CDATA[
<p>- The ..-code-map.json files are per "developer folder," which would create too many conflicts if they were kept in Git.<p>- I have two main globs, which are lists of globs: knowledge_globs and context_globs. Knowledge can be absolute and should be relatively static. context_globs have to be relative to the workspace, since they are the working files.<p>- As a dev, you provide them in the top YAML section of the coder-prompt.md.<p>- The auto-context sub-agent calls the code-map sub-agent. Sub-agents can add to or narrow the given globs, and that is the goal of the auto-context agent.<p>It looks complicated, but it actually works like a charm.<p>Hopefully, I answered some of your questions.<p>I need to make a video about it.<p>But regardless, I really think it's not about the tools, it's about the techniques. This is where the true value is.</p>
]]></description><pubDate>Sat, 14 Mar 2026 19:50:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=47380458</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=47380458</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47380458</guid></item><item><title><![CDATA[New comment by jeremychone in "1M context is now generally available for Opus 4.6 and Sonnet 4.6"]]></title><description><![CDATA[
<p>Even there, I use AI to augment rows and build the code to put data into Json or Polars and create a quick UI to query the data.</p>
]]></description><pubDate>Sat, 14 Mar 2026 19:10:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47380055</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=47380055</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47380055</guid></item><item><title><![CDATA[New comment by jeremychone in "1M context is now generally available for Opus 4.6 and Sonnet 4.6"]]></title><description><![CDATA[
<p>Oh, that's great.<p>I've always wanted to explore how to fit tree-sitter into this workflow. It's great to know that this works well too.<p>Thanks for sharing the code.<p>(Here is the AIPack runtime I built, MIT: <a href="https://github.com/aipack-ai/aipack" rel="nofollow">https://github.com/aipack-ai/aipack</a>), and here is the code for pro@coder (<a href="https://github.com/aipack-ai/packs-pro/tree/main/pro/coder" rel="nofollow">https://github.com/aipack-ai/packs-pro/tree/main/pro/coder</a>) (AIPack is in Rust, and AI Packs are in md / lua)</p>
]]></description><pubDate>Sat, 14 Mar 2026 19:08:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47380034</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=47380034</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47380034</guid></item><item><title><![CDATA[New comment by jeremychone in "1M context is now generally available for Opus 4.6 and Sonnet 4.6"]]></title><description><![CDATA[
<p>So, I have a pro@coder/.cache/code-map/context-code-map.json.<p>I also have a `.tmpl-code-map.jsonl` in the same folder so all of my tasks can add to it, and then it gets merged into context-code-map.json.<p>I keep mtime, but I also compute a blake3 hash, so if mtime does not match, but it is just a "git restore," I do not redo the code map for that file. So it is very incremental.<p>Then the trick is, when sending the code map to AI, I serialize it in a nice, simple markdown format.<p>- path/to/file.rs
  - summary: ...
  - when to use: ...
  - public types: .., .., ..
  - public functions: .., .., ..<p>- ...<p>So the AI does not have to interpret JSON, just clean, structured markdown.<p>Funny, I worked on this addition to my tool for a week, planning everything, but even today, I am surprised by how well it works.<p>I have zero sed/grep in my workflow. Just this.<p>My prompt is pro@coder/coder-prompt.md, the first part is YAML for the globs, and the second part is my prompt.<p>There is a TUI, but all input and output are files, and the TUI is just there to run it and see the status.</p>
]]></description><pubDate>Sat, 14 Mar 2026 17:45:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47379127</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=47379127</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47379127</guid></item><item><title><![CDATA[New comment by jeremychone in "1M context is now generally available for Opus 4.6 and Sonnet 4.6"]]></title><description><![CDATA[
<p>Fair point, but because I spent a year building and refining my custom tool, this is now the reality for all of my AI requests.<p>I prompt, press run, and then I get this flow:
 dev setup (dev-chat or plan)
 code-map (incremental 0s  2m for initial)
 auto-context (~20s to 40s)
 final AI query (~30s to 2m)<p>For example, just now, in my Rust code (about 60k LOC), I wanted to change the data model and brainstorm with the AI to find the right design, and here is the auto-context it gave me:<p>- Reducing 381 context files    (  1.62 MB)<p>- Now 5 context files           ( 27.90 KB)<p>- Reducing 11 knowledge files   ( 30.16 KB)<p>- Now 3 knowledge files         (  5.62 KB)<p>The knowledge files are my "rust10x" best practices, and the context files are the source files.<p>(edited to fix formatting)</p>
]]></description><pubDate>Sat, 14 Mar 2026 17:35:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47379025</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=47379025</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47379025</guid></item><item><title><![CDATA[New comment by jeremychone in "1M context is now generally available for Opus 4.6 and Sonnet 4.6"]]></title><description><![CDATA[
<p>Interesting, I’ve never needed 1M, or even 250k+ context. I’m usually under 100k per request.<p>About 80% of my code is AI-generated, with a controlled workflow using dev-chat.md and spec.md. I use Flash for code maps and auto-context, and GPT-4.5 or Opus for coding, all via API with a custom tool.<p>Gemini Pro and Flash have had 1M context for a long time, but even though I use Flash 3 a lot, and it’s awesome, I’ve never needed more than 200k.<p>For production coding, I use<p>- a code map strategy on a big repo. Per file: summary, when_to_use, public_types, public_functions. This is done per file and saved until the file changes. With a concurrency of 32, I can usually code-map a huge repo in minutes. (Typically Flash, cheap, fast, and with very good results)<p>- Then, auto context, but based on code lensing. Meaning auto context takes some globs that narrow the visibility of what the AI can see, and it uses the code map intersection to ask the AI for the proper files to put in context. (Typically Flash, cheap, relatively fast, and very good)<p>- Then, use a bigger model, GPT 5.4 or Opus 4.6, to do the work. At this point, context is typically between 30k and 80k max.<p>What I’ve found is that this process is surprisingly effective at getting a high-quality response in one shot. It keeps everything focused on what’s needed for the job.<p>Higher precision on the input typically leads to higher precision on the output. That’s still true with AI.<p>For context, 75% of my code is Rust, and the other 25% is TS/CSS for web UI.<p>Anyway, it’s always interesting to learn about different approaches. I’d love to understand the use case where 1M context is really useful.</p>
]]></description><pubDate>Sat, 14 Mar 2026 16:33:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47378360</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=47378360</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47378360</guid></item><item><title><![CDATA[New comment by jeremychone in "Show HN: A universal code formatter using Rust, Tree-sitter, and Rhai"]]></title><description><![CDATA[
<p>Very interesting approach.<p>The trick is that sometimes developers use a hybrid approach, AI + Human / IDE, and in this case, we use the language formatter (for example, rustfmt).<p>For example: For my AI Agent / CLI, the dev can add a sub-agent (non-AI) that just runs cargo fmt, and I can definitely see the value in including this as part of the default flow. But my issue is that it won't really follow rustfmt.<p>Am I missing something?<p>Anyway, this is great. And btw, I have been thinking about using tree-sitter for "context extraction / optimization" for code indexing, but I did not have time to explore this further.</p>
]]></description><pubDate>Sun, 15 Feb 2026 17:02:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47025290</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=47025290</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47025290</guid></item><item><title><![CDATA[New comment by jeremychone in "Show HN: AV1 encoder in 66 KB of safe Rust WASM"]]></title><description><![CDATA[
<p>Impressive.</p>
]]></description><pubDate>Sat, 14 Feb 2026 19:32:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=47017533</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=47017533</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47017533</guid></item><item><title><![CDATA[New comment by jeremychone in "MinIO repository is no longer maintained"]]></title><description><![CDATA[
<p>By the way, I’ve been switching to RustFS as my S3 mock server, and it works like a charm.<p>They maintain the Docker image, so it works great in a k8s environment, for both local and remote development.<p>Big thanks to MinIO for providing this option for so many years. I genuinely wish them the best.</p>
]]></description><pubDate>Sat, 14 Feb 2026 18:58:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47017233</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=47017233</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47017233</guid></item><item><title><![CDATA[New comment by jeremychone in "Swift is a more convenient Rust (2023)"]]></title><description><![CDATA[
<p>Not sure "convenience" alone should be the deciding factor when choosing a language for a project/product.<p>What matters more is the long-term value for what’s being built and maintained.<p>For portable, high-performance backends, Rust often offers a higher value/friction tradeoff, IMO.<p>For Apple platform development, Swift is the obvious choice.<p>Swift’s cross-platform story has improved, but outside the Apple ecosystem the incentives still seem weaker compared to Rust.<p>So overall, IMO, Rust tends to have a higher net value beyond Apple-specific use cases.</p>
]]></description><pubDate>Sun, 01 Feb 2026 22:26:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=46850034</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=46850034</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46850034</guid></item><item><title><![CDATA[New comment by jeremychone in "Pico3D: Open World 3D Game Engine for the PicoSystem (RP2040 Microcontroller)"]]></title><description><![CDATA[
<p>This is so awesome. Well done! I played a little with Pico/RP2040 (as a hobby), and it is so much fun. I wish educational content and institutions would embrace it more quickly.</p>
]]></description><pubDate>Sun, 16 Apr 2023 14:34:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=35590355</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=35590355</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35590355</guid></item><item><title><![CDATA[New comment by jeremychone in "Rust Foundation restricts usage of word “Rust” and logos"]]></title><description><![CDATA[
<p>Reached 8K+!</p>
]]></description><pubDate>Wed, 12 Apr 2023 03:34:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=35534719</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=35534719</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35534719</guid></item><item><title><![CDATA[New comment by jeremychone in "Rust Foundation restricts usage of word “Rust” and logos"]]></title><description><![CDATA[
<p>This is so counterproductive. I hope the Rust Foundation and the Rust Project change their minds and take a more reasonable route.<p>Protecting against misrepresentation is completely understandable, but forbidding any common and reasonable use just because of it is so counterproductive.</p>
]]></description><pubDate>Tue, 11 Apr 2023 00:29:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=35519173</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=35519173</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35519173</guid></item><item><title><![CDATA[New comment by jeremychone in "Why use Rust on the back end?"]]></title><description><![CDATA[
<p>There is a learning tax at the beginning, for sure, but this is a fixed cost. We experience that once this first hump is passed, the code and output quality is higher, and the cloud resource cost decreases significantly.<p>Now the challenge is to hire new developers that are not familiar with Rust; it would take a month or so for them to be productive (assuming robust internal code practice). But, well worthwhile in our opinion, as least for greenfield application/services.<p>(We are coming from Java / nodejs/TS)</p>
]]></description><pubDate>Tue, 21 Mar 2023 14:21:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=35246533</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=35246533</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35246533</guid></item><item><title><![CDATA[New comment by jeremychone in "Why use Rust on the back end?"]]></title><description><![CDATA[
<p>We have been building relatively big enterprise cloud applications with a high level of compliance over the last decade and a half, and our next blueprint is all Rust on the backend (web server, web services, and job/micro services). For our approach, Rust is a transformative language for those parts of our systems.</p>
]]></description><pubDate>Tue, 21 Mar 2023 04:08:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=35242434</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=35242434</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35242434</guid></item><item><title><![CDATA[New comment by jeremychone in "Why use Rust on the back end?"]]></title><description><![CDATA[
<p>Agree, for our approach, sqlx has the right level of abstraction. Not too high, not too low, and close enough of a sql builder pattern to be very useful. (We are not using the compile time type validation though).</p>
]]></description><pubDate>Tue, 21 Mar 2023 04:02:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=35242408</link><dc:creator>jeremychone</dc:creator><comments>https://news.ycombinator.com/item?id=35242408</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35242408</guid></item></channel></rss>