Skip to content

Template build revamp#29

Open
julian-goldstein wants to merge 5 commits into
masterfrom
template-build-revamp
Open

Template build revamp#29
julian-goldstein wants to merge 5 commits into
masterfrom
template-build-revamp

Conversation

@julian-goldstein

Copy link
Copy Markdown
Contributor

No description provided.

julian-goldstein and others added 5 commits June 30, 2026 23:35
Make `yeet build` the frontend for a generated script and clean up what the
build shows and produces:

- Relocate the low-level machinery (Makefile, *.mk, toolchain scripts + lock)
  under .build/, behind a thin root Makefile shim that forwards to it. A
  generated project gitignores .build/ wholesale (it's regenerable); the
  template keeps it committed as the source scripts/new materializes from, and
  sync-toolchain rewrites the embed glue's paths into .build/.
- Style the build output: a header, one status line per step, and a sizes
  summary; plain ASCII off-TTY. Raw commands are hidden unless `make V=1`, the
  vendored "toolchain ready" line is gated the same way, and esbuild's own
  summary is silenced.
- Bundle to dist/index.jsx instead of src/index.jsx (gitignored), keeping the
  build output out of the source tree.
- Drop the unrollable #pragma from the runqlat log2 loop — it's a bounded loop
  the verifier accepts, so no more -Wpass-failed warning.

Note: dist/ resolution needs the companion CLI change (yeet run prefers a
built dist/ entry over raw src/main.jsx); ship the two together.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bundling collapses every module into one file that shares the entry's
import.meta, so the `import.meta.main` self-test guards (AGENTS.md) would all
see main === true and fire in the built app. Define it to false so they
compile to `if (false)` and drop; a standalone `yeet run src/probes/foo.js`
isn't bundled, so its guard still runs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Mirror the build's titled progress frame in `make clean`: a head
banner, a step per artifact group (BPF objects via clean-bpf, then the
JS outputs dist/ and node_modules/), and a done summary. clean-bpf's rm
now rides $(Q) so it stays quiet unless V=1, like the rest of the build.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Clarify in AGENTS.md that loading/attaching programs and creating maps
are privileged, but the agent never performs them: scripts run inside
yeetd, the CLI holds no privilege and delegates the work to the daemon,
which carries the BPF capability. Run yeet run/build as a normal user.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add two AGENTS.md notes: prefer CO-RE probes and pick the most stable
attach point (tracepoints/LSM, then fentry/fexit) before falling back to
kprobes on internal functions; and a top-of-file caveat that this yeet's
APIs move fast (and share a name with an older project) — verify against
https://yeet.cx/docs rather than training-data memory.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant