Projects

Things I've built, and fixes I've sent upstream.

Contribution activity

github.com/PranavMishra28 · as of Oct 27, 2026

Contributions
5,177past year
Active days
253of 367
Longest streak
27 dayspast year
Busiest day
Oct 16100 contributions

5,177 public GitHub contributions by PranavMishra28 in the last year, on 253 of 367 days. Longest streak 27 days.

Selected projects

Each one is labelled with the maturity its own repository states.

KRYN

v1.0.0, supervised

A local coding workspace for Apple Silicon: OpenCode's agent loop running against a guarded Qwen 9B model served by oMLX. I built the installer, the resource guards and the continuity and recovery layer around those components. The goal is frontier-adjacent coding on a laptop. v1 ships supervised, and a preregistered benchmark rig (matched pairs, hidden graders, SWE-bench and Terminal-Bench subsets) decides when it can claim more.

MITPython 3.13+macOS 26+, 48 GiB

  • Irrevon

    Alpha, v0.1.0

    An experimental reconciliation engine for irreversible agent actions. When an API commits an effect and the response is lost, a retry can duplicate it and giving up can lose it. Irrevon records intent before dispatch, treats "ambiguous" as a real state, and settles it only from the destination's own evidence. Every result so far comes from a synthetic destination I also wrote, and the benchmark preregistration is still a draft with no confirmatory run.

  • Interlock

    Hackathon build, Sep 2026

    Turns an operational decision made in passing in Slack into one owner-approved, fail-closed action with a receipt that can be checked independently. The synthetic demo runs locally. Slack delivery, owner approval and the deploy step were each verified live, but not yet as one continuous run, and it is not hosted. Built on the CopilotKit starter kit.

  • EONFOLK

    Pre-alpha experiment

    A civilization simulation where you follow one person, offer advice she can refuse, and read a Chronicle that keeps what happened apart from what people believed. The world is deterministic and replayable; models and narration can describe it but can't write it. Runs locally in the browser and is not hosted.

Open source

Fixes sent to projects I build on: what failed, and what the change does. Status is checked against GitHub, and anything closed without merging comes off this list. A merged pull request means a maintainer accepted the change, nothing more.

Landed5 changes in 3 repositories

  • openai/openai-agents-python#4143 on GitHubMerged,

    A model call that failed through Chat Completions, LiteLLM or AnyLLM left no error on its provider span, so in a trace it looked like a clean turn.

    Every provider now records the failure on its own span through one shared context manager, so the eight call sites cannot drift apart.

  • livekit/agents#6321 on GitHubMerged,

    The Anthropic, Google and AWS chat formatters re-parsed stored tool-call arguments on every turn, so one malformed call broke every later turn of the conversation.

    Stored arguments now go through the SDK's own repairing parser, and anything unrecoverable degrades to empty arguments instead of failing the conversation.

  • UKGovernmentBEIS/inspect_ai#4418 on GitHubMerged,

    Hidden states requested with -M hidden_states were written to the eval log as null, and batched runs would have given every sample the whole batch's activations.

    Each sample is sliced out of the batch and recorded as nested lists that survive the log's JSON serializer.

  • openai/openai-agents-python#4195 on GitHubMerged,

    When one sandbox environment resolver failed, such as a rejected secret lookup, the other resolvers kept running.

    A failing resolver now cancels and drains its siblings before the error propagates.

  • openai/openai-agents-python4c9e507 on GitHubCo-authored,

    A failing branch of a concurrent run left its siblings going, so a failed turn could keep running shell commands and writing patches.

    Siblings are cancelled and drained when one fails. Landed in a maintainer's PR (#4185) with my co-author credit.

In review 7 open pull requests
  • openai/openai-python#3505 on GitHubIn review,

    The chat-completions parse() helper dropped every custom tool call, and the parsed message type couldn't carry one through a dump.

    Keeps custom tool calls and widens the parsed type to a discriminated union so a full completion round-trips.

  • anthropics/anthropic-sdk-python#1750 on GitHubIn review,

    In the session tool runner, a stream reconnect after a failed result post could run a tool that had already executed.

    Already-run tool calls are never executed again, which restores the at-most-once behavior callers expect.

  • anthropics/anthropic-sdk-python#1751 on GitHubIn review,

    In dispatch mode, a handoff that died before its first heartbeat left work acknowledged and stranded.

    The work poller can defer its acknowledgement, so that work stays reclaimable.

  • simonw/datasette#2826 on GitHubIn review,

    Text and composite primary keys created through the JSON write API were nullable, allowing rows that can't be viewed, edited or deleted.

    Primary key columns are created NOT NULL, matched case-insensitively the way SQLite resolves names.

  • openai/gpt-oss#252 on GitHubIn review,

    In the browser tool, bare hosts containing "http", such as httpbin.org, resolved to an empty domain.

    Parse first, and add a scheme only when the parsed host is empty.

  • python-attrs/attrs#1584 on GitHubIn review,

    include/exclude filters compared attributes by equality, so identically named fields on different classes were treated as the same field.

    Filters match attributes by identity.

  • anthropics/claude-agent-sdk-python#1087 on GitHubIn review,

    A list-form system_prompt was accepted and then failed later with an opaque error.

    Raises a clear error where the prompt is passed in.

© 2026 Pranav Mishra