Giter Site home page Giter Site logo

ssbc / patchwork Goto Github PK

View Code? Open in Web Editor NEW
3.6K 120.0 333.0 21.69 MB

A decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB).

Home Page: https://www.scuttlebutt.nz

License: GNU Affero General Public License v3.0

JavaScript 99.51% HTML 0.49%
scuttlebutt ssb social social-network decentralized offline off-grid p2p nodejs electron

patchwork's Introduction

⚠️ Patchwork v3.18.1 was the last release! ⚠️

This release is meant to tide us over so that other clients can take it from here.

Thank you to everyone who contributed to this release and all the ones preceding it! Paul, Matt McKegg, and Christian Bundy first and foremost, but by now the contributors page shows 94 contributors! 💓

Where do we go from here? Do I have to change client now?

For the time being (the next couple of months) you should be fine to just keep Patchwork running. However, as time progresses and security of the underlying components "degrades" (read: already existing issues are discovered) it will become a bad idea to keep running Patchwork. By that time, you should pick a different ssb client.

Why retire Patchwork? Can I keep it alive?

Of course Patchwork is, as always, released under the AGPL license. So if you really wanted to, you could fork it and keep it alive. However, let me (Daan) explain why this is a bad idea:

All the devs say "Don't do it!"

Everyone who has spent significant time in the codebase agrees that it is time to retire Patchwork. Over the years, it has seen multiple iterations of developers coming in, trying to change things in a structural way, then burning out on it. It's a pattern, so be warned. This is due to the fact that Patchwork makes some architectural decisions that make it hard to maintain, and even harder for new developers to get into the codebase:

  • depject is a bespoke dependency injection system, which breaks any kind of navigation and tool support for debugging.
  • mutant is another bespoke implementation of observables. It is also used for generating HTML, which makes a transition to component-based UI toolkits very hard.
  • custom sbot: Patchwork doesn't really work except with its own, bundled ssb-server. This is considered bad form for ssb applications.
  • ssb-db, the bespoke database of the original ssb stack, is deeply baked into patchwork. Migrating to the new #ssb-db2 would be a long and painful process. This is compounded by the fact that patchwork bundles a few custom plugins for ssb-db.

I want to be clear that none of the above are impossible to solve; in fact, they all have straight-forward but labour-intensive solutions. I also want to be clear that these technological choices were all made for good reasons at the time, and I am sure you're as greatful to the developers who made them as I am, for putting their (overwhelmingly volunteered!) time into the project, and for making Patchwork the application that it is. In combination however, the above issues mean that new developers are faced with a very, very steep leaning curve before they're able to even make small changes. Given all of the above, it makes more sense to deprecate Patchwork and focus our efforts on projects like #oasis or #manyverse which are nearing feature parity with Patchwork. If you want to get involved with ssb development, both are great projects for that; they are much more hackable than Patchwork, and follow standard techniques & workflows, so you'll feel right at home.

If you do, against all advice, want to continue developing Patchwork then we kindly request you rename it to reflect the change in leadership.


Original Readme

A decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB).

Features

  • Connect with friends without depending on any central servers.
  • Don't worry about spam, you only get messages from people you follow.
  • Use Patchwork online or offline, the data you need is stored on your device.
  • Sync messages with friends when you're on the same Wi-Fi network.
  • Keep secrets with private messages, which are always end-to-end encrypted.
  • Change and improve Patchwork however you'd like, it's free and open source.

Usage

Screenshot of Patchwork

New to Scuttlebutt? Join the network by connecting to a pub.

  1. Choose a pub from the pub list and copy an invite code.
  2. Open Patchwork and select Join Pub.
  3. Paste the invite code and select Redeem Invite.

You're done! Check out #new-people to see who else has recently joined.

Installation

Most people should download Patchwork for Windows, macOS, or Linux.

Alternatively, you can install Patchwork with your favorite package manager.

  • npm: npm install --global ssb-patchwork
  • yarn: yarn global add ssb-patchwork
  • brew: brew cask install patchwork
  • yay: yay -S ssb-patchwork

Building from source? Check out INSTALL.md for more information.

Contributing

Create a new issue to report problems or request features. See CONTRIBUTING.md for more information on how to get involved. You can also support the project via donations.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

See Also

License

AGPL-3.0

patchwork's People

Contributors

ahdinosaur avatar alanshaw avatar black-puppydog avatar christianbundy avatar cinnamon-bun avatar cryptix avatar dangerousbeans avatar dependabot[bot] avatar dominictarr avatar gmarcos87 avatar happy0 avatar johanbove avatar kroppt avatar mattroseman avatar meleyal avatar mixmix avatar mlegore avatar mmckegg avatar mnzaki avatar mwang9876 avatar olizilla avatar pietgeursen avatar powersource avatar qubist avatar soapdog avatar staltz avatar stripedpajamas avatar vtexier avatar wittjosiah avatar yiwang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

patchwork's Issues

rework: flag/unflag

I created a new account, made a post, flagged it, then unflagged it.

But if I went back to the main feed this message was still shown as flagged.
If I restarted patchwork it is shown correctly, but not if I simply switch back to the feed view.

quirks encounter running patchwork

  1. switching between text and video creates multiple textareas
  2. ctrl-l should select the location bar (firefox shortcut)
  3. alt-left/alt-right should move forward/backwards in history
  4. control-enter should post whatever form you are in
  5. need to add a pub server is not obvious, should be an obvious helper if you arn't on a pub yet.

rework: location bar

Used the location bar to get a handle on a secific message. Sometimes I use this because I want to view that message via the CLI, but othertimes I link to a message. In the new UI there is no way to grab the id for a message, so I can't refer to a message directly.

tried to flag a post as abuse, got this error.

Cannot read property 'appendChild' of null

TypeError: Cannot read property 'appendChild' of null
    at /home/dominic/c/ssb/patchwork/ui/lib/com/message.js:192:52
    at Object._requests.(anonymous function) (/home/dominic/c/ssb/patchwork/node_modules/packet-stream/index.js:37:5)
    at PacketStream._onrequest (/home/dominic/c/ssb/patchwork/node_modules/packet-stream/index.js:139:26)
    at PacketStream.write (/home/dominic/c/ssb/patchwork/node_modules/packet-stream/index.js:122:41)
    at /home/dominic/c/ssb/patchwork/node_modules/muxrpc/pull-weird.js:55:15
    at /home/dominic/c/ssb/patchwork/node_modules/muxrpc/node_modules/pull-stream/sinks.js:15:33
    at /home/dominic/c/ssb/patchwork/node_modules/pull-stream/throughs.js:97:9
    at EventEmitter.onincoming (/home/dominic/c/ssb/patchwork/node_modules/pull-ipc/index.js:54:7)
    at emitOne (events.js:77:13)
    at EventEmitter.emit (events.js:169:7)

This was an unhandled exception.

max flaged my message as spam, and so I tried to flag that as abuse

2015-10-10-202627_1366x768_scrot

undefined symbol, non starter

I upgraded node to [email protected] (no version manager) and still get this error. I was able to get past it once, but on restart it came back, and since then can't defeat the bug.

A JavaScript error occurred in the main process
Uncaught Exception:
Error: /home/johnny/.npm/lib/node_modules/ssb-patchwork/node_modules/ssb-keys/node_modules/chloride/build/Release/sodium.node: undefined symbol: _ZN2v87Context10GetCurrentEv
    at Error (native)
    at Object.module.(anonymous function) (ATOM_SHELL_ASAR.js:137:20)
    at Object.module.(anonymous function) [as .node] (ATOM_SHELL_ASAR.js:137:20)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/home/johnny/.npm/lib/node_modules/ssb-patchwork/node_modules/ssb-keys/node_modules/chloride/lib/sodium.js:16:15)
    at Module._compile (module.js:434:26)
    at Object.Module._extensions..js (module.js:452:10)

recording a gif does not show what you captured

this is probably a symptom of a larger issue with recording an animated gif, but the UI changed to show a box, but that box was empty. I suspect the footage being captured will be shown there? Also, the resulting gif seems broken: %xFjj3lZ1Oynxj+X4BLpirZFY5ZDEBbnrdoONACscVik=.sha256

rework: missing "back" functionality

I'm not saying it needs to be a back button, but eg, if you open an image to view it, you can't easily go back to where you were. Clicking on feed again takes you to the top of the feed.

Tracking relationships with Pubs

I'd like to keep a registry of pubs that the user has joined. Why:

  • When the user publishes new data, we could prioritize syncing with the users' joined pubs, to ensure quick delivery.
  • If the users' joined pubs are not reachable, we can alert the user.
  • If the user hasn't joined any pubs yet, we can give instructions to do so.

The registry could be updated when an invite is successfully used.

@dominictarr you have any objections to this? Do you think this registry should live in the invites plugin, or in PW?

patchwork needs to write manifest

That enables the cli to work, otherwise i run sbot server,
and then the client works. I have been telling people to use sbot invite.accept <code>
because and that gets them on the network.

Charity-funding adspace

From an article about AirBnB's recent Prop F adverts:

SF resident Martha Kenney posted to her Facebook page: “Dear Airbnb, I’m happy to hear that you paid your taxes this year. I did too! Isn’t it awesome?” She crunched the numbers, and found the $12 million would only pay $0.78 to library employees per day – and that’s if the taxes only went to libraries.
...
“However, had you donated that $8 million you spent fighting Proposition F directly to the public libraries you love so much, that could have made a bigger difference,” she wrote.

Source

That would be cool. An ad space where, to buy time, you make charitable donations.

hangs at the initial spinner

I tried building this but did get past this:

2015-08-07-154403_1366x768_scrot

> ./dist/linux/scuttlebot-linux/scuttlebot 
[14759:0807/154247:ERROR:browser_main_loop.cc(173)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
[14788:0807/154248:INFO:renderer_main.cc(200)] Renderer process started
[14759:0807/154248:WARNING:accelerator_util.cc(185)] Invalid accelerator token: command
...many of these lines...
[14759:0807/154248:WARNING:accelerator_util.cc(185)] Invalid accelerator token: command
[14776:0807/154248:ERROR:gles2_cmd_decoder.cc(11539)] [GroupMarkerNotSet(crbug.com/242999)!:D0A2C717D83F0000]GL ERROR :GL_INVALID_OPERATION : glTexStorage2DEXT: <- error from previous GL command
[14759:0807/154249:INFO:CONSOLE(26)] "got manifest", source: /home/dominic/c/ssb/patchwork/dist/linux/scuttlebot-linux/resources/default_app/node_modules/ssb-patchwork-ui/lib/muxrpc-ipc.js (26)
Log history read...
Indexes generated
[14759:0807/154249:INFO:CONSOLE(15)] "Uncaught TypeError: Cannot read property 'createEventStream' of undefined", source: file:///home/dominic/c/ssb/patchwork/dist/linux/scuttlebot-linux/resources/default_app/node_modules/ssb-patchwork-ui/main.js (15)

invalid invite code

still getting invalid invite code, am telling people to use scuttlebot cli directly, which works.

dyld: lazy symbol binding failed

just installed patchwork. No errors from what I can tell. When I run patchwork I see:

➜  ~  patchwork
dyld: lazy symbol binding failed: Symbol not found: __ZN2v86Object3GetENS_6HandleINS_5ValueEEE
  Referenced from: /Users/Nicholas/.nvm/versions/node/v0.12.7/lib/node_modules/ssb-patchwork/node_modules/chloride/build/Release/sodium.node
  Expected in: dynamic lookup

dyld: Symbol not found: __ZN2v86Object3GetENS_6HandleINS_5ValueEEE
  Referenced from: /Users/Nicholas/.nvm/versions/node/v0.12.7/lib/node_modules/ssb-patchwork/node_modules/chloride/build/Release/sodium.node
  Expected in: dynamic lookup

pubs can appear twice in network view

2015-08-07-190247_1366x768_scrot

this is not right. if you query the gossip.peers api you get this:

[
  {
    "port": 8008,
    "key": "@J+0DGLgRn8H5tVLCcRUfN7NfUcTGEZKqML3krEOJjDY=.ed25519",
    "host": "localhost",
    "announcers": [
      "@BIbVppzlrNiRJogxDYz3glUS7G4s4D4NiXiPEAEzxdE=.ed25519"
    ],
    "time": {
      "connect": 0,
      "attempt": 1438966681043
    },
    "connected": true
  },
  {
    "host": "176.58.117.63",
    "port": 8008,
    "key": "@J+0DGLgRn8H5tVLCcRUfN7NfUcTGEZKqML3krEOJjDY=.ed25519",
    "announcers": [
      "@BIbVppzlrNiRJogxDYz3glUS7G4s4D4NiXiPEAEzxdE=.ed25519"
    ],
    "time": {
      "connect": 1438966696787,
      "attempt": 1438966696603
    },
    "connected": true,
    "id": "@J+0DGLgRn8H5tVLCcRUfN7NfUcTGEZKqML3krEOJjDY=.ed25519",
    "failure": 0
  }
]

seems like duplicated functionality and it should just consult the peers api.

Unexpected Error: Cannot read property 'appendChild' of null

Appeared after clicking "Flag this post > Spam"

TypeError: Cannot read property 'appendChild' of null
    at /home/cryptix/patchwork/ui/lib/com/message.js:197:52
    at Object._requests.(anonymous function) (/home/cryptix/patchwork/node_modules/packet-stream/index.js:37:5)
    at PacketStream._onrequest (/home/cryptix/patchwork/node_modules/packet-stream/index.js:139:26)
    at PacketStream.write (/home/cryptix/patchwork/node_modules/packet-stream/index.js:122:41)
    at /home/cryptix/patchwork/node_modules/muxrpc/pull-weird.js:55:15
    at /home/cryptix/patchwork/node_modules/muxrpc/node_modules/pull-stream/sinks.js:15:33
    at /home/cryptix/patchwork/node_modules/pull-stream/throughs.js:97:9
    at EventEmitter.onincoming (/home/cryptix/patchwork/node_modules/pull-ipc/index.js:54:7)
    at emitOne (events.js:77:13)
    at EventEmitter.emit (events.js:169:7)

This was an unhandled exception.

Ps: I tried it because I posted a dead link but I'm not sure what I would actually trigger..

Expand the number of petnames which are used in mentions

We noticed a message by max to mix included "@mixmix," but it didnt register as a mention in the system. That's because max doesn't follow mix, and mentions are currently only recognized for people you follow. But, since max sees mix from FoaF, he expects to be able to mention him.

So, he should be able to!

user onboarding goes to 404 page: news

@mmckegg installed patchwork, entered the invite code, and then was shown a 404 page.
in the location bar it said "news".
hitting the home button works, but why did it take the user to "news"

Subwindows, splitwindows, tabs

Viewing replies required a page navigation to the thread's page. This was tedious. It made it hard to monitor threads.

The latest build experiments with the subwindow component (it was already built). Here's what it looks like:

screen shot 2015-08-14 at 4 28 43 pm

  • Clicking a message opens its thread in a subwindow.
  • The inbox page also opens in a subwindow. (pictured here.)
  • The feed and subwindows update in realtime.

The idea is that you can open threads in subwindows to watch for replies.

minimum viable app proposal

The goal here is not to create the perfect solution to apps, but just to get an app model that can bootstrap better models.

  • Each app is a single static javascript file (browserifyied by the developer, probably)
  • Each app runs as a "tab" in a webview, with a name.
  • Each user has a local appDb, mapping appname->hash.
  • Apps have permissions to access different apis. access to fs, net, internal apis, are all configurable in permsDb
  • Permission to access appDb and permsDb are in permsDb so you can have app and permission managing apps. With this, we can bootstrap better app managing mechanisms.

We don't need to figure out a sophisticated app model, with updates, etc, that is just part of the app manager app.

timestamp error

both sbot and patchwork has this error occur when initialize

Uncaught Exception:
TypeError: Cannot read property 'timestamp' of undefined
    at /home/myf/.npm-packages/lib/node_modules/ssb-patchwork/node_modules/scuttlebot/plugins/blobs.js:235:51
    at EventEmitter.<anonymous> (/home/myf/.npm-packages/lib/node_modules/ssb-patchwork/node_modules/muxrpc-validation/index.js:79:23)
    at EventEmitter.hooked [as get] (/home/myf/.npm-packages/lib/node_modules/ssb-patchwork/node_modules/hoox/index.js:10:15)
    at /home/myf/.npm-packages/lib/node_modules/ssb-patchwork/node_modules/scuttlebot/plugins/blobs.js:233:20
    at /home/myf/.npm-packages/lib/node_modules/ssb-patchwork/node_modules/multiblob/index.js:77:15
    at continuation (/home/myf/.npm-packages/lib/node_modules/ssb-patchwork/node_modules/continuable-list/index.js:24:25)
    at /home/myf/.npm-packages/lib/node_modules/ssb-patchwork/node_modules/multiblob/index.js:56:9
    at FSReqWrap.oncomplete (fs.js:82:15)

need a way to get the id of a comment

there is currently no way to get the id of a comment. this is useful when demoing ssb and explaining how it all works, but it is also important if you want to refer to another comment later, or look it up with the CLI.

RPC bugs between main thread and ui thread

I'm seeing some bugs in patchwork-ui's RPC connection with patchwork's main thread. How it manifests:

  1. On the message page, replies will sometimes fail to auto-insert. It tends to be the first new reply since page-load, but this is inconsistent. This means createLogStream({ live: true }) is sometimes failing to emit. The {sync: true} message will emit, then the new reply will not.
  2. Sometimes, a page's feed will fail to load, and the page has to be refreshed.
  3. At random, patchwork-ui will error, saying it received a message for an inactive request or stream. The sequence number, when this occurs, is usually higher than the most recent sequence number.

Patchwork's RPC code: main thread and ui thread. I put logs in both ends and found that, when the reply auto-insert message fails to emit, it fails to emit on the server-side (at this point). This suggests that the issue is not within the messaging channel. It may be a bug with how I've setup the RPC in the main thread, or a bug in muxrpc/packet-stream.

Sidenote: There are currently 2 kinds of refresh in patchwork: soft, which reloads the current view, and hard, which reloads the entire ui thread. The in-ui refresh button does a soft reload, while ctrl/cmd+r does a hard reload. When a hard reload occurs, resetRpc is called (code here). I was suspicious that a bug in resetRpc could be causing the issue, but found that was not the case. The issues occur on a fresh load, with no hard refreshes having occurred.

@dominictarr Can you review the RPC code in patchwork and patchwork-ui to see if there are any visible bugs? If it looks correct, I'll dig into muxrpc and packetstream to see if the issue is there.

rework: user blocking

This doesn't work with the ui rework because the message type has changed and the backend handles another message type.

Running on Linux

Hey,
I would like to try patchwork. Any tips on how to get it to run on Linux?

I did npm install. When I try to run npm run build:nix I get the following output:
thomas@sting:~/repositories/patchwork$ npm run build:nix

[email protected] build:nix /home/thomas/repositories/patchwork
electron-packager ./ scuttlebot --out=dist/linux --platform=linux --arch=x64 --ignore=node_modules/electron* --version=0.28.3 --icon=assets/osx/scuttlebot.icns

Packaging app for platform linux x64 using electron v0.28.3
[ { [Error: ENOENT, stat '/home/thomas/repositories/patchwork/dist/osx/Scuttlebot.app/Contents/Frameworks/Electron Framework.framework/Libraries/Libraries']
errno: -2,
code: 'ENOENT',
path: '/home/thomas/repositories/patchwork/dist/osx/Scuttlebot.app/Contents/Frameworks/Electron Framework.framework/Libraries/Libraries' },
{ [Error: ENOENT, stat '/home/thomas/repositories/patchwork/dist/osx/Scuttlebot.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/Libraries/Libraries']
errno: -2,
code: 'ENOENT',
path: '/home/thomas/repositories/patchwork/dist/osx/Scuttlebot.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/Libraries/Libraries' },
{ [Error: ENOENT, stat '/home/thomas/repositories/patchwork/dist/osx/Scuttlebot.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/Libraries']
errno: -2,
code: 'ENOENT',
path: '/home/thomas/repositories/patchwork/dist/osx/Scuttlebot.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/Libraries' } ] undefined

npm ERR! Linux 4.1.0-1-amd64
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "build:nix"
npm ERR! node v0.12.7
npm ERR! npm v2.11.3
npm ERR! code ELIFECYCLE
npm ERR! [email protected] build:nix: electron-packager ./ scuttlebot --out=dist/linux --platform=linux --arch=x64 --ignore=node_modules/electron* --version=0.28.3 --icon=assets/osx/scuttlebot.icns
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build:nix script 'electron-packager ./ scuttlebot --out=dist/linux --platform=linux --arch=x64 --ignore=node_modules/electron* --version=0.28.3 --icon=assets/osx/scuttlebot.icns'.
npm ERR! This is most likely a problem with the ssb-patchwork package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! electron-packager ./ scuttlebot --out=dist/linux --platform=linux --arch=x64 --ignore=node_modules/electron* --version=0.28.3 --icon=assets/osx/scuttlebot.icns
npm ERR! You can get their info via:
npm ERR! npm owner ls ssb-patchwork
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR! /home/thomas/repositories/patchwork/npm-debug.log

Any tips?

Support for mobile devices?

Sorry to ask a question founded in ignorance, but can patchwork be run on mobile devices? If not why not? Any long term plans for this? What sub-project(s) would need work?

Error: undefined symbol in sodium.node

I cloned the repo and ran npm install -d.
When I run the app I get an error. It seems to be an issue with Electron or the chloride module.
Running npm run test in both ssb-keys and chloride directories passes.
I can also require() the referenced sodium.node from a nodejs repl without error. Any idea what to do now?

$ npm start

> [email protected] start /usr/local/src/patchwork
> electron .

[28382:0814/073314:ERROR:browser_main_loop.cc(173)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
App threw an error when running [Error: /usr/local/src/patchwork/node_modules/ssb-keys/node_modules/chloride/build/Release/sodium.node: undefined symbol: _ZN2v87Context10GetCurrentEv]
A JavaScript error occured in the browser process
Uncaught Exception:
Error: /usr/local/src/patchwork/node_modules/ssb-keys/node_modules/chloride/build/Release/sodium.node: undefined symbol: _ZN2v87Context10GetCurrentEv
    at Error (native)
    at Object.module.(anonymous function) (ATOM_SHELL_ASAR.js:137:20)
    at Object.module.(anonymous function) [as .node] (ATOM_SHELL_ASAR.js:137:20)
    at Module.load (module.js:351:32)
    at Function.Module._load (module.js:306:12)
    at Module.require (module.js:361:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/usr/local/src/patchwork/node_modules/ssb-keys/node_modules/chloride/lib/sodium.js:16:15)
    at Module._compile (module.js:426:26)
    at Object.Module._extensions..js (module.js:444:10)
[28382:0814/073315:INFO:audio_manager_pulse.cc(258)] Failed to connect to the context.  Error: Connection refused

Security error prevents webcam loading

When I click the webcam icon, the webcam media area is empty, and an error appears in the console:

main.html:1
Refused to load media from 'blob:file%3A///31acfe39-df1a-45d8-bfb7-92556a0a6b82' because it violates the following Content Security Policy directive: "default-src 'self' http://localhost:7777 http://localhost:7778". Note that 'media-src' was not explicitly set, so 'default-src' is used as a fallback.

When I then click the webcam media area, the following message is logged on the console, followed by the same error as before:

/usr/local/src/patchwork/ui/lib/com/webcam-giffer-form.js:250
Webm video encoded: 321 bytes

Debian testing amd64, Node v4.2.1, patchwork 4fb5789

redact a message

Being able to hide a message you mistakenly posted would help enable hacking on new applications - at least it would make it safer to test them with out annoying everyone by filling their feeds with noise.

Currently, spam flags do work somewhat like this... but it's not obvious that you can do this by flagging your own message as spam.

That said, redaction shouldn't hide the message entirely - it's still there in the database, so it would be dishonest of the application to hide it completely. Opening that message directly should show it, for example.

When trying to sign up for patchwork for the first time

iojs v2.5.0
npm 2.13.2

message has invalid properties

Error: message has invalid properties
    at Object.exports.isInvalidShape (/Users/bret/repos/patchwork/node_modules/scuttlebot/node_modules/ssb-feed/util.js:105:12)
    at validate (/Users/bret/repos/patchwork/node_modules/scuttlebot/node_modules/ssb-feed/validator.js:69:14)
    at /Users/bret/repos/patchwork/node_modules/scuttlebot/node_modules/ssb-feed/validator.js:50:7
    at /Users/bret/repos/patchwork/node_modules/scuttlebot/node_modules/secure-scuttlebutt/index.js:317:22
    at /Users/bret/repos/patchwork/node_modules/scuttlebot/node_modules/secure-scuttlebutt/node_modules/level-sublevel/shell.js:101:15
    at /Users/bret/repos/patchwork/node_modules/scuttlebot/node_modules/secure-scuttlebutt/node_modules/level-sublevel/nut.js:120:19

This error occurred while trying to post a new profile in setup.

Opening a PDF triggers security warning

When you open a PDF, it will be saved into a directory, and then you get this message:

Security Error This page attempted to navigate out of its sandbox through explicit circumvention. Do not trust it!

Tracking multiple conversations at once

Because of #32 , I found myself wanting to keep track of conversations separately. The mechanic I reached for was to open a new tab (not possible as far as I can tell?), but the problem I was trying to solve is tracking multiple conversations at once.

Selecting an avatar image fails with CSP error

[70184:0813/220710:INFO:CONSOLE(0)] "Refused to load the image 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcwAAAHMCAYAAABY25iGAAAgAElEQVR4nOy8SY/kV5bl93vzfzQznyKCTGYyqzq7JUEL9UYfUxut9MmkRld3ZyUzSUaEh7u5Df/pjVo8Y2QNQDUESYVa8AIEgXCDh8Wb7j3nnnPF//a//x/l73/4Cz8+P5OlZLe/48M37/jdN0887DqeGss3jwdaIfjjH//I//mf/gvPrycCjqIUW0ws0bNlgdAK5xoaY7GqxRjDNE38+Pkjb/MV5xyNM3TKIGPkOnuwB9Ca6XIhrGfe73f85t0dO2MwOXLfdDzset4/HOgaQ04riIhQkMgs28qwH/j22w88Ph2QWlFSICZPDBkpNT/8+SP/+T/9iR9+/MJp8QjdIXRPSoGhF+wPA09P7wgl8/JyZPOeUgTzPJNjQQgBSFJK+BDIAoZhYNz1/Pb9e7bpyvHLM35ZiJvHbxNCCFKJNK1jd3egHwaGYeDdu...+iM3mAiCJB66hFz4BFhWr1eE73+PX13DV98XfDFMMCaTCJ9YwPatYWjMaHIAr85iA5zOCDkavf0fEf3z8WVZYR1eXd09aJI+HT0/yAas1YNm9J1Dqzt0a1clTq/ZEIiEL7zbo6qmCD1CsmlCzuGzxK9iED8V7SY/UEPUf4IAUR3GN6EJiK8yVkgHEYGDQxyEZpSgqYDjh8o4sUMhpj/RqdNW12P0canlCtdWddVy7bwnLbHZodCmUeSWOhxXBokjjx53bl7Xrjsi4s687WdvIwcjqd+PJ05vPzE19fX3kaC5M5OC/NWwem5haeeqTI/lktJoscTNleRaaP67MHk9Y+fF9b9L9ziSTTjiRNOoTb75M4OXQYBlDh7e3C/q//H0///YWvf54YnxLj/ImX1yf+/Kcf+eV65bItpFwoJaxFR/eNleSkQsnqfJbH9/gQMNVLxA/VsSeI9178Yww7AmaMIrMjCPdH//3/HxrkoGhK0bm/AAAAAElFTkSuQmCC' because it violates the following Content Security Policy directive: "default-src 'self' http://localhost:7777 http://localhost:7778". Note that 'img-src' was not explicitly set, so 'default-src' is used as a fallback.
", source: file:///Users/feross/code/patchwork/node_modules/ssb-patchwork-ui/main.html#/setup (0)

Kaboom with a webcam capture

Cannot read property 'width' of undefined

TypeError: Cannot read property 'width' of undefined
    at checkFrames (file:///Users/aredridel/Downloads/Patchwork.app/Contents/Resources/app/ui/vendor/whammy.js:234:26)
    at new toWebM (file:///Users/aredridel/Downloads/Patchwork.app/Contents/Resources/app/ui/vendor/whammy.js:14:16)
    at WhammyVideo.window.Whammy.WhammyVideo.compile (file:///Users/aredridel/Downloads/Patchwork.app/Contents/Resources/app/ui/vendor/whammy.js:519:12)
    at stopRecording (/Users/aredridel/Downloads/Patchwork.app/Contents/Resources/app/ui/lib/com/webcam-giffer-form.js:252:20)
    at HTMLDocument.onmouseup (/Users/aredridel/Downloads/Patchwork.app/Contents/Resources/app/ui/lib/com/webcam-giffer-form.js:84:5)

This was an unhandled exception.

error upon uploading user image

Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The HTMLImageElement provided is in the 'broken' state.

Error: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The HTMLImageElement provided is in the 'broken' state.
at Error (native)
at draw (/home/marina/prefix/lib/node_modules/ssb-patchwork/ui/lib/com/image-uploader.js:50:9)
at HTMLCanvasElement.onmouseup (/home/marina/prefix/lib/node_modules/ssb-patchwork/ui/lib/com/image-uploader.js:131:5)

This was an unhandled exception.

rework: contualize adder button

currently the adder always defaults to a public post. But I feel it should be contextual:

  • If I am currently viewing a profile, it should probably default to a message for just that person.
  • If I am currently viewing a private discussion it should default to the people in that discussion.
  • If I am currently viewing a thread it should be a reply to that message

thoughts?

Windowing bugs

There are some bugs that only manifest in the built version of OSX.

  1. It was reported that the main window doesnt always create on first run (?)
  2. I've experienced that the app doesnt close when all windows are destroyed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.