How should we coordinate as contributors/maintainers? #2528
-
|
Hi everyone, since more people are getting involved and the repo is moving pretty fast, should we maybe align a bit on how we want to coordinate? Nothing overly formal, just things like where quick questions should go, when to keep discussion in PRs/issues, how to avoid duplicate work, and how to flag stuff that needs another reviewer or specific testing. I’d assume PR/issue-specific context stays there, but for broader coordination it might be useful to agree on a dedicated channel or workflow. Since the repo is getting pretty large, having one place for maintainer/contributor coordination could help avoid confusion and keep things moving. That could be GitHub Discussions, a dedicated chat channel like Discord/Matrix/Slack for quick coordination/problem solving, or some other lightweight collaboration workflow, whatever fits the project/maintainers best. Personally, Discord would work well for me, but I’m happy to adapt to whatever the group prefers. One thing that might also be worth clarifying: for potential security vulnerabilities, especially anything involving serious issues, we probably shouldn’t disclose details publicly before there’s been a chance to review and fix them. Maybe those should go through a private maintainer channel or whatever security reporting flow the project/maintainers prefer. Also, I’d avoid sharing personal emails in public threads and stick to GitHub handles or a private channel for dedicated maintainers if needed. Curious what everyone prefers. — Michiel |
Beta Was this translation helpful? Give feedback.
Replies: 24 comments 58 replies
-
|
Discord is a data broker. Although you probably won't expose anything sensitive on the Oddy channel, I still think that using a known data broker as a comms channel for a tool intended to help you avoid data brokers is a bad look. Plus three people have already made discords, and they all suck. Apart from the data capture stuff, Discord as a platform actually sucks. It invites lurking and sniping since you can't ever tell who's online. I would start an IRC channel on a privacy-focussed IRC network, or better yet start a new IRC network.. |
Beta Was this translation helpful? Give feedback.
-
|
tbh - felix needs to assign an official team to help organize/structure the project. think of it like this: Felix learned to cook up a bunch of dishes, created a menu and now opened a restaurant. the problem is the kitchen is full.. there's too many cooks in the kitchen. the kitchen is noisy, hard to understand whats going on: the folks in the kitchen who have worked in kitchens before are all looking around thinking "where's the chef? what's the menu? what station am I covering? who's running the show here?" - because they know how to get involved and be helpful the folks in the kitchen who have not worked in kitchens before, and have no idea how 'things work' in kitchens, are asking how to eat the food - because they don't understand the different between the kitchen and a dinning room, they're just excited to be here. Nobody is wrong or bad here, it's just a lack of structure/organization. That stuff takes effort, and it's not easy to know where to start whenever you're jumping into a new industry/area without a ton of experience or guidance. The project is incredibly interesting to follow and watch evolve. Felix just needs to take a little time to find someone he can trust to step in and help fill some of the gaps that inexperience creates, that will lead to building a team and setting some boundaries/guidance for how to contribute to the project, so the maintainers can start being productive instead of treading water with the sea of PRs and issues being added hourly. (non of this is meant to be negative towards anyone, just constructive critism) |
Beta Was this translation helpful? Give feedback.
-
|
I’m responding to this after spending around 9 hours moving AI-generated content, closing duplicate issues/discussions, and trying to keep the repo somewhat manageable, so I want to clarify a few things. First of all, the main reason I opened this discussion was because I think we need to get the core maintainers together in some kind of group, call, or meeting. Why? Because developing good code and managing a massive project with a lot of contributors are two completely different things....There are clearly a lot of people with all kinds of domain knowledge who are willing to help, but I dont think we’ve really asked the bigger question yet of does @pewdiepie-archdaemon actually want all this extra hassle of the decision-making, managing a team, handling contributor flow, triage, onboarding, review coordination, and all the process work that comes with a project growing this fast? He has clearly stated this is a passion project for him. I do believe he wants to see it grow, but I also believe he probably enjoys the process of coding, making cool features, experimenting, and enjoying the work more than managing a whole team around it. so thats exactly why that kind of burden a dedicated maintainer group he can trust could and should take over, not to take anything of the project away from him, but to let him spend more time doing what he actually loves to do, while trusted maintainers handle the operational side: triage, duplicate cleanup, contributor onboarding, review routing, docs coordination, and keeping the project organized. So to me, the first question is not really should we use discord, IRC, forum, or something else?? The main question is: what does Felix want to own/do personally, and what does he want to delegate? until we know that stick me on a hobbyhorse, give me a helmet and let me charge trough this beautifull mess Much love, ps: Yeeeeehaw |
Beta Was this translation helpful? Give feedback.
-
|
I wanted to add a bit of context from my side, since I’ve been spending a good amount of time on triage/review recently. First and foremost, I agree with the point already made above: a lot depends on the direction @pewdiepie-archdaemon wants to take, and how he wants to handle the project moving forward. It is his project, and larger product/roadmap decisions should stay with him and the maintainer group, not happen accidentally through individual PRs. The way I’m trying to help right now is mostly operational: doing whatever seems most useful to unblock the repo, whether that is triage, review cleanup, CI signal, duplicate/stale PR cleanup, small focused fixes, or making sure merge decisions have enough validation behind them. Longer term, I would love to help push Odysseus toward becoming a production-ready tool: scalable, maintainable, reliable, and safe to build on. For me, that means controlled and precise refactoring, improving the test suite, reducing confusing failure modes, and making the codebase easier to review and evolve over time. For now though, I’m happy to help wherever the pressure is highest. The repo is moving fast, so I think the most useful work right now is keeping things clean and reviewable: narrow PRs, clean diffs, focused validation, clear CI signal, and extra care around security or owner-scope changes. That is the direction I’m trying to support: helping the project stay organized, reliable, and easier for everyone to contribute to, while keeping the bigger decisions explicit and aligned with Felix’s vision. Best regards, |
Beta Was this translation helpful? Give feedback.
-
|
At work we have pretty strict rules around this stuff, PRs do one thing, CI has to pass, nothing merges without multiple reviewers signing off. So coming at this from that angle. The platform question is secondary for me. What I keep noticing is AI agents scanning the codebase, opening issues they found themselves, then immediately raising a PR against it. Nobody ran the app, nobody hit an actual problem. Issues should come from people actually using the thing, real bugs, real feature requests. That's what's worth acting on, and right now it's hard to find. I think as maintainers/contributors we should wait and see what Felix wants to do with the project before making any big structural decisions. It's his call. What we can do in the meantime is raise the standard a bit. Not to shut people out, valid contributions are always welcome, just make it harder to contribute for the sake of it. Like we can enforce minimum 2 human reviewer approvals before anything merges, no exceptions. I think there are multiple threads regarding CI. Also worth doing is consolidating the backlog. There are a lot of issues that are really just discussion threads in disguise, questions, ideas, back and forth conversations. Those should be moved to Discussions and closed as issues. It would make the actual issue tracker a lot more useful and easier to triage. Having been through the early chaotic stages of startups and now working at a large company, the difference is usually just whether the basics were locked in before things got out of hand. Nothing drastic, just enough to keep things manageable while we wait for Felix to share where he wants to take this. |
Beta Was this translation helpful? Give feedback.
-
|
I will follow thread closely, I was looking for guidance and indeed some kind or coordination, I wanted some confirmation for my PR (bring cursor sdk as a model provider), but I guess I will just shoot my shot and wait for 2 thing, official coordination and my pr being merged or refuted |
Beta Was this translation helpful? Give feedback.
-
|
I agree, we're really running around like chickens at the moment. I'd be happy to connect with some of you and of course Felix to work on this a bit more structured. |
Beta Was this translation helpful? Give feedback.
-
|
What do you all think about using a pinned GitHub Discussion as a lightweight coordination hub? Not to replace issues or PRs, but to make the current direction easier to follow. The pinned discussion could act as an index/roadmap, while the actual implementation details stay in focused issues and PRs. For example:
Then each roadmap item can link to a proper issue with the deeper technical detail. Something like #2750 is a good example of the shape I mean: a parent roadmap/tracking issue, split into small follow-up PRs instead of one giant implementation. This would keep GitHub as the source of truth, avoid scattering decisions across random comments, and give contributors a clearer place to check before opening duplicate issues or PRs. Of course, this should only become “official” if @pewdiepie-archdaemon and the active maintainers are happy with that structure. But I think it could be a low-friction first step while everyone figures out the longer-term coordination model. |
Beta Was this translation helpful? Give feedback.
-
|
I agree with the direction here. The repo feels like it needs a short step back to organize the scaffolding around the work, not just keep chasing individual bugs. The official direction should still come from Felix and the trusted core maintainer group; I am not trying to decide the coordination model from one PR. What I can offer is one supporting layer for that: clearer PR intent, compact specs for people making PRs, and a structured agent-assisted pre-review flow. That is where #2538 fits for me. The specs are meant to be a compact implementation-truth map for people writing code changes. If a subsystem rule can be explained in two precise sentences with links to the related files, contributors should not have to chase forty scattered files just to understand how the system currently works. Reviewers benefit for the same reason: the intent and current behavior are easier to check, and it becomes clearer what actually needs deduping, scaffolding cleanup, or framework-level work. I also think meaningful PR bodies should move a bit closer to mini-ADRs. Not huge formal docs, just enough to say what contract is changing, why this shape was chosen, what tradeoff is being made, and what future contributors should not accidentally undo. PRs would capture intent; specs would map the current system for the next person making a change. The other piece I am working on is a parallel code review flow for agent-assisted review. The idea is not to let agents approve or merge anything. The idea is a coordinator-led pre-review where agents catch easy issues before maintainers spend human review time on the PR. The shape is:
I used a similar flow in a previous private project with around 30 contributors who were new to coding and using AI agents. The biggest problems were weaker models and not enough human supervision, which produced a lot of plausible output that still needed cleanup. So I think agent-assisted contributions should use capable models where available, for example GPT-5.5 on high/x-high effort, and still have clear human supervision. In short: I think I can help with the implementation-truth/specs layer and the agent pre-review flow. The goal is higher-quality PRs and more focused maintainer review, not replacing maintainer judgment. |
Beta Was this translation helpful? Give feedback.
-
|
I'm not a fan of discord either for a project like this considering the goal. I'd personally prefer an open source alternative which would give more flexibility. Additionally if Felix were to join the discord he'd immediately get spammed which is not the point. At the same time though I'm not a big fan of GitHub discussions either for this sort of thing though this has been alright as a substitute for the moment. overall though I think I just want a clear way to see where things are headed, organized and how I can contribute effectively. |
Beta Was this translation helpful? Give feedback.
-
|
I’ve been looking into alternatives to Discord that fit the privacy and open-source goals of Odysseus, and I think Element/Matrix (https://github.com/element-hq/element-web) might actually be the exact solution we’re looking for. Instead of a public Discord (which, as pointed out, is a data broker and a recipe for Felix to get instantly spammed), Felix could host a private Matrix homeserver. By turning off public registration in the configuration, he can completely control who gets in. It keeps a dedicated, quiet "kitchen" strictly for the core maintainers to coordinate, while GitHub stays the public source of truth. If we went this route, there are a few practical edge cases and implementation details worth flagging:
Curious what everyone thinks, but it seems like a highly sovereign way to solve the coordination problem without compromising on the project's philosophy. |
Beta Was this translation helpful? Give feedback.
-
|
Another coordination idea: I opened #3051 for a PR-level related-work coordinator bot. Idea is simple: when a PR opens/updates/merges, surface likely related issues/PRs in one advisory comment so contributors can quickly see “should we coordinate here?” or “is there shared scaffolding/framework needed?” Ideally it would also update older PR comments when a newer PR becomes related, so the signal works both ways without comment spam. Not meant as review/blocking/duplicate enforcement, just coordination hints where people already are looking. |
Beta Was this translation helpful? Give feedback.
-
|
Small follow-up now that I’ve tested the structured pre-review shape on a few PRs. I think this can help maintainers by turning broad PRs into a smaller set of verified, actionable findings before a maintainer has to spend time on the whole diff. The newer shape I’m trying to use is:
Recent examples:
That last one is important to me: this should not just be “automation posts comments.” The useful version is coordinator-led review. Automation can help gather evidence and inspect broad diffs, but a human still verifies the finding, dedupes it, decides whether it is actually worth posting, and follows through when the author fixes it. Older examples in a less standardized shape are #2588, #2579, #2994, and #2995. Those were useful too, but the newer shape above is closer to what I think would scale: clear findings, explicit validation, and a narrow maintainer-actionable ask. |
Beta Was this translation helpful? Give feedback.
-
|
I think there are a few useful ideas converging here, and they might be easier to move forward if we split them into small pieces instead of trying to solve the whole coordination model at once. A practical first step could be a small linked issue or pinned checklist for the basics:
Then the more advanced ideas can build on top of that: specs, related-work hints, agent-assisted pre-review, CI summaries, etc. I can help draft that baseline if people think it would be useful. I’d keep it small, editable, and focused on making contribution/review flow clearer, not turning it into a full governance document. |
Beta Was this translation helpful? Give feedback.
-
|
IMO the biggest issue I see here is contributions are broad. It's disappointing to me that something so well structured like this #2893 Might be rejected cause there's no single person to maintain it's area, and the one person handling ALL of this at one time is focused on other areas like general bugs. And then a litany of bugs related mostly to one feature area can spend days unaddressed cause no one with authority cares about that right now. Making the fixes and PR's feel kinda pointless as they sit for days while other things newer seemingly get pushed through quickly. Thats not to say people can't reach over and submit a PR outside their purview, or that other things aren't justified as priority. But it needs to be one person's job to say "I handle issues related to documents: this issue has already been addressed/This looks good/This doesn't fit our goals". And refer to @pewdiepie-archdaemon for general guidance otherwise. This would also reduce the repetition and redundancy you can see everywhere where multiple people tackle the same issue multiple times. One person looking at these similar issues could more quickly point out the duplicates hopefully before someone does a lot of work and gets frustrated. |
Beta Was this translation helpful? Give feedback.
-
|
One thing the platform-debate framing tends to bury: the coordination substrate is a different question from the coordination channel. Discord vs IRC vs Matrix changes where conversation lives, but doesn't change the mechanism by which contribution-impact gets recognized or distributed. For a fast-growing repo with scaling-contributor strain, the deeper question is whether coordination is mechanically-surfaced (the substrate makes it visible who's load-bearing without anyone having to decide) or politically-allocated (a human or group decides who gets review-priority, decision-authority, milestone-influence). Most platform choices collapse to the latter eventually. The former is harder to build but scales without burnout. A concrete starting move: a lightweight contribution-impact log surfaced in the repo itself, alongside ACKNOWLEDGMENTS.md but at the runtime/work layer rather than the codebase layer. Track who's reviewed what, who's followed up on what, who's unblocked whom. Make it visible mechanically. That alone gives Felix the delegation-shape question some structural answer instead of having to allocate trust by intuition. Started a separate Discussion (#3178) on the more formal version of this. Attribution graphs over the persistent-skills system using Shapley decomposition. The thinking generalizes from skills-evolution to contributor-coordination naturally: same DAG shape, different value-function. Probably overkill for what this thread is asking, but worth noting the substrate question keeps reappearing in different forms across the repo's discussions. On the immediate platform-pick question: the security-disclosure point at the end of the original post is actually the most binding constraint. Whatever channel gets picked needs an out-of-band private-disclosure path for serious vulnerabilities. That probably rules out fully-public-only forums. Matrix or any platform with a clean public/private split handles both better than pure-public Discord, which also has the privacy concerns others raised. |
Beta Was this translation helpful? Give feedback.
-
|
I am the author of #593 (Proposal: Code Owners). It is my view that a teams-like structure is necessary for coordination as people can't own the entire project and make sure that everything works; Not with >400 issues and >550 PRs in under a week. It is impossible to figure out who to contact to advance your PR or Issue to further stages, nor entertain specific agreements/ADRs (#1998) that have lasting influence. It is very difficult to even monitor all the related issue numbers to figure out what is duplicated or what conversations are worth having for the health of the project. It is particularly difficult if you decide to take a break for a bit. I think that proper labelling of discussions, issues, and PRs around the idea of Teams, whether is Frontend, Backend, DevOps, Documentation, or AI/ML IT/Platform Ops, would go a long way. Just by triaging problems to one of the suggested teams and having specific maintainers be coordinated for that with CODE OWNERS providing the names or references to contact those people, makes it much easier to keep track of everything that is going on within a specific sub-universe. These larger threads, discussions, and wide-scale issues can continue for the whole project--I have suggested adopting an ADR framework starting with an ADR on how to do ADRs--but first divide the work and let people know how you divide it. If it is a bad structure or the teams are poorly considered, that can be changed later, once things are stable. |
Beta Was this translation helpful? Give feedback.
-
|
The thread has converged on a real question that the platform debate was downstream of: how do contributors and Felix know who should own which area? @sacb0y's DRI-per-area, @crazyjackel's Code Owners + ADR framework (#593, #1998), @RaresKeY's Stabilization v1 (#3163), @alteixeira20's coordinating issue, and @NoodleLDS's volunteer for Projects all converge on this shape. Worth naming: every one of these proposals shares an implicit assumption that Felix manually allocates the ownership. "Felix needs to assign DRIs." "Felix needs to approve the milestone." "Felix needs to greenlight what's worth working on." That puts the coordination load back on the person who started this thread by saying he wants to keep the project moving without owning every operational decision. There's a mechanism-design alternative that composes with the existing proposals rather than replacing them: contribution-history in an area IS the DRI signal. Anyone who has demonstrably reviewed, fixed, or shipped in Concretely it could look like:
This composes with all existing proposals:
It also solves the burnout-resentment cycle the manually-allocated model creates. Nobody can argue with "you have reviewed 40 PRs touching this subsystem in the last month, you have first-look rights here" the way they can argue with "Felix decided you should own this." It removes the politics from the routine case and reserves Felix's attention for the cases where politics actually need adjudication. Worth flagging: this isn't blocking any of the existing proposals. They all still ship. This is the rule that populates CODEOWNERS automatically so it doesn't need Felix's decision on every line. |
Beta Was this translation helpful? Give feedback.
-
|
Just a small thing, can we refrain from using LLM for posting comments and discussions as much as possible, or at least instruct it to be very concise instead of being so chatty? It's honestly exhausting to read dozens of these daily. |
Beta Was this translation helpful? Give feedback.
-
|
Thanks everyone. Here is the direction from me for now.
|
Beta Was this translation helpful? Give feedback.
-
|
I want to add a bit more context from my side. I’m not a developer (duh), and this is my first time coordinating anything GitHub-related at this scale, so it has been a lot to learn quickly. At the start, we moved pretty aggressively to fix obvious bugs and issues. That was useful, but I think this is a good point to slow down. From what I can tell, some things are being merged without enough testing, and in some cases without a clear reason for existing in the first place. The goal right now should be to harden and improve what Odysseus already has, not keep adding more features unless they are well thought out, cleanly integrated, and properly tested. So my preference going forward is:
Hope that makes it more clear trying my best to keep up honestly lol. |
Beta Was this translation helpful? Give feedback.
-
|
Thanks for kicking this off, Michiel — agree a single place for this helps. Quick apology for going quiet for a bit — my GitHub account got randomly restricted for no real reason; I appealed and just got it back, so I'm caught up again. On the "who owns what" angle: I've been working on the mobile side of Odysseus and would be glad to take that on as a dedicated area if the group's open to it. So far that's the companion bridge plus a native iOS/Android client (Expo SDK 56) that pairs to a server over the LAN and uses the existing chat/session API — local-first, nothing leaves the network. It runs natively on both iPhone and iPad from one universal build.
The bridge work is already landing (mobile CSS fix #1612 merged; companion/mobile-route PRs #2585, #881, #1094, #2668 open against |
Beta Was this translation helpful? Give feedback.
-
|
GitHub as the source of truth works for me. One add that has saved me elsewhere: claim an issue with a quick comment before you start, and open one for anything past a small fix, so two people don't build the same thing. |
Beta Was this translation helpful? Give feedback.
-
|
Small follow-up on @pewdiepie-archdaemon's direction here. I may be missing it, but I do not currently see a pinned general coordination Discussion for current priorities, roadmap trackers, review expectations, labels/process notes, and proposals waiting on maintainer direction. The pinned Discussions I see right now are #225 and #551. Please correct me if I am looking in the wrong place. I also think the private maintainer channel part still matters. GitHub should stay the public source of truth, but sensitive concerns such as security reports, trust-boundary concerns, or contributor moderation probably need a private path before details are posted publicly. While thinking through how to organize work with GitHub's existing surfaces, I split out one narrower issue-bucket workflow proposal here: The shape came from looking at tracker issues like #2523 and expanding the idea: classify issues first, let parent/sub-tracker buckets emerge from the real issue queue, and treat linked PRs as candidate implementations instead of letting PRs own the problem. The practical start would be classifying open issues without parent links. Valid issues attach under the smallest fitting tracker bucket, or create the missing bucket structure upward. Malformed, duplicate, unclear, or non-actionable issues route through issue cleanup before review time goes into linked PRs. This is not meant to replace the broader pinned coordination hub. I see it as one organizing layer that could feed into it. I would appreciate maintainer/contributor opinions or corrections before trying to apply the shape more broadly. |
Beta Was this translation helpful? Give feedback.
Thanks everyone. Here is the direction from me for now.
Keep GitHub as the source of truth. PR-specific and issue-specific decisions should stay on the relevant PR/issue.
Let’s use a pinned GitHub Discussion as the lightweight coordination hub for maintainers/contributors: current priorities, roadmap trackers, review expectations, labels/process notes, and which proposals are waiting on my/maintainer direction.
I am open to a dedicated private maintainer coordination channel for trusted maintainers, but I do not want project decisions scattered across random chat. Anything important should be summarized back to GitHub.
Security reports should go through private disclosure first. P…