Added the concept of a "pacakge ID" to the application. The package ID comprises a tuple of UUID's indicating the application's version-independent UUID, version dependent UUID, and build UUID. These values are now written by the buildapp.sh script to the generated encapsule-build.js for reference by the application at runtime, and are written into the header of the appcache manifest (note that this is all that's technically needed to trigger an appcache refresh as PackageID's are unique to a specific app, a specific version, and a build build.
Added checkonline-appapache-event.js from source code posted in Jim Lehmer's article posted here: http://ednortonengineeringsociety.blogspot.com/2010/10/detecting-offline-status-in-html-5.html
This is useful for watching the browser's appcache mechanism AND importantly addresses the annoying problem of browsers that check the appcache manifest, conclude that the they to re-recache, download everything, and then refuse to use the new resources (unless there's a forced reload in response to the correct appcache event :( meh. Anyway, this little bit of Javascript fixes that and provides the set of events that I need to correlate with the checkOnline callback status. These two bits of information can then be used to assess how the application should attempt establish the connection with its IndexedDB local storage. And after the local storage has been mounted, then integrate the Sammy, Knockout, and D3js work I started last month...