I've reworked the autocomplete parser to more closely match Newton, the
Fig-compatible parser I prototyped earlier this year. I was able to move
a lot faster by reusing patterns that inshellisense proved out, such as
for templates and generators.
I also support some features that inshellisense doesn't, like proper
combining of Posix-compatible flags, handling of option argument
separators, and handling of cursors in insertValues.
This continues the work to unblock multiple window support. `emain.ts`
now contains no more references to a "main" window, instead all event
handlers will dispatch to either the window that triggered the event,
the currently focused window, or the first window to be spun up.
The hour long interval that I set was being subjected to background
throttling and wasn't reliably getting invoked. I am shortening the
inteval to 10 mins and adding a check within it to see if an hour has
passed since the last update check. I am also running the same logic
every time the main window is activated. This should ensure that the
auto update check happens more reliably and not just on first launch.
I am removing the Yarn cache from our Build Helper. The
actions/node-setup cache option is not compatible with Yarn Modern. With
Yarn Modern, the `yarn install` command that sets up our
project-specific yarn config will also install all the module
dependencies, meaning we don't need a separate call to resolve these.
Altogether, even without the cache, it only takes 21s for Yarn Modern to
install and resolve dependencies.
We were using Yarn Classic. While this is not deprecated, Yarn is moving
in a different direction with Yarn Modern (read more
[here](https://yarnpkg.com/migration/overview)) and we should align with
that. The migration mainly requires rebuilding our lockfile. We will
still use `node_modules` for now, though in the future we may want to
adopt the new [Plug'n'Play model](https://yarnpkg.com/features/pnp).
RotateIcon wasn't actually binding the ref that it was passing to SyncSpin, meaning it wasn't actually syncing properly. This fixes that, along with making SyncSpin compatible with more than just div types
This improves the ephemeral command runner to allow for honoring of
timeouts and proper handling of overriding the current working
directory. It also fixes some partially transparent font colors in light
mode, making them solid instead. It also updates the InputModel to be
auto-observable and utilize some getters to ensure the cmdinput is
getting updated whenever necessary state changes take place.
* Simplify scrollHistoryItemIntoView
* remove unnecessary block argument
* actually the block nearest is necessary, otherwise the scroll will jump even if the item is already in view
* Make the auxView tilebar optional and make sure it flows as part of the flexbox
* simplify condition
* fix ai chat scroll direction
* remove unnecessary change
* remove unused class
* Clean up cmdinput
* Remove unused css styles, clicking on textarea will focus back to textarea without closing history
* cleanup logic for activating textarea
* actions buttons should always show, should properly disable inactive views
* clicking actions toggles the view
* remove titlebar spacer, clean up padding
* Make AIChat and HistoryInfo share a common layout
* fix ai chat scroll
* clean up formatting
* fix chat textarea resizing
* align prompt and input
* update infomsg to use auxview
* update comments
* fix widths and key error
* add todo
* adjust padding for input, remove debug
* Don't capture clicks on the prompt area
* initial
* save work, starting to add backend types
* save work
* save work
* Add EphemeralWriteCloser
* Command pipes thru, triggers infinite loop
* save debugging
* fix bad merge
* save debug statements
* fixing spaghetti
* clean up code
* got cwd override working
* Add separate paths for stdout and stderr writers
* fix stdout/stderr
* env vars are now working
* revert waveshell changes
* Making EphemeralWriteCloser into a more generic BufferedPipe
* formatting
* comment
* delete unused package
* more naming changes
* add package comment
* add UsePty to EphemeralRunOpts
* document UsePty
* ensure only one downstream writer can read from the buffer
* store pointer to syncs
* remove inshellisense stuff for now
* remove debugs
* revert yarn
* remove unnecessary debugs in main-server
* more debugging removed
* revert tsconfig
* Add overlay scrollbar to left sidebar
* Keep active session bolded when mainview is not session
* fix color of scrollbar
* swap expression args
* add active color for scrollbar
* add active/highlight to history, connections, and settings
* save work
* Add native theme support
* update index
* update var name
* remove comment
* fix code setting
* bump render version on change
* remove themeutil
* Extend bottom border for mainview underneath window controls
* Make sidebar button hover color an accent color
* revert 87 to 88
* make mint less bright on light mode
* revert modal border change
This adds support for Arch Linux via pacman. It also updates the product tagline in package.json and the "About" modal. It also removes the unused "Help" menu and updates the copyright year in About and fixes the window icon display on Linux.
* Unify color definitions and clean up light mode
* consolidate form colors
* increase border thickness on dropdown and text
* remove dev conditional for theme
* fix secondary form element color
* increase dropdown border thickness
* fix history textinput
* make warning a bit darker
* attempt to fix rotate icons
* fix line actions bg
* fix terminal colors
* fix broken history colors
* fix textinput label padding
* fix bottom negative margin
* updates for prompt colors. darken magenta, grey out the whites slightly, and sneak in a change for git co.
* clean up prompt.tsx
* fixing wobbly icons
* center svg icon, simplify meta-line1
* Sign and notarize in CI
* add dmg
* remove flag
* fix env var
* add team id
* conditionally set apple specific env vars
* publish to a staging location
* upload unzipped
* add script to publish to staging, update publish url
* turn off autodiscovery again
* update scripts
* deprecate old method
* move stuff
* remove autodiscovery
* Add linux makers
* missed some
* remove eu-strip
* blah
* add description
* remove v from version
* add exec name
* use bin
* add bin to both
* test flatpak
* test adding dev dependencies
* remove flatpak for now
* add command to flatten directory structure
* update package info
* save rpm info
* save work
* add bin to packagerConfig
* save work
* okay let's see what happens
* iterate array
* test more
* remove large
* test
* test
* remove linux arm
* test addl targets
* add quiet to zip
* revert dir flatten
* remove pacman
* add s3 bucket to electron-builder config
* make dir
* only copy artifacts
* don't merge
* zip recurse
* blah
* replace with electronupdater
* make generic
* fix
* fix stuff
* Update build-helper.yml
* test fix
* fix path
* remove tree
* messed up comment
* remove touch
* add platform name to artifact
* remove license
* remove forge
* cleanup builder config
* switch artifact name order
* Remove darwin restriction on autoupdate
* try adding back pacman
* fix license
* remove pacman again
* rewrite scripts
* add binary paths to builder
* clean up
* Update scripts
* update interval and readme
* remove flatpak and snap dependencies for now
* upload with a wildcard
* fix paths for addl binaries
* add back blockmap
* update release path
* add newline
* remove forge config
* 2 small fixes - remove double cd for waveshell building, and remove GOARCH for wavesrv binary in dev mode
* Add delimiters to screen tab, make active gradient a translucent mask
* make delimiter slightly shorter
* move end icon a bit to provide more separation
* fix zindex for tab contents
* fix magic layout
* make the tabs closer to the width they used to be
* Fix logo not being visible in auxiliary views when sidebar is collapsed
* Refactor auxiliary views into MainView component
* fix contents formatting
* Need a better-centered version of the logo for the sidebar
* Add logo back to the sidebar
* revert root.less change
* Fix regressions from last pr
* zero out subtractor if sidebar is collapsed
* remove unnecessary var
* clean up emain
* add restart on disable auto update
* save work
* add zip
* save
* fix zip command
* make build-universal more generic
* clean up script
* fix autoupdate config
* update feed
* fix update feed path
* switch to custom update flow
* show notification
* remove enum
* test change
* debug sidebar
* save work
* remove weird import
* remove listeners if present
* save debug
* fixed banner
* fix sending of appupdatestatus, add comments
* Change to primary feed
* more comments, less debugs
* rename to app update
* code cleanup, add fireAndForget
* update paths for objects
* store version for build in txt file
* get version from version.txt
* remove quotes
* Use version.js for Go version too
* test
* test
* simplify things more
* rename zips to consistent waveterm name
* remove newline
* always use v
* always use Wave rather than waveterm
* Set build version programmatically in build-helper
* remove env var definition
* fix paths in helper scripts
* missing import
* missed some more relative paths
* Break update code out of sstore
* add license disclaimers
* missed one
* add another
* fix regression in openai updates, remove unnecessary functions
* another copyright
* update casts
* fix issue with variadic updates
* remove logs
* remove log
* remove unnecessary log
* save work
* moved a bunch of stuff to scbus
* make modelupdate an object
* fix new screen not updating active screen
* add comment
* make updates into packet types
* different cast
* update comments, remove unused methods
* add one more comment
* add an IsEmpty() on model updates to prevent sending empty updates to client
This PR changes ModelUpdate mechanism from a statically-typed struct to an interface, allowing us to define the update mechanism and the update types separately. This sets us up to move app logic and update mechanisms into separate packages. Ultimately, sstore will only define low-level persistence logic.
* add status-indicator-visible
* save
* save
* Prevent the status indicator flickering for quick returns
* flx regression
* reduce delay, reset spinnerVisible when there's no more running commands
* clean up code reuse
* move code around
* slight optimizations to prevent rendering before spinner is visible
* rename var
* revert shouldSync change as it broke the sync