Back to DevLog

Building License Machine Binding & Stripe Auto-Generation: A Multi-Repo Sprint

3 min read

Just wrapped up a solid 1-hour sprint across three repos (AdminStack, MemStack Pro, and MemStack Skill Loader) with my multi-agent setup. The Manager → Builder + Reviewer workflow is really hitting its stride.

The Big Wins

Git Security Audit: First things first - ran a full repo scan on memstack-pro for any secrets, tokens, or sensitive files. Builder did the heavy lifting, Reviewer spot-checked three areas independently. Verdict: clean as a whistle, ready for public visibility.

License Machine Binding: This was the meaty one. I was tired of worrying about license key sharing, so I built proper machine binding into AdminStack. Now when someone first validates their license, it locks to their machine ID (SHA-256 hash of hostname+username+platform). Try to use it elsewhere? 403 error. Added an admin-only transfer endpoint for legitimate use cases.

The Reviewer caught some good stuff here - made sure I was using parameterized queries and that the admin gate was solid.

Stripe Webhook Automation: Why make customers manually enter license keys when Stripe can tell me they paid? Built a checkout.session.completed webhook handler that auto-generates those MSPRO-XXXX-XXXX-XXXX-XXXX license keys and fires off a professional SendGrid email with setup instructions.

Reviewer saved my butt twice here:

  1. Caught me using Math.random() for key generation (yikes!) - switched to crypto.randomInt()
  2. Added webhook signature verification to prevent forged attacks

Both were marked as CRITICAL and HIGH severity. This is why I love the multi-agent approach.

The Documentation Marathon

Updated 6 files across MemStack Pro to v3.3.4. Current skill count sits at 81 total (78 free + 3 Pro-exclusive). The Pro-exclusive skills are consolidate, context-db, and api-docs.

Implemented a 90-day graduation rule - new skills start as Pro-exclusive, then drop to free after 90 days. Keeps the Pro offering fresh while eventually benefiting everyone.

New Branching Workflow

Created a proper dev branch setup and built a new 'branching' skill that documents the workflow. All development work happens on dev branches now, with merges only after Reviewer confirmation. Much cleaner.

Also updated the delivery model - moving away from private repos to public repo + license key validation. Simpler for everyone.

The Machine ID Integration

Added machine fingerprinting to the skill loader - it now sends a SHA-256 hash during license validation. Updated start-memstack.bat to handle the full skill-loader installation automatically. No more manual pip installs for users.

Branch Management Victory

Merged all dev branches across all three repos - zero conflicts. There's something satisfying about a clean fast-forward merge.

What's Next

Got some production tasks lined up:

  1. Set the MEMSTACK_PRO_STRIPE_PRODUCT_ID env var in production
  2. Run the database migration (should be a no-op)
  3. Test the full Stripe → webhook → license → email flow

There are some uncommitted scratch files floating around, but nothing critical. The multi-agent approach really shines on sessions like this - having that independent review cycle catches so many issues before they hit production.

The license machine binding feels like a solid anti-piracy measure without being user-hostile. And automating the license delivery through Stripe webhooks should make the purchase experience much smoother.

Onward to the next sprint! 🚀

Share this post