Skip to content

[codex] Install Unicorn Hub Flutter profile#1

Merged
cucumberfalse merged 4 commits into
mainfrom
codex/install-unicorn-hub
May 6, 2026
Merged

[codex] Install Unicorn Hub Flutter profile#1
cucumberfalse merged 4 commits into
mainfrom
codex/install-unicorn-hub

Conversation

@cucumberfalse

@cucumberfalse cucumberfalse commented May 6, 2026

Copy link
Copy Markdown
Owner

Summary

Installs the Unicorn Hub Flutter profile into takeyourmeds so future AI-assisted work has durable project memory, baseline scripts, PR workflows, review routing, Dependabot, and branch-protection configuration.

The existing Flutter app code and .github/workflows/ci.yml are preserved. The generated project memory was adapted to the real app: offline-first medication reminders for iOS/Android, local SQLite/mobile notification behavior, web demo limitations, current Make targets, and current CI contexts.

This PR also refreshes Flutter dependency metadata because the current GitHub Actions Flutter stable image exposed the repository's existing incompatible-constraints dependency gate. App source remains unchanged; pubspec.yaml, pubspec.lock, generated desktop plugin metadata, dependency docs, and feature memory were updated so CI can validate the bootstrap on Flutter stable 3.41.9 / Dart 3.11.5.

Validation

  • pnpm run check:repo
  • node scripts/check-feature-memory.mjs --worktree
  • PATH=/Users/kristina.kurashova/.cache/flutter-stable/bin:$PATH pnpm run preflight
  • PATH=/Users/kristina.kurashova/.cache/flutter-stable/bin:$PATH flutter build web --release
  • git diff --cached --check
  • YAML parse for generated workflow files
  • JSON parse for .unicorn-hub/config.json and package.json

Notes

  • Existing .github/workflows/ci.yml has no diff.
  • .unicorn-hub/config.json lists the current Flutter CI job contexts: Lint, Unit tests, Widget tests, Build Web, and Build Android APK, plus Unicorn Hub gates.
  • pr-guard.yml checks trusted gate scripts from the PR base SHA, with a first-install fallback because this repo does not yet have the scripts on main.
  • ai-review.yml skips enforcement only for this first Unicorn Hub bootstrap case where trusted review scripts are absent from the base branch; after merge, future PRs use trusted review scripts from main.

cucumberfalse and others added 3 commits May 6, 2026 09:55
Add the Unicorn Hub bootstrap layer for this Flutter app, including agent docs, project memory, PR workflows, repo baseline scripts, Dependabot, and review gates while preserving the existing Flutter CI workflow.

Constraint: Existing .github/workflows/ci.yml is intentionally preserved by the flutter-app profile

Tested: pnpm run check:repo; node scripts/check-feature-memory.mjs --worktree; git diff --cached --check; YAML and JSON parse checks; pnpm run preflight stops at missing local flutter SDK

Co-authored-by: OmX <omx@oh-my-codex.dev>
Update the dependency baseline after GitHub Actions on Flutter stable 3.41.9 exposed the existing incompatible-constraints gate. The app source remains unchanged; the PR adds feature memory, refreshed pubspec metadata, and dependency docs so CI can validate the Unicorn Hub install on the current toolchain.

Constraint: Product behavior and Flutter source files are unchanged except generated plugin metadata from flutter pub get

Tested: PATH=/Users/kristina.kurashova/.cache/flutter-stable/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/pkg/env/active/bin:/opt/pmk/env/global/bin:/Users/kristina.kurashova/.codex/tmp/arg0/codex-arg0u5mTAc:/Users/kristina.kurashova/.local/bin:/Applications/Codex.app/Contents/Resources pnpm run preflight; PATH=/Users/kristina.kurashova/.cache/flutter-stable/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/pkg/env/active/bin:/opt/pmk/env/global/bin:/Users/kristina.kurashova/.codex/tmp/arg0/codex-arg0u5mTAc:/Users/kristina.kurashova/.local/bin:/Applications/Codex.app/Contents/Resources flutter build web --release; git diff --cached --check

Co-authored-by: OmX <omx@oh-my-codex.dev>
Adjust the AI Review workflow so the first Unicorn Hub bootstrap PR succeeds when trusted review scripts are not yet present on the base branch. After this PR is merged, future pull requests will run the trusted scripts from main instead of PR-provided review gate code.

Constraint: First-install bootstrap skips only when trusted review scripts are absent on the base branch

Tested: ruby YAML parse for .github/workflows/ai-review.yml; pnpm run check:repo; node scripts/check-feature-memory.mjs --worktree

Co-authored-by: OmX <omx@oh-my-codex.dev>
@cucumberfalse cucumberfalse force-pushed the codex/install-unicorn-hub branch from b298c96 to e9ffb28 Compare May 6, 2026 13:44
Security fixes:
- pr-guard.yml: drop fallback that ran PR-branch scripts when trusted
  scripts were absent on base; fail-skip closed instead. Use heredoc-
  delimited writes to GITHUB_ENV so multiline refs cannot inject env vars.
- apply-branch-protection.mjs: default to 1 required approval and
  require_last_push_approval=true so the script fails safe.
- resolve-pr-context.mjs: write GITHUB_OUTPUT with random heredoc
  delimiter and reject collision values.
- ai-review.yml: drop unneeded issues:write (use pull-requests:write),
  surface bootstrap skip as ::warning:: so manual review is mandated,
  reduce AI_REVIEW_WAIT_MS to keep headroom under timeout-minutes.
- new-worktree.mjs: reject ".", "..", and slugs with path separators
  after sanitization to avoid worktree path traversal.
- publish-branch.mjs: use mkdtempSync for the PR body file instead of
  a predictable tmp path.
- ai-command-policy.yml: drop issues:write, keep pull-requests:write
  (the only API surface used).

Correctness fixes:
- ai-review-helpers.mjs: gemini native review now ignores
  CHANGES_REQUESTED state; Claude SHA marker accepts unique 7+ char
  prefix of head SHA; Codex summary comment also accepts standard
  7-char short SHA.
- ai-review-gate.mjs: cap listPaginated at 100 pages so a stuck API
  cannot loop indefinitely.

Quality / hygiene:
- shared.mjs: parseArgs handles --key=value; walkFiles skips
  symlinks via lstatSync; isTextFile recognizes Flutter file types.
- All workflow jobs gain timeout-minutes.
- dependabot.yml adds an npm ecosystem entry for the new package.json.
- .gitignore covers node_modules/, .pnpm-store/, agent worktree dirs,
  and .gate-trusted/.
- review-contract.md aligned with actual helper logic: AI_REVIEW_AGENT
  is documented as optional.
- specs/001-refresh-flutter-dependencies/{plan,tasks}.md: drop
  user-specific local cache paths.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@cucumberfalse cucumberfalse merged commit 8b42d6d into main May 6, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant