Repository navigation
Releases: CaioFViana/Keres
Release list
Keres v1.9.0 - Hestia
"At the heart of the biggest mountain, the flame of home protect us all. The first and the last. Its warmth shall embraces our families forever."
Keres 1.9 - Hestia
What else says warm and cosy feeling of home than a nice greetings? This is why we are introducing a new feature. Onboard.
CHANGE: SYNC ENGINE REWORKED.
- Due to constant worries with syncing algorithm, it was decided that it should be Boringly Reliable.
- That said, some changes in packaging will break old operation logs, which means older data is not compatible
- As no one is using keres (as its Beta still), it was decided that it was not worth keeping the compatibility.
- This wont change your story data at all. The worst thing that will happen is that you will be required to re-sync with server to reset personal operation logs with story, and sending a story to a server send story as is so no changes there either.
RECAP OF ABOVE: UPDATE TO 1.9.0 WHEN ALL DEVICES CONNECTED TO SERVER ARE FULLY SYNCED AND NO ISSUES SHOULD HAPPEN.
Feature: Onboarding
- "App looks nice and capable, will take me a few days to understand what it does"
- The app is complex. developing it for so long made me forget it.
- So time to code a onboard feature! not to be confused with boards.
- App will, almost once per drawer (customization has one per option), guide you on how to use its features... at least a short description.
- Settings has a toggle to disable it entirely, or reset if you feel lost.
- So if you hate this, you can opt out!
Feature: Manuscript
- Keres is the place where you make a dictionary of your story and not where you write it... that said nothing stops you from doing that anymore.
- Keres isnt a traditional manuscript editor. Instead of writing as a whole big document, which you can get better than what we could offer on google docs, word, libre office, and other dedicated apps, you write per scene. Each scene gets a separated editor for its "body". When you are done with your manuscript in the scene's bodies, you can export it as a full document like you would save pdf.
- Exports to pdf, epub, docx, txt, and .md if you so desire.
- Extra options to include events at the end, chapter/scene numbering options, CYOA styles... and some more.
Feature: Showcase upgrade
- Now you can build a document with a published story, nothing stops you from exporting it to showcase as well.
- You can publish JUST the document and/or read online
- Showcase also gained access to themes just like admin could.
- Servers can also change themselfs the server name/icon. Not everyone needs to be called "Keres" with a different url.
- Read online mode! Publishing a story to be read on the showcase itself is 100% a thing +
Feature: Location maps and boards upgrade (AGAIN)
- It's never enough, is it? Boards and location maps have a lot of good features, yet I feel it can go above.
- Added drawing to it. Polygons, arbitrary lines, regions filled to act like a kingdom's borders.
- Storytelling potential going stronger.
- Compated the whole menus into a few icons. freed more screen space while adding new features
Change: Editor Drafts.
- Boards location maps and other forms were not great with how they saved work in progress that was not finished. Left a board and came back? It restored data. Left a board and opened another one? Lost all. Not great.
- Unsaved drafts are stored on a new place inside the clients, THEY ARE NOT SYNCED. Dont expect to start on computer and go mobile without syncing it.
- Option as well to discard the current draft and restart from saved position.
- Overall, an improvement on an old system.
Change: Quick setup of scenes.
- Going from nothing to a quick mocking of scenes is not great on Keres. So an easy solution was proposed.
- On any chapter, quick scene allows you to add any amount of scenes you need at the end of it just by inserting its name.
- This hopefully solves the "slowness" that is working with Keres.
Change: Header right compacting.
- On small screens, some had up to 5 buttons on the top right. that looked horrible on mobile and smaller screens.
- So added compacting into hamburger menu if screen is small.
Change: Highlights
- Added a comment and want to see where it fits? Added!
- Not an entity per say. This is just an upgrade to comments system.
- Works on manuscript as well.
- Related, navigating to entities via mentions and global search now scrolls to it and highlights it for a second.
Change: Packs expansion.
- Now packs have additionals. extras.
- Accepts chapters, scenes, routes... everything BUT stat values themselfs and gallery (due to being heavy on sizes). even boards are added.
- New example pack to showcase it. A small 3 act structure example.
Change: Reworked graphics rendering. Skia migration.
- Boards and location maps fixed for good. rejoice.
- Removed expo-native-svg library. the SVG will be handled by Skia.
- Consequence: bigger filesize. More on android.
- It is what it is. Not happy with it but app stability is worth the many megabytes.
Change: Operation log Data storage purging.
- Offline stories have old operation logs purged. this is for storage reasons.
- Online stories keep the same 100 amount as offline + whatever isnt synced yet, so no risk of losing your progress mid translate.
- Servers do a different tecnique now to save space. Squashs. Squashs make operation logs a whole block, and that is what they deliver when client requests updates of that version.
- These were implemented in concern with big servers... and the editor feature.
Change: Fully Offline build on web.
- Wanted to try keres out but dont want to host a server or find one open? dont want to download either?
- Due to limitations like CORS, a new build was conceived. fully offline.
- It should be able to be on github pages after the branch Hestia is merged into main. So look foward to it (prob already up by the time you read this).
- Pages landing will show up with a try it online
Other changes:
- Setting screens gained a new hidden screen. Click the icon there to open it. Its a simple credits screen for the libraries we use and their links/licenses.
- Color picker was slightly reworked for simpler UI.
- Icon picker was reworked to have more icons. This was needed because of new board/location map features that include it.
- Trajectory. Like item journey but for Character to see where it went to. Shows on location maps and on character details.
- Adding a friend to a story now requires they confirm it AND they can leave on their own anytime on story settings.
- Image exporting out of SVG screens can also be PNG. Saved the default on app settings.
- And more in case I forgot...
Bugfixes:
- Route/RouteStep client handlers stored a raw string for createdAt. Now converted like every sibling.
- Favorite client handler accepted wrong-entity operations, guards added.
- Comment/Favorite/SeeAlsoRelation client handlers crashed on missing ids, guards added, matching all siblings.
- Story export was excluding scenes without a chapter. Found during pack implementation
- LocationRelation client handler crashed inserting a create its own recency check had accepted, insert now uses the same "now" fallback.
- Removed 3 provably vacuous conditions (SyncPush merge filter, waitForIdle unused default, BaseSyncEntityHandler shadowed userId check).
- Note relation missing choice
- Tier endpoints had 404 not 400
- Small socket rework so its testable.
- Favorite per user (public mode) was stressing server a lot compared to other features. Was not right.
- Server management screen could crash switching tabs fast
- All form screens have delete then save when split. padronized.
- Scene now has index on its detail screen.
- Fixed Arc not saying who you are deleting.
- Fixed arc not having an icon picker despite original plan having it on last version.
- Fixed character/location/item list not respecting arc.
- Fixed bad typing check of recovery code.
- Some colors were adjusted in light theme to be as intended.
- Creating empty named marker on location maps wasnt allowed.
- Sync engine... WAY too many finds/hardenings to list.
- Could be more I forgot.
Full Changelog: v1.8.0...v1.9.0
Keres v1.8.0 - Aion
"Locked in place by the eternal serpent, the young man exists surrounded by the zodiac. Never ending, never starting, always present, always cycling."
Keres 1.8 - Aion
Feature: Arcs
- If the story is too big, even chapter/event separation wont cut it. Keres needed a way to separate different worlds.
- When all arcs option is selected, it becomes like before.
- When a specific is selected, everything not tied to it is ignored and hidden with exceptions of World pieces as its suposed to be reused.
- This was made to support "I have three books, how do I know what is in each?"
- We recommend keeping the data tied so it loads correctly in a specific arc's mode.
- Characters are loaded via the scenes they are in which are loaded from the chapters/events they are in and such.
- Same for Item and item journey.
- Same for Location.
- So diligence is important.
Bugfixes:
- Board and location map werent survive drafts closing the app.
- This is actually a new feature but so bad that it had to be classified as bug
- Some entities werent syncing correctly. newer tests and migration of data pointed it out so hopefully never again.
- Tag relation from API to client
- Client purge on app reset had entities missing
- World rules had wrong sync handler
- And others.
- Found missing reworked components from Iris's colapsible card upgrade.
- Stat screen reorder wasnt using reorder system for syncing, poluting operation log.
- Vocabulary screen was misaligned and had no scrolling (neither did suggestions and coldinstall.)
- Coloring of some SVG canvas screens made selector pill show different font colors on top (black/white) no matter light/dark mode. each mode has it now.
- Reordering was accepting bad ids on Client service.
- Example screen and shipped packs screen had button the wrong size + made it into a component so they can share.
- Fixed how SVG maps rendered when exporting. mostly.
Code small refactoring:
- (Dev) reworked a ton of client/shared/api code to reuse more of each other, padronizing more, and organizing more. More DDD principles applied, and more test to grab mistakes about them around.
- (Dev) covered way more tests than before.
- This happens every release but the newest change required quite the coverage.
- (Dev) architecture for over size limit fixed. no file bigger than 600 lines of code.
Full Changelog: v1.7.0...v1.8.0
Keres v1.7.0 - Iris
"After the storm, a maiden with shoulder wings graces the land. If it's an angel or a bigger deity is unknown, but for this time, the prayers might be heared over the rainbow."
Keres 1.7 - Iris
Might as well be called "Cute colorful icons" update as well.
Feature: World Piece.
- World rule was just a note with extra steps. that SUCKED.
- Expansion of the whole world system.
- World became a drawer like the personalization one.
- Can actually register important stuff that had nowhere to register before.
- World now can have pieces, which fills some holes in the story model. (Names here are functionality not the name in app)
- Rules (Old system. ported and expanded. Your migrated data will end up here.)
- Bestiary (Fauna)
- Herbarium (Flora)
- Mythos (Divinities)
- People (Races, kingdoms, species detailing, and others)
- Knowledge (Information in general.)
- Other (Everything else that doesnt fit)
- You can either go on the world manager itself and add entities or on entities use them on see also. No dedicated manager for it as its not needed.
- Added support for gallery on world pieces.
Feature: Linear and branching structure parity
- Now many things were shared between them.
- Plots are enabled on branching
- Plot features as well.
- New object: Route. It saves a route someone can take in the story. Linears are simple enough. Branching can simulate them and analyse it.
- Routes can make sure an intended path is checked and explored, or can make visible to easier checks on quality/consistency.
- Use plot reader on the route to get the same view linear stories had
- Which takes us to Story Navigator.
- Story navigator is a simple, chill way to navigate your branching story, as to validate it manually and simulate the final user experience touching the story
- Its not a full engine, a distribution feature, or nothing like it.
- Story timeline/presence applied to plots on branching
- And much more. This feature was quite a change in the backend so this is why it wasnt on 1.6
- More tests are added but something might slip. Make sure to report any bugs found.
Changes: Board and Location Map.
- REWORKED THE ENTIRETY OF THEIR ENGINES. This will fix the snappings of the canvas, and avoid the crashes from 1.6 as well.
- Added editing, cloning and exclusion (i dont know how I missed that)
- Both have features to go to other board/maps.
- Location map:
- Markers added! they are isolated and can mean anything. a chest, a hidden person, and others.
- No need to be isolated. Can connect to any other node like its a location on itself.
- Teleports to other maps! When clicked and hold for like half a second and released (to avoid misclicks) it moves you to another map.
- Can also be clicked inside the node itself.
- WONT SAVE AUTOMATICALLY WHAT YOU HAD. SAVE OFTEN!
- Markers added! they are isolated and can mean anything. a chest, a hidden person, and others.
- Board:
- Resizing added for elements.
- Can add the summary or a new original custom note on the nodes.
- Can now add another boards to it!
- unlike locations, click it and select "Go to entity".
- Supports already all the new world pieces added.
Small feature: Vocabulary
- On customization tab, new simple feature.
- Vocabulary allows you to change how the system calls certain features like Chapters -> Volume and Scenes -> Pages for a comic writer.
- Allows some more customizability.
- Just like with linear and branching parity, this went all over the code. some places might have slipped
- Please report any bugs you found.
Changes:
- Backlink added. Now an entity shows who mentioned it as well
- Unlike what I was considering, doesnt seem to affect performance that much...
- Added modal for changing calender + screen to check on anchors that still exist.
- Removed Select as a component. Slightly lighter application now.
- Added icons to lists. Cutier.
- Showcase/app shows now if a pack has vocabulary
- Story settings was already too big. Broke some settings.
- Moved Story theme to Customization.
- This is also in preparation for 1.8 - (TBD name)
- Moved stat settings to customization/stats. Adequade.
- Moved the story analysis to their own screen as well.
- Many other I probably forgot. Stressfull times calls for stressfull liberties.
Bugfixes:
- Item listitem on list screen wasnt translating text NEITHER resolving owner id. Fixed.
- Gallery link was showing as downloading when it doesnt matter.
Full Changelog: v1.6.0...v1.7.0
Keres v1.6.0 - Eris
-"From the pile there was a fruit. Destined to the prettiest of them. No one knows who planted it there, but no one ever forgot what came next."_
Keres 1.6 - Eris
What a release. Shooting for the skies and seeing chaos unfold. Should this release be called Pandora then? Nah, its a chaos of my own making.
Feature: Boards
- The big feature. Let your brainstorming be free inside a corkboard like place integrated with the rest of the system.
- Have a scene you want to plan a lot? you can make a board and map it.
- want to note down the overall structure of the first act? do it.
- Support for many at the same time as well!
- Svg export include the images. GO WILD!
- Most entities of the system are included already in this version.
Feature: Location Map.
- Location relation graph that existed isnt the best. You could see what connected where but not where they were on the map.
- Put one or more images from gallery on the background and put the locations on the image that was chosen as map.
- Just like boards, support for many at the same time and svg export.
Feature: Events
- "A 300 year war happened before the first scene of the story. so... where do i write this down?"
- A new type of chapter. Events. Those render with a hourglass icon, not tied to the narrative like the linear cascate that it was before.
- Events are tied to normal chapters/scenes, but at their start.
- As events are their own chapters, you can have scenes in them. making the event timeline calculable as well.
- Your war example had its phases as scenes? you can note all down and see them on the timeline now!
- Viewable in the timeline viewer.
- Along with Events, a few changes were made to other mechanics to allow even more freedom writing.
- Scenes now dont require a location nor a chapter, being optionals. Scenes without chapters are on a "chapterless" like chapter at the end.
- If no scene belongs to a chapter, works out like the old Scene drawer list.
Feature: Packs
- One of the big ones. Packs work like Templates for story
- Not forced to use, not automatically applied, but an option if you want to kickstart your story with all the things you need.
- Suggestions and lists (and optionally the ones in use too)
- Custom attributes
- Tags
- Stat system
- You make/update a pack from a story you already have, so no need for new screens and filling information all over again
- Showcase screen now supports exporting the packs as well! Share with your friends!
- Its less rigid than stories themselfs. No password system.
- Its either public for everyone or private for server members only.
- Want to share to a friend? it should be a tiny file so not the end of the world.
- Keres comes with 3 packs now.
- Novel craft (the need, the want...)
- Comic (page count for chapters, how many cells a scene has...)
- Tabletop Stats (few default stats as to give a headstart. nothing too much.)
Feature: Custom calendar
- Its not 100% free as a true calendar is REALLY complex.
- Keres stores time in scenes as scenes per scenes, and so is Event.
- This means it anchors your time from the start if you want the calendar.
- "Scene 1 is this day/time" and every subsequent story can fall into the calendar.
- Multiple callendars allowed per story as well. so "The Dwarf Calendar" and "The Elf Calendar" is allowed
- Can co-exist with gregorian calendar (our real world one) if its the default on story.
Feature: Auto Links
- Mentioned "Alice" on "Marina"s page and wants Alice to be linked on marina's page automatically? You can now.
- Settings has a new option called Auto Link. Per story too as not every project is nice to have.
- Reference needs to be identical to how its saved. "The Gunner" wont show up as the gunner or The gunner. Needs to be exact.
- Made like that to avoid false positives. At least try to.
- Not a replacement of see also!
- Backlinks is sadly quite costly on the device for now. So this will have to do for now.
Changes, QoL:
- Gallery acceptes links and documents now.
- Story Analysis can make be more relax. Mentioned a location that you are unsure but screen keeps nagging that is unused? Not anymore.
- Mentioned above. Scenes doesnt enforce location and chapters anymore.
- Added icons to side drawer
- Condensed Stat, Suggestions, Calendar (new) and custom attributes into a drawer on their own. less cluttering on the sides.
- Character relation and location relation were not able to see just a few entities at once. Added support for it
- Accessing the side drawer wasnt easy when inside a stack, hurting user experience navigating. So drawer icon shows almost always now + added side gesture to pull drawer.
Bug fixes 1.6
- .Svg screens are better to control, specially new ones from 1.5
- One of them could crash on lower memory devices on non compact mode. That button can be a menace I see.
- Multiselect pill wasnt able to scroll if they had too many entities on web builds AND wasnt showing title
- Added checks for database migrations (more of them). 1.1 mistake lurks over my shoulder.
- Fixed (android) buggy colapsible cards.
- Leaving servers when you had stories from other people would leave them on the device.
- Exported/imported stories wouldnt preservate attribute/suggestions values themselfs (remaping IDs wasnt applying to their values.)
- Fixed wrong help information.
- Conflict modal wasnt very intuitive.
- Syncing an existant story to a server wasnt working.
- Fixed crashes related to data looping (basically a rework of most screens.)
- (DEV) More issues from drizzle not being respected. Wont affect 1.5 users. but was internal work.
- Aligned buttons on many places that needed it.
My small apple grew so much. But can it compare to the stablished trees around?
Full Changelog: v1.5.0...v1.6.0
Keres v1.5.0 - Galatea
"Crafting it piece by piece. Unknown if perfection will ever be achieved. Never stopped us from trying, until the heavens pity my dedication."
Keres 1.5 - Galatea
This time goal was indeed to polish but found time for cute features as well.
Feature: Story Presence/Item journey Timeline (linear only)
- Character list/detail and item list/detail have a new button, which opens a timeline rendered in SVG.
- You can select up to 12 characters/items for analysis, or just select all to export and check later
- Keres never had a way to check the story timeline and who was where. This changed now.
- Also added timeline for Scenes. A gantt graph inspired view of the story and in universe durations.
Story Timeline (linear only)
- That scene gap/duration was for this.
- A compact mode and proportional mode to show on scale or better visibility.
- Works better when all scenes have their duration/gap set.
- No notice as well that we allow negative duration/gap, as to allow "scenes happening in parallel" and as "time travel" shennanigans. The time summary takes all into account and is in universe values.
Feature: Plot (linear only)
- A plot, B plot, C plot, there was no way to actually organize them together.
- New story element!
- Reader mode: Pick a plot, read like a book all the scene details in it. Can be useful for proof reading, "all" is also an option for the full story.
- Plot matrix: Similar to Story Timeline and the presence/item journey, management of the plots and where they affect the story.
- Plot Coverage: Shows how much of the story each plot covers. Just a small extra detail.
Change: Compacting the side drawer.
- 24 entries for a drawer was a bit too much. I dont like it. UX time?
- Moved Scene and choices drawer menu inside Chapters. It just feels natural now.
- Detail screens and forms are untouched.
- Sub options like the graphs are still there.
- Same for Item/Item journey. Fused together on drawer.
- Just like scenes, screens and forms are untouched.
- Same for Character relations and character. Also fused.
- Renamed Chapters to Narrative elements to reflect the change.
- 4 less to clutter the screen.
Improvements, QoL
- Suggestion screen shows all suggestions on story, not only the fixed ones. This is to avoid repeats early on.
- Also shows how many are in use currently.
- Rename support, entity lookup support to show who has that suggestion and navigation to it.
- UI consistency applied too
- New default lists button jumped to header top. More in line with other screens
- Related to line above, Attribute screen also had its + moved to the top. Consistency.
- All instances of the + floating button on bottom are now on top like every other screen in the app.
- Friendship, server and stats as well
- Advanced search now has labels on them.
- In some screens which list Scenes, it list from which chapter it comes from.
Github pages (landing page) got a glow up with the actual screens in them.
- Wanted to show what keres is capable of there with examples, and now this might do it.
- Not the best ever but a good start
- Along with it, scripts to check example stories to make sure everything there passed.
Bugfixes
- SEVERE BUG FIXED with reordering system.
- Mainly Scenes. Scenes were actually fully broken on indexing.
- Other parts that use reordering were affected but not nearly as much.
- STORY ANALYSIS HAS A BUTTON TO FIX THE OLD DATA. So please feel free to fix it.
- NAVIGATION FIXED YET AGAIN REMOVED HEROBRI... ok that one got on my nerves.
- Help feature wasnt comming back to screen it was opening from correctly. Fixed.
- Some list items didnt had tags listed on it.
- Item list had weird spacing. fixed.
- Multipill selector was not centered and jumped when selecting values as well. Fixed.
- White flash on changing screens fixed. Oldest bug ever.
- Scene gap and duration had issues typing and didnt accepted negatives (yes they accepting negatives IS intentional.)
- Item journey wasnt emitting changes via event, which means a change in item journey reflects elsewhere instantly now.
- Suggestions screen listed character(relations) type twice. fixed.
- Suggestions was rendered not like their counterpart custom attributes in padding/margin.
- Some list screens were resetting when returning with 0 results, causing bad experience.
- Fixed white line on desktop/web version as divisors on dark theme.
- Fixed mobile having weird space on top on drawer menus.
- MANY MISALIGNED HEADER BUTTONS AND CONTAINERS. WHYYY
- Story import had issues detecting unattached elements (relations) and repeating relations (missing constraint)
- Admin can disable the built in client. Why? Options. Default is enabled, so its a decision from the Admin to use there or not.
- Server API mounted on root / when it should be /api. this was from before the client shipped with server too.
- (DEV) streamlined the way to give app version and release name around.
- Also streamlined the commands in packages.json. A mess avoided.
- (DEV) Cleaned code yet again. Turns out Hygieia was for bugs, but not actual... code hygiene. Sad.
- Isolated some styling css style on their own file as it should for a while now.
- Enforced type import rules. When able, its the better choice.
- Enforced even more Typscript rules.
- Migrated SVG generation to shared, as github pages can use it as well. Pure TS.
- Moved duplicated code from api/client to shared
- Related to this, some bugs were found where one side were right, and other had issues.
- Client export missing data fixed, for example.
- (DEV) Translation scripting now applies to all so better to maintain.
- (DEV) Added quite a few new tests.
- Even broke syncing... into multiple files. it was a monolith.
Full Changelog: v1.4.1...v1.5.0
** Way more to come, I hope."
Keres v1.4.1 - Hygieia (hotfix)
Full Changelog: v1.4.0...v1.4.1
"Ok who messed up the cleaning. You had ONE job..."
Keres 1.4.1 - Hygieia hotfix
Welp. This is intended for the keres server! The client really doesnt need to update from 1.4.
- Bcrypt native modules could cause issues. changed for bcyptjs. Not the worst situation, some performance will be lost, but the code is more universal.
- Hotfix for github actions not packaging the intended way.
- Of couse, you can download these clients, but wont change anything.
- Please check the last release for what changed.
- Code wont even mention its 1.4.1 really.
Repeating the 1.4 changelog below
"No matter how many cycles the serpent passes. No one should lose themselves to it. To heal is to care, and to care is to live."
Keres 1.4 - Hygieia
Even though it was developed under Ouroboros. Main focus this time is patching issues from around the code. That said there was still time for quite a few features:
Recovery codes!
- Added recovery code system in case you forget passwords.
- All screens relevant for it were adjusted for it.
- Old accounts can ask an admin to generate new codes for you.
Custom Attributes now has Suggestion List.
- Wanted to make a character magic list from your magic list? You can!
- Want to search later how many has each type of magic? Suggestion system tracks!
- Which take us to...
Suggestion system improvement. Base lists.
- A list that can be shared with other lists. Use a lot of color based lists? Make one list and copy their values to others.
Story devices.
- A copy of the help pages, this time destined for popular literary devices
- Goal is NOT to teach the user what to use or not
- Goal is NOT to give an extensive class of the devices.
- Goal IS to give inspiration using real life writing advices and incentivize to search yourself for more.
- Keres is not where you build your story per say, but the app wishes you the best story outcome possible!
Showcase page!
- Want to share a story you made with a friend? that friend isnt on your keres server...? Is it anoying to export story, go to a cloud storage service, making a shared link... and such...? Fear no more. New showcase feature for servers!
- Same URL as the server URL, your story can be exported there via one button of the app! Owners only!
- Up to 5 versions of the story can be up there at once. after that older will get prunned...
- Dont want the whole world to see? put it behind a password! So only your friend can find it.
- If you do open to the world though, you can have the option to just publish a public version and the page opens to anyone!
- Can also work as a showcase (hence the name) of everyone's stories that wants to.
- Due to the privacy nature of the app, this feature is disabled by default, but Admin can easily enable with the click of a button.
Server now supports SQLite instead of postgres
- "Do you think someone is bothering installing docker to run a server for their 2-3 friends?"
- This was a needed change. the way server was built was inspired by programs like Minecraft servers. An executable that gives freedom to the users to run anywhere.
- But Barrier to use is high while docker/a postgres instance was required.
- SQLite is LESS SECURE by its nature, but the normal user might not care enough to upgrade to the safer postgres. That said, Database cant be open to the web as well.
- Postgres option is untouched. An admin will ALWAYS have the option.
- PACKAGE MADE FOR SIMPLE SETUP. It doesnt need to be complicated! It never should!
- Check down below for Keres Server releases.
Stat comparasion system added.
- Not related at all with the custom attributes suggestion change.
- "Who is stronger? Character A or B?" The dawn of fandom question, now in Keres.
- Compare characters, see what their strenghts are stat wise in comparasion to others.
- Check if "oh this character I said is smarter than this other. makes no sense" with easy...er, i think.
- Support for Modes now! even with feature disabled. As modes allow you to detail a transformation in the story. Like the beast turning back into prince, like the little mermaid that now can walk on land, and many others.
- More for fun.
- This was made thinking about RPG folks and game devs. This is not a feature for book writers.
- Disabled by default, changeble on story settings.
Web version!
- "Do i really have to download an entire app to make a story with my friend who is excited...? that is lame."
- I AGREE! So went back and reviewed what the web limitations were that we needed to apeal to Electron (the desktop app framework).
- Cross origin issues would arise -> Solved by making it accessible via the API server.
- Media has issues. file system and all -> OPFS solves it. Downside is not being able to see the media on the explorer, but its a small price to pay for 0 install, sadly.
- How about security? My tokens? -> Luckly old me decided that API could use cookies as well, and now was the time to show the work for it. All managed via good old cookie technology.
- Would be against Keres Phylosophy. -> I do agree that is lame that you are limited to one server on web version. but its better than nothing, and you arent REQUIRED to interact with the server either. You can always just download the native apps, or just use it "offline" (no sync) versions. Only thing server would do is serving the actual app.
- Wouldnt that allow for people to make their own versions and take it private more easily? -> Yeah? Keres is open source? They can easily do that if they want to? They only need to comply to our license and we have no issues with it.
Bug fixes & improvements:
- Help icon wasnt consistent. Now it was made consistent across screens.
- Also, can be disabled on app settings. so if you are bothered, not anymore.
- Story analysis only check branching story pathing on its dedicated screen with a button. On weaker systems it was it was causing issues.
- Also added better sync interactions, more down.
- Many Form screens were bugged visually and had useless titles.
- Also adjusted item journey list screen to use its space better.
- and made button spacing smaller. no more useless space wasters.
- Item Journey Viewer in item detail didnt have a way to scroll sideways on desktop. fixed.
- Some Form elements with multi lined element needed adjustments to enable multiline behavior.
- Custom attribute screen had reorder button move the other components. Made to fit now.
- Character was missing character title.
- (dev only) Internal scripts respect code formater when generating stuff now.
- Location management with father location and connected to moved to form. Detail screen should be detail screen.
- Fixed a crash with managers as they can select an entity already related again.
- Downloading stories gives correct notification for it.
- Oversights on Sync system were made before and redone.
- For solo person that always sync to the server online, it worked fine already.
- For multiple people that send conflicting info around the same time, was a big issue.
- API also had some bugs.
- Wrong operation version being used on syncing.
- CORS was not configured well.
- Preview of story on server was giving the wrong info
- Some version conflict could fail
- Login rate limit try was missing.
- Tier enforcement for storage wasnt working.
- Permission system had some vulnerabilities.
- Reworked Sync Algoritm... again.
- That modal for conflict resolution wasnt cutting it. at all.
- Reworked to be intuitive.
- CharId1 vs CharacterId1 mismatch was from old gemini days and had to go. too much workaround for unecessary pain.
- Admin page was remade to look more in line with keres themeing, and closed some security issues.
- Dockerfile fixed. Sadly makes media folder from 1.0-1.3 incompatible. Fix is just to chown the folder.
- (DEV) Test frameworks were running slow.
- Client had --runInBand and that... was weirdly slower. Maybe because the development machine wasnt that weak (it is weak.)
- API was spending too much effort on Bcrypt testing when it didnt mattered. Fixed.
- Reworked components/screens.
- Less lines of code for the same thing, avoids bugs elsewhere.
- During it, made possible to edit fields on creation that wouldnt be allowed there. Like adding relations and such on entity creation and not having to add, then edit.
- Remade the modal for syncing, but mentioned above.
- Updated help pages for related changes.
- Many others not listed.
A long journey that could be ending.
Thank you Liese, Adam, and many friends who couldnt be named. Some of us dreamed with this app for more than a decade.
And thank you, Aqua. For believing in Keres while we explored alternative tools.
This could be the last Keres version with features, unless I get new ideas which might happen. So stay tuned.
Keres v1.4.0 - Hygieia
"No matter how many cycles the serpent passes. No one should lose themselves to it. To heal is to care, and to care is to live."
Keres 1.4 - Hygieia
Even though it was developed under Ouroboros. Main focus this time is patching issues from around the code. That said there was still time for quite a few features.
- Server executables had an issue. Get keres-server-* files from release 1.4.1. rest seems to be correct.
Recovery codes!
- Added recovery code system in case you forget passwords.
- All screens relevant for it were adjusted for it.
- Old accounts can ask an admin to generate new codes for you or generate yourself if you havent forgot your password already.
Custom Attributes now has Suggestion List.
- Wanted to make a character magic list from your magic list? You can!
- Which take us to...
Suggestion system improvement. Base lists.
- A list that can be shared with other lists. Use a lot of color based lists? Make one list and copy their values to others.
Story devices.
- A copy of the help pages, this time destined for popular literary devices
- Goal is NOT to teach the user what to use or not
- Goal is NOT to give an extensive class of the devices.
- Goal IS to give inspiration using real life writing advices and incentivize to search yourself for more.
- Keres is not where you build your story per say, but the app wishes you the best story outcome possible!
Showcase page!
- Want to share a story you made with a friend? that friend isnt on your keres server...? Is it anoying to export story, go to a cloud storage service, making a shared link... and such...? Fear no more. New showcase feature for servers!
- Same URL as the server URL, your story can be exported there via one button of the app! Owners only!
- Up to 5 versions of the story can be up there at once. after that older will get prunned...
- Dont want the whole world to see? put it behind a password! So only your friend can find it.
- If you do open to the world though, you can have the option to just publish a public version and the page opens to anyone!
- Can also work as a showcase (hence the name) of everyone's stories that wants to.
- Due to the privacy nature of the app, this feature is disabled by default, but Admin can easily enable with the click of a button.
Server now supports SQLite instead of postgres (1.4.0 is bugged. check 1.4.1 release for correct ones)
- "Do you think someone is bothering installing docker to run a server for their 2-3 friends?"
- This was a needed change. the way server was built was inspired by programs like Minecraft servers. An executable that gives freedom to the users to run anywhere.
- But Barrier to use is high while docker/a postgres instance was required.
- SQLite is LESS SECURE by its nature, but the normal user might not care enough to upgrade to the safer postgres. That said, Database cant be open to the web as well.
- Postgres option is untouched. An admin will ALWAYS have the option.
- PACKAGE MADE FOR SIMPLE SETUP. It doesnt need to be complicated! It never should!
- Check down below for Keres Server releases.
Stat comparasion system added.
- Not related at all with the custom attributes suggestion change.
- "Who is stronger? Character A or B?" The dawn of fandom question, now in Keres.
- Compare characters, see what their strenghts are stat wise in comparasion to others.
- Check if "oh this character I said is smarter than this other. makes no sense" with easy...er, i think.
- Support for Modes now! even with feature disabled. As modes allow you to detail a transformation in the story. Like the beast turning back into prince, like the little mermaid that now can walk on land, and many others.
- More for fun.
- This was made thinking about RPG folks and game devs. This is not a feature for book writers.
- Disabled by default, changeble on story settings.
Web version!
- "Do i really have to download an entire app to make a story with my friend who is excited...? that is lame."
- I AGREE! So went back and reviewed what the web limitations were that we needed to apeal to Electron (the desktop app framework).
- Cross origin issues would arise -> Solved by making it accessible via the API server.
- Media has issues. file system and all -> OPFS solves it. Downside is not being able to see the media on the explorer, but its a small price to pay for 0 install, sadly.
- How about security? My tokens? -> Luckly old me decided that API could use cookies as well, and now was the time to show the work for it. All managed via good old cookie technology.
- Would be against Keres Phylosophy. -> I do agree that is lame that you are limited to one server on web version. but its better than nothing, and you arent REQUIRED to interact with the server either. You can always just download the native apps, or just use it "offline" (no sync) versions. Only thing server would do is serving the actual app.
- Wouldnt that allow for people to make their own versions and take it private more easily? -> Yeah? Keres is open source? They can easily do that if they want to? They only need to comply to our license and we have no issues with it.
Bug fixes & improvements:
- Help icon wasnt consistent. Now it was made consistent across screens.
- Also, can be disabled on app settings. so if you are bothered, not anymore.
- Story analysis only check branching story pathing on its dedicated screen with a button. On weaker systems it was it was causing issues.
- Also added better sync interactions, more down.
- Many Form screens were bugged visually and had useless titles.
- Also adjusted item journey list screen to use its space better.
- and made button spacing smaller. no more useless space wasters.
- Item Journey Viewer in item detail didnt have a way to scroll sideways on desktop. fixed.
- Some Form elements with multi lined element needed adjustments to enable multiline behavior.
- Custom attribute screen had reorder button move the other components. Made to fit now.
- Character was missing character title.
- (dev only) Internal scripts respect code formater when generating stuff now.
- Location management with father location and connected to moved to form. Detail screen should be detail screen.
- Fixed a crash with managers as they can select an entity already related again.
- Downloading stories gives correct notification for it.
- Oversights on Sync system were made before and redone.
- For solo person that always sync to the server online, it worked fine already.
- For multiple people that send conflicting info around the same time, was a big issue.
- API also had some bugs.
- Wrong operation version being used on syncing.
- CORS was not configured well.
- Preview of story on server was giving the wrong info
- Some version conflict could fail
- Login rate limit try was missing.
- Tier enforcement for storage wasnt working.
- Permission system had some vulnerabilities.
- Reworked Sync Algoritm... again.
- That modal for conflict resolution wasnt cutting it. at all.
- Reworked to be intuitive.
- CharId1 vs CharacterId1 mismatch was from old gemini days and had to go. too much workaround for unecessary pain.
- Admin page was remade to look more in line with keres themeing, and closed some security issues.
- Dockerfile fixed. Sadly makes media folder from 1.0-1.3 incompatible. Fix is just to chown the folder.
- (DEV) Test frameworks were running slow.
- Client had --runInBand and that... was weirdly slower. Maybe because the development machine wasnt that weak (it is weak.)
- API was spending too much effort on Bcrypt testing when it didnt mattered. Fixed.
- Reworked components/screens.
- Less lines of code for the same thing, avoids bugs elsewhere.
- During it, made possible to edit fields on creation that wouldnt be allowed there. Like adding relations and such on entity creation and not having to add, then edit.
- Remade the modal for syncing, but mentioned above.
- Updated help pages for related changes.
- Many others not listed.
A long journey that could be ending.
Thank you Liese, Adam, and many friends who couldnt be named. Some of us dreamed with this app for more than a decade.
And thank you, Aqua. For believing in Keres while we explored alternative tools.
This could be the last Keres version with features, unless I get new ideas which might happen. So stay tuned.
Full Changelog: v1.3.0...v1.4.0
Keres v1.3.0 - Ouroboros
"The serpent eats itself, spinning for infinity milenias, making sure its always respected and eternal. Its their choice. Its the cycle."
Keres 1.3 - Ouroboros
Important changes.
- Story now can be imported from old backups. Decided on allowing ig.
- Now you can make old backups and import them as a new story. This means you can preserve a story in their current state.
- Its NOT a "restore story from backup".
- Updated example stories slightly to have a feature or two from Aphodite and Ouroboros. Not worth going into detail.
- Example ones need more work. work i cant right now.
Testing framework added:
-
Now regressions can be detected early. Still a WIP to cover all, but quite a bit of progress was already made.
- Base for the code is 70%, except client which is much lower. Screens themselfs arent worth to test this phase.
-
Bugs found during it:
- Location could be cyclical on rendering and crash it.
- Env from server wasnt validating Database URL as well as it could.
- Revoking someone from your story didnt actually revoked it. Check missed the soft delete.
Related, friendship service had that problem as well. - Trying to make your tag one that existed caused a small crash. 500 error. Fixed.
- Some other business rules escaping as 500.
- Note and World rule updating on server had bad code that didnt considered if it was deleted, nor checking version conflict nor checked operation time. Removed the bad code to use the stronger base.
- White bar on the right side. The custom scrollbar feature still had the browser reserved space. Resolved.
- Desktop app had its title say the wrong name as some screens didnt updated it. fixed.
- Suggestion rendered wrong, feeling weird. Fixed as well.
New feature: CYOA. Choose Your Own Analysis
- New structures to make checking if a choice actually can happen in the mess of a story you might be making.
- Do be careful with cyclical stories as while the algorithm is quite complex, its not exaustive (as to avoid entering eternal loops)
- Its a very simple and basic system, mainly for higher level checks. Some manual control is still prefered for highly complex systems.
- That said, in the event you find a bug with the system, be sure to open an issue and tell what is happening.
- New systems to add to choice/scenes. Checks and Effects
- Effects tag the scene to make sure something happened there. Losing an item on inventory that blocks another path later, or The third time this scene happens for looping events (like Naruto's Izanami could be, for example). Could be used as a location check as well.
- Checks are what actually check if the path can or not go towards there.
- Scene detail screen and choice detail screen reworked for that.
- New way to interact with choices in it
- Choices screen now has a text field to detail what that choice means for the plot.
- Choice screen also has a way to go between the scenes as well. better navigation through the story devices.
- Scene modals in the modal of the graph view for choices now only shows times if its not 0.
New feature: Help pages.
- New to Keres? New to how to use the app? Dont you worry. We got you.
- Not intended to be for teaching storywritting. Could be in the future as the system supports expansions, but for now its not how this works.
- Many categories and coverage.
New small feature: Custom attributes can now use Entity as parameter.
- Want a field for "character's home" and link a location to it? you can now.
- Any entity that supports custom attribute can be linked on a custom attribute.
- Also added Date picker to custom attribute. Before it was a raw, bad, and ugly typing date as ISO directly. as a "2022-01-04" for example. That is bad and doesnt align with Keres design. So consider a oversight fixed.
- And it can now be ordered. so if you created some and are unhappy with the order they show up, that can also be customizable.
Admin management
- Logger is now saved on database and browseble on admin page. was forgotten last update.
Full Changelog: v1.2.0...v1.3.0
Keres v1.2.0 - Themis
"Balance, order, equilibrium, justice. To make it fair, to make sure everyone is heared, to make sure no one is forgotten."
Keres Release 1.2: Themis
Check release 1.1: Aphrodite for older features. New to Themis:
New feature: See also
- Most entities have a new See Also feature on the end of the entity, that can be clicked to be taken to another entity related that wasnt featured already (by... whatever reason that may be).
New feature: Comments.
- For when your friend has opinions on your story and wants to give his two cents.
- Comments show by the side of every single field of an entity.
- New drawer dedicated to it.
- Even readers can comment, if enabled on story settings of course (online only)
- Can also be used on offline mode! Which means you can comment for your future self!
- 5 levels of warning, as for how important that comment is. This may become a TODO feature for writers as well, so have fun playing around with them!
Server new feature! S3 support.
- The common user has nothing to worry about here.
- Basic support for S3 storage. This is for bigger servers which could need a better management than local files.
- Exchange of S3 mode and local mode is not allowed! make a new server for it or migrate the files first.
Fixes and changes:
- Suggestion screen was not great. even less on larger screens, aproached that by remaking it both on mobile and on the desktop versions.
- Graph Modals werent rendering well when keyboard was needed. Fixed.
- Story format is now 3. 1 and 2 are still 100% compatible to import if needed. Even though 2 doesnt exist anymore besides the examples bundled. Future versions might upgrade them again.
Code stuff:
- Testing framework added. Future releases will have more tests added to avoid regressions.
- Some components got refactored for code reusability. Not many, mainly the Responsive Modal one to accept keyboard spacing.
- Updated docker-compose.deploy.yml and made an example .env to make for easier deploys.
Full Changelog: v1.1.0...v1.2.0
Keres v1.1.0 - Aphrodite.
"A beaulty, perfection, the prettiest thing to ever come to my eyes, gracefully revealing their presence"
What's Changed
- Keres 1.1: Aphrodite by @CaioFViana in #2
- Due to a local database migration bug, Themis will be the true update. version 1.2. Sorry for that.
Features:
- Desktop now use responsive screening and has desktop only features to manage UI.
- Interface got slightly re-organized, so UI is unified (at least more than before)
- Default Suggestion system implemented. Now a pre-permanent list can be built.
- Scenes has gap and duration fields. Configurable via story settings.
- Themes got reworked into something pretty to look at.
- Favorite system reworked, so its individual (private or public for others) or story wide (old behavior). Configurable via story settings.
Bug Fixes
- JWT saved in non secure ways. Now it uses proper ways of storage.
- Friendship system fixes.
- Enforced reader mode in shared story.
- Reset application now trully works.
- Sync code is way more stable now.
Code stuff
- Re-organized all components for easier maintanance.
- Removed Dead Files.
- Sync is now triggered via websocket. instant updates.
- Components compacting code.
- Code Lint. Yes. I hate that took me that long to aproach.
- Updated... kinda... the example stories. No conflict risks anymore.
- And maybe something i forgot.
Full Changelog: v1.0.0...v1.1.0
Edit:
A big bug was found on this release that would require reseting the local database to fix. Due to that, a hotfix for this version will be added.
Download numbers showed no one downloaded it yet, so no one was affected but developing enviroment.