BREACHPROBE / CHANGELOG
Changelog
Every change that shipped to BreachProbe, taken from this product's own commit history. One entry per day it released.
33 RELEASES · 115 CHANGES · 2026-08-01 TO 2026-09-13
Put the page mark back to the 2026-09-01 drawing, not just the tab icon
2a58f40 · 1 fileMigrate BreachProbe references to Compound Labs
b50c0c8 · 7 files
Put the product icon back to the version Isaiah picked
b033977 · 2 files
paths: the estate no longer reaches anything through a kynth name
fb08dcf · 1 fileog: the metadata serves the share card on the thecompound.tech host, not the dated card that printed the old one
dcbd574 · 1 fileidentity: purge the retired studio name, domain and handles from reader-facing copy
d9ca1d3 · 1 filepaths: ~/Projects is now ~/CompoundLabs (the Compound volume moved to its own mount point)
e249a1a · 1 filemail: reply and contact addresses move to thecompound.tech
5decd43 · 1 filemail: sending domain moves to mail.thecompound.tech
7fc1764 · 1 fileVendor the code-square glyph the shell's Dev.to row names
7dbbabe · 1 filePut the dev-shell site back on main; the landing-register port waits on landing-register-port
baa3500 · 29 filesRetire the dev-shell gates, error boundary on SiteShell, one clearance between feed sections
e138141 · 2 filesPort the site onto the landing register (@compound/landing)
7e7431d · 29 files
email: render through the one template, delete the copy
958ca3d · 3 filesfix(email): studio masthead is the transparent mark beside live "Compound Labs" text
d24df85 · 1 filefix current Supabase RLS guidance
23a38fa · 2 filesgate fix: mark-gate; share card; landing layout gate §7
0c675fa · 5 files
Sync canonical email template
8ef747a · 1 fileMove BreachProbe to breachprobe.thecompound.tech and credit Compound Labs
ffe1229 · 17 files
chore: checkpoint estate updates
1eafc78 · 13 filesfacts: refresh stale sourced claims
8a8689b · 1 file
data: refresh the generated changelog and competitor stamps
b9f262e · 2 filescheckers: add Defencecore, and re-quote two Supabase sentences that moved
afce488 · 3 files
icons: vendor the glyphs the vendored components name, not just product.ts
b928059 · 2 fileslanding: the section claim sits beside its heading, and the method note takes its block's width
ea63fbe · 1 filestripe: fix false-critical webhook findings from a mismatched control probe
48bf445 · 3 filesrepoint the dead shell paths: `Projects/workbench` and `Projects/publication` no longer exist
0940801 · 1 filechore: commit this session's work (git-hygiene auto-commit)
e2f5eab · 7 filesreviews: ask once for a report, once when the monitor ends
5562010 · 5 filesmail: house sending domain moves to mail.kynth.studio
a86426c · 1 filemail: explicit Reply-To on kynth.studio ahead of the house-domain move
c6e4e1a · 1 fileemail: left align the column and drop the paper ground
eb4d0ab · 1 filecompare: stamp the derived pairs with the 2026-09-04 re-verify
744a5ea · 1 file
compare: commit the nightly re-verify stamp its derived pairs were just rebuilt from
02b1496 · 1 filecompare: re-derive the generated pairs the nightly stamp had left behind
dd298a9 · 1 file
data: commit the derived surfaces the nightly generators rewrote
262b6a5 · 2 files
email: re-vendor the canonical template (now light)
ff2f33b · 1 filemeta descriptions: cut every page to the snippet Google actually renders
a98dea3 · 12 files
og: serve the new card at a versioned URL so cached scrapers refetch
0808a01 · 1 file
competitors: Suparbase is the fourth column, and the checkers guide names it
e1b51cd · 5 files
icon sprite: out of the RSC flight payload — the sprite ships once a page, not twice
820bec6 · 2 filesshell sync: icon defaults and the mark's URIs declared once, not per instance
17ab780 · 1 fileshell sync: footer label styles to one class; compare description capped in the shell
569abef · 1 fileanalytics: the error-tracking noise gate was reading a property that does not exist
31ed91a · 1 file
shell sync: one footer instead of three, and the footer's own marks as symbols
a0bf463 · 1 fileicons: one <symbol> per document, not one body per instance — 94,454 bytes off the homepage
7546d7e · 2 filesanalytics: the comment still told you to reverse-proxy PostHog through Vercel
8a189cf · 1 filecost: take PostHog off Vercel's meter and widen the ISR windows
f26dc54 · 2 filestitles: cap every guide and comparison <title> at 60 characters
ff5df58 · 7 files
footer: the same format the agent frame settled on — brand above, equal columns, FOLLOW column
5faad02 · 1 filefooter: move the social rail under the brand block, drop the group labels
4136110 · 1 filesocial rail: 44x44 tap targets and an 8px gap, because the rail shipped under both floors
111ea6e · 1 filefooter: the Kynth Studios + founder social rail (shell sync)
4ae9bb3 · 1 file
data: the generated registers as the nightly jobs last wrote them
38cbddc · 2 files
footer: every link carries a Solar glyph, and the studio credit adapts to the theme
05ffa17 · 2 filespricing: the landing tiers show the same three iconed rows as /pricing
7bcec6e · 1 filepricing: icons on every bullet, and the two products that were held come down
2d9847b · 1 fileworkbench sync: the reading rail, and the table note takes the table's width
63d51dc · 1 filepricing: six bullets a card, each one carrying an icon that means it
764b52a · 2 filesworkbench sync, and the changelog stops publishing the pass that was pulled
a5a0cc6 · 1 filefounding prices, and every term a buyer needs before paying
a254b9d · 10 filesanalytics: the funnel events fire, and the monitor reads dropAlert
ca10489 · 3 files
analytics: drop the three exception kinds that made the error digest 100% noise
acb55c4 · 1 file
data: tonight's derive output
b5a416d · 1 filedata: tonight's derive output
a0670de · 1 file
the one control this site exists for reported nothing
567aea1 · 1 filethe claim register, rendered at /sources and re-checkable
1e71fdc · 1 filethe generated head-to-heads: /compare/<a>-vs-<b>, from the vendored compare machine
0e65a66 · 1 fileroute shims, crawl surface, status and security: this product 404'd on every URL the outside world deep-links to
312dc82 · 5 fileslanding: the tab title was a sentence with no product name in it
379b5c3 · 1 file
scan: commit the orphaned free-tier copy and the two secret rules
9699ac2 · 2 filescompare: three pages, and the row that decides the category
d84bbf3 · 4 files
the free scan showed its answer and then asked for nothing
29f4586 · 1 filemobile: phone-width column priority for the rows table
e7b1998 · 1 filean unreachable night must not erase the baseline it is compared against
ed650ee · 1 fileungating the wedge left a dead branch and a free report that said nothing at all
1960219 · 2 filesthe one check nobody else can do was invisible until after payment
487f8ba · 2 filesscan: never print a grade for a host we could not reach
98eeca6 · 6 files
"In the footer" is not evidence a page is linked
bf41e7a · 4 files
studio credit: name Kynth Studios in all four layers
228b967 · 5 files
Credit the Security Advisor with the three lints this page missed
2baad4f · 2 files
refine: the primary control uses the shell's new loading state
c6f0e66 · 1 fileCorrect the LaunchGuard row: it does sign in
ad00664 · 2 files
error.tsx: catch a thrown route instead of showing Next's default
3330c5f · 1 fileQuote the scan's body figures, not its headline
b0987b0 · 2 files
Take the workbench crawl-guard note update
eb06a6d · 5 filesCarry the shell that closes intent.json's eight MISSING items
d1dcc17 · 5 filesCompare the six Supabase security checkers, honestly
0119d93 · 6 files
Stop telling Google every page changed on every deploy
ff41041 · 1 file
Stop attributing prices to agencies that never published them
63ffa23 · 2 files
Answer the API-key question with sources, and cut the figures that had none
429238f · 9 filesShip the crawl foundation this landing went live without
75756b5 · 3 filesThe page and the card now quote one number (BreachProbe has no Stripe price to verify against)
9e30312 · 2 filesNeither a timeout nor a retry on the paid path (trap 12)
19ebb70 · 1 fileThis product sold reports and never once recorded a checkout attempt (trap 11)
6ae7909 · 2 filesA refund and a dispute were not handled — twice over (trap 10)
aff095d · 2 filesNull from readSession must mean Stripe looked, not that we failed to ask (trap 1)
1dce6a9 · 3 filesrescue: the quote comes from the studio, because there is no roster of third parties
013b881 · 4 filesA localhost SITE_URL could become a Stripe success_url
cb69401 · 1 fileEvery BreachProbe email goes through the house frame, and none of them can carry a localhost link
cfb744c · 5 filesThe scanner invented a finding on every app that ships PostHog
c22c6ee · 1 fileThe smoke test could never pass, and the paid report never mentioned the probe
767e319 · 1 fileMake paid fulfilment durable: a Stripe webhook, a nightly reconciler, and an email
1ce768f · 12 filesRebuild on the shared register, rather than restyle in place
289a4fc · 29 filesWire the estate app switcher into the nav, beside the lockup on all three breakpoints
10e4497 · 1 fileStrip the donor's sprite-icon masks from the shell capture
c7e6fdd · 2 files
Craft pass inside the shell: one report frame, one button, real focus states, a fixed footer
a4b620b · 5 filesRebuild BreachProbe on the house shell
243b292 · 56 filesPolish: one button box, real focus rings, and two hover states under 4.5:1
04ec0dd · 2 filesKeep the footer's 28px step off phones
c31ede1 · 1 fileCompact the hero so the scan report is in the first screen
a1c6ec1 · 13 filesPass 2: bring every route onto the landing's treatment; fix its dead hovers
52521c8 · 23 filesRebuild the landing on the Nexflow template, inverted dark, rose
1c698f9 · 31 filesReplace the landing with the ported securebase template
cc9c438 · 20 filesBreachProbe — vibe-app security scanner (scanner + RLS probe + smoke test + rescue directory)
3b2cbcd · 41 files
Each line above is a commit subject from this product's repository, reproduced exactly, with the commit it came from underneath it. Nothing on this page is written by hand: the entries are generated from the repository and a build gate re-reads every commit and fails the deploy if a line here no longer matches the one in the history. Days on which only shared infrastructure changed are not listed.