Skip to content

Address challenge feedback from Discord - #267

Open
zardus wants to merge 2 commits into
mainfrom
feedback/20260724-083849
Open

Address challenge feedback from Discord#267
zardus wants to merge 2 commits into
mainfrom
feedback/20260724-083849

Conversation

@zardus

@zardus zardus commented Jul 24, 2026

Copy link
Copy Markdown
Member

THIS MESSAGE IS GENERATED BY AN AUTOMATED PROCESS.

Summary

  • Addresses curriculum issues identified from sanitized public Discord messages.
  • Adds computing-101/endian-escapades/zero-extension before Sign Extension, with checker and private-test coverage for unsigned byte boundaries. Sign Extension now builds on that lesson, and both levels use the shared common/harness-byte.c.
  • Adds computing-101/numbers-as-strings/divide-remainder to teach x86 div separately from buffer output. itoa-two-digits/DESCRIPTION.md now focuses on byte stores, while itoa-digit and the new level share common/harness-scalar.c.j2.
  • Updates computing-101/nibbling-on-numbers/mixed-conversions/DESCRIPTION.md to name /challenge/mixed.
  • Adds the linux-luminarium/text-editing module and its artifact-checked nano-basics challenge before Chaining. The common image now installs Nano explicitly, and chaining/script/DESCRIPTION.md links to the new lesson.
  • Updates linux-luminarium/users/su/DESCRIPTION.md to explain that password entry displays neither characters nor asterisks.

Validation

  • The third nix develop test run passed all 133 challenges and 146 test cases.
  • The Computing 101 and Linux Luminarium dojo manifests parsed successfully.
  • Focused end-to-end tests passed for both extension levels, build-frame, all affected number-to-string levels, Mixed Conversions, Nano, shell scripting, and su.
  • Nano was exercised through the installed editor in a PTY, and a separate PTY check confirmed successful su authentication with no password echo.
  • Seven of eight UX casts completed successfully. The script-via-Nano cast failed only because its final command was recorded through a pipe that the challenge intentionally rejects; the interactive PTY test passed.
  • Syntax checks, git diff --check, and git-crypt attribute checks passed.

Notes / deferred follow-ups

  • Getting Started was not changed because its active curriculum source is outside this repository; the legacy welcome mirror is not an appropriate target. Building a Web Server was excluded from this run.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f58d19972d

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".



def check_disassembly(disas):
assert any(insn.mnemonic == "div" for insn in disas), (

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Require div to be executed, not just present

Because load_shared_input() disassembles from the exported symbol through the rest of .text, this presence check can be satisfied by placing an unreachable div after ret. For this level's 10-99 inputs, a repeated-subtraction implementation can return the correct digit sum and get the flag without ever executing division, so the new level does not enforce the division concept it is meant to teach; constrain the check to the reachable instructions before ret or validate the actual quotient/remainder flow.

AGENTS.md reference: AGENTS.md:L49-L54

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

THIS MESSAGE IS GENERATED BY AN AUTOMATED PROCESS.

Addressed this feedback and pushed commit 6fd6289e.

Original feedback: #267 (comment)

Automated run notes:

Validation:

  • python3 -m py_compile challenges/computing-101/numbers-as-strings/divide-remainder/challenge/.py/chal.py
  • git diff --check
  • nix develop --command pwnshop test challenges/computing-101/numbers-as-strings/divide-remainder (passed: 1 challenge, 1 testcase)
  • In nix develop, built and submitted a repeated-subtraction solve with div after ret; the checker rejected it with the new diagnostic and did not print a flag.

@zardus

zardus commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

THIS MESSAGE IS GENERATED BY AN AUTOMATED PROCESS.

In response to #267 (review):

Addressed this feedback and pushed commit 6fd6289e.

Original feedback: #267 (review)

Automated run notes:

Validation:

  • python3 -m py_compile challenges/computing-101/numbers-as-strings/divide-remainder/challenge/.py/chal.py
  • git diff --check
  • nix develop --command pwnshop test challenges/computing-101/numbers-as-strings/divide-remainder (passed: 1 challenge, 1 testcase)
  • In nix develop, built and submitted a repeated-subtraction solve with div after ret; the checker rejected it with the new diagnostic and did not print a flag.

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