Skip to content

Release/2.0.22#2263

Merged
mikib0 merged 17 commits into
mainfrom
release/2.0.22
Apr 20, 2026
Merged

Release/2.0.22#2263
mikib0 merged 17 commits into
mainfrom
release/2.0.22

Conversation

@mikib0
Copy link
Copy Markdown
Collaborator

@mikib0 mikib0 commented Apr 20, 2026

This pull request introduces several improvements across the codebase, focusing on enhancing the developer experience for private package authentication, standardizing search result containers in the UI, and updating app versions. The main highlights include a more robust and user-friendly authentication flow for GitHub Packages, the introduction of a reusable container for search content, and UI refactors to improve consistency and maintainability.

Private Package Authentication Improvements:

  • Refactored .github/scripts/configure-deps.ts to only verify the presence of the PACKRAT_NATIVEWIND_UI_GITHUB_TOKEN environment variable, printing clear instructions if missing, and removed logic that attempted to inject the token at runtime.
  • Updated features/{name}/CLAUDE.md documentation to recommend storing the token in .env.local for Bun, clarified troubleshooting steps, and explained why the preinstall hook cannot inject env vars into Bun's process.

UI Consistency and Refactors (Search Content Container):

  • Added a new LargeTitleHeaderSearchContentContainer component to encapsulate search result content with consistent background and safe area handling, and refactored DashboardScreen, CatalogItemsScreen, and PackListScreen to use it for their search bar content [1] [2] [3] [4] [5] [6] [7] [8] [9] [10].

UI Refactors and Bug Fixes:

  • Refactored GuidesListScreen and CatalogItemsScreen to use TabScreen for header and filter layout, improving safe area handling and code clarity [1] [2] [3] [4] [5] [6] [7].
  • Simplified SearchResults in packs to only render when there are results, and added padding to the results list [1] [2].

Version Updates:

  • Bumped app versions in apps/admin/package.json and apps/expo/app.config.ts to 2.0.22 [1] [2].

Miscellaneous:

  • Minor improvements to imports and hooks usage for clarity and maintainability [1] [2].

Let me know if you want to walk through any of these changes in detail!

Summary by CodeRabbit

Release 2.0.22

  • New Features

    • Improved search UI with enhanced layout container styling across the app.
  • Bug Fixes

    • Fixed date formatting with improved fallback parsing for edge cases.
    • Updated form validation to properly handle optional null values.
  • Improvements

    • Enhanced search results and screen layout structure for better visual consistency.
    • Refined iOS scroll behavior for improved user experience.

Isthisanmol and others added 17 commits April 16, 2026 18:49
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Bun reads bunfig.toml at startup, so env vars set inside the preinstall
hook never reach the parent install process. The previous docs and
configure-deps script implied the hook handled auth automatically, which
caused silent 401s on `@packrat-ai/nativewindui`.

- CLAUDE.md: rewrite Private Package Auth with accurate export patterns
  and troubleshooting for the "token set?" check.
- configure-deps.ts: stop pretending to inject the var into the parent
  process; detect a missing token and print the exact fix command.
Bun auto-loads .env.local before `bun install`, so the token can live
alongside other secrets. Demoted the shell-export approach to an
alternative path.
fix(expo): consistent fixed search bar in tab screens
@github-actions github-actions Bot added documentation Improvements or additions to documentation dependencies Pull requests that update a dependency file api ci/cd mobile web labels Apr 20, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Coverage Report for Expo Unit Tests Coverage (./apps/expo)

Status Category Percentage Covered / Total
🔵 Lines 79.9% 517 / 647
🔵 Statements 79.9% (🎯 75%) 517 / 647
🔵 Functions 92.85% 52 / 56
🔵 Branches 92.55% 199 / 215
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
apps/expo/lib/utils/dateUtils.ts 0% 0% 0% 0% 1-34
Generated in workflow #604 for commit 92722e8 by the Vitest Coverage Report Action

@github-actions
Copy link
Copy Markdown
Contributor

Coverage Report for API Unit Tests Coverage (./packages/api)

Status Category Percentage Covered / Total
🔵 Lines 85.86% 905 / 1054
🔵 Statements 85.86% (🎯 80%) 905 / 1054
🔵 Functions 94.11% 48 / 51
🔵 Branches 89.2% 281 / 315
File CoverageNo changed files found.
Generated in workflow #604 for commit 92722e8 by the Vitest Coverage Report Action

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 20, 2026

📝 Walkthrough

Walkthrough

This PR refactors GitHub package token verification to validate token availability before bun reads bunfig.toml, introduces a new LargeTitleHeaderSearchContentContainer component for Expo's search UI, integrates it across multiple screens, adds date parsing fallback logic, allows nullable packId in trip forms, and bumps all package versions from 2.0.21 to 2.0.22.

Changes

Cohort / File(s) Summary
Token Configuration & Documentation
.github/scripts/configure-deps.ts, CLAUDE.md
Refactored token verification flow to check PACKRAT_NATIVEWIND_UI_GITHUB_TOKEN availability upfront and fail fast in CI; removed environment mutation logic. Updated docs to clarify token sourcing from .env.local or shell export, with one-time GitHub CLI auth refresh instructions and troubleshooting guidance.
Version Bumps
package.json, packages/.../package.json, apps/.../package.json
Incremented version from 2.0.21 to 2.0.22 across root, all packages (analytics, api, api-client, checks, cli, config, env, guards, mcp, ui, web-ui), and all apps (admin, expo, guides, landing).
Search Container Component
apps/expo/components/LargeTitleHeaderSearchContentContainer.tsx
Added new exported React component that conditionally selects container type (SafeAreaView on iOS, View otherwise), reads color scheme, and renders children with flex: 1 and background styling.
Search UI Integration
apps/expo/app/(app)/(tabs)/(home)/index.tsx, apps/expo/features/catalog/screens/CatalogItemsScreen.tsx, apps/expo/features/packs/screens/PackListScreen.tsx, apps/expo/features/trips/screens/TripListScreen.tsx
Wrapped search bar content in LargeTitleHeaderSearchContentContainer, removed iosHideWhenScrolling: true from searchBar props, and updated FlatList layout styling from className to contentContainerClassName.
Search Results & Filter Restructuring
apps/expo/features/packs/components/SearchResults.tsx, apps/expo/features/guides/screens/GuidesListScreen.tsx
Removed conditional outer container wrapping from SearchResults; moved CategoriesFilter into TabScreen as ListHeaderComponent in guides screen, replacing SafeAreaView wrapper with fragment.
Utility & Form Updates
apps/expo/lib/utils/dateUtils.ts, apps/expo/features/trips/components/TripForm.tsx
Added fallback date parsing via new Date(dateString) in formatLocalDate when primary parse returns null. Updated Zod schema for packId field to allow null value (z.string().nullable().optional()).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

documentation, ci/cd, mobile, web

Suggested reviewers

  • andrew-bierman
  • Isthisanmol

Poem

🐰 A token once muddled, now verified clear,
Containers now wrap what the searchers hold dear,
Versions ascend to point twenty-two's grace,
UI and flow find their rightful place! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 11.11% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Release/2.0.22' clearly indicates a version release and aligns with the primary objective of bumping app versions to 2.0.22 across the entire codebase while also introducing supporting UI and authentication changes.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/2.0.22

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
apps/expo/features/trips/components/TripForm.tsx (1)

36-138: ⚠️ Potential issue | 🔴 Critical

Critical: schema change breaks the TypeScript build — normalize packId before submit.

Broadening the schema to z.string().nullable().optional() makes TripFormValues['packId'] widen to string | null | undefined, but both updateTrip({ ...trip, ...submitData }) (line 118) and createTrip(submitData) (line 124) expect Trip / TripInput where packId is string | undefined. This is exactly what the pipeline is failing on (TS2345), and at runtime null will also be persisted to the store/DB even though consumers only expect undefined.

Normalize packId at submit time so null is coerced to undefined:

🐛 Proposed fix
     onSubmit: async ({ value }) => {
-      const submitData = { ...value, location: location ?? value.location };
+      const submitData = {
+        ...value,
+        location: location ?? value.location,
+        packId: value.packId ?? undefined,
+      };
       try {

Alternatively, if nullable packId is intentional downstream (e.g. to distinguish "explicitly cleared" from "never set"), update Trip/TripInput in apps/expo/features/trips/types.ts to packId?: Pack['id'] | null and adjust the store/mutation paths — but that's a broader change than this PR's scope.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/expo/features/trips/components/TripForm.tsx` around lines 36 - 138, The
tripFormSchema change allows packId to be string | null | undefined which breaks
typing for createTrip/updateTrip and can persist null; in TripForm's onSubmit
(where submitData is built) normalize packId by converting any null value to
undefined (e.g. set submitData.packId = submitData.packId ?? undefined) before
calling updateTrip/createTrip so the payload matches expected Trip/TripInput
types; update the normalization near the submitData construction in the onSubmit
handler of TripForm (references: tripFormSchema, TripFormValues.packId,
submitData, onSubmit, createTrip, updateTrip).
apps/expo/features/catalog/screens/CatalogItemsScreen.tsx (1)

97-131: ⚠️ Potential issue | 🟠 Major

Remove TabScreen from ListHeaderComponent — it applies incorrect screen-level layout.

The listHeader memo uses <TabScreen useLegacySafeAreaView> (line 101), but TabScreen is designed as a screen-level wrapper that applies flex: 1, safe-area padding, and tab-bar offset. Using it inside a FlatList's ListHeaderComponent is architecturally incorrect:

  • flex: 1 will make the header expand to fill available space, breaking the header layout
  • Safe-area insets (paddingTop on iOS) apply only to the header, not to list rows
  • Tab-bar offset is misplaced in a header context

Unwrap the header content from TabScreen and apply only necessary styling (e.g., className props for padding/spacing). The FlatList body should remain unstyled or use a fragment to extend edge-to-edge as intended.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/expo/features/catalog/screens/CatalogItemsScreen.tsx` around lines 97 -
131, The listHeader memo currently wraps header content in the screen-level
component TabScreen (used in the listHeader constant inside CatalogItemsScreen),
which causes inappropriate layout (flex:1, safe-area and tab offsets); remove
the TabScreen wrapper and return the header content directly (keep
CategoriesFilter, the surrounding Views, Texts and their className props),
ensuring listHeader remains a fragment or plain View-based structure and leaving
FlatList/parent screen to handle screen-level safe area and flex styling; update
the dependency array and return value of the useMemo-defined listHeader
accordingly.
🧹 Nitpick comments (3)
apps/expo/lib/utils/dateUtils.ts (1)

30-33: Fallback relies on implementation-defined Date parsing.

parseLocalDate already handles ISO 8601 and YYYY-MM-DD. The remaining inputs that reach the fallback are, by definition, strings that aren't ISO — for which new Date(dateString) behavior is implementation-defined (per ECMA-262) and can silently accept locale-quirky formats or produce timezone-shifted results. If the goal is to tolerate a specific additional format (e.g. MM/dd/yyyy), consider parsing it explicitly with date-fns parse rather than delegating to the engine's Date constructor.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/expo/lib/utils/dateUtils.ts` around lines 30 - 33, The current fallback
uses new Date(dateString) which is implementation-defined; update the logic in
the function that calls parseLocalDate (references: parseLocalDate and
dateString) to avoid relying on the engine Date parser—either (A) remove the
fallback and return '\u2014' when parseLocalDate returns null/undefined, or (B)
explicitly parse the additional expected format(s) with date-fns parse (e.g.
parse(dateString, 'MM/dd/yyyy', new Date())) before falling back to '\u2014';
implement one of these options and ensure the final branch uses
isNaN(date.getTime()) only on a reliably parsed Date.
.github/scripts/configure-deps.ts (1)

43-67: LGTM — validation-only flow is correct.

The refactor correctly reflects that Bun parses bunfig.toml before the preinstall hook runs, so injecting the env var into the current process would be too late. Detecting + printing the exact fix command is the right call, and CI fast-fail vs. local gh-based guidance is cleanly separated.

One small nit: when gh auth status succeeds but the token still isn't exported (Lines 55-66), printLocalFix() already covers guidance — consider adding a one-line hint like "gh is authenticated but the token isn't exported to this shell" before printLocalFix() to make the distinction obvious to users who just ran gh auth login and expected it to propagate.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/scripts/configure-deps.ts around lines 43 - 67, Add a one-line hint
before calling printLocalFix() in configureDeps() to clarify the situation when
gh auth status succeeds but the env token isn't exported: insert a console.error
or console.log message like "gh is authenticated but the token isn't exported to
this shell" (or similar) immediately after the ghStatus success check and before
printLocalFix(), referencing TOKEN_VAR to show users which variable to export;
keep the existing early exits (process.exit(1)) and preserve printLocalFix()
behavior.
CLAUDE.md (1)

108-113: Recommend least-privilege scope.

Line 112 notes write:packages also works — for installing a read-only dependency, read:packages is sufficient and safer. Consider dropping the "write:packages also works" aside (or rephrasing as "only needed if you also publish") to avoid nudging contributors toward a broader-than-necessary scope.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CLAUDE.md` around lines 108 - 113, Update the "One-time GitHub CLI setup"
block to recommend the least-privilege scope by removing or rephrasing the
"write:packages also works" aside; specifically, change the comment after `gh
auth refresh -h github.com -s read:packages` to either drop the mention of
`write:packages` or replace it with a note like "use write:packages only if you
need to publish" so the instructions clearly recommend `read:packages` for
installing read-only dependencies.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/expo/components/LargeTitleHeaderSearchContentContainer.tsx`:
- Around line 1-14: Replace the Platform-based SafeAreaView import with the
context-aware SafeAreaView from react-native-safe-area-context and switch
styling to NativeWind classes: update imports used by
LargeTitleHeaderSearchContentContainer (remove SafeAreaView from 'react-native',
import SafeAreaView from 'react-native-safe-area-context'), keep the Platform/
View fallback logic but render SafeAreaView on iOS so it uses the
SafeAreaProvider context (optionally add edges={['bottom']} if top insets are
managed by the header), and replace the inline style that uses useColorScheme()
with className="flex-1 bg-background" on the Container to match project
NativeWind conventions.

In `@apps/expo/features/guides/screens/GuidesListScreen.tsx`:
- Around line 115-128: The listHeader function currently wraps the header in
TabScreen which adds unwanted flex and bottom padding on Android; change it so
listHeader returns only the CategoriesFilter (remove the TabScreen wrapper) and
instead wrap the entire screen's top-level return with TabScreen (using
useLegacySafeAreaView) — i.e., move the TabScreen that currently wraps
CategoriesFilter to enclose the full component return (replacing the outer
Fragment), matching the pattern used in TripListScreen and PackListScreen; keep
props and handlers (data={categories}, onFilter={handleCategoryChange},
activeFilter={selectedCategory}, error={categoriesError},
retry={refetchCategories}, className="px-4 pb-2") on CategoriesFilter and ensure
refetchCategories and handleCategoryChange remain referenced.

---

Outside diff comments:
In `@apps/expo/features/catalog/screens/CatalogItemsScreen.tsx`:
- Around line 97-131: The listHeader memo currently wraps header content in the
screen-level component TabScreen (used in the listHeader constant inside
CatalogItemsScreen), which causes inappropriate layout (flex:1, safe-area and
tab offsets); remove the TabScreen wrapper and return the header content
directly (keep CategoriesFilter, the surrounding Views, Texts and their
className props), ensuring listHeader remains a fragment or plain View-based
structure and leaving FlatList/parent screen to handle screen-level safe area
and flex styling; update the dependency array and return value of the
useMemo-defined listHeader accordingly.

In `@apps/expo/features/trips/components/TripForm.tsx`:
- Around line 36-138: The tripFormSchema change allows packId to be string |
null | undefined which breaks typing for createTrip/updateTrip and can persist
null; in TripForm's onSubmit (where submitData is built) normalize packId by
converting any null value to undefined (e.g. set submitData.packId =
submitData.packId ?? undefined) before calling updateTrip/createTrip so the
payload matches expected Trip/TripInput types; update the normalization near the
submitData construction in the onSubmit handler of TripForm (references:
tripFormSchema, TripFormValues.packId, submitData, onSubmit, createTrip,
updateTrip).

---

Nitpick comments:
In @.github/scripts/configure-deps.ts:
- Around line 43-67: Add a one-line hint before calling printLocalFix() in
configureDeps() to clarify the situation when gh auth status succeeds but the
env token isn't exported: insert a console.error or console.log message like "gh
is authenticated but the token isn't exported to this shell" (or similar)
immediately after the ghStatus success check and before printLocalFix(),
referencing TOKEN_VAR to show users which variable to export; keep the existing
early exits (process.exit(1)) and preserve printLocalFix() behavior.

In `@apps/expo/lib/utils/dateUtils.ts`:
- Around line 30-33: The current fallback uses new Date(dateString) which is
implementation-defined; update the logic in the function that calls
parseLocalDate (references: parseLocalDate and dateString) to avoid relying on
the engine Date parser—either (A) remove the fallback and return '\u2014' when
parseLocalDate returns null/undefined, or (B) explicitly parse the additional
expected format(s) with date-fns parse (e.g. parse(dateString, 'MM/dd/yyyy', new
Date())) before falling back to '\u2014'; implement one of these options and
ensure the final branch uses isNaN(date.getTime()) only on a reliably parsed
Date.

In `@CLAUDE.md`:
- Around line 108-113: Update the "One-time GitHub CLI setup" block to recommend
the least-privilege scope by removing or rephrasing the "write:packages also
works" aside; specifically, change the comment after `gh auth refresh -h
github.com -s read:packages` to either drop the mention of `write:packages` or
replace it with a note like "use write:packages only if you need to publish" so
the instructions clearly recommend `read:packages` for installing read-only
dependencies.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7ad21582-c928-43e7-b51a-53636d16837a

📥 Commits

Reviewing files that changed from the base of the PR and between 19f18bd and 92722e8.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (29)
  • .github/scripts/configure-deps.ts
  • CLAUDE.md
  • apps/admin/package.json
  • apps/expo/app.config.ts
  • apps/expo/app/(app)/(tabs)/(home)/index.tsx
  • apps/expo/components/LargeTitleHeaderSearchContentContainer.tsx
  • apps/expo/features/catalog/screens/CatalogItemsScreen.tsx
  • apps/expo/features/guides/screens/GuidesListScreen.tsx
  • apps/expo/features/packs/components/SearchResults.tsx
  • apps/expo/features/packs/screens/PackListScreen.tsx
  • apps/expo/features/trips/components/TripForm.tsx
  • apps/expo/features/trips/screens/TripListScreen.tsx
  • apps/expo/lib/utils/dateUtils.ts
  • apps/expo/package.json
  • apps/guides/package.json
  • apps/landing/package.json
  • package.json
  • packages/analytics/package.json
  • packages/api-client/package.json
  • packages/api/container_src/package.json
  • packages/api/package.json
  • packages/checks/package.json
  • packages/cli/package.json
  • packages/config/package.json
  • packages/env/package.json
  • packages/guards/package.json
  • packages/mcp/package.json
  • packages/ui/package.json
  • packages/web-ui/package.json

Comment thread apps/expo/components/LargeTitleHeaderSearchContentContainer.tsx
Comment thread apps/expo/features/guides/screens/GuidesListScreen.tsx
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR prepares the 2.0.22 release by improving private GitHub Packages authentication guidance/validation, standardizing Expo search overlay containers for LargeTitleHeader screens, and bumping versions across the monorepo.

Changes:

  • Bump app/package versions to 2.0.22 (plus corresponding lockfile updates).
  • Refactor Expo search UI to use a shared LargeTitleHeaderSearchContentContainer across multiple screens.
  • Simplify GitHub Packages auth setup: preinstall script now validates token presence and docs clarify recommended .env.local setup.

Reviewed changes

Copilot reviewed 29 out of 30 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
packages/web-ui/package.json Bump package version to 2.0.22.
packages/ui/package.json Bump package version to 2.0.22.
packages/mcp/package.json Bump package version to 2.0.22.
packages/guards/package.json Bump package version to 2.0.22.
packages/env/package.json Bump package version to 2.0.22.
packages/config/package.json Bump package version to 2.0.22.
packages/cli/package.json Bump package version to 2.0.22.
packages/checks/package.json Bump package version to 2.0.22.
packages/api/package.json Bump package version to 2.0.22.
packages/api/container_src/package.json Bump container package version to 2.0.22.
packages/api-client/package.json Bump package version to 2.0.22.
packages/analytics/package.json Bump package version to 2.0.22.
package.json Bump monorepo version to 2.0.22.
bun.lock Update lockfile for bumped versions/dependency resolution.
apps/landing/package.json Bump app version to 2.0.22.
apps/guides/package.json Bump app version to 2.0.22.
apps/expo/package.json Bump app version to 2.0.22.
apps/expo/lib/utils/dateUtils.ts Adjust date formatting behavior with a parsing fallback.
apps/expo/features/trips/screens/TripListScreen.tsx Use shared search content container for LargeTitleHeader search overlay.
apps/expo/features/trips/components/TripForm.tsx Update packId schema typing to allow nullable values.
apps/expo/features/packs/screens/PackListScreen.tsx Use shared search content container for LargeTitleHeader search overlay.
apps/expo/features/packs/components/SearchResults.tsx Simplify search results rendering and add list padding.
apps/expo/features/guides/screens/GuidesListScreen.tsx Refactor header/filter layout to use TabScreen via list header composition.
apps/expo/features/catalog/screens/CatalogItemsScreen.tsx Refactor header/filter/search overlay container usage and search bar ref wiring.
apps/expo/components/LargeTitleHeaderSearchContentContainer.tsx Add reusable container for consistent search overlay background/safe-area handling.
apps/expo/app/(app)/(tabs)/(home)/index.tsx Use shared search content container for dashboard search overlay.
apps/expo/app.config.ts Bump Expo app config version to 2.0.22.
apps/admin/package.json Bump app version to 2.0.22.
CLAUDE.md Update private package auth instructions and troubleshooting guidance.
.github/scripts/configure-deps.ts Refactor preinstall auth script to validate token presence and print remediation steps.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread apps/expo/features/catalog/screens/CatalogItemsScreen.tsx
Comment thread apps/expo/features/catalog/screens/CatalogItemsScreen.tsx
Comment thread .github/scripts/configure-deps.ts
Comment thread apps/expo/lib/utils/dateUtils.ts
Comment thread apps/expo/features/trips/components/TripForm.tsx
Comment thread apps/expo/features/guides/screens/GuidesListScreen.tsx
@mikib0 mikib0 merged commit 17272f6 into main Apr 20, 2026
13 of 16 checks passed
@mikib0 mikib0 deleted the release/2.0.22 branch April 20, 2026 15:12
andrew-bierman pushed a commit that referenced this pull request May 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api ci/cd dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation mobile web

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants