Repository navigation
Releases: larspohlmann/simple-feed-reader
Release list
v1.6.2
What's Changed
- ci(#1779): gate backend-static on symfony-lsp check by @larspohlmann in #1780
- fix(#1781): send anthropic-version on the model listing by @larspohlmann in #1782
- feat(#1784): show a tag's subtag count in a pill after its name by @larspohlmann in #1785
- style(#1786): shorter sidebar section heads, collapsed matches expanded by @larspohlmann in #1787
- docs: a project homepage in docs/homepage, deployed as a subfolder of lars-pohlmann.de by @larspohlmann in #1788
- feat(#1783): daily new-article statistics on the About page by @larspohlmann in #1789
- docs(homepage): lightbox, the app's favicon and brand, and a light/dark switch by @larspohlmann in #1791
- docs: refresh the screenshots; add the full-size audio player on a phone by @larspohlmann in #1792
- docs(homepage): the full-size audio player in the phone strip by @larspohlmann in #1793
- docs(homepage): an email digest section with the digest screenshots by @larspohlmann in #1794
- feat(#1790): nest tags two levels deep by @larspohlmann in #1795
- fix(#1796): stop iOS zooming the page when a text field is focused by @larspohlmann in #1797
- feat(#1798): pin the organise head above the sidebar scroller, collapse it on scroll by @larspohlmann in #1799
- fix(#1802): the sidebar subtag pill counts tags at every level below by @larspohlmann in #1803
- fix(#1801): organise feed rows keep their names at narrow widths by @larspohlmann in #1804
- fix(#1800): OPML import keeps up to three tag levels by @larspohlmann in #1806
- fix(#1805): social import locks first; tag names compare accents, not case by @larspohlmann in #1807
- Chapters for YouTube videos and podcast episodes (#1808, #1496) by @larspohlmann in #1811
Full Changelog: v1.6.1...v1.6.2
v1.6.1
What's Changed
- feat(#1762): create tags from the sidebar by @larspohlmann in #1763
- docs: Bluesky in the screenshots; every sidebar shot retaken with a connected account by @larspohlmann in #1764
- fix(#1766): the show-sidebar button takes the hidden search card's place by @larspohlmann in #1767
- Drag a tag to nest, un-nest or move it between parents (sidebar + organise) by @larspohlmann in #1768
- test(#1769): fix the two rotted Playwright specs by @larspohlmann in #1770
- feat(sidebar): pin the search card while the sidebar scrolls by @larspohlmann in #1773
- feat(#1771): tag picker as a combobox with suggestions and a touch sheet by @larspohlmann in #1774
- fix(#1775): reload quietly after organise and sidebar writes by @larspohlmann in #1776
- Mark an expanded sidebar card's head with a full-bleed band by @larspohlmann in #1778
Full Changelog: v1.6.0...v1.6.1
v1.6.0
Highlights
A redesigned sidebar. Every section of the sidebar is now its own card:
search and the main actions sit in a card at the top, your smart views, tags,
feeds and social networks follow in their own groups, and the reading settings
(text size, brightness, layout, theme) live in a footer card. Counts line up
along the right edge, feeds you have left out of saved searches are marked
with an eye badge, and on a phone the sidebar opens as a full-height sheet
with roomier rows and Move up / Move down for tags in organise mode.
Parent tags. A tag can now sit inside another tag, one level deep.
Selecting the parent lists, counts, marks read and refreshes the feeds of the
parent and of all its children; the sidebar shows the child tags nested
inside their parent, and OPML export and import keep the nesting.
What's Changed
- docs(#1752): drop the one-time GHCR visibility step by @larspohlmann in #1757
- feat(#1736): one level of parent tags by @larspohlmann in #1753
- fix(#1755): prefix the source's layout class so the row card styles stop reaching it by @larspohlmann in #1756
- feat(#1749): sidebar redesign — grouped cards (design B) by @larspohlmann in #1758
- docs: refresh the screenshots after the sidebar redesign; phones in a frame by @larspohlmann in #1759
- docs: v1.6.0 highlights by @larspohlmann in #1760
Full Changelog: v1.5.5...v1.6.0
v1.5.5
What's Changed
- feat(#1752): publish prebuilt release images to GHCR and pull them on install/update by @larspohlmann in #1754
Full Changelog: v1.5.4...v1.5.5
v1.5.4
What's Changed
- fix(#1745): pill names survive the audio actions in every entry layout by @larspohlmann in #1746
- feat(#1747): typed searches follow the selected reading layout by @larspohlmann in #1748
- fix(#1750): updates pull patched base images before rebuilding by @larspohlmann in #1751
Full Changelog: v1.5.3...v1.5.4
v1.5.3
What's Changed
- Exclude feeds and social networks from saved searches by @larspohlmann in #1743
Full Changelog: v1.5.2...v1.5.3
v1.5.2
What's Changed
- fix(#1731): an opened post shows the like its network reports by @larspohlmann in #1732
- test(#1733): brightness e2e expects the #1691 dark media factor by @larspohlmann in #1734
- feat(#1735): Tags and Feeds headers open a combined list with a count by @larspohlmann in #1738
- feat(#1737): show Substack comments in the article view by @larspohlmann in #1739
- feat(#1740): jump to the in-app comments from the article header, with their count by @larspohlmann in #1741
Full Changelog: v1.5.1...v1.5.2
v1.5.1
What's Changed
- fix(#1715): recognise the labrador bot challenge; always offer Retry in the reader fallback by @larspohlmann in #1717
- fix(#1716): the share menu opens the action sheet on coarse pointers by @larspohlmann in #1721
- fix(#1720): the thumb card's meta row spans the card by @larspohlmann in #1722
- fix(#1718): show the list's wait overlay while a search is being saved by @larspohlmann in #1719
- fix(#1723): a subtle keyboard-only focus ring by @larspohlmann in #1724
- Open comment link cards in the reader; one signed reader endpoint (#1725) by @larspohlmann in #1726
- refactor(#1728): generic names for the frontend's signed-URL reader layer by @larspohlmann in #1729
- fix(#1727): a timeline post with replies is queued for its self-thread by @larspohlmann in #1730
Full Changelog: v1.5.0...v1.5.1
v1.5.0
Highlights
Bluesky and Mastodon, built in. Connect your accounts in Settings → Social
Media and manage what you follow from the reader: your home timeline, lists,
custom feeds and the people you follow, with your lists kept in sync
automatically. Posts show their images, videos, quotes and self-reply threads,
along with live like counts and the replies underneath, and a thumbs up goes
straight back to the network.
What's Changed
- feat(#1497): github repository, youtube playlist and video links subscribe to their feeds by @larspohlmann in #1498
- feat(#1500): the page title leads with the count by @larspohlmann in #1501
- feat(#1495): title-less posts get a derived title and read as posts by @larspohlmann in #1503
- feat(#1499): Bluesky posts show their embeds from the public AppView by @larspohlmann in #1504
- feat(#1505): play feed videos inline on iPhone by @larspohlmann in #1506
- feat(#1508): replace a video the browser cannot play with a link to the original page by @larspohlmann in #1509
- fix(#1507): a page video yields when the body already plays one by @larspohlmann in #1510
- feat(#1502): link cards for the links a post shares by @larspohlmann in #1511
- fix(#1518): run the magazine page budget on the settled kinds by @larspohlmann in #1519
- perf(#1512): a link card's head read stops once the page's head has ended by @larspohlmann in #1520
- refactor(#1513): opening an entry writes nothing by @larspohlmann in #1521
- feat(#1522): bsky-style media card for image, video and Short posts by @larspohlmann in #1523
- feat(#1525): quoted social-media posts get a link card by @larspohlmann in #1526
- fix(#1527): every link a post shares ends with a card by @larspohlmann in #1528
- feat(#1524): link and media cards for shared entries from any feed by @larspohlmann in #1529
- fix(#1524): read a page head up to 1 MB so a YouTube link gets its card by @larspohlmann in #1530
- fix(#1517): a settled entry never takes a pending answer again by @larspohlmann in #1531
- fix(#1516): a link-card placeholder stops pulsing once the poll gives up by @larspohlmann in #1532
- feat(#1514): link cards drained in the background, one fetch per completion call by @larspohlmann in #1534
- feat(#1533): a fediverse remote-profile link subscribes the account's home feed by @larspohlmann in #1535
- refactor(#1552): declare the entry row shape once by @larspohlmann in #1564
- refactor(#1551): the server declares what a completion may change, the client takes all of it by @larspohlmann in #1565
- refactor(#1539): one target() replaces the embed providers' matches/normalize/poster/label by @larspohlmann in #1566
- refactor(#1538): youtube url rules get one home, the entry json ships a short's player url by @larspohlmann in #1567
- refactor(#1544): one shared character clip and html escape in text support by @larspohlmann in #1568
- refactor(#1543): one namespaced-child api, one home for feed namespaces by @larspohlmann in #1569
- refactor(#1542): one enclosure reader and one mime-type mapping by @larspohlmann in #1570
- refactor(#1537): one guarded redirect path, a budget that counts hops by @larspohlmann in #1571
- refactor(#1536): split the head read out of HtmlPageFetcher by @larspohlmann in #1573
- refactor(#1572): rename FaviconFetcher to GuardedImageDownloader by @larspohlmann in #1574
- refactor(#1540): a reader service decides whether an entry has a page to read by @larspohlmann in #1575
- refactor(#1541): carry one headline value from parser to entity by @larspohlmann in #1576
- refactor(#1548): module seams for share, link card and bluesky; one owner for a post's provisional link by @larspohlmann in #1577
- refactor(#1546): one url link text rule for own prose and shared links by @larspohlmann in #1578
- refactor(#1547): drop share_url and take the share out of EntryLocation by @larspohlmann in #1579
- refactor(#1545): split ShareLinkCards into a queue runner and an entry card writer by @larspohlmann in #1580
- refactor(#1549): enrichment indexes what it changes; PostEnricher stops signalling failure with null by @larspohlmann in #1581
- refactor(#1550): one enrichment pass replaces the four EntryListRow loaders by @larspohlmann in #1582
- refactor(#1561): the backend owns the reader-output version by @larspohlmann in #1583
- refactor(#1554): one shared EntryDto builder for the specs by @larspohlmann in #1584
- refactor(#1563): EntryBodyService cancels superseded fetches instead of keeping three staleness guards by @larspohlmann in #1585
- refactor(#1553): one home for the open entry, so completions and state patches are written once by @larspohlmann in #1586
- refactor(#1557): share for the pinned blocks, post only for titleDerived, one entry-text module by @larspohlmann in #1587
- refactor(#1556): pin share blocks once; the slot ladder knows only template kinds by @larspohlmann in #1588
- refactor(#1555): one owner for the magazine card shell by @larspohlmann in #1589
- refactor(#1562): pin the decorator hand-offs in one spec, one host-fixture helper by @larspohlmann in #1590
- refactor(#1560): reading scope takes its trailing parts as one ordered list by @larspohlmann in #1591
- refactor(#1559): move the article-body DOM wiring into a provided ArticleBody by @larspohlmann in #1592
- refactor(#1558): reader media gets one home, HLS a host-owned lifetime by @larspohlmann in #1593
- fix(#1594): YouTube Shorts play inline in the list on iPhone by @larspohlmann in #1595
- feat(#1597): connect Bluesky and Mastodon accounts (Settings → Social Media) by @larspohlmann in #1601
- Social accounts: import picker for followed Bluesky/Mastodon accounts (#1598) by @larspohlmann in #1603
- fix(#1602): raise the phpunit memory limit to 1G by @larspohlmann in #1605
- feat(#1599): private Bluesky and Mastodon feeds by @larspohlmann in #1604
- Rename the social import button to "Select feeds…" by @larspohlmann in #1617
- Keep a disabled app-button inert and looking off by @larspohlmann in #1618
- Never collapse an aggregated social feed into a magazine group by @larspohlmann in #1619
- fix(#1289): triple the entry list's bottom tail past the back-to-top button by @larspohlmann in #1620
- chore: turn off Claude attribution in commits, PRs and comments by @larspohlmann in #1621
- feat(#1611): social import dialog with tabs and a state filter by @larspohlmann in #1622
- Skeleton on panels, themed checkboxes, paged import rows by @larspohlmann in #1628
- feat(#1600): thumbs up sent to the post's origin by @larspohlmann in #1627
- Persist a feed's social network instead of classifying i...
v1.4.1
What's Changed
- feat(#1477): stop asking the profile prompt for topics to avoid by @larspohlmann in #1478
- Cinema mode for landscape videos by @larspohlmann in #1480
- feat(#1481): embed shape comes from the backend providers by @larspohlmann in #1483
- refactor(#1484): a core-element object holds each dialect's namespace by @larspohlmann in #1485
- refactor(#1482): one rule owns the article's tail padding by @larspohlmann in #1486
- fix(#1487): enclosure and category reads stay in the dialect namespace by @larspohlmann in #1488
- fix(#1489): rss channels are core children of the root by @larspohlmann in #1490
- fix(#1492): RSS 1.0 root detection checks the RDF namespace by @larspohlmann in #1493
- fix(#1491): RSS items are entries only where the spec puts them by @larspohlmann in #1494
Full Changelog: v1.4.0...v1.4.1