Repository navigation
The job log echoes every dispatch input, and a signed-in reader sees it - #71
Merged
Merged
Conversation
Both were written down as unknown in collect.yml, so both were fair game. INPUT LENGTH. Search could not close it. The one on-topic capture of seven was a 2024 community question asserting "its length is limited to 1024 characters", and its only reply is a dormancy bot - nobody ever confirmed it. The rest of the corpus was Gallup StrengthsFinder, Merriam-Webster and the MDN <input> element, because "input" is a common word and the search matched the word. So I dispatched payloads of known length with a marker at the end: 1200 chars run 35762363585 arrived as 1200, PROBE-END intact 8000 chars run 35762574315 arrived as 8000, PROBE-END intact 1024 is not what this repository observes, and the dangerous case does not occur: nothing truncates, so a registered prior cannot be quietly corrupted while still looking whole. Where the ceiling actually is remains unknown and is recorded as unknown - it is above 8000, and bisecting costs a dispatch a probe. THE SIGNED-IN SURFACE. ADR-0035 left this as "treat that as unknown rather than safe". It is not safe. Checked both ways on the same run: anonymously the input values appear nowhere in 236 KB of run-page HTML and the log says "Sign in to view logs", agreeing with the REST 403 - but signed in, the job log echoes every dispatch input verbatim, because Actions prints a step's env: block. TOPIC: probe PRIOR: PROBE-START length=1200 xxxxxxxx... On a public repository that makes the topic readable by anyone with a GitHub account. The 403 is an authentication wall, not a need-to-know one. Not worked around, deliberately. Passing an input through env: is the same rule that keeps it out of a shell (ADR-0020), and trading a disclosure to signed-in readers for a code-execution surface is a bad trade. disclosure.mjs is unchanged and should be: it probes unauthenticated on purpose. What changes is the claim. The anonymous table stands, every row - the error was in the step from what was measured to what it means. A list of refusals reads as "the subject is private" and it is not. The new guard pins that the table never appears without the caveat; confirmed red by deleting the caveat. 889 passed, 0 failed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two unknowns were written down in
collect.ymlas unknown. Both are now closed — neither by the corpus.1. Per-input length: nothing truncates
The kit's own collection could not answer this. The one on-topic capture of seven was a 2024 community question asserting "its length is limited to 1024 characters" — whose only reply is a dormancy bot. Nobody ever confirmed it. The other six were Gallup StrengthsFinder, Merriam-Webster, the MDN
<input>element and a TV input page, because "input" is a common word and the search matched the word rather than the subject. Same failure as the Tavily topic, now twice.So I measured it — payloads of known length with a marker at the very end:
35762363585PROBE-ENDintact35762574315PROBE-ENDintact1024 is not what this repository observes, and the dangerous case does not occur: no silent truncation, so a registered prior cannot be quietly corrupted while still looking whole.
Still unknown, and recorded as unknown: where the ceiling actually is. Above 8,000; bisecting costs one dispatch per probe, so it was not bisected. A realistic prior is a few hundred characters.
2. The signed-in surface — and this one is a correction
ADR-0035 left a hole and named it: "what a signed-in user with read access sees in the web UI… Treat that as unknown rather than safe."
It is not safe.
403env:is echoed verbatimActions prints a step's
env:block, so the log carries:On a public repository that makes the topic readable by anyone with a GitHub account. The
403is real, but it is an authentication wall, not a need-to-know one.Not worked around, deliberately
Passing an input through
env:is the same rule that keeps it out of a shell (ADR-0020). Routing around the log would mean routing around that protection — trading a disclosure to signed-in readers for a code-execution surface is a bad trade.bin/disclosure.mjsis unchanged and should be: it probes unauthenticated on purpose, because a probe that quietly authenticated would answer a different question while looking like this one.What actually changes
The anonymous table stands, every row. It was honestly obtained and it is still true. The error was in the step from what was measured to what it means — a list of refusals reads as "the subject is private", and it is not.
Both halves are kept, not swapped: a correction that erases what it corrected teaches nobody. The new guard pins that the refusal table never appears without the signed-in caveat and the mechanism that causes it, in either file that prints it. Confirmed red by deleting the caveat.
The practical consequence is now stated where someone will read it: to research something you would not publish, use a private repository or collect locally.
Verification
889 passed, 0 failed(offline suite)🤖 Generated with Claude Code