geekgene / mewsfeed Goto Github PK
View Code? Open in Web Editor NEWFor the calm cats
Home Page: https://mewsfeed.social
For the calm cats
Home Page: https://mewsfeed.social
If a Mew is part of a larger Yarn, it should have an icon that links back to the original Mew (in it's Yarn view)
Yarns threads / gitbranch view
This is taken from the previous project management doc. I imagine this relates to a Yarn thread splitting and two sub threads going in different directions, but will need more clarification.
A page for a single username that displays all agents who have that username.
This page should be linked to from each agents profile page who has that username.
Create a We-Applet front-end for interacting with MewsFeed.
The only difference between the We-Applet UI and the standard UI, is the we-applet allows an individual user to mark their mews as "syndicated to MewsFeed", which will publish their Mews to the global "official" mewsfeed instance.
We may also want to use DNA properties to specify settings for a local MewsFeed instance. For example:
Note this depends on #117
Interface to run a full-text search on Mew content.
This will require some peers to provide indexing services to the DHT, or provide an elasticsearch / meillasearch instance to the DHT, such that consumer users can query them for search results
A mew author can update the contents of their Mew
A user can create an arbitrary List which contains a title, description, and list of elements. The elements can be agents, Mews, hashtags, cashtags, or some combination.
Currently, when hovering over a link in a mew, we display the full URL that is linked to.
Ideally we would display an image preview of the website, instead. This would require fetching the remote site, generating an image, and displaying that image to the user.
A page to facilitate the discovery of other users -- particularly for when a user is new to the app, and is not following anyone yet.
This page should be linked to from the HomePage.
The UX should expose some semi-random collection of user accounts, so the user can find a few interesting to them to follow
Reduce flakiness of ci tests by:
sleep()
calls (waiting on holochain/tryorama#167)Originally by @mattyg , Collab edited by @harlantwood, @dauphin3, @jost-s --
@harlantwood & @dauphin3 are working on integrating TrustGraph 🎉 in #104
Collecting thoughts -- about the initial integration and beyond -- in one place.
[Hard Pass]---[Meh]---[Awesome]
which mirrors the underlying scale: -1.0 to 0 to 1.0
.include_trust_atoms
argumentCurrently, mew text is limited to 200 characters in validation rules. Let's add that limit to the UI CreateMewField.
Currently the Yarn page only shows responses to that original Mew (i.e. 1 level of depth).
It might be nice if you could not only view those responses, but also the responses to those responses (i.e. > 1 level of depth), all from the same page.
We'll want to think about constraints to the UX (i.e. max levels of depth displayed by default), aiming to avoid a very large unconstrained dht query to fetch all the responses to a very active yarn.
Currently a user has to create a profile to use the app. Instead a user should be able to view the welcome screen with content and agents' profiles without creating a profile.
Only when a user wants to react to a mew or create a new one, should they be prompted to create a profile.
I asked ChatGPT for how to do this.
To integrate a Discord channel with a GitHub repository, you can use a webhook. A webhook is a way for an application to send data to another application in real-time. In this case, GitHub can send notifications to Discord whenever certain events happen in a repository, such as when a new pull request is opened or when a commit is made.
Here are the steps to set up a webhook between GitHub and Discord:
I get stuck at 5. Can't seem to find the settings for the repository and I suspect it's due to missing permissions for me. @mattyg can you look whether you have them there?
Here's the web hook URL: https://discord.com/api/webhooks/1086614464155103333/2GpqP-M5jHDzR_YYc-fcX23IJS0a0xlA7bVMwTMg__GoPiOOHAoCJ0Z2jkHnumvneKff
Refactor mew input field handling of links such that:
^label
^label
becomes the label for a link which points to the entered URLAllow users upload an image as part of their mew.
Overview
This also opens up the risk of users uploading illegal content to the DHT, which then is hosted by other peers. This is a major concern for a large global DHT and needs to be carefully considered.
Note: waiting on public release of NomDeNet
Enable username registration (via NomDeNet) as a revenue model, and to manage disambiguated ownership of names
Let's make everything coherent and consistent for the first release. :)
A user can pin up to X yarns on their profile page. Pinned yarns are displayed prominently on their profile, towards the top of the page.
It occurs to me that twitter and mewsfeed are both deeply individualized architectures, and our Participation Protocols ideas (#62, #63, #64) will only encourage greater individualization and social isolation (i.e I only interact with people I want to in ways I want to).
I would like to imagine possible "bridging" mechanics: ways to facilitate individuals from different social contexts interacting together in co-determined ways that are mutually valuable
Ideas
Resources
Always display the identicon of a user's AgentPubKey on their profile page.
This avoids the risk of people impersonating other users by copying their profile name and avatar.
Consider replacing node test runner we're currently using 'tape' with another that offers better output for failing tests.
Some options I like:
It makes sense to split Participation Protocols into a few classes:
This ticket outlines the Hard Rules ruleset. The ruleset should be sufficiently flexible to support a wide range of actual use-cases of rules, without needing to fork the integrity zome.
In order to achieve this, when publishing a Mew, the author must include their chosen Rules for participation. Those rules published in an Entry which must exist on the DHT. Then, upon validation, we do a must_get_
call on the rules Entry, and apply the validation rules specified within it.
Deterministic Rules
Architecture
struct Mew {
...
response_ruleset: EntryHash,
approval_signatures: Vec<ActionHash> // signed valid actions from the approved_by_agents, where the entry is a MewApproval and the MewApproval's MewContent matches this Mew's content
}
struct ResponseRuleSet {
name: Option<String>,
description: Option<String>,
rules: Vec<ResponseRule> // If *any* of theses rules fail validation, the response is invalid
}
struct ResponseRule {
agents_allowed: Vec<AgentPubKey>, // block list takes precedent over allow list (i.e. if an agent is both allowed & blocked, they are blocked
agents_blocked: Vec<AgentPubKey>,
response_types_allowed: Vec<MewType>,
response_types_blocked: Vec<MewType>,
content_allowed: Vec<String>, // both mew content text and content rule are compared as lowercase strings
content_blocked: Vec<String>,
approved_by_agents: Vec<RequireApprovalRule>, // require a signature by these agents "approving" the Mew
approved_by_agents_threshold: Option<u64>, // None means that **all** agents must approve, Some(u64) means that at least that number of agents must approve
}
struct MewApproval {
mew_author: AgentPubKey, // author of mew content
mew_content: MewContent, // MewContent that is approved
approved_by: AgentPubKey // agent authoring this MewApproval
}
Currently the UI follows a client-server model where it fetches
Todo:
Refactor state management to poll periodically and in pages of 10 mews and maintain global state in the store which mews feeds on different pages access for display.
Details to be specified.
Consider refactoring DNAs to make it as easy as possible to upgrade integrity zomes and port data into a new DHT.
We may not want to facilitate this at all, and instead rely on coordinator zomes fetching the underlying data from a prior versions running cell.
If we did want to facilitate migrating data into subsequent version's cell, I think this means not relying on ActionHash as the "id" for some data, and instead storing a UUID within the Entry, and then linking from a UUID anchor to the Entry itself.
Create some documentation to help guide users on how to use MewsFeed.
Ideally we would have a static "complete" version that a user can read through entirely, as well as "snippets" which can be viewed inline while using the app, by clicking a "help" icon.
$cashtag transaction accounting
- tx grammar
- accounting nodes
This is ported from our prior project management document which was light on the details. My guess is this means that a user can create a mew "send 25 $HOLOFUEL to @jimbo" which will initiate an actual currency transaction from their wallet app.
This is waiting wallets and currencies to exist on holochain
It makes sense to split Participation Protocols into a few classes:
So each agent's personal ParticipationProtocolSoftRules Entry is private on their source chain, and outlines their own personal filtering of their own perspective of the DHT (i.e. what is displayed in their UI).
Possible Agent Perspective Filtering Rules
The UX should make it clear that deleting a mew does not actually delete the underlying data.
Create chat rooms for pre-defined group of agents to chat together in private.
We will likely want to use elemental chat or kisuna for the actual DNAs.
We need to choose which languages we want to support in the "official" UI, and get translations made of all application strings.
Add a popup with the agent profile when user hovers a mention in a mew
Profile avatar, bio, and location should all be optional
I think there is an additional pattern for Participation Protocols that doesn't neatly fit into #62, and #63. This is "optimistically" approve a Mew response, but allow people to attach "flags" those responses Flags can then be used to softly filter what content a user sees, or they can be used to issue warrants.
One option could be that the Mew author specifies the types of flags supported for their content, and default filtering rules for different flags.
Add a notifications drop-down panel or notifications page linked from the navbar.
This should display a list of recent data changes that relate directly to my agent:
I wonder if this feature is what we really want, instead of #66.
Clone & extend the concept from twitter of Trending lists.
Overview
Use tailwind (+ daisyui for theming?)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.