Skip to content

Update 2.3.2#45

Open
TheDayG0ne wants to merge 41 commits into
masterfrom
update-2.3.2
Open

Update 2.3.2#45
TheDayG0ne wants to merge 41 commits into
masterfrom
update-2.3.2

Conversation

@TheDayG0ne
Copy link
Copy Markdown
Member

This pull request introduces a new "Add to Favorites" feature for the schedule screen, updates project documentation standards to enforce mandatory documentation sync for all code changes, and makes minor project configuration improvements. The documentation for all agent types (Copilot, Claude, and general agents) is now much more explicit about the requirement to update docs/ for any code change. Additionally, the app version is bumped and a new dependency is added in the configuration. Below are the most important grouped changes:


Schedule Favorites Feature:

  • Added support for a "Favorites" action on the schedule screen, including new state and handler (scheduleFavoritesHandler, scheduleFavoritesAvailable) in App.js, UI button rendering, and handler wiring to the schedule component. [1] [2] [3] [4]

Documentation and Process Updates:

  • Updated AGENTS.md, COPILOT.md, and CLAUDE.md to require that any code change must include relevant updates in docs/, with explicit process steps and reporting requirements for documentation sync. [1] [2] [3] [4]

Project Configuration:

  • Bumped app version from 2.3.1 to 2.3.2 in app.json.
  • Added @react-native-community/datetimepicker to the Expo dependencies in app.json.
  • Cleaned up temporary comments from the Sentry configuration in app.json.

These changes improve both the user experience (with the new favorites feature) and the team's development workflow by enforcing up-to-date documentation and maintaining clear project configuration.

dependabot Bot and others added 24 commits February 22, 2026 14:27
Bumps [ajv](https://github.com/ajv-validator/ajv) from 6.12.6 to 6.14.0.
- [Release notes](https://github.com/ajv-validator/ajv/releases)
- [Commits](ajv-validator/ajv@v6.12.6...v6.14.0)

---
updated-dependencies:
- dependency-name: ajv
  dependency-version: 6.14.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.5.3 to 4.5.4.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](NaturalIntelligence/fast-xml-parser@v4.5.3...v4.5.4)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 4.5.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.1.2 to 3.1.5.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](isaacs/minimatch@v3.1.2...v3.1.5)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.9 to 7.5.11.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](isaacs/node-tar@v7.5.9...v7.5.11)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.11
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [undici](https://github.com/nodejs/undici) from 6.23.0 to 6.24.1.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](nodejs/undici@v6.23.0...v6.24.1)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 6.24.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Introduce attendance tracking, favorites and free-auditory search features. Added AttendanceStatsModal and FreeAuditoriesScreen components, plus attendanceStorage and favoritesStorage utilities. Integrated attendance UI and storage into ScheduleScreen (marking, stats modal) and added favorites management (add/remove/apply, favorites modal handler exposed to App). Added scheduleFavorites handler in App and wired availability state. Added settings: notification option for schedule changes and schedule format toggles for attendance tracking and free-auditories (persisted to SecureStore). NewsScreen: add local search input and robust extraction of news payloads. Bumped app version and updated package metadata.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Copilot <198982749+Copilot@users.noreply.github.com>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Co-Authored-By: ketchup <89103543+rm30303@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Expand documentation to cover new schedule features and related storage/notifications. Updates across architecture.md, data-and-storage.md, notifications-and-background.md, and screens.md introduce: favorites and attendance handling, schedule snapshots and feature flags, new storage keys (e.g. schedule_favorites, attendance_*, schedule_snapshot_*), conservative rules for schedule-change notifications (ignore cache sources, scoped snapshots, compare overlapping weekdays), UI additions (favorites modal, attendance marking, attendance stats, free-auditorium search) and new helper modules/components (favoritesStorage, attendanceStorage, AttendanceStatsModal, FreeAuditoriesScreen). Notes on risks, migration/fallback behavior, and data compatibility were also added.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Copilot <198982749+Copilot@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Regenerate package-lock.json to bump multiple transitive and direct dependency versions. Notable updates: brace-expansion (various packages to 1.1.14 / 5.0.5 / 2.1.0), lodash -> 4.18.1, node-forge -> 1.4.0, fast-xml-parser -> 5.5.12 (with path-expression-matcher -> 1.5.0 and strnum -> 2.2.3), picomatch updates, @xmldom/xmldom -> 0.8.12, yaml -> 2.8.3 (adds funding metadata), and several other minor version bumps. No source changes — only the lockfile was updated to capture patched/updated packages.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Introduce AcademicCalendarScreen and StudyProfileScreen UI components, and wire them into Settings. Add academicEventsStorage and studyProfileStorage utilities to persist events and profile settings. Enhance notesStorage with homework statuses, due dates, reminder IDs and a helper to list all homework deadlines. Update LessonNoteModal to support homework status, due date editing, quick presets and scheduling/cancelling local notifications. Extend notificationService to record and return recent schedule-change history. Also add @react-native-community/datetimepicker to package.json (lockfile updated). These changes enable event management, local reminders, homework lifecycle tracking and a basic personal study profile.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Add NativeDateField component (cross-platform picker with ISO date formatting, clearable value, theme/accent styling) and ScheduleChangesHistoryScreen (fetches schedule change history, pull-to-refresh, detailed diff rows). Upgrade attendance storage to v2 keys: include dateISO and lessonType in storage key, add normalization, preserve legacy lookup and remove legacy keys on save, provide buildAttendanceKeyV2, and require dateISO in stats aggregation. Also update FRESHMAN screen label in constants.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Copilot <198982749+Copilot@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Add support for all-day events and a new academic-events export flow.

- Add formatICSDateOnly to format DATE-only ICS fields and buildAcademicEventDescription helper.
- Write DTSTART/DTEND as VALUE=DATE when event.allDay is true in generateICSContent.
- Escape DESCRIPTION and LOCATION using escapeICSText.
- Propagate allDay flag to exportToSystemCalendar payload.
- Replace inline exportScheduleToCalendar logic with reusable exportEventsCollectionToCalendar (prompts and handles empty collections) and simplify exportScheduleToCalendar to collect+delegate.
- Add exportAcademicEventsToCalendar to convert academic event objects into all-day ICS events (generates UID, builds description, sets location) and export them. Also tweak some dialog titles and empty-error codes.

These changes let the app export single-day academic events correctly as all-day calendar entries and centralize export dialog handling.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Integrate calendar export and unified native date inputs across screens; add notification permission checks for reminders. Replaced raw date TextInput with NativeDateField in AcademicCalendarScreen and LessonNoteModal, added export button and exportAcademicEventsToCalendar handling with user-facing alerts. Added notification permission requests before scheduling reminders. Wire AcademicCalendarScreen into FreshmanScreen menu. Migrate attendance storage/lookup to a v2 key (buildAttendanceKeyV2) that includes date and lesson type: add formatLocalDateISO and getAttendanceMeta helpers, update handlers and UI lookups accordingly. Add Settings entry and screen routing for schedule changes history. Fix StudyProfileScreen to ignore attendance entries missing dateISO. Error handling and user messages included for exports and permission denials.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Co-Authored-By: Copilot <198982749+Copilot@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Introduce academic planner features and related tooling: enhance AcademicCalendarScreen with formatted display dates, upcomingCount, hero card, redesigned empty state, date badge, meta chips, delete button, and multiple style tweaks. Add developer menu actions to create/clear planner fixtures and show planner stats, wiring in academicEventsStorage and schedule change history helpers. Improve NativeDateField to parse both ISO and dd.mm.yyyy input and show a localized display value. Update docs (architecture, data-and-storage, notifications-and-background, screens) to document academic events, study profile, schedule changes history and related notification/ storage considerations.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Made editorial and formatting improvements to docs/data-and-storage.md: clarified bullet wording (schedule consumers, selected course/group, null/undefined handling), normalized checklist punctuation, renamed section "Таблица хранения", adjusted storage table phrasing for clarity, and standardized mermaid diagram indentation. These changes are cosmetic and improve readability and consistency of the data/API/cache guidance.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Copilot <198982749+Copilot@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Fix formatting and wording in docs: correct the malformed table header in data-and-storage.md, standardize headings and list punctuation in notifications-and-background.md, and normalize inline code usage for cache identifiers. Also adjust mermaid diagram indentation and spacing, clarify several list items (typos/commas), and make minor wording changes to improve readability and consistency.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Copilot <198982749+Copilot@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Extract the inline academic-event form into a new AcademicEventModal component and refactor AcademicCalendarScreen to use it. Replace the embedded inputs with a FAB to create events and an edit action per event; add edit/create flows, optimistic state resets and improved error handling. Improve reminder handling by normalizing event IDs, cancelling previous scheduled notifications when editing, and persisting notificationId when scheduling. Update styles for FAB and action icons and remove the removed inline form styles. Update docs (architecture, data-and-storage, screens) to reflect the new modal, editing capability and related storage/feature notes.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Move the AcademicCalendar add action into the filters header (remove floating FAB), add top action styles and events section wrapper, and tweak scroll padding and empty-state text. In AcademicEventModal adjust bottom safe offset for tab bar and reduce modal max/min heights. Enhance FreeAuditoriesScreen: add week selection, date hinting for weekdays, helper date utilities, and dynamic week options fetched from API. Make NewsScreen parsing more robust (return empty array for unknown payloads) and add a friendly empty-state placeholder when there are no news items. Update docs to reflect these UI/behavior changes.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Co-Authored-By: Copilot <198982749+Copilot@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Refine and clarify contributor guidelines for agents across AGENTS.md, CLAUDE.md, and COPILOT.md: standardize formatting (use code-style for filenames), improve wording/grammar, reorder and expand workflow steps, and add explicit mandatory documentation-sync requirements for any code changes (update docs/ or justify omission). No code changes — only documentation and process updates to reduce regressions and improve reviewability.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Wrap the event editor in a React Native Modal so it renders above the tab bar and handles system-level presentation. Use useSafeAreaInsets to compute a dynamic bottom inset instead of a fixed TABBAR_SAFE_OFFSET; apply it to the KeyboardAvoidingView. Expose onRequestClose, statusBarTranslucent and presentationStyle for proper behavior, and keep the component mounted while animating (modalVisible). Update docs to mention the modal is shown over the tab bar and respects safe areas.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Rework AcademicEventModal to use the system Modal as a pageSheet: remove custom backdrop/animations, KeyboardAvoidingView, safe-area insets and manual slide logic; simplify layout and styles, add StatusBar handling, and adjust input/chip/switch styling. Update related docs (architecture.md, screens.md) to reflect the new pageSheet presentation and that the modal sizing matches other screens (FreeAuditoriesScreen, AttendanceStatsModal). This cleans up modal behavior and unifies presentation across the app.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Enhance the native date field behavior and tweak styles: import Keyboard and dismiss it when opening/closing the picker, auto-fill today's date on first open if empty, and add a short timeout when toggling the iOS picker to avoid focus/keyboard issues. Adjust visual details (label top margin, dynamic font weight for set values, increased field minHeight, borderRadius and padding). Update docs/screens.md to mention the auto-fill and keyboard-safe picker behavior.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Add a PICKER_LOCALE ('ru-RU') and pass it to the iOS DateTimePicker, and set Android picker display to 'calendar'. Enhance the iOS modal with a header showing an icon and the currently selected date, and a footer with action buttons (Сегодня / Очистить / Готово). Add reusable action button styling and wire up Today and Clear behaviors. Update docs to note the new card-style iOS picker and Russian month/label localization.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Replace the horizontal week options list with a compact week selector (chevrons + "Неделя N") in FreeAuditoriesScreen. Adds minWeek/maxWeek, canGoPrevWeek/canGoNextWeek flags and a guarded changeWeek(delta) to prevent navigating outside available weeks, plus disabled styling for bounds. Also updates docs/screens.md to note the week switch now matches the Schedule section UI.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Co-Authored-By: Copilot <198982749+Copilot@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Add @react-native-community/datetimepicker to expo plugins in app.json and remove temporary inline comments. Pin the dependency to 8.4.4 in package.json (was ^9.1.0) and update package-lock.json to reflect the downgraded version and integrity/resolution entries.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Copilot AI review requested due to automatic review settings April 20, 2026 09:23
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 20, 2026

Expo Doctor Report

Date: 2026-04-20T18:30:49.535Z

Output:

Running 17 checks on your project...
17/17 checks passed. No issues detected!

This comment was automatically generated by GitHub Actions.

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 bumps the app to 2.3.2 and significantly expands schedule-related functionality (favorites, change tracking/notifications, planner-like features) while also tightening agent documentation requirements and updating project config/dependencies.

Changes:

  • Added schedule enhancements: favorites, schedule-change detection + history, attendance tracking/stats, free-auditories search, homework deadlines and reminders.
  • Introduced “academic events” (planner/calendar) storage + UI, plus calendar export improvements (all-day + escaping).
  • Updated docs/agent guidelines to require docs/ sync for any code change; bumped app version and added datetimepicker dependency.

Reviewed changes

Copilot reviewed 34 out of 35 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
utils/studyProfileStorage.js Adds AsyncStorage-backed study profile load/save with defaults.
utils/notificationService.js Adds schedule-changes snapshotting, history, and notification flow.
utils/notesStorage.js Extends notes to support homework status/due date + deadlines listing.
utils/favoritesStorage.js Adds AsyncStorage-backed favorites for schedule entities.
utils/constants.js Bumps APP_VERSION/BUILD_DATE and renames “Freshman” tab label.
utils/calendarExport.js Adds all-day ICS handling, escapes descriptions, exports academic events.
utils/attendanceStorage.js Adds AsyncStorage attendance tracking + aggregation helpers.
utils/academicEventsStorage.js Adds AsyncStorage CRUD for academic events with normalization/sorting.
package.json Bumps version; adds @react-native-community/datetimepicker.
package-lock.json Lockfile updates for version bump + new dependency.
hooks/useScheduleLogic.js Integrates schedule-change checking after schedule fetch.
docs/screens.md Documents new/expanded screen capabilities (favorites, attendance, planner, etc.).
docs/notifications-and-background.md Documents schedule-change notifications and additional reminder scenarios.
docs/data-and-storage.md Documents new AsyncStorage keys and data compatibility expectations.
docs/architecture.md Updates architecture overview with new screens/utils.
components/StudyProfileScreen.js Adds “study profile” UI (attendance, deadlines, schedule changes, goals).
components/SettingsScreen.js Adds navigation entries for academic calendar, study profile, schedule history.
components/ScheduleScreen.js Implements favorites UI/modal, attendance marking, toolbar, free-auditories modal integration, schedule-change checking.
components/ScheduleFormatModal.js Adds toggles for attendance tracking and free-auditories visibility.
components/ScheduleChangesHistoryScreen.js New screen to display schedule changes diff/history.
components/NotificationSettingsModal.js Adds a toggle for schedule-change notifications + merges defaults on load.
components/NewsScreen.js Adds local search and a “no news” empty state; adapts to varied API payload shapes.
components/NativeDateField.js Adds cross-platform native date picker field component.
components/LessonNoteModal.js Adds homework status, due date, and local deadline reminder scheduling.
components/FreshmanScreen.js Adds entry to academic calendar from the freshman/student section.
components/FreeAuditoriesScreen.js New modal screen to search free auditories by week/day/slot.
components/DeveloperMenuScreen.js Adds developer fixtures/actions for the new planner features.
components/AttendanceStatsModal.js New modal to display attendance stats and warnings.
components/AcademicEventModal.js New modal for creating/editing academic events.
components/AcademicCalendarScreen.js New academic calendar UI with filters, reminders, and export.
app.json Bumps version; adds datetimepicker plugin; cleans Sentry config comments.
COPILOT.md Enforces mandatory docs sync and refines agent workflow guidance.
CLAUDE.md Enforces mandatory docs sync and refines agent workflow guidance.
App.js Adds schedule favorites action wiring into the app header.
AGENTS.md Enforces mandatory docs sync and clarifies agent workflow/process.

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

Comment thread hooks/useScheduleLogic.js
Comment thread components/LessonNoteModal.js
Comment thread App.js
Comment thread components/ScheduleScreen.js
Comment thread utils/notesStorage.js
Comment thread utils/notesStorage.js
TheDayG0ne and others added 6 commits April 21, 2026 00:05
Use local (device) dates for day-scoped keys to avoid UTC shifts and normalize date handling across schedule logic and notes storage. Treat homeworkDueDate===null as an explicit clear while undefined keeps the existing value. Consolidate duplicated checkIsActiveFavorite function in ScheduleScreen. Change notification scheduling to only cancel previously scheduled "schedule" notifications by ID (stored under AsyncStorage key `schedule_notification_ids`) instead of cancelling all scheduled notifications; collect and persist new scheduled IDs after planning. Update docs to describe snapshot scope and notification management.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Eduard Ilin <me@edwardcode.net>
Co-Authored-By: ketchup <89103543+rm30303@users.noreply.github.com>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Update data-and-storage docs: clarify that schedule_snapshot_* keys for day mode are built using the device's local date and add schedule_notification_ids for planned class notifications. Add a "Notes and homework deadlines" section describing that lesson notes are stored under lesson_note_* in AsyncStorage and specifying homeworkDueDate behavior: undefined preserves existing value, null clears the deadline, and isOverdue is determined by the device's local date (not UTC).

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Eduard Ilin <me@edwardcode.net>
Co-Authored-By: ketchup <89103543+rm30303@users.noreply.github.com>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Introduce a new Snake mini-game component and integrate multiple achievements and developer utilities. Changes include: new components/SnakeGame (modal game with unlockable `snake_champion`), developer menu updates (mini-game launcher, API ping, AsyncStorage inspector, mass achievement unlock/test), automatic achievement triggers added across the app (`free_room_hunter`, `homework_done`, `export_master`, `offline_hero`) and calls to show achievement toasts. Also updated useScheduleLogic to unlock offline achievement on cache fallback, minor UI wiring (imports/usages) in several screens, and docs to mention the new achievements and dev tools.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: ketchup <89103543+rm30303@users.noreply.github.com>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Co-Authored-By: Copilot <198982749+Copilot@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Introduce a new "legend" theme and UI flow tied to achievement completion. Added LIQUID_GLASS.legend styling and updated SplashScreen to render an exclusive legend variant (colors, icon, headline, loader color) when legendUnlocked is true. Added hasUnlockedAllAchievements helper and getAchievementsCount usage to gate the theme: App now checks achievement status on load and prevents applying a saved 'legend' theme if not all achievements are unlocked (falls back to 'dark' and persists). AppearanceSettingsSheet now shows/hides the legend theme option, blocks selection with an alert if locked, and provides a local check for unlocked status. Propagate legendUnlocked prop to SettingsScreen and SplashScreen, and include a small UI tweak (DeveloperMenuScreen margin) plus docs and build metadata updates.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Co-Authored-By: Copilot <198982749+Copilot@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Prevent using the 'legend' accent color unless feature is unlocked: App.js now falls back to 'green' and updates SecureStore when savedAccentColor === 'legend' but allUnlocked is false. Add the 'legend' color palette to ACCENT_COLORS in utils/constants.js. Also update the splash heading text in components/SplashScreen.js from 'Легенда кампуса' to 'Легенда ИТИ ХГУ'.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Co-Authored-By: Copilot <198982749+Copilot@users.noreply.github.com>
Co-Authored-By: ketchup <89103543+rm30303@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Prevent selecting the 'legend' accent unless unlocked (global or local). Add the 'legend' option to accent choices only when unlocked and display an informational banner when the legendary accent is active. Also update docs to clarify that both theme and accent can be exclusive rewards for completing all achievements.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Roman Krivonosov <161724269+kak-rastoki@users.noreply.github.com>
Co-Authored-By: Copilot <198982749+Copilot@users.noreply.github.com>
Co-Authored-By: ketchup <89103543+rm30303@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
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

Copilot reviewed 38 out of 39 changed files in this pull request and generated 5 comments.


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

Comment thread components/ScheduleScreen.js
Comment thread utils/notificationService.js
Comment thread utils/notesStorage.js
Comment thread utils/studyProfileStorage.js
Comment thread components/NewsScreen.js
TheDayG0ne and others added 10 commits April 21, 2026 01:13
…-6.24.1

Bump undici from 6.23.0 to 6.24.1
…ml-parser-4.5.4

Bump fast-xml-parser from 4.5.3 to 4.5.4
…tch-3.1.5

Bump minimatch from 3.1.2 to 3.1.5
Update package-lock.json to reflect the devDependency spec change for @react-native-community/cli from "*" to "latest". Keeps the lockfile consistent with the updated dependency declaration; no other code changes.

Co-Authored-By: PRO100BYTE Helper <helper@pro100byte.ru>
Co-Authored-By: Copilot <198982749+Copilot@users.noreply.github.com>
Signed-off-by: Evgeniy Struchkov <thedayg0ne@internet.ru>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants