Skip to content

v0.3.0

Choose a tag to compare

@crcatala crcatala released this 21 Oct 13:39
· 23 commits to main since this release
81cd4ad

Added

  • The viewer's token rail has a Skills list with every skill loaded in the session, typed as a
    command or loaded by the model. Hover a skill to see each load and who made it, and click one to
    jump to it. Skills typed as a command (such as /assess-review-feedback) used to be missing,
    because the rail only listed the Skill tool's calls. pi sessions now record skill loads too: a
    typed /skill:name, and a read of a SKILL.md.
  • The session viewer and exported HTML pages show the overshare logo as their browser tab icon. The
    landing page adds a favicon.ico fallback and an Apple touch icon for iOS home screens.
  • Redaction also uses the high-confidence rules of
    Betterleaks, about 340 provider token formats, next
    to the existing detectors. Formats those missed are now caught (Aikido, Canva, Devin, MongoDB Atlas
    service accounts, Zuplo and others), and some they found only at medium confidence (Deno, Ramp)
    are now high. Only the rules' patterns are used: nothing is sent to a provider to check a value.

Changed

  • Redaction placeholders and report findings are named after the Betterleaks rule when one finds
    the token, so [REDACTED:github-v2] becomes [REDACTED:github-pat] and aws-access_keys becomes
    aws-access-token. Shares already published keep their old labels, and the allowlist is
    unaffected (it matches values, not rule names).

  • Fewer sessions are marked needs review for no reason. Redaction no longer uses the
    @sanity-labs/secret-scan library: Betterleaks' rules and overshare's own find secret shapes
    alone. That library's generic keyword rules mostly matched things that are not secrets (tool-call
    and message ids, code, JSON). The provider formats it was relied on for are still caught, including a
    token followed by ,, ), . or & (Anthropic, OpenAI, Stripe, Groq, Hugging Face, npm, xAI
    and others), and a JWT on one line, with a short payload or in pretty-printed JSON, which
    overshare's own rules now find. Some placeholders change name with it, such as
    [REDACTED:anthropic] becoming [REDACTED:anthropic-key].

  • Opening the viewer with no share in the link shows a start page instead of an error: what
    overshare is, a box to open a pasted gist URL or share link, the example session, and how to
    share your own. A link whose hash names no share still shows an error, and error pages
    link back to the start page.

Fixed

  • Redaction catches four kinds of secret it used to miss. A password assignment or an auth header
    inside JSON that is itself held in a JSON string ({\"password\":\"…\"}, as in a log line or an
    API response a tool printed). A JWT wrapped over several lines. A private key cut off before its
    END line, as in head id_rsa or a truncated tool result. And a password that merely starts
    with a word like true, null or string (Trueblue2024), which used to be taken for a
    placeholder. A token glued straight onto another one is now redacted too, rather than left for
    the final re-scan to block.
  • Two matches that partly overlap are both redacted in full. Only the longer one used to be, leaving
    the rest of the other in the share, too short for any rule (or the final re-scan) to recognise.
  • Text that merely mentions [REDACTED no longer hides a secret written after it, up to the next
    ], from redaction and from the final re-scan.
  • overshare browse takes a paste in its search boxes: the session list's / search, the viewer's
    message search and the filter in dialogs such as Repo. A paste used to be dropped. Pasted line breaks
    and tabs become spaces.
  • A viewer link with a malformed % escape after the # shows an error instead of leaving the
    viewer stuck on "loading viewer".