Skip to content

Make tutorials 50–53 safer to operate - #225

Merged
yunwei37 merged 4 commits into
mainfrom
agent/tutorials-50-53-usability
Jul 22, 2026
Merged

Make tutorials 50–53 safer to operate#225
yunwei37 merged 4 commits into
mainfrom
agent/tutorials-50-53-usability

Conversation

@yunwei37

Copy link
Copy Markdown
Member

What changed

  • keep lesson 50 attached until signal/duration, emit READY, then detach before reporting a stable final counter snapshot;
  • make lesson 51 dry-run by default and require an exact local+remote 4-tuple before destroying one socket;
  • add device, inode, and file-type identity to lesson 52 slow-read events;
  • make lesson 53 report qdisc conflicts and an explicit, manual crash-recovery command;
  • strengthen topic-selection and tutorial-writing skills so practical operator workflows are checked before publication;
  • preserve the original bilingual tutorial narratives and keep public examples on the normal operator path rather than showing test-harness output.

Why

The existing examples loaded successfully but had lifecycle, safety, or actionability gaps. These changes make the public workflows usable without turning the tutorials into test fixtures.

Validation

  • clean host builds for lessons 50–53;
  • documentation unit tests, generated-index check, relative-link check, and exact embedded-source checks;
  • KVM integration tests on x86_64 Linux 7.2.0-rc4 for all four lessons, covering READY/signal cleanup, exact socket selection, VFS object identity, qdisc conflicts, pacing, and crash recovery.

Lesson 54 is intentionally excluded and remains in a separate PR for further revision.

tgoodwin commented Jul 22, 2026

Copy link
Copy Markdown

Independent review gate 1 — exact-head maintainer review

Reviewed final pushed head ac8008aaf8b04ea405fd11371bae93c753b27901 against origin/main.

Verdict: no blocking or actionable findings.

The review specifically rechecked the prior lesson 53 blocker: global struct_ops conflicts now print qdisc state across all interfaces and do not suggest deleting the requested interface, while target-interface root-qdisc conflicts retain the interface-specific diagnostic and recovery command. The cross-interface regression exercises a stale bpf_pacer owner on one interface and a launch attempt on another.

Also verified:

  • changed-path scope is limited to tutorial skills and lessons 50–53; no lesson 54 path is in the diff;
  • 50–53 safety/lifecycle behavior matches the requested improvements;
  • English and Chinese complete kernel/BPF source blocks match the checked-in source exactly;
  • long user-space loaders use focused excerpts under the final skill rule, while concise loaders remain complete;
  • public tutorial paths contain no repository test commands, harness output, fixtures, or migration-history narration;
  • both updated skills pass quick_validate.py; documentation tests (15/15), source-sync tests (13/13), link checks, git diff --check, host builds, and KVM functional runs passed.

Code-growth review: exact diff is 27 files, +1606/-620 (production/build +389/-134, docs/skills +913/-386, tests +304/-100). The size is justified by the requested operational and safety coverage across four existing tutorials plus bilingual source synchronization; no fixture bloat or unrelated abstraction was found.

Copy link
Copy Markdown

Independent review gate 2 — cross-agent review

A separate Kimi reviewer inspected final pushed head ac8008aaf8b04ea405fd11371bae93c753b27901 against origin/main in an externally enforced read-only workspace.

Verdict: approve; no blocking or actionable findings.

The review verified:

  • exact scope: 27 files, +1606/-620, with no lesson 54 path;
  • lessons 50 and 52 contain complete kernel/BPF source and permitted focused excerpts for their long user-space loaders; lessons 51 and 53 retain complete embedded loaders;
  • src/53-egress-pacer/tests/test_egress_pacer.py explicitly verifies the stale bpf_pacer owner before the cross-interface conflict check;
  • global and target-interface qdisc conflicts remain safely distinguished;
  • the final EN/ZH prose substitutions remove repository-test narration from lessons 51 and 52;
  • the updated tutorial-writing skills consistently encode complete kernel source, focused long-user-space excerpts, normal user workflows, and private test infrastructure;
  • remaining upstream selftest links are references, not reader-facing repository test steps.

Code-growth verdict: production/build +389/-134, docs/skills +913/-386, tests +304/-100; growth is focused and proportionate, and fixtures are minimal. Scope-boundary verdict: all public behavior, documentation, and skill changes are authorized by the requested 50–53 safety/usability work; no shared architecture or unrelated API was added.

@yunwei37
yunwei37 merged commit 2cdcd8b into main Jul 22, 2026
6 of 7 checks passed
@yunwei37
yunwei37 deleted the agent/tutorials-50-53-usability branch July 22, 2026 08:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants