giseldo/neodataset huggingface dataset:
Blogs: Links get Embedded

This one is weird. When a link in blogs is pressed, the user is navigated to that link in the browser, but when they come back the link is embedded in the blog screen:

![blogs](/uploads/710d4fe3246729de3124ad5a3f821be0/blogs.mov)

![blogs_2](/uploads/533b8f62fc5c4602402cef4f17c2fc57/blogs_2.mov)

![blogs_3](/uploads/bc0e914773a83b51c3de8eac08c2ee02/blogs_3.mov)

p.s. there's also an initial jump which is unexpected

Story points: 3.0
Feed stuttering 4.19.0

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

(Summarize the bug encountered concisely)

### Steps to reproduce

(How one can reproduce the issue - this is very important)

### Platform information 

(Browser, device, system stats, screen size)

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 3.0
Review and revise mobile settings top level

The top-level settings screen is becoming a little noisy. Extra options have been added, such as `Export Wallets`, `Legacy Chat` and `Data Saver` to name a few.

The hierarchy here should be revised so the top-level is clean and clear.

See below the current state of the settings screen (top-level)

![Screenshot_2021-11-29_at_15.08.20](/uploads/f44757c812fd0c7adea487522c8b821d/Screenshot_2021-11-29_at_15.08.20.png)

### Solution
See below the proposed solution for cleaning up settings.

#### Actions
- [x] `Data Saver` moves to `Other`
- [ ] `Referrals` moves to `Other`
- [x] `Boost` can be moved down to the lower grouping as indicated
- [x] `Export Legacy Wallets` moved to `Other`
- [x] `Legacy Chat` moved to `Other`

Story points: 2.0
Error when tapping on the 'reminder' of a reminded post

### Steps to reproduce

Find a reminded post in the feed view, at the top you'll see 'Reminded by <channelName>'. Tap it, and error should be displayed.

Note: this only happens when the "Reminded by" is clicked from the Reminds dialogue.

### Platform information 

iOS 15, App v4.18.0

### What is the current *bug* behavior?

Throws an error dialogue (as shown in the attached screenshot below)

### What is the expected *correct* behavior?

Should link to the channel in question

### Relevant logs and/or screenshots

![IMG_0177](/uploads/257aa532ceca5a8cefbae8b4b7c857c0/IMG_0177.PNG)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 2.0
Enabling Data Saver Crashes the App

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

(Summarize the bug encountered concisely)

### Steps to reproduce

(How one can reproduce the issue - this is very important)

### Platform information 

(Browser, device, system stats, screen size)

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 1.0
Unable to login in Mobile App

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

(Summarize the bug encountered concisely)

### Steps to reproduce
1. Download Minds mobile app in play store
2. Open App
3. login with the username which has been used for signup
(How one can reproduce the issue - this is very important)

### Platform information 
mobile device
(Browser, device, system stats, screen size)

### What is the current *bug* behavior?
After pressing the login button, there is no action. Not going to next or not giving warning though
(What actually happens)

### What is the expected *correct* behavior?
After pressing the login button, the app should navigate to homepage
(What you should see instead)

### Relevant logs and/or screenshots
Attaching the screenshots![Screenshot_20211008-223355](/uploads/6ac663a710f6d8780c5f974386ef137b/Screenshot_20211008-223355.jpg)

![Screenshot_20211008-223438](/uploads/6eae1485db87ccf1f0a630d65121247b/Screenshot_20211008-223438.jpg)

![Screenshot_20211008-223503](/uploads/9bea88070f308a75df23c1d09acc99f1/Screenshot_20211008-223503.jpg)
(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 3.0
Error when logging out from main menu

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

(Summarize the bug encountered concisely)

### Steps to reproduce

(How one can reproduce the issue - this is very important)

### Platform information 

(Browser, device, system stats, screen size)

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 2.0
Wallet formatting issue



### Summary

There are some date and numeric formatting errors in the wallet screen

![Screen_Shot_2021-10-07_at_18.00.46](/uploads/d615573f6e6018c403f10f6677e574b6/Screen_Shot_2021-10-07_at_18.00.46.png)

![Screen_Shot_2021-10-07_at_18.01.01](/uploads/920af26afad21267f8b9e8c3b4daedd3/Screen_Shot_2021-10-07_at_18.01.01.png)

![Screen_Shot_2021-10-07_at_18.01.24](/uploads/3776faa56ecddc07a33153ab8ec5d0a0/Screen_Shot_2021-10-07_at_18.01.24.png)

Story points: 1.0
Can't create new character

### Summary

No matter what i do, i get `Error: UNIQUE constraint failed: body.character_id`.

### Steps to reproduce

Create new account, try to create first character, click Create.

### Relevant logs and/or screenshots

![imgur-2020_08_06-21_07_43](/uploads/f6f43b8d23bea1102f0ba422ef4e55d9/imgur-2020_08_06-21_07_43.png)

#### Veloren version

Using latest nightly from airshipper: 0.6.0-fbac12d2/2020-08-06-16:27, connected to the default server.

Story points: 10.0
Do not announce alias change for non-body players

### Summary

Torvus the bridge between discord and ingame server changes the alias to represent the writer on discord.
Due to recent addition of announcing the change this gets very confusing to use the bridge.

### Steps to reproduce

just writing in #ingame-chat will be enough

### Relevant logs and/or screenshots

<details>
<summary>Logs and/or screenshots of the issue</summary>
![Screenshot_20200529_120855](/uploads/d05323768280a9d3149019a743da2cd1/Screenshot_20200529_120855.png)
</details>

#### Veloren version
latest Nightly

Story points: 7.0
Make level and exp public fields

The following discussion from !970 should be addressed:

- [ ] @Imbris started a [discussion](https://gitlab.com/veloren/veloren/-/merge_requests/970#note_339922643):  (+1 comment)

    > since we have what appears to be direct getters and setters for `level` and `exp` maybe we should just make the fields `pub`

Story points: 1.0
Enable voxygen to be used as a lib for rendering characters

Interest has been expressed in this functionality

Tentative steps:  
* [ ] expose `renderer` & `scene` in `lib.rs`  
* [ ] determine if `scene::load` should be exposed or if it would be easier to indirectly render a character via `scene::Scene`  
* [ ] create example that renders a character image using a headless context

Story points: 3.0
`Endurance`, `Fitness` and `Willpower` as race based stats in `Stats` component

Each race should start with a different set of default stats (the player will be able to upgrade them later though).
Short summary of the stats:
- Endurance: Resist physical damage
- Fitness: Move more quickly and efficiently
- Willpower: Resist magic, strong mental power (will also effect energy regeneration)

Races:
    Danari,
    Dwarf,
    Elf,
    Human,
    Orc,
    Undead,


Story points: 1.0
Interpolate shadow and light positions

Figure position is interpolated for smooth rendering, the same should be done for lights and shadows so that aren't out of sync.  
See how figure interpolation is handled:  
https://gitlab.com/veloren/veloren/blob/master/voxygen/src/scene/figure/mod.rs#L958  
Shadow & light code:  
https://gitlab.com/veloren/veloren/blob/master/voxygen/src/scene/mod.rs#L204

Story points: 2.0
Switch from deprecated gfx to wgpu

This switch promises many performance improvements and recent patches.
Will involve some work.

Imbris: "As zest mentioned most of the things that need to be switched are in voxygen/src/render/
conrod uses our rendering abstraction so we don't have to worry about that
glutin is a layer on top of winit that I believe gives us our opengl context
gf_device_gl is the opengl backend for gfx
and gfx_window_glutin is something in between"

Story points: 9.0
Enable hotloading of different offsets for armors/weapons

This can be accomplished similar to how head meshing is done.  
For reference see:
`HumanHeadSpec` and related code  
https://gitlab.com/veloren/veloren/blob/master/voxygen/src/scene/figure/load.rs#L99  
https://gitlab.com/veloren/veloren/blob/master/assets/voxygen/voxel/humanoid_head_manifest.ron

Story points: 2.0
Separate voxygen and server CI builds

When a branch is pushed to master, it creates a job that builds executables for both the server and the voxygen client. I'm wondering if it would be better to separate this into 2 jobs.

The benefits would be:
- The jobs are faster, better parallelization across runners
- The runners have a smaller upload
- Players who only want the client can just get the client (@Songtronix can you comment on this)

Questions to answer:
- Does the server need access to the `assets/` folder?

It could be that this isn't a good idea, just had the thought.

Story points: 1.0
Crash on open

thread 'main' panicked at 'Failed to create window!: BackendError(OsError("wglCreateContextAttribsARB failed: OS Error -1073274731 (FormatMessageW() returned error 317) (os error -1073274731)"))', src\libcore\result.rs:999:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.


win 10 64bit

hd intel graphics

Story points: 2.0
Improve scaling of pixel art in the ui

Some improvements over nearest neighbor scaling:  
https://colececil.io/blog/2017/scaling-pixel-art-without-destroying-it/  
http://themaister.net/blog/2018/08/25/pseudo-bandlimited-pixel-art-filtering-in-3d-a-mathematical-derivation/  
https://www.shadertoy.com/view/ltBGWc  
https://www.shadertoy.com/view/MlB3D3

Sourced from:
https://discordapp.com/channels/273534239310479360/335502453371961344/626477915240005652

edit: 
https://www.youtube.com/watch?v=Yu8k7a1hQuU&start=2942

edit2:
Very nice explanation: https://csantosbh.wordpress.com/2014/01/25/manual-texture-filtering-for-pixelated-games-in-webgl/

Story points: 2.0
Cancelling server connection

From yosmo78 on discord:

I just want to make a small suggestion when connecting to a server there should be a cancel button that appears when attempting to connect, so you can abort trying to connect to the server. The reason I suggest this is because I think I have have run into a bug. If you enter in a server address for instance veloren.mac94.de then specify a (maybe valid?) port like veloren.mac94.de:13000 it will infinitely connect and without a cancel you have to force close the game.

Story points: 1.0
Engine programming tracking issue

This is a place to discuss ways to improve the development of the engine. Here are some of the goals that we want to achieve:

- [ ] Reduce compile times by moving data out of code.
- [ ] Allow more to be changed while the game is running or at least not recompiled.
- [ ] Make code reusable.
  - [ ] `Terrain`
  - [ ] `FigureMgr`
- [ ] Split responsibilities.
  - [ ] There should be a single object responsible for queuing and orchestrating the meshing of chunks (or possibly meshing other things, too). That same object should *not* be responsible for deciding which chunks have to be meshed.

Story points: 10.0
Implement server-side volumetric lighting

At the moment, we generate lighting information by tracing blocks downward in the meshing code. This technique isn't ideal and doesn't produce physically accurate effects. Instead, we should use a similar technique to other voxel games by computing lighting based on a floodfill algorithm.

Additionally, we'd like to do per-vertex lighting (smooth lighting) instead of per-face lighting in the meshing code.

Once computed, we can also pass this lighting information into the character shaders.

Story points: 5.0
Find a good way to update the toolchain and build image periodically

The toolchain used for the repo and CI should be updated periodically. This should either be done every few weeks, or once a month, or once a version. Depending on the benefits of doing so. Also, rebuilding the image every once in a while will help CI run faster.

The steps that need to be taken during this time are:
- Make sure all of our crates work with the new toolchain
- Make sure the toolchain has all of the Rust tools that we need
- Change the toolchain in the main repo and the Docker image repo
- Rebuild the image

Also a few other improvements
- The CI image should always have the toolchain that it is designed to run built-in. This means having a file that overwrites the `rust-toolchain` file during each CI run.

Story points: 2.0
Audio System Design

MisterTeapot on discord has done professional work with game audio in the past. I asked him what features were high priority to implement, and this was his response: 

<details>
    <summary>MisterTeapot's response</summary>
    <pre>
Thanks @AᎬᏒᎾᏁᎥᏟ [UTC-5], we're super excited!  Ok, so here's a few super quick notes regarding our potential audio system. Obviously there's a ton of room for expansion and clarification here, but this is probably a decent starting point for discussion. Implementation wise, I think our audio would loosely fall into four groups:

Music
Environment SFX
Event SFX
Menu/GUI SFX

Music

-Typically streamed
-Needs to have some sort of tagging system for jukebox, ie, "exploring", "battle", "town", "dungeon"
-Needs to be able to cross-fade or at least fade out/fade in when changing areas
-Given how much content is already finished in this area, dynamic/procedural music is likely out of scope


Environment SFX

-Loaded into memory on area load
-Ambient loops for each major area type, ie, gentle breeze with leaves rustling in forest, stonger wind in mountains
-Support for positional audio such as flowing water, bird chirps

Event SFX

-Loaded with corresponding entity instantiation
-Footsteps, glide loop, combat sounds, item interaction sounds (ie opening doors/chests), etc
-Will need some very basic DSP, ie random ranged pitch for footsteps, pitch/EQ for glide loop


Menu/GUI SFX

-Tied to input triggers, (click/confirm, scroll, mouse over etc. need trigger list from UI team)
-Usually these get loaded once, and then called from pool
-Depending on how 'Juicy' we go with UI design, may require animation tagging (although we can probably fake it)
-Dialog system probably fits in here as well, assuming that we're doing dialog boxes and not full voice-over
-Dialog could be as simple as clicks/keystrokes as the words scroll, or more complex sythesis ala Animal Crossing
    </pre>
</details>

This issue is for further discussion on the overarching audio system design.

From reading his response and what I've gathered from reading on the topic, I've made a list of features that need to be implemented. As we decide we are ready to add the feature, we can make an issue, link to it, and once it is finished we can check it off.

* [x] An audio description file (probably in the .ron format) (SFX: !563)
* [ ] A way to mark audio as streaming vs. loaded into memory
* [ ] Audio banks that can be loaded and unloaded
* [x] Fade in, fade out, crossfade
* [ ] Pitch shifting
* [ ] Possibly a dynamic/procedural music engine
* [x] A way to tag music based on the context it should be played in
* [x] Positional audio

I am ignoring the audio that should be added to the game in this issue and focusing solely on the programming.

Story points: 10.0
Add worker for `Chunk` optimisation

_I write this issue as if !475 has already been merged._

A worker, running in the thread pool, should be implemented that _optimises_ the loaded `Chunk`s.
Such an optimisation is comprised of:

1. Finding out which is the best voxel to serve as `self.default`.
   Usually this would be one of the following three voxels:
   * `self.below` of the containing `Chonk`.
   * Water.
   * `self.above` of the containing `Chonk`.
2. Order the groups (see !475 for the concept of a “group”) by morton order.
   This might improve cache friendliness.
   Having the groups sorted by morton order has no overhead because groups are accessed through a lookup table anyways. (`self.indices` is that lookup table.)

Story points: 5.0
build a more rugged weapon system

As it stands, we declare 7 possible weapons with the choice to use one. To build a complete system, we would need to expand this to properly handle situations such as dual wielding, 2h weapons, mixed dual wields (sword+shield) and freedom to use left or right hands to hold weapons. This breaks down into several steps:

- set up "left weapon" and "right weapon" as bones in the skeleton, as opposed to just weapon
- set up these bones in the animation code as corresponding to left and right hands, respectively, allowing for them to sync with hands. currently we sync both hands to "weapon" and this won't handle 1h weapons well.
- set up choice to place 2h weapons in either left or right hands, with the non-chosen side corresponding to: a) a secondary hand movement that is also synced to that weapon, and b) an empty weapon slot, and no weapon asset. we'll need matches set up so that equipping a 2h sword in the left slot will trigger a "2h sword secondary" flag in the right slot, so that the right slot can instruct the opposite hand about how to move.

Story points: 5.0
WIP: Design modding system for Veloren with wasm support

### READCEDRIC
1) `rustup component add wasm-unknown-unknown`
2) make `hello_world.wasm`
3) put it in `assets/mods/hello_world.wasm`
4) make ModsLoader struct in `veloren/common/src/mods_loader.rs`
5) instantiate a ModsLoader struct as an unsynced ECS resource in `veloren/common/src/state.rs`
    a) look around line `164`, you want to instantiate the manager just like the Terrain Map.
    b) when created, this thing loads all of the files modules in veloren/assets/mods/ and compiles them
6) add `wasmer_runtime` and `wasmer_runtime_core` to `veloren/common/src/Cargo.toml`
7) for now, just use those crates to execute all of those WASM modules as soon as they're compiled, right there in the `pub fn new()` in the `mods_manager.rs`

Story points: 10.0
Support rendering voxels without client

This is useful for things like the main menu or other game modes where you don't connect to a server.
Currently the rendering code depends on a client (which is connected to a server) because it needs to know the current tick (and other pieces of information). This prevents something like a 3d main menu from being created, because there will be no connection to a server at this point.
Creating a new server just for rendering the main menu doesn't seem like the ideal solution as well.
The rendering code should not depend on the client!

Story points: 10.0
Make server more configurable

Missing configuration features:
- [ ] max View Distance
- [ ] speed of Day/Night Cycle
- [ ] PvP
- [ ] Allow building

Once implemented:
- [ ] Voice

Done:
- [x] address and port (done in !277)
- [x] Time of day the server begins to tick (done in !277)
- [x] max players (done in !277)
- [x] Worldseed (done in !277)
- [x] Motd/ServerInfo (done in !277)
- [x] Administrator Permissions (basic implementation being done in !424)
- [x] Login-Server: (basic implementation done in !419, fully implemented in !690)
    - [x] enable or disable option
    - [x] custom address

Story points: 5.0
Crash when pulse audio has an invalid audio device as default

I've downloaded the linux artifact from the pipeline https://gitlab.com/veloren/veloren/pipelines/63117693
and get the following error when I run the voxygen file:
https://haste.paddsel.de/ivupeveyax.php

The problem is, that pulse audio has selected a device as default that is not plugged in. This causes Veloren to select an invalid audio device which causes a crash.
A possible solution to the problem could be a No-Audio fallback mode

Story points: 1.0
CI should fail if Cargo.lock would be changed by cargo build

For instance, if I add a new dependency, cargo will update `Cargo.lock` to include it.
An MR that adds a dependency should also include the changes to `Cargo.lock` so that it does not appear as a change in everyone's local git repo.

This might be accomplished by detecting whether `cargo build` changes the lock file.

`cargo build --locked` would be useful for this

Story points: 2.0
Move to custom asset paths

Instead of  "/voxygen/element/frames/bag.vox" we write something like "core.hud.buttons.bag" for example.

There are still some problems we need to discuss:
1. How do we change the directory structure to have nice names? Currently it's "assets/voxygen/type/name.ending"
Not all assets are only for voxygen in the future
2. How do we figure out file endings from the "core.ui.backgrounds.city" notation? This file could be a vox, a png or something else. We could figure it out in the image_ids! macro or using the Asset trait implementations, but that will require more thinking.
3. Currently all of the image_ids!, ImageGraphic and VoxelGraphic code is in voxygen. If we want to be able to use these items we need to move them to common.

Story points: 1.0
Create an asset organization system

This issue is twofold, we need to build a directory style to store assets in, and also an identification system for assets that we will use for naming.

The implementation here is trivial, but how we want to go about this will need to be considered, such as:

- positioning assets in a way that is simple and gives us easy access

- naming assets in a way that is unique, unlimited and unspecific (limiting the amount of information that is hardcoded in order to give the engine more flexibility to produce interesting outcomes)

Story points: 2.0