- Fix regression making it impossible to create annotations in v1.80.0 (#724).
- Internal refactoring and dependency updates.
- Some minor internal changes.
-
Resolve relative URLs when getting PDF URL from PDF.js (#716).
-
Add organization logos to groups menu (#718).
- Some minor internal changes.
- Support annotation of PDFs hosted inside iframes using PDF.js (#681).
-
Rename src/sidebar/{store => services/api} (#691).
-
Move sidebar services to src/sidebar/services/ (#692).
-
Move away from
public
property in application components (#693). -
Update icon for restricted groups in publish-annotation-button (#699).
-
Remove
group.public
property from annotation component (#697). -
Remove reference to
group.url
(#698). -
Changed background to selected element in PDF.js to visualize the searched content (#696).
-
Move Redux modules and entry point to
store/
directory (#694).
- Show the world icon only for open groups in the groups dropdown (#685).
- Default to Notes tab when only notes are present (#686).
- Remove activity page links for third-party open groups as they are not yet supported in h (#675).
- Attempt to fix an occasional issue with the release process (#677).
- Display correct groups when using third-party accounts if logged-out (#676).
- Show groups dropdown list to logged out users and link to group pages for open groups (#673).
- Fix stream and single annotation routes (#674).
- Get the list of groups from the new endpoint and update it where applicable (#665).
- Hide the direct-link call-to-action for third party accounts (#658).
- Fix login flow triggering popup blocker in Firefox and IE (#651).
- Allow whitelisted URL params in YouTube embeds (#646).
-
Update the docs for config options available to third party publishers. (#636).
-
Some internal restructuring of the client (#632, #634, #635)
- Remove create account banner (#630).
-
Don't show page share button on eLife pages (#620).
-
Don’t link tags to activity pages on eLife (#623).
-
Show the shorter version of the empty annotations/notes message when … (#611).
-
Bundle the clean theme related config options into the theme = 'clean… (#624).
-
Disable close btn when the classic theme is on. Also fix errors with … (#626).
-
Make the "New note" button "image" in the tutorial pane look & behave less like an actual button (#582).
-
Do not hyperlink annotation timestamps when the annotation has no href (#617).
-
Do not show share dialog if no incontext link (#618).
- Remove
oauthEnabled
client config setting (#604).
-
Remove checks for
search_for_doi
feature flag (#598). -
Remove checks for
flag_action
feature flag. (#597).
- Fix issue that could lead to user being logged into normal Hypothesis account on websites using third-party accounts (#572).
- Fix default values for settings not being used in the browser extension (#581).
-
Only show display names on annotation cards if the new
client_display_names
feature flag is on or if the annotation's creator is a third-party user (#579). -
Add a new config option that enables a new-style for the sidebar tutorial card (#580).
-
Remove no-longer-used orphans tab feature flag checks (#578).
- Improve performance on pages with very large numbers of annotations (#559).
-
Add OAuth client registration steps to developer docs (#567).
-
Strip unknown query params when generating Internet Archive embed URLs (#561).
-
Fix a cause of unexpected anchoring failures in PDFs (#563).
-
Remove support for cookie-based authentication (#542).
- Support Internet Archive video embeds (#554).
- Send search URIs to other frames by postMessage() (#550).
- Re-fetch annotations when logging in or out when using OAuth (#552).
-
Adjust the preferred initial size of the login window. (#547).
-
Stop exporting the main annotation layer object as
window.annotator
(#549). -
Remove iframe size check (#551).
- Fix timestamp tooltips in annotation cards (#546).
-
Use profile display name in account menu (#544).
-
Fix handling of query terms without fields specified in client-side search (#505).
-
Render display name instead of username in existing annotations (#541).
-
Render display name instead of username in new annotations (#545).
-
Fix OAuth popup window failing to load in IE 11 (#538).
-
Fix OAuth popup being blocked by pop-up blocker in Firefox and IE (#537).
- Make annotation of iframes require opt-in by adding an "enable-annotation" attribute (#533).
- Always use OAuth if cookie storage is blocked (#529).
- Work around Chrome bug causing sidebar to become invisible (#523).
- Use public, documented API method to leave groups (#528).
-
Refresh OAuth tokens "on demand" when making API calls (#517).
-
Reload OAuth tokens and profile when tokens are changed by another client instance (#518).
-
Deprecate "openLoginForm" setting and make a no-op when using OAuth (#524).
-
Get OAuth endpoints from the service's
/api/links
endpoint (#525).
- Implement logout when using OAuth (#501).
-
Make login work when using OAuth following recent changes to the service's OAuth implementation (#514).
-
Automatically convert links ending with audio extensions (mp3, ogg, wav) to embedded audio players (#508).
- Fix IE 10/11 regression in documents without a
<base>
element. (#507).
- Support using
dc.relation.ispartof
anddc.identifier
meta tags to generate a URN for documents which are part of a larger work (eg. a book chapter) (#500).
- Add mechanism for publishers to react to changes in the width and expanded state of the sidebar (#499).
- Enable annotating in iframes which have the same origin as the top-level page (#498).
-
Remove need to set feature flag to enable iframe support (#496).
-
Do not inject client into small or hidden iframes (#497).
-
Persist login between sessions when using OAuth (#494).
-
Use OAuth for first party login if feature flag enabled. (#476).
-
Fix adder position when document or body position is offset. (#493).
- Allow integrators to customize behavior of scrolling to highlights by intercepting the "scrolltorange" event (#484).
-
Fix view switcher flash on iOS (#482).
-
Fix decoding of the query section in "#annotations" fragments (#483).
-
Get document URL from
<base>
tag for iframes withblob:
URLs (#474). -
Improve handling of iframe removal when multiple iframes have same
src
URL (#478). -
Don't show view switcher until annotations received (#481).
-
Progress towards making the Hypothesis client able to annotate content inside iframes (#457, #469, #472, #467).
-
Progress towards using OAuth tokens, rather than cookies, to authenticate the Hypothesis client to the Hypothesis API - allow "oauthEnabled" setting to be overridden in client config (#470).
-
A UI enhancement: Replace "selection tabs" with "view switcher" (feature flagged) (#465).
-
Convert unicode service & tests to JavaScript (#475).
- Fix failure to start when browser blocks access to localStorage (#464).
-
Enable feature flagging in the annotation layer (#440).
-
Fix sidebar app failing to load in Firefox extension. (#460).
-
Fixes always off highlighting issue. Add showHighlights() settings function. (#455).
-
Convert localStorage service from CoffeeScript to JS (#443).
-
Fix warning about loading Angular twice in tests (#448).
-
Convert shared Bridge class to JS (#449).
-
Remove assetRoot and sidebarAppUrl from annotator (#452).
-
Rename H_SERVICE_URL to SIDEBAR_APP_URL (#454).
-
Remove unused "host" service (#446).
- No changes, re-running the release script after releasing 1.21.0 partially succeeded.
-
When embedded in a page read the URL of the annotation API to talk to from the page's
services
setting (#426).This has also been documented (#450).
This also means that if the host page of an embedded client contains a
services
setting then theservices[].apiUrl
sub-setting is mandatory, otherwise the client will crash on load. -
Support JavaScript ES2015 code in the client (#421).
-
Add Symbol polyfill (needed for some ES2015 language constructs) (#442).
-
Multiple frame detection and injection (#430).
-
Config code refactoring (#422, #423, #424, #425, #432, #435, #436, #437, #438).
-
Convert tags service to JS (#431).
-
Don't crash if a page contains a js-hypothesis-config script containing invalid JSON, instead log a warning and continue ignoring the invalid JSON (#427).
-
Don't crash if the page contains a
window.hypothesisConfig
that isn't a function, instead log a warning and continue ignoringwindow.hypothesisConfig
(#428). -
Fix dev environment JavaScript error on localhost:3000 page (#445).
-
Re-enable reading openLoginForm and openSidebar from the host page (fixes the sidebar not auto-opening on the /welcome page after you install the Chrome extension) (#447).
-
Upgrade gulp-sass (fixes a build error with Node v8) (#441).
-
Prevent Adder toolbar from inheriting CSS property values from host page (#396).
-
Improve config naming, usage, access and tests. (#400). (#404). (#406). (#415).
-
Added group leave, switch, and view activity metrics (#405).
-
Extensions now ignore all config other than direct linked ID from host page. (#410).
-
Fixed ghost adder (#419).
-
Added the ability to search annotations by DOI (#417). (#418).
-
Added console log capture to karma tests (#420).
-
Reduce client size slightly by switching to jQuery slim build (#391).
-
Add config option to show highlights only when sidebar is open (#392).
-
Do not let authors flag their own annotations. (#387).
-
Show an error message to the user when getting or refreshing an OAuth access token fails (#385).
-
Allow publishers to customize log out, profile and help links (#389).
- Fix refreshing access tokens when laptop suspends (#384).
-
Allow publishers to customize "Sign up" link handling (#379).
-
Changed "highlightColor" to "accentColor" in branding configuration (#383).
-
Clarify in tooltip what "Flag" button does (#373).
-
Do not display moderation banner unless moderation metadata is present (#363).
-
Do not show highlight indicator for censored annotations (#365).
-
Exclude vendor code from coverage metrics (#366).
-
Don't show duplicate toasts when API requests fail (#375).
-
Improve error when flagging when logged out (#374).
- Render "censored text" for hidden annotations (#362).
-
Fix error when a thread contains deleted annotations with replies (#369).
-
Fix
target
error when creating new replies (#370).
- Use the new
/api/links
resource (#356).
- Update flag count after moderator flags an annotation themselves (#347).
- Only display CC 0 license for shared annotations in public groups (#354).
-
Show the flagged status for annotations that user has flagged. (#340).
-
Add branding config docs (#322).
-
Update client to use newest moderation APIs (#336).
-
Enable first-party users to flag annotations if
flag_action
feature flag is enabled (#343).
-
Add developer docs explaining how to test the client on a real mobile device (#330).
-
Add Slack link to README (#334).
-
Add cross references in developer documentation (#335).
- Fix regression where annotations sometimes failed to appear in Firefox (#342).
- Use new endpoint for creating an annotation flag (#320).
- Fix annotating sites with broken Function.prototype.bind polyfills (#333).
-
Fix sidebar not opening when tapping annotations on mobile (#329).
-
Fix sidebar not closing when tapping in page on mobile (#328).
-
Fix sidebar not scrolling when dragged on iOS (#327).
- Strikethrough & apply greyscale/contrast effects to hidden annotations (#301).
- Fix scrolling to new annotations (#321).
-
Enable publishers to customize the look of the sidebar (#306).
-
Add analytics to social share buttons (#312).
-
Add analytics to login, logout and sign-up actions (#311).
-
Replace references to "the Hypothesis web service" with "h" in the docs (#291).
-
Implement button for users to flag an inappropriate annotation (#296).
-
Implement moderation banner for flagged or hidden annotations (#285).
-
Add initial work to support styling the sidebar to better integrate with the look of a publisher's site (#303).
-
Reorganise Hypothesis Client docs and move them to Read the docs (#279).
-
Fix client failing to load on pages that define
self
(#278). -
Support specifying annotation search queries in direct links via
#annotations:query:{query}
syntax (#254).
-
Add a guide to developing the Hypothesis client (#265).
-
Add overview of client security considerations (#272).
-
Rename the onLogin callback to onLoginRequest (#275).
- Fix browser devtools error due to broken sourcemap link in boot script (#271).
-
Make boot script load settings from correct config tags (#243).
-
Call partner provided login callback (#260).
-
Add an express server which serves the package's contents during development. (#229).
- Allow publishers to specify logo for top bar (#232).
-
Load assets from cdn.hypothes.is by default.
-
Update Showdown (markdown renderer) from 1.3.0 to 1.6.4 (#238).
- Don't treat annotation quotes (TextQuoteSelector.exact) as HTML (#239).
- Highlights not saving on pages with many highlights and annotations (#234).
- Add a boot script to the client which replaces the
/embed.js
script served by the Hypothesis service (#215).
-
Correct CC0 terminology (#222).
-
Disable the link to activity pages from usernames for 3rd party accounts (#228).
-
Remove account settings and logout link from Account menu for 3rd party accounts (#231).
- Improve math rendering by updating KaTeX to v0.7.1 (#224).
-
Wait for annotations to be fetched before displaying annotation counts in the page (#225).
-
Fix quote anchoring in pages which add enumerable properties to Array.prototype (#226).
- Refresh OAuth tokens before they expire, when using OAuth authorization (#221).
- Enable users with third-party accounts to dismiss the sidebar tutorial (#207).
- Fix minification of JS and CSS in production builds (#210).
-
Enable the host page to configure the client to log in using a non-Hypothesis ('third party') account by providing the client with an OAuth grant token (#199). This is an initial step towards supporting annotation services other than the public Hypothesis service in the client.
-
Support authenticating to real-time API using OAuth access tokens rather than cookies (#200).
-
Add support for displaying the count of public annotations in elements on the page embedding the Hypothesis client (#202).
-
Track basic annotation actions (create, update, delete) via Google Analytics (#206).
-
Simplify client source code directory structure (#185).
-
Add support for
hypothesis-trigger
declarative attribute to toggle the visibility of the sidebar (#190). -
Add Google Analytics to help monitor application interactions (#194).
-
Whitelist the settings given to the client application (#196).
-
Improve support for Authorization header in API requests (#191).
-
Fix client failing to load when restoring a closed tab in Chrome (#184).
-
Fix failure to capture quotes for certain content selections (#159).
-
Show annotations that fail to anchor within an initial timeout in the Annotations tab but with the quote struck through (#182).
-
Tags on annotation cards now link to the new Hypothesis search pages (
/search?tag="{tag}
) rather than the stream (/stream?tag="{tag}"
) (#183). -
Fix highlight visibility on some web pages by using a custom tag name for highlight spans (#172).
-
Added a set of baseline tests to guard against unexpected changes to selectors that are captured when anchoring annotations (#179).
-
Improve anchoring performance in PDFs (#171).
-
Remove
defer_realtime_updates
feature flagging (#173).
- Add links to new Hypothesis Help Center from Help panel (#161).
- Fix bug when anchoring annotations meeting certain criteria (#158).
-
Fix formatting changes made via toolbar buttons not persisting (#148).
-
Fix error when creating annotations if DOM selection meets certain conditions (#155).
- Upgrade environment to use Node v6.x (#143).
-
Support loading client into current version of PDF.js viewer (#134).
-
Improve adder to be more resilient against overrides of Function.prototype.bind (#141).
-
Fix issue that could cause fetching annotations for current page to continue forever (#119).
-
Prevent adder from affecting website's height on load (#131).
-
Fix error when trying to activate Hypothesis on https://hypothes.is/stream (#138).
-
Disable deferred updates on the stream and standalone annotation pages (#112).
-
Update icon for applying deferred annotation updates (#113).
-
Count deleted annotations as pending updates (#114).
-
Fix off-screen empty, unsaved annotations not being removed when a new annotation is created (#107).
-
Fix off-screen unsaved annotations not being moved to new group when focused group is changed (#108).
-
Only count updates to annotations in the focused group as pending updates (#111).
- Behind the
defer_realtime_updates
flag, add the ability to accumulate "real-time" changes and display a button notifying users of new activity, rather than automatically applying these changes to their view. This should result in a less jumpy experience for users on heavily-annotated documents. (#106).
-
Only offer 'Newest' and 'Oldest' sort orders when Page Notes tab is selected and sort Page Notes from oldest to newest by default (#99).
-
Sort unsaved annotations more predictably (#101).
- Fix behavior when there are multiple unsaved annotations (#95).
- When retrieving an API token, the client now sends the CSRF token in a header rather than in a GET request parameter (#91).
-
In browsers that support it, the adder is now isolated from the styling of the annotated page using Shadow DOM (#49).
-
The selected tab (annotations/page notes/orphans) is now preserved when changing groups (#82).
- Fix an issue where annotations updated via the websocket would unanchor, causing disturbance for anyone trying to annotate on the same page (#87, #88).
-
Fix display of annotations on stream with orphans flag enabled (#76).
-
Feature-flag orphan quote strikethrough on annotation cards (#77).
- If an annotation is loaded and then quickly removed before the anchoring timeout expires, do not attempt to modify it's orphan status (#75).
-
Display annotations that cannot be anchored in the page in a separate Orphans tab and strike-through their quotes in annotation cards (#52). Feature flag: "orphans_tab"
-
The Hypothesis client version is now embedded in the built package, rather than requiring the hosting service to provide it (#65).
-
Replace
firstRun
config option with more usefully namedopenSidebar
andopenLoginForm
config options (#63). -
Update the URLs in the Hypothesis service used by 'Sign up' and 'Forgot password' links (#68).
-
Enable the selection tabs feature for all users. (#71).
-
If an annotation fails to anchor within 500ms, mark it as an orphan. If it turns out that anchoring just took longer, it will move from the Orphans tab to the Annotations tab once anchoring completes. (#72).
-
Fix annotated sections of the page being highlighted multiple times when activating, de-activating and re-activating the client on a page. (#47)
-
Fix broken "create a free account" link (#56)
-
Defer connecting to the Hypothesis service's WebSocket endpoint for push updates until the user is either logged in or explicitly interacts with the sidebar. This reduces load on the service (#20)
-
Move the root UI layout for the sidebar app into the client. This makes it easier to serve the client from a web service or bundle it with a browser extension (#37)
- Annotation / Notes tabs copy update and style tweaks (#34)
-
Remove sticky tab bar behavior for now because it has some UI issues that need to be resolved (#35)
-
Update UI state after search API request completes with no results (#36)
0.33.0 - 2016-07-13
- Allow keyboard control of the annotations/notes tabs (#29)
- "Stick" the annotation/notes tabs to the top of the sidebar when scrolling in supported browsers (#28)
-
Don't display a "no annotations" message while the sidebar is still loading (#24)
-
Fix an issue which mistakenly hid notes in the stream or on standalone annotation pages (#24)
0.32.0 - 2016-07-08
- Make document titles link to annotations in context on the /stream page (#1)
-
Use the phrases 'Log in', 'Log out' and 'Sign up' consistently in the UI (#18)
-
The Hypothesis client has been separated from the Hypothesis web service and moved to its own repository.
-
Fix issue where clicking a new annotation in the page that was not yet created on the server would display a 'You do not have permission' message (#2)
-
Fix edits to annotations not being preserved when scrolling annotations out of view and back into view and not being reflected when searching after editing (#7, #8)
-
Fix new annotations not being moved to current group when switching groups (#7)
-
Fix replies being moved to newly selected group when switching groups (#8)
-
Fix canceled annotations re-appearing after switching groups (#7)
-
Fix 'AnnotationResource is not a constructor' error when creating annotations whilst the app is loading (#4)
v0.31.0 and earlier versions of the Hypothesis client were released as part of the Hypothesis web service. Changes for those releases can be found in the Hypothesis Service Change Log.