An open-source, AI-integrated, cross-platform terminal for seamless workflows
Find a file
Mike Sawka cdaa85f92f
Merge pull request #7 from wavetermdev/sawka/wstore
WaveObj + objectservice + WaveObjectStore

New distributed object system for Wave. Every object has an otype + oid (oref), and can be persisted to the DB and gotten from the DB using those attributes. The frontend tracks a cache of objects (based on orefs) and the store is integrated with jotai atoms for use with react components.

The WaveObjectStore passes a new UIContext through to the backend, and will seamlessly handle updated/deleted objects passed back (updating the store).

The backend DB operations are now all generic. As the updates happen they update the context adding the updated/deleted objects to seamlessly pass them back to the client.

Simplified global.ts store. Have a new way to force an object to be present in the cache at the top level (await loadAndPin) along with integration with nice loading flags for async fetching (or integration with React.Suspense)
2024-05-27 16:40:26 -07:00
.storybook Add configs from Faraday repo 2024-05-24 17:44:41 -07:00
.vscode Add task plugin to recommended extensions 2024-05-24 18:08:24 -07:00
build waveterm.lock, and new appicon 2024-05-20 15:28:47 -07:00
cmd checkpoint on new objectservice 2024-05-26 23:05:11 -07:00
db moving hard to OID model 2024-05-26 11:59:14 -07:00
frontend delete block and close tab working 2024-05-27 16:33:31 -07:00
pkg delete block and close tab working 2024-05-27 16:33:31 -07:00
public feat: integrate plots into new block setup 2024-05-16 13:54:15 -07:00
.editorconfig Add configs from Faraday repo 2024-05-24 17:44:41 -07:00
.gitignore Add configs from Faraday repo 2024-05-24 17:44:41 -07:00
.prettierignore initial commit. trim down and customize wails3 setup. 2024-05-09 20:24:24 -07:00
.yarnrc.yml Add configs from Faraday repo 2024-05-24 17:44:41 -07:00
eslint.config.js Add configs from Faraday repo 2024-05-24 17:44:41 -07:00
go.mod working on waveobj -- oids 2024-05-25 18:37:05 -06:00
go.sum working on waveobj -- oids 2024-05-25 18:37:05 -06:00
main.go app is working again. new structure for blocks. new useWaveObjectValueWithSuspense hook 2024-05-27 15:44:57 -07:00
package.json fix package versions 2024-05-24 17:46:33 -07:00
prettier.config.js Add configs from Faraday repo 2024-05-24 17:44:41 -07:00
README.md delete block and close tab working 2024-05-27 16:33:31 -07:00
Taskfile.yml Fix broken taskfile 2024-05-24 17:59:58 -07:00
tsconfig.json update blockservice to use wstore types 2024-05-22 09:23:16 -07:00
vite.config.ts more structure, store, types, views, global store to track tabs/blocks. two views 2024-05-13 23:45:41 -07:00
vitest.config.ts Add configs from Faraday repo 2024-05-24 17:44:41 -07:00
yarn.lock fix package versions 2024-05-24 17:46:33 -07:00

The Next Wave

To build you need to have wails3 installed. You need to check out the repo, switch to the v3-alpha branch, then install the wails3 command. you should also install the "task" command (wails3 uses a Taskfile.yml file).

Install task:

brew install go-task/tap/go-task

Install wails3:

git clone git@github.com:wailsapp/wails.git
cd wails
git checkout v3-alpha
cd v3/cmd/wails3
go install

To test if wails3 is installed correctly you can run wails3 doctor (it should say "success" at the bottom).

Now, this directory must live as a sibling to thenextwave repo (because we have a special replace directive in the go.mod file).

# move back to the *parent* directory of your wails clone
git clone git@github.com:wavetermdev/thenextwave.git
cd thenextwave

Now to run the dev version of the app:

wails3 dev

You should see the app!

Now to build a MacOS application:

task build
task create:app:bundle

now in your ./bin directory you should see bin/NextWave (a standalone executable), and you'll also see bin/NextWave.app which is a MacOS application. You can run bin/NextWave directly, or run the app using open bin/NextWave.app (or click on it in the finder).