Right after finishing the bug hunt, I sat down and wrote about whether I should scrap the whole project and build something else instead.
Not a passing thought — a proper analysis. I reviewed the source code of two open-source AI frameworks. Mapped out how Sentinel’s scanning pipeline could bolt onto them as a security proxy. Calculated effort estimates. Wrote feasibility reports. Roughly 230KB of analysis in a single sitting.
Finding 99 bugs in your own code does something to your confidence. The architecture was sound — the assessments confirmed that. But “sound architecture with 99 bugs” is an uncomfortable place to sit. And there were these other projects out there, already built, already working, that just needed a security layer on top. Maybe that was the smarter path. Maybe I was reinventing wheels.
I wrote it all out. Streaming support would be the hard part — buffer-then-scan kills the user experience but scan-while-streaming is architecturally messy. The CaMeL guarantees that make Sentinel unique would be hard to maintain through a proxy. The existing frameworks had their own gaps that would become my problems.
By the end of the analysis, the conclusion was clear: the proxy idea was worth keeping as a future mode, but not worth pivoting to. Sentinel’s architecture was genuinely novel. The bugs were fixable. The foundation was right.
I closed the documents. Then I pushed 157 commits. The doubt didn’t slow me down. If anything, having confronted the question properly — with evidence, not just feelings — made it easier to commit fully to the answer.