github-actions[bot]
a59d15b15a
chore(backend): release 1.2.0
...
# [thingport-backend-v1.2.0](https://github.com/TautvydasDerzinskas/Thingport/compare/thingport-backend-v1.1.0...thingport-backend-v1.2.0 ) (2026-10-21)
### Bug Fixes
* address card preview review comments ([678c480 ](https://github.com/TautvydasDerzinskas/Thingport/commit/678c4802d74c16aee75f3f62ebee51cebd8f7037 ))
* announce each version once, and don't flash old notes on reopen ([58eb011 ](https://github.com/TautvydasDerzinskas/Thingport/commit/58eb01179346dd12d78ae8a23e4c27e3e255e681 ))
* check an imported model's description once its import is done ([6555875 ](https://github.com/TautvydasDerzinskas/Thingport/commit/6555875e29f7cfafc4b1a2db897a7cc59db626ff ))
* count only MakerWorld profiles with an id before taking the raw files ([8affbbb ](https://github.com/TautvydasDerzinskas/Thingport/commit/8affbbb6c3de73b9bafb505d4e8877832378c436 ))
* count suffixed renames, roll back failed theme saves, keep reset dialog open on error ([1a44b87 ](https://github.com/TautvydasDerzinskas/Thingport/commit/1a44b87cdc875fa92d23976eff44e48bb5dc727b ))
* guard tag rewrites against concurrent edits, pluralise merge count, fix lt wording ([ef14f54 ](https://github.com/TautvydasDerzinskas/Thingport/commit/ef14f54221160dc416b8553f36aaab59d2dd7d47 ))
* harden mesh check against bad indices and tidy review follow-ups ([8b4653e ](https://github.com/TautvydasDerzinskas/Thingport/commit/8b4653e415588b6cda7cae434052e4703f3abf7a ))
* keep non-ASCII names readable in zip downloads ([060be2f ](https://github.com/TautvydasDerzinskas/Thingport/commit/060be2f6920140dc005149b60f957accdd6831ac ))
* keep skipped releases with curated notes, and show a failed copy ([60ee06b ](https://github.com/TautvydasDerzinskas/Thingport/commit/60ee06ba438e266f545972870fc6c959b29cf05f ))
* leave room for a reasoning model's thinking in the AI token budget ([5dc6ff6 ](https://github.com/TautvydasDerzinskas/Thingport/commit/5dc6ff67a3166fbe6aec2034c594d7b22262a9c2 ))
* list a nested pictures folder's files as its own model's ([67bea14 ](https://github.com/TautvydasDerzinskas/Thingport/commit/67bea149a92803472d30d5e1e4f64b77427b3071 ))
* **mcp:** rank list_tags by use and let it narrow, instead of every tag at once ([04e9719 ](https://github.com/TautvydasDerzinskas/Thingport/commit/04e97197d7ede73743c6692ad1317e437dfaa69b ))
* retry a dashboard row's render when its url changes ([401cc38 ](https://github.com/TautvydasDerzinskas/Thingport/commit/401cc38461a9650b430998cf02aea4a11fdc34f7 ))
* touch only a model's own pictures, check picture files once, drop plate folders for other files ([ecc551e ](https://github.com/TautvydasDerzinskas/Thingport/commit/ecc551ef2771e0d35be57face89547a3a5a54c23 ))
### Features
* add render colour, graphite accent and hover slideshow toggle ([926c5d3 ](https://github.com/TautvydasDerzinskas/Thingport/commit/926c5d345b9e52479cf083230fa9bc7839b97ca6 ))
* admin MCP access, token permissions dialog, and review fixes ([dec1b0d ](https://github.com/TautvydasDerzinskas/Thingport/commit/dec1b0dbe3f8566a77bc981017ed29a0bbbc3703 ))
* **backend:** MCP endpoint at /api/mcp, with tools chosen per API token ([8567f19 ](https://github.com/TautvydasDerzinskas/Thingport/commit/8567f195c07254b48710fc7fd9f6679a25b2555f ))
* **backend:** MCP tools that import models and file them into collections ([a36a996 ](https://github.com/TautvydasDerzinskas/Thingport/commit/a36a99639a1537d098f58e0555bf6af9da167550 ))
* check models for print problems when they are opened ([f913710 ](https://github.com/TautvydasDerzinskas/Thingport/commit/f913710cc4d1ad045b818b7fbff4d0a2cdeab9c3 ))
* import MakerWorld models that have only raw files ([437d85b ](https://github.com/TautvydasDerzinskas/Thingport/commit/437d85be146d8a8c8fd04f7a626fc46605389a54 ))
* keep a model's pictures and supporting files beside its model files ([0d505b7 ](https://github.com/TautvydasDerzinskas/Thingport/commit/0d505b716a4cc496db0b3e5edcbf138bf5594da7 ))
* let a release update without notifying users ([aab83df ](https://github.com/TautvydasDerzinskas/Thingport/commit/aab83df8861a1898d41a0c66c31a99069228d5e0 ))
* let users choose what their API token can read over the REST API ([88949d9 ](https://github.com/TautvydasDerzinskas/Thingport/commit/88949d9d8c8ab5ec575429d9bd6a8a4816acfaac ))
* let users pick an accent color ([d26f730 ](https://github.com/TautvydasDerzinskas/Thingport/commit/d26f730bee0ec65597c68f97c0b05f327e673653 ))
* reset categories to the starter tree, previewing what changes ([f8424dc ](https://github.com/TautvydasDerzinskas/Thingport/commit/f8424dcb2306c0bf2c3f4c4aa15f596594020ae6 ))
* show what's new after an update ([aebc0ac ](https://github.com/TautvydasDerzinskas/Thingport/commit/aebc0ac97eddc75dfbb666a22efd6407070f810b ))
* sort, bulk actions and merge for collections and tags ([a0dbba8 ](https://github.com/TautvydasDerzinskas/Thingport/commit/a0dbba80587d771eb37950c195e61f77b3a83c74 ))
* tint generated model renders with the accent ([908ae80 ](https://github.com/TautvydasDerzinskas/Thingport/commit/908ae80b5b6db48c645ab2be44b6e0a102447e0e ))
### Performance Improvements
* **backend:** load a listing's files for the returned page only ([0da5db6 ](https://github.com/TautvydasDerzinskas/Thingport/commit/0da5db6536f11a6af03e8b05923204f47aaab0f9 ))
2026-10-21 20:23:38 +00:00
Rui Valim
8567f195c0
feat(backend): MCP endpoint at /api/mcp, with tools chosen per API token
...
An AI assistant connects over Streamable HTTP (stateless) with the user's
API token and gets read-only tools: search_models, list_models,
get_model, list_collections, get_collection, list_tags,
list_categories, get_author and library_stats. Each runs as the token's
user through the same services as the REST API.
Every MCP message is a POST, which requireAuth refuses to an API token,
so /api/mcp checks the token itself and is mounted before the routers
that apply requireAuth to every path. The token stays read-only over
REST; over MCP it only reaches the tools its user ticked, stored per
token in User.apiTokenMcpTools. Existing tokens get the read-only tools;
a tool that writes would be off for every token until its user turns it
on.
get_model reads through printOutById rather than GET /print/:id, so an
assistant looking a model up doesn't count as a view or land in
Browsing History.
2026-10-20 14:23:37 -03:00
github-actions[bot]
999179a7f9
chore(backend): release 1.1.0
...
# [thingport-backend-v1.1.0](https://github.com/TautvydasDerzinskas/Thingport/compare/thingport-backend-v1.0.2...thingport-backend-v1.1.0 ) (2026-10-20)
### Bug Fixes
* add validation and improve error handling in sync operations ([7c3c7ec ](https://github.com/TautvydasDerzinskas/Thingport/commit/7c3c7ec90298672150219ea18c44ac37bc40280c ))
* correct category updates and improve NexPrint error handling ([1cf2903 ](https://github.com/TautvydasDerzinskas/Thingport/commit/1cf2903b8efd9e13f71b50e4e768f7930c1382eb ))
* detect Cults3D clearance cookie in Cloudflare partitions ([2f66ed6 ](https://github.com/TautvydasDerzinskas/Thingport/commit/2f66ed682b1bc61b0a6c456db23aedbc15193eb1 ))
* handle malformed tokens, add refresh concurrency control, and improve list URL validation ([44f4bf2 ](https://github.com/TautvydasDerzinskas/Thingport/commit/44f4bf26354675ce41ee0c7e2684d3fe9384e70f ))
* Makerworld profile thumbnails being all the same ([c6c8161 ](https://github.com/TautvydasDerzinskas/Thingport/commit/c6c8161a74dceca83d0827fec00735763ce76428 ))
* models with images should use them as thumbnails ([cf0653b ](https://github.com/TautvydasDerzinskas/Thingport/commit/cf0653b005e9339a8cd0f200a7ef4a7e6f028f75 ))
* page a Thangs collection to the end without a total ([68a1481 ](https://github.com/TautvydasDerzinskas/Thingport/commit/68a14817079d8cc3bd275cfe4badf7bc16084194 ))
* **printService:** restore file on failed plate database update ([03fdd83 ](https://github.com/TautvydasDerzinskas/Thingport/commit/03fdd836a5889e9f06deea8d2311d69cae27efa1 ))
* tell print profiles apart by name and picture on every provider ([f34a488 ](https://github.com/TautvydasDerzinskas/Thingport/commit/f34a488fb21b69b50e8170105f5933f70cf46f01 ))
### Features
* add Cults3D provider ([930b9b4 ](https://github.com/TautvydasDerzinskas/Thingport/commit/930b9b48dba5c2375d4fccf2e59ced2965e87711 ))
* add MyMiniFactory as a provider ([a7a9190 ](https://github.com/TautvydasDerzinskas/Thingport/commit/a7a91902a0f43d47741e8cb52c1ec294f143fadb ))
* add Thangs provider ([2591714 ](https://github.com/TautvydasDerzinskas/Thingport/commit/2591714c0cd44b086c0cb3c94d11e99c8262fe81 ))
* enable Creality Cloud provider ([772b1ac ](https://github.com/TautvydasDerzinskas/Thingport/commit/772b1acfef609796015b51db186012e717124bc5 ))
* enable NextPrint provider ([4037151 ](https://github.com/TautvydasDerzinskas/Thingport/commit/4037151e4aaa6a744469b52ef60f999b343e085a ))
* multi-select models in grids with bulk actions ([fe5dbec ](https://github.com/TautvydasDerzinskas/Thingport/commit/fe5dbecdc5a76ab43eec39a5dd432626a9eaf2f6 )), closes [#91 ](https://github.com/TautvydasDerzinskas/Thingport/issues/91 )
* pick mapped provider categories by name ([87db3f0 ](https://github.com/TautvydasDerzinskas/Thingport/commit/87db3f0ff0346a2811ea4b4659056e9e5928df22 ))
* preview dashboard panels as tiles and add an activity heatmap panel ([c65e712 ](https://github.com/TautvydasDerzinskas/Thingport/commit/c65e712a31c30c0c0621c440a50a4e3f256dfb42 ))
* **providers:** enable MakerOnline provider ([5bf3457 ](https://github.com/TautvydasDerzinskas/Thingport/commit/5bf3457e8c5a5448c97f12fb0ac9101137884dca ))
* **providers:** enable Snapmaker Space provider ([ac5bf25 ](https://github.com/TautvydasDerzinskas/Thingport/commit/ac5bf253c7c3a09abd0ce90e8c24539004f0f879 ))
* replace the AI Thinking toggle with a per-connection reasoning effort ([b30b0ce ](https://github.com/TautvydasDerzinskas/Thingport/commit/b30b0cefd82691d391a9144d40efbd178ffbb331 ))
2026-10-20 06:35:30 +00:00
github-actions[bot]
8b29a50e18
chore(backend): release 1.0.2
...
# [thingport-backend-v1.0.2](https://github.com/TautvydasDerzinskas/Thingport/compare/thingport-backend-v1.0.1...thingport-backend-v1.0.2 ) (2026-10-18)
### Bug Fixes
* download from Thingiverse with a Chrome TLS fingerprint ([8e6e5b2 ](https://github.com/TautvydasDerzinskas/Thingport/commit/8e6e5b2e0ee63b8d3c09bbbd3a086ad5543d2974 ))
* ensure Thingiverse gets browser agent ([40d36a4 ](https://github.com/TautvydasDerzinskas/Thingport/commit/40d36a4b20fc70133721f0ff60edf1240fa69030 ))
2026-10-18 02:50:13 +00:00
Tautvydas Derzinskas
8e6e5b2e0e
fix: download from Thingiverse with a Chrome TLS fingerprint
...
Thingiverse's Cloudflare now challenges every request whose TLS handshake
isn't a browser's, whatever the headers or cookies, so file downloads,
preview images and API calls all failed. Route all thingiverse.com
requests through impit, which impersonates Chrome.
2026-10-18 04:38:47 +02:00
github-actions[bot]
8a39a87b6c
chore(backend): release 1.0.1
...
# [thingport-backend-v1.0.1](https://github.com/TautvydasDerzinskas/Thingport/compare/thingport-backend-v1.0.0...thingport-backend-v1.0.1 ) (2026-10-17)
### Bug Fixes
* rename Thingiverse Access Token to App Token to match what it provides ([cc41076 ](https://github.com/TautvydasDerzinskas/Thingport/commit/cc4107694aa0f35a234099a1fabaa840663cd29e ))
* retry file downloads blocked by Cloudflare or rate limits ([b7c2f36 ](https://github.com/TautvydasDerzinskas/Thingport/commit/b7c2f36aced158b74072cb1f3507f4d83c58edf5 ))
2026-10-17 19:29:59 +00:00
github-actions[bot]
495e04d535
chore(backend): release 1.0.0
...
# thingport-backend-v1.0.0 (2026-10-17)
### Bug Fixes
* 3mf model preview default to proper solid ([46b8687 ](https://github.com/TautvydasDerzinskas/Thingport/commit/46b8687d1d25c7b62307340b28108fe8966fa269 ))
* adjust downloads page ([58c773b ](https://github.com/TautvydasDerzinskas/Thingport/commit/58c773b955131af5a4ae8e9c3d9ccc4255f23d8b ))
* **ai:** disable categorization when last model is deleted ([bfc3fa0 ](https://github.com/TautvydasDerzinskas/Thingport/commit/bfc3fa0d72f86eeb508031a2457c9574a4421eca ))
* **ai:** explain answers cut off by the token limit, and log AI and import runs ([#16 ](https://github.com/TautvydasDerzinskas/Thingport/issues/16 )) ([7488793 ](https://github.com/TautvydasDerzinskas/Thingport/commit/748879311acebf47929bac613cce85ba4f0dc265 ))
* **ai:** show why a recategorization failed ([5fcadfb ](https://github.com/TautvydasDerzinskas/Thingport/commit/5fcadfb179eeb8f40bb597a2826fa65f605ee256 ))
* allow replacing a model's only file in the edit dialog ([fc3f3ef ](https://github.com/TautvydasDerzinskas/Thingport/commit/fc3f3efd48b9e926549773610e9d218780a28f21 ))
* big collection import printables ([8cb97bd ](https://github.com/TautvydasDerzinskas/Thingport/commit/8cb97bd315a7a4a53c1879432679cdeb6f42bf71 ))
* correct multi-part 3MF previews and stop risky in-browser fallback ([65236c5 ](https://github.com/TautvydasDerzinskas/Thingport/commit/65236c5803b0624eced5fea069cd9594abeeeade ))
* count queued links as models and let imported images replace 3D renders ([dd4d259 ](https://github.com/TautvydasDerzinskas/Thingport/commit/dd4d2592eae358357f71be13ac305d7219381d30 ))
* couple ux improvements ([030b155 ](https://github.com/TautvydasDerzinskas/Thingport/commit/030b1553e170b75c46766ee285dad21f0608e957 ))
* decode UTF-8 filenames delivered in the Latin-1 Content-Disposition header ([#3 ](https://github.com/TautvydasDerzinskas/Thingport/issues/3 )) ([b732992 ](https://github.com/TautvydasDerzinskas/Thingport/commit/b73299222a3c086d6663bc2c59a7b7f0902ac755 ))
* derive the 3D preview memory budget from available memory ([5685514 ](https://github.com/TautvydasDerzinskas/Thingport/commit/5685514da632c4aa407d8e79d5f0ffddac479815 ))
* distinguish Thingiverse rate limits from auth errors and add AI run logging ([c5e5ab4 ](https://github.com/TautvydasDerzinskas/Thingport/commit/c5e5ab460e336e2b4eb071f8928d77b96cc36ea4 ))
* **extension:** check a MakerWorld collection against the library in one call ([44c687b ](https://github.com/TautvydasDerzinskas/Thingport/commit/44c687b3ae7ba96a7246ece73d79212733cfd449 ))
* file upload file name utf8 issues ([6d34243 ](https://github.com/TautvydasDerzinskas/Thingport/commit/6d34243b89fe5f4e08f1fe9cc1fcb784d55d447d ))
* import issues ([0d1efdb ](https://github.com/TautvydasDerzinskas/Thingport/commit/0d1efdba02149f00ac3d0aca279cbe35e7b1e97e ))
* importing models due preview generation uses all resources ([355833c ](https://github.com/TautvydasDerzinskas/Thingport/commit/355833ca240865bf89684c4cb4bf05eb4648ddc6 ))
* **import:** limit manual CAPTCHA cooloff lifts to one per 5 minutes, require value on captcha keys ([bf083bc ](https://github.com/TautvydasDerzinskas/Thingport/commit/bf083bcb26d2d49cafdc270523a210a15ad918da ))
* **import:** stop flagging models that mention robots as a MakerWorld CAPTCHA, and let a manual retry try again ([#18 ](https://github.com/TautvydasDerzinskas/Thingport/issues/18 )) ([d70dcfe ](https://github.com/TautvydasDerzinskas/Thingport/commit/d70dcfeac2c788686728598c6d3c61b9f4cce369 ))
* improve bookmarks ui ([01f8812 ](https://github.com/TautvydasDerzinskas/Thingport/commit/01f8812cef9abf45824038d735eed6d9b2d9f731 ))
* include MakerWorld gallery images when importing from the model page ([e87eb39 ](https://github.com/TautvydasDerzinskas/Thingport/commit/e87eb39ab6aa0cb8f8ea465c0407f0ae8c71b6e0 ))
* make link-authors test deterministic ([9ada95b ](https://github.com/TautvydasDerzinskas/Thingport/commit/9ada95b0a23fc949de3a57f413f423edddfd587a ))
* make storage template collection and creator tokens reflect real data ([32710f2 ](https://github.com/TautvydasDerzinskas/Thingport/commit/32710f25e7b1011b9dc85bbbb67d403f6381a14a ))
* make sure authors are removed when no models assigned to them ([55f5aaa ](https://github.com/TautvydasDerzinskas/Thingport/commit/55f5aaa4a0473e23f87933f2347e7ef1bd75bb45 ))
* maker world importing ([476895f ](https://github.com/TautvydasDerzinskas/Thingport/commit/476895f72f2d5327b1b193d8bfb7eddb4bb3c38e ))
* MakerWorld author to print linking ([60eb0b9 ](https://github.com/TautvydasDerzinskas/Thingport/commit/60eb0b90feb2fefb1296a07a792ca0965a1e39ba ))
* Makerworld import issues + allowing import different profiles ([303ab91 ](https://github.com/TautvydasDerzinskas/Thingport/commit/303ab918ea9b1f2d6866baf89f11b601364a1a36 ))
* minor adjustments in regards of import redirects and authors ([f187b9f ](https://github.com/TautvydasDerzinskas/Thingport/commit/f187b9f25ec2cadf12ca03430c601ec0077b27bc ))
* minor fixes along admin ([75de79c ](https://github.com/TautvydasDerzinskas/Thingport/commit/75de79c4bcf6cc30bd79739bc8ff729718088244 ))
* minor fixes in UI ([f93bfc7 ](https://github.com/TautvydasDerzinskas/Thingport/commit/f93bfc7db4de24d07d03d30cfa51d988a87f76da ))
* more than 11 models printables import ([27948c0 ](https://github.com/TautvydasDerzinskas/Thingport/commit/27948c01eef2202d851098f82972194c67f47d63 ))
* move preview generation to own separate thread ([ba08d30 ](https://github.com/TautvydasDerzinskas/Thingport/commit/ba08d30e1ee5685c67260886d4edb87e82332e1d ))
* profile menu chips ([f903abc ](https://github.com/TautvydasDerzinskas/Thingport/commit/f903abcd293b77adce74f0d786b6fa462ff4ef3b ))
* show a proper error message when MakerWorld cookie fails due flareSolverr ([a81765e ](https://github.com/TautvydasDerzinskas/Thingport/commit/a81765e1caff377ef442d3202ecebb6b566ebf92 ))
* skip a stale MakerWorld defaultInstanceId when picking the print profile ([#15 ](https://github.com/TautvydasDerzinskas/Thingport/issues/15 )) ([d5ae809 ](https://github.com/TautvydasDerzinskas/Thingport/commit/d5ae80951cf69a9a4db118eee4f68d332f0af17a )), closes [#14 ](https://github.com/TautvydasDerzinskas/Thingport/issues/14 )
* update Makerworld import logic ([3bc4f9c ](https://github.com/TautvydasDerzinskas/Thingport/commit/3bc4f9c96dfe0b07de83d3fbff113efb3d14a2a1 ))
* various small UI issues ([8ba368e ](https://github.com/TautvydasDerzinskas/Thingport/commit/8ba368e209c7d56e4ee48e5bf042e777f19d5b0a ))
### Features
* ability to link multiple AIs ([56f173a ](https://github.com/TautvydasDerzinskas/Thingport/commit/56f173a20b574014f5a29c6c8bbcc38f71c3dda8 ))
* accept MakerWorld page data sent with an extension import ([616a8b8 ](https://github.com/TautvydasDerzinskas/Thingport/commit/616a8b82c3657727b80da1fa924f35a32ca46d38 ))
* add ability to enable catpcha ([6a6a87e ](https://github.com/TautvydasDerzinskas/Thingport/commit/6a6a87e38d8a8b65edf137171dfb6ff15dde3976 ))
* add admin job to refetch all user descriptions ([0cc27c9 ](https://github.com/TautvydasDerzinskas/Thingport/commit/0cc27c9eb618154c477dac5bd9cb1361eb7d291c ))
* add Anycubic Slicer Next, Elegoo Slicer and Snapmaker Orca slicer options ([9dd3e69 ](https://github.com/TautvydasDerzinskas/Thingport/commit/9dd3e693e09efadb958b7ed31713310aad99f9c8 ))
* add author hover popover preview card ([864ec1c ](https://github.com/TautvydasDerzinskas/Thingport/commit/864ec1cacdcf85a2f49a3ac64054178739ee36c5 ))
* add author linking admin trigger ([2a3434f ](https://github.com/TautvydasDerzinskas/Thingport/commit/2a3434f126a92eb44e4ee633394146e8942f2a9a ))
* add author page ([45b6bac ](https://github.com/TautvydasDerzinskas/Thingport/commit/45b6bac574c69e376f982c18c71f7a3306176cd0 ))
* add captcha options for changing password and email ([21f91d6 ](https://github.com/TautvydasDerzinskas/Thingport/commit/21f91d62758e894488a18663adecc998f1a207a6 ))
* add collections ([b5568d3 ](https://github.com/TautvydasDerzinskas/Thingport/commit/b5568d35e61734f18504ddf697a8a78bf5521da6 ))
* add consume folder support ([e22f579 ](https://github.com/TautvydasDerzinskas/Thingport/commit/e22f57903f3c3f564e92a085eef99c4877127723 ))
* add first version of search ([83e0beb ](https://github.com/TautvydasDerzinskas/Thingport/commit/83e0bebf45836017c3181b7ded881153b7e84451 ))
* add flaresolverr ([d8c2ef2 ](https://github.com/TautvydasDerzinskas/Thingport/commit/d8c2ef20ffe226df89c2a5bc64124d73aa5c17ec ))
* add proper auth ([be45bac ](https://github.com/TautvydasDerzinskas/Thingport/commit/be45bacbea7e313253c4cccc0a3dc633ad3b2876 ))
* add rich text formatting toolbar to model descriptions ([d49d7c9 ](https://github.com/TautvydasDerzinskas/Thingport/commit/d49d7c99196633d85b7ae3d375edd5f45e919829 ))
* add sanitized bambu 3mf open option ([0d8cd62 ](https://github.com/TautvydasDerzinskas/Thingport/commit/0d8cd62fa7837875591cad5bd58bd968bd7862e1 ))
* add setting to customize dashboard model thumbnail appearance ([163d73f ](https://github.com/TautvydasDerzinskas/Thingport/commit/163d73f2a79b6e1a5c3721b996aef7c8310c93bf ))
* add sorting and ect ([312c6be ](https://github.com/TautvydasDerzinskas/Thingport/commit/312c6be706ec3f49356f71cb933bc78d0d64b71e ))
* add tags route ([6990c2f ](https://github.com/TautvydasDerzinskas/Thingport/commit/6990c2ff9f200ebd27c4deaafd47e0c3867b849c ))
* add to collections modals ([1d8443e ](https://github.com/TautvydasDerzinskas/Thingport/commit/1d8443e069a3bce13692f1d64cd071f8c6edf46c ))
* add users activity page ([6533781 ](https://github.com/TautvydasDerzinskas/Thingport/commit/6533781a2141e720e953089a5fd55c2ddc5c4685 ))
* admin panel remake ([2bce5a2 ](https://github.com/TautvydasDerzinskas/Thingport/commit/2bce5a20497e8523f9d73fba83e30c3cb2f1917f ))
* admin sidebar change and system health check view ([#48 ](https://github.com/TautvydasDerzinskas/Thingport/issues/48 )) ([92161f8 ](https://github.com/TautvydasDerzinskas/Thingport/commit/92161f8cf801ea57ac229cf91e07190417e7b216 ))
* administration settings remake + OIDC support ([#49 ](https://github.com/TautvydasDerzinskas/Thingport/issues/49 )) ([9a22386 ](https://github.com/TautvydasDerzinskas/Thingport/commit/9a2238691d8b079adf7bfb4becebc9cf01cb6cad ))
* **admin:** manage user roles and delete users, with an instance owner ([9d41c4d ](https://github.com/TautvydasDerzinskas/Thingport/commit/9d41c4dee3333677b964d2d0baede8ce45d5aa45 ))
* AI features split, categorisation UX updates ([e542cc4 ](https://github.com/TautvydasDerzinskas/Thingport/commit/e542cc4473cb57ad5281b06d15518e10ade8f843 ))
* **ai:** accept the provider base URL with or without /v1 ([29c54ba ](https://github.com/TautvydasDerzinskas/Thingport/commit/29c54bac117077e9ee2dabed068baf6dfb56386b ))
* **AI:** add improved descriptions ([97f17e4 ](https://github.com/TautvydasDerzinskas/Thingport/commit/97f17e4fa35aa03db4ce8ac17b8419100efc333c ))
* allow bookmarking collections ([4f40803 ](https://github.com/TautvydasDerzinskas/Thingport/commit/4f408031b43d97e7040df21ddbbf259bfce65456 ))
* allow disabling registrations + invitation system ([91ffbf5 ](https://github.com/TautvydasDerzinskas/Thingport/commit/91ffbf5441dec0bedde4fd901c1bdca18a2b7267 ))
* allow downloading collection and tag models in bulk ([d3c651c ](https://github.com/TautvydasDerzinskas/Thingport/commit/d3c651c05d2fa0e16f55546189cd5965997fd216 ))
* allow import thingiverse likes & collections ([ac32d03 ](https://github.com/TautvydasDerzinskas/Thingport/commit/ac32d03071d139ec4a8bdaed0017686cd68d700f ))
* allow multiple meta category ids ([8450885 ](https://github.com/TautvydasDerzinskas/Thingport/commit/8450885ea19df6e505c6b3d5c0f3f061c462b09a ))
* allow open in Cura slicer ([e84fbca ](https://github.com/TautvydasDerzinskas/Thingport/commit/e84fbca5f9bfc2040c86cb07ffe421c75bffd212 ))
* allow toggling off author previews per user ([711ece0 ](https://github.com/TautvydasDerzinskas/Thingport/commit/711ece0f62bff1c93f951024f5f98bac582e7dd2 ))
* anable complex model simplification ([7464583 ](https://github.com/TautvydasDerzinskas/Thingport/commit/746458378052fa228465261cceca1a71dea58c34 ))
* **api-tokens:** add per-user API tokens with generation and revocation ([469641d ](https://github.com/TautvydasDerzinskas/Thingport/commit/469641de181b76bf463357548fa314b777ab1f4d ))
* **auth:** add password reset flow ([3a05fae ](https://github.com/TautvydasDerzinskas/Thingport/commit/3a05fae555d3a553196487930f636ade4f9348e8 ))
* author linking and other minor author changes ([589a5f4 ](https://github.com/TautvydasDerzinskas/Thingport/commit/589a5f464abdd675afe1ef8f63fe2ed843823043 ))
* browse private collections functionality ([b619084 ](https://github.com/TautvydasDerzinskas/Thingport/commit/b619084be7ed060d02cd6ba473a196e7ba0859de ))
* bulk feature changes ([7d18539 ](https://github.com/TautvydasDerzinskas/Thingport/commit/7d185395a355f327472652a054ba4a6a01800ba6 ))
* **categories:** add toggle between categories and folders ([33400fa ](https://github.com/TautvydasDerzinskas/Thingport/commit/33400fa12803e1e7588a13fb200061b916062b80 ))
* **categories:** allow moving subcategories between parent categories ([172270f ](https://github.com/TautvydasDerzinskas/Thingport/commit/172270fce81f4f713b295bde33e3bd853fcbc582 ))
* **categories:** allow unlimited depth of categories ([04f3106 ](https://github.com/TautvydasDerzinskas/Thingport/commit/04f3106ce84f94c92a08b42fa2546c4e050c1f98 ))
* categorize models with an OpenAI-compatible AI provider ([#11 ](https://github.com/TautvydasDerzinskas/Thingport/issues/11 )) ([708a938 ](https://github.com/TautvydasDerzinskas/Thingport/commit/708a93822a40a69249232f52de8296006c33b7ae ))
* chrome estensions Thingport grab ([7d53efb ](https://github.com/TautvydasDerzinskas/Thingport/commit/7d53efb785469248b7d3be20fbf5af499a062090 ))
* collection impoort ([031cdf3 ](https://github.com/TautvydasDerzinskas/Thingport/commit/031cdf39902e212e24e0cb74d3cdbb8e7450a3a6 ))
* collection import pt2 ([f04ca0c ](https://github.com/TautvydasDerzinskas/Thingport/commit/f04ca0c8b80bbc995084309c463896ffc32c7997 ))
* **collection-sync:** allow syncing collections with provider collections ([ef9152d ](https://github.com/TautvydasDerzinskas/Thingport/commit/ef9152df6cd0edee4fff8355434c9e2e09f73731 )), closes [#10 ](https://github.com/TautvydasDerzinskas/Thingport/issues/10 )
* **collections:** add many models to a collection in one call ([acfa844 ](https://github.com/TautvydasDerzinskas/Thingport/commit/acfa844ebe62ee635941a2a6d499083cf4856d47 ))
* **collections:** turn sync on from Thingport, picking the provider's collection ([1131700 ](https://github.com/TautvydasDerzinskas/Thingport/commit/1131700ec5eb53801a85c842143717c66696d8d8 ))
* dashboard implementation ([cf5c8a9 ](https://github.com/TautvydasDerzinskas/Thingport/commit/cf5c8a958462bb0193379966696aa11935d72d1b ))
* **dashboard:** add clock, weather, and featured-model widgets ([c71154a ](https://github.com/TautvydasDerzinskas/Thingport/commit/c71154a83eb897122488a7c619cf38732eb4be44 ))
* **dashboard:** make dashboard panes toggleable ([3d1c851 ](https://github.com/TautvydasDerzinskas/Thingport/commit/3d1c851ad7baa007f883499d310c438f97c2b264 ))
* default categories for new users ([cefc27f ](https://github.com/TautvydasDerzinskas/Thingport/commit/cefc27f23fd25e9693bcdc0f43b3e1b9c11f646c ))
* edit model functionality ([37ac318 ](https://github.com/TautvydasDerzinskas/Thingport/commit/37ac318e40dff826d6081657cb59e4f3c30a4b5e ))
* enable back flaresolverr ([ead9751 ](https://github.com/TautvydasDerzinskas/Thingport/commit/ead97510d4f4b39109e74f8921bc2b1fceb4dca3 ))
* extend dashboard settings with layouts ([2813237 ](https://github.com/TautvydasDerzinskas/Thingport/commit/2813237e037c9559b2d4beb161afffed5628c4b0 ))
* **extension:** improve loading messaging + make queue admin-only ([67a31cc ](https://github.com/TautvydasDerzinskas/Thingport/commit/67a31cc94052fda9faf1daf831b6fbf5ce7b53e9 ))
* **flaresolverr:** make URL configurable in admin settings ([5fa6c40 ](https://github.com/TautvydasDerzinskas/Thingport/commit/5fa6c403247e497c0dece4e8e3e1d28d1e25b484 ))
* handle download limit error gracefully ([fd7c26a ](https://github.com/TautvydasDerzinskas/Thingport/commit/fd7c26a760b82142b8be74634f1461e2007d5ab1 ))
* import all designer or all MakerWorld print profiles of a model ([101aa03 ](https://github.com/TautvydasDerzinskas/Thingport/commit/101aa03f9c7526287847afd60d8733dfb0125db5 ))
* import author details from makerworld ([b16c27b ](https://github.com/TautvydasDerzinskas/Thingport/commit/b16c27bc1e4f107598824814a406043478ec609f ))
* improve model details page ([d5db3d3 ](https://github.com/TautvydasDerzinskas/Thingport/commit/d5db3d3b18ca7844f4b2abda687b78757d8c0302 ))
* improve model details page ([05fae4c ](https://github.com/TautvydasDerzinskas/Thingport/commit/05fae4c93fe9e466d3443f2a909df8c9298b7ee0 ))
* increase MakerWorld pacing ([fa75ae1 ](https://github.com/TautvydasDerzinskas/Thingport/commit/fa75ae1219334c98c675665ae5010d7c93cf176c ))
* initial commit ([a8fef7d ](https://github.com/TautvydasDerzinskas/Thingport/commit/a8fef7d4913d1096beaabc4cd78b9c3a6b7d3c86 ))
* link import queue with an admin page and send-to-queue in the extension, plus update from source ([#6 ](https://github.com/TautvydasDerzinskas/Thingport/issues/6 )) ([96da36a ](https://github.com/TautvydasDerzinskas/Thingport/commit/96da36ae7999ab5c91bf076a727922a0dbdad0ec ))
* make print count be more interactive ([8e4f7dd ](https://github.com/TautvydasDerzinskas/Thingport/commit/8e4f7ddf47de719b4da95753e1741e97f5de353c ))
* make sure thingiverse token is verified ([9d07db9 ](https://github.com/TautvydasDerzinskas/Thingport/commit/9d07db9dc9c9cc3ef468ebdac96b9e2affe3132e ))
* make ttl configurable in admin ([6c66e7b ](https://github.com/TautvydasDerzinskas/Thingport/commit/6c66e7b615e4ebb8d18feea00330636b533fdad7 ))
* **notifications:** reinvent notifications ([1408b09 ](https://github.com/TautvydasDerzinskas/Thingport/commit/1408b09c5989499b38ee0effd1b7c29661a233a5 ))
* pause guided MakerWorld imports on a CAPTCHA, and fix localized and long collection imports ([627a442 ](https://github.com/TautvydasDerzinskas/Thingport/commit/627a442d53a709f41e42bc508af7305aca5578a1 ))
* printables importing ([47a0ddd ](https://github.com/TautvydasDerzinskas/Thingport/commit/47a0dddf9337e2624505bc2acf3be5e6e9b1033a ))
* rebrand from PrintStash to Thingport ([56de86d ](https://github.com/TautvydasDerzinskas/Thingport/commit/56de86d5b5367fe593587bee73c1ca730e356ae5 ))
* **search:** add ability to load search active views ([90a9942 ](https://github.com/TautvydasDerzinskas/Thingport/commit/90a9942d1b9966bdcf0558e8d5b986af79a625bf ))
* **search:** add option to see all results ([ad27e95 ](https://github.com/TautvydasDerzinskas/Thingport/commit/ad27e950a9048a4e50ab67196fbd42d61db86f89 ))
* show available models in model input ([8718d82 ](https://github.com/TautvydasDerzinskas/Thingport/commit/8718d82ab3b4afe0565e0d0a8dddb6de540493fc ))
* show model usage in memory size ([2813d47 ](https://github.com/TautvydasDerzinskas/Thingport/commit/2813d47049817697e3c74ba0db82217c2912111d ))
* support Markdown with embedded images in model descriptions ([97f0eea ](https://github.com/TautvydasDerzinskas/Thingport/commit/97f0eea4c267612c8b78546d43129550dfac4dc8 ))
* **sync:** notify on enable, change defaults to daily and designer profiles ([9334438 ](https://github.com/TautvydasDerzinskas/Thingport/commit/9334438a521a2a5f9a39f6af4d892ac2465c02ce ))
* **sync:** pause syncs while a provider isn't connected, and hand back models blocked by it ([6993a4c ](https://github.com/TautvydasDerzinskas/Thingport/commit/6993a4c4231b9e80db9eb13c27ab97fc89e9ac01 ))
* system notifications updates, Thingport grab in System health check, node 24+ ([#52 ](https://github.com/TautvydasDerzinskas/Thingport/issues/52 )) ([358dfc1 ](https://github.com/TautvydasDerzinskas/Thingport/commit/358dfc1a03a178115642d41423f40586cd879b90 ))
* **tags:** add pagination, thumbnails, and tag deletion ([cdf0a53 ](https://github.com/TautvydasDerzinskas/Thingport/commit/cdf0a53251e1ef6d507b15735ad3cae7406b00de ))
* various major UI & UX improvements ([7b1f718 ](https://github.com/TautvydasDerzinskas/Thingport/commit/7b1f718c74485b79c9117469ff35aa4c661f6829 ))
### Performance Improvements
* **tags:** render tag mosaics on the server and size pages to the screen ([eefbde1 ](https://github.com/TautvydasDerzinskas/Thingport/commit/eefbde1bb5c64bd0860e2613a79e768a0f0e6891 ))
2026-10-17 08:57:49 +00:00
Tautvydas Derzinskas
358dfc1a03
feat: system notifications updates, Thingport grab in System health check, node 24+ ( #52 )
...
* feat: update system notifications
* feat: add Thingport grab to system health check
* ci: upgrade to Node.js 24 and centralize version management
2026-10-17 10:44:13 +02:00
Tautvydas Derzinskas
9a2238691d
feat: administration settings remake + OIDC support ( #49 )
...
* feat: expand storage usage reporting with disk breakdown
* feat: add providers admin view
* feat(storage): add background reorganization and admin browser
Adds background-driven storage reorganization for moving model files
when the storage template changes, with an admin interface to preview
changes, check impact, monitor progress, and browse the storage tree
built from plate records rather than filesystem walks.
* feat: new auth admin settings page + OIDC support
* test: fix failing test
2026-10-17 05:07:24 +02:00
Tautvydas Derzinskas
97f0eea4c2
feat: support Markdown with embedded images in model descriptions
2026-10-07 00:31:34 +02:00
Tautvydas Derzinskas
0d8cd62fa7
feat: add sanitized bambu 3mf open option
2026-09-30 08:31:16 +02:00
Tautvydas Derzinskas
e111dc27d7
chore: update licence and perform comment clean up
2026-09-28 22:34:47 +02:00
Tautvydas Derzinskas
7464583780
feat: anable complex model simplification
2026-09-28 00:09:59 +02:00
Tautvydas Derzinskas
6a6a87e38d
feat: add ability to enable catpcha
2026-09-27 19:53:39 +02:00
Tautvydas Derzinskas
063beb317e
chore: add MIT lincence
2026-09-14 08:38:22 +02:00
Tautvydas Derzinskas
01f8812cef
fix: improve bookmarks ui
2026-09-13 10:47:19 +02:00
Tautvydas Derzinskas
daac2271d8
refactor: ux and ui updates to tags
2026-09-13 10:29:29 +02:00
Tautvydas Derzinskas
56de86d5b5
feat: rebrand from PrintStash to Thingport
2026-09-10 07:08:51 +02:00
Tautvydas Derzinskas
8cb97bd315
fix: big collection import printables
2026-09-09 23:33:39 +02:00
Tautvydas Derzinskas
2bce5a2049
feat: admin panel remake
2026-09-09 10:22:34 +02:00
Tautvydas Derzinskas
51b56021c0
refactor: deal with few things
2026-09-08 16:57:27 +02:00
Tautvydas Derzinskas
be45bacbea
feat: add proper auth
2026-09-07 19:20:13 +02:00
Tautvydas Derzinskas
a8fef7d491
feat: initial commit
2026-09-07 09:12:37 +02:00