)]}'
{
  "log": [
    {
      "commit": "cecba06431da9aa134898d23a353e1897f3e3625",
      "tree": "82917d622941ab58c975ceaaf8c2044174309c8d",
      "parents": [
        "c17ffe37ff9ac2c5e0f19a67854b77955976c1bb"
      ],
      "author": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Fri Jun 06 18:40:16 2025 +0000"
      },
      "committer": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Fri Jun 06 11:42:51 2025 -0700"
      },
      "message": "browser: add SKETCH_BROWSER environment variable support\n\nAdd configurable browser selection through SKETCH_BROWSER environment\nvariable for customized browser launching across different platforms.\n\nProblem Analysis:\nUsers needed the ability to specify which browser application to use\nwhen opening URLs through Sketch, rather than being limited to system\ndefaults. Different development workflows require specific browsers\n(e.g., Chrome for debugging, Firefox for testing), and the existing\nimplementation only supported system default browser opening.\n\nImplementation Changes:\n\n1. Environment Variable Integration:\n   - Read SKETCH_BROWSER environment variable in Open() function\n   - Pass browser application name to platform-specific commands\n   - Graceful fallback to default behavior when variable not set\n\n2. Platform-Specific Command Generation:\n   - macOS: Use \u0027open -a [browser]\u0027 when SKETCH_BROWSER set\n   - Windows: Use browser executable directly when SKETCH_BROWSER set\n   - Linux/Unix: Use browser executable directly (xdg-open doesn\u0027t support app selection)\n   - Preserve existing default behavior for each platform\n\n3. Enhanced Debug Logging:\n   - Added browser parameter to debug log output\n   - Improved error visibility for custom browser failures\n   - Maintains existing error handling patterns\n\n4. Comprehensive Test Coverage:\n   - Added browser_test.go with platform-specific test cases\n   - Environment variable manipulation testing\n   - Cross-platform command generation validation\n   - Empty URL handling verification\n\nTechnical Details:\n- Uses os.Getenv() for environment variable access\n- Platform detection via runtime.GOOS for appropriate command selection\n- Direct executable invocation for Windows/Linux custom browsers\n- macOS leverages \u0027open -a\u0027 for application-specific launching\n\nBenefits:\n- Developers can specify preferred browser for Sketch URLs\n- Cross-platform compatibility maintained for all use cases\n- Zero configuration required - works with existing setups\n- Enhanced debugging capabilities through improved logging\n\nTesting:\n- Unit tests verify environment variable handling across platforms\n- Command generation logic tested for all platform combinations\n- Integration testing confirms no regression in default behavior\n- Empty/invalid input handling validated\n\nThis enhancement provides flexible browser selection while maintaining\nfull backward compatibility with existing default browser workflows.\n\nCo-Authored-By: sketch \u003chello@sketch.dev\u003e\nChange-ID: s0ae93ccc20b0a8c2k\n"
    },
    {
      "commit": "d0a3cd609ca36baebd066d6fd83c153293c459eb",
      "tree": "88dae925d5fc157cef66a7e4bdd5ee1bc047c7ba",
      "parents": [
        "4bdd9aaaa4156bcf9863df9eadb809c0bd7a0573"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Sat May 03 15:46:45 2025 -0700"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Sat May 03 15:46:45 2025 -0700"
      },
      "message": "browser: switch printf to slog\n\nShould fix #52"
    },
    {
      "commit": "11c97f29a0bfd8fbdffafb8ea32c2759ea32325f",
      "tree": "35357491158589f82d702c025b2c6df0ee17bf15",
      "parents": [
        "e114af53e743edc45f0111ce80f977f9a46401d9"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Fri May 02 16:36:46 2025 -0700"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Fri May 02 16:49:03 2025 -0700"
      },
      "message": "browser: don\u0027t open empty URLs\n\nThis happens with -skabandaddr\u003d\u0027\u0027.\n"
    },
    {
      "commit": "e54b00af5cf711c2171a26ed0f29a8ce83d50fb4",
      "tree": "e34f4ce054e3cbb8ae3dce09e4cc906977a86ec9",
      "parents": [
        "93bb66a204ba666fbef0e8590b9f210c267fe5f8"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Wed Apr 30 16:48:02 2025 -0700"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Wed Apr 30 17:13:09 2025 -0700"
      },
      "message": "browser: simplify API\n\nThe context is doing nothing here."
    },
    {
      "commit": "78707d6ea7bcd323719358dee3445130fa719037",
      "tree": "5d51a7c3c33e61d13b32dc7b4dca273c788079d8",
      "parents": [
        "96b60dd7e71c7db55dfe4cff86265eab02e54e9f"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Wed Apr 30 21:06:49 2025 +0000"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Wed Apr 30 16:21:05 2025 -0700"
      },
      "message": "browser: small new package\n\nMove browser opening functionality from dockerimg to a new browser package.\nUpdated all references to use browser.Open directly.\nThis avoids importing dockerimg widely.\n\nCo-Authored-By: sketch \u003chello@sketch.dev\u003e"
    }
  ]
}
