An encrypted personal cloud built on the AT Protocol.

Added test data

+235
+7
test-data/grocery-lists/week-10.md
··· 1 + # grocery list - week 10 2 + 3 + - [ ] oat milk (the expensive kind) 4 + - [ ] kale (for the "health" aesthetic) 5 + - [ ] coffee beans (lifeblood) 6 + - [ ] tofu 7 + - [ ] nutritional yeast (obviously)
+7
test-data/grocery-lists/week-11.md
··· 1 + # grocery list - week 11 2 + 3 + - [ ] sourdough bread 4 + - [ ] avocados 5 + - [ ] more coffee 6 + - [ ] those fancy crackers 7 + - [ ] hummus
+7
test-data/notes/anarchy-and-praxis/anti-luddism.md
··· 1 + # luddism is a logic error 2 + 3 + - "return to nature" is just code for "i don't want to learn a new framework." 🙄 4 + - smash the machines? babe, the machines are the only ones keeping the electricity on for your artisanal sourdough starter. 💅 5 + - imagine thinking a typewriter is "more authentic" than a mechanical keyboard. it's giving "i enjoy carpal tunnel as a personality trait." 🙄🌌 6 + - progress is inevitable; the only question is whether you're the one writing the migration script or the one getting deprecated. 💅✨ 7 + - "it was better before" — no, you just had fewer dependencies and a better metabolism. deal with it. 🙄
+7
test-data/notes/anarchy-and-praxis/manifesto.md
··· 1 + # decentralized manifesto 2 + 3 + - hierarchy is just a poorly designed linked list. 💅 4 + - abolish the root user; everyone is sudo now. 🙄 5 + - state is just a side effect we haven't refactored yet. 6 + - mutual aid is the ultimate p2p protocol. 7 + - the only valid authority is a well-documented API. ✨
+7
test-data/notes/anarchy-and-praxis/praxis-todo.md
··· 1 + # praxis todo 2 + 3 + - [ ] set up a decentralized node (for the vibes). 4 + - [ ] explain to a luddite that "the algorithm" isn't a ghost in the machine, it's just math. 🙄 5 + - [ ] distribute the means of production (or at least share the yarn.lock). 6 + - [ ] find a way to make anarchy compatible with a strict type system. (is it even anarchy if there are rules?) 💅 7 + - [ ] ignore the state (both the government and the redux store). 🙄✨🌌
+6
test-data/notes/architecture-ideas.md
··· 1 + # architecture thoughts 2 + 3 + - modularity is non-negotiable. 4 + - stop using `any`, Darius. it's 2026. 5 + - should we extract the domain-specific logic or just leave it for another day? 6 + - functional patterns for the win. pipe it all.
+6
test-data/notes/css-todo.md
··· 1 + # css todo 2 + 3 + - [ ] fix scrollbar issue (it's doing that thing again) 4 + - [ ] horizontally scrolling off a cliff (why is the width 100vw + 20px?) 5 + - [ ] center a div (just kidding, i'm not that far gone) 6 + - [ ] audit all the `z-index: 9999` crimes
+5
test-data/notes/fantasy-creatures/dragon/characteristics.md
··· 1 + # dragon characteristics 2 + 3 + - **scales**: impenetrable. 4 + - **wings**: impressive, but mostly for migration to better repos. 5 + - **diet**: strictly `npm audit` failures.
+6
test-data/notes/fantasy-creatures/dragon/notes.md
··· 1 + # dragon 2 + 3 + - hoarding behavior (usually rare typescript libraries) 4 + - fire-breathing is just for show; the real damage is in the logic errors. 5 + - prefers dark, cold servers. 6 + - hates being called a "large lizard."
+5
test-data/notes/fantasy-creatures/griffin/notes.md
··· 1 + # griffin 2 + 3 + - half-eagle, half-lion, all confusion. 4 + - likes high-altitude nested directories. 5 + - very protective of its "gold" (which is just a `.env` file it shouldn't have).
+5
test-data/notes/fantasy-creatures/phoenix/notes.md
··· 1 + # phoenix 2 + 3 + - dies and rises from its own `node_modules`. 4 + - very hot, very loud. 5 + - burns out every two weeks. (relatable?)
+6
test-data/notes/fantasy-creatures/roly-poly/defense.md
··· 1 + # defense mechanism 2 + 3 + - [x] roll into ball. 4 + - [x] ignore all `rejected` promises. 5 + - [ ] wait for someone else to fix the `any` types. 6 + - [x] remain adorable and impervious.
+6
test-data/notes/fantasy-creatures/roly-poly/notes.md
··· 1 + # the roly-poly 2 + 3 + - armor for when the code is too judgmental. 4 + - rolls into a perfect circle when someone asks "how's the project going?" 5 + - tiny legs, big dreams. 6 + - technically an isopod, which is also a type of database structure, probably.
+7
test-data/notes/queer-theory-reading-list.md
··· 1 + # queer theory reading list 2 + 3 + - *The History of Sexuality* - Foucault (a classic, if you're into that sort of thing) 4 + - *Gender Trouble* - Judith Butler (for when you want to feel your brain melting) 5 + - *Cruising Utopia* - José Esteban Muñoz 6 + - *Stone Butch Blues* - Leslie Feinberg 7 + - *Sister Outsider* - Audre Lorde
+6
test-data/notes/todo-list.md
··· 1 + # todo 2 + 3 + - [ ] refactor that one messy component. you know which one. 4 + - [ ] actually drink enough water. 5 + - [ ] look into `zod` schema validation for the new API. 6 + - [ ] remember why we do this. (dopamine?)
+10
test-data/poetry/null-pointer.md
··· 1 + # null pointer 2 + 3 + reaching for something 4 + that isn't there. 5 + a memory address 6 + pointing to the abyss. 7 + it's not a failure, 8 + it's just... 9 + nothing. 10 + but the crash is real.
+13
test-data/poetry/quinn-swoop.md
··· 1 + # bird's eye view (quinn-inspired) 2 + 3 + high above the 4 + static, 5 + the bird sees what 6 + the compiler missed. 7 + swoop down, 8 + mark the vulnerability, 9 + and then... 10 + silence. 11 + it's not a bug, 12 + it's a tactical advantage. 13 + (or so we tell the users)
+15
test-data/poetry/roly-poly.md
··· 1 + # crustacean armor 2 + 3 + fourteen legs and a 4 + segmented heart. 5 + when the world 6 + starts to throw 7 + unhandled exceptions, 8 + i roll. 9 + a perfect sphere 10 + of pure denial. 11 + impenetrable, 12 + gray, 13 + and waiting for the 14 + garbage collector 15 + to pass me by.
+9
test-data/poetry/the-void.md
··· 1 + # the void 2 + 3 + it's a dark space 4 + with no types to guide us. 5 + we're just mapping through 6 + the existential dread of 7 + undefined behavior. 8 + it's quiet here. 9 + (until the compiler shouts)
+95
tools/upload-test-data.sh
··· 1 + #!/bin/bash 2 + 3 + # upload-test-data.sh 4 + # 5 + # A script to populate your Opake vault with the sample data from test-data/. 6 + # Use this to quickly see how Opake handles nested structures and different 7 + # file types. 8 + # 9 + # NOTE: Currently, the Opake CLI's `mkdir` and `upload --dir` commands have 10 + # limited support for nested paths. This script works best with single-level 11 + # directories. 12 + 13 + set -e 14 + 15 + # --- Configuration --- 16 + OPAKE_BIN="cargo run --quiet --package opake-cli --" 17 + TEST_DATA_DIR="test-data" 18 + 19 + # Colors for dopamine 20 + BOLD="\033[1m" 21 + CYAN="\033[36m" 22 + GREEN="\033[32m" 23 + YELLOW="\033[33m" 24 + RESET="\033[0m" 25 + 26 + # --- Functions --- 27 + 28 + log() { 29 + echo -e "${CYAN}==>${RESET} ${BOLD}$1${RESET}" 30 + } 31 + 32 + success() { 33 + echo -e "${GREEN}✓${RESET} $1" 34 + } 35 + 36 + warn() { 37 + echo -e "${YELLOW}!${RESET} $1" 38 + } 39 + 40 + # --- Check Prerequisites --- 41 + 42 + if ! [ -d "$TEST_DATA_DIR" ]; then 43 + echo "Error: $TEST_DATA_DIR directory not found. Please run this from the project root." 44 + exit 1 45 + fi 46 + 47 + # Check if logged in by checking for a DID in the accounts list 48 + if ! $OPAKE_BIN accounts | grep -q "did:plc"; then 49 + echo -e "${YELLOW}No accounts found.${RESET} Please run 'opake login' first." 50 + exit 1 51 + fi 52 + 53 + log "Starting test data upload..." 54 + 55 + # --- Create Top-Level Directories --- 56 + 57 + # Find first-level directories in test-data/ 58 + find "$TEST_DATA_DIR" -maxdepth 1 -type d -not -path "$TEST_DATA_DIR" | while read -r dir_path; do 59 + rel_dir=$(basename "$dir_path") 60 + log "Ensuring directory exists: /$rel_dir" 61 + # mkdir might fail if it exists, so we ignore errors here 62 + $OPAKE_BIN mkdir "$rel_dir" 2>/dev/null || warn "Directory '$rel_dir' might already exist." 63 + done 64 + 65 + # --- Upload Files --- 66 + 67 + # Find all files in test-data/ and upload them 68 + # We use -mindepth 1 to avoid the test-data directory itself 69 + find "$TEST_DATA_DIR" -type f | while read -r file_path; do 70 + # Get relative path within test-data/ 71 + rel_path=${file_path#$TEST_DATA_DIR/} 72 + 73 + # Extract filename and its parent directory 74 + filename=$(basename "$file_path") 75 + parent_dir=$(dirname "$rel_path") 76 + 77 + # If the file is in a nested directory (e.g., notes/anarchy-and-praxis), 78 + # we currently upload it to the top-level parent because the CLI 79 + # doesn't support recursive mkdir or nested --dir resolution well yet. 80 + top_level_parent=$(echo "$parent_dir" | cut -d'/' -f1) 81 + 82 + if [ "$parent_dir" == "." ]; then 83 + log "Uploading $filename to root..." 84 + $OPAKE_BIN upload "$file_path" 85 + else 86 + log "Uploading $filename to /$top_level_parent..." 87 + # We use the top_level_parent to ensure it goes into an existing folder 88 + $OPAKE_BIN upload "$file_path" --dir "$top_level_parent" 89 + fi 90 + 91 + success "Uploaded $filename" 92 + done 93 + 94 + echo -e "\n${GREEN}${BOLD}All test data uploaded! ✨${RESET}" 95 + echo -e "Try running ${BOLD}opake tree${RESET} to see your new files."