Kola Sanniya mask

Sanni Yakuma · an exorcism for code

request/request

In the healing ritual of southern Sri Lanka, masked dancers call out the eighteen Sanni demons, each the cause of an illness, mock them, and send them away. Tonight the patient is a codebase.

github.com/request/requestcommit 3c0cddc 29 October 2026 diagnosed by gemma-4-31b-it

8 blessings · 3 of 18 demons found · 15 never came near

Ata Paliya

First, the blessings

The ritual does not begin with demons. It begins with dances that bring blessings. So here is what this repository already does well.

Daha Ata Sanniya

The demons come out

One by one, each demon steps into the torchlight, boasts of what it has done, is mocked, and agrees to leave. Every claim below rests on evidence found in the code itself.

3 demons remain. Read each cure, then send the demon away.

Abutha Sanniya mask

Abutha Sanniya

brings madness not caused by spirits · in code: self-made complexity

severe
A web of lines I wove in request.js, where init stretches to 137 lines of pure chaos. I watched the developers drown in 58 paths of complexity while getNewAgent added another 99 lines of confusion. You think a few refactors can untangle my knot. Very well, I shall vanish.
The evidence (2)
  • E1 request.js:141 `Request.prototype.init`: 137 lines, complexity 58, nesting 5
  • E2 request.js:585 `Request.prototype.getNewAgent`: 99 lines, complexity 35, nesting 3

The exorcism

Decompose the monolithic Request.prototype.init function to reduce cyclomatic complexity.

  1. Extract the option-parsing logic from request.js line 141 into a new Request.prototype.setDefaults method
  2. Move the agent configuration logic to a dedicated helper function
  3. Delegate redirect-specific setup to a separate method to reduce nesting
Butha Sanniya mask

Butha Sanniya

brings madness caused by spirits · in code: dependency hell

clear
Forty spirits from package.json dance without a lockfile to bind them. Every install is a gamble, a roll of the dice in the dark. Your desire for stability is a joke to me. I tire of this game and leave.
The evidence (1)

The exorcism

Stabilize dependency resolution by introducing a lockfile.

  1. Run npm install to resolve the 40 dependencies listed in package.json
  2. Generate a package-lock.json file to ensure deterministic builds
  3. Commit the lockfile to the repository
Kora Sanniya mask

Kora Sanniya

brings lameness and paralysis · in code: paralysed repo

severe
Since February 11, 2020, I have frozen the heart of this machine. One hundred and forty-five souls cry out in the issues, but no hand moves to answer them. The README screams deprecation while I sleep in the silence. I go now to find a living repo.
The evidence (2)
  • E13 Last commit 2020-02-11, 81 months ago
  • E14 145 open issues and pull requests are waiting

The exorcism

Formalize the deprecation of the repository through archival.

  1. Mark the GitHub repository as Archived in the settings to prevent new issues
  2. Update the README to explicitly point users toward modern alternatives like undici or node-fetch

Kola Sanniya

Kola Sanniya mask

The leader of the demons

The project's success led to an accumulation of 'simplified' features that eventually created an unmaintainable monolith. This complexity made it impossible to evolve, leading to its necessary deprecation in favor of modern native APIs.

The accumulation of complexity in core functions like init reflects a library that tried to do too much for too many users, eventually becoming a victim of its own versatility.

සාමයෙන් නික්ම යන්න, අලුත් මගක් සොයා ගන්න.

Sāmayen nikma yanna, aluth magak soyā ganna.

Depart in peace, find a new path.