Commit Graph

899 Commits

Author SHA1 Message Date
David Dworken
998bcbfced
Revert "Add mouse scrolling support for #200" since it breaks the ability to highlight text
This reverts commit 7d9bb6654d.
2024-04-14 09:26:14 -07:00
David Dworken
7d9bb6654d
Add mouse scrolling support for #200 2024-04-13 10:28:43 -07:00
David Dworken
7df61ab070
Clean up: Remove duplicated code by calling existing utility function 2024-04-13 09:53:00 -07:00
David Dworken
ce080b7ecb
Add support for forcing init without prompting via --force flag for #198 2024-04-13 09:51:07 -07:00
David Dworken
0e835c0640
Add test for horizontal scrolling other columns for #188 2024-04-05 16:21:37 -07:00
David Dworken
6aea2cb4d9
Remove minor version numbers from os versions for golden files for tests 2024-04-03 19:04:49 -07:00
David Dworken
6065068f9b
Enable colored golden tests for linux (#184)
* Enable golden tests for linux and ensure all goldens get saved as outputs

* Swap in OS specific goldens

* Update colored goldens to take into account OS version, since different macos versions have different behavior here

* Update goldens

* Re-enable golden tests

* Add missing golden

* Empty commit

* Remove linux kernel version from OS name
2024-03-28 08:03:04 -07:00
David Dworken
21b401bc14
Add ability to configure custom OpenAI API endpoint for #186 (#194)
* Add ability to configure custom OpenAI API endpoint for #186

* Ensure the AiCompletionEndpoint field is always initialized
2024-03-26 22:13:57 -07:00
David Dworken
9ae99ea9d2
Add support for horizontal scrolling of all columns for #188 (#195) 2024-03-26 11:40:25 -07:00
David Dworken
ff01d6f818
Add better error message for SLSA failures 2024-03-24 14:34:54 -07:00
David Dworken
b3a3c61225
Update slsa-verifier to attempt to fix SLSA breakage 2024-03-24 14:16:08 -07:00
David Dworken
ef05dc4707
Delete an unused file 2024-02-25 07:48:54 -08:00
David Dworken
7c55bf7a26
Delete temporarily unused goldens 2024-02-24 09:53:31 -08:00
David Dworken
6b75bb543f
Add updated goldens 2024-02-24 08:02:29 -08:00
David Dworken
df09bf074a
Disable colored output tests 2024-02-24 08:00:15 -08:00
David Dworken
8ae404a50b
Update golden 2024-02-23 22:54:36 -08:00
David Dworken
9eaf3aad10
Update test golden 2024-02-22 22:36:27 -08:00
David Dworken
ec704d5345
Update colored golden 2024-02-22 18:55:32 -08:00
David Dworken
67126d80ea
Improve word boundary algorithm to ignore previous spaces so that control+arrow-keys will skip over repeated spaces 2024-02-21 22:17:09 -08:00
David Dworken
5e87aa9eec
Add basic readline-like support for using control-left and control-right to scroll horizontally by one word at a time 2024-02-19 13:54:52 -08:00
David Dworken
199307f74a
Add support for control-A and control-E shortcuts similar to GNU readline 2024-02-19 12:26:44 -08:00
David Dworken
0787840a10
Wire through the shell name into AI suggestions so that we can get more precise AI suggestions for the current shell 2024-02-19 12:12:04 -08:00
David Dworken
3baba33d70
Add ability to disable auth and force specific creds for the web UI 2024-02-19 11:14:32 -08:00
David Dworken
52a4fbc96b
Add web UI for querying history from the browser (#180)
As requested in #176 and #147 

* Add initail version of a web UI for querying history from the browser

* Rename webui command

* Add basic test for the web UI

* Add README for the web UI

* Add basic auth for the web server

* Add status code when panic-ing
2024-02-19 09:34:33 -08:00
David Dworken
427ba01405
Remove unnecessary sub-shell, since we just need a truthy value here 2024-02-18 18:13:38 -08:00
David Dworken
1ff299c86a
Make bash support lenient with empty history lines, which seems to happen for the first command or two of new installs 2024-02-18 17:54:45 -08:00
David Dworken
b8b30ef22e
Add sync server to status -v #176 so that self-hosted users can easily confirm they're using the self-hosted server (#178) 2024-02-11 13:54:00 -08:00
David Dworken
b27fde71c9
Run integration tests in parallel to speed up testing (#175)
* Remove a few direct DB insertions to prepare for parallel tests

* Revert "Remove a few direct DB insertions to prepare for parallel tests"

This reverts commit f8a3552ad8.

* Add rudimentary experiment of splitting tests into two chunks to make them faster

* Add missing tag

* Remove code that enforces that all goldens are used, since it is incompatible with how tests are currently split into chunks

* Lay out the framework for checking goldens being used across all test runs

* Fix missing brace

* Revert "Remove code that enforces that all goldens are used, since it is incompatible with how tests are currently split into chunks"

This reverts commit 06cc3eedbc.

* Add initial work towards checking that all goldens are used

* Delete incorrect and unreferenced matrix

* Upgrade actions/upload-artifact to see if that makes the download in the next job work

* Alternatively, try downloading the artifact by name

* Update golden checker to read all the golden artifacts

* Swap to using glob to enumerate all golden files, rather than hardcoding them

* Remove debugging commands

* Remove goldens that are actually used

* Remove another golden that is actually used

* Add more comprehensive support for test sharding

* Fix references to test shards and increase shard count

* Shard the fuzz test

* Add debug prints

* Mark additional tests for sharding

* Fix logic error that broke test sharding

* Remove debug print

* Fix incorrect logic with skipping the fuzz test

* Move sharding functions to testutils and add some comments

* Upgrade all setup-go actions to enable caching of deps

* Remove goldens that don't exist

* Remove new line

* Reduce delay

* Correct stage name

* Remove incorrect skip code from the first version of sharding

* Remove unused import

* Reduce number of test shards to match GitHub's limit of 5 concurrent macos jobs

* Use cask for installing homebrew to speed up github actions

* More cleanup for unused goldens
2024-02-11 11:54:27 -08:00
David Dworken
638912b230
Improve install.py script to attempt to detect when /tmp/ is noexec (#172)
* Improve install.py script to attempt to detect when /tmp/ is noexec

* Add test to install from python script at HEAD

* Remove incorrect duplicated line

* Delete the tmp hishtory-client download since it may be dropped in CWD rather than /tmp/
2024-02-09 17:41:52 -08:00
David Dworken
786d2541d7
Add || true to fully fix #166 2024-02-08 22:44:35 -08:00
David Dworken
b395f6fa95
Properly silence which output to fix #166 2024-02-06 22:04:55 -08:00
David Dworken
6575c8ae42
Fix handling of new lines in commands for #163 (#170)
* Fix handling of new lines in commands for #163

* Move code for table from lib.go to query.go

* Update goldens
2024-02-06 20:04:21 -08:00
David Dworken
4b93240948
Log OpenAI error to debug log for #167 2024-02-05 21:34:03 -08:00
David Dworken
a3f1282368
Add ability to configure a default filter (for #76) (#161)
* Add ability to configure a default filter (for #76)

* Add test for color of default filter

* Add basic test for default filter

* Add goldens for tests

* Add more tests for default filters

* Update goldens

* Add another golden

* Update goldens

* Remove debug log

* Add golden to allowlist

* Update goldens
2024-01-07 21:06:22 -08:00
David Dworken
e86f7bf382
Add support for quotes around colons when searching (#162) 2024-01-07 18:56:30 -08:00
David Dworken
12f0aa1bff
Add TODO 2024-01-02 11:07:24 -08:00
David Dworken
77313dfb48
Add better color support detection, for #134 2023-12-31 13:00:56 -08:00
David Dworken
4013726c24
Remove allowlist for goldens that are used 2023-12-29 07:34:27 -08:00
David Dworken
29ba7bc272
Invert condition so that a bunch of golden tests only run on actions, since that is now our primary testing environment (#159)
* Invert condition so that a bunch of golden tests only run on actions, since that is now our primary testing environment

* Update goldens to match them on GH actions

* Update goldens to split them based on OS so they can run on GH actions

* Add runtime.GOOS to golden names

* Update goldens that are now split by OS

* Update another test to fork on OS

* Update shell exclusion to properly exclude fish

* More golden updates

* Add more goldens

* More goldens
2023-12-29 07:31:56 -08:00
David Dworken
20fce0ef02
Move log.Fatalf call to end so that we log all unused goldens before failing the program 2023-12-29 01:16:55 -08:00
David Dworken
db19d8ebf1
Make unused goldens check in tests more lenient with goldens that are OS-specific 2023-12-28 19:52:39 -08:00
David Dworken
29adbd2372
Add print to go tests to monitor for UNUSED_GOLDENS overuse 2023-12-28 19:45:59 -08:00
David Dworken
4a7f95686c
Delete goldens/ directory that is no longer used (it was replaced by testdata/), but accidentally added back by a merge conflict 2023-12-28 19:36:16 -08:00
David Dworken
cae6113abc
Make unused golden files into an error 2023-12-28 19:33:58 -08:00
David Dworken
30f94c1c78
Fix broken custom color scheme support as reported in #134 2023-12-28 19:25:09 -08:00
David Dworken
eec0745fbe
Revert "Update goldens for ubuntu"
This reverts commit 1e20f2f518.
2023-12-23 17:20:54 -08:00
David Dworken
1e20f2f518
Update goldens for ubuntu 2023-12-23 06:42:41 -08:00
David Dworken
5aa2c932fe
Add more golden files that are only referenced sometimes 2023-12-22 08:09:31 -08:00
David Dworken
17b158d4b3
Swap to checking golden usage post-tests so that it covers all golden usages, and not just per-package 2023-12-22 08:04:10 -08:00
David Dworken
5c9fc929cc
Add -v flag so that status contains the relevant info for these tests 2023-12-22 08:02:27 -08:00
David Dworken
4b058298b9
Add more precise assertions for installs from python scripts 2023-12-22 07:41:44 -08:00
David Dworken
e5764c6f07
Update AssertAllGoldensUsed to use an allowlist of goldens that may not be referenced in GH actions 2023-12-22 06:51:21 -08:00
David Dworken
abd7ee7fb2
Add test for installing via python script in offline mode 2023-12-22 06:33:09 -08:00
David Dworken
01725388a6
Fix typo in comment 2023-12-21 18:57:29 -08:00
David Dworken
9f5453f710
Fix issue where we paniced because the colored TUI test goldens weren't used on linux 2023-12-21 18:31:29 -08:00
David Dworken
a58c426ad3
Improve test to make the golden clearer about what is being tested 2023-12-21 17:43:26 -08:00
David Dworken
e5c038c8d6
Add back goldens for tab completion that were accidentally removed in an earlier merge conflict resolution 2023-12-21 17:37:44 -08:00
David Dworken
88f1c0168e
Move test goldens to testdata/ directory to be more idiomatic, and add assertion that they're all actively being used by the tests (#154)
* Move golden files to testdata dir

* Add assertion that requires that all goldens are used

* Add map init so the map is non-nil

* Add print to confirm that tests finished running

* Remove colon so that this doesn't match against gotestsum looking for the substring "panic:", which can happen depending on how stdout is buffer

* Revert "Remove colon so that this doesn't match against gotestsum looking for the substring "panic:", which can happen depending on how stdout is buffer"

This reverts commit b44e53a17b.
2023-12-21 17:06:46 -08:00
David Dworken
1edb6642a9 Disable tab completions for bash since they rely on the user having bash completions installed, which not everyone does 2023-12-20 22:23:40 -08:00
David Dworken
efe2ccc817 Remove outdated TODO 2023-12-20 22:23:40 -08:00
David Dworken
bda76d04d1 Add tab completion tests for fish 2023-12-20 22:23:40 -08:00
David Dworken
d8ef46367c Add tests for tab completions 2023-12-20 22:23:40 -08:00
David Dworken
a2d8a1065b
Add TestLog call to help debug mysterious timeouts for certain fuzz tests 2023-12-20 16:25:41 -08:00
David Dworken
81733cd25c
Add additional assertions to make the checks stronger 2023-12-20 14:58:10 -08:00
David Dworken
b98b8cca52 Update test golden name to remove reference to BetaMode 2023-12-20 14:56:09 -08:00
David Dworken
8f8f4449bf Simplify tests for removing duplicate rows to avoid flaky failure caused by extra newline 2023-12-20 14:56:09 -08:00
David Dworken
5e415469d8 Remove extra scrolled color test since the color rendering seems flaky 2023-12-20 14:56:09 -08:00
David Dworken
4c89010874 Add extra colored assertion for removing duplicate rows to debug an interesting test failure for highlighting search matches 2023-12-20 14:56:09 -08:00
David Dworken
3c33513fa3 Improve logic for padding for highlighting search queries to fix off-by-one error that happens when there are no matches 2023-12-20 14:56:09 -08:00
David Dworken
9070b85f36 Revert "Revert "Enable highlighting of search matches by default for new installs (see #112)" because it breaks some tests"
This reverts commit a453a858b6.
2023-12-20 14:56:09 -08:00
David Dworken
f4ee4e7175
Make linux labeling more precise for AI completions 2023-12-19 20:54:56 -08:00
David Dworken
bf1bae4ff2 Add TODO 2023-12-19 20:50:29 -08:00
David Dworken
8fd809fdc8 Improve AI suggestions by specifying shell name and OS in OpenAI query 2023-12-19 20:50:29 -08:00
David Dworken
d3baf03dde Add TODO 2023-12-19 19:12:04 -08:00
David Dworken
054744248c Enable hishtory shell completions by default 2023-12-19 19:12:04 -08:00
David Dworken
8082bd5a2d Add support for single quotes in search queries, and add a heuristic to avoid consuming unclosed quotes 2023-12-19 19:09:21 -08:00
David Dworken
60f5a222c0
Add config-remove as an alias for config-delete 2023-12-19 15:03:55 -08:00
David Dworken
c735fee3d5
Add aliases for plural config options in case people type the singular version 2023-12-19 09:34:12 -08:00
David Dworken
8b7e54eab4
Add support for configuring the TUI color scheme, for #134 (#146)
* Add support for configuring the TUI color scheme, for #134

* Add tests for getting and setting the custom color scheme, and support full colors where terminals support them

* Add comments to document termenv.ANSI setting, and fix tests so they work uniformly
2023-12-18 20:32:11 -08:00
David Dworken
1b3fa944bd
Add support for quoted searchs for exact matches, for #135 (#145)
* Add support for quoted searchs for exact matches, for #135

* Add support for quoting search queries

* Fix spliteEscaped so that it works with escaping dashes and colons in search queries
2023-12-12 22:20:49 -08:00
David Dworken
1be8e2cb47
Add some extra assertions to test various config-get commands 2023-12-11 20:49:28 -08:00
David Dworken
559fac57f9
Fix bug that made config-get timestamp-format require an argument 2023-12-11 20:44:18 -08:00
David Dworken
7272ca8448
Delete data from backend when uninstalling, fixes #132 (#143) 2023-12-10 09:15:11 -08:00
David Dworken
3a49c9c11f
Make hishtory work with set -o nounset for bash and zsh, for #142 (#144) 2023-12-10 09:14:12 -08:00
David Dworken
2d2c393bf9
Fix TUI code that tracked whether a search query is pending so it doesn't show the pending message when no query is pending 2023-12-09 15:51:04 -08:00
David Dworken
49daaa4da5
Update tests after #139 2023-12-06 20:46:19 -08:00
David Dworken
a26fc5b360
Add more special handling for extra tiny terminals (#140)
* Add more special handling for extra tiny terminals

* Add tests for extra compact terminals
2023-12-06 16:12:41 -08:00
David Dworken
3d6578c7f6
Add TODO for testing for #139 2023-12-05 21:44:39 -08:00
Ben
c8643d5a2b
Filter duplicates with map (#139)
The previous method of filtering duplicates only worked on duplicates that occurred consecutively. Since dupes happen out of order often, this switches the logic to instead use a map of seen commands and filter based on that.
2023-12-05 21:43:01 -08:00
David Dworken
8b83e2bbb5
Improve vertical sizing for small terminals, fixes #137 (#138)
* Improve vertical sizing for small terminals, fixes #137

* Add tests for tiny terminals + update test goldens for tiny terminals after compact sizing
2023-12-03 21:56:45 -08:00
David Dworken
bdaf0f8a65
Make TUI always take exactly the full width of the terminal through more precise calculations of the overhead used for the table (#136)
* Make TUI always take exactly the full width of the terminal through more precise calculations of the overhead used for the table

* Update TUI goldens for more accurate TUI sizing

* More golden updates for wider table sizing

* Include failed test goldens as artifacts for easier test fixing on github actions
2023-12-03 13:15:38 -08:00
David Dworken
6dc366fe47 Add test for presaving while offline 2023-11-24 16:46:22 -08:00
David Dworken
18ef74656c Add presaving test for fish 2023-11-24 16:46:22 -08:00
David Dworken
caac6ac9ee Add test for disabling presaving 2023-11-24 16:46:22 -08:00
David Dworken
09d0ddd587 Add TODO 2023-11-24 16:46:22 -08:00
David Dworken
a667585962 Fix incorrect reference when handling config updates 2023-11-24 16:46:22 -08:00
David Dworken
b86d6c2ef1 Remove debugging print in test 2023-11-24 16:46:22 -08:00
David Dworken
7bb2945901 Swap back to using the strict version for capturing tmux 2023-11-24 16:46:22 -08:00
David Dworken
fb96852b2d Another attempt at fixing broken tests with presaving 2023-11-24 16:46:22 -08:00
David Dworken
6483e9817e Another attempt at fixing testControlR/bash with presaving 2023-11-24 16:46:22 -08:00