TurtleGit for Mac

View Markdown source ↗

App Store submission dossier — draft, 25 October 2026

This is a reviewable preparation artifact, not an approved listing, signed export, license clearance or submission. No App Store Connect fields were changed. The accompanying English listing payload contains copy that can be reviewed independently of the current signed development build. Nothing in this dossier certifies complete TortoiseGit parity. The macOS port is authored by Jochen Kühner; this author credit is distinct from the still unconfirmed App Store seller/legal entity and retained upstream rights.

Proposed listing

Field Draft Decision
Name TurtleGit for Mac Owner approval; 17 characters
Subtitle Git history, commits and diffs Owner approval; 30 characters
macOS port author Jochen Kühner Confirmed port credit; does not establish seller/legal entity or ownership of upstream work
Primary category Developer Tools Proposed; matches the implemented development workflow
Secondary category Utilities Optional proposal; owner may omit
Primary language English (U.S.) Proposal; compiled UI translations do not establish reviewed store localizations
Keywords repository,version control,branches,merge,blame,patch,clone,staging,ssh,submodules 82 ASCII bytes; owner approval
Description Exact plain-text copy in the JSON payload Owner approval; no price, release date or full-parity claim
Marketing URL https://jfk-solutions.github.io/turtle-git-mac/ TurtleGit homepage with native screenshots and the illustrated manual; final listing approval pending
Public support email jochen.kuehner@gmx.de Confirmed by owner on 25 October 2026; recorded in this draft
Support URL candidate https://jfk-solutions.github.io/turtle-git-mac/ Reachable, links to GitHub issues; Confirmed support email deployed and verified on 25 October 2026; final listing approval pending
Privacy Policy URL candidate https://jfk-solutions.github.io/turtle-git-mac/manual/PRIVACY.html Reachable policy; owner must approve for the exact release and identify the responsible publisher/contact
Copyright, seller, SKU Not supplied Owner must confirm legal rights/identity and the App Store Connect record
Price, territories, release method Not supplied Owner decision; no free, trial, subscription or purchase claim inferred
Version/build Read from final exported archive Do not copy a historical development build or assume its number is unused in Connect

Apple currently limits app names/subtitles to 30 characters, description to 4,000 characters and keywords to 100 bytes. The ASCII keyword string also fits Apple's 100-character search guidance and avoids names of other apps. Categories are proposals, not assigned account values. Sources: app information, version metadata, search guidance, category definitions.

Deployed URL verification

Direct HTTPS GETs on 25 October 2026 returned HTTP 200 and the expected page titles for the homepage, manual/PRIVACY.html, manual/GETTING-STARTED.html and manual/CRASH-REPORTING-PARITY.html. These routes agree with scripts/site_docs.py's manual/<document>.html output and the site's existing Support/Source links. No new page was published by this audit.

The owner confirmed jochen.kuehner@gmx.de as the public support email on 25 October 2026. The homepage's issue tracker is a useful technical support route; the confirmed email was deployed and verified by direct HTTPS GET on 25 October 2026 (Pages run 40214801400, commit ca7c08d1f94d). Apple describes actual contact information for Support URL and requires a privacy URL; a reachable page alone does not settle those fields. See version metadata and App Privacy. The seller/legal entity remains unspecified; the support email does not establish it.

Draft reviewer instructions

These instructions describe implemented workflows. The final Notes for Review must add the actual build, attachment names/checksums, owner contact and any restricted-feature credentials through Apple's private review channel.

  1. Open and authorize a repository. Launch TurtleGit. Use the normal folder chooser to open the supplied disposable sample repository. Folder authorization is user controlled; passing a Finder or command-line path does not bypass it. Do not use a personal repository for mutation checks. Local history, comparison and Commit do not require a TurtleGit cloud account or Homebrew/Xcode Git. The AppStore configuration bundles its Git runtime and refuses external fallback.
  2. Finder first use. Enable the signed TurtleGit Finder extension in macOS System Settings if disabled; the location/labels vary with macOS. Select a folder in Finder and open the TurtleGit submenu. Clone accepts a remote or local source and requests destination access. Add to TurtleGit registers a selected existing repository after access/root validation. Successful Clone registers its new repository using the accepted destination grant; a second registration chooser is not the expected route. Registration does not enable background refresh after Quit automatically. Add runs without opening the workspace; Services → Open in TurtleGit provides an explicit workspace entry point when Finder does not display the submenu. See the deployed getting-started guide.
  3. Local review and mutation. Open Log and inspect the graph, commit message and changed paths. Compare a changed file. In a disposable repository, edit a sample text file, open Commit, select/check or stage the intended paths, enter a message and commit. Checked membership and row highlighting are independent. Ordinary Git hooks/filters execute within the sandbox's available permissions; the product does not promise unrestricted external executables.
  4. Optional background badges. First register the sample repository. Enable Settings → Icon Overlays → Watched Repositories → Refresh after TurtleGit quits, and approve any macOS background registration prompt. Quit the main app normally, modify/restore one sample file and inspect Finder status. Restore the initial background setting and remove only the sample watch/grant afterward. No blanket disk access is required.
  5. Standalone patch documents / CLI. File-open a supplied .patch file in the editable Unified Diff viewer; inspect Find, appearance and Save to a chosen new location. The combined app's explicit CLI entry is --unified-diff --stdin --title 'Review changes' for a pipe, or --unified-diff --patchfile <file> for a file. EOF, including empty EOF, is accepted. Plain --unified-diff opens an empty document; it does not auto-read stdin. CLI path requests remain subject to owned file/folder authorization. See command-line usage.
  6. Patch export and email. Format Patch exports selected revisions. The Fetch→Rebase completion Send Mail action exports the accepted upstream..branch range to the repository and then opens mail options; choosing that action does not itself transmit mail. Settings → Email configures direct SMTP (server, port, encryption/authentication) or installed Apple Mail where available. Do not send to real recipients for review. Owner pending: provide a controlled SMTP account/recipient or a private demonstration. Passwords must not be put in this public dossier. Apple Mail may request Automation consent and needs a configured Mail account; closing options is not evidence of delivery.
  7. Optional Office integration. Word/Excel/PowerPoint comparison/export requires the relevant independently installed Microsoft application and macOS Automation approval. The built-in text tools work without Office. Denial is reported with a System Settings recovery hint. Owner pending: reviewer demonstration/material for optional Office features, and an explanation of the declared Apple-event exceptions. Do not claim that Office is bundled.
  8. Privacy and cleanup. Offline Help includes Privacy. Optional Gravatar, HTTP issue providers, network remotes and email have separate explicit choices. After review, discard only the sample fixtures, remove their saved grants/watch entries and restore background preferences. Do not clear unrelated histories, repositories, Keychain entries or Finder windows.

Offline review attachment prepared: Download the synthetic review sample. It contains Harbor's eleven-commit branched history, staged/unstaged/renamed/added/ untracked examples, a separate genuine merge conflict, an offline history bundle, a patch document, GPL license, exact initial-state inventory and reset/cleanup instructions. All identities are synthetic and there is no network remote or credential. The ZIP is 96,445 bytes; SHA-256: 8b4a36a69a9e6851e1a54aaf1991440d02dee7d8a4d26d23a86a19ab87816e5f. The manifest records every file and the expected repository state. Rebuild it with python3 scripts/build-review-demo.py using the pinned bundled Git.

A reviewer can inspect local core workflows without an external account. Final owner approval and attachment to the actual Connect submission remain separate; this sample does not supply optional SMTP/Office credentials or certify native review of every scenario. The attachment checkpoint records file/metadata checks and actual offline clone, patch application and conflict resolution with system and bundled Git; it is not app/sandbox acceptance.

Apple asks for working support links and sufficient specific review instructions, including access to restricted features. These notes require final owner review rather than a generic “all features tested” statement. App Review preparation.

Privacy questionnaire evidence worksheet

These are evidence inputs, not submitted answers. Use the exact release and Apple's current definitions, including integrated third parties, before selecting “Data Not Collected” or any data category. Manage App Privacy.

Area Current repository evidence Owner confirmation needed
Developer analytics/advertising docs/PRIVACY.md: no TurtleGit analytics, advertising SDK or upload service Confirm unchanged in final binary and seller services
Local repository data User-selected files, Git metadata, bookmarks, histories, action logs, cache and optional crash-report review; private local storage/clear controls Final retention/deletion wording and publisher contact
Remotes, hooks, filters, credential helpers Requested Git/SSH operations can contact configured third parties; sandbox permissions still apply Classify applicable disclosures for actual distributed integrations
Optional Gravatar Disabled by default; author-email digest and normal network information go to configured provider when enabled Provider terms/disclosure and Apple's collection/linkage classification
Optional HTTP issue provider User-enabled endpoint receives captured paths/draft/issue/revision information; credentials stored separately in Keychain Classification and third-party retention, including cancellation after server processing
Email User-approved message, recipients and selected attachments go to chosen SMTP/Mail workflow Applicable content/contact-data disclosures and controlled review account
Diagnostic reports Local explicit review/copy/save; no automatic report upload claimed Confirm any support sharing service used for release
Updates AppStore update route is isolated from non-store GitHub feed/download checks Confirm final channel behavior

docs/PRIVACY.md and the bundled Help topic exist. No PrivacyInfo.xcprivacy resource is currently declared. Do not convert that observation into an unsupported macOS-only required-reason API blocker; review applicable SDK/manifest requirements for the final components and distribution channel separately.

Encryption/export worksheet — owner decision required

Encryption is present: packaged OpenSSH/OpenSSL, HTTPS Git/libgit2, SMTP TLS, Keychain/Apple Security and optional network integrations. It would be inaccurate to select “no encryption” solely because the Swift UI delegates cryptography. NOTICE, runtime pin files and the candidate's runtime inventory identify the actual components. The app Info.plist does not currently set ITSAppUsesNonExemptEncryption or an export compliance code.

Not decided here: exemption/classification, any documentation/reporting, France/other territories, final plist declaration and Connect responses. No jurisdictional or legal conclusion is made. The owner must determine these for the complete binary and intended territories, then record the basis. Apple's export-compliance overview and encryption declaration guidance describe the determination and submission flow.

Age-rating worksheet — do not preassign a rating

The shipped feature set is a developer utility, with no built-in gambling, advertising, medical advice or supplied mature-media catalog identified by this bounded review. Users can open arbitrary repositories and documents, invoke external links and send email/issue-provider information. Review those capabilities against the current questionnaire rather than treating user-provided content as proof that every content/capability answer is “None.” No dedicated parental-control or age-assurance flow is claimed.

Owner pending: answer each current capability/content/frequency question, determine whether any override is appropriate, and record Apple's generated regional ratings. Do not publish a guessed “4+” or “all ages.” Apple generates ratings from the questionnaire. Set an app age rating.

Screenshot plan — source material, not upload-ready assets

Plan five final English screenshots: (1) history/graph, (2) Commit/staging and patch, (3) Finder entry points, (4) working-tree changes, (5) comparison/merge. Use a sanitized redistributable example project, current signed release, normal readable settings and a deliberate fully composed desktop capture. Preserve actual product behavior; do not synthesize controls or imply all upstream features are complete. Current UI translations and diagnostic colors are not automatically suitable store marketing material.

Proposed subject Existing candidate/reference Measured format/dimensions Disposition
Finder Clone/Add qa/context-registration-2026-10-25/finder-first-use.png JPEG despite .png suffix; 3456×2168 Viewed: real Finder/menu, German locale and personal sidebar/QA names; recapture sanitized/current
Log/context icons qa/context-registration-2026-10-25/log-context-icons.png JPEG despite suffix; 2240×1624 Viewed: real Log/menu, mixed localization and small sample; recapture richer clean history
History qa/signed-consolidation-2026-10-25/log.png JPEG despite suffix; 2240×1624 Historical signed reference, not current release acceptance
Commit site/assets/workspace-report-commit-light-2026-10-25.png JPEG despite suffix; 2000×1584 Composition reference; predates later Commit changes
Working Tree site/assets/workspace-report-status-light-2026-10-25.png JPEG despite suffix; 2200×1324 Composition reference; refresh behavior has later evidence
Embedded patch appearance qa/editor-appearance-2026-10-25/commit-populated-dark.png PNG, 2360×1700, RGBA Viewed: diagnostic/custom high-contrast rendering and incomplete native control composition; exclude from store assets

Dimensions/formats were read without modifying images. None of these measurements is an approved current 16:10 store screenshot. Apple currently accepts Mac screenshots at 1280×800, 1440×900, 2560×1600 or 2880×1800, without alpha; one to ten screenshots may be provided. Proposed final target: 2560×1600, consistently captured for the selected localization. Final PNG/JPEG files, visual review, opaque encoding, dimensions, checksums and matching build provenance remain pending. No image was edited or newly captured for this dossier. Apple screenshot specifications, upload requirements.

Release decision record still to complete

Deliverable State / owner
Listing copy/category/localizations and support contact Draft above; account owner approves
Seller identity, rights, license/distribution terms Unresolved review gate in DISTRIBUTION.md; no permission/clearance inferred from this draft
Privacy/export/age questionnaire Evidence worksheet; owner answers and documents decisions
Price/territories/tax/banking/agreements Account-owner decisions; not queried or changed
App identifier/SKU/version/build admission Confirm in the actual Connect record; do not infer from local build values
Distribution certificate/profile and App Group entitlement Final channel/account verification; Apple Development signatures are not a submitted distribution export
Exact final archive/package/source+notice set Match measured inputs, actual signed binary, symbols and corresponding source/reconstruction inputs; prior receipts remain historical
Final screenshots and sample review attachment Offline synthetic attachment prepared with checksums/reset instructions; final screenshots and owner/submission approval remain pending
Hosted CI macOS run40225297562 at c47640a3 failed during Swift 6.1.2 test compilation, before behavioral tests. Explicitly typed equivalent assertion is repaired in the next source batch and passes the focused local check; a complete hosted pass remains unproven
Upload/validation/App Review/release Not performed; only after owner approval and remaining gates

Existing distribution engineering, privacy, NOTICE and release blockers remain authoritative for their actual dated evidence. This dossier adds a concrete submission draft; it does not replace those records or certify release readiness.