Projects, Roster and Inbox: sync tasks, runs and the Inbox from every connected Muster Server at once
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- electron, typescript
- 領域
- desktop
調査の方向性
Start from runtime/domains/paperclip.ts, where the single-server sync pipeline (OrgReader, live socket, writes) lives. Read #803 and spec clause 13 to learn the current connection model. Write workflow tests for two-server sync first (red), then merge one reader per server into a tagged snapshot. Done when acceptance criteria 1-4 pass: both servers' rows show labelled and writes route to source.
索引モデルが issue の本文から書いたものです。
説明
Follow-up to #803 (part of #146 / #147).
After #803, Settings › Integrations holds many Muster Servers side by side. Projects and orgs are read from every connected server at once and labelled with their server. Tasks-as-chats, Roster, Inbox, Ledger, runs, routines, approvals and the live socket still sync from one server at a time: the one marked "Projects, Roster and Inbox sync from this server" in the list, changed with Use for Projects.
That sync is one pipeline in runtime/domains/paperclip.ts: one backend, one org read (built), one live socket and session, one write path, and orgs.*/check-out on that connection. Merging it across servers means:
- one
OrgReaderand live socket per connected server, merged into one snapshot with every row tagged by server; - writes (comment, status, assign, approve, cancel run, Work locally) routed to the server the row came from;
- the Inbox and badge counting items from every server;
- approvals carried over by an import decidable on the server they came from, not only the synced one (
linkedApproval); - a browser-session cookie for a server that is not the synced one kept for that server (today it waits on the synced connection).
Acceptance (spec clause 13, workflow tests red first):
- With two servers connected, tasks, agents, runs and Inbox items from both show at once, each labelled with its server.
- Acting on a row writes only to its own server.
- One server going offline shows its rows as offline and leaves the other's live.
- No "Use for Projects" choice is needed any more; it is removed.
- 主要言語
- TypeScript
- スター
- 3
- フォーク
- 0
- 平均マージ
- 17時間 33分
- マージ済み PR(30日)
- 163
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
musterhq/muster-code のほかの issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
musterhq/muster-code#866 ·
メンテナーはふだん 1 日以内に返信
-
p2 type:feature
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
musterhq/muster-code#843 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
p1 type:feature
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
musterhq/muster-code#840 ·
メンテナーはふだん 1 日以内に返信
-
p1 type:feature
難易度 5/5 1週間以上 初心者へのやさしさ 30/100
musterhq/muster-code#829 ·
メンテナーはふだん 1 日以内に返信
-
type:bug
難易度 3/5 1〜2日 初心者へのやさしさ 70/100
musterhq/muster-code#815 ·
メンテナーはふだん 1 日以内に返信
musterhq/muster-code の issue をすべて見る
似ている issue
-
[analytics-core] getQueryParams does not decode `+` as space and truncates values containing `=`オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
amplitude/Amplitude-TypeScript#2179 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
ci good first issue severity: low
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
TMHSDigital/GH-Arcade#111 ·
-
AsnIntegerConverter.toASN coerces strings with +value, rounding integers outside safe-integer rangeオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
PeculiarVentures/asn1-schema#189 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 4 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100