Home / Input Output / catalyst-voices
Jan 29, 9-10 PM (0)
Jan 29, 10-11 PM (0)
Jan 29, 11-12 AM (0)
Jan 30, 12-1 AM (0)
Jan 30, 1-2 AM (0)
Jan 30, 2-3 AM (0)
Jan 30, 3-4 AM (0)
Jan 30, 4-5 AM (0)
Jan 30, 5-6 AM (0)
Jan 30, 6-7 AM (1)
Jan 30, 7-8 AM (2)
Jan 30, 8-9 AM (2)
Jan 30, 9-10 AM (1)
Jan 30, 10-11 AM (6)
Jan 30, 11-12 PM (9)
Jan 30, 12-1 PM (3)
Jan 30, 1-2 PM (2)
Jan 30, 2-3 PM (0)
Jan 30, 3-4 PM (2)
Jan 30, 4-5 PM (1)
Jan 30, 5-6 PM (0)
Jan 30, 6-7 PM (0)
Jan 30, 7-8 PM (0)
Jan 30, 8-9 PM (0)
Jan 30, 9-10 PM (0)
Jan 30, 10-11 PM (0)
Jan 30, 11-12 AM (0)
Jan 31, 12-1 AM (0)
Jan 31, 1-2 AM (0)
Jan 31, 2-3 AM (0)
Jan 31, 3-4 AM (0)
Jan 31, 4-5 AM (0)
Jan 31, 5-6 AM (0)
Jan 31, 6-7 AM (0)
Jan 31, 7-8 AM (0)
Jan 31, 8-9 AM (0)
Jan 31, 9-10 AM (0)
Jan 31, 10-11 AM (0)
Jan 31, 11-12 PM (0)
Jan 31, 12-1 PM (0)
Jan 31, 1-2 PM (0)
Jan 31, 2-3 PM (0)
Jan 31, 3-4 PM (0)
Jan 31, 4-5 PM (0)
Jan 31, 5-6 PM (0)
Jan 31, 6-7 PM (0)
Jan 31, 7-8 PM (0)
Jan 31, 8-9 PM (0)
Jan 31, 9-10 PM (0)
Jan 31, 10-11 PM (0)
Jan 31, 11-12 AM (0)
Feb 01, 12-1 AM (0)
Feb 01, 1-2 AM (0)
Feb 01, 2-3 AM (0)
Feb 01, 3-4 AM (0)
Feb 01, 4-5 AM (0)
Feb 01, 5-6 AM (0)
Feb 01, 6-7 AM (0)
Feb 01, 7-8 AM (0)
Feb 01, 8-9 AM (0)
Feb 01, 9-10 AM (0)
Feb 01, 10-11 AM (0)
Feb 01, 11-12 PM (0)
Feb 01, 12-1 PM (0)
Feb 01, 1-2 PM (0)
Feb 01, 2-3 PM (0)
Feb 01, 3-4 PM (0)
Feb 01, 4-5 PM (0)
Feb 01, 5-6 PM (0)
Feb 01, 6-7 PM (0)
Feb 01, 7-8 PM (0)
Feb 01, 8-9 PM (0)
Feb 01, 9-10 PM (0)
Feb 01, 10-11 PM (0)
Feb 01, 11-12 AM (0)
Feb 02, 12-1 AM (0)
Feb 02, 1-2 AM (0)
Feb 02, 2-3 AM (0)
Feb 02, 3-4 AM (0)
Feb 02, 4-5 AM (0)
Feb 02, 5-6 AM (0)
Feb 02, 6-7 AM (3)
Feb 02, 7-8 AM (1)
Feb 02, 8-9 AM (3)
Feb 02, 9-10 AM (1)
Feb 02, 10-11 AM (2)
Feb 02, 11-12 PM (1)
Feb 02, 12-1 PM (0)
Feb 02, 1-2 PM (6)
Feb 02, 2-3 PM (4)
Feb 02, 3-4 PM (4)
Feb 02, 4-5 PM (0)
Feb 02, 5-6 PM (0)
Feb 02, 6-7 PM (0)
Feb 02, 7-8 PM (0)
Feb 02, 8-9 PM (0)
Feb 02, 9-10 PM (0)
Feb 02, 10-11 PM (0)
Feb 02, 11-12 AM (0)
Feb 03, 12-1 AM (0)
Feb 03, 1-2 AM (0)
Feb 03, 2-3 AM (0)
Feb 03, 3-4 AM (0)
Feb 03, 4-5 AM (0)
Feb 03, 5-6 AM (0)
Feb 03, 6-7 AM (0)
Feb 03, 7-8 AM (7)
Feb 03, 8-9 AM (1)
Feb 03, 9-10 AM (0)
Feb 03, 10-11 AM (2)
Feb 03, 11-12 PM (4)
Feb 03, 12-1 PM (0)
Feb 03, 1-2 PM (1)
Feb 03, 2-3 PM (1)
Feb 03, 3-4 PM (0)
Feb 03, 4-5 PM (0)
Feb 03, 5-6 PM (0)
Feb 03, 6-7 PM (0)
Feb 03, 7-8 PM (0)
Feb 03, 8-9 PM (0)
Feb 03, 9-10 PM (0)
Feb 03, 10-11 PM (0)
Feb 03, 11-12 AM (0)
Feb 04, 12-1 AM (0)
Feb 04, 1-2 AM (0)
Feb 04, 2-3 AM (0)
Feb 04, 3-4 AM (0)
Feb 04, 4-5 AM (0)
Feb 04, 5-6 AM (0)
Feb 04, 6-7 AM (1)
Feb 04, 7-8 AM (1)
Feb 04, 8-9 AM (1)
Feb 04, 9-10 AM (0)
Feb 04, 10-11 AM (1)
Feb 04, 11-12 PM (3)
Feb 04, 12-1 PM (0)
Feb 04, 1-2 PM (0)
Feb 04, 2-3 PM (0)
Feb 04, 3-4 PM (0)
Feb 04, 4-5 PM (0)
Feb 04, 5-6 PM (1)
Feb 04, 6-7 PM (0)
Feb 04, 7-8 PM (0)
Feb 04, 8-9 PM (0)
Feb 04, 9-10 PM (0)
Feb 04, 10-11 PM (1)
Feb 04, 11-12 AM (0)
Feb 05, 12-1 AM (0)
Feb 05, 1-2 AM (0)
Feb 05, 2-3 AM (0)
Feb 05, 3-4 AM (0)
Feb 05, 4-5 AM (0)
Feb 05, 5-6 AM (0)
Feb 05, 6-7 AM (0)
Feb 05, 7-8 AM (0)
Feb 05, 8-9 AM (1)
Feb 05, 9-10 AM (0)
Feb 05, 10-11 AM (3)
Feb 05, 11-12 PM (0)
Feb 05, 12-1 PM (1)
Feb 05, 1-2 PM (0)
Feb 05, 2-3 PM (0)
Feb 05, 3-4 PM (0)
Feb 05, 4-5 PM (0)
Feb 05, 5-6 PM (0)
Feb 05, 6-7 PM (0)
Feb 05, 7-8 PM (0)
Feb 05, 8-9 PM (0)
Feb 05, 9-10 PM (0)
84 commits this week Jan 29, 2026 - Feb 05, 2026
feat(cat-voices): Co proposers - no notifications (#3731)
* fix: favorite button (#3435)

* chore: disable Sentry in profile mode (#3489)

* feat(cat-voices): discovery widget optimization  (#3460)

* feat: discovery optimilisation widgets

* chore: update most_recent_proposals

* fix: format

* fix: review

* chore: created custom selector for dates events

* chore: change names

* chore: review timeline items update

* fix: review

* feat(cat-voices): Images and Videos fails gracefully (#3494)

* feat: video and images fail gracefully

* chore: review update

* feat: make applyConfig ext private

* feat(cat-voices): responsive breakpoints update (#3498)

* feat: changing breakpoints

* fix: format

* feat(cat-voices): stress test env (#3520)

* wip: LocalCatGateway

* first iteration of LocalCatGateway

* fix previous commit

* feat: use more categories and make action's nullable sometimes

* Delete mixin in favour or LocalCatGateway implementation

* StressTest config

* chore: cleanup imports

* clear db only when stress test is enabled

* update StressTestConfig

* refactor: move unimplemented functions to InternalErrorCatGatewayMixin

* optional author getter

* chore: debug print for stress test

* update README

* fix: spelling

* chore: use debugPrint instead of print

* feat(cat-voices): Catalyst Developer Profiler (#3533)

* feat: adding catalyst developer profiler

* feat: update CatalystDeveloperProfiler to use CatalystProfiler

* feat(cat-voices): workspace mocked data (#3524)

* chore: rename selectors widget

* chore: seperate widget into smaller files

* feat(cat-voices): Changing widget to slivers in workspace page for optimisation  (#3543)

* chore: refactor proposals list

* chore: change single child scroll view to custom scroll view and slivers

* chore: review update

* merge with main

* fix: uncomment runner in earthly

* feat(cat-voices): Expansion of CatalystProfiler coverage (#3547)

* feat: extending profiler for addtional functions

* fix: format

* fix: review

* feat(cat-voices): `CatalystVoicesDev` package (#3558)

* feat: creating dev package and first fakes

* chore: remove kd

* feat: mock compressor

* feat: mock key derivation

* feat: mock private key

* feat: mock repositories

* chore: resturcture dev package

* feat: using dev mock/fake compresion rbac classes

* fix: test

* chore: moving document factories to dev package

* fix: workspace bloc

* feat: use of document factory

* chore: self review

* fix: spelling

* fix: markdown

* fix: licenses

* fix: revert dev package from serialization

* fix: format

* chore: remove coverage_badge icons

* feat(cat-voices): Progressive loading indicator in app splash screen (#3557)

* feat: add progress of sync docs in splash screen

* chore: review update

* fix: review

* feat(cat-voices): documents indexing performance (#3555)

* docs: capture initial times

* chore: remove cacheDocument

* turn off logging

* chore: use debugPrint instead of logger

* feat: bulk documents save

* batching sync

* chore: move exact ref resoling to getDocumentData instead of index

* fix: DocumentRepository

* chore: simplify getting documents data

* remove getAllDocumentsRefs and getCachedDocumentsRefs from DocumentRepository. Index is only available in DocumentDataRemoteSource

* chore: update docs

* simplified document index endpoint

* remove randomness from LocalCatGateway

* indexing by batch size

* wip: filtering by types

* Rework filtering refs + checking all refs if already cached in parallel

* docs

* update indexing.csv

* update indexing csv

* chore: cleanup

* trailing new line

* chore

* move performance tab to docs

* bulk saving typed docs in parallel

* chore: revert hardcoded timestamp

* chore: typos

* split _sync into smaller functions + add documentation

* little refactor

* fix: analyzer

* feat(cat-voices): Filter out internal extensions exception  (#3586)

* feat: skip exception from internal extensions

* test: adding test cases

* fix: spelling

* chore: update README (#3613)

* feat(cat-voices): keychain state snackbars  (#3610)

* feat: adding new catalst messenger type - snackbar

* chore: remove snackbars from catalyst messanger

* chore: remove test data

* chore: remove unused method

* chore: restore method return type

* fix:  unbounded height error in account page

* refactor(cat-voices): delete keychain dialog  (#3618)

* wip

* wip

* chore: show dialog on proper page

* chore: remove old way of showing confirmation dialog

* chore: cleanup

* fix: format

* chore: review update

* fix: format

* chore: rename dialog to buildDialog

* feat(cat-voices): enable browser crypto api in wasm (#3640)

* chore: enable browser crypto api in wasm

* chore: use official dart cryptography

* chore: workaround for browser crypto api

* chore: docs

* feat(cat-voices): Enable wasm support for Catalyst Voices (#3622)

* feat: enable wasm support

* feat: update vscode launch.json to enable wasm

* fix: wasm undefined support

* chore: update to CI version with wasm support

* fix: undefined in wasm

* chore: cleanup

* style: spelling

* chore: add wasm argument

* fix: syntax

* chore: switch to master

* fix(cat-voices): revert local changes (#3651)

* docs(cat-voices): wasm performance documentation (#3658)

* docs: wasm performance improvements

* fix: scripts

* refactor(cat-voices): Reporting service fail gracefully (#3636)

* refactor: adding graceful failing for reporting service

* chore: change to const

* feat(cat-voices): release mode for flutter rust bridge (#3676)

* chore: update CI

* feat: enable release mode for flutter_rust_bridge

* chore: regenerate in release mode

* feat: regenerate

* chore: restore

* docs: readme

* chore: restore release mode

* feat(cat-voices): Versioning web build assets (#3643)

* feat: version assets script

* chore: review update

* fix: spelling

* chore: remove unused files

* chore: remove manifest ref

* chore: review update

* chore: fix path changing add wasm support

* chore: readme

* chore: update readme

* fix: spelling

* chore: remove url part

* wip

* wip

* wip

* chore: update gitignore

* chore: adding tests

* chore: update readme

* fix: spelling

* fix: spelling

* fix: spelling

* chore: filter target files

* chore: flutter_bootstrap don't rename canvaskit files

* chore: add new version to files

* chore: revert v1 versions of manual files

* feat(cat-voices): fine tune cache control for voices (#3687)

* feat: version assets script

* chore: review update

* fix: spelling

* chore: remove unused files

* chore: remove manifest ref

* chore: review update

* chore: fix path changing add wasm support

* chore: readme

* chore: update readme

* fix: spelling

* chore: remove url part

* wip

* wip

* wip

* chore: update gitignore

* chore: adding tests

* chore: update readme

* fix: spelling

* fix: spelling

* feat: new cache-control settings

* chore: update other caddyfiles

* fix: spelling

* fix: spelling

* fix: spelling

* chore: filter target files

* chore: flutter_bootstrap don't rename canvaskit files

* chore: add new version to files

* chore: revert v1 versions of manual files

---------

Co-authored-by: Dominik Toton <[email protected]>

* feat(cat-voices): New app version banner (#3714)

* feat: version assets script

* chore: review update

* fix: spelling

* chore: remove unused files

* chore: remove manifest ref

* chore: review update

* chore: fix path changing add wasm support

* chore: readme

* chore: update readme

* fix: spelling

* chore: remove url part

* wip

* wip

* wip

* chore: update gitignore

* chore: adding tests

* chore: update readme

* fix: spelling

* fix: spelling

* fix: spelling

* chore: filter target files

* chore: flutter_bootstrap don't rename canvaskit files

* feat: adding app metadata service

* feat: ui implementation for showing banner of new version

* fix: static ananlysis

* feat: change location of calling fun to check app version

* fix: better handling if router exists in context

* chore: add new version to files

* chore: revert v1 versions of manual files

* feat(cat-voices): Include username in `CatalystIdText` (#3725)

* feat: add username to catalyst id text

* refactor: to method instead of getter

* feat: update to include username in copy and not in ui

* refactor(cat-voices): revert wasm workaround for js undefined (#3741)

* feat(cat-voices): wrap CIP-30 and CIP-95 wallet APIs in JS to make place for catching and mapping errors (#3711)

* feat: wrap initial and full cardano wallet api in JS

* feat: map CIP-95 API

* fix: syntax

* feat(cat-voices): map JS wallet errors to dart models (#3712)

* feat: wrap initial and full cardano wallet api in JS

* feat: map CIP-95 API

* fix: syntax

* feat: map errors in JS to a format understandable by dart layer

* feat: map remaining errors

* fix: remove logs

* chore: cleanup

* fix: map exceptions

* chore: add tests

* chore: ignore invalid lint

* refactor: use recursion to parse wallet errors

* fix(cat-voices): handle account change error in cardano wallet (#3726)

* feat: cardano wallet decorator handling account change

* chore: cleanup

* chore: add test

* fix: reassign newly enabled delegate

* fix: reassign delegate

* refactor: revert wasm workaround for js undefined

* fix: parse js error

* feat(cat-voices): find manual version files through wildcard (#3723)

* feat: v1 version for key derivation

* feat: add wildcard support

* feat: adding v1 versions

* feat: update catalyst_compression to v1

* feat(cat-voices): profile app size (#3736)

* feat(cat-voices): svg vector graphics compiler (#3715)

* feat: precompile SVG assets

* feat: Convert images to WebP

* fix(cat-voices): compile svg to binary format (#3728)

* compile svg to binary format

* refactor

* feat(cat-voices): Add precompressed web files and Caddy configuration (#3719)

* feat: Add precompressed web files and Caddy configuration

* fix Caddy config

* fix

* fix

* fix

* refactor

* add 'precompressed' to project dictionary

* Update catalyst_voices/module.cue

Co-authored-by: Dominik Toton <[email protected]>

* refactor Caddy config

---------

Co-authored-by: Dominik Toton <[email protected]>

---------

Co-authored-by: Dominik Toton <[email protected]>

* feat(cat-voices): proposals page not found and other errors (#3751)

* feat: handle proposal page errors

* feat: add document hidden exception

* chore: cleanup

* feat: improve generic error state

* refactor: code review changes

* feat(cat-voices): add collaborator dialog (#3749)

* feat: adding translations

* feat: adding tryParse catalyst id method

* feat: adding collaborators view model

* feat: adding bloc

* feat: adding method in service

* feat: adding view models

* feat: adding ui

* chore: self review

* chore: review comments

* chore: remove test button

* feat(cat-voices): proposal viewer collaborators (#3761)

* feat: add collaborator invites

* feat: filter collaborators

* feat: ui for collaborators

* fix: color mapping

* chore: extract colors and labels to view models

* chore: cleanup

* style: spelling

* feat(cat-voices): localised wallet errors (#3763)

* feat: localized wallet errors

* fix: docs tests

* fix: spelling

* chore: move source code extraction to fallbackApiException

* chore: use _InfoCodeError.tryFrom

* feat(cat-voices): database optimization (#3655)

* feat(cat-voices): database migration (#3585)

* docs: capture initial times

* chore: remove cacheDocument

* turn off logging

* chore: use debugPrint instead of logger

* feat: bulk documents save

* batching sync

* chore: move exact ref resoling to getDocumentData instead of index

* fix: DocumentRepository

* chore: simplify getting documents data

* remove getAllDocumentsRefs and getCachedDocumentsRefs from DocumentRepository. Index is only available in DocumentDataRemoteSource

* chore: update docs

* simplified document index endpoint

* remove randomness from LocalCatGateway

* indexing by batch size

* wip: filtering by types

* Rework filtering refs + checking all refs if already cached in parallel

* docs

* update indexing.csv

* update indexing csv

* chore: cleanup

* trailing new line

* chore

* move performance tab to docs

* bulk saving typed docs in parallel

* chore: revert hardcoded timestamp

* chore: typos

* split _sync into smaller functions + add documentation

* little refactor

* fix: analyzer

* initial v2 tables

* wip

* wip

* feat: database migration

* chore: cleanup

* bump batch size

* cleanup

* chore: remove defensive content decoding

* spelling

* test on platform

* chore: update build scripts

* more migration test data

* clean up constructors

* cleanup

* fix: template tests

* fix: spelling

* fix code-generator earthly target

* use logger in migration + wrap in transaction

* chore: move migration transaction level higher

* feat(cat-voices): database queries migration and optimization (#3614)

* docs: capture initial times

* chore: remove cacheDocument

* turn off logging

* chore: use debugPrint instead of logger

* feat: bulk documents save

* batching sync

* chore: move exact ref resoling to getDocumentData instead of index

* fix: DocumentRepository

* chore: simplify getting documents data

* remove getAllDocumentsRefs and getCachedDocumentsRefs from DocumentRepository. Index is only available in DocumentDataRemoteSource

* chore: update docs

* simplified document index endpoint

* remove randomness from LocalCatGateway

* indexing by batch size

* wip: filtering by types

* Rework filtering refs + checking all refs if already cached in parallel

* docs

* update indexing.csv

* update indexing csv

* chore: cleanup

* trailing new line

* chore

* move performance tab to docs

* bulk saving typed docs in parallel

* chore: revert hardcoded timestamp

* chore: typos

* split _sync into smaller functions + add documentation

* little refactor

* fix: analyzer

* initial v2 tables

* wip

* wip

* feat: database migration

* chore: cleanup

* bump batch size

* cleanup

* chore: remove defensive content decoding

* chore: daos

* spelling

* saveAll

* test on platform

* chore: update build scripts

* feat: DocumentsV2Dao methods

* simple proposals pagination query

* chore: create a JoinedProposalBriefEntity

* rename method

* feat: exclude hidden proposals

* more tests

* renaming and splitting logic into smaller parts

* feat: per language strategy

* remove CatalystDatabaseLanguage in favor of raw queries as they are easier to mange

* remove Index Strategy Documentation

* handle case where ref is empty

* migration now includes indexes

* use v2 documents table for saveAll and isCachedBulk

* adds ActionType to JoinedProposalBriefEntity

* adds versionIds to JoinedProposalBriefEntity

* comments count

* adds isFavorite to JoinedProposalBriefEntity

* add template to JoinedProposalBriefEntity

* adds documentsLocalMetadata table for auto updates

* Update docs

* use v2 proposals query for discovery most recent section

* feat: simplify most recent proposals section

* add proposal fav status for v2 tables

* local proposal fav status update

* update fav state locally for faster feedback

* self review

* fix tests

* update times

* fix: analyzer

* more migration test data

* clean up constructors

* cleanup

* fix: template tests

* spelling

* fix: spelling

* chore: PR review adjustments

* fix: add discovery specific colors (#3637)

* fix code-generator earthly target

* use logger in migration + wrap in transaction

---------

Co-authored-by: Ryszard Schossler <[email protected]>

* feat(cat-voices): proposals query filtering (#3641)

* docs: capture initial times

* chore: remove cacheDocument

* turn off logging

* chore: use debugPrint instead of logger

* feat: bulk documents save

* batching sync

* chore: move exact ref resoling to getDocumentData instead of index

* fix: DocumentRepository

* chore: simplify getting documents data

* remove getAllDocumentsRefs and getCachedDocumentsRefs from DocumentRepository. Index is only available in DocumentDataRemoteSource

* chore: update docs

* simplified document index endpoint

* remove randomness from LocalCatGateway

* indexing by batch size

* wip: filtering by types

* Rework filtering refs + checking all refs if already cached in parallel

* docs

* update indexing.csv

* update indexing csv

* chore: cleanup

* trailing new line

* chore

* move performance tab to docs

* bulk saving typed docs in parallel

* chore: revert hardcoded timestamp

* chore: typos

* split _sync into smaller functions + add documentation

* little refactor

* fix: analyzer

* initial v2 tables

* wip

* wip

* feat: database migration

* chore: cleanup

* bump batch size

* cleanup

* chore: remove defensive content decoding

* chore: daos

* spelling

* saveAll

* test on platform

* chore: update build scripts

* feat: DocumentsV2Dao methods

* simple proposals pagination query

* chore: create a JoinedProposalBriefEntity

* rename method

* feat: exclude hidden proposals

* more tests

* renaming and splitting logic into smaller parts

* feat: per language strategy

* remove CatalystDatabaseLanguage in favor of raw queries as they are easier to mange

* remove Index Strategy Documentation

* handle case where ref is empty

* migration now includes indexes

* use v2 documents table for saveAll and isCachedBulk

* adds ActionType to JoinedProposalBriefEntity

* adds versionIds to JoinedProposalBriefEntity

* comments count

* adds isFavorite to JoinedProposalBriefEntity

* add template to JoinedProposalBriefEntity

* adds documentsLocalMetadata table for auto updates

* Update docs

* use v2 proposals query for discovery most recent section

* feat: simplify most recent proposals section

* add proposal fav status for v2 tables

* local proposal fav status update

* update fav state locally for faster feedback

* self review

* fix tests

* update times

* fix: analyzer

* more migration test data

* clean up constructors

* cleanup

* fix: template tests

* spelling

* fix: spelling

* chore: PR review adjustments

* add order parameter

* ProposalsOrder docs

* GetProposalsBriefPage supports order

* add filters object

* proposalsBriefPage filtering

* fix: status filtering

* more draft proposals filtering tests

* Campaign proposals filter

* update docs

* expose getVisibleProposalsCount and tests

* expose filters parameter

* integrate proposals page with v2 queries

* chore: increase time diff between proposals

* chore: reduce count query tables watched when not needed

* local proposals cubit

* local proposal fav staus update

* docs

* fix: add discovery specific colors (#3637)

* fix code-generator earthly target

* use logger in migration + wrap in transaction

* spelling

* rename category to categoryId for better consistency

* proposals per tab selector

* release completed in close

* extract early return logic into function

---------

Co-authored-by: Ryszard Schossler <[email protected]>

* feat(cat-voices): voting space (#3648)

* docs: capture initial times

* chore: remove cacheDocument

* turn off logging

* chore: use debugPrint instead of logger

* feat: bulk documents save

* batching sync

* chore: move exact ref resoling to getDocumentData instead of index

* fix: DocumentRepository

* chore: simplify getting documents data

* remove getAllDocumentsRefs and getCachedDocumentsRefs from DocumentRepository. Index is only available in DocumentDataRemoteSource

* chore: update docs

* simplified document index endpoint

* remove randomness from LocalCatGateway

* indexing by batch size

* wip: filtering by types

* Rework filtering refs + checking all refs if already cached in parallel

* docs

* update indexing.csv

* update indexing csv

* chore: cleanup

* trailing new line

* chore

* move performance tab to docs

* bulk saving typed docs in parallel

* chore: revert hardcoded timestamp

* chore: typos

* split _sync into smaller functions + add documentation

* little refactor

* fix: analyzer

* initial v2 tables

* wip

* wip

* feat: database migration

* chore: cleanup

* bump batch size

* cleanup

* chore: remove defensive content decoding

* chore: daos

* spelling

* saveAll

* test on platform

* chore: update build scripts

* feat: DocumentsV2Dao methods

* simple proposals pagination query

* chore: create a JoinedProposalBriefEntity

* rename method

* feat: exclude hidden proposals

* more tests

* renaming and splitting logic into smaller parts

* feat: per language strategy

* remove CatalystDatabaseLanguage in favor of raw queries as they are easier to mange

* remove Index Strategy Documentation

* handle case where ref is empty

* migration now includes indexes

* use v2 documents table for saveAll and isCachedBulk

* adds ActionType to JoinedProposalBriefEntity

* adds versionIds to JoinedProposalBriefEntity

* comments count

* adds isFavorite to JoinedProposalBriefEntity

* add template to JoinedProposalBriefEntity

* adds documentsLocalMetadata table for auto updates

* Update docs

* use v2 proposals query for discovery most recent section

* feat: simplify most recent proposals section

* add proposal fav status for v2 tables

* local proposal fav status update

* update fav state locally for faster feedback

* self review

* fix tests

* update times

* fix: analyzer

* more migration test data

* clean up constructors

* cleanup

* fix: template tests

* spelling

* fix: spelling

* chore: PR review adjustments

* add order parameter

* ProposalsOrder docs

* GetProposalsBriefPage supports order

* add filters object

* proposalsBriefPage filtering

* fix: status filtering

* more draft proposals filtering tests

* Campaign proposals filter

* update docs

* expose getVisibleProposalsCount and tests

* expose filters parameter

* integrate proposals page with v2 queries

* chore: increase time diff between proposals

* chore: reduce count query tables watched when not needed

* local proposals cubit

* local proposal fav staus update

* docs

* fix: add discovery specific colors (#3637)

* fix code-generator earthly target

* use logger in migration + wrap in transaction

* spelling

* wip

* rename category to categoryId for better consistency

* adding vote data to ProposalBriefData

* fix: dependencies

* voting page + cubit integration - wip

* proposals per tab selector

* release completed in close

* extract early return logic into function

* Voting tabs selector + releasing completer on close

* move spaces blocs to shell page level

* fix: voting in grid view

* dummy voting integration

* chore: remove showComments

* docs: ProposalOrDocument

---------

Co-authored-by: Ryszard Schossler <[email protected]>

* feat(cat-voices): database queries cleanup (#3672)

* docs: capture initial times

* chore: remove cacheDocument

* turn off logging

* chore: use debugPrint instead of logger

* feat: bulk documents save

* batching sync

* chore: move exact ref resoling to getDocumentData instead of index

* fix: DocumentRepository

* chore: simplify getting documents data

* remove getAllDocumentsRefs and getCachedDocumentsRefs from DocumentRepository. Index is only available in DocumentDataRemoteSource

* chore: update docs

* simplified document index endpoint

* remove randomness from LocalCatGateway

* indexing by batch size

* wip: filtering by types

* Rework filtering refs + checking all refs if already cached in parallel

* docs

* update indexing.csv

* update indexing csv

* chore: cleanup

* trailing new line

* chore

* move performance tab to docs

* bulk saving typed docs in parallel

* chore: revert hardcoded timestamp

* chore: typos

* split _sync into smaller functions + add documentation

* little refactor

* fix: analyzer

* initial v2 tables

* wip

* wip

* feat: database migration

* chore: cleanup

* bump batch size

* cleanup

* chore: remove defensive content decoding

* chore: daos

* spelling

* saveAll

* test on platform

* chore: update build scripts

* feat: DocumentsV2Dao methods

* simple proposals pagination query

* chore: create a JoinedProposalBriefEntity

* rename method

* feat: exclude hidden proposals

* more tests

* renaming and splitting logic into smaller parts

* feat: per language strategy

* remove CatalystDatabaseLanguage in favor of raw queries as they are easier to mange

* remove Index Strategy Documentation

* handle case where ref is empty

* migration now includes indexes

* use v2 documents table for saveAll and isCachedBulk

* adds ActionType to JoinedProposalBriefEntity

* adds versionIds to JoinedProposalBriefEntity

* comments count

* adds isFavorite to JoinedProposalBriefEntity

* add template to JoinedProposalBriefEntity

* adds documentsLocalMetadata table for auto updates

* Update docs

* use v2 proposals query for discovery most recent section

* feat: simplify most recent proposals section

* add proposal fav status for v2 tables

* local proposal fav status update

* update fav state locally for faster feedback

* self review

* fix tests

* update times

* fix: analyzer

* more migration test data

* clean up constructors

* cleanup

* fix: template tests

* spelling

* fix: spelling

* chore: PR review adjustments

* add order parameter

* ProposalsOrder docs

* GetProposalsBriefPage supports order

* add filters object

* proposalsBriefPage filtering

* fix: status filtering

* more draft proposals filtering tests

* Campaign proposals filter

* update docs

* expose getVisibleProposalsCount and tests

* expose filters parameter

* integrate proposals page with v2 queries

* chore: increase time diff between proposals

* chore: reduce count query tables watched when not needed

* local proposals cubit

* local proposal fav staus update

* docs

* fix: add discovery specific colors (#3637)

* fix code-generator earthly target

* use logger in migration + wrap in transaction

* spelling

* wip

* rename category to categoryId for better consistency

* adding vote data to ProposalBriefData

* fix: dependencies

* voting page + cubit integration - wip

* proposals per tab selector

* release completed in close

* extract early return logic into function

* Voting tabs selector + releasing completer on close

* move spaces blocs to shell page level

* fix: voting in grid view

* dummy voting integration

* chore: remove showComments

* docs: ProposalOrDocument

* create proposals/count query .csv files

* update proposals query times

* category indexes

* CatId parse and tryParse

* create new tables for authors

* update migration

* run database analyze after sync

* DocumentAuthors docs

* simpler copyWith

* cat.id keeps schema

* get rid of authorCatIdWithoutUsername column

* console profiler

* catId -> id

* times

* results notes

* spelling

* fix: analyzer

* update results (#3673)

* fix: readme

* remove CatalystRuntimeProfiler

* catId schema -> scheme

* rename

* bring back profiler to SignedDocumentManager, with debounce

---------

Co-authored-by: Ryszard Schossler <[email protected]>

* feat(cat-voices): campaign total ask (#3734)

* remove totalAsk and proposalsCount from campaign model

* proposalsCount -> finalProposalsCount

* CampaignCategoryViewModel.id -> CampaignCategoryViewModel.ref

* little DiscoveryCubit state build cleanup

* watch campaign total ask in discovery

* smaller voting category model

* new proposal campaign

* safe check

* proposal builder category total ask

* chore: missing TODO

* category details

* watch proposals template total ask

* finish integration of total_ask

* close

* remove print and add TODO

* documents getLatestOf

* categoryId -> categoryRef

* chore: make logger private

* feat: Make MultiCurrencyAmount immutable

* chore(cat-voices): remove old daos (#3745)

* remove totalAsk and proposalsCount from campaign model

* proposalsCount -> finalProposalsCount

* CampaignCategoryViewModel.id -> CampaignCategoryViewModel.ref

* little DiscoveryCubit state build cleanup

* watch campaign total ask in discovery

* smaller voting category model

* new proposal campaign

* safe check

* proposal builder category total ask

* chore: missing TODO

* category details

* watch proposals template total ask

* finish integration of total_ask

* close

* remove print and add TODO

* documents getLatestOf

* remove old tables and daos

* deleteWhere tests

* remove old pagination and count methods

* local draft documents dao

* categoryId -> categoryRef

* chore: notInType -> typeNotIn

* chore: move DriftDocumentsV2LocalMetadataDao setup into group

* separate get and getWhere

* docs: documents sources interfaces documentation

* chore: methods rename

* chore: refTo -> referencing

* chore: typeNotIn -> excludeTypes

* update content

* feat(cat-voices): smaller proposals query scope (#3747)

* smaller proposals page query

* update PR nr

* test(cat-voices): enable back index tests (#3766)

* chore: remote source tests

* SyncManager and DocumentService tests

* chore(cat-voices): cleanup miss leading "ref" / "selfRef" with "id" (#3762)

* remove totalAsk and proposalsCount from campaign model

* proposalsCount -> finalProposalsCount

* CampaignCategoryViewModel.id -> CampaignCategoryViewModel.ref

* little DiscoveryCubit state build cleanup

* watch campaign total ask in discovery

* smaller voting category model

* new proposal campaign

* safe check

* proposal builder category total ask

* chore: missing TODO

* category details

* watch proposals template total ask

* finish integration of total_ask

* close

* remove print and add TODO

* documents getLatestOf

* remove old tables and daos

* deleteWhere tests

* remove old pagination and count methods

* local draft documents dao

* categoryId -> categoryRef

* chore: notInType -> typeNotIn

* chore: move DriftDocumentsV2LocalMetadataDao setup into group

* separate get and getWhere

* docs: documents sources interfaces documentation

* chore: methods rename

* chore: refTo -> referencing

* chore: typeNotIn -> excludeTypes

* update content

* feat(cat-voices): smaller proposals query scope (#3747)

* smaller proposals page query

* update PR nr

* silence warning

* chore: version -> ver

* fix: ref test

* chore: remove id and version getters from  DocumentDataMetadata

* selfRef -> id part1

* chore: selfRef -> id

* chore: use more of ids

* chore: use Map.of instead of Map.from

* dtos migration tests

* fix: analyzer

---------

Co-authored-by: Ryszard Schossler <[email protected]>

* feat(cat-voices): proposal viewer accept collaborator invitation (#3770)

* feat: collaborator accept / reject invitation dialog

* chore: cleanup code

* feat: add invitation banner

* refactor: do not create subscriptions when proposal cubit is closed

* feat: add invitation state and banner to proposal viewer

* feat: show accepted / rejected banners

* feat: error handling and service layer

* fix: proposal header animation

* feat: reorder headers

* chore: cleanup l10n

* refactor: code review changes

* style: indentation

* style: markdown fix

* feat(cat-voices): Proposal brief card collaborators (#3784)

* feat: integrate proposal brief card collaborators

* loc and

* feat(cat-voices): workspace filtering and tabs (#3765)

* feat: adding translations

* chore: update workspace page

* chore: update user proposals

* feat: workspace proposal filter

* chore: adding new implemention of proposal brief

* feat: workspace proposal tab

* feat: adding new proposal invites

* chore: move widgets in widget dir

* feat: adding empty state for proposal invites

* feat: updating filters

* feat: updating filters options

* feat: proposal invites count

* fix: spelling

* chore: review update

* feat: adding new options to filters and brief data

* feat(cat-voices): Using new stream source for WorkspaceBloc (#3785)

* feat: working integration

* chore: use bloc instead of cubit

* chore: final changes

* chore: selfreview

* feat: review update

* fix: readme

* chore: rename factory constructor

* feat: merge collaborators status enum into one

* fix: format

* fix(cat-voices): spelling (#3806)

* fix: spelling

* remove back slach

* fix: README

* feat(cat-voices): Collaborator workspace cards (#3802)

* feat: new workspace proposal cards

* feat: adding collaborator response to leave

* chore: remove offstage widget

* fix(cat-voices): add validation based on significant part of catalystId (#3808)

* feat(cat-voices): collaborators hover in workspace cards (#3809)

* wip

* feat: tooltip proposals

* chore: rename iconWidget to icon as its not a widget anymore

* chore: rename main proposer + collaborators as contributors

* feat(cat-voices): validate collaborator CatalystId (#3815)

* feat: validate for collaborator impl

* feat: change return type to more meaningful

* chore: refactor

* chore: refactor

* chore(cat-voices): port part of signed docs 0.0.4 updates (#3790)

* chore: port over parameters changes

* feat(cat-voices): adjust database to signed docs 0.0.4 (#3791)

* tables

* wip

* proposals dao tests

* bump db schema

* db index name fix

* migration -> use createAll()

* update migration

* update migration

* chore: remove print

* update ref dto flatten implementation

* migration toFlatten()

* fix: proposals dao

* fix: documents dao and local drafts dao

* chore: clean up TODO

* fix: failing tests

* chore: markdown order

* web: skips for db tests

* fix: db tests on web

* fix: analyzer

* unskip tests

* rename

* CatalystId.toUri -> CatalystId.toString

* use same instead of identical

* use hasLength

* metadata dao tests

* use hasLength in documents v2 dao

* feat: use hasLength in proposals v2 dao tests

* fix(cat-voices): storing catIds with coma usernames (#3813)

* tables

* wip

* proposals dao tests

* bump db schema

* db index name fix

* migration -> use createAll()

* update migration

* update migration

* chore: remove print

* update ref dto flatten implementation

* migration toFlatten()

* fix: proposals dao

* fix: documents dao and local drafts dao

* chore: clean up TODO

* fix: failing tests

* chore: markdown order

* web: skips for db tests

* fix: db tests on web

* fix: analyzer

* unskip tests

* chore: use converters

* update tests

* hello world test

* fix: documents dao hasLength

* feat(cat-voices): filtering proposals by original author (#3810)

* tables

* wip

* proposals dao tests

* bump db schema

* db index name fix

* migration -> use createAll()

* update migration

* update migration

* chore: remove print

* update ref dto flatten implementation

* migration toFlatten()

* fix: proposals dao

* fix: documents dao and local drafts dao

* chore: clean up TODO

* fix: failing tests

* chore: markdown order

* web: skips for db tests

* fix: db tests on web

* fix: analyzer

* unskip tests

* feat: filtering author on first version

* change filter name from author to originalAuthor

* Adds originalAuthor filter to documentsDao

* authorId -> originalAuthorId

* originalAuthors

* fix: spelling

* use authors from documents for originalAuthors

* feat(cat-voices): validating proposal submission action author (#3814)

* tables

* wip

* proposals dao tests

* bump db schema

* db index name fix

* migration -> use createAll()

* update migration

* update migration

* chore: remove print

* update ref dto flatten implementation

* migration toFlatten()

* fix: proposals dao

* fix: documents dao and local drafts dao

* chore: clean up TODO

* fix: failing tests

* chore: markdown order

* web: skips for db tests

* fix: db tests on web

* fix: analyzer

* unskip tests

* feat: filtering author on first version

* change filter name from author to originalAuthor

* Adds originalAuthor filter to documentsDao

* authorId -> originalAuthorId

* originalAuthors

* fix: spelling

* docs

* use authors from documents for originalAuthors

* fix: campaign total ask tests

* fix: proposals dao tests

* test: proposals dao authors

* fix: spelling

* chore: extract _getValidActionsCTE()

* chore(cat-voices): adapt signed documents paring (#3823)

* chore: adapt signed documents paring

* chore: rename + throw exception for invalid signed docs

* feat(cat-voices): Add collaborators section to proposal builder (#3803)

* Add collaborators section to proposal builder

* refactor

* refactor

* refactor

* Add `coproposer` to project dictionary

* Update catalyst_voices/packages/internal/catalyst_voices_models/lib/src/document/specialized/proposal_document.dart

Co-authored-by: Ryszard Schossler <[email protected]>

* refactor

* refactor

* refactor

---------

Co-authored-by: Ryszard Schossler <[email protected]>

* feat(cat-voices): proposals briefs collaborators updates (#3822)

* chore: missing TODO

* wip

* Mapping proposal action to status

* chore: rollback rename

* feat: implementation of getCollaboratorsActions

* CatalystIdFactory

* brief factory test

* local cat gateway collaborators

* remove TODO

* chore: shorter DocumentRef.contains syntax

* chore: DocumentDataFactory contentData -> content

* chore: split getCollaboratorsActions into two functions

* fix: typo

* feat(cat-voices): local drafts authors significant (#3846)

* local drafts authorsSignificant

* chore: change back method name

* bring back db schema

* name test file

* feat(cat-voices): campaign switching (#3847)

* chore: use consts

* fix: date format

* feat: set active campaign

* feat: add ui in dev tools to change active campaign

* chore: add more logs

* fix: responsive

* chore: code review changes

* feat(cat-voices): workspace local drafts query (#3844)

* wip

* feat: querying local drafts

* getLocalDraftsProposalsBrief unit tests

* Merging local and signed proposals briefs

* Merge signed docs with local drafts

* chore: comment

* use authorsSignificant for workspace local drafts

* fix: ProposalBriefData optional copyWith parameters

* chore(cat-voices): CatId optimisation (#3852)

* CatId.uid and rewrite sameAs

* chore: cleaner docs

* feat(cat-voices): Document metadata query (#3841)

* implement getDocumentMetadata

* add Metadata view

* add tests

* fix conflict

* refactor

* exclude drift generated files from analysis

* refactor

* refactor

* fix tests

* fix get signed document metadata

* feat(cat-voices): author or collaborator filter (#3855)

* feat: proposal filters relationships

* CollaborationInvitation filter clause

* unit tests for relationships filters

* chore: cleanup

* feat(cat-voices): new datasource of proposal data (#3845)

* feat: first version of models

* feat: first version of query

* feat: extract common subqueries

* feat: add tests

* feat: mapping collaborators

* chore: remove comments

* chore: add tests

* chore: update getPreviousOf

* chore: adding test for setting collaborators statuses

* chore: find actions for proposal id

* chore: fix spelling

* chore: no setup for actions in raw proposal

* feat: upate action getter

* fix: tests

* chore: add unit test for proposals_v2_dao

* chore: adding test

* fix: format

* chore: refactor review

* chore: clean up todo

* fix: format

* feat(cat-voices): Proposal briefs versions titles (#3854)

* fetch and map titles for proposal versions

* refactor

* fix tests

* format

* fix tests

* refactor

* support fetching version titles from local drafts

* move createdAt and primaryKey to DocumentTableMixin

* refactor

* refactor

* refactor

* feat(cat-voices): campaign switching sync documents (#3856)

* feat: handle active campaign changes

* fix: sync deadlock

* chore: add tests for active campaign change

* chore: cleanup

* feat: handle active campaign changes

* feat: categoryTotalAsk uses correct campaign filter

* feat: handle filters change in proposals cubit

* feat: handle campaign changes in voting cubit

* chore: remove unused code

* chore: reformat code

* chore: cleanup

* chore: reformat

* fix: distinct comparison

* chore: code review changes

* chore: spelling

* refactor: move SyncManager stream subscription to the init() from the constructor

* feat(cat-voices): documents artifacts (#3863)

* feat: documents artifacts

* sync doc artifacts

* SignedDocument artifact

* update migration

* cleanup migration ref dto

* feat: expose getDocumentArtifact

* test: documents dao tests

* chore: move TODOs

* chore: documentation of DocumentRepository

* fix(cat-voices): workspace page tab count (#3867)

* feat: include local proposal into count

* chore: add tests

* fix: format

* fix: review

* chore: review comments update

* fix: wrong name

* feat(cat-voices): using stream to get proposal (#3857)

* feat: first version of models

* feat: first version of query

* feat: extract common subqueries

* feat: add tests

* feat: mapping collaborators

* chore: remove comments

* chore: add tests

* chore: update getPreviousOf

* chore: adding test for setting collaborators statuses

* chore: find actions for proposal id

* chore: fix spelling

* chore: no setup for actions in raw proposal

* feat: upate action getter

* fix: tests

* chore: add unit test for proposals_v2_dao

* chore: adding test

* fix: format

* chore: refactor review

* chore: clean up todo

* wip

* feat: using new proposal model

* fix: format

* chore: review update

* feat(cat-voices): proposal viewer invites banners and dialogs updates (#3901)

* feat: invitation banner changes

* chore: convert to sealed class

* feat: add more states for proposal collaborator banner

* fix: translations

* fix: translations

* fix: icon

* chore: extract common widgets

* feat: call proposal service to respond to collaborator action

* feat(cat-voices): Collaborator workspace UI update (#3885)

* feat: include local proposal into count

* chore: add tests

* fix: format

* fix: review

* chore: remove tabs

* feat: button ui

* wip

* wip

* chore: working tests

* feat: adding common filters

* feat: listen to streams

* chore: review comments update

* fix: wrong name

* fix: review update

* feat(cat-voices): view local version in proposal viewer (#3864)

* feat: first version of models

* feat: first version of query

* feat: extract common subqueries

* feat: add tests

* feat: mapping collaborators

* chore: remove comments

* chore: add tests

* chore: update getPreviousOf

* chore: adding test for setting collaborators statuses

* chore: find actions for proposal id

* chore: fix spelling

* chore: no setup for actions in raw proposal

* feat: upate action getter

* fix: tests

* chore: add unit test for proposals_v2_dao

* chore: adding test

* fix: format

* chore: refactor review

* chore: clean up todo

* wip

* feat: using new proposal model

* feat: quering local proposal

* fix: format

* feat: merging local and public versions

* feat: rebuild when account change

* chore: add tests

* chore: add prev metadata info

* fix: spelling

* fix: format

* fix: tests

* chore: cleanup

* chore: review updates

* chore: review update

* fix: format

* chore: fix skip

* fix: format

* fix: format

* feat(cat-voices): Session my action button (#3900)

* feat: include local proposal into count

* chore: add tests

* fix: format

* fix: review

* chore: remove tabs

* feat: button ui

* wip

* wip

* chore: working tests

* feat: adding common filters

* feat: listen to streams

* chore: review comments update

* fix: wrong name

* feat: ui part

* feat: add bloc logic

* fix: review update

* feat: review update

* feat: review update

* feat(cat-voices): dialog changes (#3908)

* feat(cat-voices): Restore workspace bloc tests (#3909)

* chore: restore worksapce bloc tests

* chore: export private method

* feat(cat-voices): collaborators any status (#3911)

* feat: update filters to support any invitation status

* fix: format

* feat(cat-voices): collaborators data to collaborator proposal cubit state (#3916)

* feat: map collaborators data into proposal collaborator state

* feat: review update

* feat(cat-voices): db tables indexes and simpler effectiveProposals CTE (#3924)

* DB tables indexes and simpler effectiveProposals CTE

* docs: update times

* feat(cat-voices): Remove submission close date from campaign category (#3923)

* feat: submission close date

* feat: signal and look up cache

* chore: leave todo

* fix: format

* refactor: use spacing

* feat(cat-voices): My actions page and sub-routes navigation (#3891)

* add `My Actions` drawer

* Add proposal approval and co-proposer consent pages

* Use ShellRoute for actions drawer

* refactor

* improve end drawer route handling

* preserve query parameters on route stack rebuild

* refactor

* refactor

* chore: add ActionsShellPage.close()

---------

Co-authored-by: Damian MoliÅ„ski <[email protected]>
Co-authored-by: Damian Molinski <[email protected]>

* feat(cat-voices): mini sync (#3902)

* chore: remove unnecessary useCache parameter

* chore: move docs synchronisation logic out into separate class

* sync_request

* chore: stable documents ids

* wip

* changing proposal stream only when significant part of catalystId changes

* wip

* rename

* add _syncProposal and move errors mapping + loading status there

* sync and watch proposal

* wip

* queue documents sync requests

* sync manager tests

* feat: target sync on proposal route

* queue target mini sync

* chore: safe index mapping

* sync request steps

* chore: fix typo

* remote latest ver

* complete request

* queries

* proposal template, if missing

* checking initial location in app splash manager

* chore: cleanup

* chore: typos

* chore: direct use _activeRequest

* id instead of ref for fav toggle

* move init logic out of bootstrap to choreographer

* fix: spelling

* chore: fix imports

* feat(cat-voices): my actions page (#3928)

* feat: action types widget

* feat: cards

* feat: action list

* feat: adding bloc logic

* chore: clean up

* fix: format

* chore: review update

* fix: CTA for button

* fix: review update

* chore: remove late

* chore: add stop

* refactor(cat-voices): replace dummy catalyst id factory (#3950)

* refactor: replace catalyst id dummy factory

* chore: spelling

* feat(cat-voices): collaborator display consent page  (#3948)

* feat: action types widget

* feat: cards

* feat: action list

* feat: adding bloc logic

* chore: clean up

* fix: format

* chore: review update

* fix: CTA for button

* feat: setting up structure

* fix: review update

* chore: remove late

* chore: add stop

* feat: ui

* feat: ui

* feat: cubit setup

* feat: datetimes in ui

* feat: adding empty state and connecting cubit to ui

* feat: adding error handling

* feat: add cubit tests

* chore: self review

* chore: fix test

* chore: review update

* chore: throw error on not active account as collaborator

* chore: moved setUpAll method

* chore: review and fix tests

* chore: unawait

* fix: analyzer

* chore: CategoryPage categoryRef -> categoryId

* feat: handle not found public profile better

* feat(cat-voices): final proposal approval page (#4017)

* feat: translations + page skeleton

* feat: proposal approval tabs

* feat: cubit implementation, add cards

* feat: minor ui tweaks

* feat: add hint

* fix: nested scroll

* feat: filter collaborators

* fix: filtering

* fix: formatting

* fix: formatting

* chore: cleanup

* fix: spelling

* chore: code review changes

* feat(cat-voices): integrate responding to collaborator invites (#3929)

* feat: respond to collaborator invitation

* chore: remove unused class

* fix: remove unused export

* chore: code review changes

* fix: tests

* feat: sign raw payload to avoid double-compressing the same payload

* docs: clarifications

* fix: tests

* refactor: extract code

* fix: spelling

* fix: unused params

* fix: encoding

* fix: tests

* feat: add cose payload

* feat: signed document payload bytes clarification

* chore: reformat

* refactor: change variable name to reflect it's state

* chore: TODO

* refactor(cat-voices): Organise catalyst voices models exports (#4026)

* refactor: reorganize exports

* fix: unwanted export

* feat(cat-voices): preserve document encoding when updating collaborators (#4031)

* fix: tests

* feat: preserve document content encoding and other headers

* fix: mapper id

* fix: test assertion

* chore(cat-voices): Update category_id for collaborators proposal template

* fix(cat-voices): fix close button on display consent (#4030)

* fix: fix close button to work

* chore: remove unessesary builder

* fix(cat-voices): redirect to viewer (#4043)

* fix(cat-voices): Persist collaborators on local save (#4035)

* fix: Persist collaborators on local save

* add tests

* fix: last change of display consent (#4045)

* chore(cat-voices): final approval filter with more flexibility to filter decide/final (#4064)

* feat: proposal approval status filtering

* fix: export files

* fix(cat-voices): Showing proper version in ProposalViewer and showing collaborators when user is an author in Workspace (#4079)

* fix: show tooltip for author if collaborators are added

* feat: filter out collaborators from document segments

* fix: removing collaborators correct id (#4091)

* fix: resolving invitation status for final proposals (#4092)

* fix(cat-voices): proposals approval count (#4096)

* chore: cleanup

* feat: implement ProposalApproval ProposalsRelationship

---------

Co-authored-by: Damian MoliÅ„ski <[email protected]>
Co-authored-by: Damian Molinski <[email protected]>
Co-authored-by: Dominik Toton <[email protected]>
Co-authored-by: Dominik Toton <[email protected]>
Co-authored-by: Bartek StoliÅ„ski <[email protected]>
Co-authored-by: Bartek StoliÅ„ski <[email protected]>
feat(cat-voices): become representative action (#4083)
* feat: action cards empty state

* feat: become representative card

* feat: hint card text

* feat: setup bloc

* fix: spelling

* chore: update assets

* feat: add bloc logic

* feat: localizations

* feat: view models

* feat: widgets

* feat: additional actions

* feat: extracting same logic

* feat: refactor

* chore: self review

* fix: refactor review