Skip to content

Releases: mideind/Netskrafl

Version n20260304

04 Mar 16:15
ed6376d

Choose a tag to compare

Paywall alignment with Explo

Aligns Netskrafl's subscription model with Explo:

  • 4 robots per locale — removed legacy 3-robot Icelandic list; all locales now use the same 4-robot set
  • Premium robots — Fullsterkur (level 0) and Miðlungur (level 8) require subscription; Hálfdrættingur and Amlóði remain free
  • 3-game limit for free users (down from 8), enforced server-side via count_live_games() with early termination
  • /userlist premium field — robot entries include premium: bool for frontend lock icon display
  • /initgame enforcement — returns premium_required or game_limit_reached errors for free users
  • Robot level normalization — prevents non-canonical robot IDs from creating spurious game/Elo entries
  • 14 new e2e tests covering autoplayer definitions, premium enforcement, game limits, and /userlist response

Deployment note

Deploy after netskrafl-react 3.4.0 is live in Málstaður. The frontend gracefully degrades without these backend changes, but deploying the backend first would cause silent failures for free users.

Version n20260227

27 Feb 15:28

Choose a tag to compare

Dual-backend database architecture (NDB + PostgreSQL)

Major architectural milestone: the database layer now supports both Google Cloud NDB (Datastore) and PostgreSQL, selectable at runtime via the DATABASE_BACKEND environment variable.

Highlights

  • Protocol-based database abstraction (src/db/): backend-agnostic protocols with NDB and PostgreSQL repository implementations
  • Backward-compatible: NDB remains the default backend; App Engine deployments continue to work with no configuration changes
  • skrafldb.py refactored into a thin facade that imports from skrafldb_ndb.py (original) or skrafldb_pg.py (PostgreSQL) based on DATABASE_BACKEND
  • PostgreSQL backend: SQLAlchemy ORM models, connection pooling, request-scoped session/transaction management
  • Comprehensive test suite: repository tests (tests/db/) and API end-to-end tests (tests/api_e2e/) covering both backends
  • Docker local development: docker-compose.local.yml for PostgreSQL + Redis setup
  • Credentials consolidation: moved under credentials/{PROJECT_ID}/
  • Separated requirements: requirements.txt (App Engine) and requirements-pg.txt (Docker/PostgreSQL)
  • Transition page update: simplified Málstaður transition page

Version e20250205

13 Feb 16:43

Choose a tag to compare

Added longer timeout for SecretManager initialization

Version e20240306

04 Apr 15:28
aa66695

Choose a tag to compare

User online status caching (#94)

* WIP on cron + Redis caching of connected users per locale

* Language support tweaks

* WIP on more logical locale support; fav users filtered by locale

* WIP on Redis caching of presence using sets; moved type definitions

* WIP on Redis caching of user presence data

* WIP on online user caching

* WIP but code is now consistent; needs test

* Cleanup of unused variables in firebase.py

* Added user parameter to render_template() calls; code formatting in cache.py

* Bug fixes in Redis online status handling code

* Added online user update job to cron.yaml

* Added TTL caching of online users

* Add attribution & copyright for Norwegian word frequency data

* Reduced in-memory caching of online users to 30 seconds

* Skip user online query if robots only

* Removed unused class

The mfix3 version running on GAE as of 2022-09-04

05 Sep 13:40

Choose a tag to compare

Mfix2 + patches including updated word lists and cherry picked bug fixes, plus updated copyright info and a fix to the SalesCloud wrapper div style

Netskrafl master branch before merging Explo stuff

09 Jul 17:40

Choose a tag to compare

This is a release that encompasses Netskrafl before a large merge with the Explo codebase, where code has been moved to the /src directory, the backend endpoints split into web.py and api.py, and the UI migrated to a single-page UI written in TypeScript.

Mfix release

25 Jan 16:02

Choose a tag to compare

  • Vocabulary fixes
  • Fixed code for reading games from the database. ResponseMoves were being read in such a manner that word validity at the time of reading was used as the ground truth, not the word validity as it was when the original move was made. This affected manual wordcheck games that were in progress while the vocabulary was being changed to be more restrictive - and then back again to being more permissive.

Median release

20 Jan 18:46

Choose a tag to compare

  • Backtracked change in main dictionary; it now includes the same subset of BÍN as before (basically everything except 'bibl' and plural question forms)
  • Changed the Miðlungur robot to use a separate vocabulary, similar to what Amlóði does
  • Added tests
  • Removed extraneous indexes from the RatingModel datastore entities
  • Added separate accounting of Elo points for manual-wordcheck games (not yet enabled in the UI)

Ksnid release

13 Jan 18:03

Choose a tag to compare

  • Updated dictionary from newest version of BÍN using "Kristínarsnið"
  • Removed ~130.000 rare, localized, poetic, old or misspelled word forms from dictionary
  • Moved to Python 3.8 runtime
  • Type annotations added

Vocabfix3: Python2 version synced with Python3

22 Jul 18:40

Choose a tag to compare

This is hopefully the last Python2 release, using the same vocabulary as the new Python3 release.