AI Engineering Build Log: What I Shipped in July 2026
Tech
AI
Engineering
Build Log
Product Development

AI Engineering Build Log: What I Shipped in July 2026

July's work spanned a notarized macOS release, controlled music-analysis tests, public SEO actors, internal TestFlight builds, and deliberate non-releases.

Uygar DuzgunUUygar Duzgun
Aug 10, 2026
9 min read

July's AI engineering build log includes public releases, controlled tests, internal builds, and deliberate non-releases. The useful story is the boundary between them because software rarely moves through one clean state.

This log covers what reached users, what remained inside TestFlight, what I verified only in a simulator or debug build, and what stayed blocked. I use "shipped" narrowly. A local build is not public. A passing test is not adoption. A public listing is not revenue. An approval gate that sends nothing can be the correct production result.

The practical rule behind the month was release discipline: define the state, verify the artifact from the outside, and keep the blast radius small when a feature fails.

July 2026 AI engineering build log at a glance

OutcomeStateEvidenceLesson
------------
Memento Capture 2.3.7PublicSigned and notarized DMG, synchronized manifest and site, fresh-download verificationVerify the artifact users receive
Mix Analyzer key detectionLiveMajor/minor detection checked with 24 controlled known-key progressionsControlled inputs beat convenient anecdotes
Mix Analyzer token recoveryLiveFailed-analysis recovery is visible and owner-scopedRecovery belongs in the product contract
Kiddays waitlistLiveDouble opt-in plus English and Swedish routes, canonicals, and sitemapConsent and discovery ship together
Kiddays Premium build 74Internal TestFlightInternal build with 166 tests; purchase, restore, trial-expiry, and App Review work pendingTest count proves coverage effort, not release impact
Internal CRM lead listLiveMobile-verified list, search, and five quick filters in an upgrade-safe implementationAdmin tools need release discipline too
Two Apify SEO ActorsPublicScoring and rewriting actors reject empty inputPublic availability is not monetization
BroTider onboarding build 27Internal-only TestFlightSimulator-verified onboarding buildInternal distribution is not an App Store launch
FactCheck, outreach, Frame InsightBlocked or debug-onlyNo FactCheck launch, no outreach send, Frame Insight kept behind debugHonest non-release states prevent false claims

Memento Capture 2.3.7 had to survive the public release path

I released Memento Capture 2.3.7 as a signed and notarized DMG. That statement only became useful after the rest of the release path matched it. I synchronized the update manifest and website, then performed a fresh download and verified the result.

A local archive can be correct while the public site serves an older file or the manifest points elsewhere. The release is the artifact a visitor can download from Memento Capture download page, not the file on my machine. The Memento Capture support page is the public handoff if the downloaded build needs follow-up.

Recommended reading

The same principle applies when I make a website callable by agents: an API response or successful build is not enough. The public state must match the intended state. I described that approach in how I built an agent-ready website.

Mix Analyzer improved through controlled evidence and visible recovery

Key detection: controlled evidence first

The key-detection work in Mix Analyzer was easy to overstate, so I constrained the claim. I tested major/minor detection with 24 controlled progressions whose keys were known in advance. That gave me a repeatable input set and a clear expected answer.

Twenty-four progressions do not prove universal accuracy. They do not cover every recording, borrowed chord, modulation, or production style. They verify movement in the right direction under one controlled set. The method and limitation are documented in the major/minor key detection update, and the release state appears in the Mix Analyzer changelog.

I could not retest the two original songs because those files were unavailable. I am leaving that gap visible instead of replacing it with a confident reconstruction. If the inputs cannot be reproduced, the old case cannot become new evidence.

Failed-analysis recovery: visible and owner-scoped

The month also included a live recovery path for failed analyses. Token recovery is now visible and owner-scoped, so the recovery state can be seen and stays tied to the correct account.

Recommended reading

My rule is to define the expected outcome before the run and separate a controlled pass from a production claim. I use that framework when I benchmark AI models on real work, and it applies just as well to audio analysis.

Kiddays shipped a public waitlist, while Premium stayed internal

Waitlist: public

Kiddays had two release states in July. The waitlist became public with double opt-in, English and Swedish routes, correct canonicals, and sitemap coverage. Consent, delivery, localization, and search discovery had to agree.

Recommended reading

Double opt-in prevents an email address from becoming an active subscription merely because somebody entered it. Canonicals define how the localized pages relate, while the sitemap makes them discoverable. I have written separately about the secure beta waitlist pattern behind this kind of release.

Premium: internal TestFlight

Kiddays Premium did not reach the same state. Build 74 was available through internal TestFlight and had a 166-test suite. Purchases, restore behavior, trial expiry, and App Review remained pending. I am not calling it an App Store release, a completed subscription system, or a customer outcome.

The number 166 describes a verification surface. It does not say how many people will use Premium, whether the purchase flow will pass review, or whether the product creates value. Tests can show that known behavior remains intact. They cannot substitute for distribution, review, or real use.

The quieter releases still changed daily operations

Internal CRM: live but private

I shipped a lead-list improvement inside an unnamed internal CRM. The live result was mobile-verified and included search plus five quick filters. I kept the implementation upgrade-safe so it did not depend on editing a fragile core surface that could be overwritten later.

This was not a public product launch, and the customer context stays private. Internal admin software still deserves the same care as a customer-facing page. A list that works on desktop but fails on a phone is unfinished when staff use both.

Apify Actors: public, not monetized

I also made my first two SEO Actors public on Apify. One scores article SEO; the other supports rewriting. Both reject empty input rather than spending resources on a request that cannot produce a useful result. Public means people can find the actors. It does not mean they generated revenue, gained adoption, or proved a market.

BroTider: internal-only

BroTider onboarding build 27 reached another bounded state: simulator-verified and distributed through an INTERNAL_ONLY TestFlight path. It was not an App Store release. Simulator verification gave me evidence about onboarding in that environment, not device-wide behavior or public readiness.

Three things did not ship, and that was part of the work

FactCheck remained blocked. I did not turn an unresolved launch state into a release announcement.

Recommended reading

The outreach workflow sent nothing because its approval gate held. That is the intended behavior. Drafting and preparing recipients do not authorize an external message. A system that pauses before a consequential action is useful even when the send count is zero. My article on deterministic AI agent permissions explains the principle: the model may propose an action, but policy and the owner decide whether it runs.

Memento Frame Insight remained debug-only. Debug output can prove that a path executes and expose wrong assumptions. It is not a user-facing feature, a supported workflow, or a promise that the feature will ship unchanged.

I want monthly logs to preserve these non-releases. Removing them would make the month look cleaner and the engineering record less useful.

What July changed about how I ship

Four rules came out of the month.

Name the state before describing the result. Public, live, internal TestFlight, simulator-verified, debug-only, and blocked answer different questions.
Verify through a second path. Download the public DMG, inspect the live changelog, check localized canonicals, and confirm that a gated workflow sent nothing.
Treat recovery as a feature. A failed analysis needs visible, account-scoped recovery. The happy path is only half of the product.
Keep model behavior behind hard boundaries. Approval, ownership, empty-input rejection, and release channels should not depend on a model interpreting prose correctly.
Recommended reading

The last rule also shapes how I think about trajectory-level sandbox controls. Long-running automation gets many chances to find weak combinations of individually reasonable controls. Small scopes and independent verification reduce that risk.

Build and test numbers belong here because they show what I checked. They are not impact metrics. A commit count measures repository activity. A test count measures a defined suite. A build number identifies an artifact. None tells me adoption, satisfaction, revenue, or user value without separate evidence.

Evidence and review note

Before saving this draft, I checked the public Memento download and support pages, Mix Analyzer's changelog and product update, and my Apify profile. Internal TestFlight, blocked, and debug-only items remain labeled as such. These sources establish release state; they do not prove adoption or revenue.

What carries into August

August starts with unfinished boundaries rather than a new list of promises. Kiddays Premium still needs purchase, restore, trial-expiry, and App Review work before I can describe it as publicly released. BroTider still needs evidence beyond simulator verification and internal TestFlight before any App Store claim. FactCheck remains blocked until its launch condition changes. Frame Insight remains an experiment until it leaves debug-only status.

For Mix Analyzer, the controlled key set remains the evidence I have. The two unavailable original songs remain an explicit gap unless those inputs become available again.

I will keep the same reporting rule: say what changed, attach the strongest evidence I have, and leave the unsupported outcome blank. If you build similar AI, app, or automation systems, follow along or send me a note about the release boundary that causes you the most trouble.

Recommended for you

How to Benchmark AI Models for Real Work

How to Benchmark AI Models for Real Work

A practical workflow for comparing AI models on real tasks, repeated runs, outcome quality, cost, latency, and production safety.

16 min read
How We Build Secure Beta Waitlists on Cloudflare

How We Build Secure Beta Waitlists on Cloudflare

A practical method for production-ready Cloudflare beta waitlists with double opt-in, Turnstile, hashed tokens, SMTP, admin controls, and release gates.

9 min read
AI Agent Permissions Need Deterministic Enforcement

AI Agent Permissions Need Deterministic Enforcement

Design an AI agent permission system that limits the impact of model mistakes, reduces approval fatigue, and produces verifiable action receipts.

11 min read