Skip to content

[feat] Implement upload history#679

Open
slapec93 wants to merge 12 commits intomasterfrom
feat/implement-upload-history
Open

[feat] Implement upload history#679
slapec93 wants to merge 12 commits intomasterfrom
feat/implement-upload-history

Conversation

@slapec93
Copy link
Copy Markdown
Collaborator

@slapec93 slapec93 commented Apr 20, 2026

Introducing history tracking for uploads, it gets saved in JSON format in a file called upload-history.json in the .swarm-cli folder. Also to show the history a new command group is added with two commands, list and show:

> swarm-cli history list
image
> swarm-cli history show 3
image

@slapec93 slapec93 linked an issue Apr 20, 2026 that may be closed by this pull request
import { ellipsis } from '../../utils/text'

export class List extends HistoryCommand implements LeafCommand {
public readonly name = 'list'
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add alias ls

Comment thread src/command/history/show.ts Outdated
key: 'index',
description: 'Index of the history item',
required: true,
autocompletePath: true,
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove, this is not a path.

Comment thread src/command/history/show.ts Outdated
required: true,
autocompletePath: true,
})
public index!: string
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can add type: 'number' in @Argument, and type it as public index!: number instead.

You can remove the parseInt on L23 too.

@slapec93 slapec93 marked this pull request as ready for review April 21, 2026 13:54
@github-actions
Copy link
Copy Markdown
Contributor

File Coverage Now Coverage Before Delta% Rating
Total 2064 / 2768 1963 / 2685 1.46 🟢
application.ts 0 / 2 0 / 2 0.00
config.ts 32 / 33 31 / 32 0.09 🟢
curl.ts 24 / 24 24 / 24 0.00
index.ts 0 / 16 0 / 16 0.00
printer.ts 3 / 7 3 / 7 0.00
command/addresses.ts 32 / 37 32 / 37 0.00
command/download.ts 28 / 35 28 / 35 0.00
command/hash.ts 8 / 10 8 / 10 0.00
command/quickstart.ts 10 / 37 10 / 37 0.00
command/status.ts 79 / 79 57 / 79 27.85 🟢
command/upload.ts 152 / 217 147 / 212 0.71 🟢
command/cheque/cashout.ts 30 / 32 30 / 32 0.00
command/cheque/cheque-command.ts 21 / 25 21 / 25 0.00
command/cheque/deposit.ts 8 / 12 8 / 12 0.00
command/cheque/index.ts 9 / 9 9 / 9 0.00
command/cheque/list.ts 13 / 13 13 / 13 0.00
command/cheque/withdraw-all.ts 6 / 15 6 / 15 0.00
command/cheque/withdraw.ts 8 / 12 8 / 12 0.00
command/feed/feed-command.ts 49 / 49 47 / 47 0.00
command/feed/index.ts 7 / 7 7 / 7 0.00
command/feed/print.ts 26 / 80 26 / 80 0.00
command/feed/update.ts 14 / 15 14 / 15 0.00
command/feed/upload.ts 25 / 27 22 / 24 0.93 🟢
command/grantee/create.ts 20 / 20 20 / 20 0.00
command/grantee/get.ts 11 / 11 11 / 11 0.00
command/grantee/grantee-command.ts 2 / 2 2 / 2 0.00
command/grantee/index.ts 7 / 7 7 / 7 0.00
command/grantee/patch.ts 21 / 21 21 / 21 0.00
command/history/history-command.ts 2 / 2 0 / 0 100.00 🟢
command/history/index.ts 6 / 6 0 / 0 100.00 🟢
command/history/list.ts 14 / 14 0 / 0 100.00 🟢
command/history/show.ts 23 / 25 0 / 0 92.00 🟢
command/identity/create.ts 36 / 41 36 / 41 0.00
command/identity/export.ts 20 / 22 20 / 22 0.00
command/identity/identity-command.ts 21 / 27 21 / 27 0.00
command/identity/import.ts 50 / 63 50 / 63 0.00
command/identity/index.ts 11 / 11 11 / 11 0.00
command/identity/list.ts 21 / 21 21 / 21 0.00
command/identity/remove.ts 15 / 21 15 / 21 0.00
command/identity/rename.ts 16 / 16 16 / 16 0.00
command/identity/show.ts 27 / 33 27 / 33 0.00
command/manifest/add.ts 38 / 39 38 / 39 0.00
command/manifest/create.ts 16 / 17 16 / 17 0.00
command/manifest/download.ts 49 / 50 49 / 50 0.00
command/manifest/index.ts 11 / 11 11 / 11 0.00
command/manifest/list.ts 40 / 42 40 / 42 0.00
command/manifest/merge.ts 24 / 25 24 / 25 0.00
command/manifest/remove.ts 26 / 29 26 / 29 0.00
command/manifest/sync.ts 46 / 50 46 / 50 0.00
command/pinning/index.ts 9 / 9 9 / 9 0.00
command/pinning/list.ts 14 / 14 14 / 14 0.00
command/pinning/pin.ts 10 / 11 10 / 11 0.00
command/pinning/pinning-command.ts 5 / 8 5 / 8 0.00
command/pinning/reupload-all.ts 21 / 23 21 / 23 0.00
command/pinning/reupload.ts 9 / 17 9 / 17 0.00
command/pinning/unpin.ts 11 / 11 11 / 11 0.00
command/pss/index.ts 7 / 7 7 / 7 0.00
command/pss/pss-command.ts 8 / 8 8 / 8 0.00
command/pss/receive.ts 18 / 24 18 / 24 0.00
command/pss/send.ts 29 / 34 29 / 34 0.00
command/pss/subscribe.ts 8 / 18 8 / 18 0.00
command/root-command/command-config.ts 30 / 36 30 / 36 0.00
command/root-command/command-log.ts 60 / 78 60 / 78 0.00
command/root-command/index.ts 40 / 44 40 / 44 0.00
command/root-command/printer.ts 9 / 9 9 / 9 0.00
command/stake/deposit.ts 31 / 40 31 / 40 0.00
command/stake/index.ts 8 / 8 8 / 8 0.00
command/stake/recover.ts 10 / 22 10 / 22 0.00
command/stake/status.ts 11 / 11 11 / 11 0.00
command/stake/withdraw.ts 7 / 25 7 / 25 0.00
command/stamp/buy.ts 51 / 65 51 / 65 0.00
command/stamp/create.ts 18 / 72 18 / 72 0.00
command/stamp/dilute.ts 12 / 27 12 / 27 0.00
command/stamp/extend.ts 10 / 51 10 / 51 0.00
command/stamp/index.ts 11 / 11 11 / 11 0.00
command/stamp/list.ts 28 / 31 28 / 31 0.00
command/stamp/show.ts 13 / 14 13 / 14 0.00
command/stamp/stamp-command.ts 3 / 7 3 / 7 0.00
command/stamp/topup.ts 11 / 23 11 / 23 0.00
command/utility/cid.ts 8 / 13 8 / 13 0.00
command/utility/create-batch.ts 14 / 34 14 / 34 0.00
command/utility/index.ts 14 / 22 14 / 22 0.00
command/utility/lock.ts 7 / 11 7 / 11 0.00
command/utility/rchash.ts 7 / 23 7 / 23 0.00
command/utility/redeem.ts 12 / 51 12 / 51 0.00
command/utility/unlock.ts 7 / 12 7 / 12 0.00
command/wallet/index.ts 7 / 7 7 / 7 0.00
command/wallet/status.ts 11 / 11 11 / 11 0.00
command/wallet/withdraw-bzz.ts 19 / 21 19 / 21 0.00
command/wallet/withdraw-dai.ts 19 / 21 19 / 21 0.00
service/history/index.ts 21 / 23 0 / 0 91.30 🟢
service/identity/index.ts 32 / 36 32 / 36 0.00
service/identity/types/identity.ts 4 / 4 4 / 4 0.00
service/identity/types/index.ts 1 / 1 1 / 1 0.00
service/stamp/index.ts 30 / 32 30 / 32 0.00
utils/bzz-address.ts 24 / 30 24 / 30 0.00
utils/chainsync.ts 4 / 4 4 / 4 0.00
utils/contracts.ts 3 / 3 3 / 3 0.00
utils/error.ts 39 / 44 39 / 44 0.00
utils/hex.ts 10 / 14 10 / 14 0.00
utils/index.ts 51 / 83 51 / 83 0.00
utils/message.ts 3 / 12 3 / 12 0.00
utils/mime.ts 5 / 5 5 / 5 0.00
utils/option.ts 3 / 3 3 / 3 0.00
utils/rpc.ts 9 / 37 9 / 37 0.00
utils/spinner.ts 15 / 15 15 / 15 0.00
utils/text.ts 16 / 19 14 / 17 1.86 🟢

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

File name should be history-item.ts, e.g. withdraw-all.ts and cheque-command.ts; source files in this repository follow this convention.

Comment thread src/command/upload.ts Outdated
reference: swarmHash,
stamp: this.stamp,
path: this.path,
uploadType: this.path ? 'file' : 'stdin',
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this.path does not necessarily mean it is a file upload, it can still be a folder.

Please see and use uploadingFolder variable in src/command/upload.ts

(const uploadingFolder = !this.stdin && FS.statSync(this.path).isDirectory())

Gergely Békési added 2 commits April 21, 2026 20:31
@Cafe137 Cafe137 linked an issue Apr 21, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement upload history Save hash with postage stamp in json file

2 participants