Commit Graph

835 Commits

Author SHA1 Message Date
David Dworken
b1733b0325 Update a bunch of tests to reflect presaving which means that the hishtory command that is being tested will show up as a hishtory entry 2023-11-24 16:46:22 -08:00
David Dworken
b3e145d764 Enable presaving by default rather than having it gated behind BetaMode 2023-11-24 16:46:22 -08:00
David Dworken
4f7cef19c9
Add more debugging info when status -v shows the device is offline 2023-11-24 16:09:16 -08:00
David Dworken
a1d1c779d5
Mark all github action tests as integration test devices 2023-11-23 09:53:12 -08:00
David Dworken
3a98b10e47
Add comment 2023-11-22 20:48:23 -08:00
David Dworken
30b5478104
Add additional error checking that should never trigger 2023-11-22 20:45:38 -08:00
David Dworken
4d2b02e2c3
Add error checking when clearing the DB during the init process 2023-11-22 20:45:18 -08:00
David Dworken
af8ace69dd Add loading spinner for slow searches, primarily to benefit AI queries since they are quite slow 2023-11-21 05:53:10 +01:00
David Dworken
05088d4bed Add comment to explain some confusing logic that we do have to keep 2023-11-19 09:41:05 +01:00
David Dworken
5bf734606f Swap to using hishtory getTimestamp to get the precise timestamp since this gives us a precise timestamp even on MacOS 2023-11-19 09:41:05 +01:00
David Dworken
d8b83b9429
Add getTimestamp command as an internal command that will be used as an alternative to date since date on MacOS doesn't support nanosecond granularity 2023-11-18 12:01:40 -08:00
David Dworken
a453a858b6
Revert "Enable highlighting of search matches by default for new installs (see #112)" because it breaks some tests
This reverts commit 6c24ddfd46.
2023-11-12 09:14:57 -08:00
David Dworken
c52dbebb1b
Consolidate TODOs 2023-11-12 05:04:55 -08:00
David Dworken
6c24ddfd46
Enable highlighting of search matches by default for new installs (see #112) 2023-11-12 05:00:47 -08:00
David Dworken
0be6fe9724
Swap AI completions to be behind a dedicated config option and add docs on it 2023-11-12 03:09:56 -08:00
David Dworken
aeadaf4e0d Set OPENAI_API_KEY for testTui/ai so that it runs with the hishtory server rather than via directly querying OpenAI 2023-11-12 02:57:23 -08:00
David Dworken
dd6cf710c7 Remove outdated TODO 2023-11-12 02:57:23 -08:00
David Dworken
a8f47cf340 Fix testTui/ai test and add golden file for it 2023-11-12 02:57:23 -08:00
David Dworken
e712d77f62 Add more guarding against panics when doing indexing into split strings 2023-11-12 02:57:23 -08:00
David Dworken
37e0e6653d Remove unnecessary field 2023-11-12 02:57:23 -08:00
David Dworken
c4b60eb6b2 Clean up tests to make panics not happen for TUI test failures by moving repeated code line to a function at also adds a require 2023-11-12 02:57:23 -08:00
David Dworken
3df099c945 Fix AI test by quoting the sent keys to ensure zsh doesn't complain about the question mark 2023-11-12 02:57:23 -08:00
David Dworken
a184bd4243 Remove question mark to debug the AI test 2023-11-12 02:57:23 -08:00
David Dworken
6962233e1e Better log messages and error messages 2023-11-12 02:57:23 -08:00
David Dworken
afe1a38a0e Fix 2d63263b79 by applying the override on the backend rather than in the client-side variable that isn't actually being referenced 2023-11-12 02:57:23 -08:00
David Dworken
b0f3107da2 Add basic test for AI queries 2023-11-12 02:57:23 -08:00
David Dworken
0ea3ce2399 Add basic debouncing for AI integration + implement AI suggestions via hishtory API endpoint 2023-11-12 02:57:23 -08:00
David Dworken
eb835fe52c Add initial version of AI searching, but with a broken implementation of debouncing 2023-11-12 02:57:23 -08:00
David Dworken
68142bf5fb
Fix #123: Fix bug with deleting custom columns and also generally improve logic for creating/removing custom columns 2023-11-12 02:05:51 -08:00
David Dworken
d69176fb5c
Update SLSA integration to always prompt the user before suspected broken updates 2023-11-11 11:26:39 -08:00
David Dworken
99d899254a
Fix %v that should have been a %w so that we can use errors.Is reliably 2023-11-11 11:24:16 -08:00
David Dworken
9ea10d2fcd Revert "Add t.Skip() call for broken test"
This reverts commit 63d0a8e457.
2023-11-10 10:20:59 -08:00
David Dworken
14d851a413 Revert "Revert "Remove t.Skip() call to determine if this test is actually flaky""
This reverts commit b013c51c80.
2023-11-10 10:20:06 -08:00
David Dworken
b013c51c80
Revert "Remove t.Skip() call to determine if this test is actually flaky"
This reverts commit cea481816f.
2023-11-09 23:04:17 -08:00
David Dworken
cea481816f
Remove t.Skip() call to determine if this test is actually flaky 2023-11-09 23:03:27 -08:00
David Dworken
2a47f1f600
Add TODO 2023-11-09 23:02:42 -08:00
David Dworken
63d0a8e457
Add t.Skip() call for broken test 2023-11-09 23:01:55 -08:00
David Dworken
1975f51052
Call m.Run() in TestMain so that lib tests actually get executed, and fix test breakages that existed because lib tests weren't running 2023-11-09 23:00:20 -08:00
David Dworken
165cdd9187
Update slsa integration to use the shared library for parsing version strings 2023-11-09 20:52:21 -08:00
David Dworken
19b9f67724
Fix bug with automatic cd-ing where quoting the directory caused tildes to not get expanded into the user's homedir 2023-11-06 21:39:01 -08:00
David Dworken
e1f69f8731
Add TODO 2023-11-06 18:44:28 -08:00
David Dworken
a180c850a9
Add extra require to ensure that the next line doesn't panic if the string isn't present, since that interferes with gotestsum 2023-11-06 18:44:14 -08:00
David Dworken
c918bcd3cb
Update slsa validation to not validate version when running in github actions, since the one in actions isn't associated with a released version 2023-11-05 01:15:54 -07:00
David Dworken
29142df382
Add additional check that checks that the version is valid per semver 2023-11-05 00:38:21 -07:00
David Dworken
c908a9a6dd
Add a hidden validate-binary command that can be used to run SLSA validations against a given binary. This will be used for CI/CD tests in the automated releases 2023-11-03 18:19:36 -07:00
David Dworken
7f8772af3a
Fix test that I forgot to update in 588e2f4405 2023-11-01 22:09:49 -07:00
David Dworken
8493224e23
Add TODO 2023-11-01 18:04:40 -07:00
David Dworken
588e2f4405
Fix bug where cd-ing wouldn't work if the changeDir contained a space 2023-11-01 18:03:14 -07:00
David Dworken
166661dd7f
Remove arbitrary limit of only supporting 10 custom columns 2023-10-30 17:51:07 -07:00
David Dworken
f8b515c328
Update custom column support to also automatically retry DB errors to further harden against issues like #119 2023-10-30 17:50:47 -07:00
David Dworken
5f9ff9e158
Fix bug that caused unreleased presaving feature to accidentally save entries that were prefixed with a space 2023-10-30 17:42:09 -07:00
David Dworken
be377dee82
Add TODO 2023-10-30 17:40:47 -07:00
David Dworken
4352f61123
Add automatic retrying of DB functions to fix DB locked errors from hishtory init and hishtory install for #119 2023-10-29 21:13:10 -07:00
David Dworken
a6e6f6504c
Remove TODO that is out of date 2023-10-28 15:13:24 -07:00
David Dworken
fcf05ac21a
Add tests for errors in testTui 2023-10-26 17:42:50 -07:00
David Dworken
390f37f20c
Update testTui tests to run with online and offline installs 2023-10-25 20:44:26 -07:00
David Dworken
00129a5372
Add extra new lines to fix warnings ending up on the same line 2023-10-25 20:26:41 -07:00
David Dworken
93cffd98b4
Replace e50f4d164 with query IDs so that we properly handle deletions. See e50f4d164 for full details on the bug that this fixes. 2023-10-25 20:07:09 -07:00
David Dworken
e50f4d164b
Fix race condition in TUI code for handling async queries
If someone types in "l" and then "s" to search for "ls", then this will dispatch two async queries. If the query for "l" finishes after the query for "ls", then this will lead to the results for "l" getting incorrectly displayed. In practice, this is quite rare for human typing speeds so I had never noticed this. But, it causes an issue for test flakes and is the root cause of many of my recent changes around test flakes. Fixing this should improve test reliability significantly.
2023-10-24 22:52:52 -07:00
David Dworken
bb96164ea8
Revert "Increase delays for testTui/search since it is the flakiest test" since I figured out the source of the flakes
This reverts commit 10851528bc.
2023-10-24 22:47:36 -07:00
David Dworken
590c4755b5
Revert "Split the flaky testTui/search test into two tests to increase odds of it passing quickly" since I figured out the source of the flakes
This reverts commit 352e483db5
2023-10-24 22:47:10 -07:00
David Dworken
df48e516ef
Close dd stats 2023-10-23 19:26:25 -07:00
David Dworken
352e483db5
Split the flaky testTui/search test into two tests to increase odds of it passing quickly 2023-10-23 18:53:16 -07:00
David Dworken
27eeb7d099
Refactor code to strip out the shell prefix to a separate function 2023-10-23 12:24:43 -07:00
David Dworken
10851528bc
Increase delays for testTui/search since it is the flakiest test 2023-10-23 12:13:40 -07:00
David Dworken
ff79707ccf
Use unqualified test name as test ID since the full package makes the datadog metrics overly verbose 2023-10-22 20:57:21 -07:00
David Dworken
0413e88321
Add flush call to metrics exporter so that metrics are flushed before the github action is killed 2023-10-22 18:10:49 -07:00
David Dworken
13233926a7
Fix test broken by 9433bd6e94 2023-10-22 17:59:21 -07:00
David Dworken
bfce9d4b1c
Add space to fix test that was broken by previous refactoring 2023-10-22 17:21:36 -07:00
David Dworken
d463d99916
Reorder if in test metrics exporter so that it actually skips initializing DD when there is no DD api key 2023-10-22 12:01:51 -07:00
David Dworken
2b1af986d8
Add support for running hishtory redact while offline, even though this may lead to syncing inconsistency bugs 2023-10-22 11:43:56 -07:00
David Dworken
c613e696b4
Update hishtory redact so that it doesn't error out due to it redacting the presaved entry for the current command 2023-10-22 11:34:26 -07:00
David Dworken
fdbe91246e
Add another hook point to check HISHTORY_SIMULATE_NETWORK_ERROR so that it also blocks downloading updates 2023-10-22 11:30:49 -07:00
David Dworken
9433bd6e94
Refactor offline simulation tests so that they reliably set the env variable before ever starting the shell, since we need the env variable to also apply to presaving 2023-10-22 11:28:41 -07:00
David Dworken
956ac736f2
Update metrics exporter output to include whether GLOBAL_STATSD is nil 2023-10-22 11:14:25 -07:00
David Dworken
ff0d2c34d6
Add print line after finishing upload of DD metrics 2023-10-21 17:14:49 -07:00
David Dworken
3d4e48aabd
Add test runtime metric 2023-10-21 16:42:41 -07:00
David Dworken
595ddec235
Add integration to report flaky tests to datadog 2023-10-21 16:28:28 -07:00
David Dworken
df9c6e8786
Swap to using gotestsum for retrying flaky tests 2023-10-21 15:41:32 -07:00
David Dworken
4e0788dccc
Update more test code to use require rather than manual failures 2023-10-21 14:59:12 -07:00
David Dworken
5ec9f85e5e
Fix broken test on ubuntu that was introduced in 08e734a 2023-10-21 13:44:08 -07:00
David Dworken
6bb12241c9
Promote the background updates of the DB from BetaMode to prod 2023-10-21 09:47:20 -07:00
David Dworken
08e734a1fe
Add tests to verify the fix for #117 2023-10-21 09:00:06 -07:00
David Dworken
3ca9de559f
Fix #117 by disown-ing background processes so that they don't stop fish from exiting 2023-10-20 23:23:24 -07:00
David Dworken
9efef65e3a
Update README and make column name matching more relaxed 2023-10-18 19:17:05 -07:00
David Dworken
f1ca76a5a0
Extra delay to make test more reliable 2023-10-15 21:47:01 -07:00
David Dworken
0fec2d5ba9
Ensure that the DB entry is reliably created locally and in the remote for testTui/scroll to make it more reliable 2023-10-15 21:45:20 -07:00
David Dworken
1a04213f11
Add extra delay to make flaky test more reliable 2023-10-15 19:02:57 -07:00
David Dworken
58e92e5760
Refactor by moving methods out of lib.go into more specific packages 2023-10-15 18:30:39 -07:00
David Dworken
539ef74746
Remove TODO that has already been completed 2023-10-15 18:12:28 -07:00
David Dworken
f3727dbeff
Wire through a flag so that we can track when installations come from tests, and delete those from the DB more aggressively 2023-10-15 13:09:48 -07:00
David Dworken
449a4d0000
Add better handling for race condition with deleting presaved entries 2023-10-15 13:00:34 -07:00
David Dworken
4bcc5fb335
Periodically call query endpoint and retrieve data to ensure that the local DB is always reasonably up to date 2023-10-15 12:29:50 -07:00
David Dworken
1c4fe0d379
Add TODO 2023-10-14 17:30:12 -07:00
David Dworken
6fb6498515
Make deletion request processing happen in parallel to speed up query endpoint 2023-10-14 17:21:00 -07:00
David Dworken
fca2b1441f
Always include user and device ID in API request headers, so that they're available in all server-side handlers 2023-10-14 10:52:51 -07:00
David Dworken
66e482de17
Fix broken import test that asserted that fish commands were imported after bash/zsh commands 2023-10-12 21:51:18 -07:00
David Dworken
dbb555e20c
Add progress bar to monitor importing history entries for #93 2023-10-12 19:35:52 -07:00
David Dworken
851283df8d
Add TODO 2023-10-12 19:34:09 -07:00
David Dworken
253ad7f6b6
Bold matches for search queries in TUI for #112. This was previously available behind the beta-mode flag, but will now be enabled by default 2023-10-12 19:34:09 -07:00
David Dworken
9a947b73cf
Add test for updating that relies on the prod server 2023-10-10 22:14:51 -07:00
David Dworken
dc19fa3a17
Roll-forward "Make history entry start times more precise (down to the nanosecond) to make the recorded runtime more accurate, since currently start times are rounded to the nearest second. Though
note that 'date' on MacOS doesn't support %N, so this doesn't apply to MacOS"

This reverts commit 6281ae0601.
2023-10-10 07:44:15 -07:00
David Dworken
dfa961072e
Add more precise assertions for update tests 2023-10-10 07:43:37 -07:00
David Dworken
8373c589ea
Improve update tests to run a command post-update with the pre-update shell config 2023-10-10 07:35:23 -07:00
David Dworken
f0dbcd6e3b
Add more thorough tests for updates 2023-10-09 21:41:30 -07:00
David Dworken
45aa218bd3
Move err check so that it only executes if it is reassigned 2023-10-08 20:26:33 -07:00
David Dworken
717cf2c4b0
Add check so that if there are zero leftover entries, we don't try to import them into the DB since this leads to install errors 2023-10-08 20:25:53 -07:00
David Dworken
6281ae0601
Revert "Make history entry start times more precise (down to the nanosecond) to make the recorded runtime more accurate, since currently start times are rounded to the nearest second. Though note that 'date' on MacOS doesn't support %N, so this doesn't apply to MacOS"
This reverts commit d404a73c9b since it appears to be causing test failures for linux
2023-10-07 20:05:21 -07:00
David Dworken
4bb0ebfb2e
Bubble up error when we fail to encrypt history entries 2023-10-07 20:02:02 -07:00
David Dworken
480f8696fb
Also read imports from ~/.zhistory which is sometimes used by zsh 2023-10-07 15:19:51 -07:00
David Dworken
d2788a9f31
Swap interface{} to any 2023-10-07 15:11:49 -07:00
David Dworken
d404a73c9b
Make history entry start times more precise (down to the nanosecond) to make the recorded runtime more accurate, since currently start times are rounded to the nearest second. Though note that 'date' on MacOS doesn't support %N, so this doesn't apply to MacOS 2023-10-07 14:47:54 -07:00
David Dworken
5323c264b3
Further improve history importing performance for #93 2023-10-07 14:41:34 -07:00
David Dworken
8097c31afa
Remove TODO that was fixed in f5264b6eff 2023-10-07 14:36:02 -07:00
David Dworken
69b9b58cd0
Fix test that should have been updated in 3efe624 2023-10-07 11:06:56 -07:00
David Dworken
f5264b6eff
Tweak ImportHistory so that all entries are guaranteed to have sequential timestamps that are monotonically increasing 2023-10-07 11:05:19 -07:00
David Dworken
3efe62401c
Change semicolon to && so that if the cd fails, the command doesn't run. Per feedback on #83 2023-10-06 16:49:50 -07:00
David Dworken
c7d1abdc83
Add additional tests for history importing 2023-10-03 08:00:16 -07:00
David Dworken
d33bd6a046
Improve history import performance so that we can import 100k entries in ~6 seconds (down from ~20 seconds) 2023-10-02 22:27:24 -07:00
David Dworken
f8719e4b9b
Increase number of automatic retries for testTui/delete since it seems to also be somewhat flaky 2023-10-01 18:26:02 -07:00
David Dworken
0b54cebd46
Further increase delay to make tests more reliable 2023-10-01 18:25:19 -07:00
David Dworken
2e793b2c10
Test refactoring to remove a function that can be replaced with testify 2023-10-01 18:21:11 -07:00
David Dworken
33f09ea030
Fix testPresaving/bash by calling SetSid to prevent SIGTTIN signal from killing the test 2023-09-29 21:38:50 -07:00
David Dworken
2c77c3d9c9
Fix bug with bash presaving that caused commands to not get properly recorded due to presaving looking like a duplicate command 2023-09-29 21:03:12 -07:00
David Dworken
0b57034c39
Revert "Revert all commits since v0.223 to enable me to release a patch on top of v0.223"
This reverts commit 68ed9f2d5d.
2023-09-29 18:21:23 -07:00
David Dworken
68ed9f2d5d
Revert all commits since v0.223 to enable me to release a patch on top of v0.223 2023-09-28 22:15:30 -07:00
David Dworken
98b6eb57d0
Disable broken test on github actions 2023-09-28 22:15:26 -07:00
David Dworken
61a7435fb7
Add additional assertion to presaving test to make it a stronger test, and to help debug a test failure that only reproduces on github actions 2023-09-28 22:15:22 -07:00
David Dworken
b1988d7022
Increase delay since TestTui/search is still flaky 2023-09-28 22:15:12 -07:00
David Dworken
1a84bc2fef
Remove new line 2023-09-28 22:15:09 -07:00
David Dworken
b859b34616
Disable testing of TUI colors on linux 2023-09-28 22:15:03 -07:00
David Dworken
fdec51bd14
Update presaving for bash to use history 1 rather than BASH_COMMAND to ensure we don't log bash functions 2023-09-28 22:14:53 -07:00
David Dworken
5d46c94b13
Improve test for duplicate rows to make it more reliable/simple 2023-09-28 22:14:47 -07:00
David Dworken
2e5f345411
Refactor tmux capturing to take in a struct to avoid having to create so many overloaded functions 2023-09-28 22:14:41 -07:00
David Dworken
06ee1bd6fe
Add comments/clean up TUI highlighting code 2023-09-28 22:14:30 -07:00
David Dworken
83c3664de6
Add test for beta-mode enabling highlighting of matching queries 2023-09-28 22:14:22 -07:00
David Dworken
e04583f62f
Move regexp compilation out of render function so it isn't run once for every single cell 2023-09-28 22:14:15 -07:00
David Dworken
3feb267038
Remove debug log statements 2023-09-28 22:14:11 -07:00
David Dworken
b482a6d6ec
Add very basic TUI test that also tests how the TUI uses escape sequences for colors 2023-09-28 22:14:05 -07:00
David Dworken
79ec2be1e4
Improve testPresaving to cover more potential errors with presaving 2023-09-28 22:14:00 -07:00
David Dworken
89014a8674
Add workaround for bash issues with pre-saving 2023-09-28 22:13:41 -07:00
David Dworken
5ac6f297fb
Fix incorrect shell name in config.fish for pre-saving 2023-09-28 22:13:35 -07:00
David Dworken
9fda54d4c2
Remove testutils.Check(t, err) and replace it with require.NoError which gives a clearer error message and a full stacktrace 2023-09-28 22:13:27 -07:00
David Dworken
beb907d59e
Add bolding of matching search results for #112, currently behind the beta-mode flag 2023-09-28 22:13:11 -07:00
David Dworken
ec44e94565
Fix NPE that occurs if the initial sqlite query is slow, the user starts typing, and then the latter query is faster and completes first, by forcing an update of the table if it is nil before calling SetRows() on it 2023-09-28 21:52:00 -07:00
David Dworken
6d5a86a8bb
Revert all commits since v0.223 to enable me to release a patch on top of v0.223 2023-09-28 21:49:37 -07:00
David Dworken
d18747e639
Disable broken test on github actions 2023-09-27 21:10:39 -07:00
David Dworken
bed3fd3eb4
Add additional assertion to presaving test to make it a stronger test, and to help debug a test failure that only reproduces on github actions 2023-09-26 22:17:32 -07:00
David Dworken
f84c2d86b5
Increase delay since TestTui/search is still flaky 2023-09-26 20:16:55 -07:00
David Dworken
289fe6e8e1
Remove new line 2023-09-26 20:16:22 -07:00