David Dworken
d14dc1cd50
Update presaving for bash to use history 1
rather than BASH_COMMAND to ensure we don't log bash functions
2023-09-26 19:41:12 -07:00
David Dworken
753b7241a8
Improve test for duplicate rows to make it more reliable/simple
2023-09-26 19:38:21 -07:00
David Dworken
0627891be2
Add test for beta-mode enabling highlighting of matching queries
2023-09-24 17:57:40 -07:00
David Dworken
b3fa5c9a6b
Add very basic TUI test that also tests how the TUI uses escape sequences for colors
2023-09-24 17:03:54 -07:00
David Dworken
eeacd6fa70
Fix incorrect shell name in config.fish for pre-saving
2023-09-24 16:31:46 -07:00
David Dworken
5121df5a8c
Remove testutils.Check(t, err) and replace it with require.NoError which gives a clearer error message and a full stacktrace
2023-09-24 16:05:01 -07:00
David Dworken
0f375aacfc
Add bolding of matching search results for #112 , currently behind the beta-mode flag
2023-09-24 15:57:39 -07:00
David Dworken
e3c70beb6b
Fix bug introduced in c00e5d where hishtory import would fail if shell history files didn't exist (e.g. because the user had never used zsh)
2023-09-23 20:37:41 -07:00
David Dworken
c3782dda18
Add additional error to IsOfflineError
2023-09-23 19:37:25 -07:00
David Dworken
1c2f9cf36c
Run local server for TestAugmentedIsOfflineError and ensure that HISHTORY_TEST is set
2023-09-23 19:35:21 -07:00
David Dworken
8443292070
Augment IsOfflineError(err) so that it detects if the hishtory server is down, and will then treat all API errors as offline errors
2023-09-23 16:40:03 -07:00
David Dworken
ab12fa4d47
Fix consistency bug where ClientConfig would get out of date between different parts of the code
2023-09-23 12:40:57 -07:00
David Dworken
c00e5d357e
Swap hishtory import to use iterators to improve import performance for #93
2023-09-23 12:19:06 -07:00
David Dworken
68c6bd6654
Improve TestTimestampFormat
2023-09-23 10:56:27 -07:00
David Dworken
e886763144
Make testCustomColumns simpler and more reliable
2023-09-23 05:34:36 -07:00
David Dworken
51ca2578b7
Follow up to e3d54e: Same thing for querying for pre-saved entries
2023-09-22 19:59:19 -07:00
David Dworken
e3d54e43e8
Make deletion request auto-retry SQLITE_LOCKED errors since deletion requests will now be much more common with pre-saving support
2023-09-22 19:47:10 -07:00
David Dworken
1d878195b2
Rework ff98a7907c
to use the newly added EntryId column rather than deleting based on the start time
2023-09-22 14:03:41 -07:00
David Dworken
9b847c5e35
Further optimize client-server roundtrips by including deletion and dump requests in submit responses (follow up to 1e43de689f
)
2023-09-22 13:49:29 -07:00
David Dworken
a5f11af150
Add initial code to support unique per-entry IDs
...
This code has two caveats for old entries:
1. the ID is being backfiled with a random per-(device,entry) ID. So the ID won't match cross-device.
2. the server-side ID will still be a random ID that is unrelated to the entry ID
2023-09-22 13:16:24 -07:00
David Dworken
2a5a6d65c4
Roll-forward "Add preliminary support for persisting pre-saved history entries remotely"
...
This rolls-forward commit 66916c27cb
.
2023-09-22 13:13:46 -07:00
David Dworken
66916c27cb
Revert "Add preliminary support for persisting pre-saved history entries remotely"
...
This reverts commit ff98a7907c
. That commit is incomplete since it doesn't include support for the continous deletion of pre-saved history entries as soon as they
finish running. Support for this will require a good bit more work/thought, so reverting for and keeping this code in the git history.
2023-09-21 12:39:20 -07:00
David Dworken
ff98a7907c
Add preliminary support for persisting pre-saved history entries remotely
2023-09-21 12:39:04 -07:00
David Dworken
1c4570586c
Increase max supported line length for #93
2023-09-19 18:59:09 -07:00
David Dworken
216803f325
Bring back logic that was removed in c9da7a10e4
that made it so invalid initial search queries will get replaced with a query for the empty string
2023-09-18 22:21:10 -07:00
David Dworken
4f592f4aef
Automatically retry search queries when the DB is locked to increase reliability (especially when the backend is down, which leads to more queries, and thus more instances of the DB being locked)
2023-09-18 19:22:26 -07:00
David Dworken
134061085b
Fix bug in searching logic that caused gorm to template in NULL for non-null values
2023-09-17 20:24:48 -07:00
David Dworken
1d7ba41289
Avoid performance hit caused by pre-saving by presaving in the background
2023-09-17 14:11:44 -07:00
David Dworken
48e33d5034
Make the query input box in the TUI match the terminal dimensions
2023-09-14 21:14:16 -07:00
David Dworken
328c35a096
Add presaving support for fish
2023-09-14 21:03:36 -07:00
David Dworken
c5a7245991
Add bug fix for presaving history where entries would sometimes end up duplicated
2023-09-14 21:01:13 -07:00
David Dworken
01d9924cc0
Check sqlite DB error messages with Contains to be slightly more lenient
2023-09-14 12:32:50 -07:00
David Dworken
d4e01ceb11
Add another error message substring for detecting errors due to being offline, to improve #30
2023-09-13 22:49:40 -07:00
David Dworken
e8ceb02138
Move tui.go out of lib and into a separate package
2023-09-13 22:47:48 -07:00
David Dworken
6d6a1a5e12
Move a bunch of update-specific code out of the generic lib.go file and into the update command
2023-09-13 22:45:49 -07:00
David Dworken
b6b4dbe37a
Add tests for presaving history entries
2023-09-13 20:29:06 -07:00
David Dworken
6540b4dbf6
Improve logged error messages for API failures
2023-09-13 20:24:25 -07:00
David Dworken
763c8208f7
Make RetryingDbFunction more lenient so that it always ignores UNIQUE constraint errors, since if a DB.Create returns a UNIQUE error, then the create is not actually necessary
2023-09-13 19:20:15 -07:00
David Dworken
f1e2b8ddbf
Update TestSortByConsistentTimezone to not use a golden for tquery since it was leading to occasional flakes, and swap it to using a regex. Also add a test for hishtory export as part of the sorting tests.
2023-09-12 19:09:01 -07:00
David Dworken
57c5a69f7d
Fix bug where we failed to delete pre-saved history entries due to race conditions causing the DB to be locked
2023-09-12 18:55:13 -07:00
David Dworken
9b871e93ed
Fix consistent time zone sorting test to account for table sizing differences on github actions
2023-09-10 17:13:48 -07:00
David Dworken
e3e3a7bd0d
Add tablesizing command to get consistent table dimensions
2023-09-09 14:02:47 -07:00
David Dworken
2ccbb8d587
Store timestamps in DB in Unix time, and display them in the Local time for consistent TZs in displays, and to ensure ordering is correct
...
This fixes a bug where entries could be out of order if they were recorded on machines in different TZs (e.g. if one machine had the TZ set to UTC). Admittedly, this commit isn't a perfect fix since
it doesn't change all the existing hishtory entries to be stored in UTC, but this just means that the ordering bug will continue to exist for historical entries, but be fixed for new entries. And
for our purposes, that is good enough. :)
# Please enter the commit message for your changes. Lines starting
2023-09-09 12:28:01 -07:00
David Dworken
223598c8f2
Remove golden that was forked for actions, that didn't need to be
2023-09-09 11:56:06 -07:00
David Dworken
c73b10011b
Add TODO for a bug where sorting entries by timestamps in different timezones causes issues
2023-09-07 18:09:30 -07:00
David Dworken
578113e07c
Revert "use errors.Is
to determine what the error is" since it doesn't work with modernc.org/sqlite which we need in order to avoid using CGO (which we do to enable easy cross-compiles)
...
This reverts commit 1589f77956
. When building with CGO_ENABLED=0, this code will fail to build.
2023-09-06 20:21:00 -07:00
David Dworken
c5bdee9ad5
Merge pull request #102 from lsmoura/sergio/no-ctx-ptr
...
Remove context pointers since there is no need to pass around a pointer to an interface
2023-09-06 19:58:08 -07:00
Sergio Moura
a12b0e5f6f
no context pointers
2023-09-05 15:45:17 -04:00
Sergio Moura
1589f77956
use errors.Is
to determine what the error is
2023-09-05 15:37:42 -04:00
Sergio Moura
83ad8c7b1f
wrap errors with %w instead of using %v
2023-09-05 15:08:55 -04:00
David Dworken
3b07aa9a37
Split testTui method into separate smaller test methods that are more specific
2023-09-01 15:42:02 -07:00
David Dworken
a53485f04b
Remove TODOs that were fixed in 23a377e3c1
2023-08-29 19:03:12 -07:00
David Dworken
23a377e3c1
Preserve cursor position after deleting entries and resizing
2023-08-29 18:59:20 -07:00
David Dworken
66f3dc13ec
Add support for displaying the user as a column via the 'User' column
2023-08-28 12:19:14 -07:00
David Dworken
2490082088
no-op refactoring: Move history entry building code from lib.go to cmd file for saving history entries
2023-08-27 22:05:24 -07:00
David Dworken
fe41687fd0
Remove extraneous new lines from TUI that make the UI jump around for invalid search atoms
2023-08-27 21:47:44 -07:00
David Dworken
5dae81d336
Sort by start_time in beta mode only, to fix failing tests caused by changing the sorting
2023-08-27 15:20:40 -07:00
David Dworken
25ec191f1a
Implement pre-saving feature to ensure that long-running/non-terminating commands are saved in hishtory
2023-08-27 14:24:59 -07:00
David Dworken
a79d401058
Make queries async for better TUI performance when sqlite is slow
2023-08-27 11:42:17 -07:00
David Dworken
311b698388
Add TODOs
2023-05-19 17:16:54 -07:00
David Dworken
9f2b392ddb
Add key binding to select an entry and cd into that directory
2023-05-19 17:14:33 -07:00
David Dworken
06cbd0e7f3
Add extra string split so the test passes on github actions
2023-05-17 08:38:47 -07:00
David Dworken
082d342b0d
Add test to cover breakage in #82
2023-05-16 17:34:25 -07:00
David Dworken
c0e56eff0d
Fix #82 by ensuring that the results list also filters out duplicates
2023-05-16 17:12:52 -07:00
David Dworken
0b13a9705d
Fix control-K in offline mode for #80
2023-04-30 08:50:17 -07:00
David Dworken
765c1c18d0
Remove && false to enable the getwd syscall as a fallback
2023-02-28 17:44:05 -08:00
David Dworken
ff24b66fce
Fix unescape function per comments on #73 and add tests for searching for a backslash
2023-02-20 15:46:39 -08:00
David Dworken
0a694c39d5
Add workaround for #69 that avoids go's getCwd method that relies on stat rather than getwd
2023-02-20 12:42:23 -08:00
David Dworken
5089058165
Add missing help page text for a golden
2023-02-20 12:33:22 -08:00
David Dworken
c03f9d3d76
Add tests for opening and closing the help page
2023-02-20 12:15:27 -08:00
David Dworken
be5338ee21
Add updated goldens for help page
2023-02-20 11:56:16 -08:00
David Dworken
11c110e13e
Add untested version of help page
2023-02-20 10:54:16 -08:00
David Dworken
b69788967f
Fix bug where typing 'foo:' and then hitting backspace would lead to the error still being displayed
2023-02-19 22:08:38 -08:00
David Dworken
dc65fffd7b
Add an index on end_time to ensure that initial queries are fast to fix #68
2023-02-18 22:26:18 -08:00
David Dworken
27cd544524
Add support for arm7 for #63 to support raspberry pis
2023-02-18 22:00:39 -08:00
David Dworken
f2298def32
Ignore a single dash as a token to improve search behavior for queries like 'ls -' to improve #67
2023-02-18 21:46:51 -08:00
David Dworken
2ae54ef74e
Simplify stripBackslash
2023-02-14 08:47:38 -08:00
David Dworken
a5926af49c
Unit tests for Search taking advantage of escaping
2023-02-13 22:32:42 -08:00
David Dworken
162dd86893
Add unit tests + rename method
2023-02-13 22:26:02 -08:00
David Dworken
b6eb4da4f3
Rename deEscape to unescape
2023-02-13 21:36:54 -08:00
David Dworken
f79ab37bcf
Merge pull request #70 from hakanf/escape_chars
...
Allow search strings to escape special chars ' ', ':' and '-' using '\'
2023-02-13 21:34:23 -08:00
David Dworken
01e9d39350
Add TUI test for scrolling right by 2
2023-02-13 20:24:20 -08:00
David Dworken
f12cc8cdff
Add basic TUI test for horizontal scrolling
2023-02-11 23:09:40 -08:00
David Dworken
fea151261f
Move goldens func to testutils and use it for some simple horizontal scrolling tests
2023-02-11 09:09:48 -08:00
Håkan Fouren
3c468f46aa
Added local customized version of bubbles/table with horizontal cell scroll
2023-02-05 02:19:18 +08:00
Håkan Fouren
f08cac491c
Use rune instead of byte when traversing strings
2023-02-05 02:13:42 +08:00
Håkan Fouren
9062c24a7e
Allow search strings to escape special chars ' ', ':' and '-' using '\'
2023-02-05 02:13:42 +08:00
David Dworken
226b39609f
Cleanup TUI code now that we persist table entries in the model
2022-12-18 22:29:23 -08:00
David Dworken
9322614a91
Add shortcut to delete entries in the TUI to fix #33
2022-12-18 22:02:29 -08:00
David Dworken
554d518caa
Persist history entries in the TUI model to prep for #33
2022-12-18 21:26:00 -08:00
David Dworken
c0bd577084
Add test to confirm that window resizing works
2022-12-18 01:01:05 -08:00
David Dworken
5f95ac48a4
Add control-d as an alternate key binding to close the TUI to fix #61 (plus some tests)
2022-12-18 00:27:29 -08:00
David Dworken
d15376f37d
Refactor out deletion request handling to prep for #33
2022-12-18 00:19:52 -08:00
David Dworken
10c8b97e84
Add comment
2022-12-17 21:55:30 -08:00
David Dworken
2edbf3977f
Add test for left scrolling in the input box
2022-12-17 12:14:28 -08:00
David Dworken
e6186d17b1
Fix TUI cursor bug by upgrading bubbles to include commit d1775121146a88a44a48562490cf08b7dd9df1c4
2022-12-17 11:54:51 -08:00
David Dworken
f8b51e49da
Support customizing HISHTORY_PATH for people who want to install hishtory in an alternate location to fix #54
2022-12-16 22:22:57 -08:00
David Dworken
da35036aad
Add emacs key bindings for up and down to fix #55
2022-12-16 21:20:00 -08:00
David Dworken
7c86b812bf
Add support for linux arm64 for #48
2022-12-11 20:39:45 -08:00
David Dworken
233ca7ecd3
Treat TLS timeout as an offline error for #50
2022-12-10 09:43:02 -08:00