Releases: Flowfin/jellyfin-plugin-stats
Releases · Flowfin/jellyfin-plugin-stats
Release list
0.1.1.0-stable
What's Changed
- Wait on the writer rather than on the file (#241) by @iderex in #243
- Keep a row's change moment across an import (#239) by @iderex in #244
- Count watched time in full under every reason a play carries (#242) by @iderex in #245
- Order the reason rows by watched time and fold what re-encoded them (#60) by @iderex in #246
- Record the channel a live television play was on by @iderex in #248
- Cut a wrap-up's top lists to what the account asking may still see (#54) by @iderex in #249
- Withhold a top list the way a breakdown is withheld, and group and order it as asked (#52) by @iderex in #250
- Serve the first aggregate report, to an administrator, with every choice mapped through a closed set (#55) by @iderex in #255
- Fold the members too few accounts stand behind into one group instead of withholding the breakdown (#41) by @iderex in #256
- Serve the breakdown by client and by device over a range (#59) by @iderex in #257
- Serve how much the server was used over a range, one row per day (#57) by @iderex in #258
- Measure every route and every shape over a store nobody would call small by @iderex in #260
- Fold each finished play into the day it belongs to, as it is written by @iderex in #261
- Name what a deletion means at the call that makes it, and write it down by @iderex in #262
- Rebuild the rollups from the play rows, and let a corrective deletion move them by @iderex in #264
- Serve the usage view as a page, assembled from the drawing modules by @iderex in #265
- Serve a user their own wrap-up, with a selector over the years they have by @iderex in #266
- Say under the range view which moment its delivery figures speak about by @iderex in #267
- Ask every page in the directory what it draws when it cannot ask by @iderex in #268
- Read one account's year off the days it was folded into by @iderex in #269
- Give the installing section the address a server adds (#81) by @iderex in #270
- Say on the front page what the tree actually holds (#271) by @iderex in #272
- Let one configuration produce every analysis this branch stands on by @iderex in #275
- Take the reading of the settings page that no route here could take by @iderex in #276
- Let the reading survive a server that has bound its port and is not answering by @iderex in #278
- Wait for a server that has finished starting, not one that has answered by @iderex in #280
- Ask for the first user before naming it by @iderex in #281
- Name the stored file the server actually wrote by @iderex in #282
- Refuse an analysis this branch stands on that this tree did not produce by @iderex in #283
- Give a signed-in user a page about their own figures and their own choices by @iderex in #288
- Attach the bill of materials to the release it describes by @iderex in #284
- A failed view says who holds the reason and stops passing one on by @iderex in #285
- Fold a year from the rollups and read the rows a month at a time by @iderex in #287
- Stop the page that arrived beside the reason refusal from passing one by @iderex in #292
- Draw a figure the fold could not take rather than a page that failed by @iderex in #294
- Serve one account their own figures over three windows by @iderex in #293
- Answer the server's year and name only the accounts that agreed by @iderex in #291
- Take a consent record off the account the sweep never reached by @iderex in #298
- Read what-is-stored.md against the tree it describes by @iderex in #301
- Hold the self statistics page against the answer the server sends by @iderex in #302
- Document every row the authorization matrix runs, and hold the table to them by @iderex in #304
- Read the configuration reference against the tree and repair what drifted by @iderex in #308
- Write the queue's own reason in the first person by @iderex in #310
- The two caps on the settings page bind the aggregate reports by @iderex in #316
- One visibility rule over both of an account's own top lists by @iderex in #317
- Read the reason ordering's tie with the fold's own comparison by @iderex in #318
- Anchor the premise the string-formatting dismissal rests on by @iderex in #320
- Turn off the six style rules the per-rule decision turns off by @iderex in #321
- The daily aggregates go when their own retention window says so by @iderex in #322
- A reading follows the documented install route on a fresh server by @iderex in #324
- The install route reading compares identifiers the way the server writes them by @iderex in #325
- The install route was followed on a fresh server, and the README says so by @iderex in #326
- Bind the SQLite stack at the floor each server line ships by @iderex in #339
- The em dash leaves the page comment by @iderex in #341
- A refused save leaves the running configuration as the stored file by @iderex in #344
- Declare what is shipped, and say so in every file that speaks about it by @iderex in #345
- The README a stranger reads, and the wiki that holds the rest [#333] by @iderex in #347
- Raise the version to 0.1.1.0 and read the floor on every install route by @iderex in #349
Full Changelog: 0.1.0.0-stable...0.1.1.0-stable
0.1.0.0-stable
What's Changed
- Write the version in one place and add a changelog by @iderex in #85
- Pin the shared workflow calls and deny permissions by default by @iderex in #89
- Add a greppable invariant lint and seed it with four rules by @iderex in #88
- Remove the scheduled label sync by @iderex in #87
- Point CodeQL at this repository and remove three workflows that cannot run by @iderex in #92
- Write down the headless test policy and split its rule into four by @iderex in #91
- Rename the project from Template to Stats by @iderex in #93
- Give the plugin its own identifier and catalogue metadata by @iderex in #94
- Adopt Prettier over the page assets by @iderex in #95
- Refuse a pull request that names no issue by @iderex in #96
- Package the plugin and describe it on every pull request by @iderex in #97
- Add the test project and one test that is not vacuous by @iderex in #98
- Compare the plugin identifier against the manifest in a test by @iderex in #99
- Freeze the plugin's package graph and restore against it by @iderex in #100
- Refuse an outbound client, and record what the suite has actually run on by @iderex in #101
- Build for both supported server lines by @iderex in #103
- Let a documentation change report the checks that gate it by @iderex in #104
- Record the two server lines in the changelog by @iderex in #106
- Scan the resolved dependency graph for known vulnerabilities by @iderex in #105
- Fake the server surfaces a play arrives on by @iderex in #107
- Decide the play row: the fields it keeps and the fields it refuses by @iderex in #108
- Refuse a test run that covers less than the last one did by @iderex in #109
- Subscribe to the server's session events from a hosted service by @iderex in #110
- Watched duration that survives pauses and seeks by @iderex in #111
- Delete the plugin's own data when the plugin is uninstalled by @iderex in #113
- Read a day in a zone, so a play at half past eleven lands on the right one by @iderex in #114
- Point the configuration page at this plugin by @iderex in #116
- Build against the oldest supported server of each line by @iderex in #118
- Deterministic clock and time zone in every test by @iderex in #120
- Join the events of one play together, so a play becomes one row by @iderex in #127
- Sample the transcoding state, so a row says how the play was delivered by @iderex in #128
- Let CodeQL report on documentation-only pull requests by @iderex in #132
- Say that this plugin belongs to Flowfin by @iderex in #129
- Say what the log may contain, and refuse the two shapes that break it by @iderex in #125
- Replace the template README with one for this plugin by @iderex in #117
- Refuse a page asset that carries a value the server would fill in by @iderex in #138
- Derive the support matrix from the values the build uses by @iderex in #139
- Write down that this plugin has no custom query surface by @iderex in #140
- Replace the template's example settings with the model this plugin actually has by @iderex in #141
- Version the stored configuration and move it forward on an upgrade by @iderex in #143
- Argue the CodeQL trigger in the language the rest of the repository uses by @iderex in #146
- Give the plugin somewhere to write, and version what it writes by @iderex in #147
- Refuse a statement that drops a table by @iderex in #112
- Index the plays table for the four shapes the reports read it in by @iderex in #148
- Point the CodeQL gate at the account that holds this repository by @iderex in #149
- Export the plugin's data in a plain format and read it back by @iderex in #151
- Write the configuration reference and check it against the model by @iderex in #153
- Refuse a page asset that loads from an external host by @iderex in #154
- Refuse a configuration value cached in a static field by @iderex in #155
- Add the intended-use notice by @iderex in #150
- Write a finished play from a thread of the plugin's own by @iderex in #156
- Decide whether a play is recorded in one place before the write by @iderex in #157
- Say what is inside the plugin's data folder, and keep it true by @iderex in #159
- Give the plugin a logo and point the manifest at it (#81) by @iderex in #160
- Bring the publish pipeline that requests proved (#81) by @iderex in #161
- Draw the charts with a module of this plugin's own (#62) by @iderex in #163
- Meet a store from a later build on the write path (#28) by @iderex in #164
- Clear the code scanning findings that are not cs/path-combine by @iderex in #167
- Refuse a save carrying a value this plugin does not accept by @iderex in #168
- Delete play rows past their retention window on a schedule by @iderex in #169
- Say what is stored, who can read it, and what is not there by @iderex in #170
- Refuse a test that binds a port, not only a privileged one by @iderex in #171
- Say why the reason counts are larger than the play count by @iderex in #172
- Count the four delivery figures against the plays they came from by @iderex in #173
- Write the page reading into the release process by @iderex in #175
- Move the CodeQL analysis into this tree by @iderex in #176
- Count a play once under every reason it recorded by @iderex in #178
- Say out loud that the store could not be opened by @iderex in #179
- Delete a user's play rows when the account is deleted by @iderex in #180
- Delete the rows of accounts the server no longer has by @iderex in #181
- Read back how far the store can answer for (#65) by @iderex in #182
- Measure the plan behind the oldest stored row by @iderex in #184
- Break a set of plays down by client and by device by @iderex in #185
- Count plays and watched time per day, in the zone the days were read in by @iderex in #186
- Name Flowfin as the manifest owner by @iderex in #188
- Point the workflow audit at the default branch by @iderex in #190
- Compare the task names over every task the assembly declares by @iderex in https://github.com/Flowfin/jellyfin-plugin-sta...