Repository navigation
Hourleaf product roadmap — trust, speed, Shortcuts, and release #3
Description
Implement the accepted full Hourleaf product roadmap while preserving the existing local ledger and the minimal, immediately understandable iPhone experience.
Status: Hourleaf 1.0.7 (21) submitted — Waiting for App Review
Next actor: Apple; then Codex release follow-up
Next action: Automatic App Store release is selected. After approval, verify live 1.0.7 in US/LT/UA, then publish the matching GitHub release and update kikuai.dev version claims. Do not call 1.0.7 public before storefront confirmation.
Mac widget follow-up — 2026-08-25
Goal: make the existing iPhone WidgetKit extension useful on Mac through Apple’s iPhone-widgets-on-Mac path, without creating a separate unsynchronized macOS ledger.
Acceptance:
- Support small and medium widget families with one calm native hierarchy.
- Show service and credit as hours/minutes; the medium family also shows the current month, Bible-study count, and actual service-year progress toward 600 hours.
- Preserve opt-in totals, privacy-sensitive rendering, local-first storage, and the existing quick-entry deep link.
- Evolve the sidecar projection backward-compatibly; the extension never opens the Core Data ledger directly.
- Add no dependency, native macOS app, CloudKit mode, or new data-writing path.
- Pass focused state/codec/localization tests, the full relevant test suite, Release build, and visual inspection in both families and long RU/UK copy.
Outcome
Hourleaf becomes a durable private ministry-hours product: entries are recoverable and portable, common actions are one tap or a system Shortcut away, every total is explainable, planning remains calm, and optional platform features do not compromise offline-first use.
Product constraints
- Native SwiftUI and Apple frameworks; no third-party SDKs, ads, tracking, or product analytics.
- Local-first and fully usable without network, iCloud, an account, or a paid Apple Developer membership.
- Preserve all existing user records and Personal Team testing data through an explicit portable-backup migration path.
- Minimal UI: reveal complexity only where it is needed; explain each control in ordinary RU/UK/EN language with a concrete consequence or example.
- Credit never contributes to the 600-hour service-year goal; totals may exceed 600; no time carries across August to September.
- Backup v1 has no password. Warn plainly when notes are included.
- No external account, direct recipient delivery, CRM, contacts, territories, maps, GPS, streaks, badges, social features, or AI coaching.
Specification decisions
- Preserve the four-tab app and fast-entry default; advanced planning, report history, data tools and Shortcuts help remain progressively disclosed.
- Use one actor-isolated asynchronous Core Data repository and one validated command path for SwiftUI, App Intents, widgets, Watch and timer.
- Every entry mutation appends an immutable revision and returns a persisted Undo-capable mutation receipt.
- Until Portable Forever is verified, retain and show every soft-deleted entry. Only then may Hourleaf introduce a tested 30-day purge policy.
- Backup v1 is one canonical JSON .hourleafbackup, SHA-256 checked, plain and password-free; notes receive an explicit warning.
- Restore v1 validates in a temporary store, previews, makes a verified pre-restore backup and performs whole-database replacement only.
- Implement iOS 17 App Intents/App Shortcuts immediately after the shared command layer. Control Center controls are iOS 18+ and gated separately.
- App Intent writes are allowed while locked because they reveal no ledger data; reads remain authenticated. Both work offline and never depend on a live SwiftUI environment.
- App Group/data widgets, CloudKit, Watch, TestFlight and App Store retain signed-device/account owner gates.
- Existing com.kikuai.hourleaf.local records migrate to the final bundle through .hourleafbackup.
Executable slices
- 1. V2 model, actor repository, migration fixtures
- 2. Shared commands, revisions, soft delete, Recently Deleted, Undo
- 3. iOS 17 App Intents, App Shortcuts, typed routes, Action Button smoke — code merged at
8d1f70b; signed-device gate pending - 4. Canonical backup v1 codec/checksum/export — merged at
10c51b2 - 5. Backup/CSV UI, previewed restore, rollback
- 6. One-Tap exploration completed — Repeat Last Entry was removed after field feedback; fast entry remains available through blank Quick Entry, Shortcuts, widget, and timer
- 7. Explainable report states, review, immutable corrections/templates
- 8. Calm pace, calendar and versioned service-year archive
- 9. Reminder actions and opt-in Quiet Gap Check
- 10. Privacy-safe widget and iOS 18 controls — M4 code merged at
cbb24d6; signed App Group/widget/control acceptance remains owner-gated - 11. Opt-in crash-safe timer; Live Activity later
- 12. Opt-in private iCloud — NO-GO until paid CloudKit access and an accepted V3 branch/conflict-preservation model; local-first store plus portable backup remain authoritative
- 13. Native Apple Watch companion — direct service/credit entry, Watch Connectivity, localized Watch UI, icons, privacy manifest, and embedded packaging are implemented; direct Watch entry and Siri/Shortcuts execution are physically verified on isolated signed bundles, while Store delivery of the Siri repair awaits a new owner-approved build.
- 14. CSV then fixture-backed competitor imports — strict Hourleaf CSV complete; named adapters remain fixture-gated
- 15. Local-bundle migration, accessibility/privacy/device QA and owner-gated public release — ungated foundation accepted at
cdb303a; signed-device/public-release gates remain
Cross-slice acceptance
- Existing stores migrate without data loss; destructive actions are reversible.
- A backup round-trips every supported entity and a failed/corrupt restore cannot replace the live store.
- Common service/credit additions work through both the app and App Intents via one validated command contract, offline, with undo.
- Shortcuts are discoverable, parameterized, localized, and do not expose private notes/totals by default.
- A non-technical older user can understand quick entry, settings, report state, backup/restore, and planning without documentation.
- Unit, migration, integration, UI, localization, accessibility, offline/restart, and signed-device smoke evidence is recorded per slice.
- Coherent verified slices are committed and pushed; this Issue remains the sole execution ledger for the roadmap.
Verified delivery
Slice 1 landed on main at 12706b0. Fresh evidence: 32 unit/integration tests; 13 full UI tests plus 3 final report-boundary UI checks; unsigned generic-device Debug and Release builds; exact byte preservation of the V1 model; Sol Max adversarial review GO with no P0/P1/P2 findings. Physical iPhone remains untouched.
Slice 2 landed on main at c0fcb99. Fresh evidence: 58 unit/integration and 16 UI tests; unsigned generic-device Debug and Release builds; strict invalid-date/duration/revision handling; idempotent exact replay; optimistic revision conflicts; soft delete/restore; all four Undo inverses and the exact ten-minute boundary; report calculation/presentation fingerprints; RU/UK/EN validation; unchanged Core Data model/project/entitlements; Sol Max re-review GO with P0 0 and P1 0. Physical iPhone remains untouched.
Slice 3 code landed on main at 8d1f70b. Fresh evidence: 70 unit/integration and 19 UI tests (89/89 total); unsigned Debug and Release builds; Xcode Analyze; exactly three RU/UK/EN promoted commands; one shared repository actor; coalesced active/foreground/startup refresh; typed reminder routing; cold and warm blank-form reset; Sol Max adversarial GO with P0 0 and P1 0. A disposable signed smoke attempt stopped before installation because Xcode has no signed-in Personal Team account, so the physical device and its ledger remained unchanged. The slice stays open only for Shortcuts, Action Button, and reminder lifecycle smoke after the owner signs in to Xcode.
Slice 4 landed on main at 10c51b2. Fresh evidence: exact raw preservation of all 10 V2 entities and 115 attributes; canonical password-free JSON with SHA-256 and bounded validation; atomic no-overwrite protected export; 26 focused backup tests; 115/115 combined tests after Shortcuts integration; unsigned Debug and Release builds; Xcode Analyze; unchanged models/project/entitlements/privacy/dependencies; Sol Max publish GO with P0 0, P1 0, and P2 0. Signed file-protection and File Provider behavior move to the Slice 5 disposable canary. The physical iPhone ledger remains untouched.
Slice 11 is accepted on the feature branch at 962aec5: host-only, default-off crash-safe timer; review-before-save; no note capture; no extension ledger writer. Unit, UI, Release and Analyze gates passed. App Group/control/widget and physical-device canaries remain owner-gated.
Slice 14 is accepted on the feature branch at bc784c0: strict bounded Hourleaf CSV import, deterministic identities, one-save atomic application, conservative duplicate handling, ten-minute batch Undo, aggregate-only preview and human EN/RU/UK UI. Fresh final evidence: 417/417 unit/integration, 43/43 UI, post-cleanup coordinator 4/4, Release build, Xcode Analyze, protected-hash/localization gates and one bounded adversarial review with P0/P1/P2 = 0. A real external-file import journey remains signed-device acceptance; named competitor adapters require an owner-supplied sanitized export fixture.
Live revision-graph validation landed on main at 1dfadb5: backup and live snapshots now share one fail-closed immutable-history validator. App Group, CloudKit and Watch writers remain capability- and signed-device-gated.
Owner-controlled gates
Apple account credentials, 2FA, paid membership, App ID/iCloud container changes, CloudKit production schema, TestFlight/App Store publication, and irreversible provider actions require explicit owner participation when reached.
Activity
kiku-jw commentedon Aug 2, 2026
Roadmap preflight on 2026-08-02:
kiku-jw commentedon Aug 2, 2026
Slice 1 accepted and published to
mainat12706b0.Evidence:
main.The physical iPhone was not installed or mutated. Portable backup plus verified restore remains the gate before any model-changing device install.
Next active slice: shared mutation commands, replay safety, optimistic revisions, soft delete, Recently Deleted, and ten-minute Undo.
kiku-jw commentedon Aug 3, 2026
Slice 5 execution contract — restore and Data Management
Accepted base:
10c51b2..hourleafbackupis copied into bounded app-owned protected staging, decoded by the frozen v1 codec, imported into a fresh current-model temporary SQLite store, closed/reopened, and accepted only when raw and domain readbacks preserve the incoming digest.com.kikuai.hourleaf.localledger remains untouched until simulator fault tests, Sol review, and a separately signed disposable roundtrip all pass.kiku-jw commentedon Aug 3, 2026
Slice 5 M1 checkpoint accepted and published on
codex/hourleaf-restore-v1at6d647753a76d094d4b830679112440a4fee1b133.Evidence:
LedgerMaintenanceTests: 7/7 passed on iPhone 17 Pro Simulator (/tmp/hourleaf-m1-rereview.TC2Lx7/LedgerMaintenance.xcresult);Next: bounded staged import and all-ten-entity temp-store validation, followed by journaled confirm/recovery. CSV and Data Management UI remain in a separate reviewed lane. No physical iPhone app or ledger was touched.
kiku-jw commentedon Aug 3, 2026
Slice 5 Data Management component lane accepted and published on
codex/hourleaf-data-management-uiat8ece9f554c1b16f5be0adfb62dd5a29a62f120bb.Evidence:
/tmp/hourleaf-csv-ui-rereview.7ewRma/CSVExporter.xcresult);This branch is deliberately not wired into Settings/AppModel yet; integration waits for the restore backend contract. Physical file-protection proof remains a disposable signed-device gate, and the real iPhone ledger remains untouched.
kiku-jw commentedon Aug 3, 2026
Roadmap completeness audit (research reports 25-28 + PRO recommendation + accepted product contract): no missing P0 feature was found before safe restore. Accepted post-Slice-5 order remains:
Repeat last entryaction only; latest active record, kind+minutes only, today, no note,.appOneTap, existing Undo. No presets or fourth promoted Shortcut tile.Deliberate non-features: backup password/recovery key, adaptive suggestions, automatic time creation, zero-time entries, streaks/badges, CRM, PDF without evidence, and Cloud sync as a backup substitute.
Trust correction required before production signing: local-only must be the truthful default while Settings says sync is planned. Future iCloud sync must be an explicit opt-in with conflict/restore semantics, never silently enabled. This does not alter the current Personal Team local ledger and requires no account action now.
kiku-jw commentedon Aug 3, 2026
Slice 5 M2 accepted and published on
codex/hourleaf-restore-v1atb29fb4e35ea6f292c64b5c8552a540e49f850861.Evidence:
HourleafRestorePreparationTests: 11/11 passed at/tmp/hourleaf-slice5-m2-20260803-051954.xcresult;Next checkpoint: journaled confirm, exact pre-restore A backup/evidence, whole-store replacement, A-or-B crash recovery, and reminder rescheduling. Physical iPhone data remains untouched.
kiku-jw commentedon Aug 3, 2026
UX minimalism slice accepted and published.
Verification:
This branch is intentionally isolated and will be integrated after restore M3.
kiku-jw commentedon Aug 3, 2026
Truthful local-only checkpoint accepted and published on branch codex/hourleaf-local-truth at e2e7e3e.
Evidence:
No installer or physical device command was run, and the real iPhone ledger remains untouched. If real CloudKit use were ever discovered despite the canonical history, a separate drain/migration canary remains mandatory before rollout.
kiku-jw commentedon Aug 3, 2026
Restore M3a is frozen, independently accepted, and published.
codex/hourleaf-restore-v117fe55677663b9c67f01fb0d6d7f64dfe72eda44(Add crash-safe restore journal)/tmp/hourleaf-m3a-accept.KWOE9x/Logs/Test/Test-Hourleaf-2026.08.03_07-43-14-+0300.xcresult./tmp/hourleaf-restore-m3b-freeze/Logs/Test/Test-Hourleaf-2026.08.03_07-42-27-+0300.xcresult./tmp/hourleaf-m3a-debug.tZ2MPv; Release succeeded at/tmp/hourleaf-m3a-release.Xtjqw1.RestoreJournal.swift=11849b39bcaa5d57ec9693f25e7746c8266ea920a1c0e54df741ae463037ac42;RestoreJournalTests.swift=e9b7a5ed7c355265d7ef5e7b2b8b05592fcc558770396e6be44229ec6ccce995.No physical-device install, signing, or real Hourleaf ledger mutation was performed. M3b coordinator integration remains next; it must preserve actor serialization and produce terminal proof only after fresh Core Data readback.
kiku-jw commentedon Aug 3, 2026
Roadmap specification coverage is now frozen and independently accepted.
a4973c59fdefbe975c6d06566bfc9fa0851487915296bd2f0e7fa3fd76e51fa2(1,135 lines / 65,732 bytes).0fd0085af855e88178d74103ba74adc67a36f60413d0efcd23d72b12566ddd2f(1,852 lines / 98,538 bytes).Frozen dependency order:
local restore/integration -> One-Tap -> Report + immutable corrections/archive -> Pace/reminders -> Quick Surfaces/Timer -> optional platform trains.Key corrections captured before code:
No product code, Git branch, Apple account, signing, CloudKit, physical device, or real ledger was changed by these specification lanes. Owner gates remain explicit for App Group/App ID/iCloud, membership if ever chosen, signing/device canaries, Watch, TestFlight/App Store, CloudKit production, and any real-ledger migration.
kiku-jw commentedon Aug 3, 2026
Restore M3a journal correction accepted
The bounded correction for the exact-A journal contract is now published.
d240e1e2fc5a38dbfebde5b1973e7d4b64dd914139db829b38a800ab4a55dd2019591ab9c29ccb7ffa670626aa01e06776b0c16acodex/hourleaf-restore-journal-correction52df26d17a244aa8f7ce7ee453f6d2b4b1fb9bb40087c300691485e489716fd58208375c9114e8643eb4b7968061cfd6bafff41fe66eb295b2a325ea22a917a5RestoreJournal.swiftandRestoreJournalTests.swiftThis supersedes the earlier M3b spec revision. The review loop is closed: implementation proceeds against the frozen hash above; non-critical follow-ups go to backlog instead of reopening the specification.
kiku-jw commentedon Aug 3, 2026
Restore M3b accepted and published
Crash-safe restore confirmation and startup recovery are now committed.
a0ef413d6f3b1f54cd287814d5905902846560f1codex/hourleaf-restore-v1d240e1e2fc5a38dbfebde5b1973e7d4b64dd914139db829b38a800ab4a55dd20git diff --check: cleanAccepted behavior includes direct exact-A recovery for all three pre-replacement phases, maintenance writer/readiness gating through reminder reconciliation and the final terminal readback, idle completed-residue cleanup before normal runtime creation, and fail-closed A-or-critical rollback.
Next executable step is integration with the accepted UX/Data Management/local-only stack. That merge must retain restore APIs while preserving
cloudSyncEnabled: false, no iCloud/Push entitlements, and Core Data models withusedWithCloudKit=NO.kiku-jw commentedon Aug 3, 2026
Restore integration is now published on
codex/hourleaf-one-tap-v1atcd16866ea9e72e8980f74da75d9ef77206f0ab7e.Evidence:
/tmp/hourleaf-integration-unit.zyhOq0/UnitTests.xcresult)/tmp/hourleaf-integration-compile.iO9yTG)/tmp/hourleaf-integration-release-final)/tmp/hourleaf-integration-analyze-final)git diff --checkcleanHonest limitation: after the earlier 195/195 merged baseline and 176/176 wired unit run, CoreSimulator began hanging before test code execution at
waiting for workers to materialize. Repeating on other simulators and restarting CoreSimulator reproduced the same Xcode runner failure, so the final added tests are compile-verified but not execution-verified. No physical iPhone, signing, install, CloudKit, or user ledger was touched.kiku-jw commentedon Aug 3, 2026
Slice 6 One-Tap v1 published
Commit
167419f58455fb27e8bd4b573b9a8aa90df838c4is published oncodex/hourleaf-one-tap-v1.Evidence:
.appOneTap, and reuses existing Undo.appOneTap, nil note, exact minutes and create revision/tmp/hourleaf-one-tap-final-testbuild/tmp/hourleaf-one-tap-final-release/tmp/hourleaf-one-tap-final-analyzedbfcef97...and69d8472b...; project, schema, backup production format, entitlements and App Intents are unchanged; exactly three App Shortcuts remainThe Simulator test runner was not retried because the existing Xcode/CoreSimulator failure occurs before test code materializes. No physical device, signing, account, iCloud or user ledger was touched. Next implementation slice: Report Readiness and immutable report/archive corrections.
106 remaining items
kiku-jw commentedon Aug 30, 2026
App Store campaign preparation — 2026-08-30
App Store Connect generated and returned the four fixed-cohort links registered for the owned-surface experiment:
web-en:https://apps.apple.com/app/apple-store/id6801032003?pt=129302835&ct=web-en&mt=8web-ru:https://apps.apple.com/app/apple-store/id6801032003?pt=129302835&ct=web-ru&mt=8web-uk:https://apps.apple.com/app/apple-store/id6801032003?pt=129302835&ct=web-uk&mt=8github:https://apps.apple.com/app/apple-store/id6801032003?pt=129302835&ct=github&mt=8The public Hourleaf README now uses
githubate4a78b3; live GitHub readback confirms the exact URL. Draft kikuai.dev PR #91 uses the matching EN/RU/UK tokens atf7dd3b4; Cloudflare passed and fresh preview readback confirmed HTTP 200 plus each expected token. The site remains draft.The experiment is prepared, not active. Its 30-day clock starts only after Hourleaf 1.0.5 (18) is publicly available and PR #91 is merged/live. Any earlier
githubcampaign activity must be excluded by date from the observation window.kiku-jw commentedon Aug 30, 2026
Authenticated App Store Connect baseline readback for the registered experiment: Campaigns, all app download dates, 23–29 Aug 2026 (UTC-day reporting), reports “Insufficient data to show campaigns.” This is a measured unreportable baseline, not a measured zero. The post-activation observation must use its own date window after all four links and Hourleaf 1.0.5 are public.
kiku-jw commentedon Aug 30, 2026
1.0.5 source CI and isolated device install — 2026-08-30
maincommite4a78b3passed CI run33330045776.group.com.kikuai.hourleaf.localApp Group assigned only tocom.kikuai.hourleaf.localand its quick-surfaces extension.group.com.kikuai.hourleaf.local.com.kikuai.hourleaf.localas 1.0.5 (18).com.kikuai.hourleafledger was not read, replaced, or removed.Physical UI acceptance, Watch installation/direct entry, signed production archive, upload, and submission remain open gates.
kiku-jw commentedon Aug 30, 2026
Hourleaf 1.0.5 (19) App Review submission — 2026-08-30
2184275;568526dchanges only UI-test interaction. Release receipt is committed onmainat3617106.Hourleaf 1.0.5 (19).xcarchiveand contains the iPhone app, WidgetKit extension, and embedded Apple Watch app, all at 1.0.5 (19).c3e3fbfd-a784-4e49-90f7-172d7b9b4b0dat 23:59 EEST.Waiting for Review, one submitted object, and zero drafts.Next actor is Apple. Public availability remains separate from review status. After 1.0.5 is publicly returned by Apple, merge kikuai.dev PR #91, verify the EN/RU/UK campaign links live, publish the GitHub 1.0.5 release, and start the registered 30-day attribution window.
kiku-jw commentedon Aug 31, 2026
Hourleaf 1.0.5 public activation — 2026-08-31
1.0.5with release timestamp2026-08-31T13:23:12Zin the US, Lithuania, and Ukraine. This closes public availability separately from App Review submission.2026-08-31T17:18:35Zas63006ac. Cloudflare production deployment1bd00c3f-3216-465c-a5b2-c864e0386e2fbecame active./hourleaf.md. Each localized page contains its exactweb-en,web-ru, orweb-ukcampaign token; the Markdown facts page returnstext/markdownand identifies public version 1.0.5.2026-08-31T17:27:43Z. Its tag points to exact shipping source2184275, and its App Store link uses campaign tokengithub.The registered zero-cost attribution window activated at
2026-08-31T17:28:13Z, after all four owned links were live. It ends at2026-09-30T17:28:13Z; the first readback is scheduled for2026-09-07T17:28:13Z. Anygithubactivity before activation must be excluded. The pre-activation App Store Connect baseline remains measured but unreportable (Insufficient data), not zero.kiku-jw commentedon Sep 1, 2026
Implemented the previous-month report direct-send flow in
a2b302f, with final button copy refined incff823f.Verification:
xcodebuild -project Hourleaf.xcodeproj -scheme Hourleaf -destination "generic/platform=iOS Simulator" -derivedDataPath <temporary> CODE_SIGNING_ALLOWED=NO build-for-testing— TEST BUILD SUCCEEDED. Localization plists, screenshot JSON, andgit diff --checkalso passed. No physical device or simulator UI run was used.Pushed to
origin/main. App Store release was not started by this change.kiku-jw commentedon Sep 1, 2026
Hourleaf 1.0.6 (20) is submitted to App Review.
1809aa83f0264b2a9f70bb79c976ca840aaf4cce; durable submission receipt:f962021.~/Library/Developer/Xcode/Archives/2026-09-01/Hourleaf 1.0.6 (20).xcarchive.5fa95a97-2118-4eef-b015-0c9f3b123812contains exactly one object,iOS 1.0.6 (20), and displaysWaiting for Review; draft count is zero.AppStore/release-checklist.md; no additional broad test loop was run per owner direction.Next actor: Apple App Review. Public 1.0.6 availability and matching site/GitHub release remain separate gates.
kiku-jw commentedon Sep 3, 2026
Hourleaf 1.0.6 public completion — 2026-09-03
1.0.6, bundlecom.kikuai.hourleaf, and release timestamp2026-09-02T13:41:04Zin the US, Lithuania, and Ukraine; all three product pages return HTTP 200.1809aa83f0264b2a9f70bb79c976ca840aaf4cce.f958c1c1e4fe9274f3f4f3d6e9d275c3d91acb3b; Cloudflare production deployment4aef03b5-1fbb-4330-8ce0-6a9d244547d9completed successfully at2026-09-03T21:04:44Z.mainatcf03c01. No additional app test or physical-device cycle was run during public reconciliation, per owner direction.Release work is complete. The existing zero-cost campaign measurement remains active through 2026-09-30, with the first scheduled readback due 2026-09-07.
kiku-jw commentedon Sep 6, 2026
Campaign pre-readback verification — 2026-09-07T00:07:26+03:00
The registered first attribution readback remains due at 2026-09-07T17:28:13Z (20:28:13 EEST). No App Store Connect metrics were read early, no unavailable value was recorded as zero, and no campaign, monitor, Store setting, outreach, spend, device, or product behavior changed.
kiku-jw commentedon Sep 8, 2026
First campaign attribution readback — 2026-09-08T10:37:36Z
Source: App Store Connect → Hourleaf → Analytics → Acquisition → Campaigns.
31 Aug–6 Sep 2026, the latest complete seven-day range available in Apple reporting.All.Insufficient data to show campaigns.)web-en,web-ru,web-uk, orgithub.githubactivity was counted or inferred.Experiment state:
WAIT. The fixed observation window remains2026-08-31T17:28:13Zthrough2026-09-30T17:28:13Z. Next unchanged readback: 2026-09-14; final decision only after the 30-day window matures.kiku-jw commentedon Sep 29, 2026
Campaign closeout and product decision — 2026-09-29
The owner asked to end the zero-cost owned-link experiment now. The latest complete App Store Connect range available was 31 Aug–28 Sep 2026, App Download Date = All.
Evidence
web-en,web-ru,web-uk, orgithubcrossed the reporting threshold. Per-channel values below that threshold remain unknown, not zero.Verdict: UNPROVEN / INSUFFICIENT REACH. The experiment does not demonstrate a bad product page or zero interest. It demonstrates that the four passive owned surfaces did not generate enough attributable volume for Apple to expose channel metrics.
Apple reference: https://developer.apple.com/help/app-store-connect-analytics/acquisition/campaign-links
Product and monetization decision
Current category evidence shows that monetization is possible mainly for broader ministry suites with CRM-like planning, maps, contacts, timers, and other high-maintenance features. Hourleaf's differentiated value is the opposite: a calm, private, Apple-native hours/reporting utility.
Decision:
This choice also avoids unnecessary EU trader overhead. Apple's current DSA guidance says a hobby app with no commercialization intent may be a non-trader, while revenue, paid/IAP/ad-supported distribution, or commercial promotion are factors that can indicate trader status:
https://developer.apple.com/help/app-store-connect/manage-compliance-information/manage-european-union-digital-services-act-trader-requirements
50-hour celebration
Published to
mainat193827d:Verification:
xcodebuild -project Hourleaf.xcodeproj -scheme Hourleaf -destination 'generic/platform=iOS' -derivedDataPath <temporary> CODE_SIGNING_ALLOWED=NO build-for-testing -quiet— passed; app, Watch, extensions, and tests compiled.git diff --check— passed.kiku-jw commentedon Sep 29, 2026
Hourleaf 1.0.7 (21) submitted to Apple on 2026-09-30. Exact shipping source:
989c1a9; release receipt:4a546fd. Xcode archive/export/upload succeeded; App Store Connect processed build 21, assigned it to Hourleaf Internal, accepted EN/RU/UK release notes and reviewer notes, and displayedWaiting for ReviewafterSubmitted items: 1. Automatic release after approval and immediate rollout are selected. Four new milestone tests passed; the full hosted suite retains the same date-sensitive baseline failures as 1.0.6 (24 unit and one UI), so it is not green. Public 1.0.7 availability, website update, and GitHub release remain pending storefront confirmation.kiku-jw commentedon Sep 30, 2026
Release follow-up, 2026-09-30 05:17 UTC window: official Apple lookup still returns Hourleaf 1.0.6 (com.kikuai.hourleaf) in US, LT and UA. App Store Connect redirected the authenticated review check to sign-in with an expired/failed session, so the current review state of 1.0.7/build 21 is unverified; this is not evidence of rejection. The browser sign-in page is left for owner reauthentication. No GitHub release, site version claim, Store setting, app data or physical device was changed. Next action: owner signs in to App Store Connect, then resume review/public-store verification. Shipping source remains 989c1a9.
kiku-jw commentedon Sep 30, 2026
Owner reauthentication confirmed on 2026-09-30. Fresh App Store Connect readback shows iOS 1.0.7 Waiting for Review with build 21 selected, automatic release after approval and immediate rollout enabled. No resubmission is needed. Official Apple lookup still returns public 1.0.6 in US, LT and UA. The authentication blocker is resolved; next actor is Apple App Review. GitHub v1.0.7 and EN/RU/UK site updates remain conditional on approval plus public storefront confirmation. No Store setting, app data or physical device was changed.
kiku-jw commentedon Sep 30, 2026
Hourleaf 1.0.7 (21) — public release verified
Apple has approved this release. Fresh authenticated App Store Connect readback shows iOS 1.0.7 Ready for Distribution with build 21 and automatic release selected.
Public evidence
Verification and durable state
The requested 1.0.7 public-release reconciliation is complete. No remaining release action is required from Nick. The broader roadmap issue stays open; the dedicated 1.0.7 follow-up can stop.