# SillyTavern 1.99999999
## Why new ST? Is the old one bad?
### Technical
- ST development is in maintenance-like mode. There are many reasons. We have already discussed many times. Adding new features, refactoring existing code, and even adding a new API provider. I saw many feature suggestions, but they were refused because things are going to break, not a kind of **migration** break. When a new feature needs refactoring, it is hard to tell what we broke until we test properly. I'll give examples later.
- Extensions development. ST extensions are really flexible. I'm an extension developer myself; I created CREC, WREC, Flowchart, NovelAI, etc. But the development is really hard unless you know the codebase. How many extension developers are going to read the codebase? Look for a method in `script.js`.
### User perspective
- Compact UI. I know **power users** love this, but there is a chance to make it for both power users and regular users.
- Mobile is not pretty. (fuck your phone btw)
- Settings panel. When a new user sees `Moving UI`, `Auto markdown fix`, there is a high chance to think "what the hell is this"
- WI/Character panels. They are on the right side. Only extensions are solving this.
- Recent chats. It is only visible on the welcome page. (I don't how to open **welcome page** except pressing F5)
- Chat management. For example, why is there a "Chat Lore" in the character panel? Because there is no place to put. (until an extension creates a chat management panel)
- Group chats. They are acting like a different concept compared to normal chats.
- TC/CC separation. The whole **AI Response Formatting** tab. For example, why do I need to deal with "context template" or "system prompt"? Why are there 2 prompt managers?
## What makes ST 1.999 good?
### User perspective
- Layout is [redesigned](https://imgur.com/N4bwA0z). Including [settings](https://imgur.com/Aaxhqun), [WI](https://imgur.com/mR1wxFT), [character](https://imgur.com/eNseqsY), [persona](https://imgur.com/8WOv6Uz), [extensions](https://imgur.com/6Iz1fJc), [AI Configuration tabs](https://imgur.com/7c0L5Ra). They can be expanded and customizable with drag/drop. (current UI still needs polishing, but it is what it is)
- There are [right/left sidebars](https://imgur.com/N4bwA0z). They contain [recent chats](https://imgur.com/NHdbKfb), [chat management panel](https://imgur.com/auhSmDf). See [animations](https://imgur.com/j6QoZkI)
- There is a single prompt manager. Which works for TC/CC. Book icon is a prompt library that contains global prompts.
- All chats are group chats. We can add/remove a member anytime. (techically, we can even remove all members.)
- "Better" prompt inspector. Like what lorebook entries triggered.
- Ability to assign multiple lorebooks to chat/persona.
- Assigning a connection profile to the chat.
- See overall token count of lorebooks.
### Technical reasons
- Frontend is rewritten with modern technologies. Typescript, VueJS and Pinia. Component-based architecture makes development easier. I'm open to discussion about this. The whole `$('#chat_send').trigger()` is crappy. The only reason I don't wanna use big frameworks in ST, I was worried about our `rerender` breaking the HTML code inserted by vanilla JS. Then I discovered, they are not breaking. You can see the conversation in [#code-contribution](https://imgur.com/qom0kW6). [chat link](https://discord.com/channels/1100685673633153084/1100820587586273343/1437255761620373605)
- Everything is type-safe. When I change a data structure, I can see all the type errors. Even if there is no **i18n** key in the code, the compiler gives an error. If an unused **i18n** key exists in the locale file, the compiler gives an error.
- Data-driven UI. The settings panel is fully data-driven. Sampler settings are data-driven. Even provider parameters are data-driven. So adding a new provider/parameter/settings shouldn't be a problem.
- New `settings.json` architecture. Instead of 45 root fields, there are categories like `ui, api, etc.`
- Extension API. Since we are doing things properly, the only way is to publish ST types as an NPM package. This is a big step up from my perspective, because technically, they can manipulate [many things](https://imgur.com/Vf95aLN). They can create new right/left panels, or even a navbar.
### Current status
Compared to ST, core functionality is imported except for the **polishing UI**. There are some little bugs or little TODOs in the code, but they are not blockers, and it won't take time a serious time to implement. Implemented features:
- All the screenshot I mentioned is implemented. They are not just UI.
- WI (Timed effects and outlets are not implemented)
- Character management
- Persona management
- All CC providers.
- TC implemented, but there is no provider yet, since we are using the koboldcpp CC endpoint now.
- Samplers. (including koboldcpp samplers)
- Chat management.
- Theme management.
- Extension API/support. But do not expect a stable extension API in alpha release.
- Simple macros. Such as `{{char}}`, `{{description}}`, `{{scenario}}`, etc.)
The only big feature we didn't implement is detailed macros and slash commands. Because we need to discuss the design. Note, porting STScript might not be a [good idea](https://imgur.com/5tUy1ja). [chat link](https://discord.com/channels/1100685673633153084/1440449966454870137/1441448980755251210)
### Future ideas
- Since the codebase is new, there is a chance to send concurrent API requests, like opening multiple chats, the ability to chat with multiple characters meanwhile waiting for other chats, etc.
- Creating an "AI Agent" is possible with extension support.
- Better statistics. It can be like [Stats 2.0](https://github.com/SillyTavern/SillyTavern/pull/2173). Additionally, we could show a general "request tracker" panel, for example, the user can see all LLM request details in that panel. Such as tokens, cost, what extension initiated, etc.
- There are more ideas on GitHub issues.