OnlyGoodMovies

Timeline
Login

Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2026-04-02
20:58
Update api url ... (Leaf check-in: eec706494b user: cristian tags: main, trunk)
20:51
Add readonly data api ... (check-in: 682efb6c88 user: cristian tags: main, trunk)
2026-04-01
23:03
Update readme ... (check-in: 8beb90ad61 user: cristian tags: main, trunk)
2026-03-07
11:21
Update URL for movie API endpoint ... (check-in: 7a4f77fdce user: noreply@github.com tags: main, trunk)
11:19
Update API URL for OnlyGoodMoviesApi ... (check-in: 78cd40a3c7 user: noreply@github.com tags: main, trunk)
2026-02-10
20:42
Add DeepWiki badge ... (check-in: 33171f4bad user: noreply@github.com tags: main, trunk)
20:39
Add medium link ... (check-in: 22653f6bd9 user: cristian.rojas@live.fr tags: main, trunk)
20:25
Add readme ... (check-in: bc965cca8f user: cristian.rojas@live.fr tags: main, trunk)
20:11
Add medium article ... (check-in: 06840b1c21 user: cristian.rojas@live.fr tags: main, trunk)
2026-01-30
01:38
implement deterministic state-based integration for MovieListComposer Replaces flaky index-based rendering assertions with a predicate-based waiting mechanism. The previous approach was susceptible to SwiftUI's render coalescence, where multiple state changes are grouped into a single body evaluation, causing index-dependent tests to fail. ... (check-in: 78ca538421 user: cristian.rojas@live.fr tags: main, trunk)
01:16
Simplify code by adding a predicated based helper so we don't fight agains the swiftui rendering system (that may decide to batch / coalesce changes thus bypassing notification) ... (check-in: d47de9fc33 user: cristian.rojas@live.fr tags: main, trunk)
00:28
Move test app to acceptannce framework file ... (check-in: ec986f806c user: cristian.rojas@live.fr tags: main, trunk)
00:27
Fix test not showing placeholder ... (check-in: bcf64d3fd1 user: cristian.rojas@live.fr tags: main, trunk)
2026-01-29
22:54
Fix body evaluation timeouts by forcing state dependency registration This change addresses a race condition where SwiftUI's render optimization (coalescing) would group rapid loader emissions into a single render, causing tests to hang while waiting for intermediate body evaluations. By casting the view to StateRegistrator and accessing registeredState inside the body property, we ensure the dependency is tracked by the framework's attribute graph. This guarantees that each state update results in a distinct, detectable notification for the test suite. ... (check-in: 444e05b54a user: cristian.rojas@live.fr tags: main, trunk)
22:37
Remove sync code (viewstorage) in favor of original Lazar's notifcation based observation & make test pass by explicitly observing the state (`_ = state` ) as that forces swiftui to notify in correct order (previously the test was failing when prefix(4) ... (check-in: dc5e1e192c user: cristian.rojas@live.fr tags: main, trunk)
22:19
Fix movies test target not compiling ... (check-in: c44e7a4dfc user: cristian.rojas@live.fr tags: main, trunk)
20:04
Rename `makeSUT` factory method to `renderSUT` to better reflect intention ... (check-in: d6c9a520de user: cristian.rojas@live.fr tags: main, trunk)
20:02
Ensure movies are streamed in order ... (check-in: 4dcfcdb40b user: cristian.rojas@live.fr tags: main, trunk)
19:33
Add sut helper ... (check-in: 017f758270 user: cristian.rojas@live.fr tags: main, trunk)
19:31
Make helper not throwable (failible through xcfail) & add helper for stream creation from sendable arrays ... (check-in: 66a846abe8 user: cristian.rojas@live.fr tags: main, trunk)
19:17
Add timeout so test fails if we don't get the expected evaluations ... (check-in: e14200178d user: cristian.rojas@live.fr tags: main, trunk)
18:34
Add if debug flag on bodyAssertion ... (check-in: 4a3c9ffd2d user: cristian.rojas@live.fr tags: main, trunk)
18:31
Ensure movies are loaded after rendering on `MovieListComposition` by adding a small mini testing framework (props to Lazar Ostatevic) ... (check-in: 1dc7e62277 user: cristian.rojas@live.fr tags: main, trunk)
2026-01-20
00:57
wip: ... (check-in: 9513f7ef7d user: cristian.rojas@live.fr tags: main, trunk)
2026-01-19
23:14
Replace regular loader with a stream so we can progressively load elements with ndjson ... (check-in: 29a5e1dbd0 user: cristian.rojas@live.fr tags: main, trunk)
21:41
Simplify config tests by returning a spy ... (check-in: fe8f7de4ef user: cristian.rojas@live.fr tags: main, trunk)
19:03
Add configuration screen ... (check-in: a2eee51131 user: cristian.rojas@live.fr tags: main, trunk)
17:35
Fix bug in production app ... (check-in: 7b71d0388f user: cristian.rojas@live.fr tags: main, trunk)
10:23
Rename file ... (check-in: be09f1f8e4 user: cristian.rojas@live.fr tags: main, trunk)
10:22
Remove defer for load stoping ... (check-in: b3dc270286 user: cristian.rojas@live.fr tags: main, trunk)
2026-01-18
12:03
Hide indicators ... (check-in: d9cbe00d25 user: cristian.rojas@live.fr tags: main, trunk)
10:03
Singularize compositons name ... (check-in: ca2701106d user: cristian.rojas@live.fr tags: main, trunk)
10:00
Move `Helpers` file to shared folder ... (check-in: ad27823cd6 user: cristian.rojas@live.fr tags: main, trunk)
09:59
Rename `Cell` to `Row` to match SwiftUI conventions ... (check-in: 3537f1f2ea user: cristian.rojas@live.fr tags: main, trunk)
03:43
refactor: rename thumbnailProvider to thumbnail Simplify the naming to follow SwiftUI's declarative style, using a noun instead of a verb for the view-building closure. ... (check-in: 83fd872e84 user: cristian.rojas@live.fr tags: main, trunk)
03:36
Simplify `MoviesListComposer` by renaming `AsyncThumbnail` generic to `Thumbnail` & remove `state` from init ... (check-in: f86a43a3f9 user: cristian.rojas@live.fr tags: main, trunk)
03:31
Rename `MoviesLogic` to `MoviesPresenter ` as it feels more acurate and standard. ... (check-in: da26fbe663 user: cristian.rojas@live.fr tags: main, trunk)
03:27
Format ... (check-in: a70f29a495 user: cristian.rojas@live.fr tags: main, trunk)
03:26
Pass config without binding to movielist as it doesn't need to mutate ite ... (check-in: 82b1c54ee0 user: cristian.rojas@live.fr tags: main, trunk)
03:23
Fix refresh destroying existent state on refresh failure (movies were being reset to empty array in order to clean placeholders) ... (check-in: 9aa11f4d94 user: cristian.rojas@live.fr tags: main, trunk)
02:54
Format - Rearrange imports alphabetically ... (check-in: 8cd526d118 user: cristian.rojas@live.fr tags: main, trunk)
02:51
Move composition preview to its own file ... (check-in: 7fc883b93a user: cristian.rojas@live.fr tags: main, trunk)
02:45
Create shared ui folder ... (check-in: f690b9ede2 user: cristian.rojas@live.fr tags: main, trunk)
02:43
Simplify movie list previews & move them to their own file ... (check-in: cc329e8cfa user: cristian.rojas@live.fr tags: main, trunk)
02:32
Rearrange files ... (check-in: a0de729d07 user: cristian.rojas@live.fr tags: main, trunk)
02:04
Reduce opacity on thumbnail loading placeholder ... (check-in: 1440c95783 user: cristian.rojas@live.fr tags: main, trunk)
01:56
Format ... (check-in: 0f7c212761 user: cristian.rojas@live.fr tags: main, trunk)
01:49
Move animation responsability to logic ... (check-in: 4380f2ea45 user: cristian.rojas@live.fr tags: main, trunk)
01:29
Move list disabling responsability to config ... (check-in: 9f8f3b5af8 user: cristian.rojas@live.fr tags: main, trunk)
01:17
Consume config from MovieList ... (check-in: 6850e2a3e6 user: cristian.rojas@live.fr tags: main, trunk)