diff --git a/docs/contributing/development/building-status.md b/docs/contributing/development/building-status.md index 2fda988..9d62686 100644 --- a/docs/contributing/development/building-status.md +++ b/docs/contributing/development/building-status.md @@ -24,7 +24,7 @@ This guide is written with OS X in mind. # or $ git clone git@github.com:status-im/status-react.git -b develop && cd status-react - $ lein deps && npm install && ./re-natal deps + $ lein deps && npm install && ./re-natal deps && lein generate-externs $ mvn -f modules/react-native-status/ios/RCTStatus dependency:unpack $ cd ios && pod install && cd .. diff --git a/docs/contributing/outreach.md b/docs/contributing/outreach.md index dcaf34f..e13a2a7 100644 --- a/docs/contributing/outreach.md +++ b/docs/contributing/outreach.md @@ -1,16 +1,16 @@ # Community Outreach & Marketing -Any communications efforts are welcomed, and it's necessary that any contributions that represent Status are closely aligned of our [Mission & Core Values](../getting-started/mission-and-core-values.md). Brand messaging needs to be consistent, honest, transparant and accurately reflect what the project aims to achieve. +Any communications efforts are welcomed, and it's necessary that any contributions that represent Status are closely aligned of our [Mission & Core Values](../getting-started/mission-and-core-values.md). Brand messaging needs to be consistent, honest, transparent and accurately reflect what the project aims to achieve. -Status is not yet ready for mass-adoption, and a clearly defined a user acquisition strategy will be outlined here at a later date. For the time being, contributors interested helping with community outreach should focus on helping to produce meaningful content and spreading the word amongst other blockchain enthusiasts. +Status is not yet ready for mass-adoption, and a clearly defined a user acquisition strategy will be outlined here at a later date. For the time being, contributors interested helping with community outreach should focus on helping to produce meaningful content and spreading the word amongst other blockchain enthusiasts. Some practical tips and suggestions on how you can take part in and help to strengthen our community can be found at the [Growing our Community](../community/how-to-grow-our-community.md) page. ## Get Involved -Join the [Status Slack](http://slack.status.im) and head over to the **#outreach** channel to share what you had in mind, and bounce ideas. +Join the [Status Slack](http://slack.status.im) and head over to the **#community-building** channel to share what you had in mind, and bounce ideas. ## Guest Posts -Enjoy writing about Ethereum? Come write an article that will be featured on the Status blog. +Enjoy writing about Ethereum? Come write an article that will be featured on the [Status blog](https://blog.status.im). ## Interviews -Contributed to Status or the Ethereum ecosystem? Help us spread the word by being part of an interviews series published on the blog and across social media. +Contributed to Status or the Ethereum ecosystem? Help us spread the word by being part of an interviews series published on the [blog](https://blog.status.im) and across social media platforms, like [Twitter](https://twitter.com/ethstatus), [Reddit](https://www.reddit.com/r/statusim/) and [Facebook](https://www.facebook.com/ethstatus). ## Quality Assurance -A brand is a delicate thing, and any content contributions require acceptance from within our community before publication. Text content must be stylistically and structually well-produced with no grammatical errors. We'd be happy to help with editing and proof-reading :) \ No newline at end of file +A brand is a delicate thing, and any content contributions require acceptance from within our community before publication. Text content must be stylistically and structually well-produced with no grammatical errors. We'd be happy to help with editing and proof-reading :) diff --git a/docs/contributing/testing-and-feedback.md b/docs/contributing/testing-and-feedback.md index 7cfbcfd..f6a7bf6 100644 --- a/docs/contributing/testing-and-feedback.md +++ b/docs/contributing/testing-and-feedback.md @@ -11,7 +11,9 @@ Please try to be as descripive as possible. To run the tests: 1. Install appium: run `npm install -g appium` -2. Start application on emulator or real device ([more details here](https://wiki.status.im/contributing/development/building-status/#build-and-test)) +2. Start application on emulator or real device ([more details here](https://wiki.status.im/contributing/development/building-status/#build-and-test)). + + **Important:** use the _android-test_ build (run `BUILD_IDS="android-test" lein repl`). Testing in iOS is not supported yet. 3. Start appium server in new tab: run `appium --session-override` 4. Run `lein test` diff --git a/docs/getting-started/mission-and-core-values.md b/docs/getting-started/mission-and-core-values.md index 782393d..895149e 100644 --- a/docs/getting-started/mission-and-core-values.md +++ b/docs/getting-started/mission-and-core-values.md @@ -26,7 +26,7 @@ To achieve our mission we intend to employ a strategy that contains three core c ### Technology -- The Status app itself is (currently) targeted at mobile devices running Android and iOS, and is built using Clojure.js, React and Golang. +- Status is built using ClojureScript, React and Golang. It includes a geth node on your device that uses the Light Ethereum Subprotocol (LES) to validate and sync with the blockchain. It uses Whisper (shh) as its messaging client and aims to integrate Swarm for storage. - To sync with and validate the ethereum blockchain on a mobile device, Status deploys a geth node using the Light Ethereum Subprotocol (LES). diff --git a/docs/proposals/chat-api.md b/docs/proposals/chat-api.md index d97a51a..d0c040f 100644 --- a/docs/proposals/chat-api.md +++ b/docs/proposals/chat-api.md @@ -11,31 +11,49 @@ This anatomy establishes the different sections of the chat interface and establ ![](img/chat-anatomy.png) -## Commands +## Accessing a bot -!init (hidden) - - if it exists run on open chat session, only in 1-to-1 chats. -!help -!settings +`/global` (hidden) +Universal command for the bot, allows the bot command to be referenced in any chat via `@botname`. If this exists it should appear in the command list as another section at the bottom. -### Explicitly calling commands +`/init` (hidden) +Run on open chat session, only in 1-to-1 chats. -DApps are namespaced with @dappname!command, which can be useful if same commands used by multiple bots are available, alternatively these can be used for commands when bot is not actually in the chat, ie @wallet!send +`/` bots can register a command handler of any ASCII title, which then Status repeats -## Custom Keyboards +`@botname/command` if there is multiple bots in a chat context, then the `@botname` can be used to make the distinction (or alternatively a suggestions/commands list should appear to help with the distinction) -Parameters use custom keyboards (instead of types, we adapt our types to be keyboards themselves?) +`Bot Message` a bot can send a message that can only be read by another instance of itself in chat history. This message can send markup to draw and contain data. It is activated by a user tapping on it. -Make our emoji/sticker market with this, otherwise accessible through commands -ie !init command with param that opens up a config +`A message parsed from chat history` on 1-to-1 chats, any message the user send can be read by the bot and can activate code via `status.on('chat-update', function () { ... } );` handler. -## Messages +## Bot Messages -- subscription to message feed -- api for sending messages, and setting things like "typing" -- not available in group +A Bot Message can contain it's own markup and a data payload, this message can be transmitted to the chat context. If it is interactable then the interaction (what we currently call response handler) handles the message when tapped. + +**If the user does not have the bot installed, then we display a custom keyboard that shows the bot name, its reviews/ reputation and a "Install / Add to Contacts" button, which the user can either cancel or install and continue with response flow.** + + +## Command Handlers + +Once a command handler is invoked it is passed the current text / data payload of the message, and is required to return the paramaters (and their placeholder information). The return of the handler must include +- `markup` or a `status component(data)` for the suggestions area +- `markup` or a `status component(data)` for the the keyboard +- an error object +- the revised text / data payload. ## Privacy -- by default does not receive all messages in group chat -- only commands and in 1-to-1 \ No newline at end of file +- a bot can only be interacted with via commands or messages via in 1-to-1 chats +- a bot can only see messages from itself and the current user in group chats. + + +## Deployment & Testing + +Console should have some `/debug` mode that allows the user to plugin their phone in and hot-load javascript/webpage to make testing web-based dapps or bots easily from desktop. Ideally it should have integration with [Truffle](http://truffleframework.com/) & [Embark](https://github.com/iurimatias/embark-framework) and pay respect to [EIP190](https://github.com/ethereum/EIPs/issues/190) + +## Open Questions + +Is there an issue of resources and conservation around Otto VM jails? +Should it runs per dapp per chat context? or per DApp and then an object in each per chat context? +