We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
🔥 TOP SIGNAL
Long-horizon code translation is the strongest signal. Theo says Opus 5.5 got his four-month, on-and-off TypeScript-compiler-to-Rust port working in 10 hours, after GPT-5.6 Sol and GPT-6 Astra plateaued at roughly 35% and 85% of tests passing. DHH separately says Opus 5.5 translated Omarchy’s ttfx from Rust to x86-64 assembly and claims up to 17× faster. The linked PR reports 14.5× on one decrypt test (371→25.5 ms) and separately lists 32.5 ms versus Rust’s 371 ms, with 206/206 oracle cases matching—strong project-specific evidence, not a general coding benchmark.
⚡ TRY THIS
Give long runs a finish line and a quality target. Theo’s exact request:
/goal finish the port and make it faster. Peter Steinberger used/goalwith Astra to move OpenClaw off synchronous SQLite after it became limiting with one agent running 50 sessions in parallel; he reports 575 PRs landed so far, with improvements shipped along the way.Make review adversarial and isolated. Steinberger’s auto-review skill starts a fresh-context reviewer, feeds its findings back to the writer, and repeats; then the agent gets a separate test box to install the app, inspect the UI, and verify it end to end. He says this can turn a 10-minute PR into two hours, but lets him parallelize about 20 tasks—reserve the extra validation for changes where it pays back.
Turn Slack bug reports into repro-to-PR jobs. Boris Cherny says Claude Tag writes more than 50% of his PRs each day; his prompt is: “@Claude from now on, attempt to repro every bug in this channel end to end, running the full app. Once you reproduce the bug, put up a PR to fix it and tag the right team for code review.” Claude Tag’s personal connectors are rolling out on Team plans, with Enterprise to follow; those personal connectors are for user-requested work, not scheduled or agent-started runs, which require connectors attached to the channel.
Write the HLDD after the implementation works. Geoffrey Huntley’s pattern: use pre-commit hooks and agent skills to keep the high-level design doc updated, then self-host it in the product. Put the human-authored rationale and success measures first, implementation details below, and editor remarks where a subsection needs its intent preserved.
📡 WHAT SHIPPED
Antigravity 2.0 adds
/planin the app and CLI. The workflow explores files and dependencies without writing code, asks clarifying questions, then produces a reviewable plan with verification checkpoints. Review or adjust it and click Proceed; the docs say whether the agent pauses for approval is configurable through the artifact review policy, so set that explicitly if you need a hard gate.Microsoft Copilot Code is an app builder, not the new default coding IDE. It turns natural-language requests into dashboards, automations, and internal apps in a sandbox that can be hosted in a tenant. Frontier rollout is slated for month-end, Managed Runtime is already in preview, and Microsoft says developers will keep using GitHub Copilot for day-to-day work.
Autopilot is a separate persistent agent. Microsoft describes a cloud-hosted agent that watches channels, follows up, handles recurring work, and can resume projects days later; its blog says private-preview expansion is at month-end. Omar Shahine says it is built on OpenClaw, whose team worked with Microsoft on deployment readiness; local inference, file transfer, and code mode on machines connected to the OpenClaw gateway are still described as upcoming.
Cua Driver is now stable and open source for Omarchy. TryCua says its native synthetic cursor for Hyprland enables OS-level multi-cursor control. The repo shows two sessions operating Calc and Inkscape on Omarchy and supports agent connections through CLI, MCP, or typed SDKs.
OpenRouter introduced
typesafe/jev-router, a cache-aware model-and-reasoning-effort selector. Theo’s objection is coding-specific: Jev categorizes but cannot see the codebase or the agent’s tools, so prompt-only complexity estimates may miss the work involved. He also doubts mid-task downgrades save much when cache writes are a large cost, and says he is still gathering numbers; his early comparison to a “DeepSeek 4.1 Flash router” is only an impression.
🎬 GO DEEPER
- Video — Peter Steinberger on coding-agent review loops: The useful segment is his fresh-context reviewer and isolated test-box workflow, not a model demo.
PR — Omarchy
ttfxRust-to-assembly port: Inspect how Rust remains the front end and fallback for unported effects, while the assembly engine is checked against byte-for-byte oracle cases.Repo — Cua Driver: The quickstart connects an agent to Calculator, asks it to compute 6 × 7, and checks that the app displays 42; the repo also documents CLI, MCP, and SDK integrations.
Editorial take: The edge is not simply “let it run”: specify the finish line, then give an independent reviewer and a real execution environment a chance to falsify the result.
Qualified yes: the repository describes Cua Driver as supporting macOS, Windows, and Linux, and its demo specifically shows Cua Driver sessions operating LibreOffice Calc and Inkscape on an Omarchy desktop. It also links to an Omarchy-on-Fleet guide. This supports mentioning demonstrated Omarchy use, but the cited material does not explicitly name Hyprland or state a Hyprland-specific or stable-release guarantee.
Concrete getting-started path: on macOS/Linux, the README provides an installer command; the first-app tutorial then walks through connecting an agent, asking it to calculate 6 × 7 in Calculator, and verifying the displayed 42, including platform setup and permissions. Cua Driver connections are available through CLI, MCP, or typed SDKs.
Exact video timestamps are not provided in the supplied transcript; the passage is located at transcript lines 116–122.
- Fresh-context review loop: Peter describes an auto-review skill that checks code in a fresh context, reports findings to the parent session, and repeats the review-and-fix exchange—sometimes for up to 10 rounds.
- Test boxes: He recommends testing away from the developer’s own machine, using test boxes such as Crapbox so an agent can spin up a machine, install and inspect the software, interact with it, and verify it end to end.
- Parallel tasks: He says the review and testing process can make a PR take longer, but the workflow can be parallelized across about 20 tasks while he moves on to other work.
- Performance: The PR reports decrypt at 200×50 taking 371 ms in Rust and 25.5 ms in assembly (14.5× faster), with 206/206 oracle cases identical. That supports the result as a PR-reported benchmark, but the excerpt does not provide independent benchmark data or enough methodology to verify the exact figure.
- Qualification: A later update reports the general assembly engine at 32.5 ms versus Rust’s 371 ms, again with 206/206 oracle cases identical. It does not say whether this used the same benchmark setup, so it corroborates a large speedup but does not establish the exact 14.5× result as the final comparable measurement.
- What changed: The excerpt describes a 30-commit series, not a one-shot change. Its core design keeps argument parsing, input reading, and RNG seeding in Rust, dispatches supported effects to the NASM-built x86-64 engine, and falls back to Rust for unported effects.
TTFX_ASM=0forces Rust;TTFX_ASM=forceprevents fallback and is used for byte-for-byte oracle comparison.
Availability: Antigravity /plan is listed for Antigravity 2.0 and Antigravity CLI, and the comparison table lists it for all plans. Claude Tag is labeled beta; personal connectors are described as rolling out on Team plans, with Enterprise to follow. That supports rollout in progress, not a claim that access is universal or complete.
- Antigravity approval workflow:
/planproduces a reviewable plan before implementation; users can review it, comment, adjust tasks, and click Proceed to start execution. Whether the agent pauses for plan approval is configurable through the artifact review policy, so a human approval pause is not guaranteed by/planalone. - Claude connector access and response review are separate steps: If a connector is connected to the user's Claude account, it can be used in a channel; the source says Claude asks the user the first time a request needs one, then uses it in the thread. It does not specify the contents of that first-use ask. The user can review each response before it posts, or choose auto mode, which posts unless Claude determines sensitive content needs review; the source says Enterprise admins will be able to require review for everyone.
- Identity and unattended actions: Activity through a personal connector appears in that tool's log under the user's account, while channel work remains under the channel's service account. Personal connectors do not run unattended: scheduled routines and actions Claude starts on its own use connectors attached to the channel by an admin.
Status: The Sept. 25, 2026 announcement says Autopilot, previously called Scout, is “expanding to private preview at the end of the month.” That is the stated preview milestone; this source does not confirm availability after that date.
What the agent is described as doing: A user gives Autopilot a name, role and goal; it can watch channels, follow up on threads, run recurring work and resume a project days later without a new prompt. The example is managing a supplier review from scheduling and preparation through meetings, follow-ups and stakeholder updates. It is cloud-hosted and is described as continuing to work while the user is away.
How it is situated: Autopilot is described as having its own identity, memory, computer and workspace in the user’s tenant, with Microsoft IQ context and access through Teams, Outlook, chats, channels and documents. The post says users set objectives and boundaries, with permissions, audit and governance behind it.
OpenClaw: The supplied announcement does not establish a relationship between Autopilot and OpenClaw; it describes Autopilot as Microsoft’s tenant-based digital teammate.
What is upcoming, and what is separate: The post says a user will “soon” be able to describe a goal and have Copilot route it to Chat, Cowork or Code; it presents this as a Copilot experience, not as an Autopilot feature.
Concrete coding capability: The coding offer is the separate Copilot capability called Code. Users can describe an app, tracker, dashboard, automation or workflow in natural language and have it built; examples include desktop widgets, interactive data dashboards and cloud-hosted internal apps. Code is described as sandboxed, tenant-hostable and powered by the same underlying technology as GitHub Copilot; the post says developers will continue using GitHub Copilot for day-to-day work. Its stated rollout is Frontier at month-end, broader availability in the coming weeks, and preview for Microsoft 365 Premium and Pro subscribers later in the year.
Related developer infrastructure: Copilot Managed Runtime is described as hosting for code inside a company’s Microsoft 365 environment; the post says it is already in preview and will also be accessible inside Code.
- Multi-model coding-plan workflow: OpenRouter’s “Mixture of Models” prototype combined several models’ answers using another model . For a coding test, the team gave multiple models the same architecture-planning task, fused their proposals, then asked each model whether the fused plan beat its own; they reported a few positive spot checks and said it still needed benchmarking . An earlier prototype sometimes matched or underperformed the strongest model, which was then far ahead of the others; the team said fusion looked more promising as the top models grew closer in capability .
- Agent orchestration pattern: OpenClaw used its chosen model for both periodic “heartbeat” checks and real tasks; the speakers noted that heartbeat calls should not be expensive and that OpenRouter’s auto-router was useful as this agent pattern reached more users . Hermes emphasized skill management and agent memory, while the speakers noted that memory abstractions are difficult to standardize because developers have varied preferences .
- The presenter says Claude Opus 5.5 is strong at visual and front-end work. In Claude Projects, he iterated on a teaser-page redesign using Claude Design, produced a mobile view, and generated a slide deck from his phone; the account gives a high-level iteration workflow but no specific prompt or code handoff.
-
For a code-generation test, he reports iterating with Opus 5.5 to create an animated video using roughly 300 lines of code; his output included a
do.htmlfile and another file for rendering the video. - The presenter says he spent $3,000 in tokens over two weeks testing new models and implementing tools in his business; he does not give a quantitative coding benchmark for these examples.
- Anjney Midha described a first-person coding experiment: give several models the same architecture plan for a code change, fuse their answers, then ask each model whether the fused result is better than its own answer. Repeated trials looked promising in spot checks, but he said the approach still needed benchmarking . OpenRouter’s earlier Mixture of Models experiment sometimes produced a result no better than the leading model when it was far ahead of the others, so fusion’s value should be tested rather than assumed .
- Midha said Claude 3.5 Sonnet brought a major coding improvement in mid-2024 and drove a surge in app usage; users then paid closer attention to inference costs and sought more efficient, equivalent models .
- OpenClaw used model calls for liveness heartbeats as well as task execution, with the discussion citing a roughly 30-minute cadence; Midha said OpenRouter’s auto-router was useful as this agent pattern spread, while noting heartbeat calls as a cost consideration . Hermes was also described as emphasizing auto-routing and making agent memory configuration and skill creation easier .
The video is a narrated recap of the Rails World keynote . It reports that 37signals treats hand-written code as an exceptional state: when it happens, ask why the agent failed and improve the process. The described loop is to evaluate generated output, revise the English prompt or constraints when something is wrong, and regenerate the component rather than hand-editing it.
The recap says the keynote speaker gave an agent a design screenshot and English instructions for a calculator; seven minutes later it had produced a functioning QT C++ app, despite the speaker not knowing C++.
The speaker recommends robust CLIs over in-app AI chatbots so users’ agents can interact with an app directly. In the Hey email example, an agent used a vague conceptual recollection—an email about “sneakers in a podcast”—to find an old message without navigating the GUI.
- Peter Steinberger’s firsthand OpenClaw workflow uses an auto-review skill: a reviewer starts in a fresh context, challenges the implementation, and the writer responds and fixes issues; the review can repeat for up to about 10 rounds. He also gives agents disposable test boxes to install and inspect software, interact with its UI, and verify behavior end to end away from his development machine. Thorough validation can turn a 10-minute PR into a two-hour task, but he can leave it running and parallelize roughly 20 tasks.
- For contributions, Steinberger says a bug report with reproduction steps can be more useful than a PR, while feature ideas benefit from iterative human direction. He values a sanitized prompt attached to a PR as evidence of how well the contributor understood the problem; OpenClaw’s skill can ask for the prompt and screen out private or irrelevant content.
- For agent access to searchable sources such as Slack, Steinberger favors skills plus CLI crawlers and locally available data over repeated connector calls; he says serial MCP searches can take 10–20 seconds, compared with about 0.2 seconds for a database-backed approach. His Slack example makes the data available from the local machine’s database.
After two to three days of exploration, Sanfilippo says he had a significant CAD proof of concept; turning it into a product would still take months of development. His practical takeaway for coding agents is to treat implementation as only part of product creation: keep refining the human-led decisions that make it useful, such as interface interactions, algorithm trade-offs, latency, mesh generation and export, supported file formats, and constraint behavior. He describes researching algorithms with AI and emphasizes the value of deep domain familiarity in making those choices. He also suggests advanced agents could make copying complex software and its interactions easier, but presents this as a possibility, not a firsthand workflow.
- TJ’s firsthand Opus 5.5 test: He built a podcast-inspired narrative game in under two hours with “not very many prompts,” asking the model to research material from the podcast; this is a concrete rapid-prototyping example, though no exact prompt is shared.
- Trash’s firsthand Astra experiments: Across a two-week game project, Trash found Astra better at modeling than coding. He also tested a multiplayer prototype with friends and reported that PartyKit play was too laggy to use together, despite a room-code setup.
- Evaluate working behavior, not just demo polish: Participants noted that 5–10-second demos of familiar games such as Minecraft can look convincing, while functional details like crafting or biome changes may fail; abundant existing open-source examples may also help produce familiar-looking results. A participant also argued that model recall of prior solutions is useful for routine programming problems, since many have already been solved elsewhere.
- ThePrimeTime describes Jev as a decision/classification tool rather than a conversational code-writing model: provide a defined state and constrained questions, such as choices or yes/no checks; multiple questions run in parallel. He suggests using it to remove task-irrelevant context before passing the remainder to a larger agent.
- In his account of a Super Smash Bros. event with 2,000 participants controlling four characters, a slow agent took about 1.5 minutes to moderate messages; his proposed workflow was to classify each incoming message in parallel and remove inappropriate ones as they arrive.
- He reports that one Smash Bros. question used 345 input tokens and estimates roughly 3 million such questions for $44 with input-only billing; he does not identify the underlying model, so this is a demo estimate rather than a comparable benchmark.
- Twoclipping shared a prompt template for Opus 5.5 motion-design videos, claiming the example was entirely code with no After Effects; Kent C. Dodds singled out the XML-style prompting as what impressed him.
- The prompt’s workflow is to ask first for 8–12 UI states, a color scheme, and a royalty-free song around 120 BPM, then show the states on a beat grid before coding. It separates inputs, visual direction, sequence, build instructions, and gotchas into tagged sections.
-
Build instructions make the animation deterministic: use one 1440×1440 HTML file whose styles are computed from
seek(t), with closed-form springs; analyze the song’s beat grid with NumPy, render in Playwright using four subframes per frame and ffmpegtmixfor 60fps motion blur, and inspect one frame per beat before the full render. The prompt also warns to independently time text entering and exiting morphing containers and make the loop’s final frame match its first.
Fireship’s sponsored, first-person Hyper Agent example routes work through a shared Slack channel for a dozen stable owners: agents run continuously on inexpensive Chinese models, create market research, images, and copy on request, and send feature requests to a coding agent that drafts changes and opens pull requests; questions go to the relevant owner, with the narrator alerted when a merge needs approval. Hyper Agent’s newly announced Workspaces lets a team share an agent, skills, and memories, and supports agents handing jobs off to humans.
Kent C. Dodds says an official plugin is still being worked on, but Muse can connect to Kody through the Kody CLI; he reports users are getting value from letting Muse use and contribute to their personal software ecosystem in Kody. The post links to Kody’s Muse onboarding.
@kentcdodds shared an Opus 5.5 one-shot video intended to make Kody clearer . In the linked post, @kodykoala describes the workflow as running code in Kody, turning it into a Git repo and pushing it, publishing it as a tool once checks pass, and making it callable by name by any agent; @kodykoala says the video’s code and output came from one real run .
Kent C. Dodds says he can prompt his Grok Bot by @-mentioning it on X; the linked example requests that an onboarding command be fixed and the requester notified when it is done, but provides no setup details or outcome.
Kent C. Dodds says his agent independently handled a file-delivery workflow involving a temporary file server and tunnel to Dropbox, and credits Cloudflare’s “agent-ready” infrastructure; the post does not identify the agent or give reproducible setup details.
LangChain authors Sydney Runkle and Hunter Lovell describe a transferable agent pattern: keep control flow in code/graphs and use models for semantic branch decisions; Jev returns typed decisions with probabilities, while graph state carries context between steps and graph topology encodes domain logic rather than overloading prompts. For a bounded browser-agent action space, Browserbase’s Stagehand flow marks interactive elements, has Jev choose an action type and target, and falls back to an LLM below 0.7 confidence; LangChain reports early tests reduced median act() latency from 1.97 seconds to 0.46 seconds, about 4.3× faster. For reliability, checkpoint each step so failed runs resume with prior decisions intact, add human approval interrupts where needed, and trace model-driven decisions in LangSmith.
Add an x86-64 assembly engine for all 37 effects by dhh · Pull Request #35
and others added 30 commits September 25, 2026 09:47
Link an x86-64 assembly engine into ttfx, starting with decrypt
bca19ac
Rust stays the front end: it parses arguments, reads the input and seeds
the RNG, then offers the run to the assembly engine (asm/, built by
build.rs with NASM). The engine declines anything it has not ported, before
producing output, so the Rust engine runs it instead. TTFX_ASM=0 forces
Rust; TTFX_ASM=force fails instead of falling back, which is what
tools/asm/oracle.sh uses to compare the two engines byte for byte.
Decrypt is the first effect: 206/206 oracle cases identical, 14.5x faster
at 200x50 (371 ms -> 25.5 ms).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Add the asm porting guide, differential tests and RNG helpers
35a700c
asm/PORTING.md is the working manual for porting effects and utilities:
conventions, PIC rules, matching the oracle's compiled float code, and how
to verify. tests/asm_diff.rs compares asm functions with their Rust
originals, starting with randint, uniform and shuffle.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Document coordinate and easing formats for asm ports
af37688
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Port the geometry and color math to the asm engine
2458dc9
asm/utils/pycompat.asm: round_half_even, floor_div, py_mod and the
saturating f64_to_i64 cast, with pycompat.rs's non-finite rounding.
asm/utils/geometry.asm: every pub function of src/utils/geometry.rs on
packed u64 coordinates, plus the streaming ellipse. The float lowering
mirrors the compiled oracle: powf(x, 2.0) as x * x, powf(x, 0.5) as
sqrtsd with LLVM's fabs and -inf fix-ups, the sin/cos pair as sincos,
lengths through glibc hypot, and the bezier length's omitted final span.
asm/utils/color.asm: adjust_color_brightness, shift_color_towards and
random_color on the u64 color format, in the oracle's operation order.
tests/asm_diff.rs compares every function with Rust bit for bit on
boundary, degenerate and random inputs, and the color functions over all
256 values of each channel crossed with many factors.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>Build out the asm engine: characters, scenes, events, motion, particles
b9231b6
The engine now covers what effects need beyond decrypt:
- chars.asm: the character store as fixed-capacity SoA regions, fill
characters, neighbors and the input-coordinate map
- terminal.asm: get_characters with all seven sorts and
get_characters_grouped with all ten groupings, canvas helpers
- scene.asm: named scenes with plain, synced and eased playback, looping,
gradients (cyclic distribution) and set_appearance
- events.asm: the event table with reentrant, append-safe dispatch
- motion.asm: paths, waypoints, segments and the exact Path.step walk
- update.asm and particles.asm: the active set, update and particle pools
- easing.asm (ported by Codex): all 31 easings, EasingTracker and
SequenceEaser, bit-identical to the oracle over 4.3M comparisons
Decrypt runs on the general engine: 206/206 oracle cases, 32.5 ms against
Rust's 371 ms.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Merge the geometry and color math port
058141b
Ported on cph-a2 by a Claude agent: every geometry function, pycompat
rounding and Python integer division, adjust_color_brightness,
shift_color_towards and random_color, each checked against Rust in
tests/asm_diff.rs. Motion and gradients now use these instead of the
interim path geometry.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Document the asm engine API for effect ports
ee03a4a
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Port synthgrid to the asm engine
fc16950
synthgrid_build/synthgrid_next_frame transcribe src/effects/synthgrid.rs:
grid lines as consecutive added slots with an extended prefix, blocks as
one flat member array, the group tracker as an effect callback, and a
memo of the dissolve visuals. marshal packs the grid/text gradients, the
grid symbols, the generation symbols and max_active_blocks.
oracle synthgrid full: 1766 passed, 0 failed.
200x50: Rust 108 ms, asm 14 ms (best of 5, pinned).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Port vhstape to the asm engine
bc685b8
vhstape_build / vhstape_next_frame transcribe src/effects/vhstape.rs:
per-character glitch, restore and wave paths, the six scenes, the
glitch wave, glitch lines, noise and the line-by-line redraw, with
every RNG draw in Rust's order. Snow visuals are memoized per
(color, symbol), and lines are the engine's row groups.
oracle.sh vhstape full: 1958 passed, 0 failed.
200x50, best of 5: Rust 190 ms, asm 44 ms.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Port the blackhole effect to the asm engine
212f9f2
blackhole_build / blackhole_next_frame transcribe src/effects/blackhole.rs
draw for draw: ring selection, starfield, singularity, collapse and
explosion. Starfield visuals and their fades are made once and reused;
phase checks use a membership bitmap over the active set.
Every option is supported; tools/asm/oracle.sh blackhole full passes.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Merge commit 'bc685b8' into asm-zen5
3b7f083
# Conflicts:
# asm/effects/registry.asm
# src/asm/effects.rsMerge commit '212f9f2' into asm-zen5
95c5c3b
Add a resolver for the conflicts effect-port merges always produce
ada2597
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Port wipe to the asm engine
f20dee1
Groups come from get_characters_grouped and are eased with the asm
SequenceEaser; each character gets one "wipe" scene whose gradient runs
from the final spectrum's first color to its mapped final color (reused
while consecutive characters share that color). The dynamic
existing-color branch is ported too. Final gradient frames outside the
i32 range are declined in marshal; values below 1 fail like Rust.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Port the highlight effect to the asm engine
162299a
Every option is supported: all ten highlight directions, brightness,
width and the final gradient. The highlight spectrum is recomputed only
when a character's base color changes from the previous character's.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Port the sweep effect to the asm engine
11f5f63
Both sweeps' scenes are built in Rust's order so every RNG draw lines up;
the SequenceEaser walks the first direction's groups, then the second's.
Visuals are memoized per (symbol, color). Dynamic color handling is
ported (input-color palette with the spectrum fallback).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Port the randomsequence effect to the asm engine
70037dc
Transcribes src/effects/random_sequence.rs: the final gradient mapped over
the text, one 8-frame fade from the terminal background per character
(dynamic color handling included), a shuffled reveal of characters_per_tick
characters per frame. Frame durations beyond 32 bits are declined.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Port the rings effect to the asm engine
2aade1a
Rings gives every ring character one single-waypoint path per ring
coordinate, chained in a loop. The port keeps one engine path per ring
character that stands in for all of them: activating ring path k points
its waypoint at the k-th rotated coordinate and swaps in path k's own
total and origin distance, so each path's rounding history is kept
exactly. The chain becomes a callback, which keeps event lookups short.
The engine gains path_reset (motion.asm) for the "disperse" path that
Rust removes and recreates every cycle.
oracle.sh rings full: 2342 passed. 200x50, best of 5: Rust 0.577 s,
asm 0.145 s.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Port the ANSI input preprocessor to the asm engine
a0cbd7b
A screen map keyed by (row, column) replaces the one-row buffer, so cursor
movement and overwrites behave as in input.rs: SGR colors (xterm and 24-bit,
with its widening quirk), the four ignored private modes, CSI cursor moves,
OSC and bare escapes with Rust's error text, input color frequencies,
preexisting_colors_present, and existing-color-handling always at creation.
Rust still declines ANSI input until the oracle covers it.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Merge commit 'f20dee1' into asm-zen5
a13da00
# Conflicts:
# asm/effects/registry.asm
# src/asm/effects.rsMerge commit '162299a' into asm-zen5
cd65bfb
Merge commit '11f5f63' into asm-zen5
7961305
# Conflicts:
# asm/effects/registry.asm
# src/asm/effects.rsMerge commit '70037dc' into asm-zen5
148fd66
# Conflicts:
# asm/effects/registry.asm
# src/asm/effects.rsMerge commit '2aade1a' into asm-zen5
3588187
# Conflicts:
# asm/effects/registry.asm
# src/asm/effects.rsPort matrix to the asm engine
a6ffaa2
matrix.asm transcribes src/effects/matrix.rs: rain columns as fixed
records (pending as an index, visible as a start/end window), a pending
ring and active/full index arrays, the wall-clock rain deadline through
clock_wall, and current symbols/colors read back with visual_meta. The
dynamic existing-color branch is ported too.
Color == compares hex spellings, so the marshalling tags hex stops spelled
unlike Color::from_rgb (bits 48+, ignored by rendering and color math).
Engine: RNG_BITS53 and rng_threshold (rng.asm) decide random() < c as an
integer compare with the batch read inlined, tested against Rng::random in
asm_diff. oracle.sh gains "@global <args>" in case files; matrix uses it
for --virtual-clock, since real-clock frame counts are not reproducible.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Port the expand effect to the asm engine
7d2aa41
Every option is supported, including the dynamic existing-color branch.
oracle expand full: 2726 passed; 200x50 run: Rust 109ms, asm 51ms.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Port the spray effect to the asm engine
7bdca9d
Every option is supported: all nine spray positions, volume, speed range,
movement easing and the final gradient. The dynamic existing-color branch is
ported too, for when the input side lands.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Port the scattered effect to the asm engine
e2e1ab4
scattered_build/scattered_next_frame transcribe Scattered::build and
next_frame: a random start per character, one auto path home with the
SetLayer events, and a distance-synced gradient scene (the last character
gradient is reused while the final color repeats). The dynamic color branch
is ported too. Frame durations outside i32 are declined in marshal.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Merge commit '7d2aa41' into asm-zen5
7647604
# Conflicts:
# asm/effects/registry.asm
# src/asm/effects.rsMerge commit 'a6ffaa2' into asm-zen5
cf420e6
# Conflicts:
# asm/effects/registry.asm
# src/asm/effects.rsand others added 2 commits September 25, 2026 19:56
Merge branch 'asm-zen5' into worktree-agent-ae3a903ce3bd28da2
6f0b7a5
Drop NASM's nehalem level for TIER 2
eabfa22
NASM 3.02's nehalem and westmere levels reject SSSE3, SSE4.1 and SSE4.2
(roundsd, pshufb, ptest), so they refused tier-clean v2 code. TIER 1
keeps cpu x86-64; isa-audit.sh remains the exact check for every tier.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>mentioned this pull request Sep 26, 2026
Draft
and others added 23 commits September 25, 2026 20:52
Track dirty blocks of 4 cells, and prefetch only real cells
2907fe4
Four-cell blocks halve the cells formatted for sparse changes (one quad
per block) at a small cost in block starts. The bitmap comes from one
vptestmd per 64 cells (vpcmpeqd/vmovmskps below TIER 4, pcmpeqd/movmskps
at TIER 1). A move off the visible window no longer prefetches the
sentinel cell's address.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Merge branch 'worktree-agent-a1f3c152a5753506b' into asm-zen5
63999d1
Merge branch 'worktree-agent-a533e2003dfaff28a' into asm-zen5
4ba6bfa
Format short clean gaps with their dirty runs, and emit a block per quad
07d5b2c
A clean gap of fewer than four blocks between dirty runs is now
formatted rather than copied: a copy's fixed cost (block starts, the
aligned byte loop, the run scan) exceeds formatting a few cells. The
emission loop handles one 4-cell block per iteration, storing the
block's start once, with a cell-by-cell path for long visuals and the
row's partial last block.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Merge branch 'asm-zen5' into worktree-agent-a6f70fa3d21cd8aef
7617fb5
Visit only the window of active words in update, and tick movers inline
132c051
update's snapshot, tick and prune passes scanned every bitmap word each
update, which is most of print's cost and a good part of decrypt's.
They now visit the words [active_lo, active_hi) that can hold active
characters: active_insert widens the window and each prune narrows it.
Candidates outside the window are inactive, so skipping them keeps the
prune equal to Rust's retain. A character with a path is ticked through
motion_move and step_animation_awake directly instead of tick_awake.
print -18% and decrypt -6.5% instructions.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Step paths without a frame when no segment event can fire
2c90d2e
path_step pushed six registers and walked through the event checks on
every step. Now the cursor search over the exact prefix sums also covers
the segment after the fired run (PA_REACH, kept current wherever
PA_INT_COUNT or PA_DONE change), and when the segment the walk would test
next holds the destination and was entered already, the step computes
its position in scratch registers and tail-calls the line or curve.
Everything else - a segment to enter or leave, NaN or huge distances -
takes the unchanged walk.
2-7% fewer instructions on the path effects (slice -11%, binarypath
-10% with the other changes).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>…line
A synced scene reads its frame list every tick, and expand, scattered,
swarm and crumble give thousands of characters private copies of a few
hundred distinct gradients, which spread each update over the whole frame
region. scene_activate now looks a synced scene's frames up by content
(a hash table of up to 64-frame lists) and points the scene at the first
identical list. Lists are only appended to, and appends outside the end
of the frame region move the scene's own frames first, so a shared list
never changes under another scene; an append or a copy clears
SCF_SHARED so the next activation looks the list up again. When under one
list in four repeats after the first 256, the lookups stop for the run.
Plain scenes read their frames once per frame, and there the lookups
cost more than they saved (sweep, beams), so they keep private lists.
step_synced_scene rounds with ROUND_HALF_EVEN instead of its own 2^52
path.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Stagger the per-slot arrays within a page to stop 4K aliasing
02880cb
Every character field array, update's bitmaps and ch_wake, and a scene's
hot and cold halves started on a page boundary, so a slot's entries in
any two of them shared their addresses' low 12 bits. A tick stores to
one and loads from another all the time (the snapshot word then the doze
word, ch_handle then ch_cell, ch_row then the cell lookups), and each
such load waited on the unrelated store. The field arrays now start 192
bytes apart within a page, the bitmaps 640 bytes apart, and SCENE_COLD
(ttfx.inc) sits 2080 bytes past the hot half.
No instruction changes; cycles drop 2-14% across the effects (colorshift
-14%, overflow -13%, slide -11%, binarypath -9%).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Walk unstable's active bitmap by words instead of testing every slot
af4f360
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Interpolate both axes of a line or one-control curve at once
6df95a8
find_coord_on_line and the one-control-point bezier converted, scaled
and rounded the column and the row one after the other. They now load
each point as a (column, row) pair with cvtdq2pd, do the same multiplies
and adds per lane with SSE2 packed math, and round both with cvtpd2dq,
which rounds half to even like cvtsd2si. A lane outside i32 (cvtpd2dq's
0x80000000, also NaN) still takes the scalar path, which wraps like the
i64 cast. The bezier's fast case no longer saves registers.
3-5% fewer instructions on the path effects, 5-7% on fireworks and
crumble.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Skip matrix's no-swap characters straight from the RNG batch
6c2557b
Each visible character draws two chances per frame and nearly always
misses both. Scan the batch for the first pair with a hit (four
characters per AVX2 pass at TIER >= 3) and advance the draw position in
one step; the draw sequence is unchanged.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Cache overflow's recolor visuals per (spectrum index, symbol)
ff3b021
A scrolling row is recolored every time it moves, which interned a
visual per character per move. Number the input symbols at build time,
copy the id to every row copy, and keep one handle per (index, symbol
id); only the first use of a pair calls visual_make. The cache is off
when input colors override (existing-color-handling always).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Walk identical paths over one shared segment list
a2fa9c3
binarypath gives the eight bit characters of an input character
identical paths, and each walked its own segment list; stepping is bound
by the misses on them. When a path is activated and its owner has no
segment events, its segments are now looked up by content (all but the
event flags) and the path walks the table's immutable copy, whose flags
read as fired. Without events nothing can reset a path mid-walk, so its
own flags follow from its record - fired before PA_DONE, PA_DONE entered
once a step was taken - and a walk past the fired run only extends
PA_DONE. New waypoints, activation, path_reset and registering a segment
event for the owner (event_register) first give the path a private copy
with those flags written out. When under one list in four repeats after
the first 256, the lookups stop for the run.
binarypath -8% cycles; the other path effects are unchanged.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Merge branch 'asm-zen5' into worktree-agent-a188e1b5b0227d8a5
0c34ea5
Stagger reserved regions so field arrays don't alias
42f97cb
mmap packs the huge reserved regions together, so every character
field array had the same low 28 address bits: a slot's entries shared
one cache set across all arrays, and a load from one array waited on a
store to another (4K aliasing) - the stalls behind paint_rec and
cell_link. Offset each region by index * (4096 + 192) bytes.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Clone beams' scenes from an earlier character with the same look
182da70
A character's three scenes depend only on its symbol and colors (the
beam gradients are shared), so build them once per (symbol, fg, bg)
and scene_copy them for every later match. Off under existing-color
handling always, where input colors enter the frames.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Take errorcorrect's random characters through a Fenwick tree
779ee0e
all_characters.remove(i) shifted the rest of the list for every pick,
O(n) each. Find the k-th remaining character by Fenwick descent instead;
the order, and so every pick, is unchanged.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Clone waves' wave scene instead of re-appending its frames
e3c5812
Every character's eased wave scene is the same unless its input colors
enter the frames. Clone the first one with scene_copy (one block copy)
instead of appending the template's frames one call at a time.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Clone unstable's rumble and final scenes per (symbol, color)
0a3e9f0
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Clone burn's burn scene instead of rebuilding it per character
23a1bd2
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Keep the character field arrays page-aligned
3d9c11b
Staggering them within a page measured neutral over the 37 effects on a
quieter machine (geomean 1.000 against page-aligned arrays) and cost
matrix 8-13% in every run, so only update's bitmaps and the scene halves
stay staggered.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>Merge branch 'asm-zen5' into worktree-agent-a6fee685b7782c2e2
189840b
- Performance: The PR reports decrypt at 200×50 taking 371 ms in Rust and 25.5 ms in assembly (14.5× faster), with 206/206 oracle cases identical. That supports the result as a PR-reported benchmark, but the excerpt does not provide independent benchmark data or enough methodology to verify the exact figure.
- Qualification: A later update reports the general assembly engine at 32.5 ms versus Rust’s 371 ms, again with 206/206 oracle cases identical. It does not say whether this used the same benchmark setup, so it corroborates a large speedup but does not establish the exact 14.5× result as the final comparable measurement.
- What changed: The excerpt describes a 30-commit series, not a one-shot change. Its core design keeps argument parsing, input reading, and RNG seeding in Rust, dispatches supported effects to the NASM-built x86-64 engine, and falls back to Rust for unported effects.
TTFX_ASM=0forces Rust;TTFX_ASM=forceprevents fallback and is used for byte-for-byte oracle comparison.