<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/src/main.rs, branch v0.1.2</title>
<subtitle>Personal mirror of DanConwayDev/ngit-cli on git.upleb.uk
</subtitle>
<id>https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/atom?h=v0.1.2</id>
<link rel='self' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/atom?h=v0.1.2'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/'/>
<updated>2024-01-31T00:00:00+00:00</updated>
<entry>
<title>fix: intermittent crashing by removing block_on</title>
<updated>2024-01-31T00:00:00+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2024-01-31T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=45dc04b81bf7c07f249c9539a48516d4c17abdba'/>
<id>urn:sha1:45dc04b81bf7c07f249c9539a48516d4c17abdba</id>
<content type='text'>
a crashing bug was identifed when users ran ngit with large relay sets.

the test suite would also stop at random tests and produce a
...running for over 60 seconds error but only on nix configuration
and not when using rustup. this change fixes this so the ngit must have
been crashing more often when ran with the reduced resources of a nix
shell.

the test suite consistantly runs successfully under nix when this change
is applied to v0.1.0. later changes were made to mitigate this and other
issues as hot fixes which either intentionally broke tests (to rush the
change through as a hotfix) or unintentionally in the case of nostr 0.27
upgrade in fc3f22eac2bb81823f170f61ba9d39baff76b933

changes introduced in e0f543e8adb144f6deff6ff7ea0c412c9fcac5b4,
specifically queuing up relays, are probably not needed so I have
increased the number of relays proccessed at any one time from 5 to 15
</content>
</entry>
<entry>
<title>feat(push) push commits to existing pr</title>
<updated>2023-12-08T20:15:43+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2023-12-08T20:15:43+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=6d3c9218d2d3320f5d7fb9b9ede8750e947b70e8'/>
<id>urn:sha1:6d3c9218d2d3320f5d7fb9b9ede8750e947b70e8</id>
<content type='text'>
- find pr with a branch-name that matches checked out branch
- check branch isnt behind latest patch on pr
- push new commits a patches associated with pr
</content>
</entry>
<entry>
<title>feat(pull) pull commits for checked out pr branch</title>
<updated>2023-12-07T09:57:43+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2023-12-07T09:57:43+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=82bf53ac3c18e15b75852a48b2e5b432c75a5c7f'/>
<id>urn:sha1:82bf53ac3c18e15b75852a48b2e5b432c75a5c7f</id>
<content type='text'>
- find pr event which matches branch name
- fetch and apply latest commits
</content>
</entry>
<entry>
<title>refactor(claim) move repo_ref.rs</title>
<updated>2023-11-01T00:00:00+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2023-11-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=82f1ba360b60c8339c7caea0dec7903ee5e764cd'/>
<id>urn:sha1:82f1ba360b60c8339c7caea0dec7903ee5e764cd</id>
<content type='text'>
file created in the wrong folder in error
</content>
</entry>
<entry>
<title>feat(claim) create basic event</title>
<updated>2023-11-01T00:00:00+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2023-11-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=0753e0bcdd3d606f8f0226a3980bcd817117abaa'/>
<id>urn:sha1:0753e0bcdd3d606f8f0226a3980bcd817117abaa</id>
<content type='text'>
replacable event with root-commit, name, description and relay tags
</content>
</entry>
<entry>
<title>feat(login) fetch user relays and metadata</title>
<updated>2023-09-30T23:00:00+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2023-09-30T23:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=e237328ec611a5891586530c1d3cb26c16c1093b'/>
<id>urn:sha1:e237328ec611a5891586530c1d3cb26c16c1093b</id>
<content type='text'>
get user relay list and metadata events from relays when keys are
used and last fetch attempt was more than an hour ago

uses user's write relays if known, otherwise uses fallback relays

to achieve this a method for intergration testing event fetching
from relays was added
</content>
</entry>
<entry>
<title>feat(prs-create) send to multiple relays</title>
<updated>2023-09-30T23:00:00+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2023-09-30T23:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=000901c0cbca8464b5a89bcc93c5474f6564bafd'/>
<id>urn:sha1:000901c0cbca8464b5a89bcc93c5474f6564bafd</id>
<content type='text'>
add tests but these currently don't work when run together
</content>
</entry>
<entry>
<title>feat(prs-create) send commit to relay</title>
<updated>2023-09-30T23:00:00+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2023-09-30T23:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=b9a88672b8734448615354e3f46748d2fdc2f647'/>
<id>urn:sha1:b9a88672b8734448615354e3f46748d2fdc2f647</id>
<content type='text'>
 - add client
 - use client to send event
 - add async functionality - enabler for relay interaction whilst
   getting cli input
</content>
</entry>
<entry>
<title>feat(prs-create) find commits and create events</title>
<updated>2023-09-30T23:00:00+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2023-09-30T23:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=6e9245542f070c39a1975f0d53d88913c4ac667d'/>
<id>urn:sha1:6e9245542f070c39a1975f0d53d88913c4ac667d</id>
<content type='text'>
 - identify commits
 - create pull request event
 - create patch events
</content>
</entry>
<entry>
<title>feat(login) password login using encrypted nsec</title>
<updated>2023-09-01T00:00:00+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2023-09-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=96660a90e4cd296a2922d7a547de4cd9d0b1928b'/>
<id>urn:sha1:96660a90e4cd296a2922d7a547de4cd9d0b1928b</id>
<content type='text'>
Enables the user to only handle the nsec upon first use of the tool
by encrypting it with a password and storing it on disk in an
application cache.

The approach to encryption draws heavily from that used by the gossip
nostr client.
 - unencrypted nsec is zeroed from memory
 - a salt is used to defend against rainbow tables
 - computationally expensive key stretching defends against
   brute-force attacks of passwords with low entropy.

There is UX trade-off between decryption speed and key-stretching
computation. This UX challenge is exacerbated in a cli tool as
decryption must take place more regularly. Thought was put into the
selected n_log and a heavily reduced value is provided for long
passwords where security benefits are smaller.

A more granular reducing in computation was also considered by
rejected to avoided to revealing just how weak a password is as most
weak passwords are reused.
</content>
</entry>
</feed>
