# PPortal changelog — alegauss

Every entry in PPortal's roadkeep ledger, dated by the commit that wrote it.

- 2026-10-12 · PP63: nothing in the tree can configure a Qt build carrying WebEngine, so PP46's before cannot be produced at all
- 2026-10-11 · PP858: the rumble intensity and haptic override sliders change nothing in a session
- 2026-10-11 · PP857: a console set to haptics Off still drives the pad, because the intensity it raises is held and never read
- 2026-10-11 · PP856: no workflow builds the installer or attaches it to a GitHub release, so every installer comes off one desk
- 2026-10-11 · PP855: the picture smears for the rest of a scene and nothing asks for a keyframe, because no loss the port counts occurred
- 2026-10-11 · PP852: RawBody reads a block-commented function as a real one, and nothing checks that the C contains none
- 2026-09-09 · PP850: a call-shaped check names the whole argument list, so an added argument breaks checks about something else
- 2026-09-09 · PP849: the prose census states its four per-verdict counts in a docstring, and the method deriving them has no caller
- 2026-09-09 · PP848: 51 files credit PP696 and PP763 reverted it whole, so no check can tell a live attribution from a dead one
- 2026-09-09 · PP847: the function-body reader keeps comments, so a note inside a body is a use and a check finds its own explanation
- 2026-09-09 · PP846: the console's haptics reach no motor: HapticsRumble and DualSenseEffects are modelled and neither has a caller
- 2026-09-09 · PP845: PadTranslation writes buttons, triggers and sticks only, so a PS4 or PS5 pad's touchpad and sensors reach no console
- 2026-09-09 · PP844: a check's control names a file a prepared deletion aims at, so it goes red about its own fixture when that lands
- 2026-09-09 · PP843: ShimFramePathShape says the flip has happened and the option is off, and PP763 put the four files back
- 2026-09-09 · PP842: the frame path's oracle has no recording, so the flip that must turn it off to delete takion spends it
- 2026-09-09 · PP841: the shim's takion wrappers are not behind their define, so the flip that deletes the C cannot be one commit
- 2026-09-09 · PP840: opening the microphone makes Windows duck the stream's own audio, so the game the port is playing goes quiet
- 2026-09-09 · PP839: the capture pump outlives the takion, so a session ending with the microphone open throws and kills the process
- 2026-09-09 · PP838: a pad connected after the stream starts is never opened, so it works only if it was plugged in first
- 2026-09-09 · PP837: no live run has opened the microphone, so nothing says a console accepts the packets the port now formats
- 2026-09-09 · PP836: the ported fullscreen state machine has no consumer, so nothing in the app can go fullscreen
- 2026-09-09 · PP835: the picture waits on SDL opening a pad, so connecting one after the stream starts freezes the window
- 2026-09-09 · PP834: the relay records only what the console sent, so no capture can answer what the port actually put on the wire
- 2026-09-09 · PP833: the audio engine is fed one frame at a time as they decode, so a late frame empties the queue and the sound gaps
- 2026-09-09 · PP832: the stream report never says how many IDR requests went out, so a corrupted picture cannot be read back
- 2026-09-09 · PP831: no check joins a managed send's arguments to the C call it ports, so an inverted pair passes every builder test
- 2026-09-09 · PP828: the copy off the decode surface is known to exist and untimed, so the FFmpeg decision still has no total
- 2026-09-09 · PP825: the microphone's packet is built and no takion sends one, so PP676's mic layout has only tests as callers
- 2026-09-09 · PP824: the stream's arrivals never set the ack sink, so a live session answers no data message the console sends
- 2026-09-09 · PP821: the shim downloads every hardware frame to system memory and uploads it back, including d3d11va's own texture
- 2026-09-09 · PP784: senkusha runs before the stream phase and calls four of takion's exports, so the transport cannot leave with it
- 2026-09-09 · PP30: forward error correction is two vendored C libraries doing Galois field arithmetic per lost packet
- 2026-09-09 · PP27: takion.c is 2007 lines of C over raw sockets and timers, and the whole stream rides on it
- 2026-09-08 · PP830: the stream dies within 85ms through the relay, so a capture holds the handshake and none of the traffic
- 2026-09-08 · PP829: the relay never carries senkusha's handshake, so a capture through it dies before the session reaches the stream
- 2026-09-08 · PP827: the port sends the BIG whole where the C splits it against the MTU, so a long launch spec leaves as one datagram
- 2026-09-08 · PP826: PP818's whole margin is a readback it did not measure, because no renderer has taken one of its textures
- 2026-09-08 · PP823: every send takes its key position from the receive ledger, so the MAC is stamped where the console never advanced
- 2026-09-08 · PP818: no Media Foundation decode has ever been timed, so 87.6 MB of FFmpeg is weighed against a guess
- 2026-09-08 · PP817: the GCM tag is a hand-written GHASH, and the only thing ever asked about it was AesGcm's contract
- 2026-09-08 · PP814: nothing reports whether audio dropped, so a crackling stream and a clean one read identically
- 2026-09-08 · PP813: the port's senkusha gets the bang then loses every pong, so the RTT test answers Unknown and the link is unmeasured
- 2026-09-08 · PP812: the datagram capture taps the C's takion and the port opens its own, so a run without a relay records nothing
- 2026-09-08 · PP811: the ported send path has no caller, so a live takion stamps its MAC and sends with no lock across the two
- 2026-09-08 · PP809: no path installs a senkusha phase, so every session still measures the link with the C's run
- 2026-09-08 · PP807: the port never sends the data ack the C sends after a drained message, so nothing tells the console it arrived
- 2026-09-07 · PP820: the ring, the drain and the pump are built and never started, so the code the click came from is still in the tree
- 2026-09-07 · PP816: the port hand-rolls a ring, a drain and a pump over WASAPI, and two attempts to make that path lossless both failed
- 2026-09-07 · PP815: the audio ring is written by the receive thread and drained by the pump with no lock, so its cursors and fill tear
- 2026-09-07 · PP808: nothing raises a takion disconnect, so a wait on a transport that died runs its whole timeout
- 2026-09-07 · PP806: the stream driver reads any .InstallOn( in a path file, so a second seam's install answers the stream's question
- 2026-09-07 · PP805: senkusha's four arrival arms are called by tests alone, so a run driving a real takion ends every wait in a timeout
- 2026-09-07 · PP804: senkusha's ack expectation is set around the send where the C sets it inside one, so a fast ack meets the wrong number
- 2026-09-07 · PP803: the two arranged flips are checked by reading text, and nothing ever builds the shape either one leaves
- 2026-09-07 · PP802: PP785's sixty takion guards are named by no census row, and the closed-list check cannot see a guard it never heard of
- 2026-09-07 · PP801: two of the three paths that open a session install no phase, so the captures and the front door stop where the port runs
- 2026-09-07 · PP800: SeamReach counts an implementation that no path in app ever constructs, so a sink only tests build reads as reached
- 2026-09-07 · PP798: one access unit per session is refused by the decoder and the log says which error, never which frame
- 2026-09-07 · PP797: the console's audio reaches a receiver whose output goes nowhere, and nothing drains the ring into a speaker
- 2026-09-07 · PP796: a stale suite binary is a warning and the floor then fails naming ffmpeg, so it reads as a shrunken suite
- 2026-09-07 · PP792: session.c runs senkusha itself and there is no callback to hand it to, so a managed run is unreachable
- 2026-09-06 · PP799: the port streams and never says it connected, so a window waiting on the event holds a spinner over a live picture
- 2026-09-06 · PP795: the takion takes its AV arm at construction and the keys arrive with the bang, so video reaches nothing
- 2026-09-06 · PP794: the record says one export dies with the flip and a trial says four, because the measurement counted prose
- 2026-09-06 · PP793: the export sweep counts a symbol named in a comment as a reference, so prose keeps dead C looking alive
- 2026-09-06 · PP791: nothing implements senkusha's run host or turns its arrivals into the flags its waits end on
- 2026-09-06 · PP790: chiaki_senkusha_run's sequence has no managed counterpart, so the ordering that is its behaviour cannot be held
- 2026-09-06 · PP789: senkusha's three measurements have no managed model, and they are the numbers the launch spec spends
- 2026-09-06 · PP788: senkusha's nine states and the flags its waits end on have no managed model, so nothing can drive its run
- 2026-09-06 · PP787: the decoder is reachable only through the C's video callback, so a managed run has no way to hand it a frame
- 2026-09-06 · PP786: three of the C suite's files exercise takion directly and the case floor counts them, so the deletion drops it silently
- 2026-09-06 · PP785: the shim's eighteen takion symbols are the oracle, so the deletion takes away what proves the port right
- 2026-09-06 · PP783: session.c runs the stream itself and nothing in app installs the port's phase, so PP295's four files cannot leave
- 2026-09-06 · PP782: the deletion's blocker list names six lib files and the link answers four, two of them never reaching it
- 2026-09-06 · PP781: the deferral line still says the suite never calls the two broken queue functions, which its section retracts
- 2026-09-06 · PP780: nothing counts what deleting takion's three files leaves undefined, and the biggest consumer is this port's oracle
- 2026-09-06 · PP779: every arrival is appended to a list nothing releases, so a session holds one reading per datagram
- 2026-09-06 · PP778: every stream message goes out with the data type in the chunk flags and the channel left at zero
- 2026-09-06 · PP777: the BIG's launch spec is hidden with a zeroed rpcrypt, so the console acks it and never bangs
- 2026-09-06 · PP776: a seam filled by a refusal reads as reached, so the sweep cannot tell a stub from an implementation
- 2026-09-06 · PP775: the state wait restarts its whole timeout on every pulse, so anything pulsing faster than it never times out
- 2026-09-06 · PP774: the run enters four states without clearing the flags, which its own model requires of the C
- 2026-09-06 · PP773: nothing turns a takion event into the host's signal, so every state the run waits on times out
- 2026-09-06 · PP772: the rung report stops at congestion control, and the six steps after it are where a live run now fails
- 2026-09-06 · PP771: the phase lets a caller pick the port and the first one picked 9295, so a console answered nothing at all
- 2026-09-06 · PP770: the run collapses every rung's failure into Unknown, so a live one cannot be told from any other
- 2026-09-06 · PP769: the managed run opens its own socket and the console's stream rides the one senkusha left, so a handover fails at once
- 2026-09-06 · PP768: the phase frees its handover while the runner still waits on it, so the gate crashes intermittently
- 2026-09-06 · PP767: the driver check counts a call inside a class nothing constructs, so a phase nobody uses reads as a driver
- 2026-09-06 · PP766: a managed BIG needs four things out of a live session - the id, the handshake key, senkusha's numbers and an ecdh pair
- 2026-09-06 · PP765: the run host takes eleven parts and nothing says which a live session supplies, so the wiring is unsized
- 2026-09-06 · PP764: the gate passes on a tree whose stream phase has no driver, which is how it shipped a client that cannot stream
- 2026-09-06 · PP763: the frame path's deletion shipped and left no way to stream, so the four files and the C's run are back
- 2026-09-06 · PP762: the stream phase is a callback now and nothing installs one, so a live session ends at senkusha
- 2026-09-06 · PP761: two readers hold lib's build list and session.c's reason line, which the deletion rewrites
- 2026-09-06 · PP760: test/main.c names the four suites unguarded, so removing their files breaks the link
- 2026-09-06 · PP759: the handoff names the call it replaces and not what replaces it, and lib cannot reach the shim's handover
- 2026-09-06 · PP758: PP696 may edit no test file, and twelve assertions still demand the calls and files it deletes
- 2026-09-06 · PP757: the port's resting feedback state is ten zeroes and the C's is not, so a still pad reports free fall
- 2026-09-06 · PP756: the pad's state goes to the C session, and the deletion leaves that call with no feedback sender to reach
- 2026-09-06 · PP755: the disconnect reason is parsed and the host holds no field for it, so the runner takes it as a parameter
- 2026-09-06 · PP754: nothing in the application builds a run host or calls the run, so the deletion would leave it with no streaming
- 2026-09-06 · PP753: the session thread has no way to hand the stream phase over and take an outcome back, so the deletion cannot land
- 2026-09-06 · PP752: the handoff that replaces the C's stream run is undecided, so the commit that edits the C has nothing to aim at
- 2026-09-06 · PP751: the audio path decodes nothing, so a frame the receiver delivers has no way to become sound
- 2026-09-06 · PP750: the port derives a gmac key and a key stream and composes neither, so nothing encrypts or signs a packet
- 2026-09-06 · PP749: the congestion report has no bytes and no way out, so the thread that produces one reports into a double
- 2026-09-06 · PP748: the takion frames a data message and owns a wire, and nothing joins the two, so no managed message ever leaves
- 2026-09-06 · PP742: the port holds 3681 real AV heads and its own parser can read none of them, two bytes short of the cheapest layout
- 2026-09-06 · PP707: nothing managed drives a live session, so the flip that stops session.c asking removes the only path that streams
- 2026-09-06 · PP697: after the frame-path flip the models describe a C that has gone, in the present tense
- 2026-09-06 · PP696: the frame path's deletion has no commit that edits the C, so four files stay while their ports exist
- 2026-09-06 · PP671: Fec.Recovers with no decoder named runs the C, so after the flip a default becomes a loader failure
- 2026-09-06 · PP295: streamconnection.c is 1540 lines and calls the video receiver, so every deletion below waits on it
- 2026-09-05 · PP747: the nine events reach a seam nothing in app implements, so the pad state they carry is counted unheard and dropped
- 2026-09-05 · PP746: the run's sequence has never executed against a socket, so every ordering is asserted over a script
- 2026-09-05 · PP745: the run's host has twenty-five counterparts and no implementation outside the test project
- 2026-09-05 · PP744: the pad-info order is read by a copy of the raiser sweep, still anchored on the local name PP722 widened
- 2026-09-05 · PP743: eleven fixture ids sit 158 ids ahead of the ledger, so the tasks that reach them are born counted as covered
- 2026-09-05 · PP741: seven interfaces in app are implemented only by test doubles, and only two of them were ever counted
- 2026-09-05 · PP740: nothing managed receives audio, so the run's two audio arms answer with a seam only the test project implements
- 2026-09-05 · PP739: the ratchet's absent id is a constant any other file can spell, and a comment is what guards it
- 2026-09-05 · PP738: the run-host census answers two members with an audio seam only doubles implement, and calls its list empty
- 2026-09-05 · PP737: the key stream makes an AES object and an array per block on every call, and nothing has held it to PP44's budget
- 2026-09-05 · PP736: the stats count one push per audio packet against a ceiling that advances per unit, and nothing states the ratio
- 2026-09-05 · PP735: a census naming an export in a string counts as its caller, so the sweep's dead list is short by an unknown amount
- 2026-09-05 · PP734: one census row is answered by an interface member nothing in app implements, and the check cannot tell that apart
- 2026-09-05 · PP733: nothing counts the managed readers that parse a takion message, so a fourth one can be lenient in silence
- 2026-09-05 · PP732: two more managed readers decide on a message nanopb would refuse, and one of them is the streaminfo
- 2026-09-05 · PP731: the step after the bang builds two gk crypts at fixed indices and hands them to takion, and none of it is ported
- 2026-09-05 · PP730: nanopb refuses a bang with no required fields and this port reads it as a refusal, so one message leaves two states
- 2026-09-05 · PP729: the third dispatch layer routes a protobuf to three handlers and the one that keys the session has no port
- 2026-09-05 · PP728: a criterion can state a count from a program and go false as that program changes, with the gate green
- 2026-09-05 · PP727: nothing turns the launch spec into the BIG's payload, and the obfuscation there is not the encryption it looks like
- 2026-09-05 · PP726: nothing managed formats the launch spec, so the JSON that tells the console the stream's shape has no port
- 2026-09-05 · PP725: the sender's overflow rung copies a packet buffer onto itself, and nothing records that the port left it out
- 2026-09-05 · PP724: nothing notices when an unported wait gains a managed counterpart, which happened once already and was caught by hand
- 2026-09-05 · PP723: nothing composes PP676's serialisers into a sender, so a controller change is recorded and never reaches a wire
- 2026-09-05 · PP722: seven events outside the frame path have no managed raiser, and one enum member is raised by nothing at all
- 2026-09-05 · PP721: nothing calls the managed event seam, so the five a pad info decides and the FEC failure still reach nobody
- 2026-09-05 · PP720: the suite's staleness warning globs every .c under lib, so a file no target builds warns on every run
- 2026-09-05 · PP719: nothing managed raises a session event, so the frame path's nine reach nobody and the run's CONNECTED is owed
- 2026-09-05 · PP716: packetstats' sequence arm is pushed with no mutex while three neighbours take one, and two threads reach it
- 2026-09-05 · PP715: one wrap past 65535 makes the client report 1.8e19 packets lost, and nothing says what the console does then
- 2026-09-05 · PP713: eleven rows of the frame path's census name a type with no member, and nothing says which are ctors
- 2026-09-04 · PP718: PP585's wait census still calls congestioncontrol.c unported, and nothing in the gate can tell it is wrong
- 2026-09-04 · PP717: nothing decides which history events a controller change becomes, so PP676's serialisers have no caller
- 2026-09-04 · PP714: nothing managed reports congestion, so a managed run would tell the console nothing about what it lost
- 2026-09-04 · PP712: three rows of the run-host census name a type with no member that answers, and the check cannot see it
- 2026-09-04 · PP711: WasapiCapture can only be asked for the announced format, so the cleaning stage resamples both inputs itself
- 2026-09-04 · PP710: the port cannot change an audio rate, so the cleaner's 22050 ceiling keeps it out of the announced 48000 chain
- 2026-09-04 · PP709: nothing drives the in-box echo canceller, so PP52's second criterion has a reading of it and no stage
- 2026-09-04 · PP708: nothing in the port renders audio, so a session shows a picture and plays no sound at all
- 2026-09-04 · PP706: the microphone has a capture, a unit splitter, an encoder and a head, and nothing runs them as one path
- 2026-09-04 · PP705: four sweeps over app/ hand-write their own exclusion, so a new census has to be added to the others by hand
- 2026-09-04 · PP704: FeedbackPayloadTests guards eight comparisons on an oracle the census does not name, and it is not the only file
- 2026-09-04 · PP703: ManagedTakion's video queue is only ever set to null, so one step of its recorded teardown is unreachable
- 2026-09-04 · PP702: senkusha.c calls five takion symbols, so PP27's fourth criterion cannot be met while the file stands
- 2026-09-04 · PP701: the host shows a console's picture and sends it no input, so nothing can be played on it
- 2026-09-04 · PP700: every piece of the video path exists and none is joined to a session, so a stream decodes and shows nothing
- 2026-09-04 · PP699: there is no managed presenter to count dropped frames, and the counter that did is in the retired client
- 2026-09-04 · PP698: the echo canceller wants a reference of what is playing and nothing captures the render side
- 2026-09-04 · PP695: the capture opens the default endpoint and a Bluetooth headset answers with silence, reporting success
- 2026-09-04 · PP694: the microphone's units reach nothing, and libopus's second consumer is why the dependency cannot leave
- 2026-09-04 · PP693: a COM method declared without PreserveSig reads an uninitialised int as its HRESULT and answers anyway
- 2026-09-04 · PP692: gf-complete's only caller is the library init, and the census counting FEC callers reads the decode alone
- 2026-09-04 · PP691: checks that match a roadmap sentence literally go red when the sentence gets more precise
- 2026-09-04 · PP690: a deletion's end state names a shipped task as what must happen first, so its blocker resolves to nothing
- 2026-09-04 · PP689: the pad info message has two layouts and five reports, and nothing managed reads either one
- 2026-09-04 · PP688: the idle handler's switch has no counterpart, so a running stream's four messages reach nothing managed
- 2026-09-04 · PP687: a bounded field longer than its buffer fails the whole decode in the C, and PP686 reads it as a wrong size
- 2026-09-04 · PP686: nothing managed reads a console's STREAMINFO, so the video receiver is only ever handed headers a test wrote
- 2026-09-04 · PP685: PP395's chokepoint comment calls the two data-type-2 sends the keyboard pair, which they are not
- 2026-09-04 · PP684: four of the stream connection's seven sends have no managed bytes, two of them the video receiver's own
- 2026-09-04 · PP683: the oracle guard census reads test files only, so the selftest's guarded comparisons are invisible to it
- 2026-09-04 · PP682: test.cmd reads a step's exit code with 'if errorlevel 1', so a crash's negative code passes the gate
- 2026-09-04 · PP681: the selftest asks the header whether the device id oracle exists, so a default build's shim crashes it
- 2026-09-04 · PP680: takion_handle_packet_av is only a branch in managed code, so no video packet reaches the flush
- 2026-09-04 · PP679: the v7 AV parse and header formatter are unported, and the formatter's callers are senkusha's
- 2026-09-04 · PP678: the receive loop runs only against test doubles, and nothing owns takion's state
- 2026-09-04 · PP677: the key state has no managed transcription, so every key position the port expands is the shim's
- 2026-09-04 · PP676: the feedback and mic sends have no managed code, and each places its MAC where packet_mac's table does not look
- 2026-09-04 · PP675: no managed code sends a takion datagram, so every takion send is a model that emits no bytes
- 2026-09-04 · PP674: takion's data queue is 32-bit and the managed reorder queue is 16-bit only, so no managed push can hold a data packet
- 2026-09-04 · PP673: no managed code parses a takion control message, so a control datagram stops at the dispatch branch
- 2026-09-04 · PP672: no managed code writes the INIT or reads the INIT_ACK, so the port's only takion client is the C
- 2026-09-04 · PP668: AvPacket is built from the v9 parse alone, so IsHaptics is false on every packet the port sees
- 2026-09-04 · PP666: a table and the test written from it were wrong together at every rung, and only a consumer noticed
- 2026-09-04 · PP659: a relay test sends real UDP between three loopback sockets and failed once in a run that passed twice
- 2026-09-04 · PP652: four subsystems carry the microphone and nothing in the host opens a capture device
- 2026-09-04 · PP650: the decoder stays native and nobody has priced FFmpeg against Media Foundation for the job
- 2026-09-04 · PP643: two `<summary>` elements on one member compile, and the wrong one wins silently
- 2026-09-04 · PP642: a ship's `recorded in` clause names a file and nothing checks the file ever received the design
- 2026-09-04 · PP641: PP10's HUD is XAML, and the compositor tree PP319 chose covers a WPF window's own drawing entirely
- 2026-09-04 · PP76: the decoder preference is measured on synthetic frames, and drops under network jitter are what a stream is judged by
- 2026-09-04 · PP52: nothing runs echo cancellation, and the vendor answer is absent on a machine with the card
- 2026-09-04 · PP33: HTTP and JSON in the core are curl and json-c, two vendored dependencies for what the runtime already does
- 2026-09-03 · PP670: Six managed test files call the frame-path oracles unguarded, so the flip that deletes the four files turns them red
- 2026-09-03 · PP669: PP295's third criterion has no check: the seventeen consumers PP638 named are a count in the ledger, not a mapping
- 2026-09-03 · PP667: The AV route has no managed counterpart: video, haptics and audio reach only a C receiver
- 2026-09-03 · PP665: PP663 made 23 assertions opt-in and an early return is a pass, so the gate prints the same total either way
- 2026-09-03 · PP664: the seam's prose reads as though the shim wraps holepunch unconditionally, which PP663 made false
- 2026-09-03 · PP663: libchiaki links curl and json-c in every build for one file two console-only test groups reach
- 2026-09-03 · PP662: the seam's shape was read from source text, and an #ifdef is invisible to a text reader
- 2026-09-03 · PP661: sixteen comparisons hold managed JSON against json-c and would throw rather than fail once it is gone
- 2026-09-03 · PP660: PP655 sized the flip from a linker answer taken while json-c was still linked, so it counted one oracle
- 2026-09-03 · PP658: five tests drive the C through the nine wrappers and would throw rather than fail once they are gone
- 2026-09-03 · PP657: PP656 taught the seam its two shapes and the census that reads it still knows only one
- 2026-09-03 · PP656: PP655's first step has no mechanism, so each model of the shim's seam would learn two shapes its own way
- 2026-09-03 · PP655: PP33's remaining blocker is an oracle, and the obvious way to gate it is the one PP437 exists to catch
- 2026-09-03 · PP654: the one holepunch wrapper the host actually runs makes a device id from a prefix and 16 random bytes
- 2026-09-03 · PP653: PP33's fourth criterion names a linker question and nobody had asked it since two callers left
- 2026-09-03 · PP651: PP32's Opus half was a preference with no measurement, and both decoders were reachable all along
- 2026-09-03 · PP649: the switch-ack wait has a predicate reading three fields and an arm after it reading one
- 2026-09-03 · PP648: PP47 read VSR as not engaging with the driver switch off, and PP49's HDR extension engaged on the same card
- 2026-09-03 · PP647: PP53 is a vendor-neutral DXGI mechanism sitting in the block titled NVIDIA path
- 2026-09-03 · PP646: the tearing probe presents to a composition swapchain with no visual, the one place a no-op would hide
- 2026-09-03 · PP645: both NVIDIA spikes report a mean, and four of PP49's six runs carried 200-300us outliers on it
- 2026-09-03 · PP644: spike/video-upscale calls the extension read-back a hint, and PP49 measured that it is not one
- 2026-09-03 · PP32: audio decode is Opus in lib and the microphone's noise and echo stages are speexdsp in the Qt client
- 2026-09-03 · PP31: the video decoder is where 100% managed stops being achievable, and no task above says so
- 2026-09-03 · PP28: session.c 1196, ctrl.c 1767 and streamconnection.c 1531, three state machines with no oracle
- 2026-09-03 · PP11: fullscreen, HDR handoff and refresh-rate switching are handled by the Qt window
- 2026-09-02 · PP640: PP295's first criterion has no oracle: nothing states the sequence a port has to reproduce
- 2026-09-02 · PP639: three deletion lines have an end state their own dependents come before, and each was untied by hand
- 2026-09-02 · PP638: PP295 names the video receiver's callers and not streamconnection's own, which is session.c
- 2026-09-02 · PP637: the vendored-C rule names PP33 and PP30 as what it does not reach, and PP295's deliverable is a deletion too
- 2026-09-02 · PP636: PP295 waits on the whole of PP27, whose last criterion is the deletion PP295 has to happen before
- 2026-09-02 · PP635: PP27's timing criterion asks for the loop against the C, and that comparison would measure the socket
- 2026-09-02 · PP634: PP623's third step would delete the predicates that keep session.c's nine from coming back
- 2026-09-02 · PP633: PP44's budget is measured over heads, and the copy the keeping branches do needs a payload to exist
- 2026-09-02 · PP632: nothing has taken PP623's middle step, so session.c still asks and the Qt client's build still stands
- 2026-09-02 · PP631: the census's tests read session.c directly, so PP33's flip would turn every one of them red
- 2026-09-02 · PP630: PP623's first step has no mechanism, so ten models would each hold two shapes of session.c their own way
- 2026-09-02 · PP629: this port writes the Qt client's settings now, and a running client saves its own cache back over them
- 2026-09-02 · PP628: the console list connects, holds a session and answers a PIN, and only a flag opens it
- 2026-09-02 · PP627: a console asking for a login PIN gets no answer, so the front door sits at Connecting for ever
- 2026-09-02 · PP626: ConsoleActions models a wake and three removals, and the row draws a Connect button and nothing else
- 2026-09-02 · PP625: the front door starts a session and releases it in the same call, so a connect that succeeds ends at once
- 2026-09-02 · PP624: ConsoleList keys registration and hiding on a MAC, and discovery answers with a host-id in another spelling
- 2026-09-02 · PP623: PP33's deletion has no order, and PP598 has it riding in one commit that PP621 shows is an oracle rewrite
- 2026-09-02 · PP622: PP33's line cannot honestly say one caller, because the check demands the phrase 'one files call it'
- 2026-09-02 · PP621: nothing counts what reads session.c's holepunch handle, so PP33's deletion is sized at its two C callers
- 2026-09-02 · PP620: five probe methods still write the STA scaffolding out inline, around bodies that hand a value back
- 2026-09-02 · PP600: the host starts a session only from the capture flags, so nothing a user can click reaches one
- 2026-09-02 · PP322: the two-layer tree commits and nobody has looked at it, which is the mistake PP163 made one layer down
- 2026-09-01 · PP619: the mapping screen's row slots are templated buttons with no automation id
- 2026-09-01 · PP618: twenty-six view test files each carry their own copy of the STA runner every one of them depends on
- 2026-08-31 · PP617: the relay's one UDP socket is bound to loopback, so a datagram sent to the console has a source it cannot answer
- 2026-08-31 · PP616: the relay, the address and the wider keep are three pieces and nothing composes them into a run
- 2026-08-31 · PP615: the capture truncates to eighteen on the managed side too, so a relay handing it whole datagrams gains nothing
- 2026-08-31 · PP614: the capture connects to the registered host's own address, so no session can be aimed at a relay
- 2026-08-31 · PP613: no relay sits between the console and the C, so whole datagrams are reachable only by patching the vendored C
- 2026-08-31 · PP612: the tap truncates at eighteen inside the vendored C, so a full capture is the patch PP27 is not exempt from
- 2026-08-31 · PP611: PP27's section says its loop is unreachable, which PP607 made false, and omits what the capture cannot time
- 2026-08-31 · PP610: PP531's MAC gate numbers were never taken over a console's own traffic, and nothing holds the headroom
- 2026-08-31 · PP609: the replay prints its report over the committed capture and nothing asserts a line of it
- 2026-08-31 · PP608: the loopback harness has no datagrams to pump, and no capture is on this machine to give it any
- 2026-08-31 · PP607: no shim entry point creates a takion, so the responder has nothing to answer and the C loop stays unreached
- 2026-08-31 · PP606: the three handshake pieces are functions and nothing owns a socket, so the responder cannot run
- 2026-08-31 · PP605: the responder can answer and cannot read, so nothing parses the INIT that carries the client's tag
- 2026-08-31 · PP604: the cookie ack is the responder's second datagram and the header writer is sealed inside the init ack
- 2026-08-31 · PP603: TakionHandshake models the handshake's rules and sizes and cannot produce a datagram, which a responder is made of
- 2026-08-31 · PP602: a recorded peer cannot drive takion's handshake, because the client's tag is fresh on every connect
- 2026-08-31 · PP601: takion's receive is static in the C and a non-goal forbids exposing it, which PP27's section records as merely absent
- 2026-08-31 · PP599: PP533 settled that session.c takes five results, and decision A means nothing will ask it for PSN at all
- 2026-08-31 · PP598: retiring the Qt client's build touches compile.cmd, GuiFreshness and the client path, and nothing holds the three
- 2026-08-31 · PP597: deleting session.c's nine would make gui/ uncompilable, and GuiFreshness then fails forever for anyone who built it
- 2026-08-31 · PP596: session.c's nine holepunch asks are unreachable in everything this port builds, and PP33 is sized as if they run
- 2026-08-31 · PP595: the roadkeep skills, hook and launcher this checkout ships are older than the engine answering here, and lint says so
- 2026-08-31 · PP594: --recount prints the calls that fix a stale count and cannot see the same numbers hardcoded in the suite's InlineData
- 2026-08-31 · PP593: the vendored-C rule names PP33 as what it does not reach and says nothing about PP30, which lint flags the same way
- 2026-08-31 · PP592: session.c and the shim both fini a holepunch session, and they are disjoint only because the shim never wires one in
- 2026-08-31 · PP591: holepunch-test.c reads /tmp/token.txt on a Windows-only port, and its only live effect is to be PP33's second consumer
- 2026-08-31 · PP590: ctrl.c asks holepunch.c for a port session.c already read, and that one ask is all that makes it PP33's fourth consumer
- 2026-08-31 · PP572: nothing parses build.yml, so a syntax error in it is invisible until a push spends a run
- 2026-08-30 · PP589: the C suite's pass is satisfied by a temp-file variable named ctest_out, so deleting the ctest call leaves it green
- 2026-08-30 · PP588: either tool's pass is satisfied by its own echo plus the other tool's flag, so deleting a call leaves it green
- 2026-08-30 · PP587: the local gate never runs roadkeep lint, so a governed-file drift is first reported by a CI run
- 2026-08-30 · PP586: compile.cmd's deploy ending names the Qt client whenever one exists on disk, not when this run built it
- 2026-08-30 · PP585: 31 C timeout macros and 33 managed waits mirror each other by hand, and nothing says which are meant to agree
- 2026-08-30 · PP584: the third deletion line understates its callers, and all three omitted the same one
- 2026-08-30 · PP583: the open count mixes lines somebody could start with lines that cannot be begun until hardware arrives
- 2026-08-30 · PP582: five of the six partial lines carry no definition of done, so how much is left has no answer
- 2026-08-30 · PP581: six function pointers cross to the shim and nothing checks a managed signature against the C typedef
- 2026-08-30 · PP580: nothing checks that every shim entry point the host imports is one the shim exports, or the reverse
- 2026-08-30 · PP579: the SDL_Event size is a hand-written 56 in a StructLayout and nothing holds it against SDL's header
- 2026-08-30 · PP578: two more managed enums are cast from C values on the lines after the one PP577 held, and neither is checked
- 2026-08-30 · PP577: the managed error enum mirrors an implicitly valued C enum by hand and nothing compares them
- 2026-08-30 · PP576: the sized-buffer names are declared in a list nothing reads and again inside the regex that does the work
- 2026-08-30 · PP575: PresetIsPersisted is the one check method nothing calls, and its body tests a different question from its summary
- 2026-08-30 · PP574: PP30's line says fec has one caller left and it has three, the shim among them as in PP33's
- 2026-08-30 · PP573: PP33's own line says session.c is its only caller, which three shipped tasks have each falsified
- 2026-08-30 · PP571: the no-local-patch non-goal reads as forbidding PP33's deletion, which must edit session.c and ctrl.c
- 2026-08-30 · PP570: measure-startup ships the same selftest and is not in the solution, so no gate builds it let alone runs it
- 2026-08-30 · PP569: compare-baselines ships a selftest its README calls its own assertion, and neither the gate nor CI ran it
- 2026-08-30 · PP568: the decision not to patch vendored C is argued only in a deferred section, so resolving that line deletes it
- 2026-08-30 · PP567: the CI workflow runs the managed suite with no filter, so it would run the interaction tests on a runner with no desk
- 2026-08-30 · PP566: PP33's build criterion reads as one step and is two, so the measured half of it cannot be recorded as met
- 2026-08-30 · PP565: PP33's done-when line about building without curl and json-c rests on a grep, and nothing has tried the build
- 2026-08-30 · PP564: nothing has asked the build what PP33's deletion costs, and reading the tree missed ctrl.c
- 2026-08-30 · PP563: PP33's deletion has a third consumer nothing names: the port's own shim wraps nine holepunch exports
- 2026-08-30 · PP562: PP107's deferral opens by saying the C suite never calls the two broken functions, and the suite calls and pins both
- 2026-08-30 · PP561: the three sequences and the session are each joined to nothing, so eight tasks are pieces that fit and were never fitted
- 2026-08-30 · PP560: the punch's eleven steps are declared and nothing reads holepunch.c to check them, so five tasks rest on a belief
- 2026-08-30 · PP559: the create's wait ends on either of the C's two notifications, leaving the client's own join for the start to find
- 2026-08-30 · PP558: no adapter removes a handled notification, so the second punch completes on the first punch's messages having sent none
- 2026-08-30 · PP557: the start's wait handles one of the C's two notification types, so a member joining reports a started session on its own
- 2026-08-30 · PP556: the prepare cannot record the socket it punched, so a prepared session throws on the first ask session.c makes
- 2026-08-30 · PP555: the offer step's guard cannot fire against the sequenced session, so a refused offer reads as an ordinary punch failure
- 2026-08-30 · PP554: a cancelled token throws out of PunchHole, whose contract is an error code and whose caller is C
- 2026-08-30 · PP553: the session interface has only the implementation that P/Invokes holepunch.c, so nothing answers it the other way
- 2026-08-30 · PP552: the start and punch waits poll on after the websocket has ended, costing minutes of deadline that cannot be met
- 2026-08-30 · PP551: PP533 restated PP478's five carried values and said five results without saying four outlive their call
- 2026-08-30 · PP550: PP547's punch interface has nothing behind it, so the last of the three sequences runs only against a test double
- 2026-08-30 · PP549: the start sequence has no implementation behind its interface, and its HostDown outcome is unreachable
- 2026-08-30 · PP548: PP545's create interface has nothing behind it, so the sequence runs only against a test double
- 2026-08-30 · PP547: fifteen files model parts of the punch and nothing sequences them, so its five checkpoints have no order to sit in
- 2026-08-30 · PP546: the start is modelled and never run, so the failure the C reports as success has nowhere to be reported
- 2026-08-30 · PP545: nothing composes the ported holepunch pieces, so the create sequence is modelled and never run
- 2026-08-30 · PP544: PP33 records holepunch-test.c as absent, and it is a built executable calling eight holepunch exports
- 2026-08-30 · PP543: PP541 added a second reader of a shape SessionCreateSource already checks, so one repair would turn two red
- 2026-08-30 · PP541: session_create waits for the websocket with no timeout, and every failure path leaves the bit it waits on unset
- 2026-08-30 · PP540: the census list must equal the sweep's output, so a model naming a C symbol in a comment turns the suite red
- 2026-08-30 · PP539: nothing says where the holepunch honours a cancel, and three of the fourteen places are inside the waits
- 2026-08-30 · PP538: nothing models the holepunch stop, whose cancel is consumed by whichever of fourteen checkpoints reaches it first
- 2026-08-30 · PP537: the census annotation says nothing builds the session-id header, and PsnEndpoints builds it
- 2026-08-30 · PP536: the census reads a function no managed file quotes as one nothing has looked at, and eight of its ten have counterparts
- 2026-08-30 · PP535: the CI configure hands cmake a literal dollar-env token, so build.yml has never once been green
- 2026-08-30 · PP534: nothing counts which of holepunch.c's functions app/ already answers, so PP533's scope is a sentence
- 2026-08-30 · PP533: session.c asks the C holepunch for all nine, and those asks are the only reason libchiaki links curl and json-c
- 2026-08-30 · PP532: compile.cmd reports a Qt client it no longer builds, as the nodeploy output and in the failure line
- 2026-08-30 · PP531: nothing times the managed transport against the C, so PP27's comparison is bytes and never cost
- 2026-08-30 · PP530: ChiakiNg.exe exists twice, only Debug is built by the gate, and --recount and --ratchet answer from whichever was run
- 2026-08-30 · PP529: nothing compiles gui/ - the gate and CI both pass ENABLE_GUI=OFF - while the drift checks keep it edited
- 2026-08-30 · PP528: the pulled loss count is discarded on the two returns before presentFrame, so frames_dropped under-reports
- 2026-08-30 · PP481: nothing implements the nine asks over the real C, and no test can exercise one without a live console
- 2026-08-30 · PP72: the auto decoder order prefers cuda over d3d11va on an OpenGL renderer, and the paced numbers now say the opposite
- 2026-08-30 · PP50: frame generation would smooth a 30fps stream and cost a frame of latency to do it
- 2026-08-28 · PP527: the replay calls the key stream NOT MONOTONIC and never says by how much, so 16 reorderings read as a fault
- 2026-08-28 · PP526: the capture's bounds and the session's hold are constants, so a longer sample cannot be asked for
- 2026-08-28 · PP525: PP523 could not tell a quiet link from a lost packet, and the capture's packet indices settle it
- 2026-08-28 · PP524: nothing reads the AV head's own fields, so the FEC ratio and the codec byte a console sends are unmeasured
- 2026-08-28 · PP523: nothing has measured arrival gaps against the AV reorder timeout, which a healthy session's p99 reaches
- 2026-08-28 · PP522: the replay says the cipher exists from the first packet, so the postponed branch reads zero on every capture
- 2026-08-28 · PP521: PP519 counted 26 repeated key positions and all 26 are zero, in the 27 packets before the cipher exists
- 2026-08-28 · PP520: PP515 changed what the Length column means and the version did not move, so an old capture reads as new
- 2026-08-28 · PP519: the key position expansion has never seen a console's own positions, where equal values occur 26 times in 2000
- 2026-08-28 · PP518: two send buffers exist in this port, the C's and PP27's model, and nothing has ever compared them
- 2026-08-28 · PP517: PP497's MAC gate model has never been run against the C, which exports the function it models
- 2026-08-28 · PP516: the two captures on disk have no reader, so PP513's replay has never run against a datagram a console sent
- 2026-08-28 · PP515: every captured datagram records length 18: the emit truncates before the capture sees the real size
- 2026-08-28 · PP514: the datagram capture has no command: the one thing that starts a real session records the other four channels
- 2026-08-28 · PP513: a capture can be written and nothing replays one, so the file a session leaves has no managed number beside it
- 2026-08-28 · PP512: PP511 fills a capture that lives in memory, so the session PP27 waits for would end with nothing on disk
- 2026-08-28 · PP511: the tap has four channels and none carries a datagram, so PP510's capture has nothing to fill it from
- 2026-08-28 · PP510: PP27's timing run needs takion datagrams with arrival times, and nothing in this tree records one
- 2026-08-28 · PP509: three deferred lines are set aside for a console the project has, so nothing can offer them to a caller who has one
- 2026-08-28 · PP508: the seam joins nine call sites to seven methods and nothing says the managed flow ever calls all seven
- 2026-08-28 · PP507: the session teardown runs ten steps in a fixed order and hands freeaddrinfo the NULL a PSN session leaves
- 2026-08-28 · PP506: PP33's deletion depends on PP340's object but not on PP481, which is what puts an implementation behind it
- 2026-08-28 · PP505: the session request is addressed two ways, and the local one can send Host: unknown after a failed lookup
- 2026-08-28 · PP504: a PSN session's regist key comes from the console, and the wait for it has a timeout arm that leaves it zeroed
- 2026-08-28 · PP503: the punch's start event is unconditional and its finish fires only on success, so a failure leaves it mid-punch
- 2026-08-28 · PP502: the holepunch session creates both sockets and closes neither, so a managed owner double-closes or leaks
- 2026-08-28 · PP501: PP27's remaining half is a timing run needing hardware, and its line still promises a transport that shipped
- 2026-08-28 · PP500: the takion pieces modelled so far allocate for their traces, so none is the receive path PP44's budget applies to
- 2026-08-28 · PP499: the v9/v12 audio bound stops before the nalu-info structs the parser then skips, so av_size underflows
- 2026-08-28 · PP498: the pre-start socket drain has no success return, so its normal outcome is the timeout its caller forgives
- 2026-08-28 · PP497: the MAC gate rewrites the packet it checks, and only control and congestion hide key_pos from the MAC
- 2026-08-28 · PP496: a data send spends a sequence number and a key position before it can fail, and neither is ever given back
- 2026-08-28 · PP495: advance_key_pos rounds by adding the remainder and its six callers pass four different sizes, all of it protocol
- 2026-08-28 · PP494: takion refuses a data ack that is not exactly 12 bytes, so a gap ack is rejected before the branch that names it
- 2026-08-28 · PP493: takion acks the data queue once per drain with the last sequence pulled, and a dropped or unnamed entry still acks
- 2026-08-28 · PP492: compile.cmd clean with the GUI off leaves the portable tree holding two DLLs and none of what they import
- 2026-08-28 · PP491: takion_handle_packet_message_data drops the datagram on both early returns, and its one caller frees nothing
- 2026-08-28 · PP490: takion_handle_packet's five branches each end the datagram's life, and over a pooled buffer none of them can free
- 2026-08-28 · PP489: the receive step's allocation budget is measured in the C and nothing states the managed number against it
- 2026-08-28 · PP488: takion_recv's four outcomes collapse to two in the loop, and a zero-length UDP datagram is one that ends it
- 2026-08-28 · PP487: nothing models takion's receive loop, where two once-only transitions and three exits decide what the thread does
- 2026-08-28 · PP486: PP481 says no test can run without a live console and declares no requirement, so pick offers it as ready
- 2026-08-28 · PP485: takion.c mallocs 1500 bytes per datagram and reallocs it down, on the thread the whole stream rides on
- 2026-08-28 · PP484: the two dead guards in request_header_format are harmless only because the head cannot exceed 190 of its 256 bytes
- 2026-08-28 · PP483: two lib/ defects are recorded not repaired because this port does not edit lib/, and 20 files in lib/src are edited
- 2026-08-28 · PP482: PP303's middle option needs a size budget for this application, and nothing measures the package at all
- 2026-08-28 · PP480: PP479's interface is joined to nothing, so a tenth holepunch call site could arrive with no method to answer it
- 2026-08-28 · PP479: nothing managed owns the PSN flow: the order, the guards and the state are all modelled and nothing drives them
- 2026-08-28 · PP478: nothing states what the PSN flow holds between its nine calls, and one piece is a pointer to a stack local
- 2026-08-28 · PP477: takion's socket setup is unported and four of its logs name IP_MTU_DISCOVER where the call sets IP_DONTFRAGMENT
- 2026-08-28 · PP476: PP464's guarded step-back is in takion's resend loop too, but the ack there removes an unknown number of packets
- 2026-08-28 · PP475: takion's resend loop is unported: the two waits, the try limit, and that giving up acks the packet to itself
- 2026-08-28 · PP474: three paths in takion's postpone lose a datagram it owns, and the array is never freed if the cipher never arrives
- 2026-08-28 · PP473: takion holds AV packets back until the cipher exists, and three paths lose the datagram buffers it took ownership of
- 2026-08-28 · PP472: PP470 says the six-edit fix changes no sequence, and nothing has read what each of the six ctrl_failed calls relies on
- 2026-08-28 · PP470: the ctrl channel's two mutexes can deadlock, and the two fixes trade one edit against a changed atomic sequence
- 2026-08-28 · PP469: six of seven ctrl_failed calls hold notif_mutex while it takes state_mutex, and nothing has checked for reverse order
- 2026-08-28 · PP468: ctrl.c has two mutexes on two objects and nothing states which guards what, or that one call site treats them apart
- 2026-08-28 · PP467: two arriving ctrl types are once-only and nothing states it, and their flags take the lock in one of four reads
- 2026-08-28 · PP466: PP440's census does not say which ctrl types arrive, so a missing handler and a type no console sends look the same
- 2026-08-28 · PP340: the PSN path lives in session.c's nine holepunch call sites, so PP33's deletion would take remote play with it
- 2026-08-28 · PP294: ctrl.c is 1763 lines of control channel and PP28 sizes it together with two files it does not resemble
- 2026-08-27 · PP465: one selftest asserts a 400ms deadline within 30ms, and its design forces two waits that can each overshoot a quantum
- 2026-08-27 · PP464: the drop pass guards its step-back, so a stale host that moves into slot 0 is skipped and waits a whole ping cycle
- 2026-08-27 · PP463: both bind-failure logs in discovery print the port after moving it on, so each names the rung it is about to try
- 2026-08-27 · PP462: the discovery socket's bind ladder and receive thread are unported, so nothing states where it binds or when it leaves
- 2026-08-27 · PP460: the nine holepunch calls are recorded in file order, which is not the order they run and says nothing about failures
- 2026-08-27 · PP459: the candidate race has never run over sockets, so its own claim that the first to answer wins cannot be shown
- 2026-08-27 · PP458: PP238 and PP256 each ported the same punch loop, so two step machines model one function and neither knows it
- 2026-08-27 · PP457: extra responses and failed receives both re-arm the punch loop's full timeout, so a stream of either never times out
- 2026-08-27 · PP456: the punch answering loop has never run, so nothing shows that receiving something never returns success
- 2026-08-27 · PP455: the punch response's masked tail is built and never sent, and nothing in the port un-masks one
- 2026-08-27 · PP454: three classes each read the probe packet's thirteen offsets out of holepunch.c, and all three agreeing hid it
- 2026-08-27 · PP453: the STUN reader skips an attribute by 4 + length, so a conformant response with a padded attribute loses its address
- 2026-08-27 · PP452: the STUN exchange has never sent a datagram, so the request layout and the address reader only check each other
- 2026-08-27 · PP451: takion's cookie ack tests byte 0xd before the length check, and the second receive inherits the first datagram's size
- 2026-08-27 · PP450: takion's handshake is unported, so nothing states that a send failure aborts it while a lost ack costs a retry
- 2026-08-27 · PP449: takion's AV reorder timeout is unported, and nothing states that a loss burst costs one timeout rather than one each
- 2026-08-27 · PP448: a PIN reply over rudp is encrypted one counter behind every other ctrl message, and nothing managed models that
- 2026-08-27 · PP447: the two sections declaring a remaining query state its count in prose, and one of the two is stale
- 2026-08-27 · PP446: the site has no documentation area, so a page explaining how a frame reaches the screen has nowhere to be published
- 2026-08-27 · PP445: the shim exports no general rpcrypt aeropause, so the PS5 half of the registration payload has no oracle
- 2026-08-27 · PP444: the registration request payload is still C behind a P/Invoke wrapper, so nothing managed lays out the PIN exchange
- 2026-08-27 · PP443: three backlog lines state a line total no filename anchors, and all three are stale - one by 561
- 2026-08-27 · PP442: the ctrl participant's payloads are C literals transcribed once, and nothing holds them against ctrl.c
- 2026-08-27 · PP441: seven of ctrl.c's 22 message types appear in the only recording, and nothing says which fifteen are unwitnessed
- 2026-08-27 · PP440: nothing says which of ctrl.c's message types the port already answers, so what is left of PP294 is a guess
- 2026-08-27 · PP439: ctest reports the C suite as one test, so a whole munit suite can vanish and the gate still prints 100 percent passed
- 2026-08-27 · PP438: PP436 gated a third project and WarningPolicy names two, so the gate builds code whose warnings nothing enforces
- 2026-08-27 · PP437: nothing holds the host's imported entry points against the shim's exports, and a mismatch is a runtime crash
- 2026-08-27 · PP436: the site's hand-written prose names a tool and two flags, and nothing holds any of the three against the tree
- 2026-08-27 · PP435: scripts/holepunch carries the only two tracked ELF binaries, 14.4 MB nothing references, in a Windows-only port
- 2026-08-27 · PP434: PP230's manifest check reads only the root CMakeLists.txt, so an unconditional REQUIRED in lib/ is invisible
- 2026-08-27 · PP433: CI runs two of the three suites test.cmd runs, and the third is 454 runtime checks over the native seam
- 2026-08-27 · PP432: the site's generated flag list is two behind the host, and nothing joins it to the table it is derived from
- 2026-08-27 · PP431: the build finds Python through a module CMake removed, and its comment names a purpose the call does not serve
- 2026-08-27 · PP430: CHIAKI_ENABLE_RUDP is declared and never read, so turning Remote Play over Internet off does nothing at all
- 2026-08-27 · PP429: PP340's nine holepunch call sites are named only in prose, so a tenth would change what PP33 is blocked on in silence
- 2026-08-27 · PP428: seventeen asserted error codes are their variable's only reader, and nothing joins that count to PP404's census
- 2026-08-27 · PP427: ecdh.c's eight calls are all deprecated as of OpenSSL 3.0, and they are the whole of the key agreement
- 2026-08-27 · PP426: two of eleven socket calls in lib/src pass an unsigned buffer uncast, and the build has printed their warnings all along
- 2026-08-27 · PP425: the senkusha and stream participants carry bytes copied from the capture, so the replay confirms a table not the port
- 2026-08-27 · PP424: the stream connection has no replay participant, so the last of PP23's four channels replays against nothing
- 2026-08-27 · PP423: the stream's BANG is redacted whole, so the console's verdict on the handshake goes with the keys beside it
- 2026-08-27 · PP422: the microphone's audio header is built with channels and bits swapped, so the console is told 16 channels at 1 bit
- 2026-08-27 · PP421: senkusha's handshake has no replay participant, so the one channel the corpus holds whole replays against nothing
- 2026-08-27 · PP420: nothing says which recorded entries belong in a corpus, and the first stream capture is 566 corrupt-frame reports of 677
- 2026-08-27 · PP419: the senkusha tap emits takion's data type where the recording says protobuf payload type, and redaction reads it as one
- 2026-08-27 · PP418: the senkusha channel's redaction set is empty on prose alone, and the first capture of it is about to be published
- 2026-08-27 · PP417: every commit touching a .c file restates four counted claims by hand, from commands --recount already prints exactly
- 2026-08-27 · PP416: the ctrl drain's failure breaks the inner loop only, so the outer loop re-enters and sends what it meant to leave
- 2026-08-27 · PP415: ctrl_connect_tcp is unported, and its sockaddr allocation failure reaches the user as a connect failure
- 2026-08-27 · PP414: the rudp offset helper carries takion's doc comment, promising a -1 nobody returns for a default that is a real answer
- 2026-08-27 · PP413: the rudp unknown-subtype arm acks a counter it never read, and zero drops half the resend buffer
- 2026-08-27 · PP412: a quoted example in a rationale section is read as a claim, so citing a stale number turns the gate red on the citation
- 2026-08-27 · PP411: the ctrl login-PIN request handler is unported, so a PIN asked for after the session id ends the session unstated
- 2026-08-27 · PP410: three line-count claims sit in a shape the recount reader cannot see, and one of them is stale by 139 lines
- 2026-08-27 · PP409: the three keyboard messages the console sends are unported, and an empty text arrives as no text at all
- 2026-08-27 · PP408: the ctrl login-result handler is unported, so nothing states that an unsolicited PIN-incorrect raises no prompt
- 2026-08-27 · PP396: all four tap channels exist and two have never been recorded, so PP23 owes a capture and nothing else
- 2026-08-27 · PP369: eight asserts still carry weight about data across four files, and PP357's check reads only one of them
- 2026-08-27 · PP29: regist.c 918, discovery.c 495 and discoveryservice.c 384, which decide whether a console pairs
- 2026-08-27 · PP23: the protocol has no specification, so a managed rewrite has no oracle except the C code it replaces
- 2026-08-26 · PP407: eight stop-pipe inits in lib/src check their result and take a failure path, and the two in holepunch.c assert it
- 2026-08-26 · PP406: PP404 counts 53 asserted error codes without asking which callee can fail, and on Windows most of them cannot
- 2026-08-26 · PP405: two logs print a sized receive buffer with %s, and neither buffer is terminated at the length the caller knows
- 2026-08-26 · PP404: 54 asserts in lib/src inspect an error code, and PP357 established that the shipped build compiles every assert out
- 2026-08-26 · PP403: three strncpy copies in holepunch.c are bounded by sizeof(dest), so a full-length name or address leaves no terminator
- 2026-08-26 · PP401: a short duid leaves the rest of a stack local untouched, so a device identifier carries stack contents to PSN
- 2026-08-26 · PP400: the session id comes from srand(time(NULL)) and rand(), so two sessions in the same second share it
- 2026-08-26 · PP399: bytes_to_hex clamps against twice its output buffer, so its bound permits four times the room it has
- 2026-08-26 · PP398: two allocations in lib/src are used without being checked, and one is a null dereference on the PSN path
- 2026-08-26 · PP397: a recorded BIG would publish the session id PP326 redacts on ctrl, because the secret list is keyed by ctrl type
- 2026-08-26 · PP395: streamconnection has no tap channel, which is the last of PP23's four modules without one
- 2026-08-26 · PP394: senkusha has no tap channel, so PP393's first half is unbuilt for one of the two modules PP23 owes
- 2026-08-26 · PP392: the session request and its answer are asserted as two halves, and nothing says the request comes first
- 2026-08-26 · PP391: the replay harness has only ever been fed recordings the tests wrote, so no managed module answers the real capture
- 2026-08-26 · PP390: the fourth attempt to fix holepunch.c's log prefixes, and nothing in that file records the three decisions against it
- 2026-08-26 · PP388: 20 ordering predicates mix compacted call positions with raw offsets, so none can move onto CCall alone
- 2026-08-26 · PP386: 47 drift predicates pin a bare call to its exact spelling, semicolon included, and four broke this block
- 2026-08-26 · PP385: seven more sends in ctrl.c discard their result, and PP383's rule ships as a ceiling of seven rather than zero
- 2026-08-26 · PP384: chiaki_rudp_send_recv discards all four send results, so a send that never left is reported as a receive timeout
- 2026-08-26 · PP383: ctrl_enable_features sends seven messages, discards every result, and returns void so its caller cannot know either
- 2026-08-26 · PP382: 22 multi-byte accesses in lib/src go through a plain cast on pointers that carry no alignment guarantee
- 2026-08-26 · PP381: PP374's width check reads 5 of the 38 byte-order conversions in lib/src, missing every doubled parenthesis
- 2026-08-26 · PP380: six waits in senkusha.c log that nothing arrived and then report the measurement, or the whole run, as passed
- 2026-08-26 · PP379: the senkusha disconnect is sent and its answer dropped, so one that never left is never logged
- 2026-08-26 · PP378: the pong tag is read through a plain uint32_t pointer, three lines from where the file uses the unaligned type
- 2026-08-26 · PP377: three failure logs in the generic ack helper name the echo command, which is only one of its two callers
- 2026-08-26 · PP376: a BIG that lands exactly on a fragment boundary never gets its end-of-message flag
- 2026-08-26 · PP375: the BIG fragment loop discards every send result but the last, so a truncated BIG reports success
- 2026-08-26 · PP374: the pad info timestamp is read 32 bits wide and byte-swapped 16, so the logged value is the field's top half
- 2026-08-26 · PP373: two encoding-failure logs name a message the function is not encoding
- 2026-08-26 · PP372: a decoded video header has no owner until the receiver takes it, and three paths lose it
- 2026-08-26 · PP371: a NULL disconnect reason is dereferenced twice, on the path that runs whenever a console hangs up
- 2026-08-26 · PP370: the streaminfo ack's result was discarded, so a client reports connected while the console waits to be told
- 2026-08-26 · PP368: a gkcrypt owning a live thread was released with a bare free, leaving that thread writing into freed memory
- 2026-08-26 · PP367: the AV decrypt's result is discarded, so a failed decrypt hands ciphertext to the video receiver
- 2026-08-26 · PP366: one protobuf on the wire is three messages depending on the state, and the AV route is where every deletion waits
- 2026-08-26 · PP365: state_failed is written eight times in streamconnection.c and read nowhere, so a failed handler waits out its timeout
- 2026-08-26 · PP364: six cascading exit labels lift two measurements before freeing what made them, and the order is load-bearing
- 2026-08-26 · PP363: the stream's idle loop treats a timeout as work, which is the inverse of the ctrl loop PP349 ported
- 2026-08-26 · PP362: the stream connection walks three states before a stream exists, and one message can arrive before it is expected
- 2026-08-26 · PP361: the microphone toggle logs the opposite of what it sends, and the rudp subtype switch says it is wrong
- 2026-08-26 · PP360: the ctrl handshake's response side is unported, and the remote counter starts at one or zero depending on it
- 2026-08-26 · PP359: RP-Prohibit hides the stream without touching either display flag, so any DisplayA zero un-hides it
- 2026-08-26 · PP358: the ctrl response parser matches headers with strcmp, which is the defect PP296 fixed in its sibling
- 2026-08-26 · PP357: the two keyboard handlers bound their copy with an assert, and the shipped build defines NDEBUG
- 2026-08-26 · PP356: the ctrl connect spends the crypt counter three to six times, so the first message is not encrypted at zero
- 2026-08-26 · PP355: ctrl fini frees the login pin and never the message queue, so anything queued when the loop errors out leaks
- 2026-08-26 · PP354: two ctrl receive buffers share one size field, and the rudp read limit subtracts the wrong buffer's fill
- 2026-08-26 · PP353: two display flags decide whether the stream is shown, and the one value the capture holds is the clearing one
- 2026-08-26 · PP352: the two display handlers read payload bytes without checking the size, so a short message is decided by leftovers
- 2026-08-26 · PP351: accept and reject are the same ctrl message told apart by one unnamed byte, and nothing managed builds either
- 2026-08-26 · PP350: the ctrl channel owns two stop pipes for different jobs and nothing managed states which wakes what
- 2026-08-26 · PP349: the ctrl thread's loop is unported, and a cancelled select is its work branch rather than a failure
- 2026-08-26 · PP348: ctrl.c's ctrl_failed overwrites a recorded quit reason, which is the rule PP336 asserted the label keeps
- 2026-08-26 · PP347: the rudp arm copies a message into the 512-byte ctrl buffer with no bound, and its source buffer is 520
- 2026-08-26 · PP346: the ctrl read loop adds eight to a uint32 length, and the wrap defeats the overflow check below it
- 2026-08-26 · PP345: chiaki_ctrl_set_login_pin returns void, so an allocation failure reaches the user as a wrong PIN
- 2026-08-26 · PP344: the two ctrl send paths disagree about a null payload with a size, and nothing managed has either
- 2026-08-26 · PP343: the only reader that finds a C function body rather than its prototype is named after the reorder queue
- 2026-08-26 · PP342: a session id makes the client send three messages and nothing managed reproduces the order
- 2026-08-26 · PP331: a ctrl type the enum does not name arrives on every session, and the line that would say which is commented out
- 2026-08-25 · PP341: the rudp ctrl send sizes a stack buffer with a uint8_t, so a payload of 248 bytes or more overflows it
- 2026-08-25 · PP339: a failed rudp init is logged as an error and then ignored, so the session fails later naming something else
- 2026-08-25 · PP338: stop, join and fini have an order nothing states, and both wrong orders fail as something else
- 2026-08-25 · PP337: the device id a console is told is mostly fixed bytes, and nothing managed builds one
- 2026-08-25 · PP336: the session thread ends through two labels with different cleanup, and nothing managed says which reason a client sees
- 2026-08-25 · PP335: the login PIN loop says a PIN was wrong from a flag set before anyone could know, and nothing managed has it
- 2026-08-25 · PP334: the RP-Version retry is three attempts and the third reads the same reply differently, and nothing managed reproduces it
- 2026-08-25 · PP333: PP332 added a second HTTP head parser beside PP33's, and the two disagree about spacing and duplicates
- 2026-08-25 · PP332: nothing managed builds the session request, so PP297's recording is an oracle with nothing to judge
- 2026-08-25 · PP330: the executable, its window and the installer carry upstream's chiaki mark, and the site now ships a different one
- 2026-08-25 · PP329: --capture-mapping and --ratchet take whatever follows them, so a flag after either is swallowed as its argument
- 2026-08-25 · PP328: the recorder divides the tick rate down first, so every offset it stamps is wrong where that division has a remainder
- 2026-08-25 · PP327: the recorder exists and nothing turns it on, so making a capture is still a code change rather than a flag
- 2026-08-25 · PP326: nothing joins PP323's tap to PP297's recording, and a ctrl payload rendered as hex is eaten by the log sanitiser
- 2026-08-25 · PP325: the recording's redaction is shaped for log lines, so RP-Nonce reaches the file the moment a payload is structured
- 2026-08-25 · PP323: libchiaki hands a managed caller a log and nothing else, so a recording of a session has no payload to hold
- 2026-08-25 · PP297: no session exchange has ever been captured, so the four modules with no test cannot be ported against anything
- 2026-08-25 · PP293: session.c is 1206 lines and owns the session lifetime, and PP28 sizes it together with two files it does not resemble
- 2026-08-23 · PP321: the buffered pacer's interval comes from the display and nothing states what a rate change mid-stream does to it
- 2026-08-23 · PP320: the log sanitiser redacts nothing in a hexdump, so RP-RegistKey and RP-Nonce survive in the bytes and the ASCII gutter
- 2026-08-23 · PP319: no presentation path carries HDR: D3DImage refuses ten bits and a DirectComposition visual hides WPF's overlay
- 2026-08-23 · PP318: an assertion comparing two constants passes every analyzer, and one grep found one still standing in the suite
- 2026-08-23 · PP317: four MSBuild warnings print on every build of the test project, and PP316's policy cannot reach any of them
- 2026-08-23 · PP316: a test named for the UUID's four dashes asserts one literal against another, and the analyzer says so in every run
- 2026-08-23 · PP163: an HDR picture cannot reach the display through D3DImage, which refuses any surface wider than eight bits
- 2026-08-22 · PP315: the ceiling reads 32 and none of the 32 is a task that needs a test written, so the number still is not the debt
- 2026-08-22 · PP314: the ceiling says 95 and the port owes about one, so the number a reader acts on overstates the debt by two orders
- 2026-08-22 · PP312: brief has offered the same unstartable task four sessions running, because what blocks it is a console and not a dep
- 2026-08-22 · PP311: an id written in a fixture or an expected value pays a real task's debt, because the join reads the whole file
- 2026-08-22 · PP310: a task whose output is prose cannot ship: nothing asserts it, so the debt rises past a ceiling that may not rise
- 2026-08-22 · PP309: PP225 is the one code change in the port that shipped with nothing asserting it, and it is still unasserted
- 2026-08-22 · PP308: the ratchet's id join misses 75 tasks whose test shipped in the same commit, and only git can see that
- 2026-08-22 · PP307: the ratchet holds 96 tasks with no assertion naming them and nothing schedules paying any of them
- 2026-08-22 · PP306: the host has seven command-line flags, nothing lists them, and a mistyped one opens the window instead of refusing
- 2026-08-22 · PP305: the ratchet's join is one id per task, so work asserted under the id it continued reads as untested
- 2026-08-22 · PP304: every counted claim a commit invalidates is restated by hand, from a list a red test produces after the work is done
- 2026-08-22 · PP300: discovery's protocol half is wrapped rather than ported, so its parser and classifier are still C
- 2026-08-22 · PP299: a console omitting system-version crashes discovery through an unguarded atoi(NULL) in the classifier
- 2026-08-22 · PP298: the GMAC needs a 16-byte nonce and a 4-byte tag, and .NET's AesGcm accepts neither, so PP26 cannot finish on the BCL
- 2026-08-22 · PP296: RP-Nonce is matched case-sensitively though HTTP header names are not, so a console spelling it otherwise fails
- 2026-08-22 · PP292: the frames-lost count subtracts a wrapped sequence number as a plain int, so a loss across the wrap counts -65528
- 2026-08-22 · PP291: videoreceiver.c is the next link above the ported frame processor and no task owns it, so the chain stops there
- 2026-08-22 · PP290: thirteen exported C functions are referenced nowhere in the tree, and nothing names them as deletable
- 2026-08-22 · PP289: frameprocessor.c is the only caller of the FEC decode and no task owns porting it, so PP30 cannot finish
- 2026-08-22 · PP288: chiaki_fec_encode has no caller anywhere in the tree, and it is the half of fec.c that pulls in jerasure_matrix_encode
- 2026-08-22 · PP287: fec.c's encode and decode are jerasure calls with no managed counterpart, so PP30's 14 sites cannot go
- 2026-08-22 · PP286: the Galois field and Cauchy matrix jerasure computes have no managed counterpart, so PP30 has nothing to build on
- 2026-08-22 · PP285: PP23 sizes the oracle from 16935 lines in lib/src and 5512 in test, and no reading of the tree produces either
- 2026-08-22 · PP284: PP163's last question needs somebody to look at a window, and nothing in the tree opens one to look at
- 2026-08-22 · PP283: nothing asks whether a WPF window's own HWND accepts a DirectComposition target, which PP163's design assumes
- 2026-08-22 · PP282: PP281 built the DirectComposition path with the visual on top of the window, the arrangement that hides PP10's overlay
- 2026-08-22 · PP281: PP163 names DirectComposition the only way out that keeps PP10's overlay, and never built the path to see if it holds
- 2026-08-22 · PP280: a line-count premise is prose, so nothing rechecks it and two of seven no longer match the tree
- 2026-08-22 · PP279: a one-segment drift path is recognised by existing, so deleting roadkeep.toml or package.cmd leaves the corpus silently
- 2026-08-22 · PP278: the corpus guard sweeps only paths starting gui\, so every drift source outside it is held by a hand-written list
- 2026-08-22 · PP277: the installer keeps upstream's AppId, so it upgrades an installed chiaki-ng in place rather than sitting beside it
- 2026-08-22 · PP276: a drift locator returns the first match walking up, so a name that also exists under app\ resolves to the wrong file
- 2026-08-22 · PP275: .gitignore ignores scripts/chiaki-ng.iss, which this port maintains by hand rather than generates
- 2026-08-22 · PP274: the Inno Setup script packages ..\chiaki-ng-Win\chiaki.exe, a path no build creates and a client that is off
- 2026-08-22 · PP273: nothing assembles what an installer would ship, so the native libraries the host loads beside itself are never packaged
- 2026-08-22 · PP38: nothing counts the shipped lines that carry no assertion, so the rule is a sentence rather than a gate
- 2026-08-22 · PP36: the only CI job is the roadkeep lint gate, so no test result can turn a branch red
- 2026-08-22 · PP26: 3242 lines of crypto over OpenSSL sit between a registration and a session
- 2026-08-22 · PP22: every CI workflow was deleted, so nothing builds, signs or packages the application
- 2026-08-21 · PP272: a drift check whose anchor moved extracts nothing, and its negative assertions then pass
- 2026-08-21 · PP271: ninety drift locators can each answer null, and the test using one then passes without reading anything
- 2026-08-21 · PP270: nothing fails when the shim the managed suite loaded is older than the sources it is built from
- 2026-08-21 · PP269: every managed test since PP21 loads a shim the build did not make, the deploy that refreshes it being off
- 2026-08-21 · PP268: the candidate probe is built and judged and never sent, so the layout has not been across a socket
- 2026-08-21 · PP267: the push socket is described and never opened, so nothing turns a frame into a notification
- 2026-08-21 · PP266: the five session calls have a transport, shapes and outcomes, and no function that performs one
- 2026-08-21 · PP265: the port guessing settings are unported, and a refused value is indistinguishable from an accepted one
- 2026-08-21 · PP264: the public accessors are unported, and one copies forty-six bytes into a buffer whose size it never states
- 2026-08-21 · PP263: the event glue is unported, and the callback keeps only the last socket to fire
- 2026-08-21 · PP262: the queue's ownership is unported, and its link invariant lives in the constructor not the enqueue
- 2026-08-21 · PP261: the diagnostic printers are unported, and a failed encode is handled then printed anyway
- 2026-08-21 · PP260: the upnp mappings are unported, and they are added with a lease that never expires
- 2026-08-21 · PP259: the stun lookup is unported, and its first call uses the ipv4 servers whatever family it was asked for
- 2026-08-21 · PP258: creating a session is unported, and a websocket that fails to connect blocks the caller forever
- 2026-08-21 · PP257: starting a session is unported, and two of its failures return success through a shadowed variable
- 2026-08-21 · PP256: the followup receive loop is unported, and a socket error spins it with no way out
- 2026-08-21 · PP255: the upnp discovery thread is unported, and its timeout writes the status outside the lock
- 2026-08-21 · PP254: the websocket fqdn lookup is unported, and its tokener failure reports success with no address written
- 2026-08-21 · PP253: the NAT diagnosis that writes back into the session is unported, and PP251 stated a rule the repo already contradicted
- 2026-08-21 · PP252: the offer's address discovery is unported, and a failed local lookup is advertised as an empty address
- 2026-08-21 · PP251: the offer's candidate layout is unported, and what it hands forward as the mapped port can be a guess
- 2026-08-21 · PP250: the session message writer's SIZING is unported - the buffer comes from a different format string than the text
- 2026-08-21 · PP249: the punch's two cleanups are unported, and one path reaches success holding a timeout
- 2026-08-21 · PP248: every private-address test in the punch compares one byte too many, so none of them can match
- 2026-08-21 · PP247: response validation is unported, and a derived candidate is exempt from every check that aborts
- 2026-08-21 · PP246: reading a candidate response is unported, and the address it allocates leaks on the common path
- 2026-08-21 · PP245: the candidate wait loop is unported, and one of its errors says the opposite of what happened
- 2026-08-21 · PP244: the probe send loop is unported, and the flag saying it worked only means one address resolved
- 2026-08-21 · PP243: the candidate probe is unported, and its arrays are sized by a count the other end chose
- 2026-08-21 · PP242: the accept wait is unported, and its failure names a wider wait than the one that was made
- 2026-08-21 · PP241: two calls in the punch path have their answers thrown away, and one of them cannot always report failure
- 2026-08-21 · PP240: the call that opens a hole is unported: two preconditions, an offer, and an ordering that decides who answers next
- 2026-08-21 · PP239: the PS4 wakeup is unported: a discovery hop whose answer is copied into a fixed stack buffer
- 2026-08-21 · PP238: the loop answering punch requests is unported, and it reports success only by the traffic stopping
- 2026-08-21 · PP237: the other reply sender is the same function twice, and its failure logs an int through a string format
- 2026-08-21 · PP236: the hole punching reply is unported: twenty-byte ids in thirty-two-byte slots, and an address xored over the session ids
- 2026-08-21 · PP235: deleting a session is unported, and both its failure messages name a different function entirely
- 2026-08-21 · PP234: the local address pick is unported, and its rule prefers wireless over ethernet by where the walk stops
- 2026-08-21 · PP233: the session check is unported: one call, two endpoints, and a response parsed only to be thrown away
- 2026-08-21 · PP232: the fetched STUN lists are unported: two files from a third-party repository, parsed by two different rules
- 2026-08-21 · PP231: the websocket thread's auto-ACK of offers is unported, and its parse failure drops the notification entirely
- 2026-08-21 · PP230: the vcpkg manifest does not carry a package the build now requires unconditionally, so CI cannot configure
- 2026-08-21 · PP229: no check confirms a press reaches the document and the grid, so the last link is verified by a person looking
- 2026-08-21 · PP228: with no pad attached the mapping screen dies on a null mapping instead of saying there is no pad
- 2026-08-21 · PP227: no test raises a real click, so the handler that turns one into a row is the one thing nothing exercises
- 2026-08-21 · PP226: nothing in this port has ever looked at what a screen draws, so a screen that never appeared kept the suite green
- 2026-08-21 · PP225: setting StartupUri to null throws, so the run dies inside OnStartup and no window appears at all
- 2026-08-21 · PP224: the mapping screen never appears and nothing says why, because the window it looks for does not exist yet
- 2026-08-21 · PP223: the mapping screen has never been on screen, and its row buttons are markup that answers no click
- 2026-08-21 · PP222: with the analog opt-in off the triggers vanish from the log too, so pressing one produces no sign it was seen
- 2026-08-21 · PP221: the axis report waits for movement, so a stick resting off centre and still reads the same as a centred one
- 2026-08-21 · PP220: the capture diagnostic asks for analog and a resting stick drowns it, so the presses that matter cannot be found
- 2026-08-21 · PP219: the port never opens the device, so a pad that enumerates correctly delivers no button, axis or hat event at all
- 2026-08-21 · PP218: nothing in the port lists SDL's devices, names one or reads its mapping string, so the screen has no pad to show
- 2026-08-21 · PP217: nothing joins the SDL thread, the capture and the mapping screen, so every piece of PP18 is a component with no consumer
- 2026-08-21 · PP215: the websocket loop feeds every frame to one json-c tokener, and reads a frame that yields nothing as a bad frame
- 2026-08-21 · PP214: nothing in the port drives the push socket's frames, so the ping cadence and what each frame kind means are unstated
- 2026-08-21 · PP213: the two session-message waits are unported, and an ack for the wrong request id has nothing that ends it
- 2026-08-21 · PP212: nothing in the port holds the websocket notifications, so every holepunch wait has no queue to walk
- 2026-08-21 · PP211: the mapping grid navigates by Left, Right and three-row jumps, none of which the ported focus chain answers
- 2026-08-21 · PP210: the session create body sends the same word for three identity fields, and the account id is an int in one payload
- 2026-08-21 · PP209: an account with no consoles is reported as out of memory, on the one error path that returns without cleaning up
- 2026-08-21 · PP208: the session uuid is drawn from rand reseeded by the clock, so two sessions in one second share an identifier
- 2026-08-21 · PP207: eight of the session's nineteen states are never entered, and one of them is what the already-started guard tests
- 2026-08-21 · PP206: the wake-up URL is built in a buffer too small for most online ids, and asks for a PS4 the device list refuses
- 2026-08-21 · PP205: the probe packet leaves thirty-five of its eighty-eight bytes empty, and its reply masks the console address with sids
- 2026-08-21 · PP204: the two port guessers wrap the same overflow to places far apart, and disagree on offering the port that answered
- 2026-08-21 · PP203: the RUDP exchange recognises what it asked for by one byte, and unwraps a wrong message instead of dropping it
- 2026-08-21 · PP202: giving up on one RUDP packet acknowledges every older one, and the loop's rewind skips as many as the ack removed
- 2026-08-21 · PP201: the RUDP size field is read twice and answers differently, and four packet types pass as one control message
- 2026-08-21 · PP200: the STUN reader believes the first mapped address it meets, and skips attributes without their padding
- 2026-08-21 · PP199: the port allocation tree looks further ahead the less it knows, and one leaf subtracts the wrong way round
- 2026-08-21 · PP198: the STUN server shuffle looks like Fisher-Yates but excludes the index it is shuffling, so the last can never stay last
- 2026-08-21 · PP197: the candidate race is settled by the first datagram to answer, not by which candidate is better
- 2026-08-21 · PP196: the message writer cannot use a JSON library, because one field must be written broken for the console to accept it
- 2026-08-21 · PP195: the candidate reader defaults three fields the core requires, and reads the struct's key rather than the wire's
- 2026-08-21 · PP194: a malformed route MAC in a connection request becomes six zeros with no error, and one base64 field sizes by input
- 2026-08-21 · PP193: the candidate reader names three type words and the writer produces four, so the fourth is a fallback
- 2026-08-21 · PP192: customData1 is base64 twice, so one decode yields printable bytes of a plausible length that are not the payload
- 2026-08-21 · PP191: PSN sends a session message field with no value at all, and the action flags skip a bit a port would fill
- 2026-08-21 · PP190: the push notification types are a mask a caller waits on, and six of them are namespaced strings no rule derives
- 2026-08-21 · PP189: the bodies the core posts are JSON only because a header overrides what POSTFIELDS would announce them as
- 2026-08-21 · PP188: the one call site that is a WebSocket sends its subprotocol as a header and disables the timeout every other one sets
- 2026-08-21 · PP187: the three curl behaviours HttpClient lacks were a plan, so each call site would still decide what curl was doing
- 2026-08-21 · PP186: PP33 is sized at 420 call sites, which is the wrong number to plan a translation from and the only one anybody has
- 2026-08-21 · PP185: which of the C suite's files the port answers for was an audit run by hand, right on the day it was run
- 2026-08-21 · PP184: the two HTTP parsers have one signature and were compared nowhere, so a divergence would surface as a reply misread
- 2026-08-21 · PP183: json-c cannot tell a null value from a missing key and the port could, so it would read a field the other client skips
- 2026-08-21 · PP182: nothing held the managed side to appending the ledger rather than truncating it, or to reporting a write it could not do
- 2026-08-21 · PP181: the seam skipped the two setters whose defaults are the ledger's never-empty rule, so a row could carry two blanks
- 2026-08-21 · PP180: the five frame stages are carried in the ledger and nothing could fill them, so the port wrote zeros regardless
- 2026-08-21 · PP179: nothing holds the managed ledger row to carrying every field and no hostname, and it is the file users attach to reports
- 2026-08-21 · PP178: the ledger the two clients share replaces dangerous characters rather than escaping, and nothing held the port to it
- 2026-08-21 · PP177: the baseline seam exposes only the average, which is the number its own header warns overstates and understates at once
- 2026-08-21 · PP176: the C suite's allocation budget is the one case the port never carried, and it is what a managed rewrite loses first
- 2026-08-21 · PP175: PP163 named two ways out of the eight-bit ceiling and priced neither, so the HDR decision has no measurement
- 2026-08-21 · PP174: nothing stops a second copy of a pad's size being typed back into the port, which is how the Qt client reached three
- 2026-08-21 · PP173: the mapping grid draws a row one button wide or two, and nothing yet draws the capture the pad drives
- 2026-08-21 · PP172: the mapping screen suppresses one quit per capture with a flag that puts itself back, and closes twice without a guard
- 2026-08-21 · PP171: four scaler combos share two lists and take four different defaults, and eleven switches are stored as words
- 2026-08-21 · PP170: the tuning screen's hue slider is radians cut short at 6.28, and temperature carries bounds that are round in no unit
- 2026-08-21 · PP169: the renderer presets are three names for one choice, and the store's word for Custom is the empty string
- 2026-08-21 · PP168: the colour mapping sliders repeat each row's condition, and one option is named for the function that hides it
- 2026-08-21 · PP167: the settings screen's nine tabs each exist and nothing composes them into one dialog
- 2026-08-21 · PP166: the Config tab reads its profile from the default store and turns verbose on by clearing one bit
- 2026-08-21 · PP165: the Remote tab decides its one button from four credentials, and its two sliders default differently
- 2026-08-21 · PP164: the Controllers tab stores a rumble word whose capital letter is not the label's, and an increment in hundredths
- 2026-08-21 · PP162: the view tests race through WPF's static initialisation and the whole suite reports a hang, intermittently
- 2026-08-21 · PP161: the Keys tab derives each binding's settings key from a translatable label, and two labels contradict their enum
- 2026-08-21 · PP61: the startup harness labels a warm run cold, because the OS file cache outlives the process
- 2026-08-21 · PP21: Qt6 is still required to build: Core, Gui, Quick, Qml, Svg, Widgets, Concurrent and WebEngineQuick
- 2026-08-21 · PP18: the controller mapping screen is QML bound to the live SDL mapping strings
- 2026-08-21 · PP17: the renderer tuning and colour mapping screens are 2132 lines of QML over libplacebo options
- 2026-08-21 · PP16: the settings screen is 2984 lines of QML against 149 properties exposed from C++
- 2026-08-21 · PP15: the PSN login and token dialogs are 882 lines of QML wrapped around the embedded browser
- 2026-08-21 · PP10: the stream HUD and the in-stream menu are QML drawn over the video and disappear with the renderer
- 2026-08-21 · PP9: the video is presented by libplacebo into a Vulkan-backed QQuickWindow, which WPF cannot host
- 2026-08-21 · PP7: PSN OAuth login runs in a QtWebEngine view, a bundled browser the WPF host has no equivalent for
- 2026-08-19 · PP160: the Consoles tab deletes by index and unhides by MAC, and streamer mode hides the address rather than the name
- 2026-08-19 · PP159: PP158 shipped the Audio tab's rules with no screen to draw them on, and its device lists are the only dynamic ones
- 2026-08-19 · PP158: four Audio tab controls carry a unit conversion the store does not show, and one of two percent sliders scales
- 2026-08-19 · PP157: the Stream tab's resolution has three representations and choosing one silently zeroes a bitrate
- 2026-08-19 · PP156: the shortcut dialog writes outside the application, and carries a second copy of the PSN chain
- 2026-08-19 · PP155: two display targets carry a mode and a value in one integer, and the contrast one's index order is not its value order
- 2026-08-19 · PP154: the one function that edits the bitstream is positioned by the reader, and nothing compares where a managed one writes
- 2026-08-19 · PP153: the slice-header parsers decide every loss response, and a failed header parse silently zeroes the SPS they need
- 2026-08-19 · PP152: the bit reader both slice-header parsers sit on is header-only, so nothing links it and nothing checks it
- 2026-08-19 · PP151: the frame timing has three fallback chains and its oracle could not reach the duration one at all
- 2026-08-19 · PP150: the reorder queue is the module a rewrite would most confidently get wrong, and nothing compares one to libchiaki's
- 2026-08-19 · PP149: the port calls across the seam for two one-line comparisons, so nothing checks a managed version against them
- 2026-08-19 · PP148: the Video tab stores words that are not its labels on three of six rows, and its first decoder stores nothing
- 2026-08-19 · PP147: the port has two touchpad answers in two files, so the SDL path is a third place 1079 could be typed
- 2026-08-19 · PP146: json-c's accessors are lenient where System.Text.Json is strict, so holepunch.c's reads translate wrongly
- 2026-08-19 · PP145: the login's two browserless paths have no port, so a machine WebView2 will not start on cannot log in at all
- 2026-08-19 · PP144: the PSN token exchange is three Qt network requests whose shapes the port has to match exactly
- 2026-08-19 · PP143: a mistyped XAML binding is not a build error, it is a control that silently shows nothing
- 2026-08-19 · PP142: the port has 148 preferences and no names for them, and the names cannot be derived
- 2026-08-19 · PP141: the registration progress dialog ignores whether the operation succeeded, and nothing says so
- 2026-08-19 · PP140: the settings screen writes on commit and nothing in the port says so
- 2026-08-19 · PP139: three of the four registration dialogs have validation rules nothing in the port states
- 2026-08-19 · PP138: the console list merges three sources and two of them are suppressed by different mechanisms
- 2026-08-19 · PP137: the focus visual PP12 asks for exists on one of the Qt client's six controls
- 2026-08-19 · PP136: the focus chain is a decision with nothing binding it to a WPF control
- 2026-08-19 · PP135: nothing has asked WPF whether it will take the shared surface, only Direct3D
- 2026-08-19 · PP134: pl_render_image itself has never run, only the texture it would render into
- 2026-08-19 · PP133: nothing says libplacebo can render into the shared texture, only that the texture exists
- 2026-08-19 · PP132: the D3D11-to-D3D9Ex hop D3DImage requires was accepted as a cost and never built
- 2026-08-19 · PP131: PP9's renderer decision was taken from the source and nothing has ever built it
- 2026-08-19 · PP130: the pad's sensors are fused into an orientation by a stateful filter the port has no access to
- 2026-08-19 · PP129: SDL names a touch by touchpad and finger, the console by an id from a pool of two, and nothing maps them
- 2026-08-19 · PP128: the roster a hotplug event updates is keyed by identity and enumerated by position, and nothing checks it
- 2026-08-19 · PP127: the 47-byte DualSense effects report is a wire format the port writes by offset and nothing checks
- 2026-08-19 · PP126: what a button press becomes on the mapping screen is a token two clients have to agree on
- 2026-08-19 · PP125: takion's send buffer decides what gets retransmitted and the port drove none of it
- 2026-08-19 · PP124: nothing the port sends upstream is checked, and the congestion report is recorded twice
- 2026-08-19 · PP123: the only end-to-end recording in the tree, 24 real video packets, is checked by nothing in the port
- 2026-08-19 · PP122: the four bitstream cases that parse a truncated packet are recorded and the port drove none
- 2026-08-19 · PP121: eight of test/rpcrypt.c's nine recorded cases are unchecked, four of them a whole console generation
- 2026-08-19 · PP120: the GMAC that authenticates every takion packet has four recorded vectors and the port checks none
- 2026-08-19 · PP119: the registration request head is regist.c's snprintf, and its request line carries HTTP/1.1 twice
- 2026-08-19 · PP118: SDL has no thread of its own, so its event pump has nowhere to run but the dispatcher
- 2026-08-19 · PP117: loading the portable tree's SDL2.dll does not return, so the managed host cannot call SDL at all
- 2026-08-19 · PP116: the frame timing fallbacks run only from the C suite, so nothing managed knows when a decoded frame is due
- 2026-08-19 · PP115: the registration request runs only from the C suite, so nothing managed can pair a console
- 2026-08-19 · PP114: the packet parse and the frame delivery still take arrays, so the hot path allocates where the C one does not
- 2026-08-19 · PP113: nothing on the managed side of the seam is measured against the zero-allocation budget PP44 set for the transport
- 2026-08-19 · PP112: the frame processor runs only from the C suite, so nothing managed can turn units into a frame or drive FEC
- 2026-08-19 · PP111: the key position expansion and the AV packet header run only from the C suite, so a managed transport has neither
- 2026-08-19 · PP110: the bitstream parser runs only from the C suite, so nothing managed can tell an I frame from a P frame
- 2026-08-19 · PP109: the two reorder queue functions with defects in them are the two the suite never calls
- 2026-08-19 · PP108: the reorder queue runs only from the C suite, so a managed transport would rebuild its window from scratch
- 2026-08-19 · PP106: sequence number comparison is two inline functions in a C header, so a managed transport would spell them as integers
- 2026-08-19 · PP105: chiaki_ecdh_derive_secret is handed the console's signature and the handshake key and reads neither
- 2026-08-19 · PP104: the recorded key agreement and the session key stream run only from the C suite
- 2026-08-19 · PP103: the 3081 lines of recorded erasure cases run only from the C suite, so a managed FEC would have no judge
- 2026-08-19 · PP102: a discovery reply parses in place, so every field of a parsed console points into the datagram it came from
- 2026-08-19 · PP101: the volume step is an SDL_MixAudioFormat call, so no managed host can scale a frame without SDL
- 2026-08-19 · PP100: the two DualSense intensity events pack into one byte through two tables, and neither is derivable from its enum
- 2026-08-19 · PP99: the three latches between the pads and the wire are QTimer state on a QObject, so nothing managed can reproduce a press
- 2026-08-19 · PP98: the haptics-to-rumble fold wraps at full scale, so the loudest frame tells the pad to rumble at zero
- 2026-08-19 · PP97: the haptics-to-rumble fold is SDL and a controller list, so no managed host can tell a PS4 pad what to feel
- 2026-08-19 · PP96: the microphone ring is a second copy of the audio output ring, fifty lines that differ in one bound
- 2026-08-19 · PP95: the audio output ring is a QMutex around SDL, so no managed host can queue a frame without both
- 2026-08-19 · PP94: the dpad-as-touchpad gesture is a QTimer state machine, so no managed host can drive a finger with it
- 2026-08-19 · PP92: the keyboard and mouse paths are QKeyEvent and QMouseEvent, so no managed host can move a stick or a finger
- 2026-08-19 · PP91: std::clamp's arguments are transposed in both touch paths, so a drag past the window edge is never clamped
- 2026-08-19 · PP90: the baseline ledger both builds are compared with has no managed writer, so the port contributes no rows
- 2026-08-19 · PP89: the session log's name and its sanitiser are QDateTime and QRegularExpression, so no managed host can write one
- 2026-08-19 · PP88: the log sanitiser leaves the tail of a compressed IPv6 address in a file users paste into issues
- 2026-08-19 · PP87: the video and audio sample callbacks are the last uncrossed part of the seam, and nothing offline can drive one
- 2026-08-19 · PP86: the controller state is 21 scalars and a touch array, and nothing managed can put one into a session
- 2026-08-19 · PP85: the session thread and its event callback are unreached, so nothing managed can hear a session end
- 2026-08-19 · PP84: nothing managed has called chiaki_lib_init or built a ChiakiSession, so the lifecycle has no first end
- 2026-08-19 · PP83: the 22 callbacks libchiaki takes are uncrossed in the direction it calls them, so nothing above the seam can be built
- 2026-08-19 · PP82: the 148-row preference table was extracted from settings.cpp once and nothing re-checks it
- 2026-08-19 · PP81: the store reader knows registered_hosts and none of the other three arrays beside it
- 2026-08-19 · PP78: picking "none" in the decoder setting fails the session instead of decoding in software
- 2026-08-19 · PP37: a screen ported into code-behind can only be exercised by opening a window
- 2026-08-19 · PP35: 5512 lines of munit tests cover the modules this port rewrites, and nothing in a managed tree runs them
- 2026-08-19 · PP34: the threading and logging layer exists to paper over pthreads and Win32, an abstraction .NET does not need
- 2026-08-19 · PP25: the wire format is generated by nanopb, a C generator with no managed output
- 2026-08-19 · PP24: the build is CMake with vcpkg, so Visual Studio opens a folder rather than a solution
- 2026-08-19 · PP19: the confirm, remind, display, steam shortcut and dialog host screens are still QML
- 2026-08-19 · PP14: registration, manual host, console PIN and profile dialogs are QML with their own validation
- 2026-08-19 · PP13: the console list, the front door of the application, is QML bound to the discovery model
- 2026-08-19 · PP12: the six custom QML controls carry the theme, and gamepad focus navigation is built into them
- 2026-08-19 · PP8: controller input is SDL wired into Qt events, and 950 lines of it decide what a button does
- 2026-08-19 · PP6: console discovery and wake use QUdpSocket, so the console list has no source in a Qt-free host
- 2026-08-19 · PP5: streamsession.cpp drives the session through Qt signals and QThread, so a session cannot run without Qt
- 2026-08-19 · PP4: libchiaki is C with function-pointer callbacks and no managed binding, so no .NET code can start a session
- 2026-08-18 · PP80: the store reader knows the byte-array encoding and none of the other five, so an @ nickname reads back wrong
- 2026-08-18 · PP79: the .NET store reads the default hive, so a user with an active profile sees none of their consoles
- 2026-08-18 · PP77: the decoder choice that holds the non-NVIDIA floor is 70 lines inside a Qt method, so nothing can assert it
- 2026-08-18 · PP3: app data, session logs and key files are placed by QStandardPaths, which the .NET host does not share
- 2026-08-18 · PP2: settings, registered consoles and the PSN token live in QSettings, which the .NET host cannot read
- 2026-08-16 · PP75: test.cmd runs ctest and nothing runs the .NET host's selftest, so 11 assertions sit in the tree ungated
- 2026-08-16 · PP74: compile.cmd builds the Qt client and knows nothing about app/, so the tree's only gate now covers half of it
- 2026-08-16 · PP73: nothing rechecks a task's counted premise against the tree, and three of four spot-checked lines did not match it
- 2026-08-16 · PP71: paced at 60fps the cuda decoder's send p99 reaches 13480us against d3d11va's 548us, and varies wildly run to run
- 2026-08-16 · PP70: vl_vlc_valid_bits returns 32 minus a count that can exceed 32, unsigned, so an exhausted reader reports billions of bits
- 2026-08-16 · PP69: slice_set_reference_frame_h265 edits the frame from a parse that ran out of input, and reports that as success
- 2026-08-16 · PP68: chiaki_bitstream_header never returns on a truncated SPS, and the header it is handed comes off the network
- 2026-08-16 · PP67: nothing launches the suite, so running ctest means knowing it is a MinGW64 shell away and not on PATH
- 2026-08-16 · PP66: spike/decode-path writes a result.json naming no adapter, so two runs cannot be told apart by the file
- 2026-08-16 · PP65: d3d11va's decode submission stalls: a 103us median send against a 26990us p99, which is 1.6 frame intervals
- 2026-08-16 · PP57: videoreceiver reads slice.slice_type uninitialised when the bitstream parser declined the frame, which is UB
- 2026-08-16 · PP56: compile.cmd never builds chiaki-unit, so ctest reports green against whatever binary was last linked by hand
- 2026-08-16 · PP51: NVIDIA first has no stated contract for what happens on an AMD or Intel machine
- 2026-08-16 · PP48: the client already prefers the cuda decoder on an NVIDIA card, and nothing measures whether that helps
- 2026-08-16 · PP1: no .NET host exists, so a XAML window has nowhere to live
- 2026-08-12 · PP64: a field can be added to the baseline record without bumping the schema, and 34b10cbf already did it
- 2026-08-12 · PP62: the tree's only build cannot include QtWebEngine, so the login screen the port replaces is compiled out
- 2026-08-12 · PP60: one baseline file accumulates records of four schemas and the comparison tool refuses all but the newest
- 2026-08-12 · PP59: takion mallocs a queue entry and a packet buffer per video packet, so the receive step has no budget
- 2026-08-12 · PP58: the airspace present path runs at half the shared surface's frame rate and nothing says why
- 2026-08-12 · PP45: no harness runs the old build and the new one against the same input and prints the difference
- 2026-08-12 · PP44: a managed transport allocating per packet would show up as stutter, and nothing would fail when it does
- 2026-08-12 · PP43: the present path is the largest risk in the port and would be chosen by argument rather than by measurement
- 2026-08-12 · PP42: telemetry has no sink: the counters live in the window and end with it
- 2026-08-12 · PP41: only one stage of the frame path is timed, so a slower build says which build and never which stage
- 2026-08-11 · PP54: the vendored munit does not compile on gcc 16, so the only test target in the tree cannot be built at all
- 2026-08-11 · PP40: glass to glass latency is not among the numbers measured, and it is the one users judge on
- 2026-08-11 · PP39: the numbers the stream already computes are drawn on screen and never recorded, so the Qt build leaves no baseline
- undated · PP854: the pad stops driving the console after the window loses focus, and every layer this port can see stays healthy
- undated · PP853: no history packet reaches the wire in a live session, so a button press is the one input the console never hears
- undated · PP851: a DualSense feels what a PS4 pad feels: the console's haptic stream is folded to rumble rather than played
- undated · PP93: the dpad touch path uses a third pair of touchpad bounds, matching neither console's pad
- undated · PP53: frames arrive with network jitter and are presented against a fixed refresh, so each waits for a vblank it missed
- undated · PP49: the console sends SDR on most titles and an HDR display shows it flat, with nothing in the client trying
- undated · PP47: DLSS needs motion vectors and a depth buffer, and a decoded video stream carries neither
- undated · PP46: the claim that dropping the bundled browser makes startup and the installer smaller is untested
