Skip to content

[probe] #18664 — bisecting GitHub's real issue-body refusal boundary, in BYTES #18793

Description

@os-justin

Throwaway measurement target for #18664. Bisection finished; this body is the record. Closed as completed.

What was measured

GitHub's refusal boundary for an issue body, in bytes, bracketed by writing bodies of chosen byte sizes through scripts/pm/post-stamped.mjs --body=18793 and reading each one back byte-exact. Exit 0 with read-back class identical = the platform stored every byte sent; exit 4 (EXIT_NOT_STORED) = the platform kept the OLD body and reported nothing.

Result: the largest body that stores is 262,144 bytes (256 KiB). 262,145 bytes is refused. The boundary is a single value, bracketed on both sides by writes from this run.

The bisection

# size sent (bytes) chars exit class verdict
1 257,945 257,945 0 identical landed
2 263,533 263,533 4 not stored refused
3 260,739 260,739 0 identical landed
4 262,136 262,136 0 identical landed
5 262,834 262,834 4 not stored refused
6 262,485 262,485 4 not stored refused
7 262,310 262,310 4 not stored refused
8 262,223 262,223 4 not stored refused
9 262,179 262,179 4 not stored refused
10 262,157 262,157 4 not stored refused
11 262,146 262,146 4 not stored refused
12 262,141 262,141 0 identical landed
13 262,143 262,143 0 identical landed
14 262,144 262,144 0 identical landed
15 262,145 262,145 4 not stored refused
16 262,145 222,145 4 not stored refused (multi-byte)
17 262,144 222,144 0 identical landed (multi-byte)

Rows 1 and 2 re-took the two endpoints the filing card reported, as this run's own bracket. Rows 3 to 15 bisected it to one byte.

The unit question, answered by measurement

Rows 16 and 17 fill the body with a 20,000-character run of U+4E2D (3 UTF-8 bytes each) plus ASCII padding, so byte length and character length differ by 40,000.

  • Row 16 sends 262,145 bytes but only 222,145 characters. A limit counted in characters (or in UTF-16 code units, which are the same number here) would have accepted it with 40,000 to spare. It was refused.
  • Row 17 is the positive control: the same multi-byte shape at 262,144 bytes / 222,144 characters landed, so the refusal in row 16 is the one extra byte and not the multi-byte content.

The platform counts UTF-8 BYTES. 262,144 = 256 KiB exactly.

One incidental reading

Every landed write above read back as identical — no trailing-newline strip (these bodies carry no trailing newline) and no synthesised footer on an ISSUE BODY. That is the cell post-stamped's header calls unmeasured; it stays unmeasured for a body that DOES end in the footer block, which none of these did.


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions