Mert
68f52818ae
feat(server): separate face clustering job ( #5598 )
...
* separate facial clustering job
* update api
* fixed some tests
* invert clustering
* hdbscan
* update api
* remove commented code
* wip dbscan
* cleanup
removed cluster endpoint
remove commented code
* fixes
updated tests
minor fixes and formatting
fixed queuing
refinements
* scale search range based on library size
* defer non-core faces
* optimizations
removed unused query option
* assign faces individually for correctness
fixed unit tests
remove unused method
* don't select face embedding
update sql
linting
fixed ml typing
* updated job mock
* paginate people query
* select face embeddings because typeorm
* fix setting face detection concurrency
* update sql
formatting
linting
* simplify logic
remove unused imports
* more specific delete signature
* more accurate typing for face stubs
* add migration
formatting
* chore: better typing
* don't select embedding by default
remove unused import
* updated sql
* use normal try/catch
* stricter concurrency typing and enforcement
* update api
* update job concurrency panel to show disabled queues
formatting
* check jobId in queueAll
fix tests
* remove outdated comment
* better facial recognition icon
* wording
wording
formatting
* fixed tests
* fix
* formatting & sql
* try to fix sql check
* more detailed description
* update sql
* formatting
* wording
* update `minFaces` description
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-01-18 00:08:48 -05:00
martin
f0b328fb6b
feat(server, web): smart merge ( #5796 )
...
* pr feedback
* fix: tests
* update assets statistics
* pr feedback
* pr feedback
* fix: linter
* pr feedback
* fix: don't limit the smart merge
* pr feedback
* fix: server code
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-01-18 01:52:11 +00:00
martin
c317feaf93
feat(web): force delete with shift key ( #6239 )
...
* feat: force delete with shift key
* fix: types import
* pr feedback
* fix: permanently delete assets
* fix: format
* fix: remove unused variable
* change info title
* simplify
* fix: rename function name
* pr feedback
* simplify
* pr feedback
* add toggle in the user settings
* fix: trash settings, input label, and wording
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-01-17 19:18:04 +00:00
Alexander Welsing
702e91145a
Move 'Add' button on album user invite to the same row as 'To' List ( #6447 )
...
Move 'Add' button on album user invite to the same row as 'To' List in order to prevent the button getting hidden by a scrollbar
2024-01-17 14:43:41 +00:00
renovate[bot]
6457436d91
chore(deps): update web ( #6413 )
2024-01-15 19:51:10 -05:00
Alex
d096caccac
chore(web): quota enhancement ( #6371 )
...
* chore(web): quota enhancement
* show quota in user table
* update quota for single user ioption
* Add a note how to set unlimited storage
* fixed deletion doesn't update quota
* refactor relation
* fixed test
* re-refactor
* update sql
* fix e2e test
* Update server/src/domain/user/user.service.ts
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
* revert e2e test
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-01-15 09:04:29 -06:00
Daniel Dietzler
5e2aec3892
fix(web): quota usage view ( #6358 )
2024-01-13 14:14:24 -06:00
Alex
bd5ae9f31e
fix(web): wrap long word in description ( #6351 )
2024-01-12 19:45:17 -05:00
cfitzw
deb1f970a8
feat(server, web): quotas ( #4471 )
...
* feat: quotas
* chore: open api
* chore: update status box and upload error message
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-01-12 19:43:36 -05:00
Russell Tan
19e9908ee2
fix(web): show description in shared links ( #4249 )
...
* chore: rebase
* fix: re-size issue
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-01-12 20:27:34 +00:00
bo0tzz
d12a361992
fix(web): OAuth settings nits ( #6330 )
...
* fix(web): Correct oauth documentation link
* fix(web): Quotes instead of backticks
2024-01-12 18:42:59 +00:00
Daniel Dietzler
a4f49d197e
refactor(web): admin settings ( #6177 )
...
* refactor admin settings
* use slots to render buttons in simplified template settings
* remove more boilerplate by looping over components
* fix: onboarding
* fix: reset/reset to default
* remove lodash since it is unecessary
* chore: standardize padding and margins
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-01-12 12:44:11 -05:00
Jason Rasmussen
2439c5ab57
refactor: open api ( #6334 )
2024-01-12 07:36:27 -05:00
Jason Rasmussen
08fcce9e90
fix(web): copy shared link ( #6309 )
2024-01-10 04:10:06 +00:00
martin
e5786b200a
fix(web): large description on detail-panel ( #6305 )
2024-01-09 22:52:12 -05:00
Alex
8d1287ef15
fix(web): logout and clear user store when using back button on the change password form ( #6288 )
2024-01-09 09:32:23 -06:00
Daniel Dietzler
8d0a619e81
fix(web): handle trailing slash in external domain ( #6253 )
2024-01-08 23:06:02 -06:00
martin
29b204de57
fix(web): grid on people page ( #5640 )
...
* fix: grid on people page
* pr feedback
* wait before width is set
* fix: animation
* fix: use grid instead
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-01-08 22:04:38 -05:00
Alex The Bot
df59b2099f
Version v1.92.1
2024-01-08 15:24:38 +00:00
Alex The Bot
319ddfda53
Version v1.92.0
2024-01-08 05:19:11 +00:00
martin
84e60ea155
feat(web): auto switch theme ( #6176 )
...
* move from app.html to user-page-layout.svelte
* fix: use layout.svelte
* simplify
* fix: map style don't change
* fix: auto switch theme map
* use constants
* simplify
* rename
* rename settign
* fix: remove
* pr feedback
* fix: tests
* fix: migration
* fix: migration
* pr feedback
* simplify
* simplify
* pr feedback
* fix: merge
* chore: set insetad of toggle on click
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-01-07 00:15:25 +00:00
martin
2cc5149d0b
feat(web): previous button for on-boarding steps ( #6178 )
...
* feat: previous on the onboarding
* fix: storage full screen
* feat: transition
* use svelte files for svg
* fix: use icon component
* fix: additional check
* styling'
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-01-06 20:01:24 +00:00
martin
4f6f79a392
feat(web): go back on the onboarding ( #6171 )
...
* feat: go back on the onboarding
* fix: state
* rename variable
2024-01-04 11:20:19 -06:00
Alex
18f59f78e3
feat(web): onboarding ( #6066 )
...
* feat(web): onboarding
* feat: openapi
* feat: modulization
* feat: page advancing
* Animation
* Add storage templaete settings
* sql
* more style
* Theme
* information and styling
* hide/show table
* Styling
* Update user property
* fix test
* fix test:
* fix e2e
* test
* Update web/src/lib/components/onboarding-page/onboarding-hello.svelte
Co-authored-by: bo0tzz <git@bo0tzz.me>
* naming
* use System Metadata
* better return type
* onboarding using server metadata
* revert previous changes in user entity
* sql
* test web
* fix test server
* server/web test
* more test
* consolidate color theme change logic
* consolidate save button to storage template
* merge main
* fix web
---------
Co-authored-by: bo0tzz <git@bo0tzz.me>
2024-01-04 05:28:32 +00:00
Jason Rasmussen
f8d64be13c
feat(server)!: move welcome message to settings ( #6157 )
...
* feat(server): move welcome message to settings
* chore: open api
2024-01-04 05:00:17 +00:00
Jason Rasmussen
317adc5c28
feat(web,server): external domain setting ( #6146 )
...
* feat: external domain setting
* chore: open api
* mobile: handle serverconfig-externalDomain
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-01-03 21:54:48 -05:00
renovate[bot]
282f7803bd
fix(deps): update web ( #6152 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-03 23:02:24 +00:00
martin
c24d0e82bb
fix: use loading spinner for library spinner ( #6116 )
2024-01-01 22:10:48 -05:00
Jason Rasmussen
a7d9e25fb0
fix(web): use submit event instead of button click ( #6112 )
2024-01-01 17:45:09 -05:00
Jorge Avila
5f6d09d3da
chore(web): migrate to vitest ( #5754 )
...
* Updated vite and ts config file with vtest options and a new alias to fix the dev command error
* Updated package script and update the packages
-- this removes jest dependencies
* Added new setup file needed in vitest in order to be able to use the jest-dom matchers in tests
* Updated deprecated utilities when using faker
* Updated test files and mocks to use vitest instead of jest
* Enabled web test check in GitHub actions
* remove babel dependencies as they are no longer needed with vitest
* move the jest config files to a folder in case we need to go back to jest
* chore: remove old files
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-01-01 12:36:49 -05:00
martin
9de557916b
fix(web): cancel select all ( #6047 )
...
* fix: cancel select all
* rename var
2024-01-01 11:18:22 -05:00
Zack Pollard
2e38fa73bf
feat: storage template file move hardening ( #5917 )
...
* fix: pgvecto.rs extension breaks typeorm schema:drop command
* fix: parse postgres bigints to javascript number types when selecting data
* feat: verify file size is the same as original asset after copying file for storage template job
* feat: allow disabling of storage template job, defaults to disabled for new instances
* fix: don't allow setting concurrency for storage template migration, can cause race conditions above 1
* feat: add checksum verification when file is copied for storage template job
* fix: extract metadata for assets that aren't visible on timeline
2023-12-29 18:41:33 +00:00
dependabot[bot]
5596b3a6a5
chore(deps-dev): bump @babel/traverse from 7.23.0 to 7.23.6 in /web ( #6019 )
...
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse ) from 7.23.0 to 7.23.6.
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v7.23.6/packages/babel-traverse )
---
updated-dependencies:
- dependency-name: "@babel/traverse"
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-27 21:20:17 +00:00
RenautMestdagh
f7a78618e5
fix(web): "undefined" in error message when error at uploading ( #5973 )
2023-12-26 15:42:46 -06:00
jpsak09
a7889e5e11
feat(web): display age in months when age is 0 ( #5961 )
...
* display age in months when age is 0
* simplifying conditionals, using full word "month" over abbreviation
2023-12-25 10:38:14 -06:00
Michael Manganiello
83da1c74fc
chore(web): Use percentage sign for uploads ( #5952 )
...
Tiny change, but matches the rest of the progress indicators.
2023-12-23 21:52:35 +00:00
Alex
aaa7a613b2
fix(web): cannot open detail panel in public shared link ( #5946 )
...
* fix(web): cannot open detail panel in public shared link
* fix websocket auth message
* refactor
2023-12-23 10:07:12 -06:00
waclaw66
2790a46703
pin fix ( #5909 )
2023-12-21 09:28:45 -06:00
Mert
092a23fd7f
feat(server,ml): remove image tagging ( #5903 )
...
* remove image tagging
* updated lock
* fixed tests, improved logging
* be nice
* fixed tests
2023-12-20 20:47:56 -05:00
Jan
19d66296fe
chore(web): redirect share page redirect to base path ( #5889 )
2023-12-20 09:06:23 -06:00
martin
64176d2ff4
fix(web): multiple small issues on the web app ( #5875 )
2023-12-19 15:56:55 -06:00
martin
81af48af7b
fix(web): open image in new tab with memories on firefox ( #5847 )
...
* fix: open image in new tab with memories on firefox
* don't use z-index
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-12-19 11:01:22 -06:00
Mohamed BOUSSAID
234449f3c6
fix(server, web): Prevent the user from setting a future date of birth ( #5803 )
...
* Hide the person age if it is negative
* Add validation to prevent future birth dates
* Add comment
* Add test, Add birth date validation and update birth date modal
* Add birthDate validation in PersonService and SetBirthDateModal
* Running npm run format:fix
* Generating the migration file propoerly, and Make the birthdate form logic simpler
* Make birthDate type only string
* Adding useLocationPin back
2023-12-19 10:07:38 -06:00
waclaw66
1c69dff967
feat(web): bigger dialog box of location change ( #5862 )
2023-12-19 09:49:09 -06:00
Alex The Bot
b40859551b
Version v1.91.4
2023-12-19 03:34:19 +00:00
martin
baed16dab6
fix(web): shared link background color on dark mode ( #5846 )
2023-12-18 20:26:55 -06:00
Alex
9834693fab
fix(web): access /search throw error ( #5834 )
2023-12-18 14:42:25 -06:00
Alex
fade8b627f
chore(web): display places on a single row ( #5825 )
2023-12-18 10:34:25 -06:00
Alex
c45e8cc170
fix(web): cannot open map cluster ( #5797 )
2023-12-17 20:13:55 -06:00
Alex The Bot
08f66c2ae5
Version v1.91.3
2023-12-17 16:57:16 +00:00
Alex The Bot
a15c799ba3
Version v1.91.2
2023-12-16 23:19:58 +00:00
Daniel Dietzler
bda9fd9dfe
fix(web): settings switch state when disabled, simplify classes ( #5762 )
2023-12-16 17:17:38 -06:00
Alex
62347edf43
chore(web): improve map pin ( #5761 )
...
* chore(web): improve map pin
* zoom level
2023-12-16 20:21:13 +00:00
Daniel Dietzler
67f020380f
disable version check settings when config file is set ( #5756 )
2023-12-16 20:39:17 +01:00
Alex The Bot
0aae9696f6
Version v1.91.1
2023-12-16 17:26:51 +00:00
martin
2f95cb89c1
fix(web): use env for web folder path ( #5753 )
...
* fix: use env for web folder path
* feat: use constant
* fix: use join
* update docs
* fix: icon
2023-12-16 11:15:30 -06:00
Mert
cb1201e690
chore(web): update job dashboard ( #5745 )
...
* rename clip encoding to smart search
* update job subtitles
* update api
* update smart search job title and subtitle
* fix `getJobName`
* change smart search icon
* formatting
* wording
* update reference to clip
* formatting
* update reference to Encode CLIP
2023-12-16 10:50:46 -06:00
Daniel Dietzler
a2deba4734
fix(web): never ungroup map markers. ever. ( #5730 )
2023-12-16 10:49:58 -06:00
Alex
ae2608e31d
fix(web): cannot save exclusion pattern ( #5738 )
...
* fix(web): Ccannot save exclusive pattern
* remove console log
2023-12-16 10:48:49 -06:00
Mert
d8756f3897
fix(web): searching places ( #5746 )
2023-12-16 10:48:27 -06:00
Alex The Bot
e9a8daa924
Version v1.91.0
2023-12-15 15:22:37 +00:00
Alex
c2cda5f3b0
fix(web): map thumbnail stretch ( #5721 )
2023-12-15 09:17:28 -06:00
martin
4c5397d7e6
feat(web): add types to dispatcher ( #5700 )
...
* feat: add types to dispatcher
* fix: create album name
* pr feedback
* pr feedback
* pr feedback
* fix: api key name
* remove newSharedAlbum
* pr feedback
* fix: api key creation
* on:close
* fix: owner
* fix: onclose
* remove unused code
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-12-14 20:54:21 -06:00
martin
502495883d
fix(web): log out ( #5706 )
...
* fix: logging out
* fix: websocket
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-12-15 02:29:05 +00:00
Jason Rasmussen
9768931275
feat(web,server)!: runtime log level ( #5672 )
...
* feat: change log level at runtime
* chore: open api
* chore: prefer env over runtime
* chore: remove default env value
2023-12-14 16:55:40 +00:00
martin
f2270ad757
fix(web): user management responsive design ( #5698 )
...
* fix: user management tailwind
* use top instead of inset-y-0
* add types to createEventDispatcher
2023-12-14 10:55:15 -06:00
Po-Ru, Lin
8e39d389b5
feat: lazy loading on album/sharing/search ( #5696 )
...
* feat(frontend): Lazy loading on album
* feat(frontend): Lazy loading on search & sharing
Issue #5418
2023-12-14 10:48:29 -06:00
waclaw66
3a2e9b6298
feat(web): increase map max zoom ( #5693 )
...
* increate max zoom
* increase max zoom on mobile
2023-12-14 08:40:56 -05:00
martin
f13dce7d0d
fix: warning when building web ( #5680 )
2023-12-13 12:02:26 -05:00
Jan
e5e6fcc46d
#5519 shared page redirect to host ( #5678 )
...
* #5519 shared page redirect to host
* #5519 file formatting
2023-12-13 16:15:39 +00:00
martin
523d01068f
fix(web): no icon with firefox ( #5679 )
...
* fix: no icon with firefox
* remove FaviconHeader.svelte
2023-12-13 11:04:06 -05:00
martin
7a9a9473d1
fix: prevent loop on search ( #5664 )
2023-12-12 16:55:18 -06:00
martin
c602eaea4a
feat(web): automatically update user info ( #5647 )
...
* use svelte store
* fix: websocket error when not authenticated
* more routes
2023-12-12 10:35:28 -06:00
Jason Rasmussen
cbca69841a
refactor(server): immich file responses ( #5641 )
...
* refactor(server): immich file response
* chore: open api
* chore: tests
* chore: fix logger import
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-12-12 08:58:25 -06:00
martin
fba9e784fb
feat: use <a> tag for albums in list view ( #5645 )
...
* fix: multiple improvements
* pr feedback
* optimize
2023-12-11 20:35:57 -06:00
Jason Rasmussen
ed4358741e
feat(web): re-add open graph tags for public share links ( #5635 )
...
* feat: re-add open graph tags for public share links
* fix: undefined in html
* chore: tests
2023-12-11 13:37:47 -06:00
Alex
a426ea8fbc
fix(web): remove always on delay badge ( #5574 )
2023-12-08 18:19:42 -06:00
Jason Rasmussen
1e99ba8167
feat: use pgvecto.rs ( #3605 )
2023-12-08 11:15:46 -05:00
Alex The Bot
429ad28810
Version v1.90.2
2023-12-08 14:23:04 +00:00
martin
7b3465621f
fix(web): don't limit merge face selector to 10 people ( #5551 )
...
* fix: don't limit merge face selector to 10 people
* fix: don't use class to hide people in detail-panel
* fix: map faces and person in asset response
2023-12-08 08:21:29 -06:00
Alex The Bot
d2fbbe790b
Version v1.90.1
2023-12-08 04:20:27 +00:00
martin
bc65bbfcc4
fix(web): create face from video ( #5544 )
...
* fix: create face from video
* fix: remove comment
* fix: inaccurate bounding boxes
2023-12-07 22:18:33 -06:00
Alex
e4b24b6e04
fix(web): cannot edit bulk metadata ( #5543 )
2023-12-07 17:21:51 -06:00
martin
866aaf00ff
fix(web): name truncation on detail panel ( #5542 )
2023-12-07 22:04:59 +00:00
Alex The Bot
c174f0e871
Version v1.90.0
2023-12-07 18:32:45 +00:00
martin
8736c77f7a
fix(web): align all edit buttons and not correctly rounded buttons on detail-panel ( #5524 )
...
* fix: align all pencils
* fix: format
2023-12-06 20:03:28 -06:00
renovate[bot]
2814de4420
chore(deps): update dependency vite to v4.5.1 [security] ( #5513 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-05 22:14:39 -05:00
martin
024fe1141b
fix(web): background when re-assigning faces ( #5512 )
2023-12-05 23:05:22 +00:00
Alex
84c5b08c25
feat(web): UI/UX improvement for date time edit form ( #5505 )
2023-12-05 14:16:37 -05:00
renovate[bot]
7e8488694d
chore(deps): update web ( #5502 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-05 11:20:07 -06:00
martin
7702560b12
feat(web): re-assign person faces (2) ( #4949 )
...
* feat: unassign person faces
* multiple improvements
* chore: regenerate api
* feat: improve face interactions in photos
* fix: tests
* fix: tests
* optimize
* fix: wrong assignment on complex-multiple re-assignments
* fix: thumbnails with large photos
* fix: complex reassign
* fix: don't send people with faces
* fix: person thumbnail generation
* chore: regenerate api
* add tess
* feat: face box even when zoomed
* fix: change feature photo
* feat: make the blue icon hoverable
* chore: regenerate api
* feat: use websocket
* fix: loading spinner when clicking on the done button
* fix: use the svelte way
* fix: tests
* simplify
* fix: unused vars
* fix: remove unused code
* fix: add migration
* chore: regenerate api
* ci: add unit tests
* chore: regenerate api
* feat: if a new person is created for a face and the server takes more than 15 seconds to generate the person thumbnail, don't wait for it
* reorganize
* chore: regenerate api
* feat: global edit
* pr feedback
* pr feedback
* simplify
* revert test
* fix: face generation
* fix: tests
* fix: face generation
* fix merge
* feat: search names in unmerge face selector modal
* fix: merge face selector
* simplify feature photo generation
* fix: change endpoint
* pr feedback
* chore: fix merge
* chore: fix merge
* fix: tests
* fix: edit & hide buttons
* fix: tests
* feat: show if person is hidden
* feat: rename face to person
* feat: split in new panel
* copy-paste-error
* pr feedback
* fix: feature photo
* do not leak faces
* fix: unmerge modal
* fix: merge modal event
* feat(server): remove duplicates
* fix: title for image thumbnails
* fix: disable side panel when there's no face until next PR
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-12-05 09:43:15 -06:00
Clement Ong
982183600d
feat(web): clear failed jobs ( #5423 )
...
* add clear failed jobs button
* refactor: clean up code
* chore: open api
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2023-12-05 02:07:20 +00:00
Dan Taylor
933c24ea6f
fix(web): delete modal z-index ( #5416 )
...
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2023-12-05 01:32:33 +00:00
Jason Rasmussen
05e9697dff
fix(web): runtime issue ( #5493 )
2023-12-04 20:29:35 -05:00
Jason Rasmussen
22d79850f6
refactor(web): asset viewer actions ( #5488 )
2023-12-04 19:18:28 -05:00
martin
6111bf157e
fix(web): stick action bar on search ( #5459 )
2023-12-04 10:24:19 -06:00
martin
2195730fa6
fix(web): keep url query parameters when swapping people ( #5468 )
2023-12-04 10:23:14 -06:00
waclaw66
1dc832d392
fix(web): new album title fix ( #5467 )
...
* new album title fix
* Naming
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-12-04 16:22:31 +00:00
Alex
36ba48b8ae
chore(web): toggle hide face in context menu ( #5440 )
2023-12-02 09:23:11 -06:00
Dan Taylor
6673f1eb24
fix(web): status box rendering ( #5410 )
...
* fix(web): status box rendering
* Syntax improvement for api import
Co-authored-by: martin <74269598+martabal@users.noreply.github.com>
---------
Co-authored-by: Daniel Taylor <daniel.k.taylor1@gmail.com>
Co-authored-by: martin <74269598+martabal@users.noreply.github.com>
2023-12-01 20:26:48 -06:00