Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

feat(ci): establish a native macOS baseline for platform-sensitive behavior

Closed
#2,121 1 comment 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@dnlrsls is already working on this.

Since Oct 26, 2026.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
github-actions, go, macos, sqlite
Domain
ci-cd, devops, testing

Research direction

Start with .github/workflows/ci.yml and the tests covering filesystem paths and symlinks, process lifecycle, setup, and SQLite persistence; measure a small native macOS baseline and record runner architecture, tool versions, exact commit, commands, timings, and test scope. Coordinate scope and gating policy through #2020, and document exclusions, failure classifications, rollout review criteria, and unexecuted Darwin coverage. Done means hosted runs provide reproducible evidence while failures remain visible and are not made required without maintainer review.

Written by the indexing model from the issue text.

Description

status:approved type:feature
Existing Issue Search
  • I searched existing issues and will add evidence to a canonical tracker when applicable.
🔍 Observed Consequence

Engram distributes Darwin amd64/arm64 binaries but the inspected product CI uses Linux and selected Windows jobs, without a native macOS execution baseline. Cross-compilation cannot reveal runtime filesystem aliases/casing, process/signal behavior, setup integration or persistence differences on macOS.

💡 Desired Outcome

A reproducible, measured native macOS baseline for the existing platform-sensitive behavior, with explicit architecture/coverage limits and actionable failure classification. Reuse existing tests and release evidence rather than multiplying every job across all operating systems.

📦 Affected Area

Other — native CI coverage and contributor verification.

Release Context

Not release-specific; canonical main 85577ae0e95c4554adeef6b343faaed5ca1f298f, inspected 2026-10-25.

🔄 Workarounds and Constraints

No production credentials, user database or destructive cleanup. No blanket skip, assertion weakening, macOS job-per-every-Linux-job matrix, or automatic required-check activation. Cross-build/signature validation is not execution proof.

📎 Additional Context
Verified evidence and search
  • Current CI has Linux default-tag/explicit E2E/race/PostgreSQL/plugin coverage and selected Windows checks, no macOS runner.
  • GoReleaser builds Linux/Darwin/Windows amd64/arm64 with CGO disabled. Staging also cross-builds; neither establishes native Darwin behavior.
  • All-state macOS/Darwin/native-baseline issue and PR searches found no equivalent baseline tracker. Closed #880 / merged PR #1009 concern /var versus /private/var test portability; closed #402 / merged PR #453 concern signing/AMFI. Preserve those as historical evidence, not open baseline owners.
  • Windows remains #1891, with draft PR #2023 and an incomplete observational baseline; do not copy its symptoms or reopen completed portability fixes by inference.
Scope and observable acceptance
  • Inventory applicable existing filesystem/path/symlink, process/signals/lifecycle, installer/setup and SQLite persistence tests. Select the smallest coherent native baseline that detects macOS-specific behavior and document exclusions with reasons. A full default-tag Go baseline is a candidate to measure, not a silent all-job matrix requirement.
  • Explicitly choose runner image, native CPU architecture, aligned Go/Node/shell prerequisites and bounded timeout. Record actual runner uname/architecture, tools, exact checkout SHA, command/exit, timings and executed/skipped test scope. Do not infer arm64 coverage from amd64 or vice versa.
  • Capture hosted pass/failure evidence; classify product defect, fixture assumption, missing prerequisite and resource limitation separately. Establish comparable revision/environment evidence before assigning regression causality.
  • Assert preservation of the platform-sensitive observable behaviors, including temporary-path canonicalization, owned process shutdown, config preservation and isolated write/read persistence. Reuse owning tests; add focused regressions only for proven gaps.
  • Document which supported Darwin architecture/platform behavior remains unexecuted and what release-artifact validation does not cover.
  • Start as an explicitly reviewed observational rollout, with an exit/review criterion and a maintainer disposition on frequency, stable baseline and blocking status through #2020. Resolve any desired merge_group participation before making a check required. Failure must remain visible, not forced green.
Dependencies and exclusions

Coordinate toolchain and technical-gating policy with #2020, conservative area selection with #2098 and distributed-artifact smoke with the separate artifact plan. This does not replace #1891, add production behavior, release software, create a new SDK framework, require all jobs on macOS, or change repository settings.

Pending maintainer decisions

Choose initial native architecture/runner and budget, exact baseline scope and documented omissions, frequency/events, stabilization criterion and eventual blocking disposition. Only ticket publication is authorized now.

Dominant language
Go
Stars
7.1k
Forks
729
Avg merge
9h 12m
Merged PRs (30d)
331

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Gentleman-Programming/engram

All issues in Gentleman-Programming/engram

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.